@djangocfg/ui-nextjs 2.1.103 → 2.1.104

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 (44) hide show
  1. package/package.json +26 -30
  2. package/src/components/index.ts +2 -0
  3. package/src/components/ssr-pagination.tsx +2 -1
  4. package/src/hooks/index.ts +1 -6
  5. package/src/index.ts +2 -0
  6. package/src/theme/index.ts +2 -0
  7. package/dist/animations.cjs +0 -880
  8. package/dist/animations.cjs.map +0 -1
  9. package/dist/animations.d.mts +0 -36
  10. package/dist/animations.d.ts +0 -36
  11. package/dist/animations.mjs +0 -877
  12. package/dist/animations.mjs.map +0 -1
  13. package/dist/blocks.cjs +0 -1609
  14. package/dist/blocks.cjs.map +0 -1
  15. package/dist/blocks.d.mts +0 -278
  16. package/dist/blocks.d.ts +0 -278
  17. package/dist/blocks.mjs +0 -1589
  18. package/dist/blocks.mjs.map +0 -1
  19. package/dist/components.cjs +0 -1946
  20. package/dist/components.cjs.map +0 -1
  21. package/dist/components.d.mts +0 -322
  22. package/dist/components.d.ts +0 -322
  23. package/dist/components.mjs +0 -1860
  24. package/dist/components.mjs.map +0 -1
  25. package/dist/hooks.cjs +0 -530
  26. package/dist/hooks.cjs.map +0 -1
  27. package/dist/hooks.d.mts +0 -364
  28. package/dist/hooks.d.ts +0 -364
  29. package/dist/hooks.mjs +0 -506
  30. package/dist/hooks.mjs.map +0 -1
  31. package/dist/index.cjs +0 -4080
  32. package/dist/index.cjs.map +0 -1
  33. package/dist/index.d.mts +0 -1044
  34. package/dist/index.d.ts +0 -1044
  35. package/dist/index.mjs +0 -3962
  36. package/dist/index.mjs.map +0 -1
  37. package/dist/theme.cjs +0 -189
  38. package/dist/theme.cjs.map +0 -1
  39. package/dist/theme.d.mts +0 -60
  40. package/dist/theme.d.ts +0 -60
  41. package/dist/theme.mjs +0 -184
  42. package/dist/theme.mjs.map +0 -1
  43. package/src/hooks/useCfgRouter.ts +0 -153
  44. package/src/hooks/useQueryParams.ts +0 -73
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/animations/AnimatedBackground.tsx","../src/animations/MouseFollower.tsx"],"names":["useMemo","jsxs","cn","jsx","Fragment","useState","useRef","useEffect","useCallback"],"mappings":"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","file":"animations.cjs","sourcesContent":["'use client';\n\nimport React, { useMemo } from 'react';\n\nimport { cn } from '@djangocfg/ui-core/lib';\n\nexport type BackgroundVariant =\n | 'aurora-borealis'\n | 'mesh-gradient'\n | 'floating-orbs'\n | 'geometric-flow'\n | 'liquid-gradient'\n | 'spotlight'\n | 'none'\n // Legacy aliases\n | 'gradient-mesh'\n | 'dot-matrix'\n | 'grid-lines'\n | 'aurora'\n | 'particles'\n | 'waves';\n\ninterface AnimatedBackgroundProps {\n variant?: BackgroundVariant;\n className?: string;\n intensity?: 'subtle' | 'medium' | 'strong';\n /** Color scheme - 'vibrant' uses multiple colors, 'monochrome' uses primary only */\n colorScheme?: 'vibrant' | 'monochrome' | 'cool' | 'warm';\n}\n\n// Map legacy variants to new ones\nconst variantMap: Record<string, BackgroundVariant> = {\n 'gradient-mesh': 'mesh-gradient',\n 'dot-matrix': 'geometric-flow',\n 'grid-lines': 'geometric-flow',\n 'aurora': 'aurora-borealis',\n 'particles': 'floating-orbs',\n 'waves': 'liquid-gradient',\n};\n\nexport const AnimatedBackground: React.FC<AnimatedBackgroundProps> = ({\n variant = 'mesh-gradient',\n className,\n intensity = 'medium',\n colorScheme = 'vibrant',\n}) => {\n // Map legacy variants\n const resolvedVariant = variantMap[variant] || variant;\n\n const intensityConfig = useMemo(() => ({\n subtle: { opacity: 0.15, blur: 'blur-3xl', scale: 0.8 },\n medium: { opacity: 0.25, blur: 'blur-2xl', scale: 1 },\n strong: { opacity: 0.4, blur: 'blur-xl', scale: 1.2 },\n }[intensity]), [intensity]);\n\n // Color palettes using CSS variables\n const colors = useMemo(() => {\n const palettes = {\n vibrant: [\n 'hsl(var(--chart-1))', // Blue\n 'hsl(var(--chart-2))', // Green\n 'hsl(var(--chart-3))', // Purple\n 'hsl(var(--chart-4))', // Orange\n 'hsl(var(--chart-5))', // Red\n ],\n monochrome: [\n 'hsl(var(--primary))',\n 'hsl(var(--primary) / 0.8)',\n 'hsl(var(--primary) / 0.6)',\n ],\n cool: [\n 'hsl(var(--chart-1))', // Blue\n 'hsl(var(--chart-3))', // Purple\n 'hsl(210 100% 50%)', // Bright blue\n 'hsl(260 100% 60%)', // Violet\n ],\n warm: [\n 'hsl(var(--chart-4))', // Orange\n 'hsl(var(--chart-5))', // Red\n 'hsl(35 100% 55%)', // Gold\n 'hsl(350 100% 60%)', // Rose\n ],\n };\n return palettes[colorScheme];\n }, [colorScheme]);\n\n if (resolvedVariant === 'none') {\n return null;\n }\n\n return (\n <div\n className={cn(\"absolute overflow-hidden pointer-events-none\", className)}\n style={{ inset: 0, width: '100%', height: '100%' }}\n >\n {resolvedVariant === 'aurora-borealis' && (\n <AuroraBorealis colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'mesh-gradient' && (\n <MeshGradient colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'floating-orbs' && (\n <FloatingOrbs colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'geometric-flow' && (\n <GeometricFlow colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'liquid-gradient' && (\n <LiquidGradient colors={colors} intensity={intensityConfig} />\n )}\n\n {resolvedVariant === 'spotlight' && (\n <Spotlight colors={colors} intensity={intensityConfig} />\n )}\n\n <AnimationStyles />\n </div>\n );\n};\n\n// =============================================================================\n// Aurora Borealis - Flowing northern lights effect\n// =============================================================================\n\ninterface VariantProps {\n colors: string[];\n intensity: { opacity: number; blur: string; scale: number };\n}\n\nconst AuroraBorealis: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Base layer - subtle gradient */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `linear-gradient(135deg, ${colors[0]} 0%, transparent 50%, ${colors[1]} 100%)`,\n opacity: intensity.opacity * 0.3,\n }}\n />\n\n {/* Aurora bands */}\n <div\n className={cn(\"absolute inset-0\", intensity.blur)}\n style={{\n background: `linear-gradient(110deg,\n transparent 0%,\n ${colors[0]} 20%,\n ${colors[2] || colors[0]} 35%,\n ${colors[1]} 50%,\n ${colors[3] || colors[1]} 65%,\n ${colors[0]} 80%,\n transparent 100%\n )`,\n opacity: intensity.opacity,\n animation: 'aurora-shift 15s ease-in-out infinite',\n transform: `translateY(-30%) scaleY(${intensity.scale})`,\n }}\n />\n\n {/* Secondary aurora layer */}\n <div\n className={cn(\"absolute inset-0\", intensity.blur)}\n style={{\n background: `linear-gradient(70deg,\n transparent 0%,\n ${colors[1]} 25%,\n ${colors[2] || colors[0]} 50%,\n ${colors[0]} 75%,\n transparent 100%\n )`,\n opacity: intensity.opacity * 0.7,\n animation: 'aurora-shift 20s ease-in-out infinite reverse',\n animationDelay: '-5s',\n transform: `translateY(-20%) scaleY(${intensity.scale * 0.8})`,\n }}\n />\n\n {/* Shimmer overlay */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `radial-gradient(ellipse 100% 50% at 50% 0%,\n ${colors[2] || colors[0]} 0%,\n transparent 70%\n )`,\n opacity: intensity.opacity * 0.4,\n animation: 'aurora-shimmer 8s ease-in-out infinite',\n }}\n />\n </>\n);\n\n// =============================================================================\n// Mesh Gradient - Modern Apple-style gradient mesh\n// =============================================================================\n\nconst MeshGradient: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Large gradient orbs with different colors */}\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '60%',\n height: '60%',\n top: '-10%',\n right: '-10%',\n background: `radial-gradient(circle, ${colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity,\n animation: 'mesh-float-1 25s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '50%',\n height: '50%',\n bottom: '-5%',\n left: '-5%',\n background: `radial-gradient(circle, ${colors[1]} 0%, transparent 70%)`,\n opacity: intensity.opacity,\n animation: 'mesh-float-2 30s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '40%',\n height: '40%',\n top: '30%',\n left: '25%',\n background: `radial-gradient(circle, ${colors[2] || colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.8,\n animation: 'mesh-float-3 20s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n {colors[3] && (\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '35%',\n height: '35%',\n bottom: '20%',\n right: '15%',\n background: `radial-gradient(circle, ${colors[3]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.6,\n animation: 'mesh-float-4 22s ease-in-out infinite',\n transform: `scale(${intensity.scale})`,\n }}\n />\n )}\n </>\n);\n\n// =============================================================================\n// Floating Orbs - Animated glowing spheres\n// =============================================================================\n\nconst FloatingOrbs: React.FC<VariantProps> = ({ colors, intensity }) => {\n const orbs = useMemo(() => {\n return Array.from({ length: 12 }).map((_, i) => ({\n id: i,\n size: 60 + (i % 4) * 40,\n x: (i * 23) % 100,\n y: (i * 31) % 100,\n color: colors[i % colors.length],\n duration: 15 + (i % 5) * 5,\n delay: i * 1.5,\n }));\n }, [colors]);\n\n return (\n <>\n {orbs.map((orb) => (\n <div\n key={orb.id}\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: `${orb.size * intensity.scale}px`,\n height: `${orb.size * intensity.scale}px`,\n left: `${orb.x}%`,\n top: `${orb.y}%`,\n background: `radial-gradient(circle at 30% 30%, ${orb.color}, transparent 70%)`,\n opacity: intensity.opacity * (0.5 + (orb.id % 3) * 0.2),\n animation: `orb-float-${(orb.id % 4) + 1} ${orb.duration}s ease-in-out infinite`,\n animationDelay: `${orb.delay}s`,\n }}\n />\n ))}\n </>\n );\n};\n\n// =============================================================================\n// Geometric Flow - Clean geometric patterns\n// =============================================================================\n\nconst GeometricFlow: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Gradient base */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `linear-gradient(135deg,\n ${colors[0]} 0%,\n transparent 30%,\n transparent 70%,\n ${colors[1]} 100%\n )`,\n opacity: intensity.opacity * 0.3,\n }}\n />\n\n {/* Animated grid */}\n <div\n className=\"absolute inset-0\"\n style={{\n backgroundImage: `\n linear-gradient(${colors[0]}20 1px, transparent 1px),\n linear-gradient(90deg, ${colors[0]}20 1px, transparent 1px)\n `,\n backgroundSize: '60px 60px',\n animation: 'grid-drift 30s linear infinite',\n opacity: intensity.opacity,\n }}\n />\n\n {/* Diagonal lines */}\n <div\n className=\"absolute inset-0\"\n style={{\n backgroundImage: `repeating-linear-gradient(\n 45deg,\n transparent,\n transparent 80px,\n ${colors[2] || colors[0]}10 80px,\n ${colors[2] || colors[0]}10 82px\n )`,\n animation: 'diagonal-shift 20s linear infinite',\n opacity: intensity.opacity,\n }}\n />\n\n {/* Glowing intersection points */}\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '40%',\n height: '40%',\n top: '20%',\n left: '50%',\n transform: 'translateX(-50%)',\n background: `radial-gradient(circle, ${colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.5,\n animation: 'pulse-glow 8s ease-in-out infinite',\n }}\n />\n </>\n);\n\n// =============================================================================\n// Liquid Gradient - Smooth flowing liquid effect\n// =============================================================================\n\nconst LiquidGradient: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Base gradient */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `linear-gradient(180deg,\n transparent 0%,\n ${colors[0]}15 30%,\n ${colors[1]}20 50%,\n ${colors[2] || colors[0]}15 70%,\n transparent 100%\n )`,\n opacity: intensity.opacity,\n }}\n />\n\n {/* Liquid blob 1 */}\n <div\n className={cn(\"absolute\", intensity.blur)}\n style={{\n width: '120%',\n height: '50%',\n bottom: '-10%',\n left: '-10%',\n background: `linear-gradient(90deg,\n ${colors[0]} 0%,\n ${colors[1]} 33%,\n ${colors[2] || colors[0]} 66%,\n ${colors[0]} 100%\n )`,\n opacity: intensity.opacity,\n borderRadius: '50% 50% 0 0',\n animation: 'liquid-flow-1 12s ease-in-out infinite',\n transform: `scaleY(${intensity.scale})`,\n }}\n />\n\n {/* Liquid blob 2 */}\n <div\n className={cn(\"absolute\", intensity.blur)}\n style={{\n width: '100%',\n height: '40%',\n bottom: '-5%',\n left: '0',\n background: `linear-gradient(90deg,\n ${colors[1]} 0%,\n ${colors[2] || colors[0]} 50%,\n ${colors[3] || colors[1]} 100%\n )`,\n opacity: intensity.opacity * 0.8,\n borderRadius: '60% 40% 0 0',\n animation: 'liquid-flow-2 15s ease-in-out infinite',\n transform: `scaleY(${intensity.scale * 0.9})`,\n }}\n />\n\n {/* Floating bubbles */}\n {Array.from({ length: 6 }).map((_, i) => (\n <div\n key={i}\n className=\"absolute rounded-full\"\n style={{\n width: `${12 + i * 4}px`,\n height: `${12 + i * 4}px`,\n left: `${15 + i * 15}%`,\n bottom: '10%',\n background: `radial-gradient(circle at 30% 30%,\n ${colors[i % colors.length]}80,\n ${colors[i % colors.length]}20\n )`,\n border: `1px solid ${colors[i % colors.length]}40`,\n opacity: intensity.opacity,\n animation: `bubble-float ${8 + i * 2}s ease-in-out infinite`,\n animationDelay: `${i * 2}s`,\n }}\n />\n ))}\n </>\n);\n\n// =============================================================================\n// Spotlight - Dramatic spotlight effect\n// =============================================================================\n\nconst Spotlight: React.FC<VariantProps> = ({ colors, intensity }) => (\n <>\n {/* Main spotlight */}\n <div\n className={cn(\"absolute\", intensity.blur)}\n style={{\n width: '80%',\n height: '80%',\n top: '-20%',\n left: '50%',\n transform: 'translateX(-50%)',\n background: `conic-gradient(from 180deg at 50% 50%,\n ${colors[0]} 0deg,\n ${colors[1]} 60deg,\n ${colors[2] || colors[0]} 120deg,\n ${colors[3] || colors[1]} 180deg,\n ${colors[0]} 240deg,\n ${colors[1]} 300deg,\n ${colors[0]} 360deg\n )`,\n opacity: intensity.opacity,\n animation: 'spotlight-rotate 30s linear infinite',\n }}\n />\n\n {/* Center fade */}\n <div\n className=\"absolute inset-0\"\n style={{\n background: `radial-gradient(circle at 50% 30%,\n transparent 0%,\n hsl(var(--background)) 70%\n )`,\n }}\n />\n\n {/* Accent glow */}\n <div\n className={cn(\"absolute rounded-full\", intensity.blur)}\n style={{\n width: '50%',\n height: '50%',\n top: '10%',\n left: '25%',\n background: `radial-gradient(circle, ${colors[0]} 0%, transparent 70%)`,\n opacity: intensity.opacity * 0.5,\n animation: 'pulse-glow 6s ease-in-out infinite',\n }}\n />\n </>\n);\n\n// =============================================================================\n// Animation Styles\n// =============================================================================\n\nconst AnimationStyles: React.FC = () => (\n <style>{`\n @keyframes aurora-shift {\n 0%, 100% {\n transform: translateX(-10%) translateY(-30%) scaleX(1.1);\n }\n 50% {\n transform: translateX(10%) translateY(-25%) scaleX(0.9);\n }\n }\n\n @keyframes aurora-shimmer {\n 0%, 100% {\n opacity: 0.2;\n transform: scale(1);\n }\n 50% {\n opacity: 0.4;\n transform: scale(1.05);\n }\n }\n\n @keyframes mesh-float-1 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 25% { transform: translate(-5%, 10%) scale(1.05); }\n 50% { transform: translate(5%, 5%) scale(0.95); }\n 75% { transform: translate(-3%, -5%) scale(1.02); }\n }\n\n @keyframes mesh-float-2 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 33% { transform: translate(8%, -8%) scale(1.08); }\n 66% { transform: translate(-6%, 6%) scale(0.92); }\n }\n\n @keyframes mesh-float-3 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 50% { transform: translate(10%, 10%) scale(1.1); }\n }\n\n @keyframes mesh-float-4 {\n 0%, 100% { transform: translate(0, 0) scale(1); }\n 25% { transform: translate(5%, -10%) scale(0.95); }\n 75% { transform: translate(-8%, 5%) scale(1.05); }\n }\n\n @keyframes orb-float-1 {\n 0%, 100% { transform: translate(0, 0); }\n 50% { transform: translate(30px, -40px); }\n }\n\n @keyframes orb-float-2 {\n 0%, 100% { transform: translate(0, 0); }\n 50% { transform: translate(-25px, 35px); }\n }\n\n @keyframes orb-float-3 {\n 0%, 100% { transform: translate(0, 0); }\n 33% { transform: translate(40px, 20px); }\n 66% { transform: translate(-20px, -30px); }\n }\n\n @keyframes orb-float-4 {\n 0%, 100% { transform: translate(0, 0); }\n 25% { transform: translate(-35px, -25px); }\n 75% { transform: translate(25px, 40px); }\n }\n\n @keyframes grid-drift {\n 0% { transform: translate(0, 0); }\n 100% { transform: translate(60px, 60px); }\n }\n\n @keyframes diagonal-shift {\n 0% { transform: translateX(0); }\n 100% { transform: translateX(160px); }\n }\n\n @keyframes pulse-glow {\n 0%, 100% { opacity: 0.3; transform: translateX(-50%) scale(1); }\n 50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); }\n }\n\n @keyframes liquid-flow-1 {\n 0%, 100% {\n transform: translateY(0) scaleX(1);\n border-radius: 50% 50% 0 0;\n }\n 25% {\n transform: translateY(-30px) scaleX(1.05);\n border-radius: 45% 55% 0 0;\n }\n 50% {\n transform: translateY(-50px) scaleX(0.95);\n border-radius: 55% 45% 0 0;\n }\n 75% {\n transform: translateY(-25px) scaleX(1.02);\n border-radius: 48% 52% 0 0;\n }\n }\n\n @keyframes liquid-flow-2 {\n 0%, 100% {\n transform: translateY(0) scaleX(1);\n border-radius: 60% 40% 0 0;\n }\n 33% {\n transform: translateY(-40px) scaleX(1.08);\n border-radius: 40% 60% 0 0;\n }\n 66% {\n transform: translateY(-60px) scaleX(0.92);\n border-radius: 55% 45% 0 0;\n }\n }\n\n @keyframes bubble-float {\n 0%, 100% {\n transform: translateY(0) scale(1);\n opacity: 0.6;\n }\n 50% {\n transform: translateY(-100px) scale(1.2);\n opacity: 0.3;\n }\n }\n\n @keyframes spotlight-rotate {\n 0% { transform: translateX(-50%) rotate(0deg); }\n 100% { transform: translateX(-50%) rotate(360deg); }\n }\n `}</style>\n);\n","'use client';\n\nimport React, { useEffect, useRef, useState, useCallback, useMemo } from 'react';\n\nimport { cn } from '@djangocfg/ui-core/lib';\n\nexport type MouseFollowerVariant =\n | 'glow'\n | 'spotlight'\n | 'gradient-blob'\n | 'ring'\n | 'trail';\n\ninterface MouseFollowerProps {\n /** Visual style of the follower */\n variant?: MouseFollowerVariant;\n /** Size of the effect in pixels */\n size?: number;\n /** Color - can be CSS color or 'primary' to use theme */\n color?: string;\n /** Smoothness of following (0.05 = very smooth, 0.3 = snappy) */\n smoothness?: number;\n /** Opacity of the effect (0-1) */\n opacity?: number;\n /** Blur amount for glow effects */\n blur?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';\n /** Additional className for the container */\n className?: string;\n /** Whether to show on mobile (touch devices) */\n showOnMobile?: boolean;\n /** Disable the effect */\n disabled?: boolean;\n}\n\ninterface Position {\n x: number;\n y: number;\n}\n\nconst blurMap = {\n sm: 'blur-sm',\n md: 'blur-md',\n lg: 'blur-lg',\n xl: 'blur-xl',\n '2xl': 'blur-2xl',\n '3xl': 'blur-3xl',\n};\n\nexport const MouseFollower: React.FC<MouseFollowerProps> = ({\n variant = 'glow',\n size = 300,\n color = 'primary',\n smoothness = 0.1,\n opacity = 0.3,\n blur = '2xl',\n className,\n showOnMobile = false,\n disabled = false,\n}) => {\n const [mounted, setMounted] = useState(false);\n const [isVisible, setIsVisible] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n const positionRef = useRef<Position>({ x: 0, y: 0 });\n const targetRef = useRef<Position>({ x: 0, y: 0 });\n const elementRef = useRef<HTMLDivElement>(null);\n const rafRef = useRef<number>(0);\n\n // Resolve color\n const resolvedColor = useMemo(() => {\n if (color === 'primary') return 'hsl(var(--primary))';\n if (color === 'secondary') return 'hsl(var(--secondary))';\n if (color === 'accent') return 'hsl(var(--accent))';\n return color;\n }, [color]);\n\n // Check if mobile\n useEffect(() => {\n setMounted(true);\n const checkMobile = () => {\n setIsMobile('ontouchstart' in window || navigator.maxTouchPoints > 0);\n };\n checkMobile();\n window.addEventListener('resize', checkMobile);\n return () => window.removeEventListener('resize', checkMobile);\n }, []);\n\n // Animation loop with lerp\n const animate = useCallback(() => {\n const dx = targetRef.current.x - positionRef.current.x;\n const dy = targetRef.current.y - positionRef.current.y;\n\n positionRef.current.x += dx * smoothness;\n positionRef.current.y += dy * smoothness;\n\n if (elementRef.current) {\n elementRef.current.style.transform = `translate(${positionRef.current.x - size / 2}px, ${positionRef.current.y - size / 2}px)`;\n }\n\n rafRef.current = requestAnimationFrame(animate);\n }, [smoothness, size]);\n\n // Mouse move handler\n useEffect(() => {\n if (disabled || !mounted) return;\n if (isMobile && !showOnMobile) return;\n\n const handleMouseMove = (e: MouseEvent) => {\n targetRef.current = { x: e.clientX, y: e.clientY };\n if (!isVisible) setIsVisible(true);\n };\n\n const handleMouseLeave = () => {\n setIsVisible(false);\n };\n\n const handleMouseEnter = () => {\n setIsVisible(true);\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseleave', handleMouseLeave);\n document.addEventListener('mouseenter', handleMouseEnter);\n\n rafRef.current = requestAnimationFrame(animate);\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseleave', handleMouseLeave);\n document.removeEventListener('mouseenter', handleMouseEnter);\n cancelAnimationFrame(rafRef.current);\n };\n }, [disabled, mounted, isMobile, showOnMobile, animate, isVisible]);\n\n if (!mounted || disabled) return null;\n if (isMobile && !showOnMobile) return null;\n\n return (\n <div\n className={cn(\n 'fixed inset-0 pointer-events-none overflow-hidden z-0',\n className\n )}\n >\n <div\n ref={elementRef}\n className={cn(\n 'absolute top-0 left-0 transition-opacity duration-300',\n isVisible ? 'opacity-100' : 'opacity-0'\n )}\n style={{ width: size, height: size }}\n >\n {variant === 'glow' && (\n <GlowEffect\n size={size}\n color={resolvedColor}\n opacity={opacity}\n blur={blurMap[blur]}\n />\n )}\n\n {variant === 'spotlight' && (\n <SpotlightEffect\n size={size}\n color={resolvedColor}\n opacity={opacity}\n blur={blurMap[blur]}\n />\n )}\n\n {variant === 'gradient-blob' && (\n <GradientBlobEffect\n size={size}\n color={resolvedColor}\n opacity={opacity}\n blur={blurMap[blur]}\n />\n )}\n\n {variant === 'ring' && (\n <RingEffect\n size={size}\n color={resolvedColor}\n opacity={opacity}\n />\n )}\n\n {variant === 'trail' && (\n <TrailEffect\n size={size}\n color={resolvedColor}\n opacity={opacity}\n blur={blurMap[blur]}\n />\n )}\n </div>\n </div>\n );\n};\n\n// =============================================================================\n// Effect Variants\n// =============================================================================\n\ninterface EffectProps {\n size: number;\n color: string;\n opacity: number;\n blur?: string;\n}\n\nconst GlowEffect: React.FC<EffectProps> = ({ size, color, opacity, blur }) => (\n <div\n className={cn('w-full h-full rounded-full', blur)}\n style={{\n background: `radial-gradient(circle, ${color} 0%, transparent 70%)`,\n opacity,\n }}\n />\n);\n\nconst SpotlightEffect: React.FC<EffectProps> = ({ size, color, opacity, blur }) => (\n <>\n {/* Main spotlight cone */}\n <div\n className={cn('absolute inset-0', blur)}\n style={{\n background: `conic-gradient(from 180deg at 50% 50%,\n transparent 0deg,\n ${color} 150deg,\n ${color} 210deg,\n transparent 360deg\n )`,\n opacity: opacity * 0.6,\n }}\n />\n {/* Center glow */}\n <div\n className={cn('absolute rounded-full', blur)}\n style={{\n width: '40%',\n height: '40%',\n top: '30%',\n left: '30%',\n background: `radial-gradient(circle, ${color} 0%, transparent 70%)`,\n opacity,\n }}\n />\n </>\n);\n\nconst GradientBlobEffect: React.FC<EffectProps> = ({ size, color, opacity, blur }) => (\n <>\n {/* Animated blob shape */}\n <div\n className={cn('w-full h-full', blur)}\n style={{\n background: `radial-gradient(ellipse 60% 40% at 50% 50%, ${color} 0%, transparent 70%)`,\n opacity,\n animation: 'blob-morph 8s ease-in-out infinite',\n }}\n />\n {/* Secondary blob */}\n <div\n className={cn('absolute inset-0', blur)}\n style={{\n background: `radial-gradient(ellipse 40% 60% at 50% 50%, ${color} 0%, transparent 60%)`,\n opacity: opacity * 0.5,\n animation: 'blob-morph 8s ease-in-out infinite reverse',\n animationDelay: '-4s',\n }}\n />\n <style>{`\n @keyframes blob-morph {\n 0%, 100% { transform: scale(1) rotate(0deg); border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; }\n 25% { transform: scale(1.1) rotate(90deg); border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; }\n 50% { transform: scale(0.9) rotate(180deg); border-radius: 50% 60% 30% 60% / 30% 60% 70% 40%; }\n 75% { transform: scale(1.05) rotate(270deg); border-radius: 60% 40% 50% 40% / 70% 30% 50% 60%; }\n }\n `}</style>\n </>\n);\n\nconst RingEffect: React.FC<EffectProps> = ({ size, color, opacity }) => (\n <>\n {/* Outer ring */}\n <div\n className=\"absolute inset-0 rounded-full\"\n style={{\n border: `2px solid ${color}`,\n opacity: opacity * 0.3,\n }}\n />\n {/* Middle ring */}\n <div\n className=\"absolute rounded-full\"\n style={{\n inset: '15%',\n border: `2px solid ${color}`,\n opacity: opacity * 0.5,\n animation: 'ring-pulse 2s ease-in-out infinite',\n }}\n />\n {/* Inner ring */}\n <div\n className=\"absolute rounded-full\"\n style={{\n inset: '30%',\n border: `2px solid ${color}`,\n opacity: opacity * 0.7,\n animation: 'ring-pulse 2s ease-in-out infinite',\n animationDelay: '-1s',\n }}\n />\n {/* Center dot */}\n <div\n className=\"absolute rounded-full\"\n style={{\n width: '8px',\n height: '8px',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n background: color,\n opacity,\n }}\n />\n <style>{`\n @keyframes ring-pulse {\n 0%, 100% { opacity: 0.3; transform: scale(1); }\n 50% { opacity: 0.7; transform: scale(1.05); }\n }\n `}</style>\n </>\n);\n\nconst TrailEffect: React.FC<EffectProps> = ({ size, color, opacity, blur }) => (\n <>\n {/* Multiple trailing circles */}\n {Array.from({ length: 5 }).map((_, i) => (\n <div\n key={i}\n className={cn('absolute rounded-full', blur)}\n style={{\n width: `${100 - i * 15}%`,\n height: `${100 - i * 15}%`,\n top: `${i * 7.5}%`,\n left: `${i * 7.5}%`,\n background: `radial-gradient(circle, ${color} 0%, transparent 70%)`,\n opacity: opacity * (1 - i * 0.15),\n transition: `transform ${0.1 + i * 0.05}s ease-out`,\n }}\n />\n ))}\n </>\n);\n"]}
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
-
3
- type BackgroundVariant = 'aurora-borealis' | 'mesh-gradient' | 'floating-orbs' | 'geometric-flow' | 'liquid-gradient' | 'spotlight' | 'none' | 'gradient-mesh' | 'dot-matrix' | 'grid-lines' | 'aurora' | 'particles' | 'waves';
4
- interface AnimatedBackgroundProps {
5
- variant?: BackgroundVariant;
6
- className?: string;
7
- intensity?: 'subtle' | 'medium' | 'strong';
8
- /** Color scheme - 'vibrant' uses multiple colors, 'monochrome' uses primary only */
9
- colorScheme?: 'vibrant' | 'monochrome' | 'cool' | 'warm';
10
- }
11
- declare const AnimatedBackground: React.FC<AnimatedBackgroundProps>;
12
-
13
- type MouseFollowerVariant = 'glow' | 'spotlight' | 'gradient-blob' | 'ring' | 'trail';
14
- interface MouseFollowerProps {
15
- /** Visual style of the follower */
16
- variant?: MouseFollowerVariant;
17
- /** Size of the effect in pixels */
18
- size?: number;
19
- /** Color - can be CSS color or 'primary' to use theme */
20
- color?: string;
21
- /** Smoothness of following (0.05 = very smooth, 0.3 = snappy) */
22
- smoothness?: number;
23
- /** Opacity of the effect (0-1) */
24
- opacity?: number;
25
- /** Blur amount for glow effects */
26
- blur?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
27
- /** Additional className for the container */
28
- className?: string;
29
- /** Whether to show on mobile (touch devices) */
30
- showOnMobile?: boolean;
31
- /** Disable the effect */
32
- disabled?: boolean;
33
- }
34
- declare const MouseFollower: React.FC<MouseFollowerProps>;
35
-
36
- export { AnimatedBackground, type BackgroundVariant, MouseFollower, type MouseFollowerVariant };
@@ -1,36 +0,0 @@
1
- import React from 'react';
2
-
3
- type BackgroundVariant = 'aurora-borealis' | 'mesh-gradient' | 'floating-orbs' | 'geometric-flow' | 'liquid-gradient' | 'spotlight' | 'none' | 'gradient-mesh' | 'dot-matrix' | 'grid-lines' | 'aurora' | 'particles' | 'waves';
4
- interface AnimatedBackgroundProps {
5
- variant?: BackgroundVariant;
6
- className?: string;
7
- intensity?: 'subtle' | 'medium' | 'strong';
8
- /** Color scheme - 'vibrant' uses multiple colors, 'monochrome' uses primary only */
9
- colorScheme?: 'vibrant' | 'monochrome' | 'cool' | 'warm';
10
- }
11
- declare const AnimatedBackground: React.FC<AnimatedBackgroundProps>;
12
-
13
- type MouseFollowerVariant = 'glow' | 'spotlight' | 'gradient-blob' | 'ring' | 'trail';
14
- interface MouseFollowerProps {
15
- /** Visual style of the follower */
16
- variant?: MouseFollowerVariant;
17
- /** Size of the effect in pixels */
18
- size?: number;
19
- /** Color - can be CSS color or 'primary' to use theme */
20
- color?: string;
21
- /** Smoothness of following (0.05 = very smooth, 0.3 = snappy) */
22
- smoothness?: number;
23
- /** Opacity of the effect (0-1) */
24
- opacity?: number;
25
- /** Blur amount for glow effects */
26
- blur?: 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
27
- /** Additional className for the container */
28
- className?: string;
29
- /** Whether to show on mobile (touch devices) */
30
- showOnMobile?: boolean;
31
- /** Disable the effect */
32
- disabled?: boolean;
33
- }
34
- declare const MouseFollower: React.FC<MouseFollowerProps>;
35
-
36
- export { AnimatedBackground, type BackgroundVariant, MouseFollower, type MouseFollowerVariant };