import type { Transition, Variants } from "motion/react"; /** Smooth ease-out curve for agent UI transitions */ export const agentEase = [0.22, 1, 0.36, 1] as const; export const agentSpring = { type: "spring", stiffness: 380, damping: 32, } as const satisfies Transition; export const agentSoftSpring = { type: "spring", stiffness: 260, damping: 28, } as const satisfies Transition; export const agentPanelTransition: Transition = { duration: 0.48, ease: agentEase, }; export const agentLayoutTransition: Transition = { layout: { duration: 0.52, ease: agentEase }, }; export const agentFadeUp: Variants = { hidden: { opacity: 0, y: 18 }, visible: { opacity: 1, y: 0, transition: agentPanelTransition, }, exit: { opacity: 0, y: -14, transition: { duration: 0.32, ease: agentEase }, }, }; export const agentFadeIn: Variants = { hidden: { opacity: 0, scale: 0.98 }, visible: { opacity: 1, scale: 1, transition: agentPanelTransition, }, exit: { opacity: 0, scale: 0.97, transition: { duration: 0.3, ease: agentEase }, }, }; export const agentSlideInEnd: Variants = { hidden: { opacity: 0, x: 28 }, visible: { opacity: 1, x: 0, transition: agentSoftSpring, }, exit: { opacity: 0, x: 28, transition: { duration: 0.32, ease: agentEase }, }, }; export const agentStaggerContainer: Variants = { hidden: {}, visible: { transition: { staggerChildren: 0.07, delayChildren: 0.06 }, }, exit: { transition: { staggerChildren: 0.04, staggerDirection: -1 }, }, }; export const agentStaggerFast: Variants = { hidden: {}, visible: { transition: { staggerChildren: 0.06, delayChildren: 0.12 }, }, }; export const agentCardVariant: Variants = { hidden: { opacity: 0, y: 20, scale: 0.96 }, visible: { opacity: 1, y: 0, scale: 1, transition: agentSoftSpring, }, exit: { opacity: 0, y: -10, scale: 0.94, transition: { duration: 0.28, ease: agentEase }, }, }; export const agentThreadItem: Variants = { hidden: { opacity: 0, y: 14 }, visible: { opacity: 1, y: 0, transition: agentPanelTransition, }, };