'use client'
import { motion } from 'framer-motion'
const viewportConfig = { once: true, margin: '-60px' as `${number}px` }
export function FadeIn({
children, delay = 0, duration = 0.4, className,
}: {
children: React.ReactNode; delay?: number; duration?: number; className?: string
}) {
return (
{children}
)
}
export function ScaleIn({
children, delay = 0, className,
}: {
children: React.ReactNode; delay?: number; className?: string
}) {
return (
{children}
)
}
const slideDirections = {
bottom: { y: 20, x: 0 },
top: { y: -20, x: 0 },
left: { x: -20, y: 0 },
right: { x: 20, y: 0 },
}
export function SlideIn({
children, from = 'bottom', delay = 0, className,
}: {
children: React.ReactNode; from?: keyof typeof slideDirections; delay?: number; className?: string
}) {
return (
{children}
)
}
export function Stagger({
children, staggerDelay = 0.08, className,
}: {
children: React.ReactNode; staggerDelay?: number; className?: string
}) {
return (
{children}
)
}
export function StaggerItem({
children, className,
}: {
children: React.ReactNode; className?: string
}) {
return (
{children}
)
}
export function HoverLift({
children, className,
}: {
children: React.ReactNode; className?: string
}) {
return (
{children}
)
}
export function PressScale({
children, className,
}: {
children: React.ReactNode; className?: string
}) {
return (
{children}
)
}
export function SkeletonPulse({ className }: { className?: string }) {
return (
)
}