"use client"
import type { ReactNode } from "react"
import Image from "next/image"
import { motion, useReducedMotion } from "framer-motion"
import { cn } from "@/lib/utils"
type AuthPageShellProps = {
title: string
description: string
imageSrc: string
imageAlt: string
imageSide: "left" | "right"
form: ReactNode
secondaryAction?: ReactNode
footer: ReactNode
}
export function AuthPageShell({
title,
description,
imageSrc,
imageAlt,
imageSide,
form,
secondaryAction,
footer,
}: AuthPageShellProps) {
const reducedMotion = useReducedMotion()
const stackVariants = {
hidden: {},
show: {
transition: reducedMotion
? undefined
: {
staggerChildren: 0.1,
delayChildren: 0.15,
},
},
}
const itemVariants = {
hidden: reducedMotion ? { opacity: 1 } : { opacity: 0, y: 24 },
show: {
opacity: 1,
y: 0,
transition: {
duration: reducedMotion ? 0 : 0.65,
ease: [0.22, 1, 0.36, 1] as const,
},
},
}
const formPanel = (
{description}
{title}