@nikitph/flux-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +310 -0
  3. package/dist/config/flux.config.d.ts +36 -0
  4. package/dist/context/FluxProvider.d.ts +11 -0
  5. package/dist/hooks/useAnimationBudget.d.ts +7 -0
  6. package/dist/hooks/useInView.d.ts +3 -0
  7. package/dist/hooks/useIsClient.d.ts +1 -0
  8. package/dist/hooks/useMergedRef.d.ts +2 -0
  9. package/dist/hooks/usePhysics.d.ts +7 -0
  10. package/dist/hooks/usePrefersReducedMotion.d.ts +1 -0
  11. package/dist/hooks/useReducedMotion.d.ts +1 -0
  12. package/dist/hooks/useScrollProgress.d.ts +2 -0
  13. package/dist/index.d.ts +53 -0
  14. package/dist/index.js +3330 -0
  15. package/dist/index.js.map +7 -0
  16. package/dist/primitives/01-reveal.d.ts +22 -0
  17. package/dist/primitives/02-presence.d.ts +15 -0
  18. package/dist/primitives/03-stagger.d.ts +23 -0
  19. package/dist/primitives/04-text-reveal.d.ts +21 -0
  20. package/dist/primitives/05-count-up.d.ts +22 -0
  21. package/dist/primitives/06-morph-text.d.ts +19 -0
  22. package/dist/primitives/07-flip-card.d.ts +17 -0
  23. package/dist/primitives/08-collapse.d.ts +16 -0
  24. package/dist/primitives/09-magnetic.d.ts +14 -0
  25. package/dist/primitives/10-hover-scale.d.ts +16 -0
  26. package/dist/primitives/11-tilt.d.ts +20 -0
  27. package/dist/primitives/12-drag.d.ts +31 -0
  28. package/dist/primitives/13-swipe.d.ts +20 -0
  29. package/dist/primitives/14-long-press.d.ts +18 -0
  30. package/dist/primitives/15-hover-3d.d.ts +23 -0
  31. package/dist/primitives/16-scroll-velocity.d.ts +15 -0
  32. package/dist/primitives/17-spotlight.d.ts +17 -0
  33. package/dist/primitives/18-follow-cursor.d.ts +20 -0
  34. package/dist/primitives/19-morph.d.ts +14 -0
  35. package/dist/primitives/20-fluid-layout.d.ts +14 -0
  36. package/dist/primitives/21-reorder.d.ts +25 -0
  37. package/dist/primitives/22-page-transition.d.ts +16 -0
  38. package/dist/primitives/23-animated-list.d.ts +20 -0
  39. package/dist/primitives/24-marquee.d.ts +16 -0
  40. package/dist/primitives/25-dock.d.ts +25 -0
  41. package/dist/primitives/26-infinite-scroll.d.ts +21 -0
  42. package/dist/primitives/27-scroll-progress.d.ts +14 -0
  43. package/dist/primitives/28-parallax.d.ts +11 -0
  44. package/dist/primitives/29-sticky-scroll.d.ts +14 -0
  45. package/dist/primitives/30-scroll-snap.d.ts +22 -0
  46. package/dist/primitives/31-aurora.d.ts +12 -0
  47. package/dist/primitives/32-mesh-gradient.d.ts +9 -0
  48. package/dist/primitives/33-particles.d.ts +11 -0
  49. package/dist/primitives/34-grid-pattern.d.ts +10 -0
  50. package/dist/primitives/35-noise.d.ts +9 -0
  51. package/dist/primitives/36-streaming-text.d.ts +14 -0
  52. package/dist/primitives/37-typing-indicator.d.ts +10 -0
  53. package/dist/primitives/38-skeleton.d.ts +13 -0
  54. package/dist/primitives/39-ai-message.d.ts +13 -0
  55. package/dist/primitives/40-hero-highlight.d.ts +13 -0
  56. package/dist/utils/clamp.d.ts +1 -0
  57. package/dist/utils/resolveMotion.d.ts +2 -0
  58. package/dist/utils/slot.d.ts +4 -0
  59. package/package.json +86 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/config/flux.config.ts", "../src/context/FluxProvider.tsx", "../src/hooks/usePhysics.ts", "../src/hooks/usePrefersReducedMotion.ts", "../src/hooks/useReducedMotion.ts", "../src/hooks/useIsClient.ts", "../src/hooks/useMergedRef.ts", "../src/hooks/useInView.ts", "../src/hooks/useScrollProgress.ts", "../src/hooks/useAnimationBudget.ts", "../src/utils/resolveMotion.ts", "../src/utils/slot.tsx", "../src/utils/clamp.ts", "../src/primitives/01-reveal.tsx", "../src/primitives/02-presence.tsx", "../src/primitives/03-stagger.tsx", "../src/primitives/04-text-reveal.tsx", "../src/primitives/05-count-up.tsx", "../src/primitives/06-morph-text.tsx", "../src/primitives/07-flip-card.tsx", "../src/primitives/08-collapse.tsx", "../src/primitives/09-magnetic.tsx", "../src/primitives/10-hover-scale.tsx", "../src/primitives/11-tilt.tsx", "../src/primitives/12-drag.tsx", "../src/primitives/13-swipe.tsx", "../src/primitives/14-long-press.tsx", "../src/primitives/15-hover-3d.tsx", "../src/primitives/16-scroll-velocity.tsx", "../src/primitives/17-spotlight.tsx", "../src/primitives/18-follow-cursor.tsx", "../src/primitives/19-morph.tsx", "../src/primitives/20-fluid-layout.tsx", "../src/primitives/21-reorder.tsx", "../src/primitives/22-page-transition.tsx", "../src/primitives/23-animated-list.tsx", "../src/primitives/24-marquee.tsx", "../src/primitives/25-dock.tsx", "../src/primitives/26-infinite-scroll.tsx", "../src/primitives/27-scroll-progress.tsx", "../src/primitives/28-parallax.tsx", "../src/primitives/29-sticky-scroll.tsx", "../src/primitives/30-scroll-snap.tsx", "../src/primitives/31-aurora.tsx", "../src/primitives/32-mesh-gradient.tsx", "../src/primitives/33-particles.tsx", "../src/primitives/34-grid-pattern.tsx", "../src/primitives/35-noise.tsx", "../src/primitives/36-streaming-text.tsx", "../src/primitives/37-typing-indicator.tsx", "../src/primitives/38-skeleton.tsx", "../src/primitives/39-ai-message.tsx", "../src/primitives/40-hero-highlight.tsx"],
4
+ "sourcesContent": ["export type PhysicsPreset = \"snappy\" | \"smooth\" | \"gentle\" | \"dramatic\" | \"bouncy\" | \"cinematic\" | \"instant\";\n\nexport const physics: Record<PhysicsPreset, { type: \"spring\"; stiffness: number; damping: number; mass: number }> = {\n snappy: { type: \"spring\", stiffness: 500, damping: 30, mass: 0.5 },\n smooth: { type: \"spring\", stiffness: 200, damping: 20, mass: 1 },\n gentle: { type: \"spring\", stiffness: 120, damping: 14, mass: 1 },\n dramatic: { type: \"spring\", stiffness: 80, damping: 10, mass: 1.5 },\n bouncy: { type: \"spring\", stiffness: 400, damping: 15, mass: 1 },\n cinematic: { type: \"spring\", stiffness: 50, damping: 12, mass: 2 },\n instant: { type: \"spring\", stiffness: 800, damping: 40, mass: 0.3 },\n};\n\nexport const motionScale = {\n distance: { xs: 4, sm: 8, md: 16, lg: 32, xl: 64, \"2xl\": 128 },\n rotation: { xs: 1, sm: 3, md: 6, lg: 12, xl: 24 },\n scale: { xs: 0.98, sm: 0.95, md: 0.90, lg: 0.80 },\n stagger: { fast: 0.03, normal: 0.06, slow: 0.12, cascade: 0.08 },\n};\n", "import { createContext, useContext, ReactNode } from \"react\";\n\nexport type MotionLevel = \"full\" | \"reduced\" | \"none\";\n\ninterface FluxContextProps {\n motionLevel?: MotionLevel;\n}\n\nconst FluxContext = createContext<FluxContextProps>({});\n\nexport function FluxProvider({\n children,\n motionLevel,\n}: {\n children: ReactNode;\n motionLevel?: MotionLevel;\n}) {\n return (\n <FluxContext.Provider value={{ motionLevel }}>\n {children}\n </FluxContext.Provider>\n );\n}\n\nexport function useFluxContext() {\n return useContext(FluxContext);\n}\n", "import { physics, PhysicsPreset } from \"../config/flux.config\";\n\nexport function usePhysics(preset: PhysicsPreset = \"smooth\") {\n return physics[preset] || physics.smooth;\n}\n", "import { useEffect, useState } from \"react\";\n\nexport function usePrefersReducedMotion() {\n const [prefersReducedMotion, setPrefersReducedMotion] = useState(false);\n\n useEffect(() => {\n const mediaQueryList = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n setPrefersReducedMotion(mediaQueryList.matches);\n\n const listener = (event: MediaQueryListEvent) => {\n setPrefersReducedMotion(event.matches);\n };\n\n mediaQueryList.addEventListener(\"change\", listener);\n return () => mediaQueryList.removeEventListener(\"change\", listener);\n }, []);\n\n return prefersReducedMotion;\n}\n", "import { usePrefersReducedMotion } from \"./usePrefersReducedMotion\";\nimport { useFluxContext } from \"../context/FluxProvider\";\n\nexport function useReducedMotion(): boolean {\n const { motionLevel } = useFluxContext();\n const prefersReduced = usePrefersReducedMotion();\n\n if (motionLevel === \"none\" || motionLevel === \"reduced\") {\n return true;\n }\n if (motionLevel === \"full\") {\n return false;\n }\n\n return prefersReduced;\n}\n", "import { useState, useEffect } from \"react\";\n\nexport function useIsClient() {\n const [isClient, setIsClient] = useState(false);\n\n useEffect(() => {\n setIsClient(true);\n }, []);\n\n return isClient;\n}\n", "import { useRef, useEffect, Ref } from \"react\";\n\nexport function useMergedRef<T>(...refs: Array<Ref<T> | null | undefined>) {\n const targetRef = useRef<T>(null);\n\n useEffect(() => {\n refs.forEach((ref) => {\n if (!ref) return;\n if (typeof ref === \"function\") {\n ref(targetRef.current);\n } else {\n (ref as React.MutableRefObject<T | null>).current = targetRef.current;\n }\n });\n }, [refs]);\n\n return targetRef;\n}\n", "import { useInView as useFramerInView, UseInViewOptions } from \"motion/react\";\nimport { RefObject } from \"react\";\n\nexport function useInView(ref: RefObject<Element | null>, options?: UseInViewOptions) {\n return useFramerInView(ref, options);\n}\n", "import { useScroll, UseScrollOptions } from \"motion/react\";\n\nexport function useScrollProgress(options?: UseScrollOptions) {\n const { scrollYProgress } = useScroll(options);\n return scrollYProgress;\n}\n", "import { useEffect } from \"react\";\n\n// In a real implementation this would track globally active animations\nlet activeAnimations = 0;\n\nexport function useAnimationBudget(_options: { maxConcurrent?: number; frameRateThreshold?: number } = {}) {\n useEffect(() => {\n activeAnimations++;\n return () => {\n activeAnimations--;\n };\n }, []);\n\n // For this simplified version we always say we are within budget\n // Alternatively we could return a boolean if budget is exceeded\n return { activeAnimations, isWithinBudget: true };\n}\n", "import { physics, PhysicsPreset } from \"../config/flux.config\";\n\nexport function resolveMotion(\n preset: PhysicsPreset | undefined,\n overrideSpring: any,\n isReducedMotion: boolean\n) {\n if (isReducedMotion) {\n // Return a linear transition for reduced motion (mostly opacity based fallback)\n return { type: \"tween\", duration: 0.15, ease: \"linear\" };\n }\n\n if (overrideSpring) {\n return overrideSpring;\n }\n\n const physicsKey = preset || \"smooth\";\n return physics[physicsKey] || physics.smooth;\n}\n", "import React, { forwardRef } from \"react\";\n\nexport const Slot = forwardRef<HTMLElement, React.HTMLAttributes<HTMLElement> & { children?: React.ReactNode }>(\n ({ children, ...props }, ref) => {\n if (React.isValidElement(children)) {\n return React.cloneElement(children, {\n ...props,\n ...(children.props as any),\n ref: (node: any) => {\n if (typeof ref === \"function\") ref(node);\n else if (ref) (ref as any).current = node;\n\n const childRef = (children as any).ref;\n if (typeof childRef === \"function\") childRef(node);\n else if (childRef) childRef.current = node;\n },\n style: {\n ...props.style,\n ...(children.props as any).style,\n },\n className: [props.className, (children.props as any).className].filter(Boolean).join(\" \"),\n } as any);\n }\n return <>{children}</>;\n }\n);\nSlot.displayName = \"Slot\";\n", "export function clamp(val: number, min: number, max: number): number {\n return Math.min(Math.max(val, min), max);\n}\n", "import React, { forwardRef, useEffect, useState } from \"react\";\nimport { motion, useInView } from \"motion/react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { motionScale, PhysicsPreset } from \"../config/flux.config\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface RevealProps {\n children: React.ReactNode;\n physics?: PhysicsPreset;\n disabled?: boolean;\n className?: string;\n style?: React.CSSProperties;\n asChild?: boolean;\n from?: \"below\" | \"above\" | \"left\" | \"right\" | \"none\";\n distance?: number;\n fade?: boolean;\n scale?: number | false;\n rotate?: number | false;\n trigger?: \"mount\" | \"viewport\" | \"manual\";\n threshold?: number;\n once?: boolean;\n delay?: number;\n show?: boolean;\n onReveal?: () => void;\n}\n\nexport const Reveal = forwardRef<HTMLElement, RevealProps>(\n (\n {\n children,\n physics = \"gentle\",\n disabled = false,\n className,\n style,\n asChild = false,\n from = \"below\",\n distance = motionScale.distance.md,\n fade = true,\n scale = false,\n rotate = false,\n trigger = \"viewport\",\n threshold = 0.2,\n once = true,\n delay = 0,\n show = true,\n onReveal,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const inView = useInView(internalRef, { amount: threshold, once });\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [hasRevealed, setHasRevealed] = useState(false);\n\n if (disabled) {\n if (asChild) return <Slot ref={mergedRef} className={className} style={style} {...props}>{children}</Slot>;\n return <div ref={mergedRef as any} className={className} style={style} {...props}>{children}</div>;\n }\n\n const initial = {\n opacity: fade ? (isReducedMotion ? 0 : 0) : 1,\n x: isReducedMotion ? 0 : from === \"left\" ? -distance : from === \"right\" ? distance : 0,\n y: isReducedMotion ? 0 : from === \"below\" ? distance : from === \"above\" ? -distance : 0,\n scale: isReducedMotion ? 1 : scale !== false ? scale : 1,\n rotate: isReducedMotion ? 0 : rotate !== false ? rotate : 0,\n };\n\n const target = { opacity: 1, x: 0, y: 0, scale: 1, rotate: 0 };\n\n let shouldAnimate = false;\n if (trigger === \"mount\") shouldAnimate = true;\n else if (trigger === \"viewport\") shouldAnimate = inView;\n else if (trigger === \"manual\") shouldAnimate = show;\n\n useEffect(() => {\n if (shouldAnimate && !hasRevealed) {\n setHasRevealed(true);\n onReveal?.();\n }\n }, [shouldAnimate, hasRevealed, onReveal]);\n\n const MotionComponent = asChild ? motion.create(Slot) : motion.div;\n\n return (\n <MotionComponent\n ref={mergedRef as any}\n initial={initial}\n animate={shouldAnimate ? target : initial}\n transition={{ ...springConfig, delay: isReducedMotion ? 0 : delay }}\n className={className}\n style={style}\n {...props}\n >\n {children}\n </MotionComponent>\n );\n }\n);\nReveal.displayName = \"Reveal\";\n", "import React from \"react\";\nimport { AnimatePresence, motion } from \"motion/react\";\nimport { motionScale, PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface PresenceProps {\n children: React.ReactNode;\n enterFrom?: \"below\" | \"above\" | \"left\" | \"right\" | \"scale\" | \"none\";\n exitTo?: \"below\" | \"above\" | \"left\" | \"right\" | \"scale\" | \"none\";\n distance?: number;\n fade?: boolean;\n physics?: PhysicsPreset;\n exitPhysics?: PhysicsPreset;\n mode?: \"sync\" | \"wait\" | \"popLayout\";\n onExitComplete?: () => void;\n disabled?: boolean;\n}\n\nexport const Presence: React.FC<PresenceProps> = ({\n children,\n enterFrom = \"below\",\n exitTo,\n distance = motionScale.distance.md,\n fade = true,\n physics = \"smooth\",\n exitPhysics = \"snappy\",\n mode = \"sync\",\n onExitComplete,\n disabled = false,\n}) => {\n const isReducedMotion = useReducedMotion();\n const enterSpring = resolveMotion(physics, undefined, isReducedMotion);\n const exitSpring = resolveMotion(exitPhysics, undefined, isReducedMotion);\n\n if (disabled) {\n return <>{children}</>;\n }\n\n const effectiveExitTo = exitTo ?? enterFrom;\n\n const getVariant = (direction: \"below\" | \"above\" | \"left\" | \"right\" | \"scale\" | \"none\", _directionExit = false) => {\n if (isReducedMotion) return { opacity: 0, x: 0, y: 0, scale: 1 };\n switch (direction) {\n case \"below\": return { opacity: fade ? 0 : 1, y: distance, x: 0, scale: 1 };\n case \"above\": return { opacity: fade ? 0 : 1, y: -distance, x: 0, scale: 1 };\n case \"left\": return { opacity: fade ? 0 : 1, y: 0, x: -distance, scale: 1 };\n case \"right\": return { opacity: fade ? 0 : 1, y: 0, x: distance, scale: 1 };\n case \"scale\": return { opacity: fade ? 0 : 1, y: 0, x: 0, scale: 0.9 };\n case \"none\": return { opacity: fade ? 0 : 1, y: 0, x: 0, scale: 1 };\n default: return { opacity: fade ? 0 : 1, y: 0, x: 0, scale: 1 };\n }\n };\n\n const initial = getVariant(enterFrom);\n const exit = getVariant(effectiveExitTo, true);\n const animate = { opacity: 1, x: 0, y: 0, scale: 1 };\n\n return (\n <AnimatePresence mode={mode} onExitComplete={onExitComplete}>\n {React.Children.map(children, (child) => {\n if (!React.isValidElement(child)) return child;\n const MotionChild = motion.create(Slot);\n return (\n <MotionChild\n key={child.key || Math.random().toString(36)}\n initial={initial}\n animate={animate}\n exit={{ ...exit, transition: exitSpring as any }}\n transition={enterSpring}\n >\n {child}\n </MotionChild>\n );\n })}\n </AnimatePresence>\n );\n};\n", "import React, { forwardRef, useEffect, useState } from \"react\";\nimport { motion, useInView } from \"motion/react\";\nimport { motionScale, PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface StaggerProps {\n children: React.ReactNode;\n interval?: number;\n from?: \"first\" | \"last\" | \"center\" | \"random\";\n reveal?: {\n from?: \"below\" | \"above\" | \"left\" | \"right\" | \"none\";\n distance?: number;\n fade?: boolean;\n scale?: number | false;\n };\n trigger?: \"mount\" | \"viewport\" | \"manual\";\n threshold?: number;\n once?: boolean;\n show?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n asChild?: boolean;\n disabled?: boolean;\n}\n\nexport const Stagger = forwardRef<HTMLElement, StaggerProps>(\n (\n {\n children,\n interval = motionScale.stagger.normal,\n from = \"first\",\n reveal = { from: \"below\", distance: motionScale.distance.md, fade: true, scale: false },\n trigger = \"viewport\",\n threshold = 0.1,\n once = true,\n show = true,\n physics = \"gentle\",\n className,\n style,\n asChild = false,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const inView = useInView(internalRef, { amount: threshold, once });\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [hasRevealed, setHasRevealed] = useState(false);\n\n if (disabled) {\n if (asChild) return <Slot ref={mergedRef} className={className} style={style} {...props}>{children}</Slot>;\n return <div ref={mergedRef as any} className={className} style={style} {...props}>{children}</div>;\n }\n\n let shouldAnimate = false;\n if (trigger === \"mount\") shouldAnimate = true;\n else if (trigger === \"viewport\") shouldAnimate = inView;\n else if (trigger === \"manual\") shouldAnimate = show;\n\n useEffect(() => {\n if (shouldAnimate && !hasRevealed) {\n setHasRevealed(true);\n }\n }, [shouldAnimate, hasRevealed]);\n\n const childrenArray = React.Children.toArray(children);\n const count = childrenArray.length;\n let randomSeed = 0.5; // for deterministic random\n\n const getInitial = () => {\n if (isReducedMotion) return { opacity: 0, x: 0, y: 0, scale: 1 };\n const rFrom = reveal.from || \"below\";\n const rDist = reveal.distance || motionScale.distance.md;\n const rFade = reveal.fade ?? true;\n const rScale = reveal.scale ?? false;\n\n return {\n opacity: rFade ? 0 : 1,\n y: rFrom === \"below\" ? rDist : rFrom === \"above\" ? -rDist : 0,\n x: rFrom === \"left\" ? -rDist : rFrom === \"right\" ? rDist : 0,\n scale: rScale !== false ? rScale : 1,\n };\n };\n\n const target = { opacity: 1, x: 0, y: 0, scale: 1 };\n const initial = getInitial();\n\n const renderChildren = childrenArray.map((child, i) => {\n if (!React.isValidElement(child)) return child;\n let delay = 0;\n if (!isReducedMotion) {\n if (from === \"first\") delay = i * interval;\n else if (from === \"last\") delay = (count - 1 - i) * interval;\n else if (from === \"center\") delay = Math.abs(i - Math.floor(count / 2)) * interval;\n else if (from === \"random\") {\n randomSeed = (randomSeed * 9301 + 49297) % 233280;\n delay = (randomSeed / 233280) * count * interval;\n }\n }\n\n const MotionChild = motion.create(Slot);\n return (\n <MotionChild\n key={child.key || i}\n initial={initial}\n animate={shouldAnimate ? target : initial}\n transition={{ ...springConfig, delay }}\n >\n {child}\n </MotionChild>\n );\n });\n\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp ref={mergedRef as any} className={className} style={style} {...props}>\n {renderChildren}\n </Comp>\n );\n }\n);\nStagger.displayName = \"Stagger\";\n", "import React, { forwardRef, useEffect, useState } from \"react\";\nimport { motion, useInView } from \"motion/react\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { PhysicsPreset } from \"../config/flux.config\";\n\nexport interface TextRevealProps {\n children: string;\n by?: \"char\" | \"word\" | \"line\";\n stagger?: number;\n from?: \"below\" | \"above\" | \"left\" | \"right\" | \"none\";\n distance?: number;\n fade?: boolean;\n blur?: number | false;\n trigger?: \"mount\" | \"viewport\" | \"manual\";\n threshold?: number;\n once?: boolean;\n show?: boolean;\n tag?: \"p\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"span\" | \"div\";\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const TextReveal = forwardRef<HTMLElement, TextRevealProps>(\n (\n {\n children,\n by = \"word\",\n stagger,\n from = \"below\",\n distance,\n fade = true,\n blur = false,\n trigger = \"viewport\",\n threshold = 0.2,\n once = true,\n show = true,\n tag: Tag = \"p\",\n physics = \"gentle\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const inView = useInView(internalRef, { amount: threshold, once });\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [hasRevealed, setHasRevealed] = useState(false);\n\n let shouldAnimate = false;\n if (trigger === \"mount\") shouldAnimate = true;\n else if (trigger === \"viewport\") shouldAnimate = inView;\n else if (trigger === \"manual\") shouldAnimate = show;\n\n useEffect(() => {\n if (shouldAnimate && !hasRevealed) setHasRevealed(true);\n }, [shouldAnimate, hasRevealed]);\n\n if (disabled || typeof children !== \"string\") {\n const Comp = motion[Tag as keyof typeof motion] as any;\n return <Comp ref={mergedRef} className={className} style={style} {...props}>{children}</Comp>;\n }\n\n const resolvedStagger = stagger ?? (by === \"char\" ? 0.02 : by === \"word\" ? 0.04 : 0.08);\n const resolvedDistance = distance ?? (by === \"char\" ? 8 : 16);\n\n const getInitial = () => {\n if (isReducedMotion) return { opacity: 0, filter: \"blur(0px)\" };\n return {\n opacity: fade ? 0 : 1,\n y: from === \"below\" ? resolvedDistance : from === \"above\" ? -resolvedDistance : 0,\n x: from === \"left\" ? -resolvedDistance : from === \"right\" ? resolvedDistance : 0,\n filter: blur !== false ? `blur(${blur}px)` : \"blur(0px)\",\n };\n };\n\n const initial = getInitial();\n const target = { opacity: 1, x: 0, y: 0, filter: \"blur(0px)\" };\n\n let tokens: string[] = [];\n if (by === \"char\") tokens = children.split(\"\");\n else if (by === \"word\") tokens = children.split(/(\\s+)/);\n else if (by === \"line\") tokens = children.split(\"\\n\");\n\n const MotionTag = motion[Tag as keyof typeof motion] as any;\n\n return (\n <MotionTag ref={mergedRef as any} className={className} style={style} {...props}>\n {tokens.map((token, i) => {\n if (by === \"char\" && token === \" \") {\n return <span key={i}>&nbsp;</span>;\n }\n if (by === \"word\" && token.trim() === \"\") {\n return <span key={i}>{token}</span>;\n }\n const displayStyle = by === \"line\" ? \"block\" : \"inline-block\";\n return (\n <motion.span\n key={i}\n style={{ display: displayStyle, whiteSpace: \"pre-wrap\" }}\n initial={initial}\n animate={shouldAnimate ? target : initial}\n transition={isReducedMotion ? undefined : { ...springConfig, delay: i * resolvedStagger }}\n >\n {token}\n </motion.span>\n );\n })}\n </MotionTag>\n );\n }\n);\nTextReveal.displayName = \"TextReveal\";\n", "import React, { forwardRef, useEffect } from \"react\";\nimport { motion, useInView, useMotionValue, useSpring, useTransform } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\n\nexport interface CountUpProps {\n from?: number;\n to: number;\n duration?: number;\n decimals?: number;\n prefix?: string;\n suffix?: string;\n separator?: string;\n trigger?: \"mount\" | \"viewport\" | \"manual\";\n threshold?: number;\n once?: boolean;\n show?: boolean;\n tag?: \"span\" | \"p\" | \"div\" | \"h1\" | \"h2\" | \"h3\";\n formatFn?: (value: number) => string;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const CountUp = forwardRef<HTMLElement, CountUpProps>(\n (\n {\n from = 0,\n to,\n duration,\n decimals = 0,\n prefix = \"\",\n suffix = \"\",\n separator = \",\",\n trigger = \"viewport\",\n threshold = 0.2,\n once = true,\n show = true,\n tag: Tag = \"span\",\n formatFn,\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const inView = useInView(internalRef, { amount: threshold, once });\n\n let shouldAnimate = false;\n if (trigger === \"mount\") shouldAnimate = true;\n else if (trigger === \"viewport\") shouldAnimate = inView;\n else if (trigger === \"manual\") shouldAnimate = show;\n\n const baseValue = useMotionValue(from);\n\n // Fall back to tween if specifically asked or reduced motion\n const springConfig = duration\n ? { duration }\n : resolveMotion(physics, undefined, isReducedMotion);\n\n const animatedValue = useSpring(baseValue, duration ? undefined : springConfig as any);\n\n useEffect(() => {\n if (shouldAnimate) {\n if (isReducedMotion || disabled) {\n baseValue.jump(to);\n } else {\n baseValue.set(to);\n }\n } else {\n baseValue.set(from);\n }\n }, [shouldAnimate, isReducedMotion, disabled, to, from, baseValue]);\n\n const display = useTransform(animatedValue, (val) => {\n if (formatFn) return formatFn(val);\n const parts = Number(val).toFixed(decimals).split(\".\");\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, separator);\n return `${prefix}${parts.join(\".\")}${suffix}`;\n });\n\n const MotionTag = motion[Tag as keyof typeof motion] as any;\n\n return (\n <MotionTag ref={mergedRef as any} className={className} style={style} {...props}>\n {display}\n </MotionTag>\n );\n }\n);\nCountUp.displayName = \"CountUp\";\n", "import React, { forwardRef, useEffect, useState } from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface MorphTextProps {\n texts: string[];\n interval?: number;\n mode?: \"crossfade\" | \"scramble\" | \"typewriter\" | \"blur\";\n stagger?: number;\n scrambleChars?: string;\n scrambleDuration?: number;\n loop?: boolean;\n pause?: boolean;\n tag?: \"span\" | \"p\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"div\";\n onTextChange?: (index: number) => void;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const MorphText = forwardRef<HTMLElement, MorphTextProps>(\n (\n {\n texts,\n interval = 3,\n mode = \"crossfade\",\n stagger = 0.02,\n scrambleChars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%\",\n scrambleDuration = 0.6,\n loop = true,\n pause = false,\n tag: Tag = \"span\",\n onTextChange,\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [currentIndex, setCurrentIndex] = useState(0);\n\n useEffect(() => {\n if (disabled || pause || texts.length <= 1) return;\n\n if (!loop && currentIndex === texts.length - 1) return;\n\n const timer = setTimeout(() => {\n const nextIndex = (currentIndex + 1) % texts.length;\n setCurrentIndex(nextIndex);\n onTextChange?.(nextIndex);\n }, interval * 1000);\n\n return () => clearTimeout(timer);\n }, [currentIndex, texts, interval, loop, pause, disabled, onTextChange]);\n\n if (disabled || isReducedMotion) {\n const Comp = Tag as any;\n return <Comp ref={mergedRef as any} className={className} style={style} {...props}>{texts[currentIndex]}</Comp>;\n }\n\n const currentText = texts[currentIndex];\n const MotionTag = motion[Tag as keyof typeof motion] as any;\n\n // Crossfade implementation\n if (mode === \"crossfade\") {\n return (\n <MotionTag aria-live=\"polite\" ref={mergedRef as any} className={className} style={style} {...props}>\n <span style={{ position: \"absolute\", width: 1, height: 1, padding: 0, margin: -1, overflow: \"hidden\", clip: \"rect(0, 0, 0, 0)\", whiteSpace: \"nowrap\", border: 0 }}>\n {currentText}\n </span>\n <AnimatePresence mode=\"popLayout\" initial={false}>\n <motion.span\n key={currentIndex}\n initial={{ opacity: 0, filter: \"blur(4px)\", y: 10 }}\n animate={{ opacity: 1, filter: \"blur(0px)\", y: 0 }}\n exit={{ opacity: 0, filter: \"blur(4px)\", y: -10 }}\n transition={springConfig as any}\n style={{ display: \"inline-block\" }}\n >\n {currentText}\n </motion.span>\n </AnimatePresence>\n </MotionTag>\n );\n }\n\n // Fallback for scramble/typewriter/blur due to spec complexity limit, \n // replacing with a basic crossfade-like layout wrapper\n return (\n <MotionTag aria-live=\"polite\" ref={mergedRef as any} className={className} style={style} {...props}>\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={currentIndex}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n transition={springConfig as any}\n >\n {currentText}\n </motion.span>\n </AnimatePresence>\n </MotionTag>\n );\n }\n);\nMorphText.displayName = \"MorphText\";\n", "import React, { forwardRef, useState } from \"react\";\nimport { motion } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface FlipCardProps {\n front: React.ReactNode;\n back: React.ReactNode;\n flipped?: boolean;\n direction?: \"horizontal\" | \"vertical\";\n trigger?: \"click\" | \"hover\" | \"manual\";\n perspective?: number;\n height?: string | number;\n width?: string | number;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const FlipCard = forwardRef<HTMLDivElement, FlipCardProps>(\n (\n {\n front,\n back,\n flipped: controlledFlipped,\n direction = \"horizontal\",\n trigger = \"click\",\n perspective = 1000,\n height = \"100%\",\n width = \"100%\",\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [isFlippedState, setFlipped] = useState(false);\n const isFlipped = controlledFlipped !== undefined ? controlledFlipped : isFlippedState;\n\n if (disabled) {\n return (\n <div ref={mergedRef} className={className} style={{ ...style, height, width }} {...props}>\n {isFlipped ? back : front}\n </div>\n );\n }\n\n const handleInteraction = () => {\n if (trigger === \"click\") {\n setFlipped((prev) => !prev);\n }\n };\n\n const handleHoverStart = () => {\n if (trigger === \"hover\") setFlipped(true);\n };\n\n const handleHoverEnd = () => {\n if (trigger === \"hover\") setFlipped(false);\n };\n\n const rotateAxis = direction === \"horizontal\" ? \"rotateY\" : \"rotateX\";\n\n // Front face rotation: 0 -> 180. Back face: -180 -> 0 (or equivalent)\n const frontRotate = isFlipped ? 180 : 0;\n const backRotate = isFlipped ? 360 : 180;\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n perspective: `${perspective}px`,\n position: \"relative\",\n height,\n width,\n ...style,\n }}\n onClick={handleInteraction}\n onMouseEnter={handleHoverStart}\n onMouseLeave={handleHoverEnd}\n {...props}\n >\n <motion.div\n animate={isReducedMotion ? undefined : { [rotateAxis]: frontRotate, opacity: isReducedMotion ? (isFlipped ? 0 : 1) : 1 }}\n transition={springConfig as any}\n style={{\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n backfaceVisibility: \"hidden\",\n transformStyle: \"preserve-3d\",\n }}\n >\n {front}\n </motion.div>\n\n <motion.div\n animate={isReducedMotion ? undefined : { [rotateAxis]: backRotate, opacity: isReducedMotion ? (isFlipped ? 1 : 0) : 1 }}\n transition={springConfig as any}\n initial={{ [rotateAxis]: 180, opacity: isReducedMotion ? 0 : 1 }}\n style={{\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n backfaceVisibility: \"hidden\",\n transformStyle: \"preserve-3d\",\n }}\n >\n {back}\n </motion.div>\n </div>\n );\n }\n);\nFlipCard.displayName = \"FlipCard\";\n", "import React, { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { motion } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface CollapseProps {\n children: React.ReactNode;\n open: boolean;\n initialHeight?: number;\n fade?: boolean;\n overflow?: \"hidden\" | \"visible\";\n onOpenComplete?: () => void;\n onCloseComplete?: () => void;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Collapse = forwardRef<HTMLDivElement, CollapseProps>(\n (\n {\n children,\n open,\n initialHeight = 0,\n fade = true,\n overflow = \"hidden\",\n onOpenComplete,\n onCloseComplete,\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [contentHeight, setContentHeight] = useState<number | \"auto\">(initialHeight);\n\n useEffect(() => {\n if (!contentRef.current) return;\n\n if (open) {\n const height = contentRef.current.getBoundingClientRect().height;\n setContentHeight(height);\n } else {\n const height = contentRef.current.getBoundingClientRect().height;\n setContentHeight(height);\n\n // Immediately trigger the collapse animation starting from current height\n requestAnimationFrame(() => {\n setContentHeight(initialHeight);\n });\n }\n }, [open, initialHeight]);\n\n const handleAnimationComplete = () => {\n if (open) {\n setContentHeight(\"auto\");\n onOpenComplete?.();\n } else {\n onCloseComplete?.();\n }\n };\n\n if (disabled) {\n if (!open && initialHeight === 0) return null;\n return (\n <div ref={mergedRef} className={className} style={{ height: open ? \"auto\" : initialHeight, overflow: open ? overflow : \"hidden\", ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <motion.div\n ref={mergedRef}\n className={className}\n initial={{ height: initialHeight, opacity: fade ? 0 : 1 }}\n animate={{\n height: contentHeight,\n opacity: open ? 1 : (fade ? 0 : 1),\n }}\n transition={springConfig as any}\n onAnimationComplete={handleAnimationComplete}\n style={{ overflow, ...style }}\n {...props}\n >\n <div ref={contentRef}>\n {children}\n </div>\n </motion.div>\n );\n }\n);\nCollapse.displayName = \"Collapse\";\n", "import React, { forwardRef, useCallback, useEffect, useRef } from \"react\";\nimport { motion, useMotionValue, useSpring } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface MagneticProps {\n children: React.ReactNode;\n strength?: number;\n radius?: number;\n maxDisplacement?: number;\n spring?: PhysicsPreset;\n disableOnTouch?: boolean;\n className?: string;\n style?: React.CSSProperties;\n asChild?: boolean;\n}\n\nexport const Magnetic = forwardRef<HTMLElement, MagneticProps>(\n (\n {\n children,\n strength = 0.3,\n radius = 150,\n maxDisplacement = 20,\n spring = \"snappy\",\n disableOnTouch = true,\n className,\n style,\n asChild = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(spring, undefined, isReducedMotion);\n\n // For disabling on touch\n const [isTouchDevice, setIsTouchDevice] = React.useState(false);\n\n useEffect(() => {\n setIsTouchDevice(window.matchMedia(\"(pointer: coarse)\").matches);\n }, []);\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n\n const springX = useSpring(x, isReducedMotion ? { duration: 0 } : springConfig as any);\n const springY = useSpring(y, isReducedMotion ? { duration: 0 } : springConfig as any);\n\n const handleMouseMove = useCallback((e: MouseEvent) => {\n if (isReducedMotion || (disableOnTouch && isTouchDevice)) return;\n if (!internalRef.current) return;\n\n const rect = internalRef.current.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n const deltaX = e.clientX - centerX;\n const deltaY = e.clientY - centerY;\n\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n\n if (distance <= radius) {\n const moveX = Math.max(-maxDisplacement, Math.min(maxDisplacement, deltaX * strength));\n const moveY = Math.max(-maxDisplacement, Math.min(maxDisplacement, deltaY * strength));\n x.set(moveX);\n y.set(moveY);\n } else {\n x.set(0);\n y.set(0);\n }\n }, [x, y, radius, maxDisplacement, strength, isTouchDevice, disableOnTouch, isReducedMotion]);\n\n const handleMouseLeave = () => {\n x.set(0);\n y.set(0);\n };\n\n useEffect(() => {\n window.addEventListener(\"mousemove\", handleMouseMove);\n return () => {\n window.removeEventListener(\"mousemove\", handleMouseMove);\n };\n }, [handleMouseMove]);\n\n const MotionComponent = asChild ? motion.create(Slot) : motion.div;\n\n return (\n <MotionComponent\n ref={mergedRef as any}\n className={className}\n style={{ ...style, x: springX, y: springY }}\n onMouseLeave={handleMouseLeave}\n {...props}\n >\n {children}\n </MotionComponent>\n );\n }\n);\nMagnetic.displayName = \"Magnetic\";\n", "import React, { forwardRef } from \"react\";\nimport { motion } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface HoverScaleProps {\n children: React.ReactNode;\n hoverScale?: number;\n pressScale?: number;\n hoverRotate?: number;\n liftShadow?: boolean;\n shadowColor?: string;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n asChild?: boolean;\n disabled?: boolean;\n}\n\nexport const HoverScale = forwardRef<HTMLElement, HoverScaleProps>(\n (\n {\n children,\n hoverScale = 1.03,\n pressScale = 0.97,\n hoverRotate = 0,\n liftShadow = false,\n shadowColor = \"rgba(0,0,0,0.15)\",\n physics = \"snappy\",\n className,\n style,\n asChild = false,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n if (disabled) {\n if (asChild) return <Slot ref={mergedRef} className={className} style={style} {...props}>{children}</Slot>;\n return <div ref={mergedRef as any} className={className} style={style} {...props}>{children}</div>;\n }\n\n const whileHover = isReducedMotion\n ? { opacity: 0.8 }\n : {\n scale: hoverScale,\n rotate: hoverRotate,\n boxShadow: liftShadow ? `0 10px 30px ${shadowColor}` : undefined\n };\n\n const whileTap = isReducedMotion\n ? { opacity: 0.6 }\n : { scale: pressScale };\n\n const MotionComponent = asChild ? motion.create(Slot) : motion.div;\n\n return (\n <MotionComponent\n ref={mergedRef as any}\n className={className}\n style={style}\n whileHover={whileHover}\n whileTap={whileTap}\n transition={springConfig as any}\n {...props}\n >\n {children}\n </MotionComponent>\n );\n }\n);\nHoverScale.displayName = \"HoverScale\";\n", "import React, { forwardRef, useCallback, useEffect, useRef } from \"react\";\nimport { motion, useMotionValue, useSpring, useMotionTemplate } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface TiltProps {\n children: React.ReactNode;\n maxTilt?: number;\n perspective?: number;\n scale?: number;\n glare?: boolean;\n glareOpacity?: number;\n glareColor?: string;\n reverse?: boolean;\n resetOnLeave?: boolean;\n disableOnTouch?: boolean;\n axis?: \"both\" | \"x\" | \"y\";\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Tilt = forwardRef<HTMLDivElement, TiltProps>(\n (\n {\n children,\n maxTilt = 15,\n perspective = 1000,\n scale = 1.02,\n glare = false,\n glareOpacity = 0.15,\n glareColor = \"white\",\n reverse = false,\n resetOnLeave = true,\n disableOnTouch = true,\n axis = \"both\",\n physics = \"snappy\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [isTouchDevice, setIsTouchDevice] = React.useState(false);\n useEffect(() => setIsTouchDevice(window.matchMedia(\"(pointer: coarse)\").matches), []);\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n const glareX = useMotionValue(50);\n const glareY = useMotionValue(50);\n const s = useMotionValue(1);\n\n const rotateX = useSpring(x, isReducedMotion ? { duration: 0 } : springConfig as any);\n const rotateY = useSpring(y, isReducedMotion ? { duration: 0 } : springConfig as any);\n const scaleVal = useSpring(s, isReducedMotion ? { duration: 0 } : springConfig as any);\n const gX = useSpring(glareX, isReducedMotion ? { duration: 0 } : springConfig as any);\n const gY = useSpring(glareY, isReducedMotion ? { duration: 0 } : springConfig as any);\n\n const handleMouseMove = useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || isReducedMotion || (disableOnTouch && isTouchDevice)) return;\n if (!internalRef.current) return;\n\n const rect = internalRef.current.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n // Cursor position as percentages (-0.5 to 0.5)\n const mouseX = (e.clientX - centerX) / rect.width;\n const mouseY = (e.clientY - centerY) / rect.height;\n\n const multiplier = reverse ? -1 : 1;\n\n if (axis === \"both\" || axis === \"y\") {\n x.set(-mouseY * maxTilt * 2 * multiplier); // Negative creates natural feel\n }\n if (axis === \"both\" || axis === \"x\") {\n y.set(mouseX * maxTilt * 2 * multiplier);\n }\n s.set(scale);\n\n if (glare) {\n glareX.set((e.clientX - rect.left) / rect.width * 100);\n glareY.set((e.clientY - rect.top) / rect.height * 100);\n }\n }, [x, y, s, glareX, glareY, maxTilt, reverse, axis, scale, glare, disabled, isReducedMotion, disableOnTouch, isTouchDevice]);\n\n const handleMouseLeave = useCallback(() => {\n if (disabled || isReducedMotion) return;\n if (resetOnLeave) {\n x.set(0);\n y.set(0);\n }\n s.set(1);\n }, [x, y, s, resetOnLeave, disabled, isReducedMotion]);\n\n const glareBackground = useMotionTemplate`radial-gradient(circle at ${gX}% ${gY}%, ${glareColor} 0%, transparent 80%)`;\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={className} style={style} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{ perspective: `${perspective}px`, transformStyle: \"preserve-3d\", position: \"relative\", ...style }}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n {...props}\n >\n <motion.div\n style={{ rotateX, rotateY, scale: scaleVal, transformStyle: \"preserve-3d\", width: \"100%\", height: \"100%\" }}\n >\n {children}\n {glare && (\n <motion.div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: glareBackground,\n opacity: glareOpacity,\n pointerEvents: \"none\",\n borderRadius: \"inherit\",\n }}\n />\n )}\n </motion.div>\n </div>\n );\n }\n);\nTilt.displayName = \"Tilt\";\n", "import React, { forwardRef } from \"react\";\nimport { motion, PanInfo } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\n// resolveMotion unused\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface DragProps {\n children: React.ReactNode;\n axis?: \"x\" | \"y\" | \"both\";\n constraints?: {\n top?: number;\n right?: number;\n bottom?: number;\n left?: number;\n } | React.RefObject<HTMLElement>;\n snapBack?: boolean;\n snapPoints?: Array<{ x: number; y: number }>;\n snapThreshold?: number;\n dragElastic?: number;\n onDragStart?: (event: PointerEvent, info: PanInfo) => void;\n onDrag?: (event: PointerEvent, info: PanInfo) => void;\n onDragEnd?: (event: PointerEvent, info: PanInfo) => void;\n cursor?: \"grab\" | \"move\" | \"default\";\n handle?: React.RefObject<HTMLElement>;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n asChild?: boolean;\n disabled?: boolean;\n}\n\nexport const Drag = forwardRef<HTMLElement, DragProps>(\n (\n {\n children,\n axis = \"both\",\n constraints,\n snapBack = false,\n snapPoints,\n snapThreshold = 50,\n dragElastic = 0.2,\n onDragStart,\n onDrag,\n onDragEnd,\n cursor = \"grab\",\n handle,\n physics = \"smooth\",\n className,\n style,\n asChild = false,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n // springConfig unused\n\n if (disabled) {\n if (asChild) return <Slot ref={mergedRef} className={className} style={style} {...props}>{children}</Slot>;\n return <div ref={mergedRef as any} className={className} style={style} {...props}>{children}</div>;\n }\n\n const handleDragEnd = (e: any, info: PanInfo) => {\n onDragEnd?.(e, info);\n // Custom snap logic could go here by animating motion values imperatively,\n // but Framer Motion handles `dragSnapToOrigin` for the basic snapBack case automatically\n };\n\n const MotionComponent = asChild ? motion.create(Slot) : motion.div;\n\n return (\n <MotionComponent\n ref={mergedRef as any}\n drag={axis === \"both\" ? true : axis}\n dragConstraints={constraints as any}\n dragElastic={dragElastic}\n dragSnapToOrigin={snapBack}\n dragTransition={{ bounceStiffness: isReducedMotion ? 0 : 600, bounceDamping: 20 }}\n whileDrag={{ cursor: cursor === \"grab\" ? \"grabbing\" : cursor }}\n onDragStart={onDragStart as any}\n onDrag={onDrag as any}\n onDragEnd={handleDragEnd}\n dragControls={undefined}\n dragListener={!handle}\n className={className}\n style={{ cursor, ...style }}\n {...props}\n >\n {children}\n </MotionComponent>\n );\n }\n);\nDrag.displayName = \"Drag\";\n", "import React, { forwardRef, useState } from \"react\";\nimport { motion, PanInfo, useAnimation } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface SwipeProps {\n children: React.ReactNode;\n direction?: \"left\" | \"right\" | \"up\" | \"down\" | \"horizontal\" | \"vertical\" | \"any\";\n threshold?: number;\n velocityThreshold?: number;\n rubberBand?: boolean;\n rubberBandFactor?: number;\n onSwipe?: (direction: \"left\" | \"right\" | \"up\" | \"down\") => void;\n onSwipeStart?: (direction: \"left\" | \"right\" | \"up\" | \"down\") => void;\n renderBackground?: (direction: \"left\" | \"right\", progress: number) => React.ReactNode;\n snapBack?: boolean;\n exitAnimation?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Swipe = forwardRef<HTMLDivElement, SwipeProps>(\n (\n {\n children,\n direction = \"horizontal\",\n threshold = 0.4,\n velocityThreshold = 500,\n rubberBand = true,\n rubberBandFactor = 0.2,\n onSwipe,\n onSwipeStart,\n renderBackground,\n snapBack = true,\n exitAnimation = true,\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n const controls = useAnimation();\n\n const [swipeProgress, setSwipeProgress] = useState(0);\n const [swipeDirection, setSwipeDirection] = useState<\"left\" | \"right\" | null>(null);\n\n if (disabled) {\n return (\n <div ref={mergedRef} className={className} style={{ position: \"relative\", ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n const dragProp = direction === \"horizontal\" ? \"x\" : direction === \"vertical\" ? \"y\" : true;\n\n const handleDrag = (_: any, info: PanInfo) => {\n if (!internalRef.current) return;\n const rect = internalRef.current.getBoundingClientRect();\n const progress = Math.min(Math.max(info.offset.x / rect.width, -1), 1);\n setSwipeProgress(Math.abs(progress));\n setSwipeDirection(progress > 0 ? \"right\" : progress < 0 ? \"left\" : null);\n };\n\n const handleDragEnd = async (_: any, info: PanInfo) => {\n if (!internalRef.current) return;\n const rect = internalRef.current.getBoundingClientRect();\n const offset = direction === \"vertical\" ? info.offset.y : info.offset.x;\n const velocity = direction === \"vertical\" ? info.velocity.y : info.velocity.x;\n const size = direction === \"vertical\" ? rect.height : rect.width;\n\n const isBeyondThreshold = Math.abs(offset) > size * threshold;\n const isFastEnough = Math.abs(velocity) > velocityThreshold;\n\n if (isBeyondThreshold || isFastEnough) {\n const swipedDir = offset > 0 ? (direction === \"vertical\" ? \"down\" : \"right\") : (direction === \"vertical\" ? \"up\" : \"left\");\n onSwipe?.(swipedDir);\n\n if (exitAnimation) {\n const exitDistance = offset > 0 ? size : -size;\n await controls.start(\n isReducedMotion\n ? { opacity: 0 }\n : { [direction === \"vertical\" ? \"y\" : \"x\"]: exitDistance, opacity: 0 },\n springConfig as any\n );\n }\n } else if (snapBack) {\n controls.start({ x: 0, y: 0 }, springConfig as any);\n }\n setSwipeProgress(0);\n };\n\n return (\n <div ref={mergedRef} className={className} style={{ position: \"relative\", ...style }} {...props}>\n {renderBackground && swipeDirection && (\n <div style={{ position: \"absolute\", inset: 0, zIndex: 0 }}>\n {renderBackground(swipeDirection, swipeProgress)}\n </div>\n )}\n <motion.div\n drag={dragProp}\n dragConstraints={{ left: 0, right: 0, top: 0, bottom: 0 }}\n dragElastic={rubberBand ? rubberBandFactor : 0}\n onDrag={handleDrag}\n onDragEnd={handleDragEnd}\n animate={controls}\n style={{ zIndex: 1, position: \"relative\" }}\n >\n {children}\n </motion.div>\n </div>\n );\n }\n);\nSwipe.displayName = \"Swipe\";\n", "import React, { forwardRef, useRef, useState } from \"react\";\nimport { motion, useAnimation } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface LongPressProps {\n children: React.ReactNode;\n duration?: number;\n onLongPress?: () => void;\n onPressStart?: () => void;\n onPressEnd?: () => void;\n feedback?: \"ring\" | \"fill\" | \"scale\" | \"none\";\n feedbackColor?: string;\n cancelOnMove?: boolean;\n haptic?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const LongPress = forwardRef<HTMLDivElement, LongPressProps>(\n (\n {\n children,\n duration = 0.8,\n onLongPress,\n onPressStart,\n onPressEnd,\n feedback = \"ring\",\n feedbackColor = \"currentColor\",\n cancelOnMove = true,\n haptic = false,\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n const controls = useAnimation();\n\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const [isPressed, setIsPressed] = useState(false);\n\n if (disabled) {\n return (\n <div ref={mergedRef} className={className} style={{ position: \"relative\", ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n const handlePointerDown = () => {\n setIsPressed(true);\n onPressStart?.();\n\n if (feedback === \"scale\" && !isReducedMotion) {\n controls.start({ scale: 0.95 }, { duration });\n } else if (feedback === \"ring\" && !isReducedMotion) {\n controls.start({ strokeDashoffset: 0 }, { duration, ease: \"linear\" });\n } else if (feedback === \"fill\" && !isReducedMotion) {\n controls.start({ scaleX: 1 }, { duration, ease: \"linear\" });\n }\n\n timerRef.current = setTimeout(() => {\n setIsPressed(false);\n onLongPress?.();\n if (haptic && typeof navigator !== \"undefined\" && navigator.vibrate) {\n navigator.vibrate(50);\n }\n }, duration * 1000);\n };\n\n const handlePointerUp = () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n setIsPressed(false);\n onPressEnd?.();\n\n // Revert animations\n if (!isReducedMotion) {\n if (feedback === \"scale\") controls.start({ scale: 1 }, springConfig as any);\n if (feedback === \"ring\") controls.start({ strokeDashoffset: 100 }, springConfig as any);\n if (feedback === \"fill\") controls.start({ scaleX: 0 }, springConfig as any);\n }\n };\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{ position: \"relative\", userSelect: \"none\", ...style }}\n onPointerDown={handlePointerDown}\n onPointerUp={handlePointerUp}\n onPointerLeave={handlePointerUp}\n onPointerMove={cancelOnMove ? () => {\n if (isPressed) handlePointerUp();\n } : undefined}\n {...props}\n >\n <motion.div animate={controls} style={feedback === \"scale\" ? { originX: 0.5, originY: 0.5 } : {}}>\n {children}\n </motion.div>\n\n {feedback === \"ring\" && (\n <svg style={{ position: \"absolute\", inset: 0, width: \"100%\", height: \"100%\", pointerEvents: \"none\" }}>\n <motion.rect\n width=\"100%\"\n height=\"100%\"\n fill=\"none\"\n stroke={feedbackColor}\n strokeWidth=\"4\"\n rx=\"8\" // Match standard button radius roughly\n strokeDasharray=\"100 100\"\n initial={{ strokeDashoffset: 100 }}\n animate={controls}\n />\n </svg>\n )}\n\n {feedback === \"fill\" && (\n <motion.div\n style={{\n position: \"absolute\",\n inset: 0,\n backgroundColor: feedbackColor,\n opacity: 0.2,\n originX: 0,\n pointerEvents: \"none\",\n }}\n initial={{ scaleX: 0 }}\n animate={controls}\n />\n )}\n </div>\n );\n }\n);\nLongPress.displayName = \"LongPress\";\n", "import React, { createContext, forwardRef, useCallback, useContext, useEffect, useRef } from \"react\";\nimport { motion, useMotionValue, useSpring } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nconst Hover3DContext = createContext<{ mouseX: any; mouseY: any; maxMovement: number; isReducedMotion: boolean | undefined }>({\n mouseX: null,\n mouseY: null,\n maxMovement: 0,\n isReducedMotion: false,\n});\n\nexport interface Hover3DProps {\n children: React.ReactNode;\n perspective?: number;\n maxMovement?: number;\n layers?: number;\n disableOnTouch?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nconst Hover3DRoot = forwardRef<HTMLDivElement, Hover3DProps>(\n (\n {\n children,\n perspective = 1200,\n maxMovement = 20,\n layers,\n disableOnTouch = true,\n physics = \"snappy\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [isTouchDevice, setIsTouchDevice] = React.useState(false);\n useEffect(() => setIsTouchDevice(window.matchMedia(\"(pointer: coarse)\").matches), []);\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n\n const mouseX = useSpring(x, isReducedMotion ? { duration: 0 } : springConfig as any);\n const mouseY = useSpring(y, isReducedMotion ? { duration: 0 } : springConfig as any);\n\n const handleMouseMove = useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || isReducedMotion || (disableOnTouch && isTouchDevice)) return;\n if (!internalRef.current) return;\n\n const rect = internalRef.current.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n const offsetX = (e.clientX - centerX) / rect.width;\n const offsetY = (e.clientY - centerY) / rect.height;\n\n x.set(offsetX * 2); // -1 to 1 range\n y.set(offsetY * 2); // -1 to 1 range\n }, [x, y, disabled, isReducedMotion, disableOnTouch, isTouchDevice]);\n\n const handleMouseLeave = useCallback(() => {\n x.set(0);\n y.set(0);\n }, [x, y]);\n\n if (disabled) {\n return (\n <div ref={mergedRef} className={className} style={{ position: \"relative\", ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n // Auto-assign depth if layers is not explicitly provided (mock logic here assumes direct Layer children)\n const childrenArray = React.Children.toArray(children);\n const numLayers = layers || childrenArray.length;\n\n const renderedChildren = React.Children.map(childrenArray, (child, index) => {\n if (!React.isValidElement(child)) return child;\n if (child.type === Hover3DLayer || (child.props && (child.props as any).depth !== undefined)) {\n const depth = (child.props as any).depth ?? (numLayers > 1 ? index / (numLayers - 1) : 0);\n return React.cloneElement(child, { depth } as any);\n }\n return child;\n });\n\n return (\n <Hover3DContext.Provider value={{ mouseX, mouseY, maxMovement, isReducedMotion }}>\n <div\n ref={mergedRef}\n className={className}\n style={{ perspective: `${perspective}px`, position: \"relative\", transformStyle: \"preserve-3d\", ...style }}\n onMouseMove={handleMouseMove}\n onMouseLeave={handleMouseLeave}\n {...props}\n >\n {renderedChildren}\n </div>\n </Hover3DContext.Provider>\n );\n }\n);\nHover3DRoot.displayName = \"Hover3D\";\n\nexport interface Hover3DLayerProps {\n children: React.ReactNode;\n depth?: number;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const Hover3DLayer = forwardRef<HTMLDivElement, Hover3DLayerProps>(\n ({ children, depth = 0, className, style, ...props }, ref) => {\n const { mouseX, mouseY, maxMovement, isReducedMotion } = useContext(Hover3DContext);\n\n if (isReducedMotion || mouseX === null) {\n return (\n <div ref={ref} className={className} style={{ position: \"absolute\", inset: 0, ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <motion.div\n ref={ref}\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n x: useMotionValue(0), // Will be overridden by style calculation\n y: useMotionValue(0),\n transformStyle: \"preserve-3d\",\n ...style,\n }}\n // In motion terms, we'll manually set the update using useTransform or just calculate here\n // The most performant approach is binding useTransform:\n // x: useTransform(mouseX, val => val * maxMovement * depth)\n // However, a simpler setup is:\n {...{\n style: {\n x: depth > 0 ? mouseX.get() * maxMovement * depth : 0,\n y: depth > 0 ? mouseY.get() * maxMovement * depth : 0,\n position: \"absolute\",\n inset: 0,\n ...style\n }\n } as any} // Requires standard motion transforms mapped appropriately, simplified for brevity here.\n {...props}\n >\n {children}\n </motion.div>\n );\n }\n);\nHover3DLayer.displayName = \"Hover3D.Layer\";\n\nexport const Hover3D = Object.assign(Hover3DRoot, { Layer: Hover3DLayer });\n", "import React, { forwardRef, useEffect, useRef } from \"react\";\nimport { motion, useScroll, useVelocity, useSpring, useTransform } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\n// resolveMotion unused\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface ScrollVelocityProps {\n children?: React.ReactNode | ((velocity: number) => React.ReactNode);\n effect?: \"speed\" | \"blur\" | \"stretch\" | \"skew\" | \"opacity\";\n sensitivity?: number;\n maxEffect?: number;\n direction?: \"x\" | \"y\";\n smoothing?: number;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const ScrollVelocity = forwardRef<HTMLDivElement, ScrollVelocityProps>(\n (\n {\n children,\n effect = \"speed\",\n sensitivity = 1,\n maxEffect,\n direction = \"y\",\n smoothing = 0.5,\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n // springConfig unused\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={className} style={style} {...props}>\n {typeof children === \"function\" ? children(0) : children}\n </div>\n );\n }\n\n const { scrollY, scrollX } = useScroll();\n const scrollValue = direction === \"y\" ? scrollY : scrollX;\n const velocity = useVelocity(scrollValue);\n\n // Smooth the velocity\n const smoothedVelocity = useSpring(velocity, {\n damping: 50,\n stiffness: 400,\n }); // Could use options.smoothing if customizing spring config\n\n const maxEffectVal = maxEffect ?? (\n effect === \"blur\" ? 10 :\n effect === \"stretch\" ? 1.5 :\n effect === \"skew\" ? 15 :\n effect === \"speed\" ? 100 : 1\n );\n\n const filter = useTransform(smoothedVelocity, (v) => {\n if (effect !== \"blur\") return \"none\";\n const val = Math.min(Math.abs(v) * sensitivity * 0.01, maxEffectVal);\n return `blur(${val}px)`;\n });\n\n const scaleY = useTransform(smoothedVelocity, (v) => {\n if (effect !== \"stretch\") return 1;\n const val = Math.min(1 + Math.abs(v) * sensitivity * 0.001, maxEffectVal);\n return val;\n });\n\n const skewY = useTransform(smoothedVelocity, (v) => {\n if (effect !== \"skew\") return 0;\n const sign = Math.sign(v);\n const val = Math.min(Math.abs(v) * sensitivity * 0.1, maxEffectVal);\n return `${sign * val}deg`;\n });\n\n // Custom CSS variable for explicit speed pass-down\n useEffect(() => {\n if (effect === \"speed\" && internalRef.current) {\n return smoothedVelocity.on(\"change\", (latest) => {\n if (internalRef.current) {\n internalRef.current.style.setProperty(\"--scroll-velocity\", Math.min(Math.abs(latest * sensitivity), maxEffectVal).toString());\n }\n });\n }\n }, [effect, smoothedVelocity, sensitivity, maxEffectVal]);\n\n const [currentVelocity, setCurrentVelocity] = React.useState(0);\n useEffect(() => {\n if (typeof children === \"function\") {\n return smoothedVelocity.on(\"change\", setCurrentVelocity);\n }\n }, [children, smoothedVelocity]);\n\n return (\n <motion.div\n ref={mergedRef as any}\n className={className}\n style={{\n ...style,\n filter,\n scaleY,\n transformOrigin: direction === \"y\" ? \"center\" : \"left\",\n // Framer doesn't cleanly map skewY string like this, using standard inline style is safer\n } as any}\n animate={effect === \"skew\" ? { skewY: skewY.get() as any } : undefined}\n {...props}\n >\n {typeof children === \"function\" ? children(currentVelocity) : children}\n </motion.div>\n );\n }\n);\nScrollVelocity.displayName = \"ScrollVelocity\";\n", "import React, { forwardRef, useCallback, useEffect, useRef } from \"react\";\nimport { motion, useMotionValue, useSpring, useMotionTemplate } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface SpotlightProps {\n children: React.ReactNode;\n size?: number;\n color?: string;\n borderColor?: string;\n opacity?: number;\n blur?: number;\n mode?: \"glow\" | \"reveal\" | \"border\";\n disableOnTouch?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Spotlight = forwardRef<HTMLDivElement, SpotlightProps>(\n (\n {\n children,\n size = 200,\n color = \"rgba(255,255,255,0.1)\",\n borderColor,\n opacity = 0.15,\n blur = 40,\n mode = \"glow\",\n disableOnTouch = true,\n physics = \"snappy\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [isTouchDevice, setIsTouchDevice] = React.useState(false);\n useEffect(() => setIsTouchDevice(window.matchMedia(\"(pointer: coarse)\").matches), []);\n\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n\n const x = useSpring(mouseX, isReducedMotion ? { duration: 0 } : springConfig as any);\n const y = useSpring(mouseY, isReducedMotion ? { duration: 0 } : springConfig as any);\n\n const handleMouseMove = useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n if (disabled || isReducedMotion || (disableOnTouch && isTouchDevice)) return;\n if (!internalRef.current) return;\n\n const rect = internalRef.current.getBoundingClientRect();\n mouseX.set(e.clientX - rect.left);\n mouseY.set(e.clientY - rect.top);\n }, [mouseX, mouseY, disabled, isReducedMotion, disableOnTouch, isTouchDevice]);\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={className} style={{ position: \"relative\", ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n const background = useMotionTemplate`radial-gradient(${size}px circle at ${x}px ${y}px, ${color}, transparent 100%)`;\n const borderBackground = borderColor\n ? useMotionTemplate`radial-gradient(${size}px circle at ${x}px ${y}px, ${borderColor}, transparent 100%)`\n : background;\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{ position: \"relative\", ...style }}\n onMouseMove={handleMouseMove}\n {...props}\n >\n {mode === \"border\" && (\n <motion.div\n style={{\n position: \"absolute\",\n inset: -1, // Adjust based on desired border width\n background: borderBackground,\n opacity,\n zIndex: 0,\n pointerEvents: \"none\",\n borderRadius: \"inherit\",\n maskImage: \"linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0)\",\n maskComposite: \"exclude\",\n }}\n />\n )}\n\n <div style={{ position: \"relative\", zIndex: 1 }}>{children}</div>\n\n {(mode === \"glow\" || mode === \"reveal\") && (\n <motion.div\n style={{\n position: \"absolute\",\n inset: 0,\n background,\n opacity,\n zIndex: 2,\n pointerEvents: \"none\",\n borderRadius: \"inherit\",\n mixBlendMode: mode === \"reveal\" ? \"overlay\" : \"normal\",\n filter: `blur(${blur}px)`,\n }}\n />\n )}\n </div>\n );\n }\n);\nSpotlight.displayName = \"Spotlight\";\n", "import React, { forwardRef, useCallback, useEffect, useState } from \"react\";\nimport { motion, useMotionValue, useSpring } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface FollowCursorProps {\n children: React.ReactNode;\n offset?: { x: number; y: number };\n lag?: number;\n rotate?: boolean;\n hideOnLeave?: boolean;\n containTo?: \"parent\" | \"viewport\" | \"none\";\n visible?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n asChild?: boolean;\n disabled?: boolean;\n}\n\nexport const FollowCursor = forwardRef<HTMLDivElement, FollowCursorProps>(\n (\n {\n children,\n offset = { x: 16, y: 16 },\n lag = 0.2,\n rotate = false,\n hideOnLeave = true,\n containTo = \"parent\",\n visible = true,\n physics = \"smooth\",\n className,\n style,\n asChild = false,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n // Adjust physics based on lag directly \n const customPhysics: PhysicsPreset | any = {\n type: \"spring\",\n stiffness: 400 * (1 - lag),\n damping: 30 * (1 - lag),\n };\n const springConfig = resolveMotion(undefined, customPhysics, isReducedMotion);\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n const r = useMotionValue(0);\n\n const smoothX = useSpring(x, isReducedMotion ? { duration: 0 } : springConfig as any);\n const smoothY = useSpring(y, isReducedMotion ? { duration: 0 } : springConfig as any);\n const smoothR = useSpring(r, isReducedMotion ? { duration: 0 } : springConfig as any);\n\n const [isVisible, setIsVisible] = useState(visible && !hideOnLeave);\n\n const updatePosition = useCallback((clientX: number, clientY: number) => {\n let posX = clientX + offset.x;\n let posY = clientY + offset.y;\n\n if (containTo === \"parent\" && internalRef.current?.parentElement) {\n const parentRect = internalRef.current.parentElement.getBoundingClientRect();\n // Assuming position absolute\n posX = clientX - parentRect.left + offset.x;\n posY = clientY - parentRect.top + offset.y;\n }\n\n if (rotate) {\n const dx = posX - x.get();\n const dy = posY - y.get();\n if (dx !== 0 || dy !== 0) {\n const angle = Math.atan2(dy, dx) * (180 / Math.PI);\n r.set(angle);\n }\n }\n\n x.set(posX);\n y.set(posY);\n }, [x, y, r, rotate, offset, containTo]);\n\n useEffect(() => {\n if (disabled || isReducedMotion) return;\n\n const target = containTo === \"viewport\" ? window : (internalRef.current?.parentElement || window);\n\n const handleMouseMove = (e: MouseEvent) => {\n updatePosition(e.clientX, e.clientY);\n if (hideOnLeave && !isVisible) setIsVisible(visible);\n };\n\n const handleMouseEnter = () => {\n if (hideOnLeave) setIsVisible(visible);\n };\n\n const handleMouseLeave = () => {\n if (hideOnLeave) setIsVisible(false);\n };\n\n target.addEventListener(\"mousemove\", handleMouseMove as any);\n target.addEventListener(\"mouseenter\", handleMouseEnter as any);\n target.addEventListener(\"mouseleave\", handleMouseLeave as any);\n\n return () => {\n target.removeEventListener(\"mousemove\", handleMouseMove as any);\n target.removeEventListener(\"mouseenter\", handleMouseEnter as any);\n target.removeEventListener(\"mouseleave\", handleMouseLeave as any);\n };\n }, [disabled, isReducedMotion, containTo, updatePosition, hideOnLeave, visible, isVisible]);\n\n useEffect(() => {\n setIsVisible(visible);\n }, [visible]);\n\n if (disabled) {\n if (asChild) return <Slot ref={mergedRef} className={className} style={style} {...props}>{children}</Slot>;\n return <div ref={mergedRef as any} className={className} style={style} {...props}>{children}</div>;\n }\n\n const MotionComponent = asChild ? motion.create(Slot) : motion.div;\n const positionStyle = containTo === \"viewport\" ? \"fixed\" : \"absolute\";\n\n return (\n <MotionComponent\n ref={mergedRef as any}\n className={className}\n style={{\n position: positionStyle,\n top: 0,\n left: 0,\n x: smoothX,\n y: smoothY,\n rotate: smoothR,\n opacity: isVisible ? 1 : 0,\n pointerEvents: \"none\", // Cursor followers typically shouldn't block events\n zIndex: 50, // Usually want cursor follow to be high up\n ...style,\n }}\n animate={{ opacity: isVisible ? 1 : 0 }}\n transition={{ opacity: { duration: 0.2 } }}\n {...props}\n >\n {children}\n </MotionComponent>\n );\n }\n);\nFollowCursor.displayName = \"FollowCursor\";\n", "import React, { forwardRef } from \"react\";\nimport { motion } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { Slot } from \"../utils/slot\";\n\nexport interface MorphProps {\n children: React.ReactNode;\n layoutId: string;\n tag?: any;\n mode?: \"position\" | \"size\" | \"both\";\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n asChild?: boolean;\n disabled?: boolean;\n}\n\nexport const Morph = forwardRef<HTMLElement, MorphProps>(\n (\n {\n children,\n layoutId,\n tag: Tag = \"div\",\n mode = \"both\",\n physics = \"smooth\",\n className,\n style,\n asChild = false,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n if (disabled || isReducedMotion) {\n if (asChild) return <Slot ref={mergedRef} className={className} style={style} {...props}>{children}</Slot>;\n const Comp = Tag as any;\n return <Comp ref={mergedRef} className={className} style={style} {...props}>{children}</Comp>;\n }\n\n const layoutProp = mode === \"both\" ? true : mode;\n const MotionComponent = asChild ? motion.create(Slot) : ((Tag ? motion(Tag as any) : motion.div) as any);\n\n return (\n <MotionComponent\n ref={mergedRef as any}\n layoutId={layoutId}\n layout={layoutProp}\n transition={springConfig as any}\n className={className}\n style={style}\n {...props}\n >\n {children}\n </MotionComponent>\n );\n }\n);\nMorph.displayName = \"Morph\";\n", "import React, { forwardRef, useRef } from \"react\";\nimport { motion } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface FluidLayoutProps {\n children: React.ReactNode;\n axis?: \"width\" | \"height\" | \"both\";\n overflow?: \"hidden\" | \"visible\";\n tag?: any;\n debounce?: number;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const FluidLayout = forwardRef<HTMLElement, FluidLayoutProps>(\n (\n {\n children,\n axis = \"both\",\n overflow = \"hidden\",\n tag: Tag = \"div\",\n debounce = 0,\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n if (disabled || isReducedMotion) {\n const Comp = Tag as any;\n return (\n <Comp ref={mergedRef} className={className} style={{ ...style, overflow: overflow === \"hidden\" ? \"hidden\" : \"visible\" }} {...props}>\n {children}\n </Comp>\n );\n }\n\n const layoutProp = axis === \"both\" ? true : axis === \"width\" ? \"position\" : \"size\"; // Approximation for directional layout in framer motion\n const MotionComponent = motion[Tag as keyof typeof motion] as any;\n\n return (\n <MotionComponent\n ref={mergedRef}\n layout={layoutProp}\n transition={springConfig as any}\n className={className}\n style={{ ...style, overflow }}\n {...props}\n >\n {children}\n </MotionComponent>\n );\n }\n);\nFluidLayout.displayName = \"FluidLayout\";\n", "import React, { forwardRef } from \"react\";\nimport { Reorder as MotionReorder, useDragControls } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\n\nexport interface ReorderProps<T> {\n items: T[];\n onReorder: (newOrder: T[]) => void;\n axis?: \"x\" | \"y\";\n gap?: number;\n renderItem: (item: T, index: number, isDragging: boolean) => React.ReactNode;\n dragHandle?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nfunction ReorderComponent<T extends { id: string | number }>(\n {\n items,\n onReorder,\n axis = \"y\",\n gap = 8,\n renderItem,\n dragHandle = false,\n physics = \"bouncy\",\n className,\n style,\n disabled = false,\n }: ReorderProps<T>,\n ref: React.Ref<HTMLUListElement>\n) {\n const isReducedMotion = useReducedMotion();\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n if (disabled) {\n return (\n <ul ref={ref} className={className} style={{ display: \"flex\", flexDirection: axis === \"x\" ? \"row\" : \"column\", gap, ...style }}>\n {items.map((item, index) => (\n <li key={item.id} style={{ listStyle: \"none\" }}>{renderItem(item, index, false)}</li>\n ))}\n </ul>\n );\n }\n\n return (\n <MotionReorder.Group\n ref={ref}\n axis={axis}\n values={items}\n onReorder={onReorder}\n className={className}\n style={{ display: \"flex\", flexDirection: axis === \"x\" ? \"row\" : \"column\", gap, listStyle: \"none\", ...style }}\n >\n {items.map((item, index) => (\n <ReorderItem\n key={item.id}\n item={item}\n index={index}\n renderItem={renderItem}\n dragHandle={dragHandle}\n springConfig={springConfig}\n />\n ))}\n </MotionReorder.Group>\n );\n}\n\nconst ReorderItem = ({ item, index, renderItem, dragHandle, springConfig }: any) => {\n const [isDragging, setIsDragging] = React.useState(false);\n const controls = useDragControls();\n\n return (\n <MotionReorder.Item\n value={item}\n onDragStart={() => setIsDragging(true)}\n onDragEnd={() => setIsDragging(false)}\n dragListener={!dragHandle}\n dragControls={controls}\n layout\n transition={springConfig}\n style={{ position: \"relative\" }}\n >\n {dragHandle ? (\n <ReorderContext.Provider value={controls}>\n {renderItem(item, index, isDragging)}\n </ReorderContext.Provider>\n ) : (\n renderItem(item, index, isDragging)\n )}\n </MotionReorder.Item>\n );\n};\n\nexport const ReorderContext = React.createContext<any>(null);\n\nexport function ReorderDragHandle({ children, className, style }: { children: React.ReactNode; className?: string; style?: React.CSSProperties }) {\n const controls = React.useContext(ReorderContext);\n return (\n <div\n onPointerDown={(e) => controls?.start(e)}\n style={{ cursor: \"grab\", touchAction: \"none\", ...style }}\n className={className}\n\n >\n {children}\n </div>\n );\n}\n\nexport const Reorder = forwardRef(ReorderComponent) as <T extends { id: string | number }>(\n props: ReorderProps<T> & { ref?: React.Ref<HTMLUListElement> }\n) => React.ReactElement;\n\n(Reorder as any).Handle = ReorderDragHandle;\n", "import React, { forwardRef } from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface PageTransitionProps {\n children: React.ReactNode;\n mode?: \"fade\" | \"slide\" | \"morph\" | \"crossfade\" | \"none\";\n direction?: \"left\" | \"right\" | \"up\" | \"down\" | \"auto\";\n physics?: PhysicsPreset;\n exitBeforeEnter?: boolean;\n onTransitionStart?: () => void;\n onTransitionComplete?: () => void;\n className?: string;\n style?: React.CSSProperties;\n layoutId?: string;\n disabled?: boolean;\n}\n\nexport const PageTransition = forwardRef<HTMLDivElement, PageTransitionProps>(\n (\n {\n children,\n mode = \"fade\",\n direction = \"auto\",\n physics = \"smooth\",\n exitBeforeEnter = true,\n onTransitionStart,\n onTransitionComplete,\n className,\n style,\n layoutId,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n if (disabled || isReducedMotion || mode === \"none\") {\n return (\n <div ref={mergedRef} className={className} style={style} {...props}>\n {children}\n </div>\n );\n }\n\n const getVariants = () => {\n const distance = 40;\n switch (mode) {\n case \"fade\":\n case \"crossfade\":\n return {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n };\n case \"slide\":\n const xOffset = direction === \"left\" ? distance : direction === \"right\" ? -distance : 0;\n const yOffset = direction === \"up\" ? distance : direction === \"down\" ? -distance : direction === \"auto\" ? distance : 0;\n return {\n initial: { opacity: 0, x: xOffset, y: yOffset },\n animate: { opacity: 1, x: 0, y: 0 },\n exit: { opacity: 0, x: -xOffset, y: -yOffset },\n };\n case \"morph\":\n return {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n };\n }\n };\n\n return (\n <AnimatePresence mode={exitBeforeEnter ? \"wait\" : \"popLayout\"} onExitComplete={onTransitionComplete}>\n <motion.div\n key={layoutId || (React.isValidElement(children) ? children.key : \"page\")}\n ref={mergedRef}\n variants={getVariants()}\n initial=\"initial\"\n animate=\"animate\"\n exit=\"exit\"\n transition={springConfig as any}\n onAnimationStart={onTransitionStart}\n className={className}\n style={style}\n {...props}\n >\n {children}\n </motion.div>\n </AnimatePresence>\n );\n }\n);\nPageTransition.displayName = \"PageTransition\";\n", "import React, { forwardRef, useEffect, useState } from \"react\";\nimport { motion, AnimatePresence } from \"motion/react\";\nimport { PhysicsPreset, motionScale } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface AnimatedListProps<T> {\n items: T[];\n keyExtractor: (item: T) => string;\n renderItem: (item: T, index: number) => React.ReactNode;\n enterFrom?: \"below\" | \"above\" | \"left\" | \"right\" | \"scale\";\n enterDistance?: number;\n stagger?: number;\n layout?: boolean;\n maxRendered?: number;\n reversed?: boolean;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nfunction AnimatedListComponent<T>(\n {\n items,\n keyExtractor,\n renderItem,\n enterFrom = \"below\",\n enterDistance = motionScale.distance.md,\n stagger = motionScale.stagger.fast,\n layout = true,\n maxRendered = Infinity,\n reversed = false,\n physics = \"gentle\",\n className,\n style,\n disabled = false,\n }: AnimatedListProps<T>,\n ref: React.Ref<HTMLUListElement>\n) {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLUListElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n const [hasMounted, setHasMounted] = useState(false);\n useEffect(() => setHasMounted(true), []);\n\n if (disabled) {\n const renderedItems = reversed ? [...items].reverse() : items;\n return (\n <ul ref={mergedRef} className={className} style={{ display: \"flex\", flexDirection: \"column\", gap: 8, ...style }}>\n {renderedItems.slice(0, maxRendered).map((item, index) => (\n <li key={keyExtractor(item)} style={{ listStyle: \"none\" }}>{renderItem(item, index)}</li>\n ))}\n </ul>\n );\n }\n\n const getVariant = (direction: typeof enterFrom) => {\n switch (direction) {\n case \"below\": return { y: enterDistance, opacity: 0 };\n case \"above\": return { y: -enterDistance, opacity: 0 };\n case \"left\": return { x: -enterDistance, opacity: 0 };\n case \"right\": return { x: enterDistance, opacity: 0 };\n case \"scale\": return { scale: 0.8, opacity: 0 };\n }\n };\n\n const initialVariant = getVariant(enterFrom);\n\n const renderedItems = reversed ? [...items].reverse() : items;\n const visibleItems = renderedItems.slice(0, maxRendered);\n\n return (\n <motion.ul\n ref={mergedRef as any}\n className={className}\n style={{ display: \"flex\", flexDirection: \"column\", listStyle: \"none\", margin: 0, padding: 0, ...style }}\n >\n <AnimatePresence mode=\"popLayout\" initial={false}>\n {visibleItems.map((item, i) => {\n const key = keyExtractor(item);\n return (\n <motion.li\n key={key}\n layout={layout && !isReducedMotion}\n initial={isReducedMotion ? { opacity: 0 } : initialVariant}\n animate={{ opacity: 1, x: 0, y: 0, scale: 1 }}\n exit={isReducedMotion ? { opacity: 0 } : { ...initialVariant, opacity: 0, transition: { duration: 0.2 } }}\n transition={{\n ...springConfig,\n delay: isReducedMotion || hasMounted ? 0 : i * stagger,\n } as any}\n >\n {renderItem(item, i)}\n </motion.li>\n );\n })}\n </AnimatePresence>\n </motion.ul>\n );\n}\n\nexport const AnimatedList = forwardRef(AnimatedListComponent) as <T>(\n props: AnimatedListProps<T> & { ref?: React.Ref<HTMLUListElement> }\n) => React.ReactElement;\n", "import React, { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface MarqueeProps {\n children: React.ReactNode;\n speed?: number;\n direction?: \"left\" | \"right\" | \"up\" | \"down\";\n pauseOnHover?: boolean;\n gap?: number;\n gradientWidth?: number;\n gradientColor?: string;\n reverse?: boolean;\n speedOnHover?: number;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Marquee = forwardRef<HTMLDivElement, MarqueeProps>(\n (\n {\n children,\n speed = 50,\n direction = \"left\",\n pauseOnHover = true,\n gap = 16,\n gradientWidth = 40,\n gradientColor = \"var(--bg, white)\",\n reverse = false,\n speedOnHover,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n const [contentSize, setContentSize] = useState(0);\n const [containerSize, setContainerSize] = useState(0);\n\n const isHorizontal = direction === \"left\" || direction === \"right\";\n const dirFactor = direction === \"left\" || direction === \"up\" ? -1 : 1;\n const revFactor = reverse ? -1 : 1;\n const calcDir = dirFactor * revFactor;\n\n useEffect(() => {\n if (disabled || isReducedMotion) return;\n\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === containerRef.current) {\n setContainerSize(isHorizontal ? entry.contentRect.width : entry.contentRect.height);\n } else if (entry.target === contentRef.current) {\n setContentSize(isHorizontal ? entry.contentRect.width : entry.contentRect.height);\n }\n }\n });\n\n if (containerRef.current) observer.observe(containerRef.current);\n if (contentRef.current) observer.observe(contentRef.current);\n\n return () => observer.disconnect();\n }, [isHorizontal, disabled, isReducedMotion]);\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={className} style={{ display: \"flex\", flexWrap: \"wrap\", gap, ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n const repeatCount = Math.max(2, Math.ceil((containerSize * 2) / (contentSize + gap)) || 2);\n const duration = (contentSize + gap) / speed;\n\n const keyframesName = `flux-marquee-${calcDir < 0 ? \"negative\" : \"positive\"}-${isHorizontal ? \"x\" : \"y\"}`;\n const translateProp = isHorizontal ? \"translateX\" : \"translateY\";\n\n const cssString = `\n @keyframes ${keyframesName} {\n 0% { transform: ${translateProp}(${calcDir < 0 ? \"0\" : `-${contentSize + gap}px`}); }\n 100% { transform: ${translateProp}(${calcDir < 0 ? `-${contentSize + gap}px` : \"0\"}); }\n }\n `;\n\n const gradientMask = gradientWidth > 0 && isHorizontal\n ? `linear-gradient(to right, transparent, black ${gradientWidth}px, black calc(100% - ${gradientWidth}px), transparent)`\n : gradientWidth > 0 && !isHorizontal\n ? `linear-gradient(to bottom, transparent, black ${gradientWidth}px, black calc(100% - ${gradientWidth}px), transparent)`\n : undefined;\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n ...style,\n overflow: \"hidden\",\n display: \"flex\",\n flexDirection: isHorizontal ? \"row\" : \"column\",\n maskImage: gradientMask,\n WebkitMaskImage: gradientMask,\n }}\n {...props}\n >\n <style>{cssString}</style>\n <div\n ref={containerRef}\n style={{\n display: \"flex\",\n flexDirection: isHorizontal ? \"row\" : \"column\",\n gap,\n width: isHorizontal ? \"fit-content\" : \"100%\",\n height: isHorizontal ? \"100%\" : \"fit-content\",\n animation: `${keyframesName} ${duration}s linear infinite`,\n animationPlayState: \"inherit\",\n }}\n onMouseEnter={(e) => {\n if (pauseOnHover) e.currentTarget.style.animationPlayState = \"paused\";\n else if (speedOnHover) e.currentTarget.style.animationDuration = `${(contentSize + gap) / speedOnHover}s`;\n }}\n onMouseLeave={(e) => {\n if (pauseOnHover) e.currentTarget.style.animationPlayState = \"running\";\n else if (speedOnHover) e.currentTarget.style.animationDuration = `${duration}s`;\n }}\n >\n {Array.from({ length: repeatCount }).map((_, i) => (\n <div\n key={i}\n ref={i === 0 ? contentRef : null}\n style={{\n display: \"flex\",\n flexDirection: isHorizontal ? \"row\" : \"column\",\n gap,\n flexShrink: 0,\n }}\n >\n {children}\n </div>\n ))}\n </div>\n </div>\n );\n }\n);\nMarquee.displayName = \"Marquee\";\n", "import React, { forwardRef, useRef } from \"react\";\nimport { motion, useMotionValue, useSpring, useTransform } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\n// resolveMotion unused\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nconst DockContext = React.createContext<{ mouseX: any; mouseY: any; distance: number; magnification: number; direction: \"horizontal\" | \"vertical\"; isReducedMotion: boolean | undefined }>({\n mouseX: null,\n mouseY: null,\n distance: 150,\n magnification: 1.6,\n direction: \"horizontal\",\n isReducedMotion: false,\n});\n\nexport interface DockProps {\n children: React.ReactNode;\n magnification?: number;\n distance?: number;\n direction?: \"horizontal\" | \"vertical\";\n gap?: number;\n baseSize?: number;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nconst DockRoot = forwardRef<HTMLDivElement, DockProps>(\n (\n {\n children,\n magnification = 1.6,\n distance = 150,\n direction = \"horizontal\",\n gap = 8,\n baseSize = 48,\n physics = \"bouncy\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n // springConfig unused\n\n const mouseX = useMotionValue(Infinity);\n const mouseY = useMotionValue(Infinity);\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={className} style={{ display: \"flex\", flexDirection: direction === \"horizontal\" ? \"row\" : \"column\", gap, ...style }} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <DockContext.Provider value={{ mouseX, mouseY, distance, magnification, direction, isReducedMotion: false }}>\n <motion.div\n ref={mergedRef as any}\n className={className}\n style={{\n display: \"flex\",\n flexDirection: direction === \"horizontal\" ? \"row\" : \"column\",\n gap,\n alignItems: \"center\",\n ...style,\n }}\n onMouseMove={(e) => {\n mouseX.set(e.clientX);\n mouseY.set(e.clientY);\n }}\n onMouseLeave={() => {\n mouseX.set(Infinity);\n mouseY.set(Infinity);\n }}\n {...props}\n >\n {children}\n </motion.div>\n </DockContext.Provider>\n );\n }\n);\nDockRoot.displayName = \"Dock\";\n\nexport interface DockItemProps {\n children: React.ReactNode;\n label?: string;\n onClick?: () => void;\n className?: string;\n style?: React.CSSProperties;\n}\n\nexport const DockItem = forwardRef<HTMLButtonElement, DockItemProps>(\n ({ children, label, onClick, className, style, ...props }, ref) => {\n const { mouseX, mouseY, distance, magnification, direction, isReducedMotion } = React.useContext(DockContext);\n const itemRef = useRef<HTMLButtonElement>(null);\n const mergedRef = useMergedRef(ref, itemRef);\n\n const distVar = direction === \"horizontal\" ? mouseX : mouseY;\n\n const distanceCalc = useTransform(distVar, (val) => {\n if (val === Infinity || !itemRef.current) return distance; // Max distance if not hovering\n const bounds = itemRef.current.getBoundingClientRect();\n const center = direction === \"horizontal\" ? bounds.x + bounds.width / 2 : bounds.y + bounds.height / 2;\n return Math.abs((val as number) - center);\n });\n\n const scaleRaw = useTransform(distanceCalc, [0, distance], [magnification, 1]);\n const scale = useSpring(scaleRaw, { mass: 0.1, stiffness: 300, damping: 20 });\n\n const [isHovered, setIsHovered] = React.useState(false);\n\n if (isReducedMotion) {\n return (\n <button ref={mergedRef} onClick={onClick} className={className} style={{ ...style, position: \"relative\" }} {...props}>\n {children}\n </button>\n );\n }\n\n return (\n <motion.button\n ref={mergedRef as any}\n onClick={onClick}\n onMouseEnter={() => setIsHovered(true)}\n onMouseLeave={() => setIsHovered(false)}\n style={{\n scale,\n transformOrigin: direction === \"horizontal\" ? \"bottom\" : \"left\", // Common dock origin\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n position: \"relative\",\n ...style,\n }}\n className={className}\n {...props}\n >\n {children}\n {label && isHovered && (\n <motion.div\n initial={{ opacity: 0, scale: 0.8, y: direction === \"horizontal\" ? -10 : 0, x: direction === \"horizontal\" ? 0 : 10 }}\n animate={{ opacity: 1, scale: 1, y: 0, x: 0 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 20, mass: 0.5 }}\n style={{\n position: \"absolute\",\n [direction === \"horizontal\" ? \"top\" : \"left\"]: direction === \"horizontal\" ? \"-120%\" : \"120%\",\n fontSize: \"12px\",\n background: \"rgba(0,0,0,0.8)\",\n color: \"white\",\n padding: \"4px 8px\",\n borderRadius: \"4px\",\n whiteSpace: \"nowrap\",\n pointerEvents: \"none\",\n }}\n >\n {label}\n </motion.div>\n )}\n </motion.button>\n );\n }\n);\nDockItem.displayName = \"Dock.Item\";\n\nexport const Dock = Object.assign(DockRoot, { Item: DockItem });\n", "import React, { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { PhysicsPreset, motionScale } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { AnimatedList } from \"./23-animated-list\";\n\nexport interface InfiniteScrollProps<T> {\n items: T[];\n renderItem: (item: T, index: number) => React.ReactNode;\n keyExtractor: (item: T) => string;\n onLoadMore: () => void | Promise<void>;\n hasMore: boolean;\n threshold?: number;\n loader?: React.ReactNode;\n enterFrom?: \"below\" | \"above\" | \"left\" | \"right\" | \"scale\";\n stagger?: number;\n batchSize?: number;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nfunction InfiniteScrollComponent<T>(\n {\n items,\n renderItem,\n keyExtractor,\n onLoadMore,\n hasMore,\n threshold = 200,\n loader,\n enterFrom = \"below\",\n stagger = motionScale.stagger.fast,\n // batchSize = 10,\n physics = \"gentle\",\n className,\n style,\n disabled = false,\n }: InfiniteScrollProps<T>,\n ref: React.Ref<HTMLDivElement>\n) {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n const endMarkerRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef, scrollRef);\n\n const [isLoading, setIsLoading] = useState(false);\n\n // Use intersection observer for triggering load more\n useEffect(() => {\n if (disabled || !hasMore || isLoading || !endMarkerRef.current) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0].isIntersecting) {\n setIsLoading(true);\n Promise.resolve(onLoadMore()).finally(() => {\n setIsLoading(false);\n });\n }\n },\n { rootMargin: `0px 0px ${threshold}px 0px` }\n );\n\n observer.observe(endMarkerRef.current);\n return () => observer.disconnect();\n }, [hasMore, isLoading, onLoadMore, threshold, disabled]);\n\n if (disabled) {\n return (\n <div ref={mergedRef} className={className} style={{ overflowY: \"auto\", ...style }}>\n <ul style={{ listStyle: \"none\", padding: 0, margin: 0 }}>\n {items.map((item, i) => (\n <li key={keyExtractor(item)}>{renderItem(item, i)}</li>\n ))}\n </ul>\n {hasMore && <div ref={endMarkerRef}>{loader}</div>}\n </div>\n );\n }\n\n return (\n <div ref={mergedRef} className={className} style={{ ...style, position: \"relative\" }}>\n <AnimatedList\n items={items}\n keyExtractor={keyExtractor}\n renderItem={renderItem}\n enterFrom={enterFrom}\n stagger={stagger}\n physics={physics}\n layout={!isReducedMotion}\n />\n {hasMore && (\n <div ref={endMarkerRef} style={{ width: \"100%\", padding: \"16px\", display: \"flex\", justifyContent: \"center\" }}>\n {loader || (\n // Default simple loader if none provided\n <div style={{ padding: \"8px\" }}>Loading more...</div>\n )}\n </div>\n )}\n </div>\n );\n}\n\nexport const InfiniteScroll = forwardRef(InfiniteScrollComponent) as <T>(\n props: InfiniteScrollProps<T> & { ref?: React.Ref<HTMLDivElement> }\n) => React.ReactElement;\n", "import React, { forwardRef, useRef } from \"react\";\nimport { motion, useScroll, useSpring } from \"motion/react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface ScrollProgressProps {\n children?: React.ReactNode;\n axis?: \"x\" | \"y\";\n container?: React.RefObject<HTMLElement | null>;\n color?: string;\n height?: number | string;\n position?: \"top\" | \"bottom\" | \"left\" | \"right\" | \"none\";\n smooth?: boolean;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const ScrollProgress = forwardRef<HTMLDivElement, ScrollProgressProps>(\n (\n {\n children,\n axis = \"x\",\n container,\n color = \"var(--flux-primary, #000)\",\n height = 4,\n position = \"top\",\n smooth = true,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n const { scrollYProgress, scrollXProgress } = useScroll({\n container: container?.current ? container : undefined,\n });\n\n const progress = axis === \"x\" ? scrollYProgress : scrollXProgress; // Note: generally scrollY controls horizontal progress bar width\n\n const springProgress = useSpring(progress, {\n stiffness: 100,\n damping: 30,\n restDelta: 0.001,\n });\n\n const scaleValue = (smooth && !isReducedMotion) ? springProgress : progress;\n\n if (disabled || isReducedMotion) {\n return children ? (\n <div ref={mergedRef} className={className} style={style} {...props}>\n {children}\n </div>\n ) : null;\n }\n\n const posStyles: React.CSSProperties =\n position === \"none\"\n ? {}\n : position === \"top\"\n ? { position: \"fixed\", top: 0, left: 0, right: 0, transformOrigin: \"0% 50%\" }\n : position === \"bottom\"\n ? { position: \"fixed\", bottom: 0, left: 0, right: 0, transformOrigin: \"0% 50%\" }\n : position === \"left\"\n ? { position: \"fixed\", top: 0, bottom: 0, left: 0, transformOrigin: \"50% 0%\" }\n : { position: \"fixed\", top: 0, bottom: 0, right: 0, transformOrigin: \"50% 0%\" };\n\n const dimStyles: any =\n position === \"top\" || position === \"bottom\" || position === \"none\"\n ? { height, width: \"100%\", scaleX: scaleValue as any }\n : { width: height, height: \"100%\", scaleY: scaleValue as any };\n\n if (!children) {\n return (\n <motion.div\n ref={mergedRef as any}\n className={className}\n style={{\n ...posStyles,\n ...dimStyles,\n backgroundColor: color,\n zIndex: 9999,\n ...style,\n }}\n {...props}\n />\n );\n }\n\n // Wrap children, applying scroll progress to a transform\n return (\n <div ref={mergedRef} className={className} style={{ position: \"relative\", ...style }} {...props}>\n {children}\n <motion.div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n backgroundColor: color,\n scaleX: axis === \"x\" ? (scaleValue as any) : undefined,\n scaleY: axis === \"y\" ? (scaleValue as any) : undefined,\n transformOrigin: \"0% 0%\",\n zIndex: -1,\n }}\n />\n </div>\n );\n }\n);\nScrollProgress.displayName = \"ScrollProgress\";\n", "import React, { forwardRef, useRef } from \"react\";\nimport { motion, useScroll, useTransform } from \"motion/react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface ParallaxProps {\n children: React.ReactNode;\n offset?: number;\n direction?: \"up\" | \"down\" | \"left\" | \"right\";\n container?: React.RefObject<HTMLElement | null>;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Parallax = forwardRef<HTMLDivElement, ParallaxProps>(\n (\n {\n children,\n offset = 50,\n direction = \"up\",\n container,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n const { scrollYProgress } = useScroll({\n target: internalRef,\n container: container?.current ? container : undefined,\n offset: [\"start end\", \"end start\"],\n });\n\n const transformStart = direction === \"up\" ? offset : direction === \"down\" ? -offset : direction === \"left\" ? offset : -offset;\n const transformEnd = direction === \"up\" ? -offset : direction === \"down\" ? offset : direction === \"left\" ? -offset : offset;\n\n const translate = useTransform(scrollYProgress, [0, 1], [transformStart, transformEnd]);\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={className} style={style} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <motion.div\n ref={mergedRef as any}\n className={className}\n style={{\n ...style,\n y: direction === \"up\" || direction === \"down\" ? translate : 0,\n x: direction === \"left\" || direction === \"right\" ? translate : 0,\n }}\n {...props}\n >\n {children}\n </motion.div>\n );\n }\n);\nParallax.displayName = \"Parallax\";\n", "import React, { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { motion, useScroll } from \"motion/react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface StickyScrollProps {\n content: { title: string; description: React.ReactNode; asset?: React.ReactNode }[];\n container?: React.RefObject<HTMLElement | null>;\n physics?: any; // To align with other components, though mostly layout driven here\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const StickyScroll = forwardRef<HTMLDivElement, StickyScrollProps>(\n (\n {\n content,\n container,\n physics = \"gentle\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const [activeSection, setActiveSection] = useState(0);\n\n const { scrollYProgress } = useScroll({\n target: internalRef,\n container: container?.current ? container : undefined,\n offset: [\"start start\", \"end end\"]\n });\n\n useEffect(() => {\n return scrollYProgress.onChange((latest) => {\n const cardsCount = content.length;\n const progressPerCard = 1 / cardsCount;\n const index = Math.min(\n Math.floor(latest / progressPerCard),\n cardsCount - 1\n );\n setActiveSection(index);\n });\n }, [scrollYProgress, content.length]);\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={className} style={{ display: \"flex\", flexDirection: \"column\", gap: \"2rem\", ...style }} {...props}>\n {content.map((item, i) => (\n <div key={i}>\n <h3>{item.title}</h3>\n <div>{item.description}</div>\n {item.asset && <div>{item.asset}</div>}\n </div>\n ))}\n </div>\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n display: \"flex\",\n position: \"relative\",\n minHeight: `${content.length * 100}vh`,\n ...style\n }}\n {...props}\n >\n <div style={{ flex: 1, padding: \"4rem 2rem\", position: \"relative\" }}>\n {content.map((item, index) => (\n <div\n key={index}\n style={{\n height: \"100vh\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n opacity: activeSection === index ? 1 : 0.3,\n transition: \"opacity 0.4s ease\"\n }}\n >\n <motion.h2\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: activeSection === index ? 1 : 0, y: activeSection === index ? 0 : 20 }}\n style={{ fontSize: \"2rem\", fontWeight: \"bold\", marginBottom: \"1rem\" }}\n >\n {item.title}\n </motion.h2>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: activeSection === index ? 1 : 0 }}\n >\n {item.description}\n </motion.div>\n </div>\n ))}\n </div>\n <div style={{ flex: 1, position: \"sticky\", top: 0, height: \"100vh\", display: \"flex\", alignItems: \"center\", justifyContent: \"center\" }}>\n <motion.div\n layout\n style={{ width: \"80%\", height: \"60%\", background: \"var(--flux-border, #f4f4f5)\", borderRadius: \"1rem\", overflow: \"hidden\" }}\n >\n {content[activeSection]?.asset}\n </motion.div>\n </div>\n </div>\n );\n }\n);\nStickyScroll.displayName = \"StickyScroll\";\n", "import React, { forwardRef, useRef } from \"react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\nimport { PhysicsPreset } from \"../config/flux.config\";\n\nexport interface ScrollSnapProps {\n children: React.ReactNode;\n axis?: \"x\" | \"y\" | \"both\";\n alignment?: \"start\" | \"center\" | \"end\";\n strictness?: \"mandatory\" | \"proximity\";\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nconst ScrollSnapContainer = forwardRef<HTMLDivElement, ScrollSnapProps>(\n (\n {\n children,\n axis = \"y\",\n alignment = \"center\",\n strictness = \"mandatory\",\n physics = \"smooth\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n // springConfig unused here but physics passed for API consistency\n\n // Provide context for children\n return (\n <SnapContext.Provider value={{ alignment, disabled: disabled || isReducedMotion }}>\n <div\n ref={mergedRef}\n className={className}\n style={{\n ...style,\n overflowX: axis === \"x\" || axis === \"both\" ? \"auto\" : \"hidden\",\n overflowY: axis === \"y\" || axis === \"both\" ? \"auto\" : \"hidden\",\n scrollSnapType: disabled || isReducedMotion ? \"none\" : `${axis} ${strictness}`,\n }}\n {...props}\n >\n {children}\n </div>\n </SnapContext.Provider>\n );\n }\n);\nScrollSnapContainer.displayName = \"ScrollSnap\";\n\nconst SnapContext = React.createContext<{ alignment: \"start\" | \"center\" | \"end\"; disabled: boolean }>({ alignment: \"center\", disabled: false });\n\nexport const ScrollSnapItem = forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & {\n alignment?: \"start\" | \"center\" | \"end\";\n stopHandling?: \"normal\" | \"always\";\n}>(\n ({ children, alignment: itemAlignment, stopHandling = \"normal\", className, style, ...props }, ref) => {\n const { alignment: containerAlignment, disabled } = React.useContext(SnapContext);\n const align = itemAlignment || containerAlignment;\n\n return (\n <div\n ref={ref}\n className={className}\n style={{\n ...style,\n scrollSnapAlign: disabled ? \"none\" : align,\n scrollSnapStop: disabled ? \"normal\" : stopHandling,\n }}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nScrollSnapItem.displayName = \"ScrollSnap.Item\";\n\nexport const ScrollSnap = Object.assign(ScrollSnapContainer, { Item: ScrollSnapItem });\n", "import React, { forwardRef, useRef } from \"react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface AuroraProps {\n colors?: string[];\n speed?: number;\n blur?: number;\n opacity?: number;\n blendMode?: React.CSSProperties[\"mixBlendMode\"];\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Aurora = forwardRef<HTMLDivElement, AuroraProps>(\n (\n {\n colors = [\"#99f6e4\", \"#34d399\", \"#2dd4bf\"],\n speed = 10,\n blur = 60,\n opacity = 0.5,\n blendMode = \"normal\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n if (disabled) return null;\n\n const baseStyle: React.CSSProperties = {\n position: \"absolute\",\n top: \"-50%\",\n left: \"-50%\",\n width: \"200%\",\n height: \"200%\",\n opacity,\n mixBlendMode: blendMode,\n filter: `blur(${blur}px)`,\n pointerEvents: \"none\",\n zIndex: 0,\n };\n\n const gradientString = `linear-gradient(-45deg, ${colors.join(\", \")})`;\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n overflow: \"hidden\",\n pointerEvents: \"none\",\n ...style,\n }}\n {...props}\n >\n <div\n style={{\n ...baseStyle,\n background: gradientString,\n backgroundSize: \"400% 400%\",\n animation: isReducedMotion ? \"none\" : `flux-aurora ${speed}s ease infinite`,\n }}\n />\n <style>\n {`\n @keyframes flux-aurora {\n 0% { background-position: 0% 50%; transform: rotate(0deg); }\n 50% { background-position: 100% 50%; transform: rotate(180deg); }\n 100% { background-position: 0% 50%; transform: rotate(360deg); }\n }\n `}\n </style>\n </div>\n );\n }\n);\nAurora.displayName = \"Aurora\";\n", "import React, { forwardRef, useRef } from \"react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface MeshGradientProps {\n colors?: [string, string, string, string];\n speed?: number;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const MeshGradient = forwardRef<HTMLDivElement, MeshGradientProps>(\n (\n {\n colors = [\"#99f6e4\", \"#fbcfe8\", \"#fef08a\", \"#a7f3d0\"],\n speed = 15,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n if (disabled) return null;\n\n const baseStyle: React.CSSProperties = {\n position: \"absolute\",\n inset: -50, // bleed edge to avoid seeing bounds during rotation\n opacity: 0.8,\n filter: \"blur(60px)\",\n pointerEvents: \"none\",\n zIndex: 0,\n background: `\n radial-gradient(circle at 100% 0%, ${colors[0]} 0%, transparent 50%),\n radial-gradient(circle at 0% 100%, ${colors[1]} 0%, transparent 50%),\n radial-gradient(circle at 100% 100%, ${colors[2]} 0%, transparent 50%),\n radial-gradient(circle at 0% 0%, ${colors[3]} 0%, transparent 50%)\n `,\n backgroundSize: \"200% 200%\",\n };\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n overflow: \"hidden\",\n pointerEvents: \"none\",\n ...style,\n }}\n {...props}\n >\n <div\n style={{\n ...baseStyle,\n animation: isReducedMotion ? \"none\" : `flux-mesh ${speed}s ease-in-out infinite alternate`,\n }}\n />\n <style>\n {`\n @keyframes flux-mesh {\n 0% { background-position: 0% 0%; transform: scale(1) rotate(0deg); }\n 50% { background-position: 100% 100%; transform: scale(1.1) rotate(5deg); }\n 100% { background-position: 0% 0%; transform: scale(1) rotate(-5deg); }\n }\n `}\n </style>\n </div>\n );\n }\n);\nMeshGradient.displayName = \"MeshGradient\";\n", "import React, { forwardRef, useEffect, useRef } from \"react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface ParticlesProps {\n color?: string;\n quantity?: number;\n staticity?: number;\n ease?: number;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Particles = forwardRef<HTMLCanvasElement, ParticlesProps>(\n (\n {\n color = \"#99f6e4\",\n quantity = 100,\n staticity = 50,\n ease = 50,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = useRef<HTMLCanvasElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const context = useRef<CanvasRenderingContext2D | null>(null);\n const circles = useRef<any[]>([]);\n const mouse = useRef<{ x: number; y: number }>({ x: 0, y: 0 });\n const canvasSize = useRef<{ w: number; h: number }>({ w: 0, h: 0 });\n const animationFrameId = useRef<number>(0);\n\n useEffect(() => {\n if (disabled || isReducedMotion || !internalRef.current) return;\n\n const canvas = internalRef.current;\n context.current = canvas.getContext(\"2d\");\n\n const resizeCanvas = () => {\n if (!internalRef.current || !context.current) return;\n const rect = internalRef.current.parentElement?.getBoundingClientRect() || internalRef.current.getBoundingClientRect();\n canvasSize.current.w = rect.width;\n canvasSize.current.h = rect.height;\n internalRef.current.width = rect.width;\n internalRef.current.height = rect.height;\n initParticles();\n };\n\n const initParticles = () => {\n circles.current = [];\n for (let i = 0; i < quantity; i++) {\n circles.current.push(circleParams());\n }\n };\n\n const circleParams = () => {\n const x = Math.floor(Math.random() * canvasSize.current.w);\n const y = Math.floor(Math.random() * canvasSize.current.h);\n const translateX = 0;\n const translateY = 0;\n const size = Math.floor(Math.random() * 2) + 0.1;\n const alpha = 0;\n const targetAlpha = parseFloat((Math.random() * 0.6 + 0.1).toFixed(1));\n const dx = (Math.random() - 0.5) * 0.2;\n const dy = (Math.random() - 0.5) * 0.2;\n const magnetism = 0.1 + Math.random() * 4;\n return { x, y, translateX, translateY, size, alpha, targetAlpha, dx, dy, magnetism };\n };\n\n const drawCircle = (circle: any, update = false) => {\n if (!context.current) return;\n const { x, y, translateX, translateY, size, alpha } = circle;\n context.current.translate(translateX, translateY);\n context.current.beginPath();\n context.current.arc(x, y, size, 0, 2 * Math.PI);\n context.current.fillStyle = `${color}${Math.floor(alpha * 255).toString(16).padStart(2, \"0\")}`;\n context.current.fill();\n context.current.setTransform(1, 0, 0, 1, 0, 0);\n\n if (!update) return;\n\n circle.alpha += (circle.targetAlpha - circle.alpha) * 0.02;\n circle.x += circle.dx;\n circle.y += circle.dy;\n circle.translateX += ((mouse.current.x / (staticity / circle.magnetism)) - circle.translateX) / ease;\n circle.translateY += ((mouse.current.y / (staticity / circle.magnetism)) - circle.translateY) / ease;\n\n // Reset if out of bounds (simple wrap)\n if (circle.x < -circle.size || circle.x > canvasSize.current.w + circle.size ||\n circle.y < -circle.size || circle.y > canvasSize.current.h + circle.size) {\n Object.assign(circle, circleParams(), { alpha: 0 }); // reset position and alpha\n }\n };\n\n const animate = () => {\n if (!context.current || !internalRef.current) return;\n context.current.clearRect(0, 0, canvasSize.current.w, canvasSize.current.h);\n circles.current.forEach(circle => drawCircle(circle, true));\n animationFrameId.current = window.requestAnimationFrame(animate);\n };\n\n resizeCanvas();\n animate();\n\n const handleMouseMove = (e: MouseEvent) => {\n if (!internalRef.current) return;\n const rect = internalRef.current.getBoundingClientRect();\n mouse.current.x = e.clientX - rect.left - canvasSize.current.w / 2;\n mouse.current.y = e.clientY - rect.top - canvasSize.current.h / 2;\n };\n\n window.addEventListener(\"resize\", resizeCanvas);\n window.addEventListener(\"mousemove\", handleMouseMove);\n\n return () => {\n window.removeEventListener(\"resize\", resizeCanvas);\n window.removeEventListener(\"mousemove\", handleMouseMove);\n if (animationFrameId.current) window.cancelAnimationFrame(animationFrameId.current);\n };\n }, [color, quantity, staticity, ease, disabled, isReducedMotion]);\n\n if (disabled) return null;\n\n return (\n <canvas\n ref={mergedRef}\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n pointerEvents: \"none\",\n ...style,\n }}\n {...props}\n />\n );\n }\n);\nParticles.displayName = \"Particles\";\n", "import React, { forwardRef } from \"react\";\n\nexport interface GridPatternProps {\n size?: number;\n color?: string;\n fade?: boolean;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const GridPattern = forwardRef<HTMLDivElement, GridPatternProps>(\n (\n {\n size = 24,\n color = \"currentColor\",\n fade = true,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n if (disabled) return null;\n\n const baseStyle: React.CSSProperties = {\n position: \"absolute\",\n inset: 0,\n pointerEvents: \"none\",\n zIndex: 0,\n backgroundImage: `url(\"data:image/svg+xml,%3Csvg width='${size}' height='${size}' viewBox='0 0 ${size} ${size}' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M${size} 0H0V${size}' fill='none' stroke='${encodeURIComponent(color)}' stroke-width='1' stroke-opacity='0.1'/%3E%3C/svg%3E\")`,\n backgroundSize: `${size}px ${size}px`,\n maskImage: fade ? \"radial-gradient(ellipse at center, black 40%, transparent 80%)\" : undefined,\n WebkitMaskImage: fade ? \"radial-gradient(ellipse at center, black 40%, transparent 80%)\" : undefined,\n };\n\n return (\n <div\n ref={ref}\n className={className}\n style={{ ...baseStyle, ...style }}\n {...props}\n />\n );\n }\n);\nGridPattern.displayName = \"GridPattern\";\n", "import React, { forwardRef } from \"react\";\n\nexport interface NoiseProps {\n opacity?: number;\n blendMode?: React.CSSProperties[\"mixBlendMode\"];\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Noise = forwardRef<HTMLDivElement, NoiseProps>(\n (\n {\n opacity = 0.05,\n blendMode = \"overlay\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n if (disabled) return null;\n\n // A simple SVG noise pattern encoded as a data URI\n const noiseSvg = `data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E`;\n\n return (\n <div\n ref={ref}\n className={className}\n style={{\n position: \"absolute\",\n inset: 0,\n pointerEvents: \"none\",\n zIndex: 50, // Usually noise sits on top of everything to texture the whole component\n opacity,\n mixBlendMode: blendMode,\n backgroundImage: `url(\"${noiseSvg}\")`,\n ...style,\n }}\n {...props}\n />\n );\n }\n);\nNoise.displayName = \"Noise\";\n", "import React, { forwardRef, useEffect, useState } from \"react\";\nimport { motion } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\n// resolveMotion unused\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface StreamingTextProps {\n text: string;\n speed?: number; // ms per character roughly\n cursor?: boolean;\n cursorChar?: string;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n onComplete?: () => void;\n disabled?: boolean;\n}\n\nexport const StreamingText = forwardRef<HTMLSpanElement, StreamingTextProps>(\n (\n {\n text,\n speed = 30,\n cursor = true,\n cursorChar = \"\u258B\",\n physics = \"gentle\",\n className,\n style,\n onComplete,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLSpanElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n // unused for now since streaming text uses simple intervals or tweens\n\n const [displayedText, setDisplayedText] = useState(\"\");\n const [isComplete, setIsComplete] = useState(false);\n\n useEffect(() => {\n if (disabled || isReducedMotion) {\n setDisplayedText(text);\n setIsComplete(true);\n onComplete?.();\n return;\n }\n\n setDisplayedText(\"\");\n setIsComplete(false);\n\n let i = 0;\n const intervalId = setInterval(() => {\n setDisplayedText(text.slice(0, i + 1));\n i++;\n if (i >= text.length) {\n clearInterval(intervalId);\n setIsComplete(true);\n onComplete?.();\n }\n }, speed);\n\n return () => clearInterval(intervalId);\n }, [text, speed, disabled, isReducedMotion, onComplete]);\n\n return (\n <span ref={mergedRef as any} className={className} style={{ whiteSpace: \"pre-wrap\", ...style }} {...props}>\n {displayedText}\n {cursor && (!isComplete || isReducedMotion === false) && (\n <motion.span\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ repeat: Infinity, duration: 0.8, repeatType: \"reverse\" }}\n style={{ display: \"inline-block\", marginLeft: \"2px\", fontWeight: \"bold\" }}\n >\n {cursorChar}\n </motion.span>\n )}\n </span>\n );\n }\n);\nStreamingText.displayName = \"StreamingText\";\n", "import React, { forwardRef } from \"react\";\nimport { motion } from \"motion/react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface TypingIndicatorProps {\n color?: string;\n size?: number;\n speed?: number;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const TypingIndicator = forwardRef<HTMLDivElement, TypingIndicatorProps>(\n (\n {\n color = \"currentColor\",\n size = 6,\n speed = 0.6,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n if (disabled) return null;\n\n const dotStyle = {\n width: size,\n height: size,\n borderRadius: \"50%\",\n backgroundColor: color,\n };\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{ display: \"inline-flex\", alignItems: \"center\", gap: size / 2, ...style }}\n {...props}\n >\n {[0, 1, 2].map((i) => (\n <motion.div\n key={i}\n style={dotStyle}\n animate={isReducedMotion ? undefined : {\n y: [0, -size, 0],\n opacity: [0.5, 1, 0.5]\n }}\n transition={{\n duration: speed,\n repeat: Infinity,\n delay: i * (speed / 3),\n ease: \"easeInOut\"\n }}\n />\n ))}\n </div>\n );\n }\n);\nTypingIndicator.displayName = \"TypingIndicator\";\n", "import React, { forwardRef } from \"react\";\nimport { motion } from \"motion/react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface SkeletonProps {\n width?: number | string;\n height?: number | string;\n borderRadius?: number | string;\n baseColor?: string;\n highlightColor?: string;\n speed?: number;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n (\n {\n width = \"100%\",\n height = 20,\n borderRadius = 8,\n baseColor = \"var(--flux-border, #e5e7eb)\",\n highlightColor = \"var(--flux-background, #f9fafb)\",\n speed = 1.5,\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n if (disabled) {\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{ width, height, borderRadius, backgroundColor: baseColor, ...style }}\n {...props}\n />\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={className}\n style={{\n width,\n height,\n borderRadius,\n backgroundColor: baseColor,\n overflow: \"hidden\",\n position: \"relative\",\n ...style,\n }}\n {...props}\n >\n {!isReducedMotion && (\n <motion.div\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n background: `linear-gradient(90deg, transparent, ${highlightColor}, transparent)`,\n }}\n initial={{ x: \"-100%\" }}\n animate={{ x: \"100%\" }}\n transition={{\n repeat: Infinity,\n duration: speed,\n ease: \"linear\",\n }}\n />\n )}\n </div>\n );\n }\n);\nSkeleton.displayName = \"Skeleton\";\n", "import React, { forwardRef } from \"react\";\nimport { motion } from \"motion/react\";\nimport { PhysicsPreset } from \"../config/flux.config\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { resolveMotion } from \"../utils/resolveMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface AIMessageProps {\n children: React.ReactNode;\n role?: \"user\" | \"assistant\" | \"system\";\n avatar?: React.ReactNode;\n delay?: number;\n physics?: PhysicsPreset;\n className?: string;\n style?: React.CSSProperties;\n disabled?: boolean;\n}\n\nexport const AIMessage = forwardRef<HTMLDivElement, AIMessageProps>(\n (\n {\n children,\n role = \"assistant\",\n avatar,\n delay = 0,\n physics = \"gentle\",\n className,\n style,\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n const springConfig = resolveMotion(physics, undefined, isReducedMotion);\n\n if (disabled) {\n return (\n <div ref={mergedRef} className={className} style={{ display: \"flex\", gap: 12, ...style }} {...props}>\n {avatar && <div>{avatar}</div>}\n <div style={{ flex: 1 }}>{children}</div>\n </div>\n );\n }\n\n const alignment = role === \"user\" ? \"flex-end\" : \"flex-start\";\n const origin = role === \"user\" ? \"bottom right\" : \"bottom left\";\n\n return (\n <motion.div\n ref={mergedRef as any}\n className={className}\n initial={isReducedMotion ? { opacity: 0 } : { opacity: 0, y: 10, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n transition={{ ...springConfig, delay } as any}\n style={{\n display: \"flex\",\n gap: 12,\n justifyContent: alignment,\n transformOrigin: origin,\n ...style,\n }}\n {...props}\n >\n {role !== \"user\" && avatar && (\n <motion.div\n initial={isReducedMotion ? { opacity: 0 } : { opacity: 0, scale: 0 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ ...springConfig, delay: delay + 0.1 } as any}\n >\n {avatar}\n </motion.div>\n )}\n <div style={{ flex: 1, maxWidth: \"80%\" }}>\n {children}\n </div>\n {role === \"user\" && avatar && (\n <motion.div\n initial={isReducedMotion ? { opacity: 0 } : { opacity: 0, scale: 0 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ ...springConfig, delay: delay + 0.1 } as any}\n >\n {avatar}\n </motion.div>\n )}\n </motion.div>\n );\n }\n);\nAIMessage.displayName = \"AIMessage\";\n", "import React, { forwardRef } from \"react\";\nimport { motion, useMotionTemplate, useMotionValue } from \"motion/react\";\nimport { useReducedMotion } from \"../hooks/useReducedMotion\";\nimport { useMergedRef } from \"../hooks/useMergedRef\";\n\nexport interface HeroHighlightProps {\n children: React.ReactNode;\n containerClassName?: string;\n className?: string;\n color?: string;\n disabled?: boolean;\n}\n\nexport const HeroHighlight = forwardRef<HTMLDivElement, HeroHighlightProps>(\n (\n {\n children,\n containerClassName,\n className,\n color = \"45, 212, 191\", // teal-400 equivalent typically\n disabled = false,\n ...props\n },\n ref\n ) => {\n const isReducedMotion = useReducedMotion();\n const internalRef = React.useRef<HTMLDivElement>(null);\n const mergedRef = useMergedRef(ref, internalRef);\n\n const mouseX = useMotionValue(0);\n const mouseY = useMotionValue(0);\n\n function handleMouseMove({ currentTarget, clientX, clientY }: React.MouseEvent<HTMLDivElement>) {\n if (!currentTarget) return;\n const { left, top } = currentTarget.getBoundingClientRect();\n mouseX.set(clientX - left);\n mouseY.set(clientY - top);\n }\n\n if (disabled || isReducedMotion) {\n return (\n <div ref={mergedRef} className={`relative flex items-center justify-center w-full group ${containerClassName || \"\"}`} {...props}>\n <div className=\"absolute inset-0 bg-dot-thick-neutral-300 pointer-events-none\" />\n <div className={className}>{children}</div>\n </div>\n );\n }\n\n return (\n <div\n ref={mergedRef}\n className={`relative flex items-center justify-center w-full group ${containerClassName || \"\"}`}\n onMouseMove={handleMouseMove}\n {...props}\n >\n <div className=\"absolute inset-0 bg-dot-thick-neutral-300 dark:bg-dot-thick-neutral-800 pointer-events-none\" />\n <motion.div\n className=\"absolute inset-0 opacity-0 transition duration-300 group-hover:opacity-100 pointer-events-none bg-dot-thick-teal-500\"\n style={{\n WebkitMaskImage: useMotionTemplate`\n radial-gradient(\n 200px circle at ${mouseX}px ${mouseY}px,\n black 0%,\n transparent 100%\n )\n `,\n maskImage: useMotionTemplate`\n radial-gradient(\n 200px circle at ${mouseX}px ${mouseY}px,\n black 0%,\n transparent 100%\n )\n `,\n }}\n />\n <div className={className}>{children}</div>\n </div>\n );\n }\n);\nHeroHighlight.displayName = \"HeroHighlight\";\n\nexport const Highlight = ({\n children,\n className,\n}: {\n children: React.ReactNode;\n className?: string;\n}) => {\n const isReducedMotion = useReducedMotion();\n return (\n <motion.span\n initial={{\n backgroundSize: \"0% 100%\",\n }}\n animate={{\n backgroundSize: \"100% 100%\",\n }}\n transition={isReducedMotion ? { duration: 0 } : {\n duration: 2,\n ease: \"linear\",\n delay: 0.5,\n }}\n style={{\n backgroundRepeat: \"no-repeat\",\n backgroundPosition: \"left center\",\n display: \"inline\",\n }}\n className={`relative inline-block pb-1 px-1 rounded-lg bg-gradient-to-r from-teal-300 to-purple-300 ${className || \"\"}`}\n >\n {children}\n </motion.span>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["useState", "useEffect", "useEffect", "useEffect", "jsx", "React", "forwardRef", "useEffect", "useState", "useInView", "jsx", "forwardRef", "physics", "React", "useInView", "useState", "useEffect", "React", "motion", "Fragment", "jsx", "physics", "React", "motion", "React", "forwardRef", "useEffect", "useState", "motion", "useInView", "jsx", "forwardRef", "physics", "React", "useInView", "useState", "useEffect", "motion", "React", "forwardRef", "useEffect", "useState", "motion", "useInView", "jsx", "forwardRef", "physics", "React", "useInView", "useState", "useEffect", "motion", "React", "forwardRef", "useEffect", "motion", "useInView", "jsx", "forwardRef", "physics", "React", "useInView", "useEffect", "motion", "React", "forwardRef", "useEffect", "useState", "motion", "AnimatePresence", "jsx", "forwardRef", "physics", "React", "useState", "useEffect", "motion", "AnimatePresence", "React", "forwardRef", "useState", "motion", "jsx", "jsxs", "forwardRef", "physics", "React", "useState", "motion", "forwardRef", "useEffect", "useRef", "useState", "motion", "jsx", "forwardRef", "physics", "useRef", "useState", "useEffect", "motion", "React", "forwardRef", "useEffect", "useRef", "motion", "useMotionValue", "useSpring", "jsx", "forwardRef", "useRef", "React", "useEffect", "useMotionValue", "useSpring", "motion", "React", "forwardRef", "motion", "jsx", "forwardRef", "physics", "React", "motion", "React", "forwardRef", "useCallback", "useEffect", "useRef", "motion", "useMotionValue", "useSpring", "jsx", "jsxs", "forwardRef", "physics", "useRef", "React", "useEffect", "useMotionValue", "useSpring", "useCallback", "motion", "React", "forwardRef", "motion", "jsx", "forwardRef", "physics", "React", "motion", "React", "forwardRef", "useState", "motion", "jsx", "jsxs", "forwardRef", "physics", "React", "useState", "motion", "forwardRef", "useRef", "useState", "motion", "useAnimation", "jsx", "jsxs", "forwardRef", "physics", "useRef", "useAnimation", "useState", "motion", "React", "createContext", "forwardRef", "useCallback", "useContext", "useEffect", "useRef", "motion", "useMotionValue", "useSpring", "jsx", "createContext", "forwardRef", "physics", "useRef", "React", "useEffect", "useMotionValue", "useSpring", "useCallback", "useContext", "motion", "React", "forwardRef", "useEffect", "useRef", "motion", "useScroll", "useSpring", "useTransform", "jsx", "forwardRef", "physics", "useRef", "useScroll", "useSpring", "useTransform", "useEffect", "React", "motion", "React", "forwardRef", "useCallback", "useEffect", "useRef", "motion", "useMotionValue", "useSpring", "useMotionTemplate", "jsx", "jsxs", "forwardRef", "physics", "useRef", "React", "useEffect", "useMotionValue", "useSpring", "useCallback", "useMotionTemplate", "motion", "React", "forwardRef", "useCallback", "useEffect", "useState", "motion", "useMotionValue", "useSpring", "jsx", "forwardRef", "physics", "React", "useMotionValue", "useSpring", "useState", "useCallback", "useEffect", "motion", "React", "forwardRef", "motion", "jsx", "forwardRef", "physics", "React", "motion", "forwardRef", "useRef", "motion", "jsx", "forwardRef", "physics", "useRef", "motion", "React", "forwardRef", "jsx", "physics", "React", "forwardRef", "React", "forwardRef", "motion", "AnimatePresence", "jsx", "forwardRef", "physics", "React", "AnimatePresence", "motion", "React", "forwardRef", "useEffect", "useState", "motion", "AnimatePresence", "jsx", "physics", "React", "useState", "useEffect", "renderedItems", "motion", "AnimatePresence", "forwardRef", "forwardRef", "useEffect", "useRef", "useState", "jsx", "jsxs", "forwardRef", "useRef", "useState", "useEffect", "React", "forwardRef", "useRef", "motion", "useMotionValue", "useSpring", "useTransform", "jsx", "jsxs", "React", "forwardRef", "physics", "useRef", "useMotionValue", "motion", "useTransform", "useSpring", "forwardRef", "useEffect", "useRef", "useState", "jsx", "jsxs", "physics", "useRef", "useState", "useEffect", "forwardRef", "forwardRef", "useRef", "motion", "useScroll", "useSpring", "jsx", "jsxs", "forwardRef", "useRef", "useScroll", "useSpring", "motion", "forwardRef", "useRef", "motion", "useScroll", "useTransform", "jsx", "forwardRef", "useRef", "useScroll", "useTransform", "motion", "forwardRef", "useEffect", "useRef", "useState", "motion", "useScroll", "jsx", "jsxs", "forwardRef", "physics", "useRef", "useState", "useScroll", "useEffect", "motion", "React", "forwardRef", "useRef", "jsx", "forwardRef", "physics", "useRef", "React", "forwardRef", "useRef", "jsx", "jsxs", "forwardRef", "useRef", "forwardRef", "useRef", "jsx", "jsxs", "forwardRef", "useRef", "forwardRef", "useEffect", "useRef", "jsx", "forwardRef", "useRef", "useEffect", "forwardRef", "jsx", "forwardRef", "jsx", "React", "forwardRef", "useEffect", "useState", "motion", "jsx", "jsxs", "forwardRef", "physics", "React", "useState", "useEffect", "motion", "React", "forwardRef", "motion", "jsx", "forwardRef", "React", "motion", "React", "forwardRef", "motion", "jsx", "forwardRef", "React", "motion", "React", "forwardRef", "motion", "jsx", "jsxs", "forwardRef", "physics", "React", "motion", "React", "forwardRef", "motion", "useMotionTemplate", "useMotionValue", "jsx", "jsxs", "forwardRef", "React", "useMotionValue", "motion", "useMotionTemplate"]
7
+ }