'use client'; import React, { forwardRef } from 'react'; import type { AnimationRepeat, AnimationTrigger } from './types'; import { mergeRefs, repeatToCss, useAnimationTrigger, usePixelAnimations } from './_internal/animation-hooks'; /* ───────────────────────────────────────────────────────────────────────── PixelZoomIn — scales children from `startScale` to `1` with fade-in. ───────────────────────────────────────────────────────────────────────── */ export interface PixelZoomInProps { /** Content to zoom in. */ children: React.ReactNode; /** Animation duration in milliseconds. Default `320`. */ duration?: number; /** Animation delay in milliseconds. Default `0`. */ delay?: number; /** Starting `scale()` factor. Default `0.92`. */ startScale?: number; /** Iteration count: a number or `'infinite'`. Default `1`. */ repeat?: AnimationRepeat; /** CSS `animation-timing-function`. Default `'cubic-bezier(.2,.9,.2,1)'`. */ easing?: string; /** CSS `animation-fill-mode`. Default `'both'`. */ fillMode?: 'none' | 'forwards' | 'backwards' | 'both'; /** When the animation should play. Default `'mount'`. */ trigger?: AnimationTrigger; /** Fires after the final iteration. */ onComplete?: () => void; /** Extra class names applied to the wrapping `