nexoreui 0.1.2 → 0.1.6

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/button.tsx","../src/utils/cn.ts","../src/components/card.tsx","../src/components/input.tsx","../src/components/badge.tsx","../src/components/avatar.tsx","../src/components/tabs.tsx","../src/components/accordion.tsx","../src/components/dialog.tsx","../src/components/tooltip.tsx","../src/components/checkbox.tsx","../src/components/switch.tsx","../src/components/select.tsx","../src/components/alert.tsx","../src/components/toaster.tsx","../src/components/skeleton.tsx","../src/components/progress.tsx","../src/components/slider.tsx","../src/components/special-buttons.tsx","../src/components/special-alerts.tsx","../src/components/special-inputs.tsx","../src/components/special-cards.tsx","../src/components/data-display.tsx","../src/components/navigation.tsx","../src/components/special-badges.tsx","../src/components/special-loaders.tsx","../src/components/special-modals.tsx","../src/components/special-avatars.tsx","../src/components/special-toggles.tsx","../src/components/special-typography.tsx","../src/components/special-animations.tsx","../src/components/special-forms.tsx","../src/components/special-blocks.tsx","../src/components/special-tables.tsx","../src/components/mega-buttons.tsx","../src/components/mega-inputs.tsx","../src/components/mega-cards.tsx","../src/components/mega-badges.tsx","../src/components/mega-loaders.tsx","../src/components/mega-alerts.tsx","../src/components/mega-avatars.tsx","../src/components/mega-nav.tsx","../src/components/mega-stats.tsx","../src/components/mega-blocks.tsx","../src/components/pro-forms.tsx","../src/components/pro-ecommerce.tsx","../src/components/pro-ai.tsx","../src/components/pro-tables.tsx","../src/components/pro-dashboards.tsx","../src/components/pro-navigation.tsx","../src/components/pro-feedback.tsx","../src/components/pro-marketing.tsx","../src/components/pro-lists.tsx","../src/components/pro-layouts.tsx","../src/components/mega-interactive.tsx","../src/components/special-premium-card.tsx","../src/components/ultra-components.tsx","../src/components/ultra-effects.tsx","../src/components/pro-buttons.tsx","../src/components/pro-cards.tsx","../src/components/pro-inputs.tsx","../src/components/premium-overlays.tsx","../src/components/premium-media.tsx","../src/components/premium-charts.tsx","../src/components/premium-social.tsx","../src/components/premium-commerce.tsx","../src/components/premium-effects.tsx","../src/components/new-components.tsx"],"sourcesContent":["export * from './components/button';\nexport * from './components/card';\nexport * from './components/input';\nexport * from './components/badge';\nexport * from './components/avatar';\nexport * from './components/tabs';\nexport * from './components/accordion';\nexport * from './components/dialog';\nexport * from './components/tooltip';\nexport * from './components/checkbox';\nexport * from './components/switch';\nexport * from './components/select';\nexport * from './components/alert';\nexport * from './components/toaster';\nexport * from './components/skeleton';\nexport * from './components/progress';\nexport * from './components/slider';\nexport * from './components/special-buttons';\nexport * from './components/special-alerts';\nexport * from './components/special-inputs';\nexport * from './components/special-cards';\nexport * from './components/data-display';\nexport * from './components/navigation';\nexport * from './components/special-badges';\nexport * from './components/special-loaders';\nexport * from './components/special-modals';\nexport * from './components/special-avatars';\nexport * from './components/special-toggles';\nexport * from './components/special-typography';\nexport * from './components/special-animations';\nexport * from './components/special-forms';\nexport * from './components/special-blocks';\nexport * from './components/special-tables';\nexport * from './components/mega-buttons';\nexport * from './components/mega-inputs';\nexport * from './components/mega-cards';\nexport * from './components/mega-badges';\nexport * from './components/mega-loaders';\nexport * from './components/mega-alerts';\nexport * from './components/mega-avatars';\nexport * from './components/mega-nav';\nexport * from './components/mega-stats';\nexport * from './components/mega-blocks';\n\n// Pro Components\nexport * from './components/pro-forms';\nexport * from './components/pro-ecommerce';\nexport * from './components/pro-ai';\nexport * from './components/pro-tables';\nexport * from './components/pro-dashboards';\nexport * from './components/pro-navigation';\nexport * from './components/pro-feedback';\nexport * from './components/pro-marketing';\nexport * from './components/pro-lists';\nexport * from './components/pro-layouts';\nexport * from './components/mega-interactive';\nexport * from './components/special-premium-card';\n\n// Ultra Components (Premium)\nexport * from './components/ultra-components';\nexport * from './components/ultra-effects';\n\n// Pro V2 Components\nexport * from './components/pro-buttons';\nexport * from './components/pro-cards';\nexport * from './components/pro-inputs';\n\n// Premium V2 Components\nexport * from './components/premium-overlays';\nexport * from './components/premium-media';\nexport * from './components/premium-charts';\nexport * from './components/premium-social';\nexport * from './components/premium-commerce';\nexport * from './components/premium-effects';\n\n// New standalone components\nexport * from './components/new-components';\n\nexport * from './utils/cn';\n","'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../utils/cn';\nimport { motion, HTMLMotionProps, AnimatePresence } from 'framer-motion';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 active:scale-95\",\n {\n variants: {\n variant: {\n default: \"bg-gradient-to-br from-primary to-primary/80 text-primary-foreground shadow-lg shadow-primary/20 hover:shadow-xl hover:shadow-primary/30\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80 border border-border/50\",\n destructive: \"bg-gradient-to-br from-destructive to-destructive/80 text-destructive-foreground shadow-lg shadow-destructive/20 hover:shadow-xl hover:shadow-destructive/30\",\n outline: \"border-2 border-input bg-background hover:bg-accent hover:text-accent-foreground hover:border-accent\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n // New WOW Variants\n premium: \"bg-gradient-to-r from-violet-600 via-pink-600 to-orange-500 text-white shadow-lg shadow-purple-500/20 hover:shadow-xl hover:shadow-purple-500/30\",\n neon: \"bg-background border-2 border-primary text-foreground shadow-[0_0_15px_rgba(var(--primary-rgb),0.5)] hover:shadow-[0_0_25px_rgba(var(--primary-rgb),0.7)]\",\n glass: \"backdrop-blur-md bg-white/10 dark:bg-black/20 border border-white/20 dark:border-white/10 text-foreground hover:bg-white/20 dark:hover:bg-black/30 shadow-lg\",\n shimmer: \"relative overflow-hidden bg-slate-900 text-white dark:bg-white dark:text-black\",\n },\n size: {\n default: \"h-10 px-5 py-2\",\n sm: \"h-9 rounded-md px-3 text-xs\",\n lg: \"h-11 rounded-xl px-8 text-base\",\n icon: \"h-10 w-10 rounded-full\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n /** Enable hover/tap motion animation @default true */\n animate?: boolean;\n /** Enable shimmer light effect across the button */\n shimmer?: boolean;\n /** Enable neon glow effect */\n glow?: boolean;\n children?: React.ReactNode;\n className?: string;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, animate = true, shimmer = false, glow = false, children, ...props }, ref) => {\n \n const isShimmer = variant === 'shimmer' || shimmer;\n\n const buttonContent = (\n <>\n {isShimmer && (\n <motion.div\n className=\"absolute inset-0 w-[200%] bg-gradient-to-r from-transparent via-white/20 to-transparent\"\n initial={{ x: '-100%' }}\n animate={{ x: '100%' }}\n transition={{\n repeat: Infinity,\n repeatType: 'loop',\n duration: 2,\n ease: 'linear',\n }}\n style={{ transform: 'skewX(-20deg)' }}\n />\n )}\n <span className=\"relative z-10 flex items-center gap-2\">{children}</span>\n </>\n );\n\n if (!animate) {\n return (\n <button\n className={cn(buttonVariants({ variant, size, className }), isShimmer && \"relative overflow-hidden\")}\n ref={ref}\n {...props}\n >\n {buttonContent}\n </button>\n );\n }\n\n // Destructure HTML-only event handlers that shouldn't go to motion.button\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props;\n\n return (\n <motion.button\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n whileHover={{ \n scale: 1.03,\n y: -1,\n }}\n whileTap={{ scale: 0.97 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 15 }}\n {...motionSafeProps as HTMLMotionProps<\"button\">}\n >\n {buttonContent}\n </motion.button>\n );\n }\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client';\n\nimport * as React from \"react\"\nimport { cn } from \"../utils/cn\"\nimport { motion, HTMLMotionProps } from \"framer-motion\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nconst cardVariants = cva(\n \"rounded-2xl text-card-foreground transition-all duration-300\",\n {\n variants: {\n variant: {\n default: \"border bg-card text-card-foreground shadow-sm hover:shadow-md\",\n glass: \"backdrop-blur-md bg-white/10 dark:bg-black/20 border border-white/20 dark:border-white/10 shadow-lg\",\n gradient: \"bg-gradient-to-br from-violet-500/10 via-pink-500/10 to-orange-500/10 border border-purple-500/20 shadow-lg shadow-purple-500/5\",\n glow: \"bg-card border-2 border-primary/20 shadow-[0_0_15px_rgba(var(--primary-rgb),0.1)] hover:shadow-[0_0_25px_rgba(var(--primary-rgb),0.2)]\",\n },\n hover: {\n none: \"\",\n lift: \"hover:-translate-y-1 hover:shadow-lg\",\n glow: \"hover:border-primary/50 hover:shadow-[0_0_20px_rgba(var(--primary-rgb),0.15)]\",\n }\n },\n defaultVariants: {\n variant: \"default\",\n hover: \"lift\",\n }\n }\n)\n\nexport interface CardProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, keyof HTMLMotionProps<\"div\">>,\n VariantProps<typeof cardVariants> {\n /**\n * Whether to enable hover animations\n * @default true\n */\n animate?: boolean;\n /**\n * The title of the card\n */\n title?: React.ReactNode;\n /**\n * The description of the card\n */\n description?: React.ReactNode;\n /**\n * The footer content of the card\n */\n footer?: React.ReactNode;\n /**\n * An image URL to display at the top of the card\n */\n image?: string;\n}\n\nconst Card = React.forwardRef<HTMLDivElement, CardProps & HTMLMotionProps<\"div\">>(\n ({ className, variant, hover, animate = true, title, description, footer, image, children, ...props }, ref) => {\n const isCompound = !title && !description && !footer && !image;\n \n const content = isCompound ? (\n children\n ) : (\n <>\n {image && (\n <div className=\"relative w-full h-48 overflow-hidden rounded-t-2xl\">\n <img src={image} alt={typeof title === 'string' ? title : 'Card image'} className=\"object-cover w-full h-full\" />\n </div>\n )}\n {(title || description) && (\n <CardHeader>\n {title && <CardTitle>{title}</CardTitle>}\n {description && <CardDescription>{description}</CardDescription>}\n </CardHeader>\n )}\n {children && <CardContent>{children as React.ReactNode}</CardContent>}\n {footer && <CardFooter>{footer}</CardFooter>}\n </>\n );\n\n if (animate) {\n return (\n <motion.div\n ref={ref}\n className={cn(cardVariants({ variant, hover, className }))}\n whileHover={{ scale: 1.01 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 20 }}\n {...props}\n >\n {content as React.ReactNode}\n </motion.div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(cardVariants({ variant, hover, className }))}\n {...(props as React.HTMLAttributes<HTMLDivElement>)}\n >\n {content as React.ReactNode}\n </div>\n );\n }\n)\nCard.displayName = \"Card\"\n\nconst CardHeader = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n))\nCardHeader.displayName = \"CardHeader\"\n\nconst CardTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className=\"font-semibold leading-none tracking-tight text-xl bg-gradient-to-br from-foreground to-foreground/70 bg-clip-text text-transparent\"\n {...props}\n />\n))\nCardTitle.displayName = \"CardTitle\"\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nCardDescription.displayName = \"CardDescription\"\n\nconst CardContent = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />\n))\nCardContent.displayName = \"CardContent\"\n\nconst CardFooter = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n))\nCardFooter.displayName = \"CardFooter\"\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","'use client';\n\nimport * as React from \"react\"\nimport { cn } from \"../utils/cn\"\nimport { motion } from \"framer-motion\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nconst inputVariants = cva(\n \"flex h-10 w-full rounded-lg border bg-transparent px-4 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none transition-all duration-200 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-input bg-background/50 focus:border-primary focus:ring-2 focus:ring-primary/20\",\n glass: \"backdrop-blur-md bg-white/5 dark:bg-black/20 border-white/10 dark:border-white/5 focus:border-white/30 dark:focus:border-white/10 focus:bg-white/10 focus:ring-2 focus:ring-white/10\",\n gradient: \"border-purple-500/20 bg-background/50 focus:border-purple-500/50 focus:ring-2 focus:ring-purple-500/20\",\n underline: \"rounded-none border-t-0 border-x-0 border-b border-muted bg-transparent px-1 focus:border-primary focus:ring-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n }\n }\n)\n\nexport interface InputProps\n extends React.InputHTMLAttributes<HTMLInputElement>,\n VariantProps<typeof inputVariants> {\n animate?: boolean;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, type, variant, animate = true, ...props }, ref) => {\n return (\n <motion.div\n className=\"relative w-full\"\n initial={animate ? { opacity: 0, y: 5 } : undefined}\n animate={animate ? { opacity: 1, y: 0 } : undefined}\n transition={{ duration: 0.3 }}\n >\n <input\n type={type}\n className={cn(inputVariants({ variant, className }))}\n ref={ref}\n {...props}\n />\n {variant === \"gradient\" && (\n <div className=\"absolute inset-0 -z-10 rounded-lg bg-gradient-to-r from-violet-500 to-pink-500 opacity-0 blur transition-opacity peer-focus:opacity-20\" />\n )}\n </motion.div>\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","'use client';\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../utils/cn\"\nimport { motion } from \"framer-motion\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center gap-1 rounded-full border font-semibold transition-all focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-default\",\n {\n variants: {\n variant: {\n default: \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground border-border hover:bg-accent\",\n // New WOW Variants\n gradient: \"border-transparent bg-gradient-to-r from-violet-500 to-pink-500 text-white shadow-sm\",\n neon: \"border-primary/50 bg-primary/10 text-primary shadow-[0_0_10px_rgba(var(--primary-rgb),0.3)]\",\n success: \"border-transparent bg-emerald-500/20 text-emerald-600 dark:text-emerald-400\",\n },\n size: {\n default: \"px-2.5 py-0.5 text-xs\",\n sm: \"px-1.5 py-0.5 text-[10px]\",\n lg: \"px-3 py-1 text-sm\",\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n /**\n * Whether to show a pulse animation on the dot\n * @default false\n */\n pulse?: boolean;\n /**\n * Whether to show a dot indicator\n * @default false\n */\n dot?: boolean;\n}\n\nfunction Badge({ className, variant, size, pulse = false, dot = false, children, ...props }: BadgeProps) {\n const showDot = dot || pulse;\n \n return (\n <div className={cn(badgeVariants({ variant, size }), className)} {...props}>\n {showDot && (\n <span className=\"relative flex h-2 w-2 mr-1\">\n {pulse && (\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-current opacity-75\"></span>\n )}\n <span className=\"relative inline-flex rounded-full h-2 w-2 bg-current\"></span>\n </span>\n )}\n {children}\n </div>\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"../utils/cn\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nconst avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full transition-all duration-300\",\n {\n variants: {\n size: {\n default: \"h-10 w-10\",\n sm: \"h-8 w-8\",\n lg: \"h-12 w-12\",\n xl: \"h-16 w-16\",\n },\n variant: {\n default: \"border-2 border-background\",\n gradient: \"p-[2px] bg-gradient-to-tr from-violet-500 to-pink-500\",\n glow: \"shadow-[0_0_15px_rgba(var(--primary-rgb),0.5)] border-2 border-primary\",\n }\n },\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n }\n }\n)\n\nexport interface AvatarProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof avatarVariants> {\n status?: \"online\" | \"offline\" | \"away\" | \"busy\";\n}\n\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, size, variant, status, children, ...props }, ref) => {\n const statusColors = {\n online: \"bg-emerald-500\",\n offline: \"bg-muted-foreground/50\",\n away: \"bg-amber-500\",\n busy: \"bg-red-500\",\n }\n\n return (\n <div className=\"relative inline-block\">\n <div\n ref={ref}\n className={cn(avatarVariants({ size, variant, className }))}\n {...props}\n >\n {variant === \"gradient\" ? (\n <div className=\"flex h-full w-full items-center justify-center rounded-full bg-background p-[1px]\">\n {children}\n </div>\n ) : (\n children\n )}\n </div>\n {status && (\n <span className={cn(\n \"absolute bottom-0 right-0 block rounded-full border-2 border-background\",\n statusColors[status],\n size === \"sm\" ? \"h-2 w-2\" : size === \"xl\" ? \"h-4 w-4\" : \"h-3 w-3\"\n )} />\n )}\n </div>\n )\n }\n)\nAvatar.displayName = \"Avatar\"\n\nexport interface AvatarImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {}\n\nconst AvatarImage = React.forwardRef<HTMLImageElement, AvatarImageProps>(\n ({ className, ...props }, ref) => (\n <img\n ref={ref}\n className={cn(\"aspect-square h-full w-full object-cover rounded-full\", className)}\n {...props}\n />\n )\n)\nAvatarImage.displayName = \"AvatarImage\"\n\nconst AvatarFallback = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium\",\n className\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = \"AvatarFallback\"\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { cn } from \"../utils/cn\"\n\nconst TabsRoot = TabsPrimitive.Root\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-11 items-center justify-center rounded-xl bg-muted/50 backdrop-blur-sm p-1 text-muted-foreground border border-border/50\",\n className\n )}\n {...props}\n />\n))\nTabsList.displayName = TabsPrimitive.List.displayName\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-lg px-4 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-lg data-[state=active]:border-border/50 border border-transparent\",\n className\n )}\n {...props}\n />\n))\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-3 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n))\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport interface TabsItem {\n label: React.ReactNode;\n value: string;\n content: React.ReactNode;\n}\n\nexport interface TabsProps {\n /**\n * The array of tab items\n */\n items?: TabsItem[];\n /**\n * The default active tab value\n */\n defaultValue?: string;\n /**\n * The variant of the tabs\n * @default \"default\"\n */\n variant?: \"default\" | \"glass\" | \"outline\";\n /**\n * Additional class names\n */\n className?: string;\n /**\n * Children for compound usage\n */\n children?: React.ReactNode;\n}\n\nexport function Tabs({\n items,\n defaultValue,\n variant = \"default\",\n className,\n children,\n}: TabsProps) {\n const defVal = defaultValue || items?.[0]?.value;\n\n return (\n <TabsPrimitive.Root defaultValue={defVal} className={cn(\"w-full\", className)}>\n {items ? (\n <>\n <TabsList>\n {items.map((item) => (\n <TabsTrigger key={item.value} value={item.value}>\n {item.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {items.map((item) => (\n <TabsContent key={item.value} value={item.value}>\n {item.content}\n </TabsContent>\n ))}\n </>\n ) : (\n children\n )}\n </TabsPrimitive.Root>\n )\n}\n\nexport { TabsRoot, TabsList, TabsTrigger, TabsContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDown } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\n\nconst AccordionRoot = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(\"border-b border-border/50 transition-all duration-300 data-[state=open]:bg-muted/30 rounded-lg px-2\", className)}\n {...props}\n />\n))\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:text-primary [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n <span className=\"flex items-center gap-2\">{children}</span>\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-300 ease-in-out text-muted-foreground\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n <div className={cn(\"pb-4 pt-1 px-1 text-muted-foreground leading-relaxed\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport interface AccordionItemData {\n title: React.ReactNode;\n content: React.ReactNode;\n}\n\nexport interface AccordionProps {\n /**\n * The array of accordion items\n */\n items: AccordionItemData[];\n /**\n * The type of accordion\n * @default \"single\"\n */\n type?: \"single\" | \"multiple\";\n /**\n * The variant of the accordion\n * @default \"default\"\n */\n variant?: \"default\" | \"glass\" | \"outline\";\n /**\n * Additional class names\n */\n className?: string;\n /**\n * Whether the items can be collapsed (only for type=\"single\")\n * @default true\n */\n collapsible?: boolean;\n}\n\nexport function Accordion({\n items,\n type = \"single\",\n variant = \"default\",\n className,\n collapsible = true,\n}: AccordionProps) {\n const variantClasses = {\n default: \"\",\n glass: \"backdrop-blur-md bg-white/5 border border-white/10 rounded-xl p-2\",\n outline: \"border border-border/50 rounded-xl p-2\",\n };\n\n const content = items.map((item, index) => (\n <AccordionItem key={index} value={`item-${index}`}>\n <AccordionTrigger>{item.title}</AccordionTrigger>\n <AccordionContent>{item.content}</AccordionContent>\n </AccordionItem>\n ));\n\n if (type === \"single\") {\n return (\n <AccordionPrimitive.Root type=\"single\" collapsible={collapsible} className={cn(\"w-full\", variantClasses[variant], className)}>\n {content}\n </AccordionPrimitive.Root>\n );\n }\n\n return (\n <AccordionPrimitive.Root type=\"multiple\" className={cn(\"w-full\", variantClasses[variant], className)}>\n {content}\n </AccordionPrimitive.Root>\n );\n}\n\nexport { AccordionRoot, AccordionItem, AccordionTrigger, AccordionContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X, AlertTriangle, CheckCircle } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { Button } from \"./button\"\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border/50 bg-background/95 backdrop-blur-md p-6 shadow-2xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:scale-95 data-[state=open]:scale-100 data-[state=closed]:translate-y-[-48%] data-[state=open]:translate-y-[-50%] rounded-2xl\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-full p-1 opacity-70 ring-offset-background transition-opacity hover:opacity-100 hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-xl font-semibold leading-none tracking-tight bg-gradient-to-br from-foreground to-foreground/70 bg-clip-text text-transparent\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground leading-relaxed\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n\nexport interface ModalProps {\n /**\n * The title of the modal\n */\n title?: React.ReactNode;\n /**\n * The description of the modal\n */\n description?: React.ReactNode;\n /**\n * The content of the modal\n */\n children?: React.ReactNode;\n /**\n * The trigger element to open the modal\n */\n trigger?: React.ReactNode;\n /**\n * Callback function called when the confirm button is clicked\n */\n onConfirm?: () => void;\n /**\n * Callback function called when the cancel button is clicked\n */\n onCancel?: () => void;\n /**\n * The text for the confirm button\n * @default \"Confirm\"\n */\n confirmText?: string;\n /**\n * The text for the cancel button\n * @default \"Cancel\"\n */\n cancelText?: string;\n /**\n * Whether the modal is open\n */\n isOpen?: boolean;\n /**\n * Callback function called when the open state changes\n */\n onOpenChange?: (open: boolean) => void;\n /**\n * The variant of the modal\n * @default \"default\"\n */\n variant?: \"default\" | \"glass\" | \"destructive\" | \"success\" | \"fullscreen\" | \"drawer\";\n /**\n * Whether the content is scrollable\n * @default false\n */\n scrollable?: boolean;\n /**\n * Additional className for the dialog content\n */\n className?: string;\n}\n\nexport function Modal({\n title,\n description,\n children,\n trigger,\n onConfirm,\n onCancel,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n isOpen,\n onOpenChange,\n variant = \"default\",\n scrollable = false,\n className,\n}: ModalProps) {\n const variantClasses = {\n default: \"\",\n glass: \"bg-white/10 backdrop-blur-xl border-white/20 shadow-2xl\",\n destructive: \"border-destructive/20\",\n success: \"border-green-500/20\",\n fullscreen: \"max-w-full h-screen rounded-none\",\n drawer: \"sm:max-w-full sm:h-[50vh] sm:rounded-b-none sm:rounded-t-[20px] fixed bottom-0 top-auto translate-y-0\",\n }\n\n const isDestructive = variant === \"destructive\";\n const isSuccess = variant === \"success\";\n\n return (\n <Dialog open={isOpen} onOpenChange={onOpenChange}>\n {trigger && <DialogTrigger asChild>{trigger}</DialogTrigger>}\n <DialogContent className={cn(variantClasses[variant], scrollable ? \"max-h-[80vh] overflow-y-auto\" : \"\", className)}>\n {(title || description || isDestructive || isSuccess) && (\n <DialogHeader className={cn((isDestructive || isSuccess) ? \"flex flex-col items-center text-center sm:text-center\" : \"\")}>\n {isDestructive && (\n <div className=\"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-destructive/10 mb-4\">\n <AlertTriangle className=\"h-6 w-6 text-destructive\" />\n </div>\n )}\n {isSuccess && (\n <div className=\"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-green-500/10 mb-4\">\n <CheckCircle className=\"h-6 w-6 text-green-500\" />\n </div>\n )}\n {title && <DialogTitle className={cn((isDestructive || isSuccess) ? \"text-xl\" : \"\")}>{title}</DialogTitle>}\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n )}\n <div className=\"py-4\">{children}</div>\n {(onConfirm || onCancel || isDestructive || isSuccess) && (\n <DialogFooter className={cn((isDestructive || isSuccess) ? \"sm:justify-center flex-col sm:flex-row gap-2\" : \"\")}>\n {onCancel && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\" className={cn((isDestructive || isSuccess) ? \"w-full sm:w-auto\" : \"\")} onClick={onCancel}>{cancelText}</Button>\n </DialogPrimitive.Close>\n )}\n {onConfirm && (\n <Button \n variant={isDestructive ? \"destructive\" : \"default\"} \n className={cn((isDestructive || isSuccess) ? \"w-full sm:w-auto\" : \"\", isSuccess ? \"bg-green-500 hover:bg-green-600\" : \"\")} \n onClick={onConfirm}\n >\n {confirmText}\n </Button>\n )}\n </DialogFooter>\n )}\n </DialogContent>\n </Dialog>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\nimport { cn } from \"../utils/cn\"\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst TooltipRoot = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-lg border border-border/50 bg-popover/90 backdrop-blur-md px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-xl animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport interface TooltipProps {\n /**\n * The content to display in the tooltip\n */\n content: React.ReactNode;\n /**\n * The element that triggers the tooltip\n */\n children: React.ReactNode;\n /**\n * The side of the trigger to display the tooltip on\n * @default \"top\"\n */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n /**\n * The delay in milliseconds before the tooltip opens\n * @default 700\n */\n delay?: number;\n}\n\nexport function Tooltip({\n content,\n children,\n side = \"top\",\n delay = 700,\n}: TooltipProps) {\n return (\n <TooltipProvider delayDuration={delay}>\n <TooltipRoot>\n <TooltipTrigger asChild>{children}</TooltipTrigger>\n <TooltipContent side={side}>{content}</TooltipContent>\n </TooltipRoot>\n </TooltipProvider>\n )\n}\n\nexport { TooltipRoot, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { motion } from \"framer-motion\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-5 w-5 shrink-0 rounded-md border border-muted-foreground/30 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 data-[state=checked]:bg-gradient-to-br data-[state=checked]:from-primary data-[state=checked]:to-primary/80 data-[state=checked]:text-primary-foreground data-[state=checked]:border-transparent data-[state=checked]:shadow-lg data-[state=checked]:shadow-primary/20\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <motion.div\n initial={{ scale: 0.5, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\n >\n <Check className=\"h-3.5 w-3.5 stroke-[3]\" />\n </motion.div>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\nimport { cn } from \"../utils/cn\"\nimport { motion } from \"framer-motion\"\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitive.Root\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-gradient-to-r data-[state=checked]:from-primary data-[state=checked]:to-primary/80 data-[state=unchecked]:bg-muted border border-border/50 shadow-sm data-[state=checked]:shadow-[0_0_10px_rgba(var(--primary-rgb),0.3)]\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-all duration-300 ease-in-out data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 data-[state=checked]:scale-95\"\n )}\n />\n </SwitchPrimitive.Root>\n))\nSwitch.displayName = SwitchPrimitive.Root.displayName\n\nexport { Switch }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { motion } from \"framer-motion\"\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-lg border border-input bg-background/50 px-4 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50 transition-transform duration-200\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border/50 bg-popover/90 backdrop-blur-md text-popover-foreground shadow-2xl data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:scale-95 data-[state=open]:scale-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold text-muted-foreground\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-md py-2 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 transition-colors\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <motion.div\n initial={{ scale: 0.5, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\n >\n <Check className=\"h-4 w-4 stroke-[3] text-primary\" />\n </motion.div>\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../utils/cn\"\nimport { motion, HTMLMotionProps } from \"framer-motion\"\n\nconst alertVariants = cva(\n \"relative w-full rounded-xl border p-4 [&>svg~*]:pl-7 [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 transition-all duration-300\",\n {\n variants: {\n variant: {\n default: \"bg-background/50 border-border text-foreground\",\n destructive: \"border-red-500/20 bg-red-500/10 text-red-600 dark:text-red-400 [&>svg]:text-red-600 dark:[&>svg]:text-red-400\",\n success: \"border-emerald-500/20 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 [&>svg]:text-emerald-600 dark:[&>svg]:text-emerald-400\",\n warning: \"border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400 [&>svg]:text-amber-600 dark:[&>svg]:text-amber-400\",\n info: \"border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-400\",\n glass: \"backdrop-blur-md bg-white/5 dark:bg-black/20 border-white/10 dark:border-white/5 text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface AlertProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\n VariantProps<typeof alertVariants> {\n /**\n * Whether to enable entry animations\n * @default true\n */\n animate?: boolean;\n /**\n * The title of the alert\n */\n title?: React.ReactNode;\n /**\n * The description of the alert\n */\n description?: React.ReactNode;\n /**\n * An optional icon to display\n */\n icon?: React.ReactNode;\n /**\n * Whether the alert can be dismissed\n */\n dismissible?: boolean;\n /**\n * Callback function called when the alert is dismissed\n */\n onDismiss?: () => void;\n}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant, animate = true, title, description, icon, dismissible, onDismiss, children, ...props }, ref) => {\n const isCompound = !title && !description && !icon;\n const [isOpen, setIsOpen] = React.useState(true);\n\n if (!isOpen) return null;\n\n const content = isCompound ? (\n children\n ) : (\n <>\n {icon && <div className=\"absolute left-4 top-4\">{icon}</div>}\n <div className={cn(icon ? \"pl-7\" : \"\")}>\n {title && <AlertTitle>{title}</AlertTitle>}\n {description && <AlertDescription>{description}</AlertDescription>}\n {!title && !description && children}\n </div>\n {dismissible && (\n <button\n onClick={() => {\n setIsOpen(false);\n onDismiss?.();\n }}\n className=\"absolute right-4 top-4 opacity-70 hover:opacity-100 transition-opacity\"\n aria-label=\"Dismiss\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M18 6 6 18\"/><path d=\"m6 6 12 12\"/></svg>\n </button>\n )}\n </>\n );\n\n if (animate) {\n return (\n <motion.div\n ref={ref}\n role=\"alert\"\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: 10 }}\n transition={{ duration: 0.3 }}\n className={cn(alertVariants({ variant }), className)}\n {...(props as unknown as HTMLMotionProps<\"div\">)}\n >\n {content}\n </motion.div>\n );\n }\n\n return (\n <div\n ref={ref}\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {content}\n </div>\n );\n }\n)\nAlert.displayName = \"Alert\"\n\nconst AlertTitle = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLHeadingElement>\n>(({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\"mb-1 font-semibold leading-none tracking-tight text-base\", className)}\n {...props}\n />\n))\nAlertTitle.displayName = \"AlertTitle\"\n\nconst AlertDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"text-sm opacity-90 [&_p]:leading-relaxed\", className)}\n {...props}\n />\n))\nAlertDescription.displayName = \"AlertDescription\"\n\nexport { Alert, AlertTitle, AlertDescription }\n","\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as SonnerToaster } from \"sonner\"\n\ntype ToasterProps = React.ComponentProps<typeof SonnerToaster>\n\nexport function Toaster({ ...props }: ToasterProps) {\n const { theme = \"system\" } = useTheme()\n\n return (\n <SonnerToaster\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n toastOptions={{\n classNames: {\n toast:\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\n description: \"group-[.toast]:text-muted-foreground\",\n actionButton:\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton:\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n },\n }}\n {...props}\n />\n )\n}\n\nexport { toast } from \"sonner\"\n","import { cn } from \"../utils/cn\"\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The width of the skeleton\n */\n width?: string | number;\n /**\n * The height of the skeleton\n */\n height?: string | number;\n /**\n * The variant of the skeleton\n * @default \"rect\"\n */\n variant?: \"line\" | \"circle\" | \"rect\";\n /**\n * The number of skeletons to render\n * @default 1\n */\n count?: number;\n /**\n * Whether the skeleton is animated\n * @default true\n */\n animated?: boolean;\n}\n\nfunction Skeleton({\n className,\n width,\n height,\n variant = \"rect\",\n count = 1,\n animated = true,\n style,\n ...props\n}: SkeletonProps) {\n const variantClasses = {\n rect: \"rounded-md\",\n circle: \"rounded-full\",\n line: \"rounded-sm h-4\",\n };\n\n const skeletons = Array.from({ length: count }).map((_, index) => (\n <div\n key={index}\n className={cn(\n animated ? \"animate-pulse\" : \"\",\n \"bg-muted border border-border/50\",\n variantClasses[variant],\n className\n )}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n ...style,\n }}\n {...props}\n />\n ));\n\n if (count > 1) {\n return <div className=\"space-y-2\">{skeletons}</div>;\n }\n\n return skeletons[0];\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"../utils/cn\"\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The current value of the progress bar\n * @default 0\n */\n value?: number;\n /**\n * The maximum value of the progress bar\n * @default 100\n */\n max?: number;\n /**\n * The variant of the progress bar\n * @default \"default\"\n */\n variant?: \"default\" | \"success\" | \"warning\" | \"error\";\n /**\n * Whether to show the percentage label\n * @default false\n */\n showLabel?: boolean;\n /**\n * The size of the progress bar\n * @default \"default\"\n */\n size?: \"default\" | \"sm\" | \"lg\";\n /**\n * Whether the progress bar is animated\n * @default true\n */\n animated?: boolean;\n /**\n * Whether the progress bar is in an indeterminate loading state\n * @default false\n */\n isIndeterminate?: boolean;\n}\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, max = 100, variant = \"default\", showLabel = false, size = \"default\", animated = true, isIndeterminate = false, ...props }, ref) => {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\n\n const variantClasses = {\n default: \"bg-primary\",\n success: \"bg-emerald-500\",\n warning: \"bg-amber-500\",\n error: \"bg-red-500\",\n };\n\n const sizeClasses = {\n default: \"h-4\",\n sm: \"h-2\",\n lg: \"h-6\",\n };\n\n return (\n <div className=\"w-full space-y-1\">\n {showLabel && !isIndeterminate && (\n <div className=\"flex justify-between text-sm font-medium\">\n <span>Progress</span>\n <span>{Math.round(percentage)}%</span>\n </div>\n )}\n <div\n ref={ref}\n className={cn(\n \"relative w-full overflow-hidden rounded-full bg-secondary border border-border\",\n sizeClasses[size],\n className\n )}\n {...props}\n >\n {isIndeterminate ? (\n <div\n className={cn(\n \"h-full w-full bg-primary/80 bg-gradient-to-r from-primary/30 via-primary to-primary/30 rounded-full\"\n )}\n style={{\n animation: \"pulse 1.8s cubic-bezier(0.4, 0, 0.6, 1) infinite\",\n }}\n />\n ) : (\n <div\n className={cn(\n \"h-full transition-all ease-in-out\",\n variantClasses[variant],\n animated ? \"duration-500\" : \"duration-0\"\n )}\n style={{ width: `${percentage}%` }}\n />\n )}\n </div>\n </div>\n )\n }\n)\nProgress.displayName = \"Progress\"\n\nexport { Progress }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\nimport { cn } from \"../utils/cn\"\n\nexport interface SliderProps {\n /**\n * The minimum value\n * @default 0\n */\n min?: number;\n /**\n * The maximum value\n * @default 100\n */\n max?: number;\n /**\n * The step value\n * @default 1\n */\n step?: number;\n /**\n * The current value\n */\n value?: number;\n /**\n * Callback function called when the value changes\n */\n onChange?: (value: number) => void;\n /**\n * Whether to show the current value\n * @default false\n */\n showValue?: boolean;\n /**\n * The variant of the slider\n * @default \"default\"\n */\n variant?: \"default\" | \"success\" | \"warning\" | \"error\";\n /**\n * Additional class names\n */\n className?: string;\n}\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n SliderProps\n>(({ min = 0, max = 100, step = 1, value = 0, onChange, showValue = false, variant = \"default\", className, ...props }, ref) => {\n const handleValueChange = (val: number[]) => {\n onChange?.(val[0]);\n };\n\n const variantClasses = {\n default: \"bg-primary\",\n success: \"bg-emerald-500\",\n warning: \"bg-amber-500\",\n error: \"bg-red-500\",\n };\n\n return (\n <div className=\"w-full space-y-2\">\n {showValue && (\n <div className=\"flex justify-between text-sm font-medium\">\n <span>Value</span>\n <span>{value}</span>\n </div>\n )}\n <SliderPrimitive.Root\n ref={ref}\n min={min}\n max={max}\n step={step}\n value={[value]}\n onValueChange={handleValueChange}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className={cn(\"absolute h-full\", variantClasses[variant])} />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\n </SliderPrimitive.Root>\n </div>\n )\n})\nSlider.displayName = \"Slider\"\n\nexport { Slider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, HTMLMotionProps } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { buttonVariants } from \"./button\"\nimport type { VariantProps } from \"class-variance-authority\"\n\n/** Props shared by all special button variants */\ninterface SpecialButtonBaseProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n children?: React.ReactNode\n className?: string\n}\n\n// ============================================\n// 1. GlowButton — A button with a radial glow effect behind it\n// ============================================\nexport interface GlowButtonProps extends SpecialButtonBaseProps {\n /** Color of the glow behind the button */\n glowColor?: string\n}\n\nexport const GlowButton = React.forwardRef<HTMLButtonElement, GlowButtonProps>(\n ({ className, variant, size, glowColor = \"rgba(139, 92, 246, 0.15)\", children, ...props }, ref) => {\n // Destructure props that conflict with framer-motion\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\n\n return (\n <div className=\"relative group\">\n <div\n className=\"absolute -inset-0.5 bg-gradient-to-r from-primary to-purple-600 rounded-lg blur opacity-75 group-hover:opacity-100 transition duration-1000 group-hover:duration-200 animate-tilt\"\n style={{ backgroundColor: glowColor }}\n />\n <motion.button\n className={cn(buttonVariants({ variant, size, className }), \"relative bg-background\")}\n ref={ref}\n whileHover={{ scale: 1.01 }}\n whileTap={{ scale: 0.98 }}\n {...(motionSafeProps as HTMLMotionProps<\"button\">)}\n >\n {children}\n </motion.button>\n </div>\n )\n }\n)\nGlowButton.displayName = \"GlowButton\"\n\n// ============================================\n// 2. ShinyButton — A button with a shiny light effect moving across it\n// ============================================\nexport const ShinyButton = React.forwardRef<HTMLButtonElement, SpecialButtonBaseProps>(\n ({ className, variant, size, children, ...props }, ref) => {\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\n\n return (\n <motion.button\n className={cn(\n buttonVariants({ variant, size, className }),\n \"relative overflow-hidden group\"\n )}\n ref={ref}\n whileHover={{ scale: 1.01 }}\n whileTap={{ scale: 0.98 }}\n {...(motionSafeProps as HTMLMotionProps<\"button\">)}\n >\n <span className=\"relative z-10\">{children}</span>\n <div className=\"absolute inset-0 -translate-x-full group-hover:translate-x-full transition-transform duration-1000 bg-gradient-to-r from-transparent via-white/20 to-transparent\" />\n </motion.button>\n )\n }\n)\nShinyButton.displayName = \"ShinyButton\"\n\n// ============================================\n// 3. GradientButton — A button with a beautiful gradient background\n// ============================================\nexport const GradientButton = React.forwardRef<HTMLButtonElement, SpecialButtonBaseProps>(\n ({ className, size, children, ...props }, ref) => {\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, variant, ...motionSafeProps } = props as SpecialButtonBaseProps\n\n return (\n <motion.button\n className={cn(\n buttonVariants({ size, className }),\n \"bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white border-0 hover:opacity-90 shadow-lg shadow-purple-500/20\"\n )}\n ref={ref}\n whileHover={{ scale: 1.02 }}\n whileTap={{ scale: 0.98 }}\n {...(motionSafeProps as HTMLMotionProps<\"button\">)}\n >\n {children}\n </motion.button>\n )\n }\n)\nGradientButton.displayName = \"GradientButton\"\n\n// ============================================\n// 4. GlassButton — A glassmorphic button\n// ============================================\nexport const GlassButton = React.forwardRef<HTMLButtonElement, SpecialButtonBaseProps>(\n ({ className, size, children, ...props }, ref) => {\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, variant, ...motionSafeProps } = props as SpecialButtonBaseProps\n\n return (\n <motion.button\n className={cn(\n buttonVariants({ size, className }),\n \"bg-white/5 backdrop-blur-md border border-white/10 hover:bg-white/10 text-foreground\"\n )}\n ref={ref}\n whileHover={{ scale: 1.01 }}\n whileTap={{ scale: 0.98 }}\n {...(motionSafeProps as HTMLMotionProps<\"button\">)}\n >\n {children}\n </motion.button>\n )\n }\n)\nGlassButton.displayName = \"GlassButton\"\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { X, Info, AlertTriangle, CheckCircle, AlertCircle } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { Button } from \"./button\"\n\nconst alertVariants = {\n info: {\n icon: Info,\n color: \"text-blue-500 bg-blue-500/10 border-blue-500/20\",\n gradient: \"from-blue-500 to-cyan-500\"\n },\n warning: {\n icon: AlertTriangle,\n color: \"text-yellow-500 bg-yellow-500/10 border-yellow-500/20\",\n gradient: \"from-yellow-500 to-orange-500\"\n },\n success: {\n icon: CheckCircle,\n color: \"text-green-500 bg-green-500/10 border-green-500/20\",\n gradient: \"from-green-500 to-emerald-500\"\n },\n error: {\n icon: AlertCircle,\n color: \"text-red-500 bg-red-500/10 border-red-500/20\",\n gradient: \"from-red-500 to-pink-500\"\n }\n}\n\ninterface SpecialAlertProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: keyof typeof alertVariants\n title?: string\n description?: string\n}\n\n// 1. Glass Alert - A glassmorphic alert\nexport function GlassAlert({ variant = \"info\", title, description, className, ...props }: SpecialAlertProps) {\n const Icon = alertVariants[variant].icon\n return (\n <div\n className={cn(\n \"relative overflow-hidden rounded-xl border p-4 backdrop-blur-md\",\n \"bg-white/5 border-white/10 dark:bg-black/20 dark:border-white/5\",\n className\n )}\n {...props}\n >\n <div className=\"flex gap-3\">\n <div className={cn(\"p-2 rounded-full h-fit\", alertVariants[variant].color)}>\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"flex-1 space-y-1\">\n {title && <h5 className=\"font-semibold leading-none tracking-tight\">{title}</h5>}\n {description && <div className=\"text-sm text-muted-foreground\">{description}</div>}\n </div>\n </div>\n </div>\n )\n}\n\n// 2. Gradient Alert - An alert with a gradient border or background\nexport function GradientAlert({ variant = \"info\", title, description, className, ...props }: SpecialAlertProps) {\n const Icon = alertVariants[variant].icon\n return (\n <div\n className={cn(\n \"relative overflow-hidden rounded-xl border p-4 bg-background\",\n className\n )}\n {...props}\n >\n <div className={cn(\"absolute inset-0 opacity-5 bg-gradient-to-r\", alertVariants[variant].gradient)} />\n <div className=\"flex gap-3 relative z-10\">\n <div className={cn(\"p-2 rounded-full h-fit\", alertVariants[variant].color)}>\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"flex-1 space-y-1\">\n {title && <h5 className=\"font-semibold leading-none tracking-tight\">{title}</h5>}\n {description && <div className=\"text-sm text-muted-foreground\">{description}</div>}\n </div>\n </div>\n </div>\n )\n}\n\n// 3. Dismissible Alert - An alert with a close button\nexport function DismissibleAlert({ variant = \"info\", title, description, className, ...props }: SpecialAlertProps) {\n const [visible, setVisible] = React.useState(true)\n const Icon = alertVariants[variant].icon\n // Destructure HTML event handlers that conflict with framer-motion\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...restProps } = props\n\n return (\n <AnimatePresence>\n {visible && (\n <motion.div\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.95 }}\n className={cn(\n \"relative overflow-hidden rounded-xl border p-4 bg-background flex gap-3\",\n className\n )}\n >\n <div className={cn(\"p-2 rounded-full h-fit\", alertVariants[variant].color)}>\n <Icon className=\"h-4 w-4\" />\n </div>\n <div className=\"flex-1 space-y-1\">\n {title && <h5 className=\"font-semibold leading-none tracking-tight\">{title}</h5>}\n {description && <div className=\"text-sm text-muted-foreground\">{description}</div>}\n </div>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-8 w-8 -mr-2 -mt-2\"\n onClick={() => setVisible(false)}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </motion.div>\n )}\n </AnimatePresence>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, Eye, EyeOff, X } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { Input } from \"./input\"\nimport { Button } from \"./button\"\n\n// 1. Search Input - Input with a search icon\nexport const SearchInput = React.forwardRef<HTMLInputElement, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground\" />\n <Input\n className={cn(\"pl-10\", className)}\n ref={ref}\n {...props}\n />\n </div>\n )\n }\n)\nSearchInput.displayName = \"SearchInput\"\n\n// 2. Password Input - Input with show/hide toggle\nexport const PasswordInput = React.forwardRef<HTMLInputElement, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n const [show, setShow] = React.useState(false)\n\n return (\n <div className=\"relative\">\n <Input\n type={show ? \"text\" : \"password\"}\n className={cn(\"pr-10\", className)}\n ref={ref}\n {...props}\n />\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-1 top-1/2 -translate-y-1/2 h-8 w-8\"\n onClick={() => setShow(!show)}\n type=\"button\"\n >\n {show ? <EyeOff className=\"h-4 w-4\" /> : <Eye className=\"h-4 w-4\" />}\n </Button>\n </div>\n )\n }\n)\nPasswordInput.displayName = \"PasswordInput\"\n\n// 3. Glass Input - Glassmorphic input\nexport const GlassInput = React.forwardRef<HTMLInputElement, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n className={cn(\n \"bg-white/5 backdrop-blur-md border-white/10 focus:border-white/20 focus:ring-0\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nGlassInput.displayName = \"GlassInput\"\n\n// 4. Gradient Input - Input with gradient border on focus\nexport const GradientInput = React.forwardRef<HTMLInputElement, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <div className=\"relative group rounded-md overflow-hidden\">\n <div className=\"absolute inset-0 bg-gradient-to-r from-pink-500 via-red-500 to-yellow-500 opacity-0 group-focus-within:opacity-100 transition-opacity duration-300\" />\n <Input\n className={cn(\"relative m-[1px] bg-background\", className)}\n ref={ref}\n {...props}\n />\n </div>\n )\n }\n)\nGradientInput.displayName = \"GradientInput\"\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from \"./card\"\n\n// 1. Glass Card - Glassmorphic card\nexport function GlassCard({ className, ...props }: React.ComponentProps<typeof Card>) {\n return (\n <Card\n className={cn(\n \"bg-white/5 backdrop-blur-md border-white/10 dark:bg-black/20 dark:border-white/5\",\n className\n )}\n {...props}\n />\n )\n}\n\n// 2. Glow Card - Card with a glow effect on hover\nexport function GlowCard({ className, ...props }: React.ComponentProps<typeof Card>) {\n return (\n <div className=\"relative group\">\n <div className=\"absolute -inset-0.5 bg-gradient-to-r from-pink-600 to-purple-600 rounded-lg blur opacity-0 group-hover:opacity-75 transition duration-1000 group-hover:duration-200\" />\n <Card\n className={cn(\"relative bg-background\", className)}\n {...props}\n />\n </div>\n )\n}\n\n// 3. Gradient Card - Card with a gradient background\nexport function GradientCard({ className, ...props }: React.ComponentProps<typeof Card>) {\n return (\n <Card\n className={cn(\n \"bg-gradient-to-br from-indigo-500/10 via-purple-500/10 to-pink-500/10 border-purple-500/20\",\n className\n )}\n {...props}\n />\n )\n}\n\n// 4. Hover Card - Card that lifts on hover\nexport function HoverCard({ className, ...props }: React.ComponentProps<typeof Card>) {\n return (\n <motion.div\n whileHover={{ y: -5, boxShadow: \"0 10px 30px -15px rgba(0,0,0,0.3)\" }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n >\n <Card\n className={cn(className)}\n {...props}\n />\n </motion.div>\n )\n}\n\n\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { Check, Copy, LucideIcon } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { Button } from \"./button\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"./avatar\"\nimport { Badge } from \"./badge\"\n\n// 1. Kbd - Keyboard shortcut component\nexport function Kbd({ className, children, ...props }: React.HTMLAttributes<HTMLElement>) {\n return (\n <kbd\n className={cn(\n \"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100\",\n className\n )}\n {...props}\n >\n {children}\n </kbd>\n )\n}\n\n// 2. AvatarGroup - Overlapping avatars\ninterface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\n limit?: number\n items: { src?: string; fallback: string }[]\n}\n\nexport function AvatarGroup({ items, limit = 3, className, ...props }: AvatarGroupProps) {\n const visibleItems = items.slice(0, limit)\n const remaining = items.length - limit\n\n return (\n <div className={cn(\"flex -space-x-3 items-center\", className)} {...props}>\n {visibleItems.map((item, index) => (\n <Avatar key={index} className=\"border-2 border-background w-8 h-8\">\n {item.src && <AvatarImage src={item.src} />}\n <AvatarFallback>{item.fallback}</AvatarFallback>\n </Avatar>\n ))}\n {remaining > 0 && (\n <div className=\"flex items-center justify-center w-8 h-8 rounded-full bg-muted border-2 border-background text-xs font-medium\">\n +{remaining}\n </div>\n )}\n </div>\n )\n}\n\n// 3. StatCard - Individual stat card\ninterface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string\n value: string\n description?: string\n icon?: LucideIcon\n trend?: {\n value: string\n positive: boolean\n }\n}\n\nexport function StatCard({ title, value, description, icon: Icon, trend, className, ...props }: StatCardProps) {\n return (\n <div\n className={cn(\n \"rounded-xl border border-border bg-card p-6 shadow-sm hover:shadow-md transition-shadow\",\n className\n )}\n {...props}\n >\n <div className=\"flex justify-between items-start\">\n <div className=\"space-y-2\">\n <p className=\"text-sm font-medium text-muted-foreground\">{title}</p>\n <div className=\"flex items-baseline space-x-2\">\n <h2 className=\"text-3xl font-bold tracking-tight\">{value}</h2>\n {trend && (\n <span\n className={cn(\n \"text-xs font-medium px-1.5 py-0.5 rounded-full\",\n trend.positive ? \"bg-green-500/10 text-green-500\" : \"bg-red-500/10 text-red-500\"\n )}\n >\n {trend.positive ? \"+\" : \"-\"}{trend.value}\n </span>\n )}\n </div>\n {description && <p className=\"text-xs text-muted-foreground\">{description}</p>}\n </div>\n {Icon && (\n <div className=\"p-2 bg-muted rounded-md\">\n <Icon className=\"h-5 w-5 text-muted-foreground\" />\n </div>\n )}\n </div>\n </div>\n )\n}\n\n// 4. Timeline - Vertical timeline\ninterface TimelineItem {\n title: string\n description: string\n time: string\n status?: \"completed\" | \"current\" | \"upcoming\"\n}\n\nexport function Timeline({ items, className }: { items: TimelineItem[]; className?: string }) {\n return (\n <div className={cn(\"space-y-8\", className)}>\n {items.map((item, index) => (\n <div key={index} className=\"relative flex gap-6 pb-8 last:pb-0\">\n {index !== items.length - 1 && (\n <div className=\"absolute left-[11px] top-4 h-full w-[2px] bg-border\" />\n )}\n <div\n className={cn(\n \"relative z-10 flex h-6 w-6 shrink-0 items-center justify-center rounded-full border-2\",\n item.status === \"completed\" && \"border-primary bg-primary text-primary-foreground\",\n item.status === \"current\" && \"border-primary bg-background\",\n item.status === \"upcoming\" && \"border-border bg-muted\"\n )}\n >\n {item.status === \"completed\" && <Check className=\"h-3 w-3\" />}\n {item.status === \"current\" && <div className=\"h-2 w-2 rounded-full bg-primary\" />}\n </div>\n <div className=\"space-y-1.5\">\n <div className=\"flex items-center gap-2\">\n <h4 className=\"font-semibold\">{item.title}</h4>\n <span className=\"text-xs text-muted-foreground\">{item.time}</span>\n </div>\n <p className=\"text-sm text-muted-foreground\">{item.description}</p>\n </div>\n </div>\n ))}\n </div>\n )\n}\n\n// 5. CodeBlock - Code block with copy button\ninterface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {\n code: string\n language?: string\n}\n\nexport function CodeBlock({ code, language, className, ...props }: CodeBlockProps) {\n const [copied, setCopied] = React.useState(false)\n\n const handleCopy = () => {\n navigator.clipboard.writeText(code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n\n return (\n <div className={cn(\"relative rounded-lg border bg-muted/50 p-4 font-mono text-sm overflow-hidden\", className)} {...props}>\n <div className=\"absolute right-4 top-4\">\n <Button variant=\"ghost\" size=\"icon\" className=\"h-8 w-8\" onClick={handleCopy}>\n {copied ? <Check className=\"h-4 w-4\" /> : <Copy className=\"h-4 w-4\" />}\n </Button>\n </div>\n {language && (\n <div className=\"absolute left-4 top-2 text-xs text-muted-foreground uppercase\">\n {language}\n </div>\n )}\n <pre className={cn(\"overflow-x-auto\", language && \"pt-6\")}>\n <code>{code}</code>\n </pre>\n </div>\n )\n}\n\n// 6. PricingCard - Premium pricing card\ninterface PricingCardProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string\n price: string\n description: string\n features: string[]\n buttonText?: string\n popular?: boolean\n}\n\nexport function PricingCard({ title, price, description, features, buttonText = \"Get Started\", popular = false, className, ...props }: PricingCardProps) {\n return (\n <div\n className={cn(\n \"rounded-2xl border bg-card p-6 flex flex-col justify-between relative\",\n popular && \"border-primary shadow-lg shadow-primary/5\",\n className\n )}\n {...props}\n >\n {popular && (\n <div className=\"absolute -top-3 left-1/2 -translate-x-1/2 bg-primary text-primary-foreground text-xs font-semibold px-3 py-1 rounded-full\">\n Most Popular\n </div>\n )}\n <div>\n <div className=\"space-y-1.5 mb-6\">\n <h3 className=\"text-xl font-bold\">{title}</h3>\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n </div>\n <div className=\"mb-6\">\n <span className=\"text-4xl font-bold\">{price}</span>\n <span className=\"text-muted-foreground\">/mo</span>\n </div>\n <ul className=\"space-y-3 mb-6 text-sm\">\n {features.map((feature, index) => (\n <li key={index} className=\"flex items-center gap-2\">\n <Check className=\"h-4 w-4 text-primary\" />\n <span>{feature}</span>\n </li>\n ))}\n </ul>\n </div>\n <Button variant={popular ? \"default\" : \"outline\"} className=\"w-full\">\n {buttonText}\n </Button>\n </div>\n )\n}\n\n// 7. Divider - Simple divider line\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\n /**\n * The orientation of the divider\n * @default \"horizontal\"\n */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\nexport function Divider({ orientation = \"horizontal\", className, ...props }: DividerProps) {\n return (\n <div\n className={cn(\n \"bg-border shrink-0\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"w-[1px] h-full\",\n className\n )}\n {...props}\n />\n );\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronRight, MoreHorizontal, ChevronLeft, Check } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { Button } from \"./button\"\nimport { motion } from \"framer-motion\"\n\n// 1. Breadcrumb - Navigation path\ninterface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {\n items: { label: string; href?: string }[]\n separator?: React.ReactNode\n}\n\nexport function Breadcrumb({ items, separator = <ChevronRight className=\"h-4 w-4\" />, className, ...props }: BreadcrumbProps) {\n return (\n <nav className={cn(\"flex items-center text-sm text-muted-foreground bg-muted/30 backdrop-blur-sm px-4 py-2 rounded-lg border border-border/50 width-fit\", className)} {...props}>\n <ol className=\"flex items-center space-x-2\">\n {items.map((item, index) => (\n <li key={index} className=\"flex items-center space-x-2\">\n {index > 0 && <span className=\"text-muted-foreground/50\">{separator}</span>}\n {item.href ? (\n <a href={item.href} className=\"hover:text-primary transition-colors font-medium\">\n {item.label}\n </a>\n ) : (\n <span className=\"font-semibold text-foreground\">{item.label}</span>\n )}\n </li>\n ))}\n </ol>\n </nav>\n )\n}\n\n// 2. Pagination - Page navigation\ninterface PaginationProps extends React.HTMLAttributes<HTMLElement> {\n totalPages: number\n currentPage: number\n onPageChange?: (page: number) => void\n}\n\nexport function Pagination({ totalPages, currentPage, onPageChange, className, ...props }: PaginationProps) {\n const pages = Array.from({ length: totalPages }, (_, i) => i + 1)\n\n return (\n <nav className={cn(\"flex justify-center\", className)} {...props}>\n <ul className=\"flex items-center space-x-2\">\n <li>\n <Button\n variant=\"outline\"\n size=\"icon\"\n disabled={currentPage === 1}\n onClick={() => onPageChange?.(currentPage - 1)}\n className=\"rounded-full\"\n >\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n </li>\n {pages.map((page) => (\n <li key={page}>\n <Button\n variant={currentPage === page ? \"default\" : \"outline\"}\n size=\"icon\"\n onClick={() => onPageChange?.(page)}\n className={cn(\"rounded-full\", currentPage === page && \"shadow-lg shadow-primary/30\")}\n >\n {page}\n </Button>\n </li>\n ))}\n <li>\n <Button\n variant=\"outline\"\n size=\"icon\"\n disabled={currentPage === totalPages}\n onClick={() => onPageChange?.(currentPage + 1)}\n className=\"rounded-full\"\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n </li>\n </ul>\n </nav>\n )\n}\n\n// 3. Steps - Visual progress steps\ninterface Step {\n title: string\n description?: string\n status: \"complete\" | \"current\" | \"upcoming\"\n}\n\nexport function Steps({ items, className }: { items: Step[]; className?: string }) {\n return (\n <div className={cn(\"space-y-6\", className)}>\n {items.map((item, index) => (\n <div key={index} className=\"flex items-start gap-4 group\">\n <div className=\"flex flex-col items-center\">\n <motion.div\n initial={{ scale: 0.8, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n transition={{ delay: index * 0.1 }}\n className={cn(\n \"flex h-9 w-9 items-center justify-center rounded-full border-2 text-sm font-bold transition-all duration-300\",\n item.status === \"complete\" && \"border-transparent bg-gradient-to-br from-emerald-500 to-emerald-600 text-white shadow-lg shadow-emerald-500/20\",\n item.status === \"current\" && \"border-primary bg-background text-primary shadow-lg shadow-primary/20 ring-4 ring-primary/10\",\n item.status === \"upcoming\" && \"border-muted-foreground/30 bg-muted text-muted-foreground\"\n )}\n >\n {item.status === \"complete\" ? (\n <Check className=\"h-5 w-5 stroke-[3]\" />\n ) : (\n <span>{index + 1}</span>\n )}\n </motion.div>\n {index !== items.length - 1 && (\n <div className={cn(\n \"h-full w-[2px] min-h-[30px] my-2 transition-colors duration-300\",\n item.status === \"complete\" ? \"bg-emerald-500\" : \"bg-border\"\n )} />\n )}\n </div>\n <div className=\"pt-1.5 flex-1\">\n <h4 className={cn(\"font-semibold text-base transition-colors\", item.status === \"current\" && \"text-primary\")}>{item.title}</h4>\n {item.description && (\n <p className=\"text-sm text-muted-foreground mt-0.5 leading-relaxed\">{item.description}</p>\n )}\n </div>\n </div>\n ))}\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { Badge, badgeVariants } from \"./badge\"\nimport { VariantProps } from \"class-variance-authority\"\n\n// 1. GlowBadge\nexport function GlowBadge({ className, variant, ...props }: React.ComponentProps<typeof Badge>) {\n return (\n <div className=\"relative inline-flex group\">\n <div className=\"absolute -inset-0.5 bg-gradient-to-r from-primary to-purple-600 rounded-full blur opacity-50 group-hover:opacity-100 transition duration-500\" />\n <Badge className={cn(\"relative\", className)} variant={variant} {...props} />\n </div>\n )\n}\n\n// 2. GlassBadge\nexport function GlassBadge({ className, ...props }: React.ComponentProps<typeof Badge>) {\n return (\n <Badge\n className={cn(\n \"bg-white/10 backdrop-blur-md border border-white/20 text-foreground hover:bg-white/20\",\n className\n )}\n {...props}\n />\n )\n}\n\n// 3. DotBadge\ninterface DotBadgeProps extends React.ComponentProps<typeof Badge> {\n dotColor?: string\n}\nexport function DotBadge({ className, dotColor = \"bg-green-500\", children, ...props }: DotBadgeProps) {\n return (\n <Badge className={cn(\"pl-2.5\", className)} variant=\"outline\" {...props}>\n <span className={cn(\"mr-1.5 flex h-2 w-2 rounded-full\", dotColor)} />\n {children}\n </Badge>\n )\n}\n\n// 4. GradientBadge\nexport function GradientBadge({ className, ...props }: React.ComponentProps<typeof Badge>) {\n return (\n <Badge\n className={cn(\n \"bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500 text-white border-0 hover:opacity-90\",\n className\n )}\n {...props}\n />\n )\n}\n\n// 5. OutlineGlowBadge\nexport function OutlineGlowBadge({ className, ...props }: React.ComponentProps<typeof Badge>) {\n return (\n <Badge\n variant=\"outline\"\n className={cn(\n \"border-primary text-primary hover:bg-primary/10 shadow-[0_0_10px_rgba(var(--color-primary),0.3)]\",\n className\n )}\n {...props}\n />\n )\n}\n\n// 6. AnimatedBadge (Pulsing)\nexport function PulseBadge({ className, ...props }: React.ComponentProps<typeof Badge>) {\n return (\n <motion.div\n animate={{ scale: [1, 1.05, 1] }}\n transition={{ repeat: Infinity, duration: 2 }}\n className=\"inline-block\"\n >\n <Badge className={className} {...props} />\n </motion.div>\n )\n}\n\n// 7. SoftBadge\nexport function SoftBadge({ className, variant = \"default\", ...props }: React.ComponentProps<typeof Badge>) {\n const softClasses = {\n default: \"bg-primary/10 text-primary hover:bg-primary/20 border-transparent\",\n secondary: \"bg-secondary/20 text-secondary-foreground hover:bg-secondary/30 border-transparent\",\n destructive: \"bg-destructive/10 text-destructive hover:bg-destructive/20 border-transparent\",\n outline: \"\",\n ghost: \"\"\n }[variant as string] || \"\"\n\n return (\n <Badge className={cn(softClasses, className)} variant=\"outline\" {...props} />\n )\n}\n\n// 8. TagBadge (with closing 'x')\nexport function TagBadge({ className, children, onRemove, ...props }: React.ComponentProps<typeof Badge> & { onRemove?: () => void }) {\n return (\n <Badge className={cn(\"pr-1\", className)} {...props}>\n {children}\n <button\n type=\"button\"\n className=\"ml-1 rounded-full p-0.5 hover:bg-black/20 dark:hover:bg-white/20 transition-colors\"\n onClick={(e) => {\n e.stopPropagation()\n onRemove?.()\n }}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg>\n </button>\n </Badge>\n )\n}\n\n// 9. PremiumBadge\nexport function PremiumBadge({ className, ...props }: React.ComponentProps<typeof Badge>) {\n return (\n <Badge\n className={cn(\n \"bg-gradient-to-br from-amber-200 to-yellow-500 text-black border border-yellow-300 shadow-sm font-semibold\",\n className\n )}\n {...props}\n />\n )\n}\n\n// 10. MinimalBadge\nexport function MinimalBadge({ className, ...props }: React.ComponentProps<typeof Badge>) {\n return (\n <Badge\n className={cn(\n \"bg-transparent border-b-2 border-b-primary rounded-none px-1 py-0 text-foreground hover:bg-muted/50\",\n className\n )}\n {...props}\n />\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// 1. SpinnerLoader\nexport function SpinnerLoader({ className, size = 24 }: { className?: string; size?: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={cn(\"animate-spin text-primary\", className)}\n >\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\n </svg>\n )\n}\n\n// 2. DotsLoader\nexport function DotsLoader({ className }: { className?: string }) {\n return (\n <div className={cn(\"flex space-x-1.5 items-center\", className)}>\n <motion.div animate={{ y: [0, -5, 0] }} transition={{ repeat: Infinity, duration: 0.6, delay: 0 }} className=\"w-2 h-2 rounded-full bg-primary\" />\n <motion.div animate={{ y: [0, -5, 0] }} transition={{ repeat: Infinity, duration: 0.6, delay: 0.2 }} className=\"w-2 h-2 rounded-full bg-primary\" />\n <motion.div animate={{ y: [0, -5, 0] }} transition={{ repeat: Infinity, duration: 0.6, delay: 0.4 }} className=\"w-2 h-2 rounded-full bg-primary\" />\n </div>\n )\n}\n\n// 3. PulseLoader\nexport function PulseLoader({ className }: { className?: string }) {\n return (\n <div className={cn(\"relative flex h-5 w-5\", className)}>\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75\"></span>\n <span className=\"relative inline-flex rounded-full h-5 w-5 bg-primary\"></span>\n </div>\n )\n}\n\n// 4. BarLoader\nexport function BarLoader({ className }: { className?: string }) {\n return (\n <div className={cn(\"flex space-x-1\", className)}>\n <motion.div animate={{ scaleY: [1, 2, 1] }} transition={{ repeat: Infinity, duration: 0.8, delay: 0 }} className=\"w-1.5 h-4 bg-primary rounded-full origin-bottom\" />\n <motion.div animate={{ scaleY: [1, 2, 1] }} transition={{ repeat: Infinity, duration: 0.8, delay: 0.2 }} className=\"w-1.5 h-4 bg-primary rounded-full origin-bottom\" />\n <motion.div animate={{ scaleY: [1, 2, 1] }} transition={{ repeat: Infinity, duration: 0.8, delay: 0.4 }} className=\"w-1.5 h-4 bg-primary rounded-full origin-bottom\" />\n </div>\n )\n}\n\n// 5. CircleLoader\nexport function CircleLoader({ className, size = 32 }: { className?: string; size?: number }) {\n return (\n <div className={cn(\"relative\", className)} style={{ width: size, height: size }}>\n <div className=\"absolute inset-0 rounded-full border-2 border-primary/20\" />\n <div className=\"absolute inset-0 rounded-full border-2 border-t-primary border-r-transparent border-b-transparent border-l-transparent animate-spin\" />\n </div>\n )\n}\n\n// 6. RingLoader\nexport function RingLoader({ className }: { className?: string }) {\n return (\n <div className={cn(\"inline-block relative w-10 h-10\", className)}>\n <motion.div \n className=\"absolute inset-0 rounded-full border-4 border-primary border-t-transparent\"\n animate={{ rotate: 360 }}\n transition={{ repeat: Infinity, duration: 1.2, ease: \"linear\" }}\n />\n <motion.div \n className=\"absolute inset-2 rounded-full border-4 border-secondary border-b-transparent\"\n animate={{ rotate: -360 }}\n transition={{ repeat: Infinity, duration: 1.5, ease: \"linear\" }}\n />\n </div>\n )\n}\n\n// 7. TextLoader\nexport function TextLoader({ text = \"Loading...\", className }: { text?: string; className?: string }) {\n return (\n <div className={cn(\"font-mono text-sm font-medium flex items-center gap-2\", className)}>\n <span>{text}</span>\n <span className=\"flex gap-0.5\">\n <motion.span animate={{ opacity: [0, 1, 0] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0 }}>.</motion.span>\n <motion.span animate={{ opacity: [0, 1, 0] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.3 }}>.</motion.span>\n <motion.span animate={{ opacity: [0, 1, 0] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.6 }}>.</motion.span>\n </span>\n </div>\n )\n}\n\n// 8. ProgressRing\nexport function ProgressRing({ progress = 50, size = 60, strokeWidth = 4, className }: { progress?: number; size?: number; strokeWidth?: number; className?: string }) {\n const radius = (size - strokeWidth) / 2\n const circumference = radius * 2 * Math.PI\n const offset = circumference - (progress / 100) * circumference\n\n return (\n <div className={cn(\"relative flex items-center justify-center\", className)} style={{ width: size, height: size }}>\n <svg className=\"transform -rotate-90\" width={size} height={size}>\n <circle\n className=\"text-muted stroke-current\"\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n r={radius}\n cx={size / 2}\n cy={size / 2}\n />\n <motion.circle\n className=\"text-primary stroke-current\"\n strokeWidth={strokeWidth}\n fill=\"transparent\"\n r={radius}\n cx={size / 2}\n cy={size / 2}\n initial={{ strokeDashoffset: circumference }}\n animate={{ strokeDashoffset: offset }}\n transition={{ duration: 1, ease: \"easeInOut\" }}\n style={{ strokeDasharray: circumference, strokeLinecap: \"round\" }}\n />\n </svg>\n <span className=\"absolute text-xs font-medium\">{progress}%</span>\n </div>\n )\n}\n\n// 9. SkeletonCard\nexport function SkeletonCard({ className }: { className?: string }) {\n return (\n <div className={cn(\"border bg-card p-4 rounded-xl space-y-3 w-full max-w-sm\", className)}>\n <div className=\"flex items-center space-x-4\">\n <div className=\"w-10 h-10 rounded-full bg-muted animate-pulse\" />\n <div className=\"space-y-2\">\n <div className=\"h-4 w-[150px] bg-muted animate-pulse rounded\" />\n <div className=\"h-3 w-[100px] bg-muted animate-pulse rounded\" />\n </div>\n </div>\n <div className=\"space-y-2\">\n <div className=\"h-4 w-full bg-muted animate-pulse rounded\" />\n <div className=\"h-4 w-[80%] bg-muted animate-pulse rounded\" />\n </div>\n </div>\n )\n}\n\n// 10. ShimmerBlock\nexport function ShimmerBlock({ className }: { className?: string }) {\n return (\n <div className={cn(\"relative overflow-hidden bg-muted rounded-md h-24 w-full\", className)}>\n <motion.div\n className=\"absolute inset-0 -translate-x-full bg-gradient-to-r from-transparent via-white/10 to-transparent\"\n animate={{ translateX: [\"-100%\", \"100%\"] }}\n transition={{ repeat: Infinity, duration: 1.5, ease: \"linear\" }}\n />\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { X, AlertTriangle, CheckCircle } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\nimport { Button } from \"./button\"\nimport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter, DialogTrigger, DialogClose } from \"./dialog\"\n\n// ============================================\n// 1. GlassModal — Glassmorphic modal dialog\n// ============================================\nexport interface GlassModalProps {\n /** Trigger element that opens the modal */\n trigger?: React.ReactNode\n /** Modal title */\n title?: React.ReactNode\n /** Optional modal description */\n description?: React.ReactNode\n /** Modal body content */\n children?: React.ReactNode\n /** Control open state externally */\n open?: boolean\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void\n}\n\nexport function GlassModal({ trigger, title = \"Glass Modal\", description, children, open, onOpenChange }: GlassModalProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n {trigger && <DialogTrigger asChild>{trigger}</DialogTrigger>}\n <DialogContent className=\"bg-white/10 backdrop-blur-xl border-white/20 shadow-2xl sm:max-w-[425px]\">\n <DialogHeader>\n {title && <DialogTitle className=\"text-foreground\">{title}</DialogTitle>}\n {description && <DialogDescription className=\"text-muted-foreground\">{description}</DialogDescription>}\n </DialogHeader>\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\n// ============================================\n// 2. AlertModal — Destructive confirmation modal\n// ============================================\nexport interface AlertModalProps {\n /** Trigger element that opens the modal */\n trigger?: React.ReactNode\n /** Modal title */\n title?: string\n /** Optional modal description */\n description?: string\n /** Callback when user confirms the action */\n onConfirm?: () => void\n /** Callback when user cancels the action */\n onCancel?: () => void\n /** Confirm button text */\n confirmText?: string\n /** Cancel button text */\n cancelText?: string\n /** Modal body content */\n children?: React.ReactNode\n /** Control open state externally */\n open?: boolean\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void\n}\n\nexport function AlertModal({ \n trigger, \n title = \"Are you absolutely sure?\", \n description, \n onConfirm, \n onCancel,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n children, \n open, \n onOpenChange \n}: AlertModalProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n {trigger && <DialogTrigger asChild>{trigger}</DialogTrigger>}\n <DialogContent className=\"sm:max-w-[400px] border-destructive/20\">\n <DialogHeader className=\"flex flex-col items-center text-center sm:text-center\">\n <div className=\"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-destructive/10 mb-4\">\n <AlertTriangle className=\"h-6 w-6 text-destructive\" />\n </div>\n {title && <DialogTitle className=\"text-xl\">{title}</DialogTitle>}\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n {children}\n <DialogFooter className=\"sm:justify-center flex-col sm:flex-row gap-2\">\n <DialogClose asChild>\n <Button variant=\"outline\" className=\"w-full sm:w-auto\" onClick={onCancel}>{cancelText}</Button>\n </DialogClose>\n <Button variant=\"destructive\" onClick={onConfirm} className=\"w-full sm:w-auto\">{confirmText}</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ============================================\n// 3. SuccessModal — Success state modal\n// ============================================\nexport interface SuccessModalProps {\n /** Trigger element */\n trigger?: React.ReactNode\n /** Modal title */\n title?: string\n /** Optional description */\n description?: string\n /** Modal body content */\n children?: React.ReactNode\n /** Control open state externally */\n open?: boolean\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void\n /** Confirm button text */\n confirmText?: string\n /** Callback when user confirms */\n onConfirm?: () => void\n}\n\nexport function SuccessModal({ \n trigger, \n title = \"Success!\", \n description, \n children, \n open, \n onOpenChange,\n confirmText = \"Awesome\",\n onConfirm\n}: SuccessModalProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n {trigger && <DialogTrigger asChild>{trigger}</DialogTrigger>}\n <DialogContent className=\"sm:max-w-[400px] border-green-500/20\">\n <DialogHeader className=\"flex flex-col items-center text-center sm:text-center\">\n <div className=\"mx-auto flex h-12 w-12 items-center justify-center rounded-full bg-green-500/10 mb-4\">\n <CheckCircle className=\"h-6 w-6 text-green-500\" />\n </div>\n {title && <DialogTitle className=\"text-xl\">{title}</DialogTitle>}\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n {children}\n <DialogFooter className=\"sm:justify-center\">\n <DialogClose asChild>\n <Button className=\"w-full sm:w-auto bg-green-500 hover:bg-green-600\" onClick={onConfirm}>{confirmText}</Button>\n </DialogClose>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ============================================\n// 4. CommandPaletteModal — Command palette style modal\n// ============================================\nexport interface CommandPaletteModalProps {\n /** Trigger element */\n trigger: React.ReactNode\n /** Control open state externally */\n open?: boolean\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void\n}\n\nexport function CommandPaletteModal({ trigger, open, onOpenChange }: CommandPaletteModalProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogTrigger asChild>{trigger}</DialogTrigger>\n <DialogContent className=\"p-0 overflow-hidden sm:max-w-[600px] gap-0\">\n <div className=\"flex items-center border-b px-3\">\n <svg className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line></svg>\n <input className=\"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\" placeholder=\"Type a command or search...\" />\n </div>\n <div className=\"max-h-[300px] overflow-y-auto p-2\">\n <div className=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\">Suggestions</div>\n <div className=\"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground hover:bg-accent/50\">\n Calendar\n </div>\n <div className=\"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground hover:bg-accent/50\">\n Search Emoji\n </div>\n <div className=\"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground hover:bg-accent/50\">\n Calculator\n </div>\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ============================================\n// 5. BottomSheetSimulated — Bottom sheet style dialog\n// ============================================\nexport interface BottomSheetSimulatedProps {\n /** Trigger element */\n trigger: React.ReactNode\n /** Content inside the bottom sheet */\n children?: React.ReactNode\n /** Control open state externally */\n open?: boolean\n /** Callback when open state changes */\n onOpenChange?: (open: boolean) => void\n}\n\nexport function BottomSheetSimulated({ trigger, children, open, onOpenChange }: BottomSheetSimulatedProps) {\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogTrigger asChild>{trigger}</DialogTrigger>\n <DialogContent className=\"sm:max-w-full sm:h-[50vh] sm:rounded-b-none sm:rounded-t-[10px] fixed bottom-0 top-auto translate-y-0 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\">\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"./avatar\"\n\n/** Shared props for avatar components */\ninterface AvatarBaseProps {\n /** Additional CSS classes */\n className?: string\n /** Avatar image source URL */\n src?: string\n /** Fallback text/initials */\n fallback: string\n}\n\n// ============================================\n// 1. GlowAvatar — Avatar with glow effect on hover\n// ============================================\nexport function GlowAvatar({ className, src, fallback }: AvatarBaseProps) {\n return (\n <div className=\"relative inline-block group\">\n <div className=\"absolute -inset-0.5 bg-gradient-to-r from-primary to-purple-600 rounded-full blur opacity-50 group-hover:opacity-100 transition duration-500\" />\n <Avatar className={cn(\"relative border-2 border-background\", className)}>\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n </div>\n )\n}\n\n// ============================================\n// 2. StatusAvatar — Avatar with online status indicator\n// ============================================\nexport interface StatusAvatarProps extends AvatarBaseProps {\n /** Current status */\n status?: \"online\" | \"offline\" | \"busy\" | \"away\"\n}\n\nexport function StatusAvatar({ className, src, fallback, status = \"online\" }: StatusAvatarProps) {\n const statusColor = {\n online: \"bg-green-500\",\n offline: \"bg-gray-500\",\n busy: \"bg-red-500\",\n away: \"bg-yellow-500\"\n }[status] || \"bg-green-500\"\n\n return (\n <div className=\"relative inline-block\">\n <Avatar className={className}>\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n <span className={cn(\"absolute bottom-0 right-0 w-3 h-3 border-2 border-background rounded-full\", statusColor)} />\n </div>\n )\n}\n\n// ============================================\n// 3. HexagonAvatar — Hexagon-clipped avatar\n// ============================================\nexport function HexagonAvatar({ className, src, fallback }: AvatarBaseProps) {\n return (\n <Avatar \n className={cn(\"rounded-none\", className)} \n style={{ clipPath: \"polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%)\" }}\n >\n {src && <AvatarImage src={src} />}\n <AvatarFallback className=\"rounded-none\">{fallback}</AvatarFallback>\n </Avatar>\n )\n}\n\n// ============================================\n// 4. SquircleAvatar — Squircle-shaped avatar\n// ============================================\nexport function SquircleAvatar({ className, src, fallback }: AvatarBaseProps) {\n return (\n <Avatar className={cn(\"rounded-2xl\", className)}>\n {src && <AvatarImage src={src} />}\n <AvatarFallback className=\"rounded-2xl\">{fallback}</AvatarFallback>\n </Avatar>\n )\n}\n\n// ============================================\n// 5. GradientRingAvatar — Avatar with gradient ring border\n// ============================================\nexport function GradientRingAvatar({ className, src, fallback }: AvatarBaseProps) {\n return (\n <div className=\"p-0.5 rounded-full bg-gradient-to-tr from-yellow-400 via-red-500 to-purple-500\">\n <Avatar className={cn(\"border-2 border-background\", className)}>\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n </div>\n )\n}\n\n// ============================================\n// 6. InitialsAvatar — Auto-colored based on name\n// ============================================\nexport interface InitialsAvatarProps {\n /** Additional CSS classes */\n className?: string\n /** User's full name for generating initials */\n name?: string\n}\n\nexport function InitialsAvatar({ className, name = \"User\" }: InitialsAvatarProps) {\n const getInitials = (n: string) => n.split(\" \").map(w => w[0]).join(\"\").substring(0, 2).toUpperCase()\n \n const colors = [\"bg-red-500\", \"bg-blue-500\", \"bg-green-500\", \"bg-yellow-500\", \"bg-purple-500\", \"bg-pink-500\"]\n const hash = name.split(\"\").reduce((acc: number, char: string) => acc + char.charCodeAt(0), 0)\n const colorClass = colors[hash % colors.length]\n\n return (\n <Avatar className={className}>\n <AvatarFallback className={cn(\"text-white font-semibold\", colorClass)}>\n {getInitials(name)}\n </AvatarFallback>\n </Avatar>\n )\n}\n\n// ============================================\n// 7. OutlineAvatar — Avatar with dashed outline border\n// ============================================\nexport function OutlineAvatar({ className, src, fallback }: AvatarBaseProps) {\n return (\n <Avatar className={cn(\"border-2 border-primary border-dashed p-0.5 bg-transparent\", className)}>\n {src && <AvatarImage src={src} className=\"rounded-full\" />}\n <AvatarFallback className=\"bg-muted text-foreground\">{fallback}</AvatarFallback>\n </Avatar>\n )\n}\n\n// ============================================\n// 8. HoverExpandAvatar — Avatar that scales on hover\n// ============================================\nexport function HoverExpandAvatar({ className, src, fallback }: AvatarBaseProps) {\n return (\n <motion.div whileHover={{ scale: 1.1 }} transition={{ type: \"spring\", stiffness: 400, damping: 10 }}>\n <Avatar className={className}>\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n </motion.div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { Checkbox } from \"./checkbox\"\nimport { Switch } from \"./switch\"\nimport { Check, X } from \"lucide-react\"\n\n// ============================================\n// 1. GlowCheckbox — Checkbox with glow effect when checked\n// ============================================\nexport function GlowCheckbox({ className, ...props }: React.ComponentProps<typeof Checkbox>) {\n return (\n <div className=\"relative group inline-flex items-center justify-center\">\n <div className=\"absolute -inset-1 bg-primary rounded-full blur opacity-0 group-has-[[data-state=checked]]:opacity-30 transition-opacity\" />\n <Checkbox className={cn(\"relative\", className)} {...props} />\n </div>\n )\n}\n\n// ============================================\n// 2. CircularCheckbox — Round checkbox variant\n// ============================================\nexport function CircularCheckbox({ className, ...props }: React.ComponentProps<typeof Checkbox>) {\n return (\n <Checkbox className={cn(\"rounded-full\", className)} {...props} />\n )\n}\n\n// ============================================\n// 3. CardCheckbox — Selectable card-style checkbox\n// ============================================\nexport interface CardCheckboxProps {\n /** Title text for the card */\n title: string\n /** Optional description text */\n description?: string\n /** Whether the card is checked */\n checked?: boolean\n /** Callback when checked state changes */\n onCheckedChange?: (checked: boolean) => void\n /** Additional CSS classes */\n className?: string\n}\n\nexport function CardCheckbox({ title, description, checked, onCheckedChange, className }: CardCheckboxProps) {\n return (\n <label\n className={cn(\n \"flex cursor-pointer rounded-lg border p-4 hover:bg-accent transition-colors\",\n checked ? \"border-primary bg-primary/5\" : \"border-border bg-card\",\n className\n )}\n >\n <div className=\"flex flex-1 flex-col\">\n <span className=\"font-medium\">{title}</span>\n {description && <span className=\"text-sm text-muted-foreground\">{description}</span>}\n </div>\n <Checkbox checked={checked} onCheckedChange={onCheckedChange} className=\"ml-4 mt-0.5 rounded-full\" />\n </label>\n )\n}\n\n// ============================================\n// 4. IconSwitch — Switch with icons inside the thumb\n// ============================================\nexport interface IconSwitchProps {\n /** Whether the switch is checked */\n checked?: boolean\n /** Callback when checked state changes */\n onCheckedChange?: (checked: boolean) => void\n /** Additional CSS classes */\n className?: string\n /** Icon/emoji to show when ON */\n iconOn?: React.ReactNode\n /** Icon/emoji to show when OFF */\n iconOff?: React.ReactNode\n}\n\nexport function IconSwitch({ checked, onCheckedChange, className, iconOn, iconOff }: IconSwitchProps) {\n return (\n <Switch\n checked={checked}\n onCheckedChange={onCheckedChange}\n className={cn(\"w-14 h-7\", className)}\n >\n <span className={cn(\"pointer-events-none block h-6 w-6 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-7 data-[state=unchecked]:translate-x-0 flex items-center justify-center\")}>\n {checked ? (iconOn ? <span className=\"text-[10px]\">{iconOn}</span> : <Check className=\"h-3 w-3 text-primary\" />) : (iconOff ? <span className=\"text-[10px]\">{iconOff}</span> : <X className=\"h-3 w-3 text-muted-foreground\" />)}\n </span>\n </Switch>\n )\n}\n\n// ============================================\n// 5. ThickSwitch — A thicker switch variant\n// ============================================\nexport function ThickSwitch({ className, ...props }: React.ComponentProps<typeof Switch>) {\n return (\n <Switch \n className={cn(\"h-8 w-16 [&>span]:h-6 [&>span]:w-6 [&>span[data-state=checked]]:translate-x-8\", className)} \n {...props} \n />\n )\n}\n\n// ============================================\n// 6. GlowSwitch — Switch with glow effect when checked\n// ============================================\nexport function GlowSwitch({ className, ...props }: React.ComponentProps<typeof Switch>) {\n return (\n <div className=\"relative group inline-flex items-center\">\n <div className=\"absolute -inset-1 bg-primary rounded-full blur opacity-0 group-has-[[data-state=checked]]:opacity-40 transition-opacity\" />\n <Switch className={cn(\"relative\", className)} {...props} />\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n/** Polymorphic \"as\" prop type for typography components */\ninterface TypographyBaseProps {\n /** HTML element to render as */\n as?: React.ElementType\n /** Additional CSS classes */\n className?: string\n /** Content */\n children?: React.ReactNode\n}\n\n// ============================================\n// 1. GradientText — Text with gradient fill\n// ============================================\nexport function GradientText({ className, children, as: Component = \"span\" }: TypographyBaseProps) {\n return (\n <Component\n className={cn(\"text-transparent bg-clip-text bg-gradient-to-r from-primary via-purple-500 to-pink-500\", className)}\n >\n {children}\n </Component>\n )\n}\n\n// ============================================\n// 2. GlitchText — CSS-based glitch effect\n// ============================================\nexport interface GlitchTextProps {\n /** The text to display with glitch effect */\n text: string\n /** HTML element to render as */\n as?: React.ElementType\n /** Additional CSS classes */\n className?: string\n}\n\nexport function GlitchText({ className, text, as: Component = \"span\" }: GlitchTextProps) {\n return (\n <Component\n className={cn(\"relative inline-block font-bold\", className)}\n data-text={text}\n >\n <span className=\"relative z-10\">{text}</span>\n <span className=\"absolute top-0 left-[-1px] -z-10 w-full h-full text-red-500 opacity-70 translate-x-[2px] animate-pulse\">{text}</span>\n <span className=\"absolute top-0 left-[1px] -z-10 w-full h-full text-blue-500 opacity-70 translate-x-[-2px] animate-pulse\" style={{ animationDelay: '0.1s' }}>{text}</span>\n </Component>\n )\n}\n\n// ============================================\n// 3. HighlightText — Highlighted/marked text\n// ============================================\nexport interface HighlightTextProps extends TypographyBaseProps {\n /** Background color class for the highlight */\n color?: string\n}\n\nexport function HighlightText({ className, children, color = \"bg-yellow-200/50 dark:bg-yellow-800/50\", as: Component = \"mark\" }: HighlightTextProps) {\n return (\n <Component\n className={cn(\"rounded-sm px-1 py-0.5 text-inherit\", color, className)}\n >\n {children}\n </Component>\n )\n}\n\n// ============================================\n// 4. RevealText — Text with reveal animation\n// ============================================\nexport interface RevealTextProps {\n /** Text to reveal */\n text: string\n /** Additional CSS classes */\n className?: string\n /** Delay before animation starts (seconds) */\n delay?: number\n}\n\nexport function RevealText({ text, className, delay = 0 }: RevealTextProps) {\n return (\n <motion.span\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ duration: 0.5, delay }}\n className={cn(\"inline-block\", className)}\n >\n {text}\n </motion.span>\n )\n}\n\n// ============================================\n// 5. OutlineText — Text with stroke outline\n// ============================================\nexport function OutlineText({ className, children, as: Component = \"span\" }: TypographyBaseProps) {\n return (\n <Component\n className={cn(\"text-transparent stroke-foreground\", className)}\n style={{ WebkitTextStroke: \"1px currentColor\" }}\n >\n {children}\n </Component>\n )\n}\n\n// ============================================\n// 6. GlowText — Text with glow shadow\n// ============================================\nexport function GlowText({ className, children, as: Component = \"span\" }: TypographyBaseProps) {\n return (\n <Component\n className={cn(\"text-foreground\", className)}\n style={{ textShadow: \"0 0 10px rgba(139, 92, 246, 0.5)\" }}\n >\n {children}\n </Component>\n )\n}\n\n// ============================================\n// 7. NeonText — Text with neon glow effect\n// ============================================\nexport interface NeonTextProps extends TypographyBaseProps {\n /** Color for the neon glow */\n color?: string\n}\n\nexport function NeonText({ className, children, color = \"#ff007f\", as: Component = \"span\" }: NeonTextProps) {\n return (\n <Component\n className={cn(\"font-bold text-white\", className)}\n style={{ textShadow: `0 0 5px #fff, 0 0 10px #fff, 0 0 20px ${color}, 0 0 30px ${color}, 0 0 40px ${color}` }}\n >\n {children}\n </Component>\n )\n}\n\n// ============================================\n// 8. BlurText — Text that unblurs on hover\n// ============================================\nexport function BlurText({ className, children, as: Component = \"span\" }: TypographyBaseProps) {\n return (\n <Component\n className={cn(\"text-foreground filter blur-sm hover:blur-none transition-all duration-300\", className)}\n >\n {children}\n </Component>\n )\n}\n\n// ============================================\n// 9. ShadowText — Text with drop shadow\n// ============================================\nexport function ShadowText({ className, children, as: Component = \"span\" }: TypographyBaseProps) {\n return (\n <Component\n className={cn(\"text-foreground font-bold\", className)}\n style={{ textShadow: \"2px 2px 0px rgba(0,0,0,0.2)\" }}\n >\n {children}\n </Component>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\ninterface BaseAnimationProps {\n children: React.ReactNode;\n delay?: number;\n duration?: number;\n}\n\n// 1. FadeIn\nexport const FadeIn = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ delay, duration }}>\n {children}\n </motion.div>\n)\n\n// 2. SlideUp\nexport const SlideUp = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ delay, duration }}>\n {children}\n </motion.div>\n)\n\n// 3. SlideDown\nexport const SlideDown = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div initial={{ opacity: 0, y: -20 }} animate={{ opacity: 1, y: 0 }} transition={{ delay, duration }}>\n {children}\n </motion.div>\n)\n\n// 4. SlideLeft\nexport const SlideLeft = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div initial={{ opacity: 0, x: 20 }} animate={{ opacity: 1, x: 0 }} transition={{ delay, duration }}>\n {children}\n </motion.div>\n)\n\n// 5. SlideRight\nexport const SlideRight = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div initial={{ opacity: 0, x: -20 }} animate={{ opacity: 1, x: 0 }} transition={{ delay, duration }}>\n {children}\n </motion.div>\n)\n\n// 6. ScaleIn\nexport const ScaleIn = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div initial={{ opacity: 0, scale: 0.9 }} animate={{ opacity: 1, scale: 1 }} transition={{ delay, duration }}>\n {children}\n </motion.div>\n)\n\n// 7. Bounce\nexport const Bounce = ({ children, delay = 0 }: Omit<BaseAnimationProps, 'duration'>) => (\n <motion.div\n initial={{ y: -20 }}\n animate={{ y: 0 }}\n transition={{ type: \"spring\", bounce: 0.5, delay }}\n >\n {children}\n </motion.div>\n)\n\n// 8. Flip\nexport const Flip = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div\n initial={{ rotateX: 90, opacity: 0 }}\n animate={{ rotateX: 0, opacity: 1 }}\n transition={{ delay, duration }}\n >\n {children}\n </motion.div>\n)\n\n// 9. Rotate\nexport const Rotate = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\n <motion.div\n initial={{ rotate: -180, opacity: 0 }}\n animate={{ rotate: 0, opacity: 1 }}\n transition={{ delay, duration }}\n >\n {children}\n </motion.div>\n)\n\n// 10. Pulse (Continuous)\nexport const PulseAnim = ({ children }: { children: React.ReactNode }) => (\n <motion.div\n animate={{ scale: [1, 1.05, 1] }}\n transition={{ repeat: Infinity, duration: 2 }}\n >\n {children}\n </motion.div>\n)\n\n// 11. Float (Continuous)\nexport const Float = ({ children }: { children: React.ReactNode }) => (\n <motion.div\n animate={{ y: [0, -10, 0] }}\n transition={{ repeat: Infinity, duration: 3, ease: \"easeInOut\" }}\n >\n {children}\n </motion.div>\n)\n\n// 12. Wiggle (Hover)\nexport const WiggleHover = ({ children }: { children: React.ReactNode }) => (\n <motion.div whileHover={{ rotate: [0, -10, 10, -10, 10, 0] }} transition={{ duration: 0.5 }}>\n {children}\n </motion.div>\n)\n\n// 13. Heartbeat\nexport const Heartbeat = ({ children }: { children: React.ReactNode }) => (\n <motion.div\n animate={{ scale: [1, 1.1, 1, 1.1, 1] }}\n transition={{ repeat: Infinity, duration: 1.5, ease: \"easeInOut\" }}\n >\n {children}\n </motion.div>\n)\n\n// 14. Reveal (Clip-path)\nexport const RevealClip = ({ children, delay = 0, duration = 0.8 }: BaseAnimationProps) => (\n <motion.div\n initial={{ clipPath: \"polygon(0 0, 0 0, 0 100%, 0% 100%)\" }}\n animate={{ clipPath: \"polygon(0 0, 100% 0, 100% 100%, 0 100%)\" }}\n transition={{ delay, duration, ease: \"easeInOut\" }}\n >\n {children}\n </motion.div>\n)\n\n// 15. StaggerContainer & Item\nexport const StaggerContainer = ({ children, delayChildren = 0.1, staggerChildren = 0.1 }: { children: React.ReactNode; delayChildren?: number; staggerChildren?: number }) => (\n <motion.div\n variants={{\n hidden: { opacity: 0 },\n show: {\n opacity: 1,\n transition: { staggerChildren, delayChildren }\n }\n }}\n initial=\"hidden\"\n animate=\"show\"\n >\n {children}\n </motion.div>\n)\n\nexport const StaggerItem = ({ children }: { children: React.ReactNode }) => (\n <motion.div variants={{ hidden: { opacity: 0, y: 20 }, show: { opacity: 1, y: 0 } }}>\n {children}\n </motion.div>\n)\n\n// New Components requested by user\n\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { Check, Upload, Star, Plus, Minus } from \"lucide-react\"\n\n// 1. RadioCard\nexport const RadioCard = ({ title, description, checked, onChange, value, name }: any) => (\n <label className={cn(\"relative flex cursor-pointer rounded-lg border p-4 hover:bg-accent transition-all\", checked ? \"border-primary bg-primary/5 shadow-sm\" : \"border-border bg-card\")}>\n <input type=\"radio\" name={name} value={value} checked={checked} onChange={onChange} className=\"sr-only\" />\n <div className=\"flex w-full justify-between items-center\">\n <div className=\"flex flex-col\">\n <span className=\"font-semibold\">{title}</span>\n {description && <span className=\"text-sm text-muted-foreground\">{description}</span>}\n </div>\n <div className={cn(\"flex h-5 w-5 items-center justify-center rounded-full border-2 transition-colors\", checked ? \"border-primary bg-primary\" : \"border-muted-foreground\")}>\n {checked && <div className=\"h-2.5 w-2.5 rounded-full bg-background\" />}\n </div>\n </div>\n </label>\n)\n\n// 2. ColorSwatch\nexport const ColorSwatch = ({ color, selected, onClick }: any) => (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\"relative flex h-10 w-10 items-center justify-center rounded-full transition-transform hover:scale-110\", selected && \"ring-2 ring-primary ring-offset-2 ring-offset-background\")}\n style={{ backgroundColor: color }}\n >\n {selected && <Check className=\"h-5 w-5 text-white drop-shadow-md\" />}\n </button>\n)\n\n// 3. NumberStepper\nexport const NumberStepper = ({ value = 0, onChange, min = 0, max = 100 }: any) => (\n <div className=\"flex items-center space-x-2 rounded-md border border-border p-1 w-fit bg-card\">\n <button type=\"button\" onClick={() => onChange(Math.max(min, value - 1))} className=\"p-1 rounded hover:bg-muted text-muted-foreground transition-colors\"><Minus className=\"h-4 w-4\" /></button>\n <div className=\"w-8 text-center font-medium text-sm\">{value}</div>\n <button type=\"button\" onClick={() => onChange(Math.min(max, value + 1))} className=\"p-1 rounded hover:bg-muted text-muted-foreground transition-colors\"><Plus className=\"h-4 w-4\" /></button>\n </div>\n)\n\n// 4. FileDropzone\nexport const FileDropzone = ({ onDrop }: any) => (\n <div className=\"flex flex-col items-center justify-center w-full h-40 border-2 border-dashed border-muted-foreground/25 rounded-xl bg-card hover:bg-accent/50 transition-colors cursor-pointer group\">\n <div className=\"p-4 rounded-full bg-muted group-hover:bg-background transition-colors mb-2\">\n <Upload className=\"h-6 w-6 text-muted-foreground group-hover:text-primary transition-colors\" />\n </div>\n <p className=\"text-sm font-medium\">Click or drag file to this area to upload</p>\n <p className=\"text-xs text-muted-foreground mt-1\">Support for a single or bulk upload.</p>\n </div>\n)\n\n// 5. RatingStars\nexport const RatingStars = ({ rating = 0, max = 5, onRate }: any) => (\n <div className=\"flex items-center space-x-1\">\n {Array.from({ length: max }).map((_, i) => (\n <button key={i} type=\"button\" onClick={() => onRate?.(i + 1)} className=\"p-1 focus:outline-none transition-transform hover:scale-110\">\n <Star className={cn(\"h-6 w-6\", i < rating ? \"fill-yellow-400 text-yellow-400\" : \"fill-muted text-muted-foreground\")} />\n </button>\n ))}\n </div>\n)\n\n// 6. ToggleGroupItem (Visual wrapper)\nexport const ToggleGroupItemWrapper = ({ children, active, onClick }: any) => (\n <button type=\"button\" onClick={onClick} className={cn(\"px-4 py-2 text-sm font-medium transition-colors border border-transparent\", active ? \"bg-background text-foreground shadow-sm rounded-md\" : \"text-muted-foreground hover:text-foreground\")}>\n {children}\n </button>\n)\n\nexport const ToggleGroupWrapper = ({ children }: any) => (\n <div className=\"inline-flex items-center rounded-lg bg-muted p-1\">{children}</div>\n)\n\n// 7. InputWithLabelOverlay\nexport const InputWithLabelOverlay = ({ label, id, ...props }: any) => (\n <div className=\"relative\">\n <input id={id} className=\"block w-full rounded-md border border-border bg-background px-3 pb-2 pt-6 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary peer\" placeholder=\" \" {...props} />\n <label htmlFor={id} className=\"absolute left-3 top-2 text-xs text-muted-foreground transition-all peer-placeholder-shown:top-4 peer-placeholder-shown:text-sm peer-focus:top-2 peer-focus:text-xs peer-focus:text-primary cursor-text\">\n {label}\n </label>\n </div>\n)\n\n// 8. VisualSelectCard\nexport const VisualSelectCard = ({ icon: Icon, title, description, selected }: any) => (\n <div className={cn(\"flex flex-col items-center justify-center p-6 rounded-xl border text-center transition-all cursor-pointer hover:border-primary\", selected ? \"border-primary bg-primary/5\" : \"border-border bg-card\")}>\n <Icon className={cn(\"h-8 w-8 mb-4\", selected ? \"text-primary\" : \"text-muted-foreground\")} />\n <h3 className=\"font-semibold mb-1\">{title}</h3>\n <p className=\"text-xs text-muted-foreground\">{description}</p>\n </div>\n)\n\n// 9. FloatingActionForm (Button that expands into form)\nexport const FloatingActionForm = ({ isOpen, toggle, children }: any) => (\n <div className=\"relative\">\n <AnimatePresence>\n {isOpen && (\n <motion.div initial={{ opacity: 0, scale: 0.8, y: 20 }} animate={{ opacity: 1, scale: 1, y: 0 }} exit={{ opacity: 0, scale: 0.8, y: 20 }} className=\"absolute bottom-16 right-0 w-80 bg-card border rounded-xl shadow-xl p-4 origin-bottom-right\">\n {children}\n </motion.div>\n )}\n </AnimatePresence>\n <button type=\"button\" onClick={toggle} className=\"flex h-14 w-14 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 transition-transform active:scale-95\">\n <motion.div animate={{ rotate: isOpen ? 45 : 0 }}><Plus className=\"h-6 w-6\" /></motion.div>\n </button>\n </div>\n)\n\n// 10. OTPInput (Visual boxes)\nexport const OTPInput = ({ length = 6 }: any) => (\n <div className=\"flex space-x-2\">\n {Array.from({ length }).map((_, i) => (\n <input key={i} type=\"text\" maxLength={1} className=\"w-12 h-14 text-center text-xl font-bold rounded-md border border-border bg-background focus:border-primary focus:ring-1 focus:ring-primary outline-none\" />\n ))}\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { Button } from \"./button\"\n\n// 1. HeroSection\nexport const HeroSection = ({ title, subtitle, ctaText }: any) => (\n <section className=\"py-24 flex flex-col items-center text-center space-y-6\">\n <h1 className=\"text-5xl font-extrabold tracking-tight sm:text-6xl\">{title}</h1>\n <p className=\"text-xl text-muted-foreground max-w-2xl\">{subtitle}</p>\n <Button size=\"lg\" className=\"h-12 px-8 text-lg\">{ctaText}</Button>\n </section>\n)\n\n// 2. FeatureGrid\nexport const FeatureGrid = ({ features }: any) => (\n <div className=\"grid grid-cols-1 md:grid-cols-3 gap-8 py-12\">\n {features?.map((f: any, i: number) => (\n <div key={i} className=\"flex flex-col items-start p-6 bg-card border rounded-2xl\">\n <div className=\"p-3 bg-primary/10 rounded-lg mb-4 text-primary\">{f.icon}</div>\n <h3 className=\"text-xl font-bold mb-2\">{f.title}</h3>\n <p className=\"text-muted-foreground\">{f.description}</p>\n </div>\n ))}\n </div>\n)\n\n// 3. SimpleFooter\nexport const SimpleFooter = ({ text }: any) => (\n <footer className=\"py-6 border-t text-center text-muted-foreground text-sm\">\n <p>{text}</p>\n </footer>\n)\n\n// 4. NewsletterBlock\nexport const NewsletterBlock = () => (\n <div className=\"p-12 bg-muted rounded-3xl flex flex-col items-center text-center space-y-6\">\n <h2 className=\"text-3xl font-bold\">Subscribe to our newsletter</h2>\n <p className=\"text-muted-foreground\">Get the latest updates directly to your inbox.</p>\n <div className=\"flex w-full max-w-md gap-2\">\n <input type=\"email\" placeholder=\"Enter your email\" className=\"flex-1 rounded-md border bg-background px-3 py-2 text-sm\" />\n <Button>Subscribe</Button>\n </div>\n </div>\n)\n\n// 5. TestimonialCard\nexport const TestimonialCard = ({ quote, author, role }: any) => (\n <div className=\"p-6 bg-card border rounded-xl space-y-4\">\n <p className=\"text-lg italic\">\"{quote}\"</p>\n <div>\n <p className=\"font-bold\">{author}</p>\n <p className=\"text-sm text-muted-foreground\">{role}</p>\n </div>\n </div>\n)\n\n// 6. FaqAccordion (Block wrapper)\nexport const FaqBlock = ({ faqs }: any) => (\n <div className=\"max-w-3xl mx-auto py-12 space-y-4\">\n <h2 className=\"text-3xl font-bold text-center mb-8\">Frequently Asked Questions</h2>\n {faqs?.map((faq: any, i: number) => (\n <details key={i} className=\"group border rounded-lg bg-card [&_summary::-webkit-details-marker]:hidden\">\n <summary className=\"flex cursor-pointer items-center justify-between p-4 font-medium\">\n {faq.q}\n <span className=\"transition group-open:rotate-180\">\n <svg fill=\"none\" height=\"24\" stroke=\"currentColor\" strokeWidth=\"1.5\" viewBox=\"0 0 24 24\" width=\"24\"><path d=\"M6 9l6 6 6-6\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/></svg>\n </span>\n </summary>\n <p className=\"group-open:animate-fadeIn p-4 pt-0 text-muted-foreground\">{faq.a}</p>\n </details>\n ))}\n </div>\n)\n\n// 7. CtaBlock\nexport const CtaBlock = ({ title, buttonText }: any) => (\n <div className=\"py-16 px-8 bg-primary text-primary-foreground rounded-3xl text-center space-y-6\">\n <h2 className=\"text-3xl font-bold\">{title}</h2>\n <Button variant=\"secondary\" size=\"lg\">{buttonText}</Button>\n </div>\n)\n\n// 8. LogoCloud\nexport const LogoCloud = ({ title, logos }: any) => (\n <div className=\"py-12 border-y\">\n <p className=\"text-center text-sm font-medium text-muted-foreground mb-8\">{title}</p>\n <div className=\"flex flex-wrap justify-center gap-12 opacity-50 grayscale\">\n {logos?.map((l: any, i: number) => <span key={i} className=\"text-xl font-bold\">{l}</span>)}\n </div>\n </div>\n)\n\n// 9. PricingTableSimple\nexport const PricingTableSimple = ({ plans }: any) => (\n <div className=\"grid md:grid-cols-2 gap-8 py-12 max-w-4xl mx-auto\">\n {plans?.map((p: any, i: number) => (\n <div key={i} className={cn(\"p-8 rounded-3xl border\", p.popular ? \"border-primary shadow-lg\" : \"bg-card\")}>\n <h3 className=\"text-2xl font-bold mb-2\">{p.name}</h3>\n <p className=\"text-4xl font-extrabold mb-6\">${p.price}<span className=\"text-lg text-muted-foreground font-normal\">/mo</span></p>\n <ul className=\"space-y-3 mb-8\">\n {p.features?.map((f: string, j: number) => <li key={j} className=\"flex items-center gap-2\">✓ {f}</li>)}\n </ul>\n <Button className=\"w-full\" variant={p.popular ? \"default\" : \"outline\"}>Choose Plan</Button>\n </div>\n ))}\n </div>\n)\n\n// 10. ContactFormBlock\nexport const ContactFormBlock = () => (\n <form className=\"max-w-md mx-auto p-6 border rounded-2xl bg-card space-y-4\">\n <h2 className=\"text-2xl font-bold mb-4\">Contact Us</h2>\n <input placeholder=\"Name\" className=\"w-full rounded-md border p-2 bg-background\" />\n <input placeholder=\"Email\" type=\"email\" className=\"w-full rounded-md border p-2 bg-background\" />\n <textarea placeholder=\"Message\" className=\"w-full rounded-md border p-2 bg-background min-h-[100px]\" />\n <Button className=\"w-full\">Send Message</Button>\n </form>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// 1. DataGridTable (Premium look)\nexport const DataGridTable = ({ columns, data }: any) => (\n <div className=\"rounded-xl border bg-card overflow-hidden\">\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm text-left\">\n <thead className=\"bg-muted/50 text-muted-foreground uppercase text-xs\">\n <tr>\n {columns.map((col: any, i: number) => (\n <th key={i} className=\"px-6 py-4 font-semibold\">{col}</th>\n ))}\n </tr>\n </thead>\n <tbody className=\"divide-y divide-border\">\n {data.map((row: any, i: number) => (\n <motion.tr \n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay: i * 0.05 }}\n key={i} \n className=\"hover:bg-muted/30 transition-colors\"\n >\n {row.map((cell: any, j: number) => (\n <td key={j} className=\"px-6 py-4\">{cell}</td>\n ))}\n </motion.tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n)\n\n// 2. KanbanBoard\nexport const KanbanBoard = ({ columns }: any) => (\n <div className=\"flex gap-6 overflow-x-auto pb-4\">\n {columns.map((col: any, i: number) => (\n <div key={i} className=\"min-w-[300px] bg-muted/30 rounded-xl p-4 flex flex-col gap-4 border\">\n <div className=\"flex justify-between items-center px-1\">\n <h3 className=\"font-semibold\">{col.title}</h3>\n <span className=\"bg-background text-xs px-2 py-1 rounded-full border\">{col.items.length}</span>\n </div>\n <div className=\"flex flex-col gap-3\">\n {col.items.map((item: any, j: number) => (\n <div key={j} className=\"bg-card p-4 rounded-lg shadow-sm border cursor-pointer hover:border-primary transition-colors\">\n <h4 className=\"font-medium mb-1\">{item.title}</h4>\n <p className=\"text-xs text-muted-foreground\">{item.desc}</p>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n)\n\n// 3. PricingTable Advanced\nexport const PricingTableAdvanced = ({ plans }: any) => (\n <div className=\"grid md:grid-cols-3 gap-6 max-w-6xl mx-auto\">\n {plans.map((p: any, i: number) => (\n <div key={i} className={cn(\"relative p-8 rounded-3xl border flex flex-col\", p.popular ? \"border-primary bg-primary/5 shadow-xl scale-105 z-10\" : \"bg-card\")}>\n {p.popular && <div className=\"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-primary text-primary-foreground text-xs font-bold px-3 py-1 rounded-full\">MOST POPULAR</div>}\n <h3 className=\"text-xl font-semibold mb-2\">{p.name}</h3>\n <p className=\"text-sm text-muted-foreground mb-6\">{p.description}</p>\n <p className=\"text-5xl font-extrabold mb-6\">${p.price}<span className=\"text-lg text-muted-foreground font-normal\">/mo</span></p>\n <button className={cn(\"w-full py-3 rounded-xl font-semibold mb-8 transition-all hover:scale-105 active:scale-95\", p.popular ? \"bg-primary text-primary-foreground\" : \"bg-muted text-foreground\")}>\n {p.cta}\n </button>\n <ul className=\"space-y-4 flex-1\">\n {p.features.map((f: string, j: number) => (\n <li key={j} className=\"flex items-start gap-3 text-sm\">\n <svg className=\"w-5 h-5 text-primary shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>\n <span>{f}</span>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// 1. NeonButton\nexport const NeonButton = ({ children, ...props }: any) => (\n <button className=\"relative px-6 py-2 bg-black text-white font-bold rounded-lg group\" {...props}>\n <span className=\"absolute inset-0 w-full h-full rounded-lg bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 opacity-70 blur-md group-hover:opacity-100 transition-opacity duration-300\"></span>\n <span className=\"relative z-10\">{children}</span>\n </button>\n)\n\n// 2. ThreeDButton\nexport const ThreeDButton = ({ children, ...props }: any) => (\n <button className=\"px-6 py-2 bg-primary text-primary-foreground font-bold rounded-lg shadow-[0_5px_0_hsl(var(--primary-dark,0,0%,30%))] hover:shadow-[0_2px_0_hsl(var(--primary-dark,0,0%,30%))] hover:translate-y-[3px] transition-all\" {...props}>\n {children}\n </button>\n)\n\n// 3. RippleButton (Simplified CSS ripple)\nexport const RippleButton = ({ children, ...props }: any) => (\n <button className=\"relative overflow-hidden px-6 py-2 bg-primary text-primary-foreground font-medium rounded-lg group\" {...props}>\n <span className=\"absolute inset-0 bg-white/20 scale-0 rounded-full group-active:scale-[2] transition-transform duration-500 origin-center\"></span>\n <span className=\"relative z-10\">{children}</span>\n </button>\n)\n\n// 4. CyberpunkButton\nexport const CyberpunkButton = ({ children, ...props }: any) => (\n <button className=\"px-6 py-2 bg-yellow-400 text-black font-extrabold uppercase tracking-widest border-2 border-black hover:bg-black hover:text-yellow-400 transition-colors shadow-[4px_4px_0_0_#000]\" {...props}>\n {children}\n </button>\n)\n\n// 5. MagneticButton\nexport const MagneticButton = ({ children, ...props }: any) => (\n <motion.button whileHover={{ scale: 1.1 }} whileTap={{ scale: 0.9 }} className=\"px-6 py-2 bg-secondary text-secondary-foreground font-medium rounded-full\" {...props}>\n {children}\n </motion.button>\n)\n\n// 6. ShimmerButton\nexport const ShimmerButton = ({ children, ...props }: any) => (\n <button className=\"relative px-6 py-2 font-medium bg-slate-900 text-white rounded-lg overflow-hidden\" {...props}>\n <span className=\"absolute inset-0 -translate-x-full animate-[shimmer_2s_infinite] bg-gradient-to-r from-transparent via-white/20 to-transparent\"></span>\n <span className=\"relative z-10\">{children}</span>\n </button>\n)\n\n// 7. BorderBeamButton\nexport const BorderBeamButton = ({ children, ...props }: any) => (\n <button className=\"relative px-6 py-2 font-medium bg-background text-foreground rounded-lg overflow-hidden border border-border group\" {...props}>\n <div className=\"absolute inset-0 bg-gradient-to-r from-primary to-transparent opacity-0 group-hover:opacity-20 transition-opacity\"></div>\n <div className=\"absolute top-0 left-0 w-full h-[2px] bg-primary scale-x-0 group-hover:scale-x-100 transition-transform origin-left\"></div>\n <span className=\"relative z-10\">{children}</span>\n </button>\n)\n\n// 8. LoadingButton\nexport const LoadingButton = ({ isLoading, children, ...props }: any) => (\n <button disabled={isLoading} className=\"px-6 py-2 bg-primary text-primary-foreground font-medium rounded-lg flex items-center gap-2 disabled:opacity-70\" {...props}>\n {isLoading && <svg className=\"animate-spin h-4 w-4\" viewBox=\"0 0 24 24\"><circle className=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"4\" fill=\"none\"></circle><path className=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8v8H4z\"></path></svg>}\n {children}\n </button>\n)\n\n// 9. DestructiveGlowButton\nexport const DestructiveGlowButton = ({ children, ...props }: any) => (\n <button className=\"px-6 py-2 bg-destructive/10 text-destructive font-medium rounded-lg hover:bg-destructive hover:text-destructive-foreground hover:shadow-[0_0_15px_rgba(255,0,0,0.5)] transition-all\" {...props}>\n {children}\n </button>\n)\n\n// 10. GhostOutlineButton\nexport const GhostOutlineButton = ({ children, ...props }: any) => (\n <button className=\"px-6 py-2 border-2 border-transparent hover:border-primary text-foreground hover:text-primary font-medium rounded-lg transition-colors\" {...props}>\n {children}\n </button>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, Mail, AlertCircle, CheckCircle, Upload } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\n\n// 1. FloatingLabelInput\nexport const FloatingLabelInput = ({ label, ...props }: any) => (\n <div className=\"relative\">\n <input className=\"peer w-full border-b-2 border-muted-foreground/30 bg-transparent py-2 pt-6 focus:border-primary focus:outline-none placeholder-transparent\" placeholder={label} {...props} />\n <label className=\"absolute left-0 top-1 text-xs text-primary transition-all peer-placeholder-shown:top-4 peer-placeholder-shown:text-base peer-placeholder-shown:text-muted-foreground peer-focus:top-1 peer-focus:text-xs peer-focus:text-primary pointer-events-none\">{label}</label>\n </div>\n)\n\n// 2. UnderlineInput\nexport const UnderlineInput = ({ ...props }: any) => (\n <input className=\"w-full border-b-2 border-muted-foreground bg-transparent py-2 focus:border-primary focus:outline-none transition-colors\" {...props} />\n)\n\n// 3. IconInputLeft\nexport const IconInputLeft = ({ icon: Icon = Search, ...props }: any) => (\n <div className=\"relative flex items-center\">\n <Icon className=\"absolute left-3 h-5 w-5 text-muted-foreground\" />\n <input className=\"w-full rounded-md border border-border bg-background py-2 pl-10 pr-4 focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary\" {...props} />\n </div>\n)\n\n// 4. IconInputRight\nexport const IconInputRight = ({ icon: Icon = Mail, ...props }: any) => (\n <div className=\"relative flex items-center\">\n <input className=\"w-full rounded-md border border-border bg-background py-2 pl-4 pr-10 focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary\" {...props} />\n <Icon className=\"absolute right-3 h-5 w-5 text-muted-foreground\" />\n </div>\n)\n\n// 5. PillInput\nexport const PillInput = ({ ...props }: any) => (\n <input className=\"w-full rounded-full border border-border bg-background px-6 py-2 focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/20 shadow-sm\" {...props} />\n)\n\n// 6. ErrorInput\nexport const ErrorInput = ({ errorMessage, ...props }: any) => (\n <div className=\"flex flex-col gap-1\">\n <div className=\"relative flex items-center\">\n <input className=\"w-full rounded-md border border-destructive bg-background py-2 pl-4 pr-10 focus:outline-none focus:ring-1 focus:ring-destructive text-destructive\" {...props} />\n <AlertCircle className=\"absolute right-3 h-5 w-5 text-destructive\" />\n </div>\n <span className=\"text-xs text-destructive\">{errorMessage}</span>\n </div>\n)\n\n// 7. SuccessInput\nexport const SuccessInput = ({ ...props }: any) => (\n <div className=\"relative flex items-center\">\n <input className=\"w-full rounded-md border border-green-500 bg-background py-2 pl-4 pr-10 focus:outline-none focus:ring-1 focus:ring-green-500 text-green-600\" {...props} />\n <CheckCircle className=\"absolute right-3 h-5 w-5 text-green-500\" />\n </div>\n)\n\n// 8. GhostInput\nexport const GhostInput = ({ ...props }: any) => (\n <input className=\"w-full bg-transparent px-4 py-2 font-medium placeholder-muted-foreground/50 focus:bg-muted/50 focus:outline-none rounded-md transition-colors\" {...props} />\n)\n\n// 9. NeumorphicInput\nexport const NeumorphicInput = ({ ...props }: any) => (\n <input className=\"w-full rounded-xl bg-background px-4 py-3 shadow-[inset_4px_4px_8px_rgba(0,0,0,0.1),inset_-4px_-4px_8px_rgba(255,255,255,0.05)] focus:outline-none border border-transparent focus:border-primary/20\" {...props} />\n)\n\n// 10. MinimalDropInput (simplified file input wrapper)\nexport const MinimalDropInput = ({ label = \"Choose File\", ...props }: any) => (\n <label className=\"flex w-full cursor-pointer flex-col items-center justify-center rounded-lg border-2 border-dashed border-border bg-muted/20 py-6 hover:bg-muted/50 transition-colors\">\n <Upload className=\"mb-2 h-6 w-6 text-muted-foreground\" />\n <span className=\"text-sm font-medium\">{label}</span>\n <input type=\"file\" className=\"hidden\" {...props} />\n </label>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Heart, Share2, Calendar, MapPin, Star } from \"lucide-react\"\n\n// 1. ImageCard\nexport const ImageCard = ({ src, title, subtitle }: any) => (\n <div className=\"group relative overflow-hidden rounded-xl border bg-card text-card-foreground\">\n <div className=\"aspect-[4/3] w-full bg-muted overflow-hidden\">\n {src ? <img src={src} className=\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500\" alt={title} /> : <div className=\"w-full h-full bg-muted-foreground/20\" />}\n </div>\n <div className=\"p-4\">\n <h3 className=\"font-semibold text-lg\">{title}</h3>\n <p className=\"text-sm text-muted-foreground\">{subtitle}</p>\n </div>\n </div>\n)\n\n// 2. ProfileCard\nexport const ProfileCard = ({ name, role, avatar }: any) => (\n <div className=\"flex flex-col items-center p-6 text-center rounded-xl border bg-card shadow-sm\">\n <div className=\"w-24 h-24 rounded-full bg-muted mb-4 overflow-hidden border-4 border-background shadow-md\">\n {avatar && <img src={avatar} className=\"w-full h-full object-cover\" alt={name} />}\n </div>\n <h3 className=\"text-xl font-bold\">{name}</h3>\n <p className=\"text-sm text-muted-foreground mb-4\">{role}</p>\n <button className=\"px-6 py-2 bg-primary text-primary-foreground rounded-full font-medium w-full hover:bg-primary/90 transition-colors\">Follow</button>\n </div>\n)\n\n// 3. ProductCard\nexport const ProductCard = ({ title, price, category, src }: any) => (\n <div className=\"rounded-xl border bg-card p-4 flex flex-col gap-3 group\">\n <div className=\"aspect-square w-full rounded-lg bg-muted overflow-hidden relative\">\n {src && <img src={src} className=\"w-full h-full object-cover\" alt={title} />}\n <button className=\"absolute top-2 right-2 p-2 bg-background/50 backdrop-blur rounded-full hover:bg-background transition-colors\"><Heart className=\"w-4 h-4\" /></button>\n </div>\n <div>\n <p className=\"text-xs text-muted-foreground mb-1\">{category}</p>\n <h3 className=\"font-medium truncate\">{title}</h3>\n <p className=\"font-bold text-lg mt-1\">${price}</p>\n </div>\n </div>\n)\n\n// 4. ArticleCard\nexport const ArticleCard = ({ title, excerpt, date }: any) => (\n <div className=\"p-6 rounded-xl border bg-card flex flex-col gap-4 hover:shadow-md transition-shadow cursor-pointer\">\n <span className=\"text-xs font-medium text-primary\">{date}</span>\n <h3 className=\"text-xl font-bold leading-tight\">{title}</h3>\n <p className=\"text-muted-foreground line-clamp-3\">{excerpt}</p>\n <div className=\"mt-auto pt-4 border-t flex items-center justify-between text-sm\">\n <span className=\"font-medium\">Read more →</span>\n <button><Share2 className=\"w-4 h-4 text-muted-foreground hover:text-foreground\" /></button>\n </div>\n </div>\n)\n\n// 5. StatCardSimple\nexport const StatCardSimple = ({ label, value, trend }: any) => (\n <div className=\"p-5 rounded-xl border bg-card\">\n <p className=\"text-sm font-medium text-muted-foreground mb-2\">{label}</p>\n <div className=\"flex items-end justify-between\">\n <h4 className=\"text-3xl font-bold\">{value}</h4>\n <span className={`text-sm font-medium ${trend.startsWith('+') ? 'text-green-500' : 'text-red-500'}`}>{trend}</span>\n </div>\n </div>\n)\n\n// 6. PricingCardBasic\nexport const PricingCardBasic = ({ name, price, features }: any) => (\n <div className=\"p-6 rounded-xl border bg-card flex flex-col items-center text-center\">\n <h3 className=\"text-xl font-medium mb-2\">{name}</h3>\n <div className=\"mb-6\"><span className=\"text-4xl font-bold\">${price}</span><span className=\"text-muted-foreground\">/mo</span></div>\n <ul className=\"space-y-3 w-full mb-8 text-sm\">\n {features.map((f: string, i: number) => <li key={i} className=\"text-muted-foreground border-b pb-2 last:border-0\">{f}</li>)}\n </ul>\n <button className=\"w-full py-2 bg-primary text-primary-foreground rounded-lg font-medium mt-auto\">Subscribe</button>\n </div>\n)\n\n// 7. WeatherCard\nexport const WeatherCard = ({ city, temp, condition }: any) => (\n <div className=\"p-6 rounded-xl border bg-gradient-to-br from-blue-500 to-cyan-400 text-white shadow-lg\">\n <div className=\"flex justify-between items-start mb-8\">\n <div>\n <h3 className=\"text-2xl font-bold\">{city}</h3>\n <p className=\"opacity-80\">{condition}</p>\n </div>\n <div className=\"text-5xl font-light\">{temp}°</div>\n </div>\n <div className=\"flex gap-4 opacity-90 text-sm\">\n <span>H: {temp + 4}°</span>\n <span>L: {temp - 3}°</span>\n </div>\n </div>\n)\n\n// 8. EventCard\nexport const EventCard = ({ title, date, location }: any) => (\n <div className=\"flex p-4 rounded-xl border bg-card gap-4\">\n <div className=\"flex flex-col items-center justify-center bg-primary/10 text-primary rounded-lg px-4 py-2 min-w-[70px]\">\n <span className=\"text-xs uppercase font-bold\">{date.split(' ')[0]}</span>\n <span className=\"text-2xl font-black\">{date.split(' ')[1]}</span>\n </div>\n <div className=\"flex flex-col justify-center\">\n <h3 className=\"font-bold text-lg leading-tight mb-1\">{title}</h3>\n <div className=\"flex items-center text-sm text-muted-foreground gap-1\">\n <MapPin className=\"w-3 h-3\" /> {location}\n </div>\n </div>\n </div>\n)\n\n// 9. TestimonialCardBasic\nexport const TestimonialCardBasic = ({ text, author }: any) => (\n <div className=\"p-6 rounded-xl border bg-muted/30 italic relative\">\n <span className=\"absolute top-4 left-4 text-4xl text-primary/20 font-serif\">\"</span>\n <p className=\"relative z-10 text-muted-foreground mb-4 pt-4\">{text}</p>\n <div className=\"flex items-center gap-2\">\n <div className=\"w-8 h-8 rounded-full bg-primary/20\" />\n <span className=\"font-semibold text-sm not-italic\">{author}</span>\n </div>\n </div>\n)\n\n// 10. InteractiveCard\nexport const InteractiveCard = ({ title, description }: any) => (\n <div className=\"group p-6 rounded-xl border bg-card hover:bg-primary hover:text-primary-foreground transition-all duration-300 cursor-pointer\">\n <div className=\"w-12 h-12 rounded-lg bg-primary/10 text-primary group-hover:bg-primary-foreground/20 group-hover:text-primary-foreground flex items-center justify-center mb-4 transition-colors\">\n <Star className=\"w-6 h-6\" />\n </div>\n <h3 className=\"text-xl font-bold mb-2\">{title}</h3>\n <p className=\"text-muted-foreground group-hover:text-primary-foreground/80 transition-colors\">{description}</p>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Bell, Check, Star } from \"lucide-react\"\n\n// 1. NotificationBadge\nexport const NotificationBadge = ({ count, children }: any) => (\n <div className=\"relative inline-block\">\n {children}\n {count > 0 && <span className=\"absolute -top-2 -right-2 flex h-5 w-5 items-center justify-center rounded-full bg-destructive text-[10px] font-bold text-white ring-2 ring-background\">{count > 99 ? '99+' : count}</span>}\n </div>\n)\n\n// 2. RibbonBadge\nexport const RibbonBadge = ({ text }: any) => (\n <div className=\"relative inline-block overflow-hidden pb-1 pl-1\">\n <div className=\"absolute top-0 left-0 w-0 h-0 border-t-[8px] border-t-transparent border-l-[8px] border-l-primary-dark\"></div>\n <span className=\"relative z-10 inline-block bg-primary text-primary-foreground text-xs font-bold px-3 py-1 rounded-r-md rounded-bl-md shadow-sm\">{text}</span>\n </div>\n)\n\n// 3. OutlineDotBadge\nexport const OutlineDotBadge = ({ text, colorClass = \"bg-green-500\" }: any) => (\n <span className=\"inline-flex items-center gap-1.5 rounded-full border border-border px-2.5 py-0.5 text-xs font-semibold text-foreground\">\n <span className={`h-1.5 w-1.5 rounded-full ${colorClass}`}></span>\n {text}\n </span>\n)\n\n// 4. GradientOutlineBadge\nexport const GradientOutlineBadge = ({ text }: any) => (\n <div className=\"relative inline-flex items-center justify-center p-[1px] rounded-full bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 overflow-hidden\">\n <span className=\"relative inline-block bg-background px-3 py-0.5 rounded-full text-xs font-semibold text-foreground\">{text}</span>\n </div>\n)\n\n// 5. IconBadge\nexport const IconBadge = ({ icon: Icon = Star, text }: any) => (\n <span className=\"inline-flex items-center gap-1 rounded-md bg-secondary px-2.5 py-0.5 text-xs font-semibold text-secondary-foreground\">\n <Icon className=\"h-3 w-3\" />\n {text}\n </span>\n)\n\n// 6. FloatingBadge\nexport const FloatingBadge = ({ text }: any) => (\n <span className=\"inline-block animate-[bounce_3s_infinite] rounded-full bg-primary/20 px-3 py-1 text-xs font-bold text-primary backdrop-blur-sm border border-primary/30 shadow-[0_4px_12px_rgba(0,0,0,0.1)]\">\n {text}\n </span>\n)\n\n// 7. ProgressBadge\nexport const ProgressBadge = ({ text, progress = 50 }: any) => (\n <div className=\"relative inline-flex h-6 w-24 items-center justify-center rounded-full bg-muted overflow-hidden\">\n <div className=\"absolute left-0 top-0 h-full bg-primary/20\" style={{ width: `${progress}%` }}></div>\n <span className=\"relative z-10 text-[10px] font-bold text-foreground\">{text} ({progress}%)</span>\n </div>\n)\n\n// 8. StatusRingBadge\nexport const StatusRingBadge = ({ status = \"active\" }: any) => {\n const colors = status === \"active\" ? \"ring-green-500/30 bg-green-500\" : \"ring-red-500/30 bg-red-500\"\n return (\n <span className={`inline-block h-3 w-3 rounded-full ring-4 ${colors}`}></span>\n )\n}\n\n// 9. NeonOutlineBadge\nexport const NeonOutlineBadge = ({ text }: any) => (\n <span className=\"inline-block rounded-full border border-cyan-400 px-3 py-0.5 text-xs font-bold text-cyan-400 shadow-[0_0_8px_rgba(34,211,238,0.4)]\">\n {text}\n </span>\n)\n\n// 10. TagLabel\nexport const TagLabel = ({ text }: any) => (\n <span className=\"inline-flex items-center rounded-sm bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground hover:bg-muted/80 hover:text-foreground cursor-pointer transition-colors before:content-['#'] before:mr-0.5 before:opacity-50\">\n {text}\n </span>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\n\n// 1. WifiLoader (Simulated with simple shapes)\nexport const WifiLoader = () => (\n <div className=\"flex flex-col items-center justify-end h-8 w-8 gap-1\">\n <motion.div animate={{ opacity: [0.2, 1, 0.2] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0 }} className=\"w-8 h-2 bg-primary rounded-t-full rounded-b-sm\" />\n <motion.div animate={{ opacity: [0.2, 1, 0.2] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.2 }} className=\"w-5 h-2 bg-primary rounded-t-full rounded-b-sm\" />\n <motion.div animate={{ opacity: [0.2, 1, 0.2] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.4 }} className=\"w-2 h-2 bg-primary rounded-full\" />\n </div>\n)\n\n// 2. HourglassLoader\nexport const HourglassLoader = () => (\n <motion.div \n animate={{ rotate: 180 }} \n transition={{ repeat: Infinity, duration: 2, ease: \"easeInOut\", repeatDelay: 0.5 }}\n className=\"relative w-6 h-8 border-y-4 border-y-primary border-x-2 border-x-transparent flex flex-col justify-between items-center\"\n >\n <div className=\"w-0 h-0 border-l-[10px] border-l-transparent border-r-[10px] border-r-transparent border-t-[10px] border-t-primary opacity-50\" />\n <div className=\"w-0 h-0 border-l-[10px] border-l-transparent border-r-[10px] border-r-transparent border-b-[10px] border-b-primary opacity-50\" />\n </motion.div>\n)\n\n// 3. HeartbeatLoader\nexport const HeartbeatLoader = () => (\n <motion.div animate={{ scale: [1, 1.2, 1, 1.3, 1] }} transition={{ repeat: Infinity, duration: 1.2 }}>\n <svg className=\"w-8 h-8 text-red-500 fill-current\" viewBox=\"0 0 24 24\"><path d=\"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z\"/></svg>\n </motion.div>\n)\n\n// 4. BoxLoader\nexport const BoxLoader = () => (\n <div className=\"w-8 h-8 relative\">\n <motion.div animate={{ rotate: 360, borderRadius: [\"20%\", \"50%\", \"20%\"] }} transition={{ repeat: Infinity, duration: 2, ease: \"linear\" }} className=\"w-full h-full bg-primary\" />\n </div>\n)\n\n// 5. BouncingBalls\nexport const BouncingBalls = () => (\n <div className=\"flex gap-2\">\n {[0, 1, 2].map(i => (\n <motion.div key={i} animate={{ y: [0, -10, 0] }} transition={{ repeat: Infinity, duration: 0.6, delay: i * 0.1 }} className=\"w-3 h-3 bg-primary rounded-full\" />\n ))}\n </div>\n)\n\n// 6. GlowRingLoader\nexport const GlowRingLoader = () => (\n <motion.div animate={{ rotate: 360 }} transition={{ repeat: Infinity, duration: 1, ease: \"linear\" }} className=\"w-10 h-10 rounded-full border-4 border-primary/20 border-t-primary shadow-[0_0_10px_rgba(var(--color-primary),0.5)]\" />\n)\n\n// 7. LineScaleLoader\nexport const LineScaleLoader = () => (\n <div className=\"flex gap-1 items-end h-8\">\n {[0, 1, 2, 3, 4].map(i => (\n <motion.div key={i} animate={{ height: [\"20%\", \"100%\", \"20%\"] }} transition={{ repeat: Infinity, duration: 1, delay: i * 0.1 }} className=\"w-1.5 bg-primary rounded-full\" />\n ))}\n </div>\n)\n\n// 8. ClockLoader\nexport const ClockLoader = () => (\n <div className=\"relative w-10 h-10 rounded-full border-2 border-primary\">\n <motion.div animate={{ rotate: 360 }} transition={{ repeat: Infinity, duration: 4, ease: \"linear\" }} className=\"absolute top-1/2 left-1/2 w-0.5 h-3.5 bg-primary origin-bottom -translate-x-1/2 -translate-y-full\" />\n <motion.div animate={{ rotate: 360 }} transition={{ repeat: Infinity, duration: 1, ease: \"linear\" }} className=\"absolute top-1/2 left-1/2 w-0.5 h-4.5 bg-primary/70 origin-bottom -translate-x-1/2 -translate-y-full\" />\n </div>\n)\n\n// 9. BatteryLoader\nexport const BatteryLoader = () => (\n <div className=\"flex items-center\">\n <div className=\"w-12 h-6 border-2 border-primary rounded-sm p-0.5 flex\">\n <motion.div animate={{ width: [\"0%\", \"100%\"] }} transition={{ repeat: Infinity, duration: 2, ease: \"linear\" }} className=\"h-full bg-green-500 rounded-sm\" />\n </div>\n <div className=\"w-1 h-2 bg-primary rounded-r-sm\" />\n </div>\n)\n\n// 10. SquareSpinLoader\nexport const SquareSpinLoader = () => (\n <motion.div animate={{ rotateX: [0, 180, 180, 0], rotateY: [0, 0, 180, 180] }} transition={{ repeat: Infinity, duration: 2, ease: \"easeInOut\" }} className=\"w-8 h-8 bg-primary\" />\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { AlertCircle, Info, CheckCircle2, XCircle, Cookie, BellRing } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\n\n// 1. CyberAlert\nexport const CyberAlert = ({ title, description }: any) => {\n const [visible, setVisible] = React.useState(true)\n if (!visible) return null;\n return (\n <div className=\"border-l-4 border-yellow-400 bg-black text-white p-4 shadow-[4px_4px_0_0_rgba(250,204,21,1)] relative overflow-hidden\">\n <div className=\"absolute top-0 right-0 bg-yellow-400 text-black text-[10px] font-bold px-2 py-0.5 cursor-pointer hover:bg-yellow-500\" onClick={() => setVisible(false)}>DISMISS</div>\n <h4 className=\"font-mono font-bold tracking-tight text-yellow-400 uppercase pr-10\">{title}</h4>\n <p className=\"font-mono text-sm opacity-90\">{description}</p>\n </div>\n )\n}\n\n// 2. SoftAlert\nexport const SoftAlert = ({ title, description, type = \"info\" }: any) => {\n const [visible, setVisible] = React.useState(true)\n if (!visible) return null;\n const colors = type === \"error\" ? \"bg-red-50 text-red-800 dark:bg-red-950/50 dark:text-red-300\" : \"bg-blue-50 text-blue-800 dark:bg-blue-950/50 dark:text-blue-300\"\n return (\n <div className={`p-4 rounded-2xl ${colors} relative`}>\n <button onClick={() => setVisible(false)} className=\"absolute top-4 right-4 hover:opacity-70\"><XCircle className=\"w-5 h-5\" /></button>\n <h4 className=\"font-bold mb-1 pr-6\">{title}</h4>\n <p className=\"text-sm opacity-90\">{description}</p>\n </div>\n )\n}\n\n// 3. MinimalAlert\nexport const MinimalAlert = ({ text }: any) => (\n <div className=\"flex items-center gap-3 py-2 px-4 border rounded-full text-sm font-medium w-fit\">\n <span className=\"relative flex h-2 w-2\"><span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-primary opacity-75\"></span><span className=\"relative inline-flex rounded-full h-2 w-2 bg-primary\"></span></span>\n {text}\n </div>\n)\n\n// 4. LeftBorderAlert\nexport const LeftBorderAlert = ({ title, description }: any) => {\n const [visible, setVisible] = React.useState(true)\n if (!visible) return null;\n return (\n <div className=\"border-l-4 border-primary bg-muted/50 p-4 relative\">\n <button onClick={() => setVisible(false)} className=\"absolute top-4 right-4 text-muted-foreground hover:text-foreground\"><XCircle className=\"w-4 h-4\" /></button>\n <h4 className=\"font-semibold pr-6\">{title}</h4>\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n </div>\n )\n}\n\n// 5. IconTopAlert\nexport const IconTopAlert = ({ title, description, icon: Icon = AlertCircle }: any) => (\n <div className=\"flex flex-col items-center text-center p-6 bg-card border rounded-xl\">\n <div className=\"h-12 w-12 rounded-full bg-destructive/10 text-destructive flex items-center justify-center mb-4\">\n <Icon className=\"h-6 w-6\" />\n </div>\n <h4 className=\"font-bold text-lg mb-2\">{title}</h4>\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n </div>\n)\n\n// 6. SolidAlert\nexport const SolidAlert = ({ title, description }: any) => (\n <div className=\"bg-primary text-primary-foreground p-4 rounded-lg shadow-lg\">\n <div className=\"flex gap-3\">\n <Info className=\"h-5 w-5 shrink-0 mt-0.5\" />\n <div>\n <h4 className=\"font-bold\">{title}</h4>\n <p className=\"text-sm opacity-90 mt-1\">{description}</p>\n </div>\n </div>\n </div>\n)\n\n// 7. ToastAlertWrapper (Visual representation)\nexport const ToastAlertWrapper = ({ title, description, time }: any) => (\n <div className=\"max-w-sm w-full bg-background border shadow-xl rounded-lg p-4 flex gap-4 items-start pointer-events-none\">\n <CheckCircle2 className=\"h-5 w-5 text-green-500 shrink-0 mt-0.5\" />\n <div className=\"flex-1\">\n <h4 className=\"font-medium text-sm\">{title}</h4>\n <p className=\"text-sm text-muted-foreground mt-1\">{description}</p>\n </div>\n <span className=\"text-xs text-muted-foreground\">{time}</span>\n </div>\n)\n\n// 8. BannerAlert\nexport const BannerAlert = ({ text, actionText }: any) => (\n <div className=\"w-full bg-indigo-600 text-white px-4 py-3 flex items-center justify-between sm:rounded-lg\">\n <div className=\"flex items-center gap-3\">\n <BellRing className=\"h-5 w-5\" />\n <p className=\"text-sm font-medium\">{text}</p>\n </div>\n <button className=\"text-sm font-bold bg-white text-indigo-600 px-3 py-1 rounded-md hover:bg-indigo-50 transition-colors\">{actionText}</button>\n </div>\n)\n\n// 9. CookieAlert\nexport const CookieAlert = () => (\n <div className=\"max-w-md bg-card border rounded-xl p-6 shadow-2xl\">\n <div className=\"flex items-center gap-3 mb-4\">\n <Cookie className=\"h-6 w-6 text-orange-500\" />\n <h4 className=\"font-bold\">Cookie Preferences</h4>\n </div>\n <p className=\"text-sm text-muted-foreground mb-6\">We use cookies to improve your experience. By continuing to visit this site you agree to our use of cookies.</p>\n <div className=\"flex gap-3\">\n <button className=\"flex-1 px-4 py-2 bg-primary text-primary-foreground rounded-lg text-sm font-medium\">Accept All</button>\n <button className=\"flex-1 px-4 py-2 border rounded-lg text-sm font-medium hover:bg-muted\">Decline</button>\n </div>\n </div>\n)\n\n// 10. NeonAlert\nexport const NeonAlert = ({ title, description }: any) => (\n <div className=\"p-4 rounded-lg border border-purple-500 bg-purple-500/10 text-purple-200 shadow-[0_0_15px_rgba(168,85,247,0.3)]\">\n <h4 className=\"font-bold text-purple-400 drop-shadow-[0_0_5px_rgba(168,85,247,0.8)]\">{title}</h4>\n <p className=\"text-sm mt-1\">{description}</p>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"./avatar\"\n\n// 1. StackAvatar (Avatar Group element)\nexport const StackAvatar = ({ urls = [], max = 3, fallback = \"U\" }: any) => {\n const visibleUrls = urls.slice(0, max);\n const remaining = urls.length - max;\n \n return (\n <div className=\"flex -space-x-4\">\n {visibleUrls.map((src: string, i: number) => (\n <Avatar key={i} className=\"border-2 border-background ring-2 ring-transparent transition-transform hover:-translate-y-1 hover:ring-primary relative z-[1]\">\n <AvatarImage src={src} />\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n ))}\n {remaining > 0 && (\n <Avatar className=\"border-2 border-background relative z-[1]\">\n <AvatarFallback className=\"bg-muted text-foreground\">+{remaining}</AvatarFallback>\n </Avatar>\n )}\n </div>\n )\n}\n\n// 2. DottedAvatar\nexport const DottedAvatar = ({ src, fallback }: any) => (\n <Avatar className=\"border-2 border-dashed border-primary p-0.5 bg-transparent\">\n {src && <AvatarImage src={src} className=\"rounded-full\" />}\n <AvatarFallback className=\"bg-muted\">{fallback}</AvatarFallback>\n </Avatar>\n)\n\n// 3. ShadowAvatar\nexport const ShadowAvatar = ({ src, fallback }: any) => (\n <Avatar className=\"shadow-[0_8px_30px_rgb(0,0,0,0.12)] border\">\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n)\n\n// 4. PolymorphAvatar (Organic shape)\nexport const PolymorphAvatar = ({ src, fallback }: any) => (\n <Avatar className=\"rounded-[30%_70%_70%_30%/30%_30%_70%_70%] border\">\n {src && <AvatarImage src={src} className=\"rounded-[30%_70%_70%_30%/30%_30%_70%_70%]\" />}\n <AvatarFallback className=\"rounded-[30%_70%_70%_30%/30%_30%_70%_70%]\">{fallback}</AvatarFallback>\n </Avatar>\n)\n\n// 5. GlassAvatar\nexport const GlassAvatar = ({ src, fallback }: any) => (\n <div className=\"p-1 rounded-full bg-white/10 backdrop-blur-md border border-white/20 shadow-xl\">\n <Avatar>\n {src && <AvatarImage src={src} />}\n <AvatarFallback className=\"bg-transparent text-white\">{fallback}</AvatarFallback>\n </Avatar>\n </div>\n)\n\n// 6. AnimatedBorderAvatar\nexport const AnimatedBorderAvatar = ({ src, fallback }: any) => (\n <div className=\"relative p-[2px] rounded-full overflow-hidden inline-block\">\n <motion.div animate={{ rotate: 360 }} transition={{ repeat: Infinity, duration: 3, ease: \"linear\" }} className=\"absolute inset-[-50%] bg-[conic-gradient(from_0deg,transparent_0_340deg,hsl(var(--primary))_360deg)]\" />\n <Avatar className=\"relative border-2 border-background\">\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n </div>\n)\n\n// 7. InitialsGradientAvatar\nexport const InitialsGradientAvatar = ({ initials }: any) => (\n <Avatar>\n <AvatarFallback className=\"bg-gradient-to-br from-indigo-500 via-purple-500 to-pink-500 text-white font-bold text-lg\">\n {initials}\n </AvatarFallback>\n </Avatar>\n)\n\n// 8. SquareAvatar\nexport const SquareAvatar = ({ src, fallback }: any) => (\n <Avatar className=\"rounded-md border\">\n {src && <AvatarImage src={src} className=\"rounded-md\" />}\n <AvatarFallback className=\"rounded-md\">{fallback}</AvatarFallback>\n </Avatar>\n)\n\n// 9. TooltipAvatar (Visual only for docs)\nexport const TooltipAvatar = ({ src, fallback, tooltip }: any) => (\n <div className=\"group relative inline-block\">\n <Avatar className=\"border cursor-pointer\">\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n <div className=\"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2 py-1 bg-foreground text-background text-xs rounded opacity-0 group-hover:opacity-100 transition-opacity pointer-events-none whitespace-nowrap\">\n {tooltip}\n </div>\n </div>\n)\n\n// 10. PulseAvatar\nexport const PulseAvatar = ({ src, fallback }: any) => (\n <div className=\"relative inline-block\">\n <span className=\"absolute inset-0 rounded-full bg-primary animate-ping opacity-75\"></span>\n <Avatar className=\"relative border-2 border-background\">\n {src && <AvatarImage src={src} />}\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Home, Search, Bell, User, Settings, Menu, ChevronRight } from \"lucide-react\"\n\n// 1. SimpleNavbar\nexport const SimpleNavbar = () => (\n <nav className=\"flex items-center justify-between p-4 border-b bg-background w-full\">\n <div className=\"font-bold text-lg\">Logo</div>\n <div className=\"hidden md:flex gap-6 text-sm font-medium text-muted-foreground\">\n <a href=\"#\" className=\"text-foreground\">Home</a>\n <a href=\"#\" className=\"hover:text-foreground\">About</a>\n <a href=\"#\" className=\"hover:text-foreground\">Services</a>\n <a href=\"#\" className=\"hover:text-foreground\">Contact</a>\n </div>\n <div className=\"flex gap-4\">\n <button><Search className=\"w-5 h-5\" /></button>\n <button className=\"md:hidden\"><Menu className=\"w-5 h-5\" /></button>\n </div>\n </nav>\n)\n\n// 2. CenteredNavbar\nexport const CenteredNavbar = () => (\n <nav className=\"flex items-center justify-between p-4 border-b bg-background w-full\">\n <div className=\"flex-1\"><div className=\"font-bold text-lg\">Logo</div></div>\n <div className=\"hidden md:flex gap-6 text-sm font-medium\">\n <a href=\"#\">Products</a>\n <a href=\"#\">Solutions</a>\n <a href=\"#\">Pricing</a>\n </div>\n <div className=\"flex-1 flex justify-end gap-2\">\n <button className=\"px-4 py-2 text-sm font-medium\">Log in</button>\n <button className=\"px-4 py-2 text-sm font-medium bg-primary text-primary-foreground rounded-md\">Sign up</button>\n </div>\n </nav>\n)\n\n// 3. GlassNavbar\nexport const GlassNavbar = () => (\n <nav className=\"flex items-center justify-between px-6 py-3 bg-white/10 backdrop-blur-md border border-white/20 rounded-full w-[90%] mx-auto mt-4 shadow-lg sticky top-4 z-50\">\n <div className=\"font-bold text-white\">Glass UI</div>\n <div className=\"flex gap-6 text-sm font-medium text-white/80\">\n <a href=\"#\" className=\"hover:text-white transition-colors\">Features</a>\n <a href=\"#\" className=\"hover:text-white transition-colors\">Pricing</a>\n </div>\n <button className=\"px-4 py-1.5 bg-white text-black rounded-full text-sm font-bold\">Start</button>\n </nav>\n)\n\n// 4. FloatingNavbar\nexport const FloatingNavbar = () => (\n <nav className=\"flex items-center justify-center gap-8 px-8 py-3 bg-card border rounded-full w-fit mx-auto mt-4 shadow-xl\">\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-primary\"><Home className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Home</span></a>\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-muted-foreground hover:text-foreground\"><Search className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Search</span></a>\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-muted-foreground hover:text-foreground\"><Bell className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Alerts</span></a>\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-muted-foreground hover:text-foreground\"><User className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Profile</span></a>\n </nav>\n)\n\n// 5. SidebarMenu (Visual snippet)\nexport const SidebarMenu = () => (\n <div className=\"w-64 h-full min-h-[300px] border-r bg-background p-4 flex flex-col gap-2\">\n <div className=\"font-bold text-xl mb-6 px-2\">Dashboard</div>\n <a href=\"#\" className=\"flex items-center gap-3 px-3 py-2 bg-muted rounded-md font-medium text-sm\"><Home className=\"w-4 h-4\" /> Overview</a>\n <a href=\"#\" className=\"flex items-center gap-3 px-3 py-2 text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md font-medium text-sm\"><Settings className=\"w-4 h-4\" /> Settings</a>\n <a href=\"#\" className=\"flex items-center gap-3 px-3 py-2 text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md font-medium text-sm mt-auto\"><User className=\"w-4 h-4\" /> Account</a>\n </div>\n)\n\n// 6. BottomNav (Mobile style)\nexport const BottomNav = () => (\n <div className=\"flex items-center justify-around p-3 border-t bg-background w-full mt-auto\">\n <button className=\"flex flex-col items-center gap-1 text-primary\"><Home className=\"w-5 h-5\" /></button>\n <button className=\"flex flex-col items-center gap-1 text-muted-foreground\"><Search className=\"w-5 h-5\" /></button>\n <div className=\"relative -top-5\"><button className=\"flex items-center justify-center w-12 h-12 bg-primary text-primary-foreground rounded-full shadow-lg\"><Menu className=\"w-6 h-6\" /></button></div>\n <button className=\"flex flex-col items-center gap-1 text-muted-foreground\"><Bell className=\"w-5 h-5\" /></button>\n <button className=\"flex flex-col items-center gap-1 text-muted-foreground\"><User className=\"w-5 h-5\" /></button>\n </div>\n)\n\n// 7. BreadcrumbTrail\nexport const BreadcrumbTrail = () => (\n <nav className=\"flex items-center text-sm text-muted-foreground space-x-1\">\n <a href=\"#\" className=\"hover:text-foreground hover:underline\">Home</a>\n <ChevronRight className=\"w-4 h-4\" />\n <a href=\"#\" className=\"hover:text-foreground hover:underline\">Products</a>\n <ChevronRight className=\"w-4 h-4\" />\n <span className=\"text-foreground font-medium\">Laptop</span>\n </nav>\n)\n\n// 8. StepIndicator\nexport const StepIndicator = ({ current = 2 }: any) => (\n <div className=\"flex items-center w-full max-w-sm\">\n <div className=\"flex items-center text-primary\"><div className=\"w-8 h-8 rounded-full border-2 border-primary bg-primary text-primary-foreground flex items-center justify-center font-bold text-sm\">1</div></div>\n <div className=\"flex-1 h-[2px] bg-primary mx-2\"></div>\n <div className=\"flex items-center text-primary\"><div className=\"w-8 h-8 rounded-full border-2 border-primary bg-background flex items-center justify-center font-bold text-sm\">2</div></div>\n <div className=\"flex-1 h-[2px] bg-muted mx-2\"></div>\n <div className=\"flex items-center text-muted-foreground\"><div className=\"w-8 h-8 rounded-full border-2 border-muted bg-background flex items-center justify-center font-bold text-sm\">3</div></div>\n </div>\n)\n\n// 9. TabMenu\nexport const TabMenu = () => (\n <div className=\"flex border-b w-full\">\n <button className=\"px-6 py-3 border-b-2 border-primary text-primary font-medium text-sm\">Account</button>\n <button className=\"px-6 py-3 border-b-2 border-transparent text-muted-foreground hover:text-foreground font-medium text-sm transition-colors\">Password</button>\n <button className=\"px-6 py-3 border-b-2 border-transparent text-muted-foreground hover:text-foreground font-medium text-sm transition-colors\">Notifications</button>\n </div>\n)\n\n// 10. DropdownMenuVisual\nexport const DropdownMenuVisual = () => (\n <div className=\"w-48 border bg-card rounded-md shadow-md p-1 flex flex-col\">\n <div className=\"px-2 py-1.5 text-sm font-semibold border-b mb-1\">My Account</div>\n <button className=\"px-2 py-1.5 text-sm text-left hover:bg-muted rounded-sm transition-colors\">Profile</button>\n <button className=\"px-2 py-1.5 text-sm text-left hover:bg-muted rounded-sm transition-colors\">Billing</button>\n <button className=\"px-2 py-1.5 text-sm text-left hover:bg-muted rounded-sm transition-colors\">Settings</button>\n <div className=\"border-t my-1\"></div>\n <button className=\"px-2 py-1.5 text-sm text-left text-destructive hover:bg-destructive/10 rounded-sm transition-colors\">Log out</button>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { ArrowUpRight, ArrowDownRight, Activity } from \"lucide-react\"\n\n// 1. CircularProgressCard\nexport const CircularProgressCard = ({ value = 75, label = \"Completion\" }: any) => (\n <div className=\"p-6 bg-card border rounded-2xl flex flex-col items-center gap-4\">\n <div className=\"relative w-24 h-24 flex items-center justify-center\">\n <svg className=\"transform -rotate-90 w-full h-full\"><circle cx=\"48\" cy=\"48\" r=\"40\" stroke=\"currentColor\" strokeWidth=\"8\" fill=\"transparent\" className=\"text-muted\" /><circle cx=\"48\" cy=\"48\" r=\"40\" stroke=\"currentColor\" strokeWidth=\"8\" fill=\"transparent\" strokeDasharray=\"251.2\" strokeDashoffset={251.2 - (251.2 * value) / 100} className=\"text-primary transition-all duration-1000 ease-out\" /></svg>\n <span className=\"absolute text-xl font-bold\">{value}%</span>\n </div>\n <span className=\"text-sm font-medium text-muted-foreground\">{label}</span>\n </div>\n)\n\n// 2. LineChartCard (Mock)\nexport const LineChartCard = () => (\n <div className=\"p-6 bg-card border rounded-2xl\">\n <div className=\"flex justify-between items-end mb-6\">\n <div><h3 className=\"text-muted-foreground text-sm font-medium\">Revenue</h3><p className=\"text-3xl font-bold\">$12,450</p></div>\n <span className=\"flex items-center text-green-500 text-sm font-bold\"><ArrowUpRight className=\"w-4 h-4 mr-1\" /> +14.5%</span>\n </div>\n <div className=\"h-24 flex items-end gap-1\">\n {[40, 30, 50, 45, 60, 55, 70, 65, 80, 75, 90, 85, 100].map((h, i) => (\n <div key={i} className=\"flex-1 bg-primary/20 hover:bg-primary transition-colors rounded-t-sm\" style={{ height: `${h}%` }} />\n ))}\n </div>\n </div>\n)\n\n// 3. BarChartCard (Mock)\nexport const BarChartCard = () => (\n <div className=\"p-6 bg-card border rounded-2xl\">\n <h3 className=\"font-bold mb-4\">Traffic Sources</h3>\n <div className=\"space-y-3\">\n {[{ l: \"Direct\", v: 60, c: \"bg-blue-500\" }, { l: \"Social\", v: 30, c: \"bg-indigo-500\" }, { l: \"Referral\", v: 10, c: \"bg-purple-500\" }].map((item, i) => (\n <div key={i}>\n <div className=\"flex justify-between text-xs mb-1\"><span>{item.l}</span><span>{item.v}%</span></div>\n <div className=\"h-2 w-full bg-muted rounded-full overflow-hidden\"><motion.div initial={{ width: 0 }} animate={{ width: `${item.v}%` }} className={`h-full ${item.c}`} /></div>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 4. TrendStatCard\nexport const TrendStatCard = ({ title = \"Active Users\", value = \"2,345\", trend = \"up\" }: any) => (\n <div className=\"p-4 bg-card border border-l-4 border-l-primary rounded-lg shadow-sm flex justify-between items-center\">\n <div>\n <p className=\"text-sm text-muted-foreground\">{title}</p>\n <h4 className=\"text-2xl font-bold\">{value}</h4>\n </div>\n <div className={`p-2 rounded-full ${trend === 'up' ? 'bg-green-500/10 text-green-500' : 'bg-red-500/10 text-red-500'}`}>\n {trend === 'up' ? <ArrowUpRight className=\"w-5 h-5\" /> : <ArrowDownRight className=\"w-5 h-5\" />}\n </div>\n </div>\n)\n\n// 5. RankingList\nexport const RankingList = () => (\n <div className=\"p-6 bg-card border rounded-2xl space-y-4\">\n <h3 className=\"font-bold\">Top Products</h3>\n {[1, 2, 3].map((i) => (\n <div key={i} className=\"flex items-center gap-3\">\n <span className=\"w-6 h-6 rounded-full bg-muted flex items-center justify-center text-xs font-bold\">{i}</span>\n <div className=\"flex-1\"><h4 className=\"text-sm font-semibold\">Product {i}</h4><p className=\"text-xs text-muted-foreground\">{1000 - i * 100} sales</p></div>\n <span className=\"text-sm font-bold text-primary\">${(1000 - i * 100) * 10}</span>\n </div>\n ))}\n </div>\n)\n\n// 6. ActivityHeatmap (Mock)\nexport const ActivityHeatmap = () => (\n <div className=\"p-6 bg-card border rounded-2xl flex flex-col items-center\">\n <h3 className=\"font-bold mb-4 w-full text-left\">Activity Heatmap</h3>\n <div className=\"grid grid-cols-7 gap-1\">\n {Array.from({ length: 28 }).map((_, i) => (\n <div key={i} className=\"w-4 h-4 rounded-sm\" style={{ backgroundColor: `rgba(var(--color-primary), ${Math.random() * 0.8 + 0.1})` }} />\n ))}\n </div>\n </div>\n)\n\n// 7. RadarChartMock\nexport const RadarChartMock = () => (\n <div className=\"p-6 bg-card border rounded-2xl flex items-center justify-center min-h-[200px] relative\">\n <div className=\"absolute inset-0 flex items-center justify-center opacity-10\">\n <svg viewBox=\"0 0 100 100\" className=\"w-32 h-32 stroke-foreground fill-transparent stroke-1\"><polygon points=\"50,0 100,25 100,75 50,100 0,75 0,25\" /></svg>\n <svg viewBox=\"0 0 100 100\" className=\"w-20 h-20 absolute stroke-foreground fill-transparent stroke-1\"><polygon points=\"50,0 100,25 100,75 50,100 0,75 0,25\" /></svg>\n </div>\n <svg viewBox=\"0 0 100 100\" className=\"w-32 h-32 absolute stroke-primary fill-primary/30 stroke-2\"><polygon points=\"50,20 80,40 70,80 40,90 20,50\" /></svg>\n <div className=\"absolute top-2 text-xs font-bold\">Speed</div><div className=\"absolute bottom-2 text-xs font-bold\">Power</div>\n </div>\n)\n\n// 8. GaugeMeter\nexport const GaugeMeter = ({ value = 65 }: any) => (\n <div className=\"p-6 bg-card border rounded-2xl flex flex-col items-center\">\n <div className=\"relative w-32 h-16 overflow-hidden\">\n <div className=\"absolute top-0 left-0 w-32 h-32 rounded-full border-[12px] border-muted\" />\n <div className=\"absolute top-0 left-0 w-32 h-32 rounded-full border-[12px] border-primary border-b-transparent border-r-transparent transform -rotate-45\" style={{ clipPath: `polygon(0 0, 100% 0, 100% ${value}%, 0 ${value}%)` }} />\n </div>\n <div className=\"mt-[-10px] text-center\"><h4 className=\"text-2xl font-bold\">{value}</h4><p className=\"text-xs text-muted-foreground\">Score</p></div>\n </div>\n)\n\n// 9. SparklineStat\nexport const SparklineStat = () => (\n <div className=\"p-4 bg-card border rounded-lg flex items-center justify-between\">\n <div><p className=\"text-sm text-muted-foreground\">Bounce Rate</p><h4 className=\"text-xl font-bold\">42.3%</h4></div>\n <svg className=\"w-16 h-8 stroke-red-500 stroke-2 fill-none\"><polyline points=\"0,20 10,25 20,15 30,20 40,5 50,10 60,0\" /></svg>\n </div>\n)\n\n// 10. MetricGrid\nexport const MetricGrid = () => (\n <div className=\"grid grid-cols-2 gap-2\">\n {[{ l: \"Users\", v: \"1.2k\" }, { l: \"Sessions\", v: \"3.4k\" }, { l: \"Duration\", v: \"2m 14s\" }, { l: \"Issues\", v: \"4\" }].map((m, i) => (\n <div key={i} className=\"bg-card border p-3 rounded-lg text-center\"><p className=\"text-xs text-muted-foreground mb-1\">{m.l}</p><p className=\"font-bold\">{m.v}</p></div>\n ))}\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { CheckCircle2, ChevronRight, Mail, Phone, MapPin } from \"lucide-react\"\n\n// 1. FeatureGridX\nexport const FeatureGridX = () => (\n <div className=\"grid md:grid-cols-3 gap-8 py-12\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"flex flex-col items-center text-center p-6 border rounded-2xl bg-card hover:shadow-lg transition-shadow\">\n <div className=\"w-12 h-12 bg-primary/10 text-primary rounded-xl flex items-center justify-center mb-4\"><CheckCircle2 /></div>\n <h3 className=\"text-xl font-bold mb-2\">Feature {i}</h3>\n <p className=\"text-muted-foreground text-sm\">Amazing feature description that explains the value proposition clearly to the user.</p>\n </div>\n ))}\n </div>\n)\n\n// 2. HeroSectionX\nexport const HeroSectionX = () => (\n <div className=\"text-center py-20 px-4 rounded-3xl bg-gradient-to-br from-primary/5 via-background to-primary/5 border my-12\">\n <span className=\"px-3 py-1 bg-primary/10 text-primary rounded-full text-sm font-medium mb-6 inline-block\">New Version 2.0</span>\n <h1 className=\"text-5xl md:text-7xl font-extrabold tracking-tight mb-6\">Build Faster. <span className=\"text-primary\">Scale Better.</span></h1>\n <p className=\"text-xl text-muted-foreground max-w-2xl mx-auto mb-10\">The ultimate UI kit for modern startups and forward-thinking developers.</p>\n <div className=\"flex justify-center gap-4\">\n <button className=\"px-8 py-4 bg-primary text-primary-foreground font-bold rounded-full shadow-xl hover:scale-105 transition-transform\">Start Building Free</button>\n <button className=\"px-8 py-4 bg-background border font-bold rounded-full hover:bg-muted transition-colors\">Book Demo</button>\n </div>\n </div>\n)\n\n// 3. FaqAccordionX (Visual)\nexport const FaqAccordionX = () => (\n <div className=\"max-w-3xl mx-auto py-12 space-y-4\">\n <h2 className=\"text-3xl font-bold text-center mb-8\">Frequently Asked Questions</h2>\n {[1, 2, 3].map(i => (\n <div key={i} className=\"border rounded-xl p-5 bg-card\">\n <div className=\"flex justify-between items-center font-bold\"><span>Question {i}?</span><ChevronRight className=\"w-5 h-5\" /></div>\n {i === 1 && <p className=\"text-muted-foreground mt-2 text-sm\">Yes, you can use it in commercial projects without attribution.</p>}\n </div>\n ))}\n </div>\n)\n\n// 4. TeamSectionX\nexport const TeamSectionX = () => (\n <div className=\"py-12\">\n <h2 className=\"text-3xl font-bold text-center mb-12\">Meet the Team</h2>\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-8\">\n {[1, 2, 3, 4].map(i => (\n <div key={i} className=\"flex flex-col items-center\">\n <div className=\"w-32 h-32 rounded-full bg-muted mb-4 border-4 border-background shadow-lg\" />\n <h3 className=\"font-bold\">Member {i}</h3>\n <p className=\"text-sm text-primary\">Position</p>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 5. LogoCloudX\nexport const LogoCloudX = () => (\n <div className=\"py-12 border-y bg-muted/30 my-12\">\n <p className=\"text-center text-sm font-medium text-muted-foreground mb-8\">TRUSTED BY INNOVATIVE TEAMS</p>\n <div className=\"flex flex-wrap justify-center gap-12 opacity-50 grayscale\">\n {[1, 2, 3, 4, 5].map(i => <div key={i} className=\"text-xl font-bold uppercase tracking-widest\">Logo{i}</div>)}\n </div>\n </div>\n)\n\n// 6. CTASectionX\nexport const CTASectionX = () => (\n <div className=\"bg-primary text-primary-foreground rounded-3xl p-12 text-center my-12 relative overflow-hidden\">\n <div className=\"absolute top-0 right-0 w-64 h-64 bg-white/10 rounded-full blur-3xl -translate-y-1/2 translate-x-1/2\" />\n <h2 className=\"text-4xl font-bold mb-4 relative z-10\">Ready to transform your workflow?</h2>\n <p className=\"text-lg opacity-90 max-w-2xl mx-auto mb-8 relative z-10\">Join thousands of developers building better applications faster.</p>\n <button className=\"bg-background text-foreground px-8 py-4 rounded-full font-bold relative z-10 hover:scale-105 transition-transform shadow-2xl\">Get Started Now</button>\n </div>\n)\n\n// 7. ContactFormX\nexport const ContactFormX = () => (\n <div className=\"grid md:grid-cols-2 gap-12 py-12\">\n <div>\n <h2 className=\"text-3xl font-bold mb-4\">Get in touch</h2>\n <p className=\"text-muted-foreground mb-8\">Fill out the form and our team will get back to you within 24 hours.</p>\n <div className=\"space-y-4\">\n <div className=\"flex items-center gap-3\"><Mail className=\"text-primary w-5 h-5\" /><span>hello@example.com</span></div>\n <div className=\"flex items-center gap-3\"><Phone className=\"text-primary w-5 h-5\" /><span>+1 (555) 000-0000</span></div>\n <div className=\"flex items-center gap-3\"><MapPin className=\"text-primary w-5 h-5\" /><span>123 Innovation Drive, NY</span></div>\n </div>\n </div>\n <div className=\"bg-card p-6 border rounded-2xl flex flex-col gap-4\">\n <input placeholder=\"Name\" className=\"p-3 bg-background border rounded-lg\" />\n <input placeholder=\"Email\" className=\"p-3 bg-background border rounded-lg\" />\n <textarea placeholder=\"Message\" className=\"p-3 bg-background border rounded-lg h-32\" />\n <button className=\"bg-primary text-primary-foreground p-3 rounded-lg font-bold\">Send Message</button>\n </div>\n </div>\n)\n\n// 8. PricingCardsX\nexport const PricingCardsX = () => (\n <div className=\"grid md:grid-cols-2 gap-8 max-w-4xl mx-auto py-12\">\n <div className=\"p-8 border rounded-3xl bg-card\">\n <h3 className=\"text-2xl font-bold mb-2\">Starter</h3>\n <p className=\"text-muted-foreground mb-6\">Perfect for side projects.</p>\n <div className=\"text-4xl font-bold mb-8\">$0<span className=\"text-lg text-muted-foreground font-normal\">/mo</span></div>\n <button className=\"w-full py-3 bg-muted font-bold rounded-xl mb-6\">Start Free</button>\n <ul className=\"space-y-3 text-sm\"><li>✓ 1 Project</li><li>✓ Basic Support</li></ul>\n </div>\n <div className=\"p-8 border-2 border-primary rounded-3xl bg-primary/5 relative\">\n <span className=\"absolute top-0 right-8 -translate-y-1/2 bg-primary text-primary-foreground text-xs font-bold px-3 py-1 rounded-full\">PRO</span>\n <h3 className=\"text-2xl font-bold mb-2\">Professional</h3>\n <p className=\"text-muted-foreground mb-6\">For serious developers.</p>\n <div className=\"text-4xl font-bold mb-8\">$29<span className=\"text-lg text-muted-foreground font-normal\">/mo</span></div>\n <button className=\"w-full py-3 bg-primary text-primary-foreground font-bold rounded-xl mb-6 shadow-xl\">Subscribe</button>\n <ul className=\"space-y-3 text-sm\"><li>✓ Unlimited Projects</li><li>✓ Priority Support</li><li>✓ Advanced Analytics</li></ul>\n </div>\n </div>\n)\n\n// 9. TestimonialSliderX (Visual)\nexport const TestimonialSliderX = () => (\n <div className=\"py-16 text-center max-w-3xl mx-auto\">\n <div className=\"text-6xl text-primary/20 font-serif mb-4\">\"</div>\n <p className=\"text-2xl md:text-3xl font-medium leading-relaxed mb-8\">This is the best UI library I have ever used. It completely transformed how my team builds web applications.</p>\n <div className=\"flex items-center justify-center gap-4\">\n <div className=\"w-12 h-12 bg-muted rounded-full\" />\n <div className=\"text-left\">\n <div className=\"font-bold\">Sarah Jenkins</div>\n <div className=\"text-sm text-muted-foreground\">CTO at TechFlow</div>\n </div>\n </div>\n <div className=\"flex justify-center gap-2 mt-8\">\n <div className=\"w-2 h-2 bg-primary rounded-full\" /><div className=\"w-2 h-2 bg-muted rounded-full\" /><div className=\"w-2 h-2 bg-muted rounded-full\" />\n </div>\n </div>\n)\n\n// 10. FooterX\nexport const FooterX = () => (\n <footer className=\"border-t pt-16 pb-8 mt-12\">\n <div className=\"grid grid-cols-2 md:grid-cols-4 gap-8 mb-12\">\n <div className=\"col-span-2 md:col-span-1\">\n <div className=\"font-bold text-xl mb-4\">NexoreUI</div>\n <p className=\"text-muted-foreground text-sm\">Building the future of web interfaces, one component at a time.</p>\n </div>\n <div>\n <h4 className=\"font-bold mb-4\">Product</h4>\n <ul className=\"space-y-2 text-sm text-muted-foreground\"><li>Features</li><li>Pricing</li><li>Changelog</li></ul>\n </div>\n <div>\n <h4 className=\"font-bold mb-4\">Resources</h4>\n <ul className=\"space-y-2 text-sm text-muted-foreground\"><li>Documentation</li><li>Blog</li><li>Community</li></ul>\n </div>\n <div>\n <h4 className=\"font-bold mb-4\">Legal</h4>\n <ul className=\"space-y-2 text-sm text-muted-foreground\"><li>Privacy</li><li>Terms</li></ul>\n </div>\n </div>\n <div className=\"text-center text-sm text-muted-foreground border-t pt-8\">© 2026 NexoreUI. All rights reserved.</div>\n </footer>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Lock, Mail, User, EyeOff, Eye, CreditCard, Calendar, Upload, Search } from \"lucide-react\"\n\n// 1. LoginFormPro\nexport const LoginFormPro = () => {\n const [isLoading, setIsLoading] = React.useState(false)\n const [success, setSuccess] = React.useState(false)\n\n const handleSubmit = () => {\n setIsLoading(true)\n setTimeout(() => { setIsLoading(false); setSuccess(true) }, 1500)\n }\n\n return (\n <div className=\"w-full max-w-sm p-6 border rounded-2xl bg-card shadow-lg\">\n <div className=\"text-center mb-6\"><h2 className=\"text-2xl font-bold\">Welcome back</h2><p className=\"text-muted-foreground text-sm\">Enter your credentials to access your account</p></div>\n {success ? (\n <div className=\"p-4 bg-green-500/10 text-green-500 border border-green-500/20 rounded-xl text-center mb-4 font-medium\">Successfully logged in! Redirecting...</div>\n ) : null}\n <div className=\"space-y-4\">\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Email</label><div className=\"relative\"><Mail className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" /><input className=\"w-full pl-9 pr-3 py-2 border rounded-lg bg-background focus:ring-2 focus:ring-primary outline-none\" placeholder=\"m@example.com\" /></div></div>\n <div className=\"space-y-1\"><div className=\"flex justify-between\"><label className=\"text-sm font-medium\">Password</label><a href=\"#\" className=\"text-xs text-primary hover:underline\">Forgot password?</a></div><div className=\"relative\"><Lock className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" /><input type=\"password\" className=\"w-full pl-9 pr-10 py-2 border rounded-lg bg-background focus:ring-2 focus:ring-primary outline-none\" placeholder=\"••••••••\" /><Eye className=\"absolute right-3 top-2.5 h-4 w-4 text-muted-foreground cursor-pointer hover:text-foreground\" /></div></div>\n <button onClick={handleSubmit} disabled={isLoading} className=\"w-full py-2.5 bg-primary text-primary-foreground rounded-lg font-medium hover:bg-primary/90 transition-colors disabled:opacity-70 flex justify-center items-center\">\n {isLoading ? <div className=\"w-5 h-5 border-2 border-primary-foreground border-t-transparent rounded-full animate-spin\" /> : \"Sign In\"}\n </button>\n </div>\n <div className=\"mt-4 text-center text-sm\">Don't have an account? <a href=\"#\" className=\"text-primary hover:underline font-medium\">Sign up</a></div>\n </div>\n )\n}\n\n// 2. RegisterFormPro\nexport const RegisterFormPro = () => (\n <div className=\"w-full max-w-sm p-6 border rounded-2xl bg-card shadow-lg\">\n <div className=\"text-center mb-6\"><h2 className=\"text-2xl font-bold\">Create an account</h2><p className=\"text-muted-foreground text-sm\">Start your 14-day free trial</p></div>\n <div className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">First name</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"Max\" /></div>\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Last name</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"Robinson\" /></div>\n </div>\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Email</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"m@example.com\" /></div>\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Password</label><input type=\"password\" className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"••••••••\" /></div>\n <button className=\"w-full py-2.5 bg-primary text-primary-foreground rounded-lg font-medium hover:bg-primary/90 transition-colors\">Create Account</button>\n </div>\n </div>\n)\n\n// 3. PaymentFormPro\nexport const PaymentFormPro = () => {\n const [method, setMethod] = React.useState('card')\n return (\n <div className=\"w-full max-w-md p-6 border rounded-2xl bg-card\">\n <h3 className=\"text-lg font-bold mb-4\">Payment Method</h3>\n <div className=\"grid grid-cols-3 gap-3 mb-6\">\n <button onClick={() => setMethod('card')} className={`flex flex-col items-center justify-center p-3 border rounded-xl gap-2 hover:bg-muted transition-colors ${method === 'card' ? 'border-primary bg-primary/5 ring-1 ring-primary text-primary' : 'text-muted-foreground'}`}><CreditCard className=\"h-6 w-6\" /><span className=\"text-xs font-medium\">Card</span></button>\n <button onClick={() => setMethod('paypal')} className={`flex flex-col items-center justify-center p-3 border rounded-xl gap-2 hover:bg-muted transition-colors ${method === 'paypal' ? 'border-primary bg-primary/5 ring-1 ring-primary text-primary' : 'text-muted-foreground'}`}><div className=\"font-bold text-lg leading-none\">P</div><span className=\"text-xs font-medium\">PayPal</span></button>\n <button onClick={() => setMethod('apple')} className={`flex flex-col items-center justify-center p-3 border rounded-xl gap-2 hover:bg-muted transition-colors ${method === 'apple' ? 'border-primary bg-primary/5 ring-1 ring-primary text-primary' : 'text-muted-foreground'}`}><div className=\"font-bold text-lg leading-none\"></div><span className=\"text-xs font-medium\">Apple Pay</span></button>\n </div>\n {method === 'card' ? (\n <div className=\"space-y-4\">\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Cardholder Name</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background\" placeholder=\"John Doe\" /></div>\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Card Number</label><div className=\"relative\"><CreditCard className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" /><input className=\"w-full pl-9 pr-3 py-2 border rounded-lg bg-background\" placeholder=\"0000 0000 0000 0000\" /></div></div>\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Expiry Date</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background\" placeholder=\"MM/YY\" /></div>\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">CVC</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background\" placeholder=\"123\" /></div>\n </div>\n </div>\n ) : (\n <div className=\"p-8 text-center border-2 border-dashed rounded-xl bg-muted/10\">\n <p className=\"text-sm text-muted-foreground\">You will be redirected to {method === 'paypal' ? 'PayPal' : 'Apple Pay'} to complete your purchase securely.</p>\n </div>\n )}\n <button className=\"w-full py-2.5 bg-foreground text-background rounded-lg font-medium mt-6\">Pay $99.00</button>\n </div>\n )\n}\n\n// 4. ProfileSettingsForm\nexport const ProfileSettingsForm = () => (\n <div className=\"w-full max-w-md space-y-6\">\n <div className=\"flex items-center gap-6\">\n <div className=\"h-20 w-20 rounded-full bg-muted flex items-center justify-center overflow-hidden border\"><User className=\"h-8 w-8 text-muted-foreground\" /></div>\n <div className=\"flex gap-2\"><button className=\"px-4 py-2 bg-primary text-primary-foreground text-sm font-medium rounded-md\">Change</button><button className=\"px-4 py-2 border text-sm font-medium rounded-md\">Remove</button></div>\n </div>\n <div className=\"space-y-4\">\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Username</label><input className=\"w-full px-3 py-2 border rounded-md\" defaultValue=\"al1mov77\" /></div>\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Bio</label><textarea className=\"w-full px-3 py-2 border rounded-md h-24\" defaultValue=\"Frontend Developer building UI components.\" /></div>\n <button className=\"px-4 py-2 bg-foreground text-background font-medium rounded-md\">Save Changes</button>\n </div>\n </div>\n)\n\n// 5. SubscriptionForm\nexport const SubscriptionForm = () => (\n <div className=\"w-full max-w-sm p-1 border rounded-full bg-muted flex\">\n <input className=\"flex-1 bg-transparent px-4 py-2 outline-none text-sm\" placeholder=\"Enter your email\" />\n <button className=\"px-6 py-2 bg-primary text-primary-foreground rounded-full text-sm font-bold shadow-sm\">Subscribe</button>\n </div>\n)\n\n// 6. ContactFormPro\nexport const ContactFormPro = () => (\n <div className=\"w-full space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-1\"><label className=\"text-sm\">First Name</label><input className=\"w-full p-2 border rounded-md bg-muted/50\" /></div>\n <div className=\"space-y-1\"><label className=\"text-sm\">Last Name</label><input className=\"w-full p-2 border rounded-md bg-muted/50\" /></div>\n </div>\n <div className=\"space-y-1\"><label className=\"text-sm\">Email</label><input className=\"w-full p-2 border rounded-md bg-muted/50\" /></div>\n <div className=\"space-y-1\"><label className=\"text-sm\">Message</label><textarea className=\"w-full p-2 border rounded-md bg-muted/50 h-32\" /></div>\n <button className=\"w-full py-3 bg-primary text-primary-foreground font-bold rounded-md\">Send Message</button>\n </div>\n)\n\n// 7. AdvancedSearchForm\nexport const AdvancedSearchForm = () => (\n <div className=\"w-full max-w-2xl bg-card border rounded-xl shadow-lg p-2 flex items-center gap-2\">\n <div className=\"flex-1 flex items-center px-3 border-r\"><Search className=\"h-5 w-5 text-muted-foreground mr-2\" /><input className=\"w-full py-2 bg-transparent outline-none\" placeholder=\"Search properties...\" /></div>\n <div className=\"w-48 px-3 border-r\"><select className=\"w-full bg-transparent py-2 outline-none text-sm\"><option>All Categories</option><option>Houses</option><option>Apartments</option></select></div>\n <div className=\"w-32 px-3\"><select className=\"w-full bg-transparent py-2 outline-none text-sm\"><option>Any Price</option><option>$100k - $500k</option></select></div>\n <button className=\"px-6 py-2.5 bg-primary text-primary-foreground font-bold rounded-lg shrink-0\">Search</button>\n </div>\n)\n\n// 8. FileUploadForm\nexport const FileUploadForm = () => {\n const inputRef = React.useRef<HTMLInputElement>(null)\n const [files, setFiles] = React.useState<File[]>([])\n\n return (\n <div className=\"w-full p-6 border-2 border-dashed rounded-xl bg-muted/10 hover:bg-muted/30 transition-colors\">\n <input type=\"file\" multiple className=\"hidden\" ref={inputRef} onChange={(e) => {\n if(e.target.files) setFiles(Array.from(e.target.files))\n }} />\n <div onClick={() => inputRef.current?.click()} className=\"flex flex-col items-center justify-center text-center cursor-pointer\">\n <div className=\"h-12 w-12 rounded-full bg-primary/10 text-primary flex items-center justify-center mb-4\"><Upload className=\"h-6 w-6\" /></div>\n <h3 className=\"font-semibold mb-1\">Click to upload or drag and drop</h3>\n <p className=\"text-sm text-muted-foreground mb-4\">SVG, PNG, JPG or GIF (max. 800x400px)</p>\n </div>\n {files.length > 0 && (\n <div className=\"mt-4 space-y-2 border-t pt-4\">\n <p className=\"text-sm font-bold\">Selected Files:</p>\n {files.map((f, i) => (\n <div key={i} className=\"text-xs p-2 bg-background border rounded flex justify-between\">\n <span className=\"truncate\">{f.name}</span>\n <span className=\"text-muted-foreground\">{(f.size / 1024).toFixed(1)} KB</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n\n// 9. FeedbackForm\nexport const FeedbackForm = () => (\n <div className=\"w-full max-w-sm p-6 border rounded-xl bg-card space-y-4 text-center\">\n <h3 className=\"font-bold text-lg\">How was your experience?</h3>\n <div className=\"flex justify-center gap-2\">\n {['😡', '😕', '😐', '🙂', '😍'].map((emoji, i) => <button key={i} className=\"text-3xl hover:scale-125 transition-transform opacity-70 hover:opacity-100\">{emoji}</button>)}\n </div>\n <textarea className=\"w-full p-3 border rounded-md text-sm mt-4 resize-none h-20\" placeholder=\"Tell us more (optional)\" />\n <button className=\"w-full py-2 bg-primary text-primary-foreground font-medium rounded-md\">Submit Feedback</button>\n </div>\n)\n\n// 10. InviteUsersForm\nexport const InviteUsersForm = () => (\n <div className=\"w-full border rounded-xl bg-card p-4 space-y-4\">\n <div className=\"flex gap-2\">\n <input className=\"flex-1 p-2 border rounded-md text-sm\" placeholder=\"Email address\" />\n <select className=\"p-2 border rounded-md text-sm bg-background\"><option>Member</option><option>Admin</option></select>\n <button className=\"px-4 py-2 bg-secondary text-secondary-foreground font-medium rounded-md text-sm\">Send Invite</button>\n </div>\n <div className=\"border-t pt-4 space-y-3\">\n <h4 className=\"text-sm font-semibold\">Pending Invites</h4>\n <div className=\"flex justify-between items-center text-sm\"><span className=\"text-muted-foreground\">john@example.com</span><span className=\"px-2 py-1 bg-muted rounded text-xs\">Member</span></div>\n </div>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Star, Minus, Plus, Trash2, ShoppingBag, ArrowRight, Lock } from \"lucide-react\"\n\nexport const ProductGallery = () => {\n const [active, setActive] = React.useState(1)\n return (\n <div className=\"flex flex-col md:flex-row gap-4 w-full\">\n <div className=\"flex flex-row md:flex-col gap-2 order-2 md:order-1\">\n {[1, 2, 3, 4].map(i => (\n <div key={i} onClick={() => setActive(i)} className={`w-16 h-16 md:w-20 md:h-24 bg-muted rounded-lg border-2 transition-all ${i === active ? 'border-primary ring-2 ring-primary/20 scale-105' : 'border-transparent cursor-pointer hover:border-foreground/20'}`} />\n ))}\n </div>\n <div className=\"flex-1 bg-muted rounded-2xl aspect-[4/3] flex items-center justify-center text-muted-foreground order-1 md:order-2 overflow-hidden relative\">\n <div className=\"absolute inset-0 bg-gradient-to-tr from-background/10 to-transparent\" />\n <span className=\"font-medium\">Product View {active}</span>\n </div>\n </div>\n )\n}\n\nexport const AddToCartBar = () => {\n const [qty, setQty] = React.useState(1)\n return (\n <div className=\"flex items-center gap-4 w-full p-4 border rounded-2xl bg-card shadow-lg sticky bottom-4 z-10 max-w-2xl mx-auto\">\n <div><p className=\"text-sm text-muted-foreground\">Total Price</p><h3 className=\"text-2xl font-bold\">${(qty * 129).toFixed(2)}</h3></div>\n <div className=\"flex-1\"></div>\n <div className=\"flex items-center border rounded-lg h-12 overflow-hidden bg-background\">\n <button onClick={() => setQty(Math.max(1, qty - 1))} className=\"px-4 hover:bg-muted h-full transition-colors\">-</button>\n <span className=\"px-4 font-bold min-w-[2.5rem] text-center\">{qty}</span>\n <button onClick={() => setQty(qty + 1)} className=\"px-4 hover:bg-muted h-full transition-colors\">+</button>\n </div>\n <button className=\"px-6 md:px-8 h-12 bg-primary text-primary-foreground font-bold rounded-lg flex items-center gap-2 hover:bg-primary/90 transition-all shadow-md hover:shadow-lg\"><ShoppingBag className=\"w-5 h-5\" /> <span className=\"hidden md:inline\">Add to Cart</span></button>\n </div>\n )\n}\n\nexport const CartDrawerItem = () => {\n const [qty, setQty] = React.useState(1)\n const [visible, setVisible] = React.useState(true)\n \n if (!visible) return null;\n\n return (\n <div className=\"flex gap-4 py-4 border-b\">\n <div className=\"w-20 h-20 bg-muted rounded-xl border\" />\n <div className=\"flex-1 flex flex-col\">\n <div className=\"flex justify-between\"><h4 className=\"font-bold text-sm md:text-base\">Premium Wireless Headphones</h4><button onClick={() => setVisible(false)} className=\"text-muted-foreground hover:text-destructive transition-colors p-1\"><Trash2 className=\"w-4 h-4\" /></button></div>\n <p className=\"text-sm text-muted-foreground mb-auto\">Matte Black</p>\n <div className=\"flex justify-between items-center mt-3\">\n <div className=\"flex items-center border rounded-lg overflow-hidden h-8 bg-background\">\n <button onClick={() => setQty(Math.max(1, qty - 1))} className=\"px-3 hover:bg-muted transition-colors\">-</button>\n <span className=\"px-3 text-sm font-bold min-w-[2rem] text-center\">{qty}</span>\n <button onClick={() => setQty(qty + 1)} className=\"px-3 hover:bg-muted transition-colors\">+</button>\n </div>\n <span className=\"font-bold text-lg\">${(qty * 299).toFixed(2)}</span>\n </div>\n </div>\n </div>\n )\n}\n\nexport const OrderSummaryCard = () => (\n <div className=\"p-6 bg-card border rounded-2xl shadow-sm space-y-4\">\n <h3 className=\"font-bold text-xl border-b pb-4\">Order Summary</h3>\n <div className=\"space-y-3 text-sm\">\n <div className=\"flex justify-between font-medium\"><span className=\"text-muted-foreground\">Subtotal</span><span>$129.00</span></div>\n <div className=\"flex justify-between font-medium\"><span className=\"text-muted-foreground\">Shipping</span><span>$10.00</span></div>\n <div className=\"flex justify-between font-medium\"><span className=\"text-muted-foreground\">Tax</span><span>$6.45</span></div>\n </div>\n <div className=\"border-t pt-4 flex justify-between font-black text-xl\"><span>Total</span><span>$145.45</span></div>\n <button className=\"w-full py-3.5 bg-primary text-primary-foreground font-bold rounded-xl mt-4 flex justify-center items-center gap-2 hover:bg-primary/90 transition-colors shadow-md hover:shadow-lg hover:-translate-y-0.5\">Checkout <ArrowRight className=\"w-4 h-4\" /></button>\n <div className=\"flex items-center justify-center gap-2 mt-4 text-muted-foreground opacity-50\">\n <Lock className=\"w-3 h-3\" /> <span className=\"text-xs font-medium\">Secure Checkout</span>\n </div>\n </div>\n)\n\n// 5. PromoCodeInput\nexport const PromoCodeInput = () => (\n <div className=\"flex gap-2\">\n <input className=\"flex-1 px-4 py-2 border rounded-md text-sm\" placeholder=\"Discount code\" />\n <button className=\"px-6 py-2 bg-secondary text-secondary-foreground font-medium rounded-md text-sm\">Apply</button>\n </div>\n)\n\n// 6. ShippingAddressForm\nexport const ShippingAddressForm = () => (\n <div className=\"space-y-4\">\n <h3 className=\"font-bold text-lg mb-2\">Shipping Information</h3>\n <div className=\"grid grid-cols-2 gap-4\">\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"First Name\" />\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"Last Name\" />\n </div>\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"Address\" />\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"Apartment, suite, etc. (optional)\" />\n <div className=\"grid grid-cols-3 gap-4\">\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"City\" />\n <select className=\"p-2 border rounded-md w-full bg-background\"><option>State</option></select>\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"ZIP code\" />\n </div>\n </div>\n)\n\n// 7. ProductReview\nexport const ProductReview = () => (\n <div className=\"py-6 border-b\">\n <div className=\"flex justify-between mb-2\">\n <div className=\"font-semibold\">Alex Johnson</div>\n <div className=\"text-sm text-muted-foreground\">October 12, 2025</div>\n </div>\n <div className=\"flex text-yellow-400 mb-3\">{[1, 2, 3, 4, 5].map(i => <Star key={i} className=\"w-4 h-4 fill-current\" />)}</div>\n <h4 className=\"font-bold mb-1\">Incredible sound quality!</h4>\n <p className=\"text-muted-foreground text-sm leading-relaxed\">I've been using these for a month and they are absolutely fantastic. The noise cancellation is top tier and battery life is exactly as advertised.</p>\n </div>\n)\n\n// 8. ColorSelector\nexport const ColorSelector = () => (\n <div>\n <h4 className=\"text-sm font-medium mb-3\">Color - <span className=\"text-muted-foreground\">Matte Black</span></h4>\n <div className=\"flex gap-3\">\n {['bg-black', 'bg-gray-300', 'bg-blue-900', 'bg-red-700'].map((color, i) => (\n <button key={i} className={`w-10 h-10 rounded-full ${color} ring-offset-2 ${i === 0 ? 'ring-2 ring-primary' : 'ring-1 ring-border'}`} />\n ))}\n </div>\n </div>\n)\n\n// 9. SizeSelector\nexport const SizeSelector = () => (\n <div>\n <div className=\"flex justify-between items-end mb-3\">\n <h4 className=\"text-sm font-medium\">Size</h4>\n <a href=\"#\" className=\"text-xs text-primary hover:underline\">Size guide</a>\n </div>\n <div className=\"grid grid-cols-4 gap-2\">\n {['S', 'M', 'L', 'XL'].map((size, i) => (\n <button key={i} className={`py-2 border rounded-md font-medium transition-colors ${i === 1 ? 'border-primary bg-primary/5 text-primary' : 'hover:border-foreground'}`}>{size}</button>\n ))}\n </div>\n </div>\n)\n\n// 10. CategoryCard\nexport const CategoryCard = () => (\n <div className=\"relative group overflow-hidden rounded-2xl cursor-pointer aspect-square bg-muted flex items-center justify-center\">\n <div className=\"absolute inset-0 bg-black/20 group-hover:bg-black/40 transition-colors z-10\" />\n <div className=\"absolute inset-0 scale-100 group-hover:scale-110 transition-transform duration-500 bg-gradient-to-tr from-indigo-500 to-purple-500 opacity-50\" />\n <div className=\"relative z-20 text-white text-center\">\n <h3 className=\"text-3xl font-bold mb-2\">Sneakers</h3>\n <div className=\"flex items-center gap-1 text-sm font-medium justify-center group-hover:gap-2 transition-all\">Shop Now <ArrowRight className=\"w-4 h-4\" /></div>\n </div>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { Sparkles, Send, Mic, Copy, Check, Bot, User, Settings, FileText, ChevronDown, RefreshCw, Plus } from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\n\n// 1. ChatBubbleUser\nexport const ChatBubbleUser = ({ message }: any) => (\n <div className=\"flex gap-4 justify-end mb-6\">\n <div className=\"bg-primary text-primary-foreground px-5 py-3 rounded-2xl rounded-tr-sm max-w-[80%] shadow-sm\">\n <p className=\"leading-relaxed\">{message || \"How do I build a Next.js application with Tailwind CSS?\"}</p>\n </div>\n <div className=\"w-8 h-8 rounded-full bg-muted flex items-center justify-center shrink-0 border\"><User className=\"w-4 h-4\" /></div>\n </div>\n)\n\n// 2. ChatBubbleAI\nexport const ChatBubbleAI = ({ message }: any) => (\n <div className=\"flex gap-4 mb-6\">\n <div className=\"w-8 h-8 rounded-full bg-primary/10 text-primary flex items-center justify-center shrink-0 border border-primary/20\"><Bot className=\"w-4 h-4\" /></div>\n <div className=\"bg-muted/50 px-5 py-3 rounded-2xl rounded-tl-sm max-w-[80%] border border-border/50\">\n <p className=\"leading-relaxed text-foreground\">{message || \"You can start by running npx create-next-app@latest and selecting Tailwind CSS during the setup process.\"}</p>\n <div className=\"flex gap-2 mt-3 pt-3 border-t border-border/50\">\n <button className=\"text-muted-foreground hover:text-foreground\"><Copy className=\"w-4 h-4\" /></button>\n <button className=\"text-muted-foreground hover:text-foreground\"><RefreshCw className=\"w-4 h-4\" /></button>\n </div>\n </div>\n </div>\n)\n\n// 3. AIPromptInput\nexport const AIPromptInput = () => (\n <div className=\"w-full relative border rounded-2xl bg-card shadow-lg flex items-end p-2 focus-within:ring-2 focus-within:ring-primary/50 transition-shadow\">\n <button className=\"p-3 text-muted-foreground hover:text-foreground\"><Mic className=\"w-5 h-5\" /></button>\n <textarea className=\"flex-1 max-h-32 min-h-[44px] py-3 bg-transparent outline-none resize-none placeholder:text-muted-foreground\" placeholder=\"Ask anything...\" rows={1} />\n <button className=\"p-3 bg-primary text-primary-foreground rounded-xl shadow-sm hover:opacity-90\"><Send className=\"w-5 h-5\" /></button>\n </div>\n)\n\n// 4. ThinkingLoader\nexport const ThinkingLoader = () => (\n <div className=\"flex gap-4 mb-6\">\n <div className=\"w-8 h-8 rounded-full bg-primary/10 text-primary flex items-center justify-center shrink-0 border border-primary/20\"><Bot className=\"w-4 h-4\" /></div>\n <div className=\"bg-muted/50 px-5 py-4 rounded-2xl rounded-tl-sm border border-border/50 flex items-center gap-1.5\">\n <motion.div animate={{ opacity: [0.3, 1, 0.3] }} transition={{ repeat: Infinity, duration: 1.4, delay: 0 }} className=\"w-2 h-2 rounded-full bg-foreground\" />\n <motion.div animate={{ opacity: [0.3, 1, 0.3] }} transition={{ repeat: Infinity, duration: 1.4, delay: 0.2 }} className=\"w-2 h-2 rounded-full bg-foreground\" />\n <motion.div animate={{ opacity: [0.3, 1, 0.3] }} transition={{ repeat: Infinity, duration: 1.4, delay: 0.4 }} className=\"w-2 h-2 rounded-full bg-foreground\" />\n </div>\n </div>\n)\n\n// 5. ModelSelector\nexport const ModelSelector = () => (\n <div className=\"inline-flex items-center gap-2 px-3 py-1.5 bg-muted rounded-lg border cursor-pointer hover:bg-muted/80 transition-colors\">\n <Sparkles className=\"w-4 h-4 text-primary\" />\n <span className=\"text-sm font-medium\">GPT-4 Turbo</span>\n <ChevronDown className=\"w-4 h-4 text-muted-foreground ml-2\" />\n </div>\n)\n\n// 6. GeneratedCodeBlock\nexport const GeneratedCodeBlock = () => (\n <div className=\"rounded-xl border border-border bg-zinc-950 overflow-hidden my-4 max-w-2xl\">\n <div className=\"flex items-center justify-between px-4 py-2 border-b border-white/10 bg-white/5\">\n <span className=\"text-xs text-zinc-400 font-mono\">tsx</span>\n <button className=\"flex items-center gap-1 text-xs text-zinc-400 hover:text-white\"><Copy className=\"w-3 h-3\" /> Copy code</button>\n </div>\n <pre className=\"p-4 text-sm text-zinc-300 font-mono overflow-x-auto\">\n <code>{`export default function App() {\\n return (\\n <div className=\"p-4\">\\n <h1 className=\"text-2xl font-bold\">Hello World</h1>\\n </div>\\n );\\n}`}</code>\n </pre>\n </div>\n)\n\n// 7. ChatHistorySidebar\nexport const ChatHistorySidebar = () => (\n <div className=\"w-64 h-full border-r bg-background p-4 flex flex-col\">\n <button className=\"w-full py-2 bg-primary text-primary-foreground rounded-lg font-medium mb-6 text-sm flex items-center justify-center gap-2\"><Plus className=\"w-4 h-4\" /> New Chat</button>\n <div className=\"text-xs font-semibold text-muted-foreground mb-3 px-2\">Today</div>\n <div className=\"space-y-1\">\n <button className=\"w-full text-left px-3 py-2 text-sm bg-muted rounded-md font-medium truncate flex items-center gap-2\"><FileText className=\"w-4 h-4 text-muted-foreground shrink-0\" /> React State Management</button>\n <button className=\"w-full text-left px-3 py-2 text-sm text-muted-foreground hover:bg-muted/50 rounded-md truncate flex items-center gap-2\"><FileText className=\"w-4 h-4 shrink-0\" /> Tailwind Layouts</button>\n </div>\n </div>\n)\n\n// 8. AIFeatureCard\nexport const AIFeatureCard = () => (\n <div className=\"p-6 rounded-2xl border bg-card relative overflow-hidden group cursor-pointer hover:border-primary/50 transition-colors\">\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-primary/10 rounded-full blur-2xl -translate-y-1/2 translate-x-1/2 group-hover:bg-primary/20 transition-colors\" />\n <div className=\"w-12 h-12 bg-primary/10 text-primary rounded-xl flex items-center justify-center mb-4 relative z-10\"><Sparkles className=\"w-6 h-6\" /></div>\n <h3 className=\"text-xl font-bold mb-2 relative z-10\">Smart Autocomplete</h3>\n <p className=\"text-sm text-muted-foreground relative z-10\">Let AI predict and complete your code in real-time as you type.</p>\n </div>\n)\n\n// 9. SuggestionChips\nexport const SuggestionChips = () => (\n <div className=\"flex flex-wrap gap-2\">\n {[\"Explain this code\", \"Refactor for performance\", \"Add type definitions\"].map((text, i) => (\n <button key={i} className=\"px-4 py-2 rounded-full border bg-background text-sm text-muted-foreground hover:text-foreground hover:border-primary/50 transition-colors\">{text}</button>\n ))}\n </div>\n)\n\n// 10. VoiceInputPulse\nexport const VoiceInputPulse = () => (\n <div className=\"flex items-center justify-center w-24 h-24 relative\">\n <motion.div animate={{ scale: [1, 1.5, 1], opacity: [0.5, 0, 0.5] }} transition={{ repeat: Infinity, duration: 2 }} className=\"absolute inset-0 rounded-full bg-red-500/20\" />\n <motion.div animate={{ scale: [1, 1.2, 1], opacity: [0.8, 0.2, 0.8] }} transition={{ repeat: Infinity, duration: 2, delay: 0.2 }} className=\"absolute inset-2 rounded-full bg-red-500/30\" />\n <button className=\"w-16 h-16 rounded-full bg-red-500 text-white flex items-center justify-center relative z-10 shadow-xl\"><Mic className=\"w-6 h-6\" /></button>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { MoreHorizontal, ArrowUpDown, Download, Edit2, Trash2, CheckCircle2, XCircle } from \"lucide-react\"\n\n// 1. DataTablePro\nexport const DataTablePro = () => {\n const [data, setData] = React.useState([\n { id: 1, name: \"Alice Freeman\", role: \"Admin\", status: \"Active\" },\n { id: 2, name: \"Bob Smith\", role: \"Editor\", status: \"Inactive\" },\n { id: 3, name: \"Charlie Davis\", role: \"Viewer\", status: \"Active\" },\n { id: 4, name: \"Diana Prince\", role: \"Admin\", status: \"Active\" },\n { id: 5, name: \"Evan Wright\", role: \"User\", status: \"Inactive\" },\n { id: 6, name: \"Fiona Gallagher\", role: \"Viewer\", status: \"Active\" }\n ])\n const [search, setSearch] = React.useState(\"\")\n const [page, setPage] = React.useState(1)\n const [editingId, setEditingId] = React.useState<number | null>(null)\n const [editName, setEditName] = React.useState(\"\")\n const itemsPerPage = 3\n\n const handleDelete = (id: number) => {\n setData(data.filter(item => item.id !== id))\n }\n\n const handleEdit = (id: number, name: string) => {\n setEditingId(id)\n setEditName(name)\n }\n\n const saveEdit = (id: number) => {\n setData(data.map(item => item.id === id ? { ...item, name: editName } : item))\n setEditingId(null)\n }\n\n const filteredData = data.filter(item => item.name.toLowerCase().includes(search.toLowerCase()))\n const totalPages = Math.ceil(filteredData.length / itemsPerPage)\n const paginatedData = filteredData.slice((page - 1) * itemsPerPage, page * itemsPerPage)\n\n return (\n <div className=\"w-full border rounded-xl bg-card overflow-hidden\">\n <div className=\"flex justify-between items-center p-4 border-b\">\n <input \n className=\"px-3 py-1.5 border rounded-md text-sm w-64 bg-background\" \n placeholder=\"Search by name...\" \n value={search}\n onChange={(e) => setSearch(e.target.value)}\n />\n <button className=\"px-4 py-1.5 bg-primary text-primary-foreground text-sm font-medium rounded-md hover:bg-primary/90\">Export</button>\n </div>\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm text-left\">\n <thead className=\"bg-muted/50 text-muted-foreground uppercase text-xs border-b\">\n <tr>\n <th className=\"px-4 py-3 cursor-pointer hover:text-foreground\">Name <ArrowUpDown className=\"w-3 h-3 inline ml-1\" /></th>\n <th className=\"px-4 py-3\">Role</th>\n <th className=\"px-4 py-3\">Status</th>\n <th className=\"px-4 py-3 text-right\">Actions</th>\n </tr>\n </thead>\n <tbody className=\"divide-y\">\n {paginatedData.length > 0 ? paginatedData.map(item => (\n <tr key={item.id} className=\"hover:bg-muted/30\">\n <td className=\"px-4 py-3 font-medium\">\n {editingId === item.id ? (\n <input autoFocus value={editName} onChange={(e) => setEditName(e.target.value)} className=\"w-full px-2 py-1 border rounded bg-background\" />\n ) : item.name}\n </td>\n <td className=\"px-4 py-3 text-muted-foreground\">{item.role}</td>\n <td className=\"px-4 py-3\">\n <span className={`px-2 py-1 rounded-full text-xs font-medium ${item.status === 'Active' ? 'bg-green-500/10 text-green-500' : 'bg-red-500/10 text-red-500'}`}>\n {item.status}\n </span>\n </td>\n <td className=\"px-4 py-3 text-right flex justify-end gap-2\">\n {editingId === item.id ? (\n <button onClick={() => saveEdit(item.id)} className=\"px-2 py-1 bg-green-500/10 text-green-500 rounded text-xs font-medium\">Save</button>\n ) : (\n <button onClick={() => handleEdit(item.id, item.name)} className=\"p-1.5 hover:bg-muted rounded text-muted-foreground\"><Edit2 className=\"w-4 h-4\" /></button>\n )}\n <button onClick={() => handleDelete(item.id)} className=\"p-1.5 hover:bg-destructive/10 rounded text-destructive\"><Trash2 className=\"w-4 h-4\" /></button>\n </td>\n </tr>\n )) : (\n <tr><td colSpan={4} className=\"text-center py-6 text-muted-foreground\">No users found.</td></tr>\n )}\n </tbody>\n </table>\n </div>\n <div className=\"p-4 border-t text-sm text-muted-foreground flex justify-between items-center\">\n <span>Showing {paginatedData.length} of {filteredData.length} entries</span>\n <div className=\"flex gap-1\">\n <button disabled={page === 1} onClick={() => setPage(page - 1)} className=\"px-3 py-1 border rounded hover:bg-muted disabled:opacity-50\">Prev</button>\n <span className=\"px-3 py-1 font-medium\">{page} / {Math.max(1, totalPages)}</span>\n <button disabled={page === totalPages || totalPages === 0} onClick={() => setPage(page + 1)} className=\"px-3 py-1 border rounded hover:bg-muted disabled:opacity-50\">Next</button>\n </div>\n </div>\n </div>\n )\n}\n\n// 2. InvoiceTable\nexport const InvoiceTable = () => (\n <div className=\"w-full border rounded-xl bg-card overflow-hidden\">\n <table className=\"w-full text-sm text-left\">\n <thead className=\"bg-muted/50 text-muted-foreground border-b\">\n <tr><th className=\"px-6 py-4 font-semibold\">Invoice ID</th><th className=\"px-6 py-4 font-semibold\">Date</th><th className=\"px-6 py-4 font-semibold\">Amount</th><th className=\"px-6 py-4 font-semibold text-right\">Download</th></tr>\n </thead>\n <tbody className=\"divide-y\">\n {['INV-001', 'INV-002'].map((inv, i) => (\n <tr key={i} className=\"hover:bg-muted/30\">\n <td className=\"px-6 py-4 font-medium\">{inv}</td><td className=\"px-6 py-4 text-muted-foreground\">Oct 24, 2025</td><td className=\"px-6 py-4 font-bold\">${(i+1)*150}.00</td>\n <td className=\"px-6 py-4 text-right\"><button className=\"p-2 text-primary hover:bg-primary/10 rounded-full transition-colors\"><Download className=\"w-4 h-4\" /></button></td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n)\n\n// 3. UserDirectoryTable\nexport const UserDirectoryTable = () => (\n <div className=\"w-full grid gap-4\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"flex items-center justify-between p-4 border rounded-xl bg-card hover:border-primary transition-colors cursor-pointer\">\n <div className=\"flex items-center gap-4\">\n <div className=\"w-12 h-12 rounded-full bg-muted\" />\n <div><h4 className=\"font-bold\">John Doe {i}</h4><p className=\"text-sm text-muted-foreground\">Software Engineer</p></div>\n </div>\n <div className=\"flex gap-2\">\n <button className=\"p-2 border rounded-md hover:bg-muted\"><Edit2 className=\"w-4 h-4\" /></button>\n <button className=\"p-2 border rounded-md text-destructive hover:bg-destructive/10\"><Trash2 className=\"w-4 h-4\" /></button>\n </div>\n </div>\n ))}\n </div>\n)\n\n// 4. TransactionHistory\nexport const TransactionHistory = () => (\n <div className=\"w-full border rounded-xl bg-card\">\n <div className=\"p-4 border-b font-bold text-lg\">Recent Transactions</div>\n <div className=\"divide-y\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"flex items-center justify-between p-4\">\n <div className=\"flex items-center gap-3\">\n <div className={`w-10 h-10 rounded-full flex items-center justify-center ${i % 2 === 0 ? 'bg-green-500/10 text-green-500' : 'bg-red-500/10 text-red-500'}`}>\n {i % 2 === 0 ? <ArrowUpDown className=\"w-5 h-5\" /> : <ArrowUpDown className=\"w-5 h-5 rotate-180\" />}\n </div>\n <div><p className=\"font-medium\">{i % 2 === 0 ? 'Payment Received' : 'Subscription Auto-renew'}</p><p className=\"text-xs text-muted-foreground\">Today, 10:23 AM</p></div>\n </div>\n <div className={`font-bold ${i % 2 === 0 ? 'text-green-500' : 'text-foreground'}`}>{i % 2 === 0 ? '+' : '-'}${i * 45}.00</div>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 5. FileExplorerTable (Mock)\nexport const FileExplorerTable = () => (\n <div className=\"w-full border rounded-xl bg-card text-sm\">\n <div className=\"grid grid-cols-12 px-4 py-3 bg-muted/50 border-b font-medium text-muted-foreground\"><div className=\"col-span-6\">Name</div><div className=\"col-span-3\">Date Modified</div><div className=\"col-span-3\">Size</div></div>\n <div className=\"divide-y\">\n <div className=\"grid grid-cols-12 px-4 py-3 items-center hover:bg-muted/30 cursor-pointer\"><div className=\"col-span-6 flex items-center gap-2 font-medium\">📁 Documents</div><div className=\"col-span-3 text-muted-foreground\">Oct 12</div><div className=\"col-span-3 text-muted-foreground\">--</div></div>\n <div className=\"grid grid-cols-12 px-4 py-3 items-center hover:bg-muted/30 cursor-pointer\"><div className=\"col-span-6 flex items-center gap-2 font-medium\">📄 report.pdf</div><div className=\"col-span-3 text-muted-foreground\">Oct 10</div><div className=\"col-span-3 text-muted-foreground\">2.4 MB</div></div>\n </div>\n </div>\n)\n\n// 6. LeaderboardTable\nexport const LeaderboardTable = () => (\n <div className=\"w-full border rounded-2xl bg-gradient-to-b from-card to-muted/20 overflow-hidden shadow-lg\">\n <div className=\"p-6 text-center border-b\"><h3 className=\"font-bold text-xl uppercase tracking-widest text-yellow-500\">Global Ranking</h3></div>\n <div className=\"divide-y\">\n {[1, 2, 3].map(i => (\n <div key={i} className={`flex items-center px-6 py-4 ${i === 1 ? 'bg-yellow-500/10' : ''}`}>\n <div className={`font-black text-2xl w-8 ${i===1?'text-yellow-500': i===2?'text-gray-400': 'text-amber-700'}`}>#{i}</div>\n <div className=\"w-10 h-10 rounded-full bg-muted mx-4\" />\n <div className=\"flex-1 font-bold text-lg\">Player {i}</div>\n <div className=\"font-mono font-bold text-primary\">{10000 - i*500} pts</div>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 7. ProductInventoryTable\nexport const ProductInventoryTable = () => (\n <div className=\"w-full border rounded-xl bg-card overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead className=\"bg-muted/50 border-b text-left text-muted-foreground\">\n <tr><th className=\"px-4 py-3 font-medium\">Product</th><th className=\"px-4 py-3 font-medium\">SKU</th><th className=\"px-4 py-3 font-medium\">Stock</th><th className=\"px-4 py-3 font-medium\">Price</th></tr>\n </thead>\n <tbody className=\"divide-y\">\n {[1, 2].map(i => (\n <tr key={i}>\n <td className=\"px-4 py-3 flex items-center gap-3\"><div className=\"w-8 h-8 bg-muted rounded\" /><span className=\"font-medium\">Item {i}</span></td>\n <td className=\"px-4 py-3 text-muted-foreground\">SKU-{i}000</td>\n <td className=\"px-4 py-3\"><div className=\"flex items-center gap-2\"><div className={`w-2 h-2 rounded-full ${i===1?'bg-green-500':'bg-red-500'}`}/> {i===1?'145 in stock':'Out of stock'}</div></td>\n <td className=\"px-4 py-3 font-medium\">$49.99</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n)\n\n// 8. ScheduleTable\nexport const ScheduleTable = () => (\n <div className=\"w-full border rounded-xl bg-card overflow-hidden\">\n <div className=\"grid grid-cols-6 divide-x border-b bg-muted/50 text-center text-xs font-semibold py-2\">\n <div>Time</div><div>Mon</div><div>Tue</div><div>Wed</div><div>Thu</div><div>Fri</div>\n </div>\n <div className=\"grid grid-cols-6 divide-x border-b text-center text-sm h-16\">\n <div className=\"flex items-center justify-center font-medium text-muted-foreground border-r\">09:00</div>\n <div className=\"col-span-2 bg-primary/10 text-primary p-2 m-1 rounded border border-primary/20 text-xs text-left font-medium\">Team Meeting</div>\n <div className=\"col-span-1\"></div>\n <div className=\"col-span-1 bg-indigo-500/10 text-indigo-500 p-2 m-1 rounded border border-indigo-500/20 text-xs text-left font-medium\">Design Sync</div>\n <div className=\"col-span-1\"></div>\n </div>\n </div>\n)\n\n// 9. PricingComparisonTable\nexport const PricingComparisonTable = () => (\n <div className=\"w-full border rounded-xl bg-card overflow-hidden\">\n <table className=\"w-full text-sm text-center\">\n <thead className=\"bg-muted/30 border-b\">\n <tr><th className=\"p-4 text-left\">Features</th><th className=\"p-4 font-bold text-lg\">Basic</th><th className=\"p-4 font-bold text-lg text-primary\">Pro</th></tr>\n </thead>\n <tbody className=\"divide-y\">\n {['Unlimited Projects', 'Custom Domain', '24/7 Support'].map((f, i) => (\n <tr key={i} className=\"hover:bg-muted/10\">\n <td className=\"p-4 text-left font-medium\">{f}</td>\n <td className=\"p-4\">{i < 1 ? <CheckCircle2 className=\"w-5 h-5 mx-auto text-green-500\" /> : <XCircle className=\"w-5 h-5 mx-auto text-muted-foreground/30\" />}</td>\n <td className=\"p-4\"><CheckCircle2 className=\"w-5 h-5 mx-auto text-primary\" /></td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n)\n\n// 10. CompactDataList\nexport const CompactDataList = () => (\n <div className=\"w-full border rounded-lg bg-card divide-y text-sm\">\n {['Server CPU Usage', 'Active Connections', 'Memory Load'].map((l, i) => (\n <div key={i} className=\"flex justify-between items-center p-3 hover:bg-muted/50 cursor-pointer\">\n <span className=\"text-muted-foreground font-medium\">{l}</span>\n <span className=\"font-bold\">{90 - i*15}%</span>\n </div>\n ))}\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Activity, Users, DollarSign, ArrowUpRight, CheckCircle2, HardDrive, Server, Zap, Plus, FileText, Settings } from \"lucide-react\"\n\n// 1. DashboardShell (Visual structure)\nexport const DashboardShell = ({ children }: any) => (\n <div className=\"flex h-[400px] w-full border rounded-xl overflow-hidden bg-background\">\n <div className=\"w-48 border-r bg-muted/20 p-4 flex flex-col gap-2\">\n <div className=\"w-full h-8 bg-muted rounded mb-4\" />\n {[1, 2, 3].map(i => <div key={i} className=\"w-full h-6 bg-muted/50 rounded\" />)}\n </div>\n <div className=\"flex-1 flex flex-col\">\n <div className=\"h-12 border-b flex items-center px-4 justify-between bg-card\"><div className=\"w-32 h-4 bg-muted rounded\" /><div className=\"w-8 h-8 bg-muted rounded-full\" /></div>\n <div className=\"flex-1 p-4 overflow-y-auto bg-muted/10\">{children || <div className=\"w-full h-full border-2 border-dashed rounded-lg flex items-center justify-center text-muted-foreground\">Dashboard Content</div>}</div>\n </div>\n </div>\n)\n\n// 2. StatWidgetCard\nexport const StatWidgetCard = ({ title = \"Total Revenue\", value = \"$45,231.89\", icon: Icon = DollarSign, trend = \"+20.1%\" }: any) => (\n <div className=\"p-6 border rounded-xl bg-card shadow-sm\">\n <div className=\"flex justify-between items-center mb-4\">\n <h3 className=\"text-sm font-medium text-muted-foreground\">{title}</h3>\n <Icon className=\"w-4 h-4 text-muted-foreground\" />\n </div>\n <div className=\"text-2xl font-bold\">{value}</div>\n <p className=\"text-xs text-muted-foreground mt-1\"><span className=\"text-green-500 font-medium flex items-center inline-flex\"><ArrowUpRight className=\"w-3 h-3 mr-1\" />{trend}</span> from last month</p>\n </div>\n)\n\n// 3. ActivityFeed\nexport const ActivityFeed = () => (\n <div className=\"border rounded-xl bg-card p-6\">\n <h3 className=\"font-bold mb-4\">Recent Activity</h3>\n <div className=\"space-y-6 relative before:absolute before:inset-0 before:ml-4 before:-translate-x-px md:before:mx-auto md:before:translate-x-0 before:h-full before:w-0.5 before:bg-gradient-to-b before:from-transparent before:via-border before:to-transparent\">\n {[1, 2].map(i => (\n <div key={i} className=\"relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active\">\n <div className=\"flex items-center justify-center w-8 h-8 rounded-full border-2 border-background bg-primary text-primary-foreground shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2 z-10\"><Zap className=\"w-4 h-4\" /></div>\n <div className=\"w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] border rounded-lg p-3 bg-background shadow-sm\">\n <div className=\"flex justify-between items-center mb-1\"><h4 className=\"font-bold text-sm\">System Update</h4><time className=\"text-xs text-muted-foreground\">2 hrs ago</time></div>\n <p className=\"text-xs text-muted-foreground\">Server deployed successfully.</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 4. ProgressWidget\nexport const ProgressWidget = () => (\n <div className=\"border rounded-xl bg-card p-6\">\n <h3 className=\"font-bold mb-4 text-sm\">Monthly Goal</h3>\n <div className=\"flex justify-between items-end mb-2\">\n <div className=\"text-2xl font-bold\">12,450 <span className=\"text-sm font-normal text-muted-foreground\">/ 20,000</span></div>\n <div className=\"text-sm font-medium text-primary\">62%</div>\n </div>\n <div className=\"h-2 bg-muted rounded-full overflow-hidden\"><div className=\"h-full bg-primary w-[62%]\" /></div>\n </div>\n)\n\n// 5. QuickActionsWidget\nexport const QuickActionsWidget = () => (\n <div className=\"border rounded-xl bg-card p-4 grid grid-cols-3 gap-2\">\n <button className=\"flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2\"><div className=\"p-2 bg-primary/10 text-primary rounded-full\"><Plus className=\"w-4 h-4\" /></div><span className=\"text-xs font-medium\">New Project</span></button>\n <button className=\"flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2\"><div className=\"p-2 bg-blue-500/10 text-blue-500 rounded-full\"><FileText className=\"w-4 h-4\" /></div><span className=\"text-xs font-medium\">Create Invoice</span></button>\n <button className=\"flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2\"><div className=\"p-2 bg-zinc-500/10 text-zinc-500 rounded-full\"><Settings className=\"w-4 h-4\" /></div><span className=\"text-xs font-medium\">Settings</span></button>\n </div>\n)\n\n// 6. TaskChecklist\nexport const TaskChecklist = () => (\n <div className=\"border rounded-xl bg-card p-6\">\n <h3 className=\"font-bold mb-4 text-sm\">Tasks</h3>\n <div className=\"space-y-3\">\n {['Review pull requests', 'Deploy new staging environment', 'Update documentation'].map((t, i) => (\n <div key={i} className=\"flex items-center gap-3\">\n <input type=\"checkbox\" defaultChecked={i === 0} className=\"w-4 h-4 rounded border-gray-300 text-primary focus:ring-primary\" />\n <span className={`text-sm ${i === 0 ? 'line-through text-muted-foreground' : 'font-medium'}`}>{t}</span>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 7. StorageWidget\nexport const StorageWidget = () => (\n <div className=\"border rounded-xl bg-card p-6 flex flex-col items-center text-center\">\n <div className=\"w-16 h-16 rounded-full bg-blue-500/10 flex items-center justify-center mb-4\"><HardDrive className=\"w-8 h-8 text-blue-500\" /></div>\n <h3 className=\"font-bold mb-1\">Storage Usage</h3>\n <p className=\"text-2xl font-bold mb-1\">45.2 GB <span className=\"text-sm font-normal text-muted-foreground\">/ 100 GB</span></p>\n <div className=\"w-full h-2 bg-muted rounded-full mt-4\"><div className=\"h-full bg-blue-500 rounded-full w-[45%]\" /></div>\n </div>\n)\n\n// 8. RevenueChartWidget (Visual Mock)\nexport const RevenueChartWidget = () => (\n <div className=\"border rounded-xl bg-card p-6 h-48 flex flex-col\">\n <h3 className=\"font-bold text-sm mb-4\">Revenue Overview</h3>\n <div className=\"flex-1 flex items-end gap-2\">\n {[30, 50, 40, 70, 50, 90, 80].map((h, i) => <div key={i} className=\"flex-1 bg-primary hover:opacity-80 transition-opacity rounded-t-sm\" style={{ height: `${h}%` }} />)}\n </div>\n </div>\n)\n\n// 9. RecentUsersWidget\nexport const RecentUsersWidget = () => (\n <div className=\"border rounded-xl bg-card p-6\">\n <h3 className=\"font-bold text-sm mb-4\">New Users</h3>\n <div className=\"flex -space-x-3 overflow-hidden\">\n {[1, 2, 3, 4, 5].map(i => <div key={i} className=\"inline-block h-10 w-10 rounded-full ring-2 ring-background bg-muted flex items-center justify-center text-xs border font-medium\">{i}</div>)}\n </div>\n <button className=\"text-xs font-medium text-primary mt-4 hover:underline\">View all users</button>\n </div>\n)\n\n// 10. ServerStatusWidget\nexport const ServerStatusWidget = () => (\n <div className=\"border rounded-xl bg-card p-6 flex items-center justify-between\">\n <div className=\"flex items-center gap-4\">\n <div className=\"p-3 bg-green-500/10 rounded-full\"><Server className=\"w-6 h-6 text-green-500\" /></div>\n <div><h3 className=\"font-bold\">us-east-1</h3><p className=\"text-xs text-green-500 font-medium flex items-center\"><span className=\"w-2 h-2 rounded-full bg-green-500 mr-2 animate-pulse\" />Operational</p></div>\n </div>\n <div className=\"text-right\"><p className=\"text-xs text-muted-foreground mb-1\">Ping</p><p className=\"font-mono font-bold text-sm\">24ms</p></div>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Search, Menu, User, Bell, Command, LayoutGrid, FileText, Settings, Globe, ChevronDown, ChevronLeft, ChevronRight, X } from \"lucide-react\"\n\n// 1. MegaMenuVisual\nexport const MegaMenuVisual = () => (\n <div className=\"w-full max-w-2xl bg-card border rounded-xl shadow-xl p-6 absolute top-12 left-0 z-50\">\n <div className=\"grid grid-cols-3 gap-6\">\n <div>\n <h4 className=\"font-bold text-sm mb-3\">Products</h4>\n <ul className=\"space-y-2 text-sm text-muted-foreground\"><li>Analytics</li><li>Automation</li><li>Commerce</li><li>Insights</li></ul>\n </div>\n <div>\n <h4 className=\"font-bold text-sm mb-3\">Resources</h4>\n <ul className=\"space-y-2 text-sm text-muted-foreground\"><li>Documentation</li><li>API Reference</li><li>Blog</li><li>Community</li></ul>\n </div>\n <div className=\"bg-muted p-4 rounded-lg flex flex-col justify-end\">\n <h4 className=\"font-bold text-sm mb-1\">Nexore UI 2.0</h4>\n <p className=\"text-xs text-muted-foreground mb-4\">The new standard for web interfaces.</p>\n <button className=\"text-xs font-bold text-primary text-left hover:underline\">Read announcement →</button>\n </div>\n </div>\n </div>\n)\n\n// 2. CommandPaletteVisual\nexport const CommandPaletteVisual = () => (\n <div className=\"w-full max-w-xl mx-auto bg-card border rounded-xl shadow-2xl overflow-hidden flex flex-col\">\n <div className=\"flex items-center px-4 py-3 border-b\"><Search className=\"w-5 h-5 text-muted-foreground mr-3\" /><input className=\"flex-1 bg-transparent outline-none\" placeholder=\"Type a command or search...\" /><span className=\"text-xs bg-muted px-1.5 py-0.5 rounded text-muted-foreground font-mono\">ESC</span></div>\n <div className=\"p-2 space-y-1\">\n <div className=\"px-2 py-1 text-xs font-semibold text-muted-foreground\">Suggestions</div>\n <div className=\"flex items-center px-2 py-2 bg-muted rounded-md cursor-pointer\"><LayoutGrid className=\"w-4 h-4 mr-3\" /><span className=\"text-sm font-medium\">Go to Dashboard</span></div>\n <div className=\"flex items-center px-2 py-2 hover:bg-muted/50 rounded-md cursor-pointer\"><FileText className=\"w-4 h-4 mr-3\" /><span className=\"text-sm font-medium\">Create New Document</span></div>\n <div className=\"flex items-center px-2 py-2 hover:bg-muted/50 rounded-md cursor-pointer\"><Settings className=\"w-4 h-4 mr-3\" /><span className=\"text-sm font-medium\">Settings</span></div>\n </div>\n </div>\n)\n\n// 3. AppTopbar\nexport const AppTopbar = () => (\n <header className=\"flex h-14 items-center justify-between border-b px-6 bg-card w-full\">\n <div className=\"flex items-center gap-4\"><div className=\"w-6 h-6 bg-primary rounded\" /><span className=\"font-bold text-lg hidden sm:block\">AppShell</span></div>\n <div className=\"flex-1 max-w-md mx-6 hidden md:block\"><div className=\"relative\"><Search className=\"absolute left-2.5 top-2 h-4 w-4 text-muted-foreground\" /><input className=\"w-full bg-muted/50 border rounded-md h-8 pl-8 pr-4 text-sm focus:outline-none focus:ring-1 focus:ring-primary\" placeholder=\"Search...\" /></div></div>\n <div className=\"flex items-center gap-4\"><button className=\"relative\"><Bell className=\"w-5 h-5 text-muted-foreground hover:text-foreground\" /><span className=\"absolute top-0 right-0 w-2 h-2 bg-red-500 rounded-full\" /></button><div className=\"w-8 h-8 rounded-full bg-muted border cursor-pointer\" /></div>\n </header>\n)\n\n// 4. MobileDrawerNav (Visual state)\nexport const MobileDrawerNav = () => (\n <div className=\"w-64 h-[400px] bg-card border-r shadow-2xl flex flex-col absolute left-0 top-0 z-50\">\n <div className=\"p-4 border-b flex justify-between items-center\"><span className=\"font-bold\">Menu</span><X className=\"w-5 h-5 cursor-pointer text-muted-foreground hover:text-foreground\" /></div>\n <div className=\"p-4 flex-1 space-y-4\">\n <div className=\"font-bold text-primary\">Home</div>\n <div className=\"font-medium text-muted-foreground hover:text-foreground\">Profile</div>\n <div className=\"font-medium text-muted-foreground hover:text-foreground\">Settings</div>\n </div>\n <div className=\"p-4 border-t\"><button className=\"w-full py-2 bg-muted rounded-md font-medium text-sm\">Sign Out</button></div>\n </div>\n)\n\n// 5. TreeNavigation\nexport const TreeNavigation = () => (\n <div className=\"w-64 bg-card border rounded-lg p-4 space-y-1 text-sm\">\n <div className=\"flex items-center gap-2 font-bold cursor-pointer py-1\"><ChevronDown className=\"w-4 h-4\" /> Components</div>\n <div className=\"pl-6 space-y-1\">\n <div className=\"flex items-center gap-2 font-medium text-primary cursor-pointer py-1 bg-primary/10 px-2 rounded\">Buttons</div>\n <div className=\"flex items-center gap-2 text-muted-foreground hover:text-foreground cursor-pointer py-1 px-2\">Cards</div>\n <div className=\"flex items-center gap-2 text-muted-foreground hover:text-foreground cursor-pointer py-1 px-2\">Inputs</div>\n </div>\n <div className=\"flex items-center gap-2 font-bold text-muted-foreground cursor-pointer py-1\"><ChevronRight className=\"w-4 h-4\" /> Hooks</div>\n </div>\n)\n\n// 6. ContextActionBar\nexport const ContextActionBar = () => (\n <div className=\"flex items-center justify-between p-2 bg-primary text-primary-foreground rounded-lg shadow-xl mx-auto w-fit gap-6 animate-in slide-in-from-bottom-4\">\n <span className=\"text-sm font-medium pl-2\">3 items selected</span>\n <div className=\"flex gap-2\">\n <button className=\"px-3 py-1 bg-white/20 hover:bg-white/30 rounded text-sm font-medium transition-colors\">Move</button>\n <button className=\"px-3 py-1 bg-white/20 hover:bg-white/30 rounded text-sm font-medium transition-colors\">Archive</button>\n <button className=\"px-3 py-1 bg-destructive hover:bg-destructive/90 rounded text-sm font-medium transition-colors\">Delete</button>\n </div>\n </div>\n)\n\n// 7. PaginationPro\nexport const PaginationPro = () => (\n <div className=\"flex items-center gap-1 border bg-card p-1 rounded-md w-fit mx-auto\">\n <button className=\"p-2 hover:bg-muted rounded text-muted-foreground disabled:opacity-50\"><ChevronLeft className=\"w-4 h-4\" /></button>\n <button className=\"w-8 h-8 rounded text-sm font-medium hover:bg-muted\">1</button>\n <button className=\"w-8 h-8 rounded text-sm font-medium bg-primary text-primary-foreground\">2</button>\n <button className=\"w-8 h-8 rounded text-sm font-medium hover:bg-muted\">3</button>\n <span className=\"px-2 text-muted-foreground\">...</span>\n <button className=\"w-8 h-8 rounded text-sm font-medium hover:bg-muted\">10</button>\n <button className=\"p-2 hover:bg-muted rounded text-muted-foreground\"><ChevronRight className=\"w-4 h-4\" /></button>\n </div>\n)\n\n// 8. FilterBar\nexport const FilterBar = () => (\n <div className=\"flex flex-wrap gap-3 items-center p-2 border rounded-lg bg-card\">\n <span className=\"text-sm font-bold ml-2\">Filters:</span>\n <div className=\"flex items-center border rounded-full px-3 py-1 bg-muted/50 text-sm gap-2\">Status: Active <X className=\"w-3 h-3 cursor-pointer\" /></div>\n <div className=\"flex items-center border rounded-full px-3 py-1 bg-muted/50 text-sm gap-2\">Role: Admin <X className=\"w-3 h-3 cursor-pointer\" /></div>\n <button className=\"text-sm border-dashed border rounded-full px-3 py-1 text-muted-foreground hover:bg-muted\">+ Add Filter</button>\n <button className=\"text-sm text-muted-foreground hover:text-foreground ml-auto pr-2\">Clear all</button>\n </div>\n)\n\n// 9. LanguageSelector\nexport const LanguageSelector = () => (\n <div className=\"inline-flex items-center border rounded-md bg-card overflow-hidden\">\n <div className=\"px-3 py-2 border-r flex items-center\"><Globe className=\"w-4 h-4 text-muted-foreground\" /></div>\n <select className=\"bg-transparent pl-3 pr-8 py-2 text-sm font-medium outline-none cursor-pointer appearance-none\">\n <option>English (US)</option><option>Spanish</option><option>French</option>\n </select>\n </div>\n)\n\n// 10. UserMenuDropdown\nexport const UserMenuDropdown = () => (\n <div className=\"flex items-center gap-3 cursor-pointer p-2 border rounded-lg hover:bg-muted transition-colors w-fit\">\n <div className=\"w-8 h-8 rounded-full bg-primary/20 text-primary flex items-center justify-center font-bold text-xs\">JD</div>\n <div className=\"flex flex-col\"><span className=\"text-sm font-bold leading-none\">John Doe</span><span className=\"text-xs text-muted-foreground\">admin@example.com</span></div>\n <ChevronDown className=\"w-4 h-4 text-muted-foreground ml-2\" />\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { CheckCircle2, X, AlertTriangle, WifiOff, FileBox, UploadCloud } from \"lucide-react\"\n\n// 1. ConfettiSuccess (Visual)\nexport const ConfettiSuccess = () => (\n <div className=\"flex flex-col items-center justify-center p-8 border rounded-xl bg-card text-center relative overflow-hidden\">\n <div className=\"absolute inset-0 pointer-events-none flex justify-center\">\n {[1,2,3,4,5,6].map(i => <motion.div key={i} animate={{ y: [0, 100], x: [(i%2===0?1:-1)*20, (i%2===0?1:-1)*40], opacity: [1, 0], rotate: [0, 360] }} transition={{ repeat: Infinity, duration: 2, delay: i*0.2 }} className={`w-2 h-2 absolute top-0 ${i%3===0?'bg-red-500':i%2===0?'bg-blue-500':'bg-yellow-500'}`} />)}\n </div>\n <div className=\"w-16 h-16 bg-green-500/10 text-green-500 rounded-full flex items-center justify-center mb-4 relative z-10\"><CheckCircle2 className=\"w-8 h-8\" /></div>\n <h3 className=\"text-2xl font-bold mb-2 relative z-10\">Payment Successful!</h3>\n <p className=\"text-muted-foreground relative z-10\">Your order #12345 has been processed.</p>\n </div>\n)\n\n// 2. ActionToast\nexport const ActionToast = () => (\n <div className=\"flex items-center justify-between p-4 bg-foreground text-background rounded-lg shadow-xl max-w-sm mx-auto\">\n <div><p className=\"text-sm font-medium\">Item moved to trash</p></div>\n <div className=\"flex gap-4 items-center\"><button className=\"text-sm font-bold text-primary hover:underline\">Undo</button><button><X className=\"w-4 h-4 text-muted\" /></button></div>\n </div>\n)\n\n// 3. MultiStepProgress\nexport const MultiStepProgress = ({ current = 2 }: any) => (\n <div className=\"w-full\">\n <div className=\"flex justify-between mb-2 text-sm font-medium\"><span className=\"text-primary\">Cart</span><span className=\"text-primary\">Shipping</span><span className=\"text-muted-foreground\">Payment</span></div>\n <div className=\"flex h-2 bg-muted rounded-full overflow-hidden\"><div className=\"w-1/3 bg-primary border-r-2 border-background\" /><div className=\"w-1/3 bg-primary/50\" /></div>\n </div>\n)\n\n// 4. SkeletonList\nexport const SkeletonList = () => (\n <div className=\"space-y-4 w-full border p-4 rounded-xl bg-card\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"flex gap-4 items-center\">\n <div className=\"w-12 h-12 rounded-full bg-muted animate-pulse\" />\n <div className=\"flex-1 space-y-2\"><div className=\"h-4 bg-muted rounded w-1/3 animate-pulse\" /><div className=\"h-3 bg-muted rounded w-1/2 animate-pulse\" /></div>\n </div>\n ))}\n </div>\n)\n\n// 5. EmptyStatePro\nexport const EmptyStatePro = () => (\n <div className=\"flex flex-col items-center justify-center p-12 border-2 border-dashed rounded-xl bg-muted/10 text-center\">\n <div className=\"w-16 h-16 bg-muted rounded-full flex items-center justify-center mb-4 text-muted-foreground\"><FileBox className=\"w-8 h-8\" /></div>\n <h3 className=\"text-xl font-bold mb-2\">No projects found</h3>\n <p className=\"text-muted-foreground mb-6 max-w-sm\">Get started by creating a new project. You can also import an existing one.</p>\n <button className=\"px-6 py-2.5 bg-primary text-primary-foreground font-bold rounded-lg shadow-sm hover:opacity-90\">Create Project</button>\n </div>\n)\n\n// 6. TooltipForm (Visual)\nexport const TooltipForm = () => (\n <div className=\"relative inline-block mt-8\">\n <button className=\"px-4 py-2 bg-muted rounded-md font-medium\">Hover me</button>\n <div className=\"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 w-64 p-4 bg-card border shadow-xl rounded-lg z-10\">\n <h4 className=\"font-bold text-sm mb-2\">Quick Edit</h4>\n <input className=\"w-full p-2 border rounded text-xs mb-2 bg-background\" placeholder=\"New name...\" />\n <button className=\"w-full py-1.5 bg-primary text-primary-foreground text-xs font-bold rounded\">Save</button>\n <div className=\"absolute -bottom-2 left-1/2 -translate-x-1/2 w-4 h-4 bg-card border-b border-r transform rotate-45\" />\n </div>\n </div>\n)\n\n// 7. OfflineBanner\nexport const OfflineBanner = () => (\n <div className=\"w-full bg-destructive text-destructive-foreground p-3 flex justify-center items-center gap-2 text-sm font-medium shadow-sm\">\n <WifiOff className=\"w-4 h-4\" /> You are currently offline. Some features may be unavailable.\n </div>\n)\n\n// 8. RateLimitAlert\nexport const RateLimitAlert = () => (\n <div className=\"border border-orange-500/50 bg-orange-500/10 p-4 rounded-xl flex gap-3 items-start\">\n <AlertTriangle className=\"w-5 h-5 text-orange-500 shrink-0 mt-0.5\" />\n <div>\n <h4 className=\"font-bold text-orange-600 dark:text-orange-400\">Rate Limit Exceeded</h4>\n <p className=\"text-sm text-orange-600/80 dark:text-orange-400/80 mt-1 mb-3\">You have made too many requests. Please wait 45 seconds before trying again.</p>\n <div className=\"w-full h-1.5 bg-orange-500/20 rounded-full overflow-hidden\"><motion.div animate={{ width: [\"100%\", \"0%\"] }} transition={{ duration: 45 }} className=\"h-full bg-orange-500\" /></div>\n </div>\n </div>\n)\n\n// 9. PasswordStrengthMeter\nexport const PasswordStrengthMeter = ({ score = 3 }: any) => (\n <div className=\"w-full max-w-sm space-y-2\">\n <input type=\"password\" placeholder=\"Password\" className=\"w-full p-2 border rounded-md\" defaultValue=\"Str0ngP@ss\" />\n <div className=\"flex gap-1 h-1.5\">\n {[1, 2, 3, 4].map(i => <div key={i} className={`flex-1 rounded-full ${i <= score ? (score < 2 ? 'bg-red-500' : score < 4 ? 'bg-yellow-500' : 'bg-green-500') : 'bg-muted'}`} />)}\n </div>\n <p className={`text-xs font-medium ${score < 2 ? 'text-red-500' : score < 4 ? 'text-yellow-500' : 'text-green-500'}`}>{score < 2 ? 'Weak' : score < 4 ? 'Good' : 'Strong'}</p>\n </div>\n)\n\n// 10. UploadProgress\nexport const UploadProgress = () => (\n <div className=\"w-full max-w-sm border rounded-lg p-3 flex items-center gap-4 bg-card shadow-sm\">\n <div className=\"p-2 bg-primary/10 text-primary rounded-md\"><UploadCloud className=\"w-5 h-5\" /></div>\n <div className=\"flex-1\">\n <div className=\"flex justify-between text-sm mb-1\"><span className=\"font-medium truncate max-w-[150px]\">design-assets.zip</span><span className=\"text-muted-foreground\">45%</span></div>\n <div className=\"h-1.5 w-full bg-muted rounded-full overflow-hidden\"><div className=\"h-full bg-primary w-[45%]\" /></div>\n </div>\n <button><X className=\"w-4 h-4 text-muted-foreground hover:text-foreground\" /></button>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { Check, Play, ArrowRight, ShieldCheck } from \"lucide-react\"\n\n// 1. WaitlistForm\nexport const WaitlistForm = () => (\n <div className=\"w-full max-w-md mx-auto text-center space-y-6 bg-card p-8 rounded-3xl border shadow-xl\">\n <div className=\"inline-block px-3 py-1 bg-primary/10 text-primary font-bold text-xs rounded-full mb-2\">EARLY ACCESS</div>\n <h2 className=\"text-3xl font-extrabold tracking-tight\">Join the Waitlist</h2>\n <p className=\"text-muted-foreground text-sm\">Be the first to know when we launch and get 50% off your first year.</p>\n <div className=\"flex flex-col gap-3\">\n <input className=\"w-full px-4 py-3 bg-muted/50 border rounded-xl outline-none focus:border-primary transition-colors\" placeholder=\"Email address\" />\n <button className=\"w-full py-3 bg-foreground text-background font-bold rounded-xl hover:opacity-90 transition-opacity\">Request Access</button>\n </div>\n <p className=\"text-xs text-muted-foreground\">Over 10,000+ people already joined.</p>\n </div>\n)\n\n// 2. PricingToggle\nexport const PricingToggle = () => (\n <div className=\"flex items-center justify-center gap-3\">\n <span className=\"font-medium text-sm\">Monthly</span>\n <div className=\"w-12 h-6 bg-primary rounded-full relative cursor-pointer\"><div className=\"absolute top-1 left-7 w-4 h-4 bg-background rounded-full transition-all\" /></div>\n <span className=\"font-medium text-sm\">Annually <span className=\"text-green-500 text-xs font-bold bg-green-500/10 px-1.5 py-0.5 rounded ml-1\">Save 20%</span></span>\n </div>\n)\n\n// 3. FeatureShowcase\nexport const FeatureShowcase = () => (\n <div className=\"flex items-center gap-8 bg-card border rounded-2xl p-6 overflow-hidden\">\n <div className=\"flex-1 space-y-4\">\n <div className=\"w-12 h-12 bg-primary/10 text-primary flex items-center justify-center rounded-xl\"><ShieldCheck className=\"w-6 h-6\" /></div>\n <h3 className=\"text-2xl font-bold\">Enterprise Security</h3>\n <p className=\"text-muted-foreground\">Bank-grade encryption for all your data. We never compromise on the security of your business.</p>\n <button className=\"flex items-center gap-2 text-primary font-bold text-sm hover:underline\">Learn more <ArrowRight className=\"w-4 h-4\" /></button>\n </div>\n <div className=\"flex-1 h-48 bg-muted rounded-xl border flex items-center justify-center font-mono text-muted-foreground text-sm\">Illustration Placeholder</div>\n </div>\n)\n\n// 4. TrustBanner\nexport const TrustBanner = () => (\n <div className=\"py-8 text-center border-y bg-muted/20\">\n <p className=\"text-sm font-bold text-muted-foreground mb-6 uppercase tracking-widest\">Backed by the best</p>\n <div className=\"flex justify-center gap-8 flex-wrap opacity-60\">\n <div className=\"font-black text-xl\">Y COMBINATOR</div><div className=\"font-black text-xl\">SEQUOIA</div><div className=\"font-black text-xl\">a16z</div>\n </div>\n </div>\n)\n\n// 5. ComparisonTableMock\nexport const ComparisonTableMock = () => (\n <div className=\"w-full border rounded-2xl bg-card overflow-hidden\">\n <div className=\"grid grid-cols-3 bg-muted/50 p-4 border-b font-bold text-center\">\n <div className=\"text-left\">Features</div><div className=\"text-muted-foreground\">Others</div><div className=\"text-primary\">Us</div>\n </div>\n <div className=\"divide-y text-sm\">\n {['Real-time sync', 'End-to-end encryption', '24/7 Support'].map((f, i) => (\n <div key={i} className=\"grid grid-cols-3 p-4 items-center text-center\">\n <div className=\"text-left font-medium\">{f}</div>\n <div className=\"text-muted-foreground/30\">{i === 0 ? '✔️' : '❌'}</div>\n <div className=\"text-primary font-bold text-lg\">✓</div>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 6. AnimatedHeroText\nexport const AnimatedHeroText = () => (\n <h1 className=\"text-4xl md:text-6xl font-black text-center leading-tight\">\n Create the next <br/>\n <span className=\"text-transparent bg-clip-text bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 animate-[pulse_4s_ease-in-out_infinite]\">unicorn startup.</span>\n </h1>\n)\n\n// 7. StatCounter\nexport const StatCounter = () => (\n <div className=\"grid grid-cols-3 gap-4 border-y py-8 text-center bg-card\">\n <div><div className=\"text-4xl font-black text-primary mb-1\">99.9%</div><div className=\"text-sm font-medium text-muted-foreground\">Uptime SLA</div></div>\n <div><div className=\"text-4xl font-black text-primary mb-1\">2M+</div><div className=\"text-sm font-medium text-muted-foreground\">Active Users</div></div>\n <div><div className=\"text-4xl font-black text-primary mb-1\">4.9/5</div><div className=\"text-sm font-medium text-muted-foreground\">Customer Rating</div></div>\n </div>\n)\n\n// 8. NewsletterSignup\nexport const NewsletterSignup = () => (\n <div className=\"bg-primary text-primary-foreground p-8 md:p-12 rounded-3xl text-center md:text-left flex flex-col md:flex-row items-center gap-8 justify-between\">\n <div className=\"max-w-md\"><h2 className=\"text-3xl font-bold mb-2\">Subscribe to our newsletter</h2><p className=\"opacity-90\">Get the latest news, articles, and resources delivered to your inbox weekly.</p></div>\n <div className=\"w-full max-w-sm flex flex-col gap-2\">\n <div className=\"flex gap-2\"><input className=\"flex-1 px-4 py-3 rounded-xl text-foreground outline-none\" placeholder=\"Enter your email\" /><button className=\"px-6 py-3 bg-foreground text-background font-bold rounded-xl\">Subscribe</button></div>\n <p className=\"text-xs opacity-70 text-center md:text-left\">We care about your data. Read our Privacy Policy.</p>\n </div>\n </div>\n)\n\n// 9. VideoModalVisual\nexport const VideoModalVisual = () => (\n <div className=\"relative w-full max-w-2xl mx-auto aspect-video bg-zinc-900 rounded-2xl overflow-hidden shadow-2xl group cursor-pointer border border-white/10\">\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent\" />\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"w-16 h-16 bg-white/20 backdrop-blur-md rounded-full flex items-center justify-center group-hover:scale-110 transition-transform\"><Play className=\"w-6 h-6 text-white ml-1\" /></div>\n </div>\n <div className=\"absolute bottom-4 left-4 text-white\"><h4 className=\"font-bold\">Watch the demo</h4><p className=\"text-sm opacity-80\">2 mins</p></div>\n </div>\n)\n\n// 10. GradientCTABlock\nexport const GradientCTABlock = () => (\n <div className=\"relative p-12 rounded-3xl overflow-hidden border shadow-lg text-center\">\n <div className=\"absolute inset-0 bg-gradient-to-br from-indigo-500/20 via-purple-500/20 to-pink-500/20\" />\n <div className=\"relative z-10 max-w-lg mx-auto space-y-6\">\n <h2 className=\"text-3xl md:text-4xl font-extrabold\">Ready to dive in?</h2>\n <p className=\"text-lg text-muted-foreground\">Start your free 14-day trial today. No credit card required.</p>\n <button className=\"px-8 py-4 bg-foreground text-background rounded-full font-bold shadow-xl hover:scale-105 transition-transform\">Get Started Free</button>\n </div>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Phone, Mail, FileText, Download, Briefcase, MapPin, Clock, MessageSquare, Plus, Check } from \"lucide-react\"\n\n// 1. ContactList\nexport const ContactList = () => (\n <div className=\"w-full max-w-md border rounded-xl bg-card divide-y\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"flex items-center justify-between p-4 hover:bg-muted/50 cursor-pointer\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-full bg-primary/20 text-primary flex items-center justify-center font-bold text-sm\">C{i}</div>\n <div><h4 className=\"font-semibold text-sm\">Contact Name {i}</h4><p className=\"text-xs text-muted-foreground\">contact{i}@example.com</p></div>\n </div>\n <div className=\"flex gap-2 text-muted-foreground\"><Phone className=\"w-4 h-4 hover:text-foreground\" /><Mail className=\"w-4 h-4 hover:text-foreground\" /></div>\n </div>\n ))}\n </div>\n)\n\n// 2. NotificationList\nexport const NotificationList = () => (\n <div className=\"w-full max-w-md border rounded-xl bg-card divide-y\">\n <div className=\"p-4 border-b font-bold flex justify-between items-center\">Notifications <span className=\"text-xs font-normal text-primary hover:underline cursor-pointer\">Mark all read</span></div>\n {[1, 2, 3].map(i => (\n <div key={i} className={`flex gap-4 p-4 ${i === 1 ? 'bg-primary/5' : ''}`}>\n {i === 1 && <div className=\"w-2 h-2 rounded-full bg-primary mt-1.5\" />}\n <div className=\"flex-1\"><p className=\"text-sm\"><span className=\"font-bold\">System</span> completed the backup successfully.</p><p className=\"text-xs text-muted-foreground mt-1\">2 hours ago</p></div>\n </div>\n ))}\n </div>\n)\n\n// 3. TimelineVertical\nexport const TimelineVertical = () => (\n <div className=\"w-full max-w-md p-4\">\n <div className=\"relative border-l-2 border-muted ml-3 space-y-8\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"relative pl-6\">\n <div className=\"absolute w-4 h-4 bg-primary rounded-full border-4 border-background -left-[9px] top-1\" />\n <h4 className=\"font-bold text-sm mb-1\">Project Milestone {i}</h4>\n <p className=\"text-xs text-muted-foreground mb-2\">October {10 + i}, 2025</p>\n <p className=\"text-sm\">Completed the initial design phase and got client approval.</p>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 4. StepList\nexport const StepList = () => (\n <div className=\"w-full max-w-md space-y-4\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"flex gap-4\">\n <div className={`w-8 h-8 rounded-full flex items-center justify-center shrink-0 border-2 font-bold text-sm ${i === 1 ? 'bg-primary border-primary text-primary-foreground' : 'border-muted text-muted-foreground'}`}>{i === 1 ? <Check className=\"w-4 h-4\" /> : i}</div>\n <div><h4 className={`font-bold text-sm ${i === 1 ? '' : 'text-muted-foreground'}`}>Step {i} Title</h4><p className=\"text-sm text-muted-foreground mt-1\">Detailed description of what needs to be done in this step.</p></div>\n </div>\n ))}\n </div>\n)\n\n// 5. FAQAccordionList (Visual Mock)\nexport const FAQAccordionList = () => (\n <div className=\"w-full max-w-2xl border rounded-xl bg-card divide-y\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"p-4\">\n <h4 className=\"font-bold text-sm mb-2 flex justify-between\">How does pricing work? <Plus className=\"w-4 h-4 text-muted-foreground\" /></h4>\n {i === 1 && <p className=\"text-sm text-muted-foreground mt-2\">Pricing is based on the number of users in your workspace. You can upgrade or downgrade at any time.</p>}\n </div>\n ))}\n </div>\n)\n\n// 6. FileDownloadList\nexport const FileDownloadList = () => (\n <div className=\"w-full max-w-md border rounded-xl bg-card p-4 space-y-3\">\n <h3 className=\"font-bold text-sm mb-4\">Attached Files</h3>\n {[1, 2].map(i => (\n <div key={i} className=\"flex items-center justify-between p-3 border rounded-lg hover:bg-muted transition-colors\">\n <div className=\"flex items-center gap-3\"><FileText className=\"w-8 h-8 text-primary\" /><div><p className=\"text-sm font-medium\">Document-{i}.pdf</p><p className=\"text-xs text-muted-foreground\">2.4 MB</p></div></div>\n <button className=\"p-2 border bg-background rounded-full hover:text-primary\"><Download className=\"w-4 h-4\" /></button>\n </div>\n ))}\n </div>\n)\n\n// 7. MessageList\nexport const MessageList = () => (\n <div className=\"w-full max-w-md border rounded-xl bg-card divide-y\">\n {[1, 2, 3].map(i => (\n <div key={i} className=\"flex gap-4 p-4 hover:bg-muted/50 cursor-pointer\">\n <div className=\"w-10 h-10 rounded-full bg-muted shrink-0\" />\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex justify-between items-baseline mb-1\"><h4 className=\"font-bold text-sm truncate\">Jane Doe</h4><span className=\"text-xs text-muted-foreground shrink-0\">12:30 PM</span></div>\n <p className=\"text-sm text-muted-foreground truncate\">Hey, are we still on for the meeting later today?</p>\n </div>\n </div>\n ))}\n </div>\n)\n\n// 8. JobBoardList\nexport const JobBoardList = () => (\n <div className=\"w-full max-w-2xl border rounded-xl bg-card divide-y\">\n {[1, 2].map(i => (\n <div key={i} className=\"p-6 hover:bg-muted/20 transition-colors flex flex-col sm:flex-row gap-4 justify-between items-start sm:items-center\">\n <div>\n <h3 className=\"text-lg font-bold mb-2\">Senior React Developer</h3>\n <div className=\"flex flex-wrap gap-3 text-sm text-muted-foreground\">\n <span className=\"flex items-center gap-1\"><Briefcase className=\"w-4 h-4\" /> Full-time</span>\n <span className=\"flex items-center gap-1\"><MapPin className=\"w-4 h-4\" /> Remote</span>\n <span className=\"flex items-center gap-1\"><Clock className=\"w-4 h-4\" /> Posted 2 days ago</span>\n </div>\n </div>\n <button className=\"px-6 py-2 border rounded-full text-sm font-bold hover:bg-muted\">Apply Now</button>\n </div>\n ))}\n </div>\n)\n\n// 9. EventScheduleList\nexport const EventScheduleList = () => (\n <div className=\"w-full max-w-lg p-6 bg-card border rounded-xl\">\n <h3 className=\"font-bold text-xl mb-6\">Conference Schedule</h3>\n <div className=\"space-y-6\">\n {[1, 2].map(i => (\n <div key={i} className=\"flex gap-4\">\n <div className=\"text-right w-16 shrink-0\"><p className=\"font-bold\">09:00</p><p className=\"text-xs text-muted-foreground\">AM</p></div>\n <div className=\"w-0.5 bg-primary/20 relative\"><div className=\"absolute top-1 -left-1 w-2.5 h-2.5 rounded-full bg-primary\" /></div>\n <div className=\"pb-6\"><h4 className=\"font-bold text-lg mb-1\">Keynote Speech</h4><p className=\"text-sm text-muted-foreground mb-2\">Main Stage</p><div className=\"flex items-center gap-2 text-xs font-medium bg-muted w-fit px-2 py-1 rounded\"><div className=\"w-4 h-4 bg-primary/20 rounded-full\" /> Speaker Name</div></div>\n </div>\n ))}\n </div>\n </div>\n)\n\n// 10. RecentCommentsList\nexport const RecentCommentsList = () => (\n <div className=\"w-full max-w-md space-y-4\">\n {[1, 2].map(i => (\n <div key={i} className=\"flex gap-3\">\n <div className=\"w-8 h-8 rounded-full bg-muted shrink-0\" />\n <div className=\"flex-1 bg-card border p-3 rounded-2xl rounded-tl-none text-sm\">\n <p className=\"font-bold mb-1\">User {i} <span className=\"font-normal text-muted-foreground text-xs ml-2\">1h ago</span></p>\n <p>This is a great article! Thanks for sharing this information.</p>\n <div className=\"flex gap-3 mt-2 text-xs font-medium text-muted-foreground\"><button className=\"hover:text-primary flex items-center gap-1\"><MessageSquare className=\"w-3 h-3\" /> Reply</button></div>\n </div>\n </div>\n ))}\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { LayoutGrid, FileText, Settings, User, Bell, Search, MessageSquare, Menu } from \"lucide-react\"\n\n// 1. SplitScreenLayout\nexport const SplitScreenLayout = () => (\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\n <div className=\"flex-1 p-8 md:p-12 flex flex-col justify-center bg-card\">\n <div className=\"w-12 h-12 bg-primary rounded-xl mb-8\" />\n <h2 className=\"text-3xl font-bold mb-4\">Welcome back</h2>\n <p className=\"text-muted-foreground mb-8\">Please enter your details to sign in.</p>\n <div className=\"w-full h-10 bg-muted rounded-lg mb-4\" />\n <div className=\"w-full h-10 bg-muted rounded-lg mb-8\" />\n <div className=\"w-full h-12 bg-primary rounded-lg\" />\n </div>\n <div className=\"hidden md:block flex-1 bg-gradient-to-br from-indigo-500 to-purple-600 p-12 text-white flex flex-col justify-between\">\n <div></div>\n <div>\n <h2 className=\"text-4xl font-bold mb-4\">Nexore UI</h2>\n <p className=\"text-lg opacity-80\">The most powerful and flexible UI library for modern web applications.</p>\n </div>\n </div>\n </div>\n)\n\n// 2. AuthenticationLayout (Centered)\nexport const AuthenticationLayout = () => (\n <div className=\"w-full h-[400px] bg-muted/20 border rounded-xl flex items-center justify-center p-4\">\n <div className=\"w-full max-w-md bg-card border rounded-2xl shadow-xl p-8 flex flex-col items-center\">\n <div className=\"w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center mb-6\"><User className=\"w-8 h-8 text-primary\" /></div>\n <h2 className=\"text-2xl font-bold mb-2\">Create Account</h2>\n <p className=\"text-muted-foreground text-center mb-8 text-sm\">Join thousands of developers building the future.</p>\n <div className=\"w-full space-y-4\"><div className=\"w-full h-10 bg-muted rounded-md\" /><div className=\"w-full h-10 bg-muted rounded-md\" /><div className=\"w-full h-10 bg-primary rounded-md mt-4\" /></div>\n </div>\n </div>\n)\n\n// 3. SidebarLayout\nexport const SidebarLayout = () => (\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background text-sm\">\n <div className=\"w-64 bg-card border-r flex flex-col\">\n <div className=\"h-14 border-b flex items-center px-4 font-bold\">App Name</div>\n <div className=\"p-4 space-y-2 flex-1\"><div className=\"w-full h-8 bg-primary/10 text-primary rounded flex items-center px-3 font-medium\">Dashboard</div><div className=\"w-full h-8 hover:bg-muted rounded flex items-center px-3 text-muted-foreground\">Projects</div></div>\n <div className=\"p-4 border-t flex items-center gap-3\"><div className=\"w-8 h-8 bg-muted rounded-full\" /><div className=\"flex-1 h-4 bg-muted rounded\" /></div>\n </div>\n <div className=\"flex-1 flex flex-col\">\n <div className=\"h-14 border-b flex items-center px-6 justify-between\"><div className=\"font-bold\">Overview</div><div className=\"flex gap-4\"><Search className=\"w-4 h-4 text-muted-foreground\" /><Bell className=\"w-4 h-4 text-muted-foreground\" /></div></div>\n <div className=\"p-6 flex-1 bg-muted/10\"><div className=\"w-full h-full border-2 border-dashed rounded-xl border-muted flex items-center justify-center text-muted-foreground\">Content Area</div></div>\n </div>\n </div>\n)\n\n// 4. DashboardGridLayout\nexport const DashboardGridLayout = () => (\n <div className=\"w-full p-4 border rounded-xl bg-muted/10 space-y-4 h-[400px] overflow-hidden\">\n <div className=\"grid grid-cols-4 gap-4\"><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /></div>\n <div className=\"grid grid-cols-3 gap-4 h-[200px]\"><div className=\"col-span-2 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 bg-card border rounded-xl shadow-sm\" /></div>\n </div>\n)\n\n// 5. BentoGridVisual\nexport const BentoGridVisual = () => (\n <div className=\"w-full h-[400px] border rounded-xl bg-background p-4 grid grid-cols-4 grid-rows-3 gap-4\">\n <div className=\"col-span-2 row-span-2 bg-gradient-to-br from-primary/20 to-primary/5 border rounded-2xl p-6 flex flex-col justify-end\"><h3 className=\"text-2xl font-bold\">Main Feature</h3></div>\n <div className=\"col-span-1 row-span-1 bg-card border rounded-2xl\" />\n <div className=\"col-span-1 row-span-2 bg-card border rounded-2xl\" />\n <div className=\"col-span-1 row-span-1 bg-card border rounded-2xl\" />\n <div className=\"col-span-3 row-span-1 bg-card border rounded-2xl\" />\n </div>\n)\n\n// 6. KanbanBoardVisual\nexport const KanbanBoardVisual = () => (\n <div className=\"flex w-full h-[400px] border rounded-xl bg-muted/20 p-4 gap-4 overflow-hidden\">\n {[1, 2, 3].map(col => (\n <div key={col} className=\"w-80 shrink-0 flex flex-col bg-card border rounded-xl p-3 h-full\">\n <h4 className=\"font-bold text-sm mb-3 px-1\">{col === 1 ? 'To Do' : col === 2 ? 'In Progress' : 'Done'} <span className=\"text-muted-foreground font-normal ml-2\">3</span></h4>\n <div className=\"space-y-3 flex-1 overflow-hidden\">\n <div className=\"w-full h-24 bg-background border rounded-lg shadow-sm\" />\n <div className=\"w-full h-32 bg-background border rounded-lg shadow-sm\" />\n </div>\n </div>\n ))}\n </div>\n)\n\n// 7. ChatLayoutVisual\nexport const ChatLayoutVisual = () => (\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\n <div className=\"w-64 border-r flex flex-col\"><div className=\"p-4 border-b font-bold\">Messages</div><div className=\"p-2 space-y-1 flex-1\"><div className=\"w-full h-12 bg-muted rounded-lg\" /><div className=\"w-full h-12 hover:bg-muted/50 rounded-lg\" /></div></div>\n <div className=\"flex-1 flex flex-col\">\n <div className=\"p-4 border-b font-bold flex items-center gap-3\"><div className=\"w-8 h-8 bg-muted rounded-full\" /> User Name</div>\n <div className=\"flex-1 p-4 flex flex-col gap-4 overflow-hidden bg-muted/10\">\n <div className=\"w-64 h-12 bg-muted rounded-2xl rounded-tl-sm\" />\n <div className=\"w-48 h-10 bg-primary rounded-2xl rounded-tr-sm self-end\" />\n </div>\n <div className=\"p-4 border-t\"><div className=\"w-full h-10 bg-muted rounded-full\" /></div>\n </div>\n </div>\n)\n\n// 8. FeedLayout\nexport const FeedLayout = () => (\n <div className=\"w-full h-[400px] border rounded-xl overflow-hidden bg-muted/20 flex justify-center p-4\">\n <div className=\"w-full max-w-lg flex flex-col gap-4\">\n <div className=\"w-full p-4 bg-card border rounded-xl shadow-sm\"><div className=\"flex gap-3 items-center mb-4\"><div className=\"w-10 h-10 bg-muted rounded-full\" /><div className=\"w-32 h-4 bg-muted rounded\" /></div><div className=\"w-full h-24 bg-muted/50 rounded-lg\" /></div>\n <div className=\"w-full p-4 bg-card border rounded-xl shadow-sm\"><div className=\"flex gap-3 items-center mb-4\"><div className=\"w-10 h-10 bg-muted rounded-full\" /><div className=\"w-32 h-4 bg-muted rounded\" /></div><div className=\"w-full h-24 bg-muted/50 rounded-lg\" /></div>\n </div>\n </div>\n)\n\n// 9. DocumentationLayout\nexport const DocumentationLayout = () => (\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\n <div className=\"w-64 border-r p-4 space-y-4\"><div className=\"w-full h-6 bg-muted rounded mb-6\" /><div className=\"w-full h-4 bg-muted/50 rounded\" /><div className=\"w-3/4 h-4 bg-muted/50 rounded\" /><div className=\"w-5/6 h-4 bg-muted/50 rounded\" /></div>\n <div className=\"flex-1 p-8 overflow-hidden\">\n <h1 className=\"text-3xl font-bold mb-4\">Installation</h1>\n <p className=\"text-muted-foreground mb-6\">Learn how to install and setup the library in your project.</p>\n <div className=\"w-full h-32 bg-zinc-950 rounded-xl mb-6 flex items-center px-4\"><span className=\"font-mono text-zinc-300\">npm install nexoreui</span></div>\n <div className=\"w-full h-4 bg-muted rounded mb-2\" /><div className=\"w-full h-4 bg-muted rounded mb-2\" /><div className=\"w-3/4 h-4 bg-muted rounded\" />\n </div>\n <div className=\"w-48 border-l p-4 space-y-4 hidden lg:block\"><div className=\"text-sm font-bold\">On this page</div><div className=\"w-full h-3 bg-muted rounded\" /><div className=\"w-2/3 h-3 bg-muted rounded\" /></div>\n </div>\n)\n\n// 10. HeaderFooterLayout\nexport const HeaderFooterLayout = () => (\n <div className=\"flex flex-col w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\n <header className=\"h-16 border-b flex items-center justify-between px-6 bg-card\"><div className=\"w-8 h-8 bg-primary rounded\" /><div className=\"flex gap-4\"><div className=\"w-16 h-4 bg-muted rounded\" /><div className=\"w-16 h-4 bg-muted rounded\" /></div></header>\n <main className=\"flex-1 bg-muted/10 p-8\"><div className=\"w-full h-full border-2 border-dashed rounded-xl border-muted flex items-center justify-center\">Main Content</div></main>\n <footer className=\"h-20 border-t bg-card p-6 flex items-center justify-between\"><div className=\"w-32 h-4 bg-muted rounded\" /><div className=\"flex gap-2\"><div className=\"w-6 h-6 bg-muted rounded-full\" /><div className=\"w-6 h-6 bg-muted rounded-full\" /></div></footer>\n </div>\n)\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronDown, X, Info, HelpCircle, Bell, Star, Zap } from \"lucide-react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\n\n// --- ACCORDIONS ---\n// --- ACCORDIONS ---\ninterface AccordionProps {\n title?: React.ReactNode;\n children?: React.ReactNode;\n defaultOpen?: boolean;\n className?: string;\n}\n\nexport const SimpleAccordion = ({\n title = \"Is this library free?\",\n children = \"Yes, it is completely free and open source.\",\n defaultOpen = false,\n className = \"\"\n}: AccordionProps) => {\n const [open, setOpen] = React.useState(defaultOpen)\n return (\n <div className={`w-full max-w-md border rounded-xl overflow-hidden bg-card/50 backdrop-blur-sm border-border/50 ${className}`}>\n <button onClick={() => setOpen(!open)} className=\"w-full p-4 flex justify-between items-center hover:bg-muted/50 transition-colors font-medium\">\n <span>{title}</span>\n <ChevronDown className={`w-4 h-4 transition-transform duration-300 ${open ? 'rotate-180' : ''}`} />\n </button>\n <AnimatePresence>\n {open && (\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: \"auto\", opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\n className=\"overflow-hidden\"\n >\n <div className=\"p-4 pt-0 text-sm text-muted-foreground border-t border-border/50 mt-2 pt-2\">\n {children}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\nexport const PlusAccordion = ({\n title = \"How do I install it?\",\n children = \"You can install it via pnpm, npm, or yarn using the CLI.\",\n defaultOpen = false,\n className = \"\"\n}: AccordionProps) => {\n const [open, setOpen] = React.useState(defaultOpen)\n return (\n <div className={`w-full max-w-md border-b border-border/50 ${className}`}>\n <button onClick={() => setOpen(!open)} className=\"w-full py-4 flex justify-between items-center font-medium hover:text-primary transition-colors\">\n <span>{title}</span>\n <div className=\"relative w-4 h-4 flex items-center justify-center\">\n <div className=\"absolute w-4 h-0.5 bg-current rounded-full\" />\n <div className={`absolute w-0.5 h-4 bg-current rounded-full transition-transform duration-300 ${open ? 'rotate-90' : ''}`} />\n </div>\n </button>\n <AnimatePresence>\n {open && (\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: \"auto\", opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\n className=\"overflow-hidden\"\n >\n <div className=\"text-sm text-muted-foreground pb-4\">\n {children}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\nexport const NeonAccordion = ({\n title = \"Premium Features\",\n children = \"Access to exclusive animated components and premium layouts.\",\n defaultOpen = false,\n className = \"\"\n}: AccordionProps) => {\n const [open, setOpen] = React.useState(defaultOpen)\n return (\n <div className={`w-full max-w-md border rounded-xl overflow-hidden bg-black transition-all duration-300 ${open ? 'border-cyan-500 shadow-[0_0_15px_rgba(6,182,212,0.3)]' : 'border-neutral-800'} ${className}`}>\n <button onClick={() => setOpen(!open)} className=\"w-full p-4 flex justify-between items-center font-medium text-white\">\n <span className={open ? 'text-cyan-400' : 'text-white'}>{title}</span>\n <ChevronDown className={`w-4 h-4 transition-transform duration-300 ${open ? 'rotate-180 text-cyan-400' : 'text-white'}`} />\n </button>\n <AnimatePresence>\n {open && (\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: \"auto\", opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.3, ease: \"easeInOut\" }}\n className=\"overflow-hidden\"\n >\n <div className=\"p-4 pt-0 text-sm text-neutral-400 border-t border-neutral-800 mt-2 pt-2\">\n {children}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\n// --- MODALS ---\nexport interface BasicModalProps {\n isOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n confirmText?: string;\n cancelText?: string;\n onConfirm?: () => void;\n onCancel?: () => void;\n className?: string;\n}\n\nexport const BasicModal = ({\n isOpen: externalOpen,\n onOpenChange,\n trigger,\n title = \"Basic Modal\",\n description = \"This is a simple modal dialog that can be used for various purposes.\",\n children,\n confirmText = \"Confirm\",\n cancelText = \"Cancel\",\n onConfirm,\n onCancel,\n className = \"\"\n}: BasicModalProps) => {\n const [localOpen, setLocalOpen] = React.useState(false)\n const open = externalOpen !== undefined ? externalOpen : localOpen\n const setOpen = (val: boolean) => {\n if (onOpenChange) onOpenChange(val)\n setLocalOpen(val)\n }\n\n const handleConfirm = () => {\n if (onConfirm) onConfirm()\n setOpen(false)\n }\n\n const handleCancel = () => {\n if (onCancel) onCancel()\n setOpen(false)\n }\n\n return (\n <>\n {trigger ? (\n <span onClick={() => setOpen(true)} className=\"cursor-pointer inline-block\">{trigger}</span>\n ) : (\n <button onClick={() => setOpen(true)} className=\"px-4 py-2 bg-primary text-primary-foreground rounded-lg font-medium hover:opacity-90 transition-opacity\">Open Basic Modal</button>\n )}\n <AnimatePresence>\n {open && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n onClick={handleCancel}\n className=\"fixed inset-0 bg-black/60 backdrop-blur-sm\"\n />\n <motion.div\n initial={{ scale: 0.95, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.95, opacity: 0 }}\n transition={{ type: \"spring\", damping: 20, stiffness: 300 }}\n className={`bg-background rounded-2xl shadow-xl w-full max-w-md p-6 relative z-10 border border-border/50 ${className}`}\n >\n <button onClick={handleCancel} className=\"absolute top-4 right-4 text-muted-foreground hover:text-foreground transition-colors\"><X className=\"w-4 h-4\" /></button>\n {title && <h3 className=\"font-bold text-lg mb-2\">{title}</h3>}\n {description && <p className=\"text-muted-foreground text-sm mb-6\">{description}</p>}\n {children && <div className=\"mb-6\">{children}</div>}\n <div className=\"flex justify-end gap-2\">\n {cancelText && <button onClick={handleCancel} className=\"px-4 py-2 hover:bg-muted rounded-lg text-sm font-medium transition-colors\">{cancelText}</button>}\n {confirmText && <button onClick={handleConfirm} className=\"px-4 py-2 bg-primary text-primary-foreground rounded-lg text-sm font-medium hover:opacity-90 transition-opacity\">{confirmText}</button>}\n </div>\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n </>\n )\n}\n\nexport interface InteractiveGlassModalProps {\n isOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger?: React.ReactNode;\n icon?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n confirmText?: string;\n cancelText?: string;\n onConfirm?: () => void;\n onCancel?: () => void;\n className?: string;\n}\n\nexport const InteractiveGlassModal = ({\n isOpen: externalOpen,\n onOpenChange,\n trigger,\n icon = <Star className=\"w-6 h-6 text-yellow-300\" />,\n title = \"Premium Glass Effect\",\n description = \"This modal uses full glassmorphism for a stunning visual effect.\",\n children,\n confirmText = \"Upgrade Now\",\n cancelText = \"Maybe Later\",\n onConfirm,\n onCancel,\n className = \"\"\n}: InteractiveGlassModalProps) => {\n const [localOpen, setLocalOpen] = React.useState(false)\n const open = externalOpen !== undefined ? externalOpen : localOpen\n const setOpen = (val: boolean) => {\n if (onOpenChange) onOpenChange(val)\n setLocalOpen(val)\n }\n\n const handleConfirm = () => {\n if (onConfirm) onConfirm()\n setOpen(false)\n }\n\n const handleCancel = () => {\n if (onCancel) onCancel()\n setOpen(false)\n }\n\n return (\n <>\n {trigger ? (\n <span onClick={() => setOpen(true)} className=\"cursor-pointer inline-block\">{trigger}</span>\n ) : (\n <button onClick={() => setOpen(true)} className=\"px-4 py-2 bg-white/10 backdrop-blur-md border border-white/20 rounded-lg font-medium hover:bg-white/20 transition-colors\">Open Glass Modal</button>\n )}\n <AnimatePresence>\n {open && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n onClick={handleCancel}\n className=\"fixed inset-0 bg-black/40 backdrop-blur-md\"\n />\n <motion.div\n initial={{ y: 20, opacity: 0 }}\n animate={{ y: 0, opacity: 1 }}\n exit={{ y: 20, opacity: 0 }}\n transition={{ type: \"spring\", damping: 25, stiffness: 400 }}\n className={`bg-white/10 backdrop-blur-xl rounded-2xl shadow-2xl w-full max-w-md p-6 relative z-10 border border-white/20 text-white ${className}`}\n >\n <button onClick={handleCancel} className=\"absolute top-4 right-4 text-white/60 hover:text-white transition-colors\"><X className=\"w-4 h-4\" /></button>\n {icon && (\n <div className=\"w-12 h-12 bg-white/10 rounded-full flex items-center justify-center mb-4 border border-white/20\">\n {icon}\n </div>\n )}\n {title && <h3 className=\"font-bold text-xl mb-2\">{title}</h3>}\n {description && <p className=\"text-white/70 text-sm mb-6\">{description}</p>}\n {children && <div className=\"mb-6\">{children}</div>}\n <div className=\"flex justify-end gap-2\">\n {cancelText && <button onClick={handleCancel} className=\"px-4 py-2 hover:bg-white/5 rounded-lg text-sm font-medium transition-colors\">{cancelText}</button>}\n {confirmText && <button onClick={handleConfirm} className=\"px-4 py-2 bg-white text-black rounded-lg text-sm font-medium hover:bg-white/90 transition-colors\">{confirmText}</button>}\n </div>\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n </>\n )\n}\n\nexport interface DangerModalProps {\n isOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n trigger?: React.ReactNode;\n icon?: React.ReactNode;\n title?: React.ReactNode;\n description?: React.ReactNode;\n children?: React.ReactNode;\n confirmText?: string;\n cancelText?: string;\n onConfirm?: () => void;\n onCancel?: () => void;\n className?: string;\n}\n\nexport const DangerModal = ({\n isOpen: externalOpen,\n onOpenChange,\n trigger,\n icon = <X className=\"w-8 h-8\" />,\n title = \"Are you absolutely sure?\",\n description = \"This action cannot be undone. This will permanently delete your account and remove your data from our servers.\",\n children,\n confirmText = \"Delete\",\n cancelText = \"Cancel\",\n onConfirm,\n onCancel,\n className = \"\"\n}: DangerModalProps) => {\n const [localOpen, setLocalOpen] = React.useState(false)\n const open = externalOpen !== undefined ? externalOpen : localOpen\n const setOpen = (val: boolean) => {\n if (onOpenChange) onOpenChange(val)\n setLocalOpen(val)\n }\n\n const handleConfirm = () => {\n if (onConfirm) onConfirm()\n setOpen(false)\n }\n\n const handleCancel = () => {\n if (onCancel) onCancel()\n setOpen(false)\n }\n\n return (\n <>\n {trigger ? (\n <span onClick={() => setOpen(true)} className=\"cursor-pointer inline-block\">{trigger}</span>\n ) : (\n <button onClick={() => setOpen(true)} className=\"px-4 py-2 bg-destructive text-destructive-foreground rounded-lg font-medium hover:opacity-90 transition-opacity\">Delete Account</button>\n )}\n <AnimatePresence>\n {open && (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center p-4\">\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n onClick={handleCancel}\n className=\"fixed inset-0 bg-black/60 backdrop-blur-sm\"\n />\n <motion.div\n initial={{ rotate: 5, scale: 0.9, opacity: 0 }}\n animate={{ rotate: 0, scale: 1, opacity: 1 }}\n exit={{ rotate: -5, scale: 0.9, opacity: 0 }}\n transition={{ type: \"spring\", damping: 20, stiffness: 300 }}\n className={`bg-background rounded-2xl shadow-xl w-full max-w-md overflow-hidden relative z-10 border border-destructive/20 ${className}`}\n >\n <div className=\"p-6 text-center\">\n {icon && (\n <div className=\"w-16 h-16 bg-destructive/10 text-destructive rounded-full flex items-center justify-center mx-auto mb-4\">\n {icon}\n </div>\n )}\n {title && <h3 className=\"font-bold text-xl mb-2\">{title}</h3>}\n {description && <p className=\"text-muted-foreground text-sm\">{description}</p>}\n {children && <div className=\"mt-4\">{children}</div>}\n </div>\n <div className=\"flex border-t border-border/50 bg-muted/50\">\n {cancelText && <button onClick={handleCancel} className=\"flex-1 py-3 font-medium hover:bg-muted transition-colors border-r border-border/50\">{cancelText}</button>}\n {confirmText && <button onClick={handleConfirm} className=\"flex-1 py-3 font-medium text-destructive hover:bg-destructive/10 transition-colors\">{confirmText}</button>}\n </div>\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n </>\n )\n}\n\n// --- CHECKBOXES ---\nexport const SimpleCheckbox = () => {\n const [checked, setChecked] = React.useState(false)\n return (\n <label className=\"flex items-center gap-3 cursor-pointer group\">\n <div className={`w-5 h-5 rounded border flex items-center justify-center transition-all duration-200 ${checked ? 'bg-primary border-primary text-primary-foreground scale-110' : 'border-border group-hover:border-primary'}`}>\n {checked && <Check className=\"w-3 h-3 stroke-[3]\" />}\n </div>\n <input type=\"checkbox\" className=\"hidden\" checked={checked} onChange={(e) => setChecked(e.target.checked)} />\n <span className=\"text-sm font-medium select-none text-muted-foreground group-hover:text-foreground transition-colors\">Accept terms and conditions</span>\n </label>\n )\n}\n\nexport const InteractiveCardCheckbox = ({ title = \"Pro Plan\", description = \"$29/month. Billed annually.\", checked: externalChecked, onCheckedChange, ...props }: any) => {\n const [localChecked, setLocalChecked] = React.useState(false)\n const isChecked = externalChecked !== undefined ? externalChecked : localChecked\n const setChecked = onCheckedChange || setLocalChecked\n\n return (\n <label className={`flex gap-4 p-4 border rounded-xl cursor-pointer transition-all duration-300 ${isChecked ? 'border-primary ring-1 ring-primary bg-primary/5 shadow-lg shadow-primary/5' : 'border-border hover:border-primary/50 hover:bg-muted/50'}`} {...props}>\n <div className={`w-5 h-5 rounded-full border mt-0.5 flex shrink-0 items-center justify-center transition-all duration-200 ${isChecked ? 'bg-primary border-primary text-primary-foreground scale-110' : 'border-border'}`}>\n {isChecked && <div className=\"w-2 h-2 rounded-full bg-primary-foreground\" />}\n </div>\n <input type=\"checkbox\" className=\"hidden\" checked={isChecked} onChange={(e) => setChecked(e.target.checked)} />\n <div>\n <div className={`font-medium transition-colors ${isChecked ? 'text-primary' : 'text-foreground'}`}>{title}</div>\n <div className=\"text-sm text-muted-foreground\">{description}</div>\n </div>\n </label>\n )\n}\n\n\n\n// --- SWITCHES ---\nexport const SimpleSwitch = () => {\n const [checked, setChecked] = React.useState(false)\n return (\n <div className=\"flex items-center justify-between w-full max-w-xs p-3 border rounded-lg bg-muted/20\">\n <span className=\"text-sm font-medium\">Airplane Mode</span>\n <button \n onClick={() => setChecked(!checked)}\n className={`w-11 h-6 rounded-full relative transition-colors duration-300 ${checked ? 'bg-primary' : 'bg-muted-foreground/30'}`}\n >\n <div className={`w-5 h-5 rounded-full bg-background absolute top-0.5 transition-transform duration-300 shadow-md ${checked ? 'translate-x-[22px]' : 'translate-x-[2px]'}`} />\n </button>\n </div>\n )\n}\n\nexport const NeonSwitch = () => {\n const [checked, setChecked] = React.useState(false)\n return (\n <div className=\"flex items-center justify-between w-full max-w-xs p-3 border border-neutral-800 rounded-lg bg-black\">\n <span className=\"text-sm font-medium text-white\">Dark Energy</span>\n <button \n onClick={() => setChecked(!checked)}\n className={`w-12 h-6 rounded-full relative transition-colors duration-300 ${checked ? 'bg-cyan-500 shadow-[0_0_10px_rgba(6,182,212,0.5)]' : 'bg-neutral-800'}`}\n >\n <div className={`w-4 h-4 rounded-full bg-white absolute top-1 transition-transform duration-300 shadow-md ${checked ? 'translate-x-[26px]' : 'translate-x-[2px]'}`} />\n </button>\n </div>\n )\n}\n\n// --- SELECTS ---\nexport const SimpleSelect = () => {\n const [open, setOpen] = React.useState(false)\n const [value, setValue] = React.useState(\"Apple\")\n const options = [\"Apple\", \"Banana\", \"Orange\", \"Grape\"]\n \n return (\n <div className=\"relative w-full max-w-xs\">\n <button onClick={() => setOpen(!open)} className=\"w-full px-3 py-2 border border-border/50 rounded-lg flex justify-between items-center text-sm bg-card/50 backdrop-blur-sm hover:border-primary transition-colors\">\n <span className=\"font-medium\">{value}</span>\n <ChevronDown className={`w-4 h-4 opacity-50 transition-transform duration-300 ${open ? 'rotate-180' : ''}`} />\n </button>\n <AnimatePresence>\n {open && (\n <motion.div\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.2 }}\n className=\"absolute top-full left-0 w-full mt-1 border border-border/50 rounded-lg bg-card backdrop-blur-md shadow-lg z-50 py-1\"\n >\n {options.map(opt => (\n <div \n key={opt} \n onClick={() => { setValue(opt); setOpen(false); }}\n className={`px-3 py-2 text-sm hover:bg-muted cursor-pointer flex justify-between items-center ${value === opt ? 'text-primary font-medium' : 'text-foreground'}`}\n >\n {opt} {value === opt && <Check className=\"w-4 h-4\" />}\n </div>\n ))}\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n\n// --- TOOLTIPS ---\ninterface SimpleTooltipProps {\n content: React.ReactNode\n position?: \"top\" | \"bottom\" | \"left\" | \"right\"\n children?: React.ReactNode\n}\n\nexport const SimpleTooltip = ({ content, position = \"top\", children }: SimpleTooltipProps) => {\n const positionClasses = {\n top: \"bottom-full left-1/2 -translate-x-1/2 mb-2 origin-bottom\",\n bottom: \"top-full left-1/2 -translate-x-1/2 mt-2 origin-top\",\n left: \"right-full top-1/2 -translate-y-1/2 mr-2 origin-right\",\n right: \"left-full top-1/2 -translate-y-1/2 ml-2 origin-left\",\n }\n\n const arrowClasses = {\n top: \"top-full left-1/2 -translate-x-1/2 border-t-foreground\",\n bottom: \"bottom-full left-1/2 -translate-x-1/2 border-b-foreground\",\n left: \"left-full top-1/2 -translate-y-1/2 border-l-foreground\",\n right: \"right-full top-1/2 -translate-y-1/2 border-r-foreground\",\n }\n\n return (\n <div className=\"group relative inline-block\">\n {children ? (\n children\n ) : (\n <button className=\"p-3 border border-border/50 rounded-full hover:bg-muted/50 transition-colors bg-card/50 backdrop-blur-sm\">\n <Info className=\"w-5 h-5 text-muted-foreground group-hover:text-primary transition-colors\" />\n </button>\n )}\n <div className={`absolute z-50 w-max px-3 py-1.5 bg-foreground text-background text-xs font-medium rounded-lg opacity-0 scale-95 group-hover:opacity-100 group-hover:scale-100 transition-all duration-200 pointer-events-none shadow-lg ${positionClasses[position]}`}>\n {content}\n <div className={`absolute border-4 border-transparent ${arrowClasses[position]}`} />\n </div>\n </div>\n )\n}\n\ninterface RichTooltipProps {\n content: React.ReactNode\n children?: React.ReactNode\n}\n\nexport const RichTooltip = ({ content, children }: RichTooltipProps) => {\n return (\n <div className=\"group relative inline-block\">\n {children ? (\n children\n ) : (\n <button className=\"p-3 border border-border/50 rounded-full hover:bg-muted/50 transition-colors bg-card/50 backdrop-blur-sm\">\n <HelpCircle className=\"w-5 h-5 text-muted-foreground group-hover:text-primary transition-colors\" />\n </button>\n )}\n <div className=\"absolute z-50 bottom-full left-1/2 -translate-x-1/2 mb-3 w-64 p-4 bg-card border border-border/50 rounded-xl opacity-0 scale-95 group-hover:opacity-100 group-hover:scale-100 transition-all duration-200 pointer-events-none origin-bottom shadow-xl backdrop-blur-md\">\n {content}\n <div className=\"absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent border-t-card\" />\n <div className=\"absolute top-full left-1/2 -translate-x-1/2 border-4 border-transparent border-t-border/50 -z-10\" />\n </div>\n </div>\n )\n}\n","\"use client\";\n\nimport React from 'react';\nimport { motion } from 'framer-motion';\nimport { cn } from '../utils/cn';\nimport { LucideIcon } from 'lucide-react';\n\ninterface SpecialPremiumCardProps {\n title: string;\n description: string;\n icon?: LucideIcon;\n gradient?: string;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const SpecialPremiumCard = ({\n title,\n description,\n icon: Icon,\n gradient = \"from-pink-500 via-red-500 to-yellow-500\",\n className,\n children\n}: SpecialPremiumCardProps) => {\n return (\n <motion.div\n whileHover={{ scale: 1.02 }}\n whileTap={{ scale: 0.98 }}\n className={cn(\n \"relative p-1 rounded-2xl overflow-hidden group transition-all duration-300\",\n className\n )}\n >\n {/* Background Gradient */}\n <div className={cn(\n \"absolute inset-0 bg-gradient-to-br opacity-50 group-hover:opacity-100 transition-opacity duration-300\",\n gradient\n )} />\n\n {/* Card Content */}\n <div className=\"relative bg-black/80 backdrop-blur-xl p-6 rounded-2xl h-full flex flex-col justify-between border border-white/10 group-hover:border-white/20 transition-colors duration-300\">\n <div>\n {Icon && (\n <div className=\"p-3 bg-white/5 w-fit rounded-xl mb-4 group-hover:scale-110 transition-transform duration-300\">\n <Icon className=\"w-6 h-6 text-white\" />\n </div>\n )}\n <h3 className=\"text-xl font-bold text-white mb-2\">{title}</h3>\n <p className=\"text-gray-400 text-sm group-hover:text-gray-300 transition-colors duration-300\">{description}</p>\n </div>\n \n {children && (\n <div className=\"mt-4\">\n {children}\n </div>\n )}\n\n {/* Shimmer Effect */}\n <div className=\"absolute inset-0 -translate-x-full group-hover:translate-x-full transition-transform duration-1000 bg-gradient-to-r from-transparent via-white/10 to-transparent pointer-events-none\" />\n </div>\n </motion.div>\n );\n};\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, useMotionValue, useSpring, useTransform } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. Marquee — Infinite scrolling marquee\n// ============================================\nexport interface MarqueeProps {\n children: React.ReactNode\n speed?: number\n direction?: \"left\" | \"right\"\n pauseOnHover?: boolean\n className?: string\n}\n\nexport function Marquee({\n children,\n speed = 30,\n direction = \"left\",\n pauseOnHover = true,\n className,\n}: MarqueeProps) {\n return (\n <div\n className={cn(\n \"group flex overflow-hidden [--duration:30s] [--gap:1rem]\",\n className\n )}\n style={{ \"--duration\": `${speed}s` } as React.CSSProperties}\n >\n {Array.from({ length: 2 }).map((_, i) => (\n <div\n key={i}\n className={cn(\n \"flex shrink-0 justify-around gap-[var(--gap)]\",\n direction === \"left\" ? \"animate-marquee-left\" : \"animate-marquee-right\",\n pauseOnHover && \"group-hover:[animation-play-state:paused]\"\n )}\n style={{\n animationDuration: `${speed}s`,\n }}\n >\n {children}\n </div>\n ))}\n </div>\n )\n}\n\n// ============================================\n// 2. NumberTicker — Animated counter\n// ============================================\nexport interface NumberTickerProps {\n value: number\n direction?: \"up\" | \"down\"\n delay?: number\n className?: string\n decimalPlaces?: number\n}\n\nexport function NumberTicker({\n value,\n direction = \"up\",\n delay = 0,\n className,\n decimalPlaces = 0,\n}: NumberTickerProps) {\n const ref = React.useRef<HTMLSpanElement>(null)\n const motionValue = useMotionValue(direction === \"down\" ? value : 0)\n const springValue = useSpring(motionValue, {\n damping: 60,\n stiffness: 100,\n })\n\n React.useEffect(() => {\n const timer = setTimeout(() => {\n motionValue.set(direction === \"down\" ? 0 : value)\n }, delay * 1000)\n return () => clearTimeout(timer)\n }, [motionValue, delay, value, direction])\n\n React.useEffect(() => {\n return springValue.on(\"change\", (latest) => {\n if (ref.current) {\n ref.current.textContent = Intl.NumberFormat(\"en-US\", {\n minimumFractionDigits: decimalPlaces,\n maximumFractionDigits: decimalPlaces,\n }).format(Number(latest.toFixed(decimalPlaces)))\n }\n })\n }, [springValue, decimalPlaces])\n\n return (\n <span\n className={cn(\n \"inline-block tabular-nums tracking-wider\",\n className\n )}\n ref={ref}\n />\n )\n}\n\n// ============================================\n// 3. TypingAnimation — Typewriter effect\n// ============================================\nexport interface TypingAnimationProps {\n text: string\n duration?: number\n className?: string\n cursor?: boolean\n}\n\nexport function TypingAnimation({\n text,\n duration = 50,\n className,\n cursor = true,\n}: TypingAnimationProps) {\n const [displayedText, setDisplayedText] = React.useState(\"\")\n const [i, setI] = React.useState(0)\n\n React.useEffect(() => {\n if (i < text.length) {\n const timer = setTimeout(() => {\n setDisplayedText(text.substring(0, i + 1))\n setI(i + 1)\n }, duration)\n return () => clearTimeout(timer)\n }\n }, [i, text, duration])\n\n return (\n <span className={cn(\"font-display text-center tracking-[-0.02em] drop-shadow-sm\", className)}>\n {displayedText}\n {cursor && (\n <motion.span\n animate={{ opacity: [1, 0] }}\n transition={{ duration: 0.7, repeat: Infinity, repeatType: \"reverse\" }}\n className=\"inline-block w-[2px] h-[1em] bg-current ml-0.5 align-text-bottom\"\n />\n )}\n </span>\n )\n}\n\n// ============================================\n// 4. SpotlightCard — Card with cursor-following spotlight\n// ============================================\nexport interface SpotlightCardProps {\n children: React.ReactNode\n className?: string\n spotlightColor?: string\n}\n\nexport function SpotlightCard({\n children,\n className,\n spotlightColor = \"rgba(120, 119, 198, 0.15)\",\n}: SpotlightCardProps) {\n const divRef = React.useRef<HTMLDivElement>(null)\n const [position, setPosition] = React.useState({ x: 0, y: 0 })\n const [opacity, setOpacity] = React.useState(0)\n\n const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!divRef.current) return\n const rect = divRef.current.getBoundingClientRect()\n setPosition({ x: e.clientX - rect.left, y: e.clientY - rect.top })\n }\n\n return (\n <div\n ref={divRef}\n onMouseMove={handleMouseMove}\n onMouseEnter={() => setOpacity(1)}\n onMouseLeave={() => setOpacity(0)}\n className={cn(\n \"relative overflow-hidden rounded-xl border border-border bg-card p-6 transition-colors\",\n className\n )}\n >\n <div\n className=\"pointer-events-none absolute -inset-px rounded-xl opacity-0 transition-opacity duration-300\"\n style={{\n opacity,\n background: `radial-gradient(600px circle at ${position.x}px ${position.y}px, ${spotlightColor}, transparent 40%)`,\n }}\n />\n <div className=\"relative z-10\">{children}</div>\n </div>\n )\n}\n\n// ============================================\n// 5. AnimatedGradientBorder — Animated gradient border\n// ============================================\nexport interface AnimatedGradientBorderProps {\n children: React.ReactNode\n className?: string\n containerClassName?: string\n gradientClassName?: string\n duration?: number\n}\n\nexport function AnimatedGradientBorder({\n children,\n className,\n containerClassName,\n gradientClassName,\n duration = 3,\n}: AnimatedGradientBorderProps) {\n return (\n <div className={cn(\"relative rounded-xl p-[1px]\", containerClassName)}>\n <motion.div\n className={cn(\n \"absolute inset-0 rounded-xl\",\n gradientClassName\n )}\n style={{\n background: \"linear-gradient(var(--angle, 0deg), #ff0080, #7928ca, #ff0080)\",\n }}\n animate={{\n \"--angle\": [\"0deg\", \"360deg\"],\n } as any}\n transition={{\n duration,\n repeat: Infinity,\n ease: \"linear\",\n }}\n />\n <div className={cn(\"relative rounded-xl bg-background\", className)}>\n {children}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 6. Dock — macOS-style dock with magnify effect\n// ============================================\nexport interface DockProps {\n items: {\n icon: React.ReactNode\n label: string\n onClick?: () => void\n }[]\n className?: string\n magnification?: number\n distance?: number\n}\n\nexport function Dock({\n items,\n className,\n magnification = 60,\n distance = 140,\n}: DockProps) {\n const mouseX = useMotionValue(Infinity)\n\n return (\n <motion.div\n onMouseMove={(e) => mouseX.set(e.pageX)}\n onMouseLeave={() => mouseX.set(Infinity)}\n className={cn(\n \"mx-auto flex h-14 items-end gap-3 rounded-2xl border border-border bg-background/80 px-4 pb-2 backdrop-blur-md\",\n className\n )}\n >\n {items.map((item, i) => (\n <DockIcon key={i} mouseX={mouseX} magnification={magnification} distance={distance} {...item} />\n ))}\n </motion.div>\n )\n}\n\nfunction DockIcon({\n mouseX,\n magnification,\n distance,\n icon,\n label,\n onClick,\n}: {\n mouseX: any\n magnification: number\n distance: number\n icon: React.ReactNode\n label: string\n onClick?: () => void\n}) {\n const ref = React.useRef<HTMLDivElement>(null)\n\n const distanceVal = useTransform(mouseX, (val: number) => {\n const bounds = ref.current?.getBoundingClientRect() ?? { x: 0, width: 0 }\n return val - bounds.x - bounds.width / 2\n })\n\n const widthSync = useTransform(\n distanceVal,\n [-distance, 0, distance],\n [40, magnification, 40]\n )\n\n const width = useSpring(widthSync, {\n mass: 0.1,\n stiffness: 150,\n damping: 12,\n })\n\n return (\n <motion.div\n ref={ref}\n style={{ width }}\n className=\"group relative flex aspect-square cursor-pointer items-center justify-center rounded-full bg-muted/80 hover:bg-accent transition-colors\"\n onClick={onClick}\n title={label}\n >\n <div className=\"flex items-center justify-center text-foreground\">\n {icon}\n </div>\n <span className=\"absolute -top-8 left-1/2 -translate-x-1/2 rounded-md bg-popover px-2 py-1 text-xs text-popover-foreground border border-border opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap shadow-lg\">\n {label}\n </span>\n </motion.div>\n )\n}\n\n// ============================================\n// 7. AnimatedBeam — SVG beam connecting elements\n// ============================================\nexport interface AnimatedBeamProps {\n className?: string\n children: React.ReactNode\n}\n\nexport function AnimatedBeam({ className, children }: AnimatedBeamProps) {\n return (\n <div className={cn(\"relative\", className)}>\n {children}\n </div>\n )\n}\n\n// ============================================\n// 8. ShinyText — Text with a shimmering highlight\n// ============================================\nexport interface ShinyTextProps {\n children: React.ReactNode\n className?: string\n shimmerWidth?: number\n}\n\nexport function ShinyText({\n children,\n className,\n shimmerWidth = 100,\n}: ShinyTextProps) {\n return (\n <span\n className={cn(\n \"inline-block bg-clip-text text-transparent\",\n \"bg-[length:250%_100%] animate-shimmer-text\",\n className\n )}\n style={{\n backgroundImage: `linear-gradient(110deg, currentColor 35%, rgba(255,255,255,0.8) 50%, currentColor 65%)`,\n WebkitBackgroundClip: \"text\",\n backgroundClip: \"text\",\n color: \"transparent\",\n backgroundSize: `${shimmerWidth * 3}% 100%`,\n }}\n >\n {children}\n </span>\n )\n}\n\n// ============================================\n// 9. RetroGrid — Retro perspective grid background\n// ============================================\nexport interface RetroGridProps {\n className?: string\n angle?: number\n}\n\nexport function RetroGrid({ className, angle = 65 }: RetroGridProps) {\n return (\n <div\n className={cn(\n \"pointer-events-none absolute inset-0 overflow-hidden [perspective:200px]\",\n className\n )}\n style={{ \"--grid-angle\": `${angle}deg` } as React.CSSProperties}\n >\n <div className=\"absolute inset-0 [transform:rotateX(var(--grid-angle))]\">\n <div\n className=\"animate-grid\"\n style={{\n backgroundRepeat: \"repeat\",\n backgroundSize: \"60px 60px\",\n height: \"300vh\",\n inset: \"-50% 0px\",\n marginLeft: \"-50%\",\n transformOrigin: \"100% 0 0\",\n width: \"600vw\",\n backgroundImage: `linear-gradient(to right, rgba(0,0,0,0.1) 1px, transparent 0),\n linear-gradient(to bottom, rgba(0,0,0,0.1) 1px, transparent 0)`,\n }}\n />\n </div>\n <div className=\"absolute inset-0 bg-gradient-to-t from-background to-transparent to-90%\" />\n </div>\n )\n}\n\n// ============================================\n// 10. Meteors — Falling meteors animation\n// ============================================\nexport interface MeteorsProps {\n number?: number\n className?: string\n}\n\nexport function Meteors({ number = 20, className }: MeteorsProps) {\n const meteors = React.useMemo(() => {\n return [...Array(number)].map((_, idx) => ({\n id: idx,\n size: Math.floor(Math.random() * 2) + 1,\n left: `${Math.floor(Math.random() * 100)}%`,\n animationDelay: `${(Math.random() * 2).toFixed(1)}s`,\n animationDuration: `${Math.floor(Math.random() * 8 + 5)}s`,\n }))\n }, [number])\n\n return (\n <div className={cn(\"absolute inset-0 overflow-hidden pointer-events-none\", className)}>\n {meteors.map((meteor) => (\n <span\n key={meteor.id}\n className=\"absolute top-0 animate-meteor rounded-full bg-foreground/20 shadow-[0_0_0_1px_#ffffff10]\"\n style={{\n left: meteor.left,\n width: `${meteor.size}px`,\n height: `${meteor.size * 20}px`,\n animationDelay: meteor.animationDelay,\n animationDuration: meteor.animationDuration,\n }}\n >\n <div className=\"absolute top-1/2 -translate-y-1/2 w-[1px] h-full bg-gradient-to-b from-foreground/30 to-transparent\" />\n </span>\n ))}\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, useMotionValue, useSpring, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. MorphingText — Text morphing between values\n// ============================================\nexport interface MorphingTextProps {\n texts: string[]\n className?: string\n interval?: number\n}\n\nexport function MorphingText({\n texts,\n className,\n interval = 3000,\n}: MorphingTextProps) {\n const [currentIndex, setCurrentIndex] = React.useState(0)\n\n React.useEffect(() => {\n const timer = setInterval(() => {\n setCurrentIndex((prev) => (prev + 1) % texts.length)\n }, interval)\n return () => clearInterval(timer)\n }, [texts.length, interval])\n\n return (\n <div className={cn(\"relative overflow-hidden\", className)}>\n <AnimatePresence mode=\"wait\">\n <motion.span\n key={currentIndex}\n initial={{ y: 20, opacity: 0, filter: \"blur(8px)\" }}\n animate={{ y: 0, opacity: 1, filter: \"blur(0px)\" }}\n exit={{ y: -20, opacity: 0, filter: \"blur(8px)\" }}\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\n className=\"block\"\n >\n {texts[currentIndex]}\n </motion.span>\n </AnimatePresence>\n </div>\n )\n}\n\n// ============================================\n// 2. AnimatedList — Animated notification list\n// ============================================\nexport interface AnimatedListProps {\n children: React.ReactNode\n className?: string\n delay?: number\n}\n\nexport function AnimatedList({\n children,\n className,\n delay = 500,\n}: AnimatedListProps) {\n const [items, setItems] = React.useState<React.ReactNode[]>([])\n const childArray = React.Children.toArray(children)\n\n React.useEffect(() => {\n let i = 0\n const timer = setInterval(() => {\n if (i < childArray.length) {\n setItems((prev) => [...prev, childArray[i]])\n i++\n } else {\n clearInterval(timer)\n }\n }, delay)\n return () => clearInterval(timer)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div className={cn(\"flex flex-col gap-2\", className)}>\n <AnimatePresence>\n {items.map((item, index) => (\n <motion.div\n key={index}\n initial={{ opacity: 0, y: 20, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: -20, scale: 0.95 }}\n transition={{ duration: 0.3, ease: \"easeOut\" }}\n >\n {item}\n </motion.div>\n ))}\n </AnimatePresence>\n </div>\n )\n}\n\n// ============================================\n// 3. BlurFade — Blur in fade animation wrapper\n// ============================================\nexport interface BlurFadeProps {\n children: React.ReactNode\n className?: string\n delay?: number\n yOffset?: number\n duration?: number\n inView?: boolean\n}\n\nexport function BlurFade({\n children,\n className,\n delay = 0,\n yOffset = 6,\n duration = 0.4,\n inView = true,\n}: BlurFadeProps) {\n const ref = React.useRef<HTMLDivElement>(null)\n const [isInView, setIsInView] = React.useState(!inView)\n\n React.useEffect(() => {\n if (!inView) return\n\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setIsInView(true)\n }\n },\n { threshold: 0.1 }\n )\n\n if (ref.current) observer.observe(ref.current)\n return () => observer.disconnect()\n }, [inView])\n\n return (\n <motion.div\n ref={ref}\n initial={{ y: yOffset, opacity: 0, filter: \"blur(4px)\" }}\n animate={isInView ? { y: 0, opacity: 1, filter: \"blur(0px)\" } : {}}\n transition={{ delay, duration, ease: \"easeOut\" }}\n className={className}\n >\n {children}\n </motion.div>\n )\n}\n\n// ============================================\n// 4. InteractiveHoverButton — Button with expanding hover\n// ============================================\nexport interface InteractiveHoverButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n text?: string\n className?: string\n}\n\nexport function InteractiveHoverButton({\n text = \"Button\",\n className,\n ...props\n}: InteractiveHoverButtonProps) {\n return (\n <button\n className={cn(\n \"group relative w-32 cursor-pointer overflow-hidden rounded-full border border-border bg-background p-2 text-center font-semibold transition-colors duration-300\",\n className\n )}\n {...props}\n >\n <span className=\"inline-block translate-x-1 transition-all duration-300 group-hover:translate-x-12 group-hover:opacity-0\">\n {text}\n </span>\n <div className=\"absolute top-0 z-10 flex h-full w-full translate-x-12 items-center justify-center gap-2 text-primary-foreground opacity-0 transition-all duration-300 group-hover:-translate-x-1 group-hover:opacity-100\">\n <span>{text}</span>\n </div>\n <div className=\"absolute left-[20%] top-[40%] h-2 w-2 scale-[1] rounded-lg bg-primary transition-all duration-300 group-hover:left-[0%] group-hover:top-[0%] group-hover:h-full group-hover:w-full group-hover:scale-[1.8] group-hover:rounded-none\" />\n </button>\n )\n}\n\n// ============================================\n// 5. PulsatingButton — Button with pulsating ring\n// ============================================\nexport interface PulsatingButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n pulseColor?: string\n duration?: string\n className?: string\n}\n\nexport function PulsatingButton({\n className,\n children,\n pulseColor = \"hsl(var(--primary))\",\n duration = \"1.5s\",\n ...props\n}: PulsatingButtonProps) {\n return (\n <button\n className={cn(\n \"relative text-center cursor-pointer flex justify-center items-center rounded-lg text-white bg-primary px-4 py-2\",\n className\n )}\n style={\n {\n \"--pulse-color\": pulseColor,\n \"--duration\": duration,\n } as React.CSSProperties\n }\n {...props}\n >\n <div className=\"relative z-10\">{children}</div>\n <div className=\"absolute top-1/2 left-1/2 size-full rounded-lg bg-inherit animate-pulse-ring -translate-x-1/2 -translate-y-1/2\" />\n </button>\n )\n}\n\n// ============================================\n// 6. RainbowButton — Button with rainbow gradient border\n// ============================================\nexport interface RainbowButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n className?: string\n}\n\nexport function RainbowButton({\n children,\n className,\n ...props\n}: RainbowButtonProps) {\n return (\n <button\n className={cn(\n \"group relative inline-flex h-11 animate-rainbow cursor-pointer items-center justify-center rounded-xl border-0 bg-[length:200%] px-8 py-2 font-medium text-primary-foreground transition-colors [background-clip:padding-box,border-box,border-box] [background-origin:border-box] [border:calc(0.08*1rem)_solid_transparent]\",\n \"bg-[linear-gradient(#121213,#121213),linear-gradient(#121213_50%,rgba(18,18,19,0.6)_80%,rgba(18,18,19,0)),linear-gradient(90deg,hsl(0,100%,63%),hsl(30,100%,63%),hsl(60,100%,63%),hsl(120,100%,63%),hsl(180,100%,63%),hsl(240,100%,63%),hsl(300,100%,63%),hsl(360,100%,63%))]\",\n \"dark:bg-[linear-gradient(#fff,#fff),linear-gradient(#fff_50%,rgba(255,255,255,0.6)_80%,rgba(0,0,0,0)),linear-gradient(90deg,hsl(0,100%,63%),hsl(30,100%,63%),hsl(60,100%,63%),hsl(120,100%,63%),hsl(180,100%,63%),hsl(240,100%,63%),hsl(300,100%,63%),hsl(360,100%,63%))]\",\n \"dark:text-primary\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n )\n}\n\n// ============================================\n// 7. CoolMode — Particles burst on click\n// ============================================\nexport interface CoolModeProps {\n children: React.ReactElement\n className?: string\n}\n\nexport function CoolMode({ children, className }: CoolModeProps) {\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n const handleClick = (e: React.MouseEvent) => {\n const rect = containerRef.current?.getBoundingClientRect()\n if (!rect) return\n\n const x = e.clientX - rect.left\n const y = e.clientY - rect.top\n const count = 15\n\n for (let i = 0; i < count; i++) {\n const particle = document.createElement(\"div\")\n const size = Math.random() * 8 + 4\n const angle = (Math.PI * 2 * i) / count\n const velocity = Math.random() * 80 + 40\n\n particle.style.cssText = `\n position: absolute;\n left: ${x}px;\n top: ${y}px;\n width: ${size}px;\n height: ${size}px;\n border-radius: 50%;\n background: hsl(${Math.random() * 360}, 70%, 60%);\n pointer-events: none;\n z-index: 9999;\n transform: translate(-50%, -50%);\n transition: all ${0.5 + Math.random() * 0.5}s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n `\n\n containerRef.current?.appendChild(particle)\n\n requestAnimationFrame(() => {\n particle.style.transform = `translate(${Math.cos(angle) * velocity}px, ${Math.sin(angle) * velocity}px)`\n particle.style.opacity = \"0\"\n })\n\n setTimeout(() => particle.remove(), 1000)\n }\n }\n\n return (\n <div ref={containerRef} className={cn(\"relative inline-block\", className)} onClick={handleClick}>\n {children}\n </div>\n )\n}\n\n// ============================================\n// 8. WordPullUp — Words pulling up animation\n// ============================================\nexport interface WordPullUpProps {\n words: string\n className?: string\n delayMultiple?: number\n}\n\nexport function WordPullUp({\n words,\n className,\n delayMultiple = 0.08,\n}: WordPullUpProps) {\n const wordArray = words.split(\" \")\n\n return (\n <div className={cn(\"flex flex-wrap justify-center gap-x-2\", className)}>\n {wordArray.map((word, i) => (\n <motion.span\n key={i}\n initial={{ opacity: 0, y: 20, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, y: 0, filter: \"blur(0px)\" }}\n transition={{\n delay: i * delayMultiple,\n duration: 0.3,\n ease: [0.2, 0.65, 0.3, 0.9],\n }}\n className=\"inline-block\"\n >\n {word}\n </motion.span>\n ))}\n </div>\n )\n}\n\n// ============================================\n// 9. BoxReveal — Box reveal animation\n// ============================================\nexport interface BoxRevealProps {\n children: React.ReactNode\n className?: string\n boxColor?: string\n duration?: number\n delay?: number\n}\n\nexport function BoxReveal({\n children,\n className,\n boxColor = \"hsl(var(--primary))\",\n duration = 0.5,\n delay = 0,\n}: BoxRevealProps) {\n return (\n <div className={cn(\"relative inline-block overflow-hidden\", className)}>\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ delay: delay + duration, duration: 0.01 }}\n >\n {children}\n </motion.div>\n <motion.div\n className=\"absolute inset-0\"\n style={{ backgroundColor: boxColor, transformOrigin: \"left\" }}\n initial={{ scaleX: 0 }}\n animate={{ scaleX: [0, 1, 1, 0] }}\n transition={{\n duration: duration * 2,\n delay,\n ease: \"easeInOut\",\n times: [0, 0.5, 0.5, 1],\n }}\n />\n </div>\n )\n}\n\n// ============================================\n// 10. TextShimmer — Text with color shimmer\n// ============================================\nexport interface TextShimmerProps {\n children: React.ReactNode\n className?: string\n duration?: number\n spread?: number\n}\n\nexport function TextShimmer({\n children,\n className,\n duration = 2,\n spread = 2,\n}: TextShimmerProps) {\n return (\n <span\n className={cn(\n \"inline-flex animate-text-shimmer bg-clip-text text-transparent\",\n className\n )}\n style={{\n backgroundImage: `linear-gradient(\n 110deg,\n hsl(var(--foreground)) 35%,\n hsl(var(--primary)) ${50 - spread}%,\n hsl(var(--primary)) ${50 + spread}%,\n hsl(var(--foreground)) 65%\n )`,\n backgroundSize: \"250% 100%\",\n animationDuration: `${duration}s`,\n WebkitBackgroundClip: \"text\",\n backgroundClip: \"text\",\n }}\n >\n {children}\n </span>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. GlowButton V2 — Improved neon glow\n// ============================================\nexport function NeonGlowButton({ children, className, color = \"#8b5cf6\", ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & { color?: string }) {\n return (\n <button\n className={cn(\n \"relative px-6 py-2.5 rounded-lg font-semibold text-white overflow-hidden transition-all duration-300 hover:scale-105 active:scale-95\",\n className\n )}\n style={{ backgroundColor: color, boxShadow: `0 0 20px ${color}60, 0 0 40px ${color}30` }}\n {...props}\n >\n <span className=\"relative z-10\">{children}</span>\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/20 to-transparent\" />\n </button>\n )\n}\n\n// ============================================\n// 2. OutlineGradientButton\n// ============================================\nexport function OutlineGradientButton({ children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n return (\n <button\n className={cn(\n \"relative inline-flex items-center justify-center px-6 py-2.5 font-semibold text-foreground rounded-lg group overflow-hidden transition-all duration-300 hover:scale-105 active:scale-95\",\n className\n )}\n {...props}\n >\n <span className=\"absolute inset-0 rounded-lg bg-gradient-to-r from-violet-600 via-pink-600 to-orange-500 p-[2px]\">\n <span className=\"flex h-full w-full items-center justify-center rounded-[6px] bg-background transition-colors group-hover:bg-background/80\" />\n </span>\n <span className=\"relative bg-gradient-to-r from-violet-400 via-pink-400 to-orange-400 bg-clip-text text-transparent\">{children}</span>\n </button>\n )\n}\n\n// ============================================\n// 3. MorphButton — Shape morphing button\n// ============================================\nexport function MorphButton({ children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\n return (\n <motion.button\n className={cn(\n \"relative px-6 py-2.5 rounded-lg font-semibold bg-primary text-primary-foreground border border-primary/20\",\n className\n )}\n whileHover={{\n borderRadius: \"24px\",\n scale: 1.05,\n }}\n whileTap={{ scale: 0.95 }}\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n {...motionSafeProps}\n >\n {children}\n </motion.button>\n )\n}\n\n// ============================================\n// 4. SplitButton\n// ============================================\nexport function SplitButton({ primary, secondary, onPrimary, onSecondary, className }: {\n primary: string\n secondary: string\n onPrimary?: () => void\n onSecondary?: () => void\n className?: string\n}) {\n return (\n <div className={cn(\"inline-flex rounded-lg overflow-hidden shadow-sm\", className)}>\n <button onClick={onPrimary} className=\"px-4 py-2 bg-primary text-primary-foreground font-medium hover:bg-primary/90 transition-colors\">\n {primary}\n </button>\n <button onClick={onSecondary} className=\"px-3 py-2 bg-primary/80 text-primary-foreground border-l border-primary-foreground/20 hover:bg-primary/70 transition-colors\">\n {secondary}\n </button>\n </div>\n )\n}\n\n// ============================================\n// 5. CopyTextButton — Copy text to clipboard with visual feedback\n// ============================================\nexport function CopyTextButton({ text, className }: { text: string; className?: string }) {\n const [copied, setCopied] = React.useState(false)\n return (\n <button\n className={cn(\"inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-secondary text-secondary-foreground font-mono text-sm hover:bg-secondary/80 transition-all active:scale-95\", className)}\n onClick={() => { navigator.clipboard.writeText(text); setCopied(true); setTimeout(() => setCopied(false), 2000) }}\n >\n <span className=\"truncate max-w-[200px]\">{text}</span>\n <AnimatePresence mode=\"wait\">\n {copied ? (\n <motion.svg key=\"check\" initial={{ scale: 0 }} animate={{ scale: 1 }} exit={{ scale: 0 }} className=\"w-4 h-4 text-green-500\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></motion.svg>\n ) : (\n <motion.svg key=\"copy\" initial={{ scale: 0 }} animate={{ scale: 1 }} exit={{ scale: 0 }} className=\"w-4 h-4 opacity-50\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" /></motion.svg>\n )}\n </AnimatePresence>\n </button>\n )\n}\n\n// ============================================\n// 6. ExpandButton — Expands on hover to show icon\n// ============================================\nexport function ExpandButton({ children, icon, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & { icon: React.ReactNode }) {\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\n return (\n <motion.button\n className={cn(\"inline-flex items-center gap-0 px-4 py-2.5 rounded-lg bg-primary text-primary-foreground font-semibold overflow-hidden\", className)}\n whileHover=\"expanded\"\n initial=\"collapsed\"\n {...motionSafeProps}\n >\n <span>{children}</span>\n <motion.span\n variants={{\n collapsed: { width: 0, opacity: 0, marginLeft: 0 },\n expanded: { width: \"auto\", opacity: 1, marginLeft: 8 }\n }}\n transition={{ type: \"spring\", stiffness: 300, damping: 25 }}\n className=\"overflow-hidden\"\n >\n {icon}\n </motion.span>\n </motion.button>\n )\n}\n\n// ============================================\n// 7. StatusButton — Shows loading/success/error states\n// ============================================\nexport function StatusButton({ status = \"idle\", children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & { status?: \"idle\" | \"loading\" | \"success\" | \"error\" }) {\n const variants: Record<string, { bg: string; text: string }> = {\n idle: { bg: \"bg-primary\", text: \"text-primary-foreground\" },\n loading: { bg: \"bg-yellow-500 dark:bg-yellow-600\", text: \"text-white\" },\n success: { bg: \"bg-emerald-500 dark:bg-emerald-600\", text: \"text-white\" },\n error: { bg: \"bg-red-500 dark:bg-red-600\", text: \"text-white\" },\n }\n const v = variants[status]\n return (\n <button className={cn(\"relative px-5 py-2.5 rounded-lg font-semibold transition-all duration-300\", v.bg, v.text, status === \"loading\" && \"animate-pulse\", className)} disabled={status === \"loading\"} {...props}>\n <AnimatePresence mode=\"wait\">\n <motion.span key={status} initial={{ opacity: 0, y: 10 }} animate={{ opacity: 1, y: 0 }} exit={{ opacity: 0, y: -10 }} className=\"inline-flex items-center gap-2\">\n {status === \"loading\" && <span className=\"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin\" />}\n {status === \"success\" && <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>}\n {status === \"error\" && <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" /></svg>}\n {status === \"idle\" ? children : status === \"loading\" ? \"Loading...\" : status === \"success\" ? \"Done!\" : \"Failed\"}\n </motion.span>\n </AnimatePresence>\n </button>\n )\n}\n\n// ============================================\n// 8. GlassmorphButton — Frosted glass button\n// ============================================\nexport function GlassmorphButton({ children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n return (\n <button\n className={cn(\n \"px-6 py-2.5 rounded-xl font-semibold text-foreground backdrop-blur-xl bg-white/10 dark:bg-white/5 border border-white/20 dark:border-white/10 shadow-lg hover:bg-white/20 dark:hover:bg-white/10 transition-all duration-300 hover:scale-105 active:scale-95\",\n className\n )}\n {...props}\n >\n {children}\n </button>\n )\n}\n\n// ============================================\n// 9. SegmentedButton — Button group with selection\n// ============================================\nexport function SegmentedButton({ options, value, onChange, className }: {\n options: string[]\n value: string\n onChange: (val: string) => void\n className?: string\n}) {\n return (\n <div className={cn(\"inline-flex rounded-lg bg-muted p-1 gap-0.5\", className)}>\n {options.map((opt) => (\n <button\n key={opt}\n onClick={() => onChange(opt)}\n className={cn(\n \"relative px-4 py-1.5 rounded-md text-sm font-medium transition-all duration-200\",\n value === opt ? \"text-foreground\" : \"text-muted-foreground hover:text-foreground\"\n )}\n >\n {value === opt && (\n <motion.div layoutId=\"segmented-bg\" className=\"absolute inset-0 bg-background rounded-md shadow-sm\" transition={{ type: \"spring\", stiffness: 400, damping: 30 }} />\n )}\n <span className=\"relative z-10\">{opt}</span>\n </button>\n ))}\n </div>\n )\n}\n\n// ============================================\n// 10. TextButton — Minimal text with underline animation\n// ============================================\nexport function TextButton({ children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>) {\n return (\n <button\n className={cn(\n \"relative font-medium text-foreground group transition-colors\",\n className\n )}\n {...props}\n >\n {children}\n <span className=\"absolute bottom-0 left-0 h-[2px] w-0 bg-primary transition-all duration-300 group-hover:w-full\" />\n </button>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. NeumorphicCard\n// ============================================\nexport function NeumorphicCard({ children, className }: { children: React.ReactNode; className?: string }) {\n return (\n <div className={cn(\n \"rounded-2xl p-6 bg-background shadow-[8px_8px_16px_rgba(0,0,0,0.1),-8px_-8px_16px_rgba(255,255,255,0.7)] dark:shadow-[8px_8px_16px_rgba(0,0,0,0.4),-8px_-8px_16px_rgba(255,255,255,0.05)]\",\n className\n )}>\n {children}\n </div>\n )\n}\n\n// ============================================\n// 2. GradientCard V2\n// ============================================\nexport function GradientMeshCard({ children, className }: { children: React.ReactNode; className?: string }) {\n return (\n <div className={cn(\"relative rounded-2xl overflow-hidden\", className)}>\n <div className=\"absolute inset-0 bg-gradient-to-br from-violet-500/20 via-transparent to-pink-500/20 dark:from-violet-500/10 dark:to-pink-500/10\" />\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-orange-400/20 dark:bg-orange-400/10 rounded-full blur-3xl\" />\n <div className=\"absolute bottom-0 left-0 w-32 h-32 bg-blue-400/20 dark:bg-blue-400/10 rounded-full blur-3xl\" />\n <div className=\"relative p-6 border border-white/10 dark:border-white/5 rounded-2xl backdrop-blur-sm\">\n {children}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 3. TiltCard — 3D tilt on hover\n// ============================================\nexport function TiltCard({ children, className }: { children: React.ReactNode; className?: string }) {\n const ref = React.useRef<HTMLDivElement>(null)\n const [transform, setTransform] = React.useState(\"\")\n\n const handleMouseMove = (e: React.MouseEvent) => {\n if (!ref.current) return\n const rect = ref.current.getBoundingClientRect()\n const x = (e.clientX - rect.left) / rect.width - 0.5\n const y = (e.clientY - rect.top) / rect.height - 0.5\n setTransform(`perspective(600px) rotateX(${y * -10}deg) rotateY(${x * 10}deg) scale3d(1.02,1.02,1.02)`)\n }\n\n return (\n <div\n ref={ref}\n onMouseMove={handleMouseMove}\n onMouseLeave={() => setTransform(\"\")}\n className={cn(\"rounded-2xl border border-border bg-card p-6 transition-transform duration-200 ease-out\", className)}\n style={{ transform }}\n >\n {children}\n </div>\n )\n}\n\n// ============================================\n// 4. FeatureCard — Card with icon, title, desc\n// ============================================\nexport function FeatureCard({ icon, title, description, className }: {\n icon: React.ReactNode\n title: string\n description: string\n className?: string\n}) {\n return (\n <motion.div\n whileHover={{ y: -4 }}\n className={cn(\"rounded-xl border border-border bg-card p-5 transition-shadow hover:shadow-lg dark:hover:shadow-primary/5\", className)}\n >\n <div className=\"mb-3 inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 text-primary\">\n {icon}\n </div>\n <h4 className=\"font-semibold text-foreground mb-1\">{title}</h4>\n <p className=\"text-sm text-muted-foreground leading-relaxed\">{description}</p>\n </motion.div>\n )\n}\n\n// ============================================\n// 5. PricingCardPro — Full-featured pricing card\n// ============================================\nexport function PricingCardPro({ name, price, period = \"/mo\", features, popular = false, className, ctaText = \"Get Started\" }: {\n name: string\n price: string\n period?: string\n features: string[]\n popular?: boolean\n className?: string\n ctaText?: string\n}) {\n return (\n <div className={cn(\n \"relative rounded-2xl border p-6 flex flex-col\",\n popular ? \"border-primary bg-primary/5 shadow-lg shadow-primary/10\" : \"border-border bg-card\",\n className\n )}>\n {popular && (\n <div className=\"absolute -top-3 left-1/2 -translate-x-1/2 px-3 py-0.5 rounded-full text-xs font-semibold bg-primary text-primary-foreground\">\n Popular\n </div>\n )}\n <h4 className=\"font-semibold text-lg\">{name}</h4>\n <div className=\"mt-3 mb-5\">\n <span className=\"text-4xl font-bold\">{price}</span>\n <span className=\"text-muted-foreground text-sm\">{period}</span>\n </div>\n <ul className=\"space-y-2.5 mb-6 flex-1\">\n {features.map((f, i) => (\n <li key={i} className=\"flex items-center gap-2 text-sm\">\n <svg className=\"w-4 h-4 text-emerald-500 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>\n <span className=\"text-muted-foreground\">{f}</span>\n </li>\n ))}\n </ul>\n <button className={cn(\n \"w-full py-2.5 rounded-lg font-semibold transition-colors\",\n popular ? \"bg-primary text-primary-foreground hover:bg-primary/90\" : \"bg-secondary text-secondary-foreground hover:bg-secondary/80\"\n )}>\n {ctaText}\n </button>\n </div>\n )\n}\n\n// ============================================\n// 6. TestimonialCard\n// ============================================\nexport function TestimonialCardV2({ quote, author, role, avatar, className }: {\n quote: string\n author: string\n role: string\n avatar?: string\n className?: string\n}) {\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-6\", className)}>\n <svg className=\"w-8 h-8 text-primary/20 mb-3\" fill=\"currentColor\" viewBox=\"0 0 32 32\"><path d=\"M10 8c-3.3 0-6 2.7-6 6v10h10V14H8c0-1.1.9-2 2-2V8zm14 0c-3.3 0-6 2.7-6 6v10h10V14h-6c0-1.1.9-2 2-2V8z\"/></svg>\n <p className=\"text-foreground mb-4 leading-relaxed\">{quote}</p>\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center text-white font-semibold text-sm\">\n {avatar || author.charAt(0)}\n </div>\n <div>\n <p className=\"font-semibold text-sm\">{author}</p>\n <p className=\"text-xs text-muted-foreground\">{role}</p>\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 7. MetricCard — Stat card with trend\n// ============================================\nexport function MetricCard({ title, value, change, changeType = \"positive\", className }: {\n title: string\n value: string\n change: string\n changeType?: \"positive\" | \"negative\" | \"neutral\"\n className?: string\n}) {\n const colors = {\n positive: \"text-emerald-500 bg-emerald-500/10\",\n negative: \"text-red-500 bg-red-500/10\",\n neutral: \"text-muted-foreground bg-muted\",\n }\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n <p className=\"text-sm text-muted-foreground mb-1\">{title}</p>\n <div className=\"flex items-end justify-between\">\n <span className=\"text-2xl font-bold\">{value}</span>\n <span className={cn(\"text-xs font-medium px-2 py-0.5 rounded-full\", colors[changeType])}>{change}</span>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 8. ImageOverlayCard\n// ============================================\nexport function ImageOverlayCard({ title, subtitle, gradient = \"from-black/60 to-transparent\", className }: {\n title: string\n subtitle: string\n gradient?: string\n className?: string\n}) {\n return (\n <div className={cn(\"relative h-64 rounded-2xl overflow-hidden bg-muted group cursor-pointer\", className)}>\n <div className=\"absolute inset-0 bg-gradient-to-r from-violet-600 to-pink-600 opacity-70\" />\n <div className={cn(\"absolute inset-0 bg-gradient-to-t\", gradient)} />\n <div className=\"absolute bottom-0 left-0 p-5\">\n <h4 className=\"text-white font-bold text-lg\">{title}</h4>\n <p className=\"text-white/70 text-sm\">{subtitle}</p>\n </div>\n <div className=\"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-300\" />\n </div>\n )\n}\n\n// ============================================\n// 9. ProfileCardFull\n// ============================================\nexport function ProfileCardFull({ name, role, bio, stats, className }: {\n name: string\n role: string\n bio?: string\n stats?: { label: string; value: string }[]\n className?: string\n}) {\n return (\n <div className={cn(\"rounded-2xl border border-border bg-card overflow-hidden\", className)}>\n <div className=\"h-20 bg-gradient-to-r from-violet-500 to-pink-500\" />\n <div className=\"px-5 pb-5\">\n <div className=\"w-16 h-16 rounded-full border-4 border-card bg-gradient-to-br from-violet-400 to-pink-400 flex items-center justify-center text-white font-bold text-xl -mt-8 mb-3\">\n {name.charAt(0)}\n </div>\n <h4 className=\"font-bold text-lg\">{name}</h4>\n <p className=\"text-sm text-muted-foreground\">{role}</p>\n {bio && <p className=\"text-sm text-muted-foreground mt-2 leading-relaxed\">{bio}</p>}\n {stats && (\n <div className=\"flex gap-4 mt-4 pt-4 border-t border-border\">\n {stats.map((s, i) => (\n <div key={i} className=\"text-center\">\n <p className=\"font-bold\">{s.value}</p>\n <p className=\"text-xs text-muted-foreground\">{s.label}</p>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 10. NotificationCard\n// ============================================\nexport function NotificationCard({ title, message, time, type = \"info\", className }: {\n title: string\n message: string\n time: string\n type?: \"info\" | \"success\" | \"warning\" | \"error\"\n className?: string\n}) {\n const colors = {\n info: \"border-l-blue-500\",\n success: \"border-l-emerald-500\",\n warning: \"border-l-amber-500\",\n error: \"border-l-red-500\",\n }\n return (\n <div className={cn(\"rounded-lg border border-border bg-card p-4 border-l-4\", colors[type], className)}>\n <div className=\"flex justify-between items-start mb-1\">\n <h4 className=\"font-semibold text-sm\">{title}</h4>\n <span className=\"text-xs text-muted-foreground\">{time}</span>\n </div>\n <p className=\"text-sm text-muted-foreground\">{message}</p>\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. GradientInput — Gradient border on focus\n// ============================================\nexport function GradientFocusInput({ className, ...props }: React.InputHTMLAttributes<HTMLInputElement>) {\n const [focused, setFocused] = React.useState(false)\n return (\n <div className={cn(\"relative rounded-lg p-[2px]\", focused ? \"bg-gradient-to-r from-violet-500 via-pink-500 to-orange-500\" : \"bg-border\", className)}>\n <input\n className=\"w-full px-4 py-2.5 rounded-[6px] bg-background text-foreground text-sm outline-none placeholder:text-muted-foreground\"\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n {...props}\n />\n </div>\n )\n}\n\n// ============================================\n// 2. AnimatedLabelInput — Label slides up on focus\n// ============================================\nexport function AnimatedLabelInput({ label, className, ...props }: React.InputHTMLAttributes<HTMLInputElement> & { label: string }) {\n const [focused, setFocused] = React.useState(false)\n const [hasValue, setHasValue] = React.useState(false)\n const active = focused || hasValue\n\n return (\n <div className={cn(\"relative\", className)}>\n <input\n className=\"w-full px-4 pt-5 pb-2 rounded-lg border border-border bg-background text-foreground text-sm outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all peer\"\n onFocus={() => setFocused(true)}\n onBlur={(e) => { setFocused(false); setHasValue(!!e.target.value) }}\n placeholder=\" \"\n {...props}\n />\n <label className={cn(\n \"absolute left-4 transition-all duration-200 pointer-events-none\",\n active ? \"top-1.5 text-[10px] text-primary font-medium\" : \"top-3.5 text-sm text-muted-foreground\"\n )}>\n {label}\n </label>\n </div>\n )\n}\n\n// ============================================\n// 3. OTPInput — One-time passcode input\n// ============================================\nexport function OTPCodeInput({ length = 6, className, onChange }: { length?: number; className?: string; onChange?: (val: string) => void }) {\n const [values, setValues] = React.useState<string[]>(Array(length).fill(\"\"))\n const refs = React.useRef<(HTMLInputElement | null)[]>([])\n\n const handleChange = (i: number, v: string) => {\n if (!/^\\d*$/.test(v)) return\n const newVals = [...values]\n newVals[i] = v.slice(-1)\n setValues(newVals)\n onChange?.(newVals.join(\"\"))\n if (v && i < length - 1) refs.current[i + 1]?.focus()\n }\n\n const handleKeyDown = (i: number, e: React.KeyboardEvent) => {\n if (e.key === \"Backspace\" && !values[i] && i > 0) refs.current[i - 1]?.focus()\n }\n\n return (\n <div className={cn(\"flex gap-2\", className)}>\n {values.map((v, i) => (\n <input\n key={i}\n ref={(el) => { refs.current[i] = el }}\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={1}\n value={v}\n onChange={(e) => handleChange(i, e.target.value)}\n onKeyDown={(e) => handleKeyDown(i, e)}\n className=\"w-12 h-12 text-center text-lg font-mono rounded-lg border border-border bg-background text-foreground outline-none focus:border-primary focus:ring-2 focus:ring-primary/30 transition-all\"\n />\n ))}\n </div>\n )\n}\n\n// ============================================\n// 4. TagInput — Input with tags\n// ============================================\nexport function TagInput({ placeholder = \"Add tag...\", className }: { placeholder?: string; className?: string }) {\n const [tags, setTags] = React.useState<string[]>([\"React\", \"TypeScript\"])\n const [input, setInput] = React.useState(\"\")\n\n const addTag = () => {\n const trimmed = input.trim()\n if (trimmed && !tags.includes(trimmed)) {\n setTags([...tags, trimmed])\n setInput(\"\")\n }\n }\n\n return (\n <div className={cn(\"flex flex-wrap items-center gap-2 p-2.5 rounded-lg border border-border bg-background min-h-[44px]\", className)}>\n <AnimatePresence>\n {tags.map((tag) => (\n <motion.span\n key={tag}\n initial={{ scale: 0, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0, opacity: 0 }}\n className=\"inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full bg-primary/10 text-primary text-xs font-medium\"\n >\n {tag}\n <button onClick={() => setTags(tags.filter(t => t !== tag))} className=\"hover:text-destructive\">×</button>\n </motion.span>\n ))}\n </AnimatePresence>\n <input\n className=\"flex-1 min-w-[100px] bg-transparent text-sm outline-none placeholder:text-muted-foreground\"\n value={input}\n onChange={(e) => setInput(e.target.value)}\n onKeyDown={(e) => { if (e.key === \"Enter\") { e.preventDefault(); addTag() } }}\n placeholder={placeholder}\n />\n </div>\n )\n}\n\n// ============================================\n// 5. SearchCommandInput — Search with keyboard shortcut\n// ============================================\nexport function SearchCommandInput({ className, ...props }: React.InputHTMLAttributes<HTMLInputElement>) {\n return (\n <div className={cn(\"relative\", className)}>\n <svg className=\"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-muted-foreground\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" /></svg>\n <input\n className=\"w-full pl-10 pr-16 py-2.5 rounded-lg border border-border bg-background text-sm outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all placeholder:text-muted-foreground\"\n placeholder=\"Search...\"\n {...props}\n />\n <kbd className=\"absolute right-3 top-1/2 -translate-y-1/2 pointer-events-none px-2 py-0.5 rounded bg-muted text-[10px] font-mono text-muted-foreground border border-border\">⌘K</kbd>\n </div>\n )\n}\n\n// ============================================\n// 6. CurrencyInput\n// ============================================\nexport function CurrencyInput({ currency = \"$\", className, ...props }: React.InputHTMLAttributes<HTMLInputElement> & { currency?: string }) {\n return (\n <div className={cn(\"relative\", className)}>\n <span className=\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground font-medium\">{currency}</span>\n <input\n type=\"number\"\n className=\"w-full pl-8 pr-4 py-2.5 rounded-lg border border-border bg-background text-foreground text-sm outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all placeholder:text-muted-foreground\"\n placeholder=\"0.00\"\n {...props}\n />\n </div>\n )\n}\n\n// ============================================\n// 7. TextareaAutosize — Auto-expanding textarea\n// ============================================\nexport function TextareaAutosize({ className, ...props }: React.TextareaHTMLAttributes<HTMLTextAreaElement>) {\n const ref = React.useRef<HTMLTextAreaElement>(null)\n\n const handleInput = () => {\n if (!ref.current) return\n ref.current.style.height = \"auto\"\n ref.current.style.height = ref.current.scrollHeight + \"px\"\n }\n\n return (\n <textarea\n ref={ref}\n onInput={handleInput}\n className={cn(\n \"w-full px-4 py-3 rounded-lg border border-border bg-background text-foreground text-sm outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all resize-none min-h-[80px] placeholder:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n// ============================================\n// 8. RangeSliderInput\n// ============================================\nexport function RangeSliderInput({ min = 0, max = 100, value: initialValue = 50, label, className }: {\n min?: number; max?: number; value?: number; label?: string; className?: string\n}) {\n const [value, setValue] = React.useState(initialValue)\n const pct = ((value - min) / (max - min)) * 100\n\n return (\n <div className={cn(\"space-y-2\", className)}>\n {label && <div className=\"flex justify-between text-sm\"><span className=\"text-muted-foreground\">{label}</span><span className=\"font-medium\">{value}</span></div>}\n <div className=\"relative h-2 rounded-full bg-secondary\">\n <div className=\"absolute h-full rounded-full bg-primary transition-all\" style={{ width: `${pct}%` }} />\n <input\n type=\"range\" min={min} max={max} value={value}\n onChange={(e) => setValue(Number(e.target.value))}\n className=\"absolute inset-0 w-full h-full opacity-0 cursor-pointer\"\n />\n <div className=\"absolute top-1/2 -translate-y-1/2 w-5 h-5 rounded-full bg-primary border-2 border-primary-foreground shadow-lg transition-all pointer-events-none\" style={{ left: `calc(${pct}% - 10px)` }} />\n </div>\n </div>\n )\n}\n\n// ============================================\n// 9. ColorPickerInput\n// ============================================\nexport function ColorPickerInput({ value: initial = \"#8b5cf6\", label, className, onChange }: {\n value?: string; label?: string; className?: string; onChange?: (color: string) => void\n}) {\n const [color, setColor] = React.useState(initial)\n\n return (\n <div className={cn(\"flex items-center gap-3\", className)}>\n <div className=\"relative\">\n <div className=\"w-10 h-10 rounded-lg border-2 border-border overflow-hidden\" style={{ backgroundColor: color }} />\n <input\n type=\"color\" value={color}\n onChange={(e) => { setColor(e.target.value); onChange?.(e.target.value) }}\n className=\"absolute inset-0 opacity-0 cursor-pointer\"\n />\n </div>\n <div>\n {label && <p className=\"text-sm font-medium\">{label}</p>}\n <p className=\"text-xs text-muted-foreground font-mono\">{color}</p>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 10. ToggleInput — Input with inline toggle\n// ============================================\nexport function ToggleInput({ label, className }: { label: string; className?: string }) {\n const [enabled, setEnabled] = React.useState(false)\n\n return (\n <div className={cn(\"flex items-center justify-between p-3 rounded-lg border border-border bg-background\", className)}>\n <span className=\"text-sm font-medium\">{label}</span>\n <button\n onClick={() => setEnabled(!enabled)}\n className={cn(\"relative w-11 h-6 rounded-full transition-colors\", enabled ? \"bg-primary\" : \"bg-muted\")}\n >\n <motion.div\n className=\"absolute top-0.5 w-5 h-5 rounded-full bg-white shadow-sm\"\n animate={{ left: enabled ? \"22px\" : \"2px\" }}\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\n />\n </button>\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\nimport { X } from \"lucide-react\"\n\n// ============================================\n// 1. ScrollArea — Custom scrollbar wrapper\n// ============================================\nexport interface ScrollAreaProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Maximum height before scrolling */\n maxHeight?: string | number\n /** Orientation of the scroll */\n orientation?: \"vertical\" | \"horizontal\" | \"both\"\n}\n\nexport function ScrollArea({\n children,\n className,\n maxHeight = \"300px\",\n orientation = \"vertical\",\n ...props\n}: ScrollAreaProps) {\n return (\n <div\n className={cn(\n \"relative rounded-md\",\n orientation === \"vertical\" && \"overflow-y-auto overflow-x-hidden\",\n orientation === \"horizontal\" && \"overflow-x-auto overflow-y-hidden\",\n orientation === \"both\" && \"overflow-auto\",\n // Custom scrollbar styles\n \"[&::-webkit-scrollbar]:w-1.5\",\n \"[&::-webkit-scrollbar-track]:bg-transparent\",\n \"[&::-webkit-scrollbar-thumb]:bg-border [&::-webkit-scrollbar-thumb]:rounded-full\",\n \"[&::-webkit-scrollbar-thumb:hover]:bg-muted-foreground/30\",\n className\n )}\n style={{ maxHeight: typeof maxHeight === \"number\" ? `${maxHeight}px` : maxHeight }}\n {...props}\n >\n {children}\n </div>\n )\n}\n\n// ============================================\n// 2. Drawer — Slide-in panel from bottom or side\n// ============================================\nexport interface DrawerProps {\n /** Whether the drawer is open */\n open: boolean\n /** Callback when drawer should close */\n onClose: () => void\n /** Direction the drawer slides from */\n side?: \"bottom\" | \"right\" | \"left\"\n /** Drawer content */\n children: React.ReactNode\n /** Additional CSS classes for the drawer panel */\n className?: string\n /** Title for the drawer header */\n title?: string\n}\n\nconst slideVariants = {\n bottom: {\n initial: { y: \"100%\" },\n animate: { y: 0 },\n exit: { y: \"100%\" },\n className: \"inset-x-0 bottom-0 rounded-t-2xl max-h-[85vh]\",\n },\n right: {\n initial: { x: \"100%\" },\n animate: { x: 0 },\n exit: { x: \"100%\" },\n className: \"inset-y-0 right-0 w-full max-w-md h-full\",\n },\n left: {\n initial: { x: \"-100%\" },\n animate: { x: 0 },\n exit: { x: \"-100%\" },\n className: \"inset-y-0 left-0 w-full max-w-md h-full\",\n },\n}\n\nexport function Drawer({\n open,\n onClose,\n side = \"bottom\",\n children,\n className,\n title,\n}: DrawerProps) {\n const variant = slideVariants[side]\n\n // Close on Escape key\n React.useEffect(() => {\n if (!open) return\n const handler = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose()\n }\n window.addEventListener(\"keydown\", handler)\n return () => window.removeEventListener(\"keydown\", handler)\n }, [open, onClose])\n\n return (\n <AnimatePresence>\n {open && (\n <div className=\"fixed inset-0 z-50\">\n {/* Backdrop */}\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className=\"absolute inset-0 bg-black/50 backdrop-blur-sm\"\n onClick={onClose}\n />\n {/* Panel */}\n <motion.div\n initial={variant.initial}\n animate={variant.animate}\n exit={variant.exit}\n transition={{ type: \"spring\", damping: 30, stiffness: 300 }}\n className={cn(\n \"absolute bg-card border border-border shadow-2xl overflow-y-auto\",\n variant.className,\n className\n )}\n >\n {/* Handle for bottom drawer */}\n {side === \"bottom\" && (\n <div className=\"flex justify-center pt-3 pb-1\">\n <div className=\"w-12 h-1.5 rounded-full bg-muted-foreground/20\" />\n </div>\n )}\n {/* Header */}\n {title && (\n <div className=\"flex items-center justify-between px-6 py-4 border-b border-border\">\n <h3 className=\"font-semibold text-lg\">{title}</h3>\n <button\n onClick={onClose}\n className=\"p-1.5 rounded-md hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n )}\n {/* Content */}\n <div className=\"p-6\">{children}</div>\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n )\n}\n\n// ============================================\n// 3. CommandPalette — Cmd+K search overlay\n// ============================================\nexport interface CommandPaletteItem {\n /** Unique identifier */\n id: string\n /** Display label */\n label: string\n /** Optional icon */\n icon?: React.ReactNode\n /** Optional group/category */\n group?: string\n /** Action when selected */\n onSelect?: () => void\n}\n\nexport interface CommandPaletteProps {\n /** Whether the palette is open */\n open: boolean\n /** Callback when palette should close */\n onClose: () => void\n /** Items to display */\n items: CommandPaletteItem[]\n /** Placeholder text */\n placeholder?: string\n /** Additional CSS classes */\n className?: string\n}\n\nexport function CommandPalette({\n open,\n onClose,\n items,\n placeholder = \"Type a command or search...\",\n className,\n}: CommandPaletteProps) {\n const [query, setQuery] = React.useState(\"\")\n const [selectedIndex, setSelectedIndex] = React.useState(0)\n\n const filtered = React.useMemo(\n () => items.filter(item => item.label.toLowerCase().includes(query.toLowerCase())),\n [items, query]\n )\n\n // Group items\n const groups = React.useMemo(() => {\n const map = new Map<string, CommandPaletteItem[]>()\n filtered.forEach(item => {\n const group = item.group || \"Results\"\n if (!map.has(group)) map.set(group, [])\n map.get(group)!.push(item)\n })\n return map\n }, [filtered])\n\n // Reset on open\n React.useEffect(() => {\n if (open) {\n setQuery(\"\")\n setSelectedIndex(0)\n }\n }, [open])\n\n // Keyboard navigation\n React.useEffect(() => {\n if (!open) return\n const handler = (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault()\n setSelectedIndex(i => Math.min(i + 1, filtered.length - 1))\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault()\n setSelectedIndex(i => Math.max(i - 1, 0))\n } else if (e.key === \"Enter\") {\n e.preventDefault()\n filtered[selectedIndex]?.onSelect?.()\n onClose()\n } else if (e.key === \"Escape\") {\n onClose()\n }\n }\n window.addEventListener(\"keydown\", handler)\n return () => window.removeEventListener(\"keydown\", handler)\n }, [open, filtered, selectedIndex, onClose])\n\n return (\n <AnimatePresence>\n {open && (\n <div className=\"fixed inset-0 z-[100] flex items-start justify-center pt-[20vh]\">\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n className=\"absolute inset-0 bg-black/50 backdrop-blur-sm\"\n onClick={onClose}\n />\n <motion.div\n initial={{ opacity: 0, scale: 0.95, y: -10 }}\n animate={{ opacity: 1, scale: 1, y: 0 }}\n exit={{ opacity: 0, scale: 0.95, y: -10 }}\n transition={{ duration: 0.15 }}\n className={cn(\n \"relative w-full max-w-lg mx-4 bg-card border border-border rounded-xl shadow-2xl overflow-hidden\",\n className\n )}\n >\n {/* Search input */}\n <div className=\"flex items-center gap-2 px-4 border-b border-border\">\n <svg className=\"h-4 w-4 text-muted-foreground shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" strokeWidth=\"2\" />\n <path d=\"m21 21-4.35-4.35\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n <input\n autoFocus\n value={query}\n onChange={e => setQuery(e.target.value)}\n className=\"flex-1 h-12 bg-transparent text-sm outline-none placeholder:text-muted-foreground\"\n placeholder={placeholder}\n />\n </div>\n {/* Results */}\n <div className=\"max-h-[300px] overflow-y-auto p-2\">\n {filtered.length > 0 ? (\n Array.from(groups.entries()).map(([groupName, groupItems]) => (\n <div key={groupName}>\n <div className=\"px-2 py-1.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wider\">\n {groupName}\n </div>\n {groupItems.map((item) => {\n const globalIndex = filtered.indexOf(item)\n return (\n <button\n key={item.id}\n onClick={() => {\n item.onSelect?.()\n onClose()\n }}\n className={cn(\n \"flex w-full items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors text-left\",\n globalIndex === selectedIndex\n ? \"bg-accent text-accent-foreground\"\n : \"hover:bg-muted/50\"\n )}\n >\n {item.icon && <span className=\"text-muted-foreground\">{item.icon}</span>}\n {item.label}\n </button>\n )\n })}\n </div>\n ))\n ) : (\n <div className=\"text-center py-8 text-sm text-muted-foreground\">\n No results found.\n </div>\n )}\n </div>\n </motion.div>\n </div>\n )}\n </AnimatePresence>\n )\n}\n\n// ============================================\n// 4. ContextMenu — Right-click context menu\n// ============================================\nexport interface ContextMenuItem {\n /** Display label */\n label: string\n /** Action when clicked */\n onClick?: () => void\n /** Keyboard shortcut hint */\n shortcut?: string\n /** Whether this is a separator */\n separator?: boolean\n /** Whether the item is disabled */\n disabled?: boolean\n /** Whether this is a destructive action */\n destructive?: boolean\n}\n\nexport interface ContextMenuProps {\n /** Items in the context menu */\n items: ContextMenuItem[]\n /** Content to right-click on */\n children: React.ReactNode\n /** Additional CSS classes */\n className?: string\n}\n\nexport function ContextMenu({ items, children, className }: ContextMenuProps) {\n const [open, setOpen] = React.useState(false)\n const [position, setPosition] = React.useState({ x: 0, y: 0 })\n const menuRef = React.useRef<HTMLDivElement>(null)\n\n const handleContextMenu = (e: React.MouseEvent) => {\n e.preventDefault()\n setPosition({ x: e.clientX, y: e.clientY })\n setOpen(true)\n }\n\n React.useEffect(() => {\n if (!open) return\n const close = () => setOpen(false)\n window.addEventListener(\"click\", close)\n window.addEventListener(\"scroll\", close)\n window.addEventListener(\"resize\", close)\n return () => {\n window.removeEventListener(\"click\", close)\n window.removeEventListener(\"scroll\", close)\n window.removeEventListener(\"resize\", close)\n }\n }, [open])\n\n return (\n <>\n <div onContextMenu={handleContextMenu} className={className}>\n {children}\n </div>\n <AnimatePresence>\n {open && (\n <motion.div\n ref={menuRef}\n initial={{ opacity: 0, scale: 0.95 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.95 }}\n transition={{ duration: 0.1 }}\n className=\"fixed z-[100] min-w-[180px] bg-card border border-border rounded-lg shadow-xl p-1 overflow-hidden\"\n style={{ left: position.x, top: position.y }}\n >\n {items.map((item, i) =>\n item.separator ? (\n <div key={i} className=\"my-1 h-px bg-border\" />\n ) : (\n <button\n key={i}\n disabled={item.disabled}\n onClick={() => {\n item.onClick?.()\n setOpen(false)\n }}\n className={cn(\n \"flex w-full items-center justify-between gap-4 rounded-md px-3 py-1.5 text-sm transition-colors\",\n item.disabled && \"opacity-50 cursor-not-allowed\",\n item.destructive\n ? \"text-destructive hover:bg-destructive/10\"\n : \"hover:bg-accent\"\n )}\n >\n <span>{item.label}</span>\n {item.shortcut && (\n <span className=\"text-[11px] text-muted-foreground font-mono\">{item.shortcut}</span>\n )}\n </button>\n )\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. ImageCarousel — Auto-playing carousel\n// ============================================\nexport function ImageCarousel({ images, autoPlay = true, interval = 4000, className }: {\n images: { src: string; alt?: string }[]\n autoPlay?: boolean\n interval?: number\n className?: string\n}) {\n const [current, setCurrent] = React.useState(0)\n\n React.useEffect(() => {\n if (!autoPlay || images.length <= 1) return\n const timer = setInterval(() => setCurrent((c) => (c + 1) % images.length), interval)\n return () => clearInterval(timer)\n }, [autoPlay, interval, images.length])\n\n return (\n <div className={cn(\"relative overflow-hidden rounded-xl bg-muted\", className)}>\n <div className=\"relative aspect-video\">\n {images.map((img, i) => (\n <motion.div\n key={i}\n initial={false}\n animate={{ opacity: i === current ? 1 : 0 }}\n transition={{ duration: 0.5 }}\n className=\"absolute inset-0\"\n >\n <div className=\"w-full h-full bg-gradient-to-br from-violet-500/20 to-pink-500/20 flex items-center justify-center text-muted-foreground\">\n {img.alt || `Slide ${i + 1}`}\n </div>\n </motion.div>\n ))}\n </div>\n <div className=\"absolute bottom-3 left-1/2 -translate-x-1/2 flex gap-1.5\">\n {images.map((_, i) => (\n <button\n key={i}\n onClick={() => setCurrent(i)}\n className={cn(\"w-2 h-2 rounded-full transition-all\", i === current ? \"bg-white w-6\" : \"bg-white/50 hover:bg-white/70\")}\n />\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 2. VideoPlayer — Styled video player\n// ============================================\nexport function VideoPlayer({ title, duration = \"3:45\", thumbnail, className }: {\n title?: string\n duration?: string\n thumbnail?: string\n className?: string\n}) {\n const [playing, setPlaying] = React.useState(false)\n\n return (\n <div className={cn(\"relative overflow-hidden rounded-xl bg-muted group cursor-pointer\", className)}>\n <div className=\"aspect-video bg-gradient-to-br from-slate-800 to-slate-900 flex items-center justify-center\">\n <motion.button\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.95 }}\n onClick={() => setPlaying(!playing)}\n className=\"w-16 h-16 rounded-full bg-white/20 backdrop-blur-md flex items-center justify-center border border-white/30 shadow-lg\"\n >\n {playing ? (\n <svg className=\"w-6 h-6 text-white\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\"/></svg>\n ) : (\n <svg className=\"w-6 h-6 text-white ml-1\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"/></svg>\n )}\n </motion.button>\n </div>\n {(title || duration) && (\n <div className=\"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-4\">\n {title && <p className=\"text-white text-sm font-medium\">{title}</p>}\n {duration && <span className=\"text-white/70 text-xs\">{duration}</span>}\n </div>\n )}\n </div>\n )\n}\n\n// ============================================\n// 3. AudioWaveform — Audio visualizer\n// ============================================\nexport function AudioWaveform({ playing = false, bars = 24, className }: {\n playing?: boolean\n bars?: number\n className?: string\n}) {\n return (\n <div className={cn(\"flex items-end gap-[2px] h-8\", className)}>\n {Array.from({ length: bars }).map((_, i) => {\n const height = Math.random() * 100\n return (\n <motion.div\n key={i}\n className=\"w-1 rounded-full bg-primary\"\n animate={playing ? {\n height: [`${20 + Math.random() * 30}%`, `${50 + Math.random() * 50}%`, `${20 + Math.random() * 30}%`],\n } : { height: \"20%\" }}\n transition={playing ? {\n duration: 0.4 + Math.random() * 0.4,\n repeat: Infinity,\n repeatType: \"reverse\",\n ease: \"easeInOut\",\n } : {}}\n style={{ height: `${height}%` }}\n />\n )\n })}\n </div>\n )\n}\n\n// ============================================\n// 4. FilePreviewCard — File with icon/preview\n// ============================================\nexport function FilePreviewCard({ name, size, type = \"file\", className }: {\n name: string\n size: string\n type?: \"file\" | \"image\" | \"video\" | \"pdf\" | \"code\"\n className?: string\n}) {\n const icons = {\n file: \"📄\",\n image: \"🖼\",\n video: \"🎬\",\n pdf: \"📕\",\n code: \"💻\",\n }\n const colors = {\n file: \"from-blue-500/10 to-blue-500/5\",\n image: \"from-pink-500/10 to-pink-500/5\",\n video: \"from-violet-500/10 to-violet-500/5\",\n pdf: \"from-red-500/10 to-red-500/5\",\n code: \"from-emerald-500/10 to-emerald-500/5\",\n }\n\n return (\n <motion.div\n whileHover={{ y: -2 }}\n className={cn(\"rounded-xl border border-border bg-card p-4 flex items-center gap-3 cursor-pointer transition-shadow hover:shadow-md\", className)}\n >\n <div className={cn(\"w-12 h-12 rounded-lg bg-gradient-to-br flex items-center justify-center text-xl\", colors[type])}>\n {icons[type]}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium truncate\">{name}</p>\n <p className=\"text-xs text-muted-foreground\">{size}</p>\n </div>\n <svg className=\"w-4 h-4 text-muted-foreground shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4\" />\n </svg>\n </motion.div>\n )\n}\n\n// ============================================\n// 5. EmbedCard — oEmbed-style preview card\n// ============================================\nexport function EmbedCard({ title, description, domain, favicon, className }: {\n title: string\n description?: string\n domain: string\n favicon?: string\n className?: string\n}) {\n return (\n <div className={cn(\"rounded-xl border border-border bg-card overflow-hidden hover:shadow-md transition-shadow cursor-pointer\", className)}>\n <div className=\"h-36 bg-gradient-to-br from-violet-500/20 via-blue-500/20 to-pink-500/20\" />\n <div className=\"p-4 border-t border-border\">\n <div className=\"flex items-center gap-2 mb-2\">\n <div className=\"w-4 h-4 rounded-full bg-muted flex items-center justify-center text-[8px]\">\n {favicon || domain.charAt(0).toUpperCase()}\n </div>\n <span className=\"text-xs text-muted-foreground\">{domain}</span>\n </div>\n <h4 className=\"text-sm font-semibold mb-1 line-clamp-1\">{title}</h4>\n {description && <p className=\"text-xs text-muted-foreground line-clamp-2\">{description}</p>}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 6. MusicPlayer — Mini music player widget\n// ============================================\nexport function MusicPlayer({ title, artist, album, className }: {\n title: string\n artist: string\n album?: string\n className?: string\n}) {\n const [playing, setPlaying] = React.useState(false)\n const [progress, setProgress] = React.useState(35)\n\n return (\n <div className={cn(\"rounded-2xl border border-border bg-card p-5 w-full max-w-sm\", className)}>\n <div className=\"flex items-center gap-4 mb-4\">\n <motion.div\n animate={playing ? { rotate: 360 } : {}}\n transition={playing ? { duration: 3, repeat: Infinity, ease: \"linear\" } : {}}\n className=\"w-14 h-14 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center shadow-lg shrink-0\"\n >\n <div className=\"w-5 h-5 rounded-full bg-background\" />\n </motion.div>\n <div className=\"min-w-0 flex-1\">\n <p className=\"font-semibold text-sm truncate\">{title}</p>\n <p className=\"text-xs text-muted-foreground truncate\">{artist}</p>\n {album && <p className=\"text-xs text-muted-foreground/60 truncate\">{album}</p>}\n </div>\n </div>\n <div className=\"mb-3\">\n <div className=\"h-1 bg-muted rounded-full overflow-hidden\">\n <motion.div\n className=\"h-full bg-primary rounded-full\"\n style={{ width: `${progress}%` }}\n />\n </div>\n <div className=\"flex justify-between text-[10px] text-muted-foreground mt-1\">\n <span>1:15</span>\n <span>3:45</span>\n </div>\n </div>\n <div className=\"flex items-center justify-center gap-6\">\n <button className=\"text-muted-foreground hover:text-foreground transition-colors\">\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6 6h2v12H6V6zm3.5 6l8.5 6V6l-8.5 6z\"/></svg>\n </button>\n <motion.button\n whileTap={{ scale: 0.9 }}\n onClick={() => setPlaying(!playing)}\n className=\"w-10 h-10 rounded-full bg-primary text-primary-foreground flex items-center justify-center shadow-md\"\n >\n {playing ? (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\"/></svg>\n ) : (\n <svg className=\"w-5 h-5 ml-0.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"/></svg>\n )}\n </motion.button>\n <button className=\"text-muted-foreground hover:text-foreground transition-colors\">\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18 18h-2V6h2v12zm-3.5-6L6 6v12l8.5-6z\"/></svg>\n </button>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 7. ImageCompare — Before/After slider\n// ============================================\nexport function ImageCompare({ \n leftImage, \n rightImage, \n leftLabel = \"Before\", \n rightLabel = \"After\", \n className \n}: {\n leftImage?: string\n rightImage?: string\n leftLabel?: string\n rightLabel?: string\n className?: string\n}) {\n const [position, setPosition] = React.useState(50)\n const containerRef = React.useRef<HTMLDivElement>(null)\n\n const handleMove = (e: React.MouseEvent) => {\n if (!containerRef.current) return\n const rect = containerRef.current.getBoundingClientRect()\n const x = ((e.clientX - rect.left) / rect.width) * 100\n setPosition(Math.max(0, Math.min(100, x)))\n }\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (!containerRef.current) return\n const rect = containerRef.current.getBoundingClientRect()\n if (e.touches[0]) {\n const x = ((e.touches[0].clientX - rect.left) / rect.width) * 100\n setPosition(Math.max(0, Math.min(100, x)))\n }\n }\n\n return (\n <div\n ref={containerRef}\n className={cn(\"relative aspect-video rounded-xl overflow-hidden cursor-col-resize select-none\", className)}\n onMouseMove={handleMove}\n onTouchMove={handleTouchMove}\n >\n {/* Right side (Background - After) */}\n {rightImage ? (\n <img src={rightImage} alt={rightLabel} className=\"absolute inset-0 w-full h-full object-cover\" />\n ) : (\n <div className=\"absolute inset-0 bg-gradient-to-br from-slate-600 to-slate-800\" />\n )}\n\n {/* Left side (Foreground - Before) */}\n {leftImage ? (\n <img \n src={leftImage} \n alt={leftLabel} \n className=\"absolute inset-0 w-full h-full object-cover\" \n style={{ clipPath: `inset(0 ${100 - position}% 0 0)` }} \n />\n ) : (\n <div \n className=\"absolute inset-0 bg-gradient-to-br from-violet-500 to-pink-500\" \n style={{ clipPath: `inset(0 ${100 - position}% 0 0)` }} \n />\n )}\n\n <div className=\"absolute top-0 bottom-0\" style={{ left: `${position}%` }}>\n <div className=\"absolute top-0 bottom-0 w-0.5 bg-white shadow-lg -translate-x-1/2\" />\n <div className=\"absolute top-1/2 -translate-y-1/2 -translate-x-1/2 w-8 h-8 rounded-full bg-white shadow-lg flex items-center justify-center\">\n <svg className=\"w-4 h-4 text-slate-700\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 9l4-4 4 4m0 6l-4 4-4-4\" /></svg>\n </div>\n </div>\n <span className=\"absolute top-3 left-3 text-xs font-medium text-white bg-black/40 px-2 py-1 rounded-md backdrop-blur-sm\">{leftLabel}</span>\n <span className=\"absolute top-3 right-3 text-xs font-medium text-white bg-black/40 px-2 py-1 rounded-md backdrop-blur-sm\">{rightLabel}</span>\n </div>\n )\n}\n\n// ============================================\n// 8. GalleryGrid — Masonry-style gallery\n// ============================================\nexport function GalleryGrid({ items, className }: {\n items: { title: string; color?: string }[]\n className?: string\n}) {\n const colors = [\n \"from-violet-500 to-purple-600\",\n \"from-pink-500 to-rose-600\",\n \"from-blue-500 to-indigo-600\",\n \"from-emerald-500 to-teal-600\",\n \"from-amber-500 to-orange-600\",\n \"from-cyan-500 to-blue-600\",\n ]\n\n return (\n <div className={cn(\"grid grid-cols-2 md:grid-cols-3 gap-3\", className)}>\n {items.map((item, i) => (\n <motion.div\n key={i}\n whileHover={{ scale: 1.02 }}\n className={cn(\n \"rounded-xl bg-gradient-to-br p-4 flex items-end cursor-pointer transition-shadow hover:shadow-lg\",\n item.color || colors[i % colors.length],\n i === 0 ? \"row-span-2 min-h-[200px]\" : \"min-h-[100px]\"\n )}\n >\n <span className=\"text-white text-sm font-medium drop-shadow-md\">{item.title}</span>\n </motion.div>\n ))}\n </div>\n )\n}\n\n// ============================================\n// 9. CodeSnippet — Syntax-highlighted block\n// ============================================\nexport function CodeSnippet({ code, language = \"tsx\", filename, className }: {\n code: string\n language?: string\n filename?: string\n className?: string\n}) {\n const [copied, setCopied] = React.useState(false)\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-slate-950 overflow-hidden\", className)}>\n <div className=\"flex items-center justify-between px-4 py-2 bg-slate-900 border-b border-slate-800\">\n <div className=\"flex items-center gap-2\">\n <div className=\"flex gap-1.5\">\n <div className=\"w-3 h-3 rounded-full bg-red-500/80\" />\n <div className=\"w-3 h-3 rounded-full bg-yellow-500/80\" />\n <div className=\"w-3 h-3 rounded-full bg-green-500/80\" />\n </div>\n {filename && <span className=\"text-xs text-slate-400 ml-2 font-mono\">{filename}</span>}\n </div>\n <div className=\"flex items-center gap-2\">\n <span className=\"text-[10px] text-slate-500 font-mono uppercase\">{language}</span>\n <button\n onClick={() => { navigator.clipboard.writeText(code); setCopied(true); setTimeout(() => setCopied(false), 2000) }}\n className=\"text-slate-400 hover:text-slate-200 transition-colors\"\n >\n {copied ? (\n <svg className=\"w-4 h-4 text-green-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>\n ) : (\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" /></svg>\n )}\n </button>\n </div>\n </div>\n <pre className=\"p-4 text-sm overflow-x-auto\">\n <code className=\"font-mono text-slate-200\">{code}</code>\n </pre>\n </div>\n )\n}\n\n// ============================================\n// 10. TestimonialCarousel — Animated testimonials\n// ============================================\nexport function TestimonialCarousel({ testimonials, className }: {\n testimonials: { quote: string; author: string; role: string }[]\n className?: string\n}) {\n const [current, setCurrent] = React.useState(0)\n\n React.useEffect(() => {\n if (testimonials.length <= 1) return\n const timer = setInterval(() => setCurrent((c) => (c + 1) % testimonials.length), 5000)\n return () => clearInterval(timer)\n }, [testimonials.length])\n\n const t = testimonials[current]\n\n return (\n <div className={cn(\"relative text-center py-8\", className)}>\n <svg className=\"w-10 h-10 text-primary/20 mx-auto mb-4\" fill=\"currentColor\" viewBox=\"0 0 32 32\">\n <path d=\"M10 8c-3.3 0-6 2.7-6 6v10h10V14H8c0-1.1.9-2 2-2V8zm14 0c-3.3 0-6 2.7-6 6v10h10V14h-6c0-1.1.9-2 2-2V8z\"/>\n </svg>\n <AnimatePresence mode=\"wait\">\n <motion.div\n key={current}\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.3 }}\n >\n <p className=\"text-lg leading-relaxed mb-4 max-w-lg mx-auto\">{t.quote}</p>\n <p className=\"font-semibold text-sm\">{t.author}</p>\n <p className=\"text-xs text-muted-foreground\">{t.role}</p>\n </motion.div>\n </AnimatePresence>\n <div className=\"flex justify-center gap-1.5 mt-6\">\n {testimonials.map((_, i) => (\n <button\n key={i}\n onClick={() => setCurrent(i)}\n className={cn(\"w-2 h-2 rounded-full transition-all\", i === current ? \"bg-primary w-6\" : \"bg-muted-foreground/30 hover:bg-muted-foreground/50\")}\n />\n ))}\n </div>\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. DonutChart — Animated donut/ring chart\n// ============================================\nexport function DonutChart({ value, max = 100, size = 120, strokeWidth = 10, color = \"hsl(var(--primary))\", label, className }: {\n value: number\n max?: number\n size?: number\n strokeWidth?: number\n color?: string\n label?: string\n className?: string\n}) {\n const radius = (size - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const percentage = (value / max) * 100\n const offset = circumference - (percentage / 100) * circumference\n\n return (\n <div className={cn(\"relative inline-flex items-center justify-center\", className)}>\n <svg width={size} height={size} className=\"-rotate-90\">\n <circle cx={size / 2} cy={size / 2} r={radius} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth} className=\"text-muted/30\" />\n <motion.circle\n cx={size / 2} cy={size / 2} r={radius} fill=\"none\" stroke={color} strokeWidth={strokeWidth}\n strokeLinecap=\"round\" strokeDasharray={circumference}\n initial={{ strokeDashoffset: circumference }}\n animate={{ strokeDashoffset: offset }}\n transition={{ duration: 1, ease: \"easeOut\" }}\n />\n </svg>\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\n <span className=\"text-2xl font-bold\">{Math.round(percentage)}%</span>\n {label && <span className=\"text-[10px] text-muted-foreground\">{label}</span>}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 2. BarChartSimple — Animated vertical bars\n// ============================================\nexport function BarChartSimple({ data, height = 200, className }: {\n data: { label: string; value: number; color?: string }[]\n height?: number\n className?: string\n}) {\n const maxVal = Math.max(...data.map(d => d.value))\n\n return (\n <div className={cn(\"w-full\", className)}>\n <div className=\"flex items-end gap-2 justify-between\" style={{ height }}>\n {data.map((item, i) => (\n <div key={i} className=\"flex-1 flex flex-col items-center gap-1\">\n <span className=\"text-xs font-medium text-muted-foreground\">{item.value}</span>\n <motion.div\n initial={{ height: 0 }}\n animate={{ height: `${(item.value / maxVal) * 100}%` }}\n transition={{ duration: 0.6, delay: i * 0.08, ease: \"easeOut\" }}\n className={cn(\"w-full rounded-t-md min-h-[4px]\", item.color || \"bg-primary\")}\n />\n </div>\n ))}\n </div>\n <div className=\"flex gap-2 mt-2\">\n {data.map((item, i) => (\n <div key={i} className=\"flex-1 text-center\">\n <span className=\"text-[10px] text-muted-foreground\">{item.label}</span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 3. AreaChart — Simple area/sparkline chart\n// ============================================\nexport function AreaChartSimple({ data, height = 80, color = \"hsl(var(--primary))\", className }: {\n data: number[]\n height?: number\n color?: string\n className?: string\n}) {\n const max = Math.max(...data)\n const min = Math.min(...data)\n const range = max - min || 1\n const w = 300\n const points = data.map((v, i) => ({\n x: (i / (data.length - 1)) * w,\n y: height - ((v - min) / range) * (height - 10) - 5,\n }))\n const pathD = points.map((p, i) => (i === 0 ? `M${p.x},${p.y}` : `L${p.x},${p.y}`)).join(\" \")\n const areaD = `${pathD} L${w},${height} L0,${height} Z`\n\n return (\n <div className={cn(\"w-full\", className)}>\n <svg viewBox={`0 0 ${w} ${height}`} className=\"w-full\" style={{ height }}>\n <defs>\n <linearGradient id=\"area-fill\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\n <stop offset=\"0%\" stopColor={color} stopOpacity=\"0.3\" />\n <stop offset=\"100%\" stopColor={color} stopOpacity=\"0\" />\n </linearGradient>\n </defs>\n <motion.path\n d={areaD}\n fill=\"url(#area-fill)\"\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.8 }}\n />\n <motion.path\n d={pathD}\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n initial={{ pathLength: 0 }}\n animate={{ pathLength: 1 }}\n transition={{ duration: 1.2, ease: \"easeOut\" }}\n />\n </svg>\n </div>\n )\n}\n\n// ============================================\n// 4. StatWidget — Stat with sparkline\n// ============================================\nexport function StatWidget({ title, value, change, changeType = \"positive\", data = [], className }: {\n title: string\n value: string\n change?: string\n changeType?: \"positive\" | \"negative\"\n data?: number[]\n className?: string\n}) {\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n <div className=\"flex items-center justify-between mb-3\">\n <p className=\"text-sm text-muted-foreground\">{title}</p>\n {change && (\n <span className={cn(\"text-xs font-medium px-2 py-0.5 rounded-full\",\n changeType === \"positive\" ? \"text-emerald-500 bg-emerald-500/10\" : \"text-red-500 bg-red-500/10\"\n )}>{change}</span>\n )}\n </div>\n <p className=\"text-2xl font-bold mb-3\">{value}</p>\n {data.length > 0 && (\n <AreaChartSimple data={data} height={40} color={changeType === \"positive\" ? \"#10b981\" : \"#ef4444\"} />\n )}\n </div>\n )\n}\n\n// ============================================\n// 5. ProgressCircle — Circular progress ring\n// ============================================\nexport function ProgressCircle({ value, size = 60, label, className }: {\n value: number\n size?: number\n label?: string\n className?: string\n}) {\n const strokeWidth = 5\n const radius = (size - strokeWidth) / 2\n const circumference = 2 * Math.PI * radius\n const offset = circumference - (value / 100) * circumference\n\n return (\n <div className={cn(\"inline-flex flex-col items-center gap-1\", className)}>\n <svg width={size} height={size} className=\"-rotate-90\">\n <circle cx={size/2} cy={size/2} r={radius} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth} className=\"text-muted/20\" />\n <motion.circle\n cx={size/2} cy={size/2} r={radius} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth}\n strokeLinecap=\"round\" strokeDasharray={circumference}\n initial={{ strokeDashoffset: circumference }}\n animate={{ strokeDashoffset: offset }}\n transition={{ duration: 0.8, ease: \"easeOut\" }}\n className=\"text-primary\"\n />\n </svg>\n {label && <span className=\"text-xs text-muted-foreground\">{label}</span>}\n </div>\n )\n}\n\n// ============================================\n// 6. ComparisonBar — Horizontal comparison\n// ============================================\nexport function ComparisonBar({ label1, label2, value1, value2, className }: {\n label1: string\n label2: string\n value1: number\n value2: number\n className?: string\n}) {\n const total = value1 + value2\n const percent1 = (value1 / total) * 100\n const percent2 = (value2 / total) * 100\n\n return (\n <div className={cn(\"w-full\", className)}>\n <div className=\"flex justify-between text-sm mb-2\">\n <span className=\"font-medium\">{label1} <span className=\"text-muted-foreground\">({value1})</span></span>\n <span className=\"font-medium\">{label2} <span className=\"text-muted-foreground\">({value2})</span></span>\n </div>\n <div className=\"flex h-3 rounded-full overflow-hidden gap-0.5\">\n <motion.div\n initial={{ width: 0 }}\n animate={{ width: `${percent1}%` }}\n transition={{ duration: 0.8, ease: \"easeOut\" }}\n className=\"bg-primary rounded-l-full\"\n />\n <motion.div\n initial={{ width: 0 }}\n animate={{ width: `${percent2}%` }}\n transition={{ duration: 0.8, ease: \"easeOut\", delay: 0.2 }}\n className=\"bg-violet-500 rounded-r-full\"\n />\n </div>\n </div>\n )\n}\n\n// ============================================\n// 7. HeatmapGrid — Activity heatmap\n// ============================================\nexport function HeatmapGrid({ data, columns = 7, className }: {\n data: number[]\n columns?: number\n className?: string\n}) {\n const max = Math.max(...data)\n\n return (\n <div className={cn(\"inline-grid gap-1\", className)} style={{ gridTemplateColumns: `repeat(${columns}, 1fr)` }}>\n {data.map((val, i) => {\n const intensity = max > 0 ? val / max : 0\n return (\n <motion.div\n key={i}\n initial={{ opacity: 0, scale: 0.5 }}\n animate={{ opacity: 1, scale: 1 }}\n transition={{ delay: i * 0.01 }}\n className=\"w-4 h-4 rounded-sm\"\n style={{ backgroundColor: `hsl(var(--primary) / ${0.1 + intensity * 0.9})` }}\n title={`${val}`}\n />\n )\n })}\n </div>\n )\n}\n\n// ============================================\n// 8. LeaderboardWidget — Ranked list\n// ============================================\nexport function LeaderboardWidget({ items, title, className }: {\n items: { name: string; score: number; avatar?: string }[]\n title?: string\n className?: string\n}) {\n const maxScore = Math.max(...items.map(i => i.score))\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n {title && <h4 className=\"font-semibold mb-4\">{title}</h4>}\n <div className=\"space-y-3\">\n {items.map((item, i) => (\n <div key={i} className=\"flex items-center gap-3\">\n <span className={cn(\n \"w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shrink-0\",\n i === 0 ? \"bg-amber-500/20 text-amber-500\" :\n i === 1 ? \"bg-slate-300/20 text-slate-400\" :\n i === 2 ? \"bg-orange-500/20 text-orange-500\" :\n \"bg-muted text-muted-foreground\"\n )}>{i + 1}</span>\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center text-white text-xs font-bold shrink-0\">\n {item.avatar || item.name.charAt(0)}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium truncate\">{item.name}</p>\n <div className=\"h-1.5 bg-muted rounded-full mt-1 overflow-hidden\">\n <motion.div\n initial={{ width: 0 }}\n animate={{ width: `${(item.score / maxScore) * 100}%` }}\n transition={{ duration: 0.6, delay: i * 0.1 }}\n className=\"h-full bg-primary rounded-full\"\n />\n </div>\n </div>\n <span className=\"text-sm font-semibold text-muted-foreground shrink-0\">{item.score}</span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 9. FunnelChart — Conversion funnel\n// ============================================\nexport function FunnelChart({ steps, className }: {\n steps: { label: string; value: number; color?: string }[]\n className?: string\n}) {\n const maxVal = steps[0]?.value || 1\n\n return (\n <div className={cn(\"w-full space-y-2\", className)}>\n {steps.map((step, i) => {\n const widthPercent = (step.value / maxVal) * 100\n return (\n <motion.div\n key={i}\n initial={{ opacity: 0, x: -20 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: i * 0.1 }}\n className=\"flex items-center gap-3\"\n >\n <span className=\"text-xs text-muted-foreground w-20 text-right shrink-0\">{step.label}</span>\n <div className=\"flex-1 h-8 relative\">\n <motion.div\n initial={{ width: 0 }}\n animate={{ width: `${widthPercent}%` }}\n transition={{ duration: 0.6, delay: i * 0.1 }}\n className={cn(\"h-full rounded-md flex items-center px-3\", step.color || \"bg-primary\")}\n style={{ minWidth: \"40px\" }}\n >\n <span className=\"text-xs font-medium text-primary-foreground\">{step.value.toLocaleString()}</span>\n </motion.div>\n </div>\n </motion.div>\n )\n })}\n </div>\n )\n}\n\n// ============================================\n// 10. KPIDashboard — Multi-stat KPI row\n// ============================================\nexport function KPIDashboard({ metrics, className }: {\n metrics: { label: string; value: string; icon?: React.ReactNode; trend?: string; trendType?: \"up\" | \"down\" }[]\n className?: string\n}) {\n return (\n <div className={cn(\"grid grid-cols-2 md:grid-cols-4 gap-4\", className)}>\n {metrics.map((m, i) => (\n <motion.div\n key={i}\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay: i * 0.1 }}\n className=\"rounded-xl border border-border bg-card p-4\"\n >\n <div className=\"flex items-center justify-between mb-2\">\n <span className=\"text-xs text-muted-foreground\">{m.label}</span>\n {m.icon && <span className=\"text-muted-foreground\">{m.icon}</span>}\n </div>\n <p className=\"text-xl font-bold\">{m.value}</p>\n {m.trend && (\n <span className={cn(\"text-xs font-medium\",\n m.trendType === \"up\" ? \"text-emerald-500\" : \"text-red-500\"\n )}>\n {m.trendType === \"up\" ? \"↑\" : \"↓\"} {m.trend}\n </span>\n )}\n </motion.div>\n ))}\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. ChatMessage — Chat bubble with avatar\n// ============================================\nexport function ChatMessage({ message, sender, time, avatar, isOwn = false, className }: {\n message: string\n sender: string\n time?: string\n avatar?: string\n isOwn?: boolean\n className?: string\n}) {\n return (\n <div className={cn(\"flex gap-3\", isOwn && \"flex-row-reverse\", className)}>\n <div className={cn(\n \"w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold text-white shrink-0\",\n isOwn ? \"bg-gradient-to-br from-blue-500 to-cyan-500\" : \"bg-gradient-to-br from-violet-500 to-pink-500\"\n )}>\n {avatar || sender.charAt(0)}\n </div>\n <div className={cn(\"max-w-[70%]\", isOwn && \"items-end\")}>\n <div className={cn(\n \"rounded-2xl px-4 py-2.5 text-sm\",\n isOwn\n ? \"bg-primary text-primary-foreground rounded-br-md\"\n : \"bg-muted text-foreground rounded-bl-md\"\n )}>\n {message}\n </div>\n {time && <span className={cn(\"text-[10px] text-muted-foreground mt-1 block\", isOwn && \"text-right\")}>{time}</span>}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 2. ChatInput — Message input with actions\n// ============================================\nexport function ChatInput({ placeholder = \"Type a message...\", onSend, className }: {\n placeholder?: string\n onSend?: (message: string) => void\n className?: string\n}) {\n const [text, setText] = React.useState(\"\")\n\n const handleSend = () => {\n if (text.trim()) {\n onSend?.(text)\n setText(\"\")\n }\n }\n\n return (\n <div className={cn(\"flex items-center gap-2 rounded-2xl border border-border bg-background p-2 pl-4\", className)}>\n <button className=\"text-muted-foreground hover:text-foreground transition-colors shrink-0\">\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13\" /></svg>\n </button>\n <input\n value={text}\n onChange={(e) => setText(e.target.value)}\n onKeyDown={(e) => e.key === \"Enter\" && handleSend()}\n placeholder={placeholder}\n className=\"flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground min-w-0\"\n />\n <button className=\"text-muted-foreground hover:text-foreground transition-colors shrink-0\">\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\" /></svg>\n </button>\n <motion.button\n whileTap={{ scale: 0.9 }}\n onClick={handleSend}\n className={cn(\n \"w-9 h-9 rounded-xl flex items-center justify-center shrink-0 transition-colors\",\n text.trim() ? \"bg-primary text-primary-foreground\" : \"bg-muted text-muted-foreground\"\n )}\n >\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 19l9 2-9-18-9 18 9-2zm0 0v-8\" /></svg>\n </motion.button>\n </div>\n )\n}\n\n// ============================================\n// 3. UserProfileCard — Social profile card\n// ============================================\nexport function UserProfileCard({ name, username, bio, stats, isFollowing = false, className }: {\n name: string\n username: string\n bio?: string\n stats?: { label: string; value: string }[]\n isFollowing?: boolean\n className?: string\n}) {\n const [following, setFollowing] = React.useState(isFollowing)\n\n return (\n <div className={cn(\"rounded-2xl border border-border bg-card overflow-hidden w-full max-w-xs\", className)}>\n <div className=\"h-24 bg-gradient-to-r from-violet-600 via-purple-500 to-pink-500\" />\n <div className=\"px-5 pb-5\">\n <div className=\"w-16 h-16 rounded-full border-4 border-card bg-gradient-to-br from-violet-400 to-pink-400 flex items-center justify-center text-white font-bold text-xl -mt-8 mb-3 shadow-lg\">\n {name.charAt(0)}\n </div>\n <div className=\"flex items-start justify-between\">\n <div>\n <h4 className=\"font-bold\">{name}</h4>\n <p className=\"text-sm text-muted-foreground\">@{username}</p>\n </div>\n <motion.button\n whileTap={{ scale: 0.95 }}\n onClick={() => setFollowing(!following)}\n className={cn(\"px-4 py-1.5 rounded-full text-xs font-semibold transition-colors\",\n following\n ? \"bg-muted text-muted-foreground hover:bg-red-500/10 hover:text-red-500\"\n : \"bg-primary text-primary-foreground hover:bg-primary/90\"\n )}\n >\n {following ? \"Following\" : \"Follow\"}\n </motion.button>\n </div>\n {bio && <p className=\"text-sm text-muted-foreground mt-3 leading-relaxed\">{bio}</p>}\n {stats && (\n <div className=\"flex gap-5 mt-4 pt-4 border-t border-border\">\n {stats.map((s, i) => (\n <div key={i}>\n <p className=\"font-bold text-sm\">{s.value}</p>\n <p className=\"text-xs text-muted-foreground\">{s.label}</p>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 4. CommentThread — Nested comment thread\n// ============================================\nexport function CommentThread({ comments, className }: {\n comments: { author: string; text: string; time: string; replies?: { author: string; text: string; time: string }[] }[]\n className?: string\n}) {\n return (\n <div className={cn(\"space-y-4\", className)}>\n {comments.map((comment, i) => (\n <div key={i} className=\"space-y-3\">\n <div className=\"flex gap-3\">\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center text-white text-xs font-bold shrink-0\">\n {comment.author.charAt(0)}\n </div>\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2 mb-1\">\n <span className=\"font-semibold text-sm\">{comment.author}</span>\n <span className=\"text-xs text-muted-foreground\">{comment.time}</span>\n </div>\n <p className=\"text-sm text-muted-foreground\">{comment.text}</p>\n <button className=\"text-xs text-primary hover:underline mt-1\">Reply</button>\n </div>\n </div>\n {comment.replies?.map((reply, j) => (\n <div key={j} className=\"flex gap-3 ml-11\">\n <div className=\"w-6 h-6 rounded-full bg-gradient-to-br from-blue-500 to-cyan-500 flex items-center justify-center text-white text-[10px] font-bold shrink-0\">\n {reply.author.charAt(0)}\n </div>\n <div className=\"flex-1\">\n <div className=\"flex items-center gap-2 mb-1\">\n <span className=\"font-semibold text-xs\">{reply.author}</span>\n <span className=\"text-[10px] text-muted-foreground\">{reply.time}</span>\n </div>\n <p className=\"text-xs text-muted-foreground\">{reply.text}</p>\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n )\n}\n\n// ============================================\n// 5. ReactionBar — Emoji reactions row\n// ============================================\nexport function ReactionBar({ reactions, onReact, className }: {\n reactions: { emoji: string; count: number; active?: boolean }[]\n onReact?: (emoji: string) => void\n className?: string\n}) {\n return (\n <div className={cn(\"flex flex-wrap gap-1.5\", className)}>\n {reactions.map((r, i) => (\n <motion.button\n key={i}\n whileTap={{ scale: 0.9 }}\n onClick={() => onReact?.(r.emoji)}\n className={cn(\n \"inline-flex items-center gap-1 rounded-full px-2.5 py-1 text-sm border transition-colors\",\n r.active\n ? \"border-primary/30 bg-primary/10 text-primary\"\n : \"border-border bg-background text-muted-foreground hover:bg-muted\"\n )}\n >\n <span>{r.emoji}</span>\n <span className=\"text-xs font-medium\">{r.count}</span>\n </motion.button>\n ))}\n <button className=\"inline-flex items-center justify-center w-8 h-8 rounded-full border border-dashed border-border text-muted-foreground hover:text-foreground hover:border-foreground/30 transition-colors text-sm\">\n +\n </button>\n </div>\n )\n}\n\n// ============================================\n// 6. ActivityItem — Activity feed item\n// ============================================\nexport function ActivityItem({ user, action, target, time, icon, className }: {\n user: string\n action: string\n target?: string\n time: string\n icon?: React.ReactNode\n className?: string\n}) {\n return (\n <div className={cn(\"flex items-start gap-3 py-3\", className)}>\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center text-white text-xs font-bold shrink-0\">\n {icon || user.charAt(0)}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm\">\n <span className=\"font-semibold\">{user}</span>{\" \"}\n <span className=\"text-muted-foreground\">{action}</span>{\" \"}\n {target && <span className=\"font-medium\">{target}</span>}\n </p>\n <span className=\"text-xs text-muted-foreground\">{time}</span>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 7. SocialPost — Social media post card\n// ============================================\nexport function SocialPost({ author, handle, content, time, likes = 0, comments = 0, shares = 0, className }: {\n author: string\n handle: string\n content: string\n time: string\n likes?: number\n comments?: number\n shares?: number\n className?: string\n}) {\n const [liked, setLiked] = React.useState(false)\n const [likeCount, setLikeCount] = React.useState(likes)\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n <div className=\"flex items-center gap-3 mb-3\">\n <div className=\"w-10 h-10 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center text-white font-bold\">\n {author.charAt(0)}\n </div>\n <div className=\"flex-1\">\n <p className=\"font-semibold text-sm\">{author}</p>\n <p className=\"text-xs text-muted-foreground\">@{handle} · {time}</p>\n </div>\n </div>\n <p className=\"text-sm leading-relaxed mb-4\">{content}</p>\n <div className=\"flex items-center gap-6 pt-3 border-t border-border\">\n <motion.button\n whileTap={{ scale: 0.8 }}\n onClick={() => { setLiked(!liked); setLikeCount(liked ? likeCount - 1 : likeCount + 1) }}\n className={cn(\"flex items-center gap-1.5 text-sm transition-colors\", liked ? \"text-red-500\" : \"text-muted-foreground hover:text-red-500\")}\n >\n <svg className=\"w-4 h-4\" fill={liked ? \"currentColor\" : \"none\"} viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\" /></svg>\n {likeCount}\n </motion.button>\n <button className=\"flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors\">\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z\" /></svg>\n {comments}\n </button>\n <button className=\"flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground transition-colors\">\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8.684 13.342C8.886 12.938 9 12.482 9 12c0-.482-.114-.938-.316-1.342m0 2.684a3 3 0 110-2.684m0 2.684l6.632 3.316m-6.632-6l6.632-3.316m0 0a3 3 0 105.367-2.684 3 3 0 00-5.367 2.684zm0 9.316a3 3 0 105.368 2.684 3 3 0 00-5.368-2.684z\" /></svg>\n {shares}\n </button>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 8. OnlineUsersList — Shows online users\n// ============================================\nexport function OnlineUsersList({ users, className }: {\n users: { name: string; status?: \"online\" | \"away\" | \"busy\" | \"offline\" }[]\n className?: string\n}) {\n const statusColors = {\n online: \"bg-emerald-500\",\n away: \"bg-amber-500\",\n busy: \"bg-red-500\",\n offline: \"bg-muted-foreground/50\",\n }\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-4\", className)}>\n <h4 className=\"font-semibold text-sm mb-3\">Online — {users.filter(u => u.status === \"online\").length}</h4>\n <div className=\"space-y-2\">\n {users.map((user, i) => (\n <div key={i} className=\"flex items-center gap-3 py-1\">\n <div className=\"relative\">\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center text-white text-xs font-bold\">\n {user.name.charAt(0)}\n </div>\n <div className={cn(\"absolute -bottom-0.5 -right-0.5 w-3 h-3 rounded-full border-2 border-card\", statusColors[user.status || \"offline\"])} />\n </div>\n <span className=\"text-sm\">{user.name}</span>\n </div>\n ))}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 9. ShareSheet — Share options panel\n// ============================================\nexport function ShareSheet({ url, title, className }: {\n url?: string\n title?: string\n className?: string\n}) {\n const [copied, setCopied] = React.useState(false)\n const shareLink = url || \"https://nexoreui.dev\"\n\n const platforms = [\n { name: \"Twitter\", color: \"bg-sky-500\", icon: \"𝕏\" },\n { name: \"Facebook\", color: \"bg-blue-600\", icon: \"f\" },\n { name: \"LinkedIn\", color: \"bg-blue-700\", icon: \"in\" },\n { name: \"Email\", color: \"bg-emerald-500\", icon: \"✉\" },\n ]\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n {title && <h4 className=\"font-semibold text-sm mb-4\">{title}</h4>}\n <div className=\"flex gap-3 mb-4\">\n {platforms.map((p, i) => (\n <motion.button\n key={i}\n whileTap={{ scale: 0.9 }}\n className={cn(\"w-10 h-10 rounded-full flex items-center justify-center text-white text-sm font-bold\", p.color)}\n title={p.name}\n >\n {p.icon}\n </motion.button>\n ))}\n </div>\n <div className=\"flex gap-2\">\n <div className=\"flex-1 px-3 py-2 rounded-lg bg-muted text-sm text-muted-foreground truncate font-mono\">\n {shareLink}\n </div>\n <motion.button\n whileTap={{ scale: 0.9 }}\n onClick={() => { navigator.clipboard.writeText(shareLink); setCopied(true); setTimeout(() => setCopied(false), 2000) }}\n className=\"px-3 py-2 rounded-lg bg-primary text-primary-foreground text-sm font-medium shrink-0\"\n >\n {copied ? \"Copied!\" : \"Copy\"}\n </motion.button>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 10. NotificationCenter — Notification list\n// ============================================\nexport function NotificationCenter({ notifications, className }: {\n notifications: { title: string; message: string; time: string; read?: boolean; type?: \"info\" | \"success\" | \"warning\" }[]\n className?: string\n}) {\n const typeIcons = {\n info: \"💬\",\n success: \"✅\",\n warning: \"⚠️\",\n }\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card overflow-hidden\", className)}>\n <div className=\"flex items-center justify-between px-4 py-3 border-b border-border\">\n <h4 className=\"font-semibold text-sm\">Notifications</h4>\n <span className=\"text-xs text-primary font-medium cursor-pointer hover:underline\">Mark all read</span>\n </div>\n <div className=\"divide-y divide-border max-h-[400px] overflow-y-auto\">\n {notifications.map((n, i) => (\n <motion.div\n key={i}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ delay: i * 0.05 }}\n className={cn(\"flex items-start gap-3 px-4 py-3 hover:bg-muted/50 transition-colors cursor-pointer\", !n.read && \"bg-primary/5\")}\n >\n <span className=\"text-base shrink-0 mt-0.5\">{typeIcons[n.type || \"info\"]}</span>\n <div className=\"flex-1 min-w-0\">\n <p className={cn(\"text-sm\", !n.read && \"font-semibold\")}>{n.title}</p>\n <p className=\"text-xs text-muted-foreground line-clamp-1\">{n.message}</p>\n </div>\n <span className=\"text-[10px] text-muted-foreground shrink-0 mt-0.5\">{n.time}</span>\n {!n.read && <div className=\"w-2 h-2 rounded-full bg-primary shrink-0 mt-1.5\" />}\n </motion.div>\n ))}\n </div>\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. ProductCard Pro — Enhanced product card\n// ============================================\nexport function ProductCardPro({ name, price, originalPrice, badge, rating = 0, reviewCount = 0, className }: {\n name: string\n price: string\n originalPrice?: string\n badge?: string\n rating?: number\n reviewCount?: number\n className?: string\n}) {\n const [wishlisted, setWishlisted] = React.useState(false)\n\n return (\n <motion.div\n whileHover={{ y: -4 }}\n className={cn(\"rounded-2xl border border-border bg-card overflow-hidden group\", className)}\n >\n <div className=\"relative aspect-square bg-gradient-to-br from-slate-100 to-slate-200 dark:from-slate-800 dark:to-slate-900\">\n {badge && (\n <span className=\"absolute top-3 left-3 px-2 py-1 rounded-full bg-red-500 text-white text-xs font-semibold\">{badge}</span>\n )}\n <motion.button\n whileTap={{ scale: 0.8 }}\n onClick={() => setWishlisted(!wishlisted)}\n className=\"absolute top-3 right-3 w-8 h-8 rounded-full bg-background/80 backdrop-blur-sm flex items-center justify-center border border-border\"\n >\n <svg className={cn(\"w-4 h-4 transition-colors\", wishlisted ? \"text-red-500 fill-red-500\" : \"text-muted-foreground\")} fill={wishlisted ? \"currentColor\" : \"none\"} viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M4.318 6.318a4.5 4.5 0 000 6.364L12 20.364l7.682-7.682a4.5 4.5 0 00-6.364-6.364L12 7.636l-1.318-1.318a4.5 4.5 0 00-6.364 0z\" />\n </svg>\n </motion.button>\n <div className=\"absolute inset-0 flex items-center justify-center text-4xl opacity-30\">🛍</div>\n </div>\n <div className=\"p-4\">\n <h4 className=\"font-semibold text-sm mb-1 truncate\">{name}</h4>\n {rating > 0 && (\n <div className=\"flex items-center gap-1 mb-2\">\n <div className=\"flex\">\n {[...Array(5)].map((_, i) => (\n <svg key={i} className={cn(\"w-3.5 h-3.5\", i < rating ? \"text-amber-400\" : \"text-muted\")} fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path d=\"M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z\"/>\n </svg>\n ))}\n </div>\n <span className=\"text-xs text-muted-foreground\">({reviewCount})</span>\n </div>\n )}\n <div className=\"flex items-center gap-2\">\n <span className=\"text-lg font-bold\">{price}</span>\n {originalPrice && <span className=\"text-sm text-muted-foreground line-through\">{originalPrice}</span>}\n </div>\n <motion.button\n whileTap={{ scale: 0.95 }}\n className=\"w-full mt-3 py-2 rounded-lg bg-primary text-primary-foreground text-sm font-semibold hover:bg-primary/90 transition-colors\"\n >\n Add to Cart\n </motion.button>\n </div>\n </motion.div>\n )\n}\n\n// ============================================\n// 2. CartItem — Shopping cart item\n// ============================================\nexport function CartItem({ name, price, quantity = 1, onQuantityChange, onRemove, className }: {\n name: string\n price: string\n quantity?: number\n onQuantityChange?: (qty: number) => void\n onRemove?: () => void\n className?: string\n}) {\n return (\n <div className={cn(\"flex items-center gap-4 py-4 border-b border-border\", className)}>\n <div className=\"w-16 h-16 rounded-xl bg-gradient-to-br from-slate-100 to-slate-200 dark:from-slate-800 dark:to-slate-900 flex items-center justify-center text-2xl shrink-0\">\n 📦\n </div>\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"font-medium text-sm truncate\">{name}</h4>\n <p className=\"text-sm font-bold mt-1\">{price}</p>\n </div>\n <div className=\"flex items-center gap-1 shrink-0\">\n <button onClick={() => onQuantityChange?.(Math.max(1, quantity - 1))} className=\"w-7 h-7 rounded-md bg-muted flex items-center justify-center text-sm hover:bg-accent transition-colors\">−</button>\n <span className=\"w-8 text-center text-sm font-medium\">{quantity}</span>\n <button onClick={() => onQuantityChange?.(quantity + 1)} className=\"w-7 h-7 rounded-md bg-muted flex items-center justify-center text-sm hover:bg-accent transition-colors\">+</button>\n </div>\n {onRemove && (\n <button onClick={onRemove} className=\"text-muted-foreground hover:text-red-500 transition-colors shrink-0\">\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16\" /></svg>\n </button>\n )}\n </div>\n )\n}\n\n// ============================================\n// 3. CheckoutSummary — Order total summary\n// ============================================\nexport function CheckoutSummary({ subtotal, shipping = \"Free\", tax, total, className }: {\n subtotal: string\n shipping?: string\n tax?: string\n total: string\n className?: string\n}) {\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\n <h4 className=\"font-semibold mb-4\">Order Summary</h4>\n <div className=\"space-y-2 text-sm\">\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Subtotal</span>\n <span>{subtotal}</span>\n </div>\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Shipping</span>\n <span className={shipping === \"Free\" ? \"text-emerald-500 font-medium\" : \"\"}>{shipping}</span>\n </div>\n {tax && (\n <div className=\"flex justify-between\">\n <span className=\"text-muted-foreground\">Tax</span>\n <span>{tax}</span>\n </div>\n )}\n <div className=\"flex justify-between pt-3 border-t border-border font-bold text-base\">\n <span>Total</span>\n <span>{total}</span>\n </div>\n </div>\n <motion.button\n whileTap={{ scale: 0.98 }}\n className=\"w-full mt-4 py-3 rounded-xl bg-primary text-primary-foreground font-semibold hover:bg-primary/90 transition-colors\"\n >\n Proceed to Checkout\n </motion.button>\n </div>\n )\n}\n\n// ============================================\n// 4. PricingSlider — Dynamic pricing slider\n// ============================================\nexport function PricingSlider({ tiers, className }: {\n tiers: { name: string; price: string; features: string[] }[]\n className?: string\n}) {\n const [selected, setSelected] = React.useState(0)\n const tier = tiers[selected]\n\n return (\n <div className={cn(\"rounded-2xl border border-border bg-card p-6\", className)}>\n <div className=\"text-center mb-6\">\n <p className=\"text-sm text-muted-foreground mb-1\">Select your plan</p>\n <p className=\"text-4xl font-bold\">{tier?.price}<span className=\"text-lg text-muted-foreground\">/mo</span></p>\n <p className=\"text-sm font-medium text-primary mt-1\">{tier?.name}</p>\n </div>\n <input\n type=\"range\"\n min={0}\n max={tiers.length - 1}\n value={selected}\n onChange={(e) => setSelected(Number(e.target.value))}\n className=\"w-full mb-6 accent-primary\"\n />\n <AnimatePresence mode=\"wait\">\n <motion.ul\n key={selected}\n initial={{ opacity: 0, y: 10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n className=\"space-y-2\"\n >\n {tier?.features.map((f, i) => (\n <li key={i} className=\"flex items-center gap-2 text-sm\">\n <svg className=\"w-4 h-4 text-emerald-500 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>\n <span className=\"text-muted-foreground\">{f}</span>\n </li>\n ))}\n </motion.ul>\n </AnimatePresence>\n </div>\n )\n}\n\n// ============================================\n// 5. InvoiceCard — Invoice summary card\n// ============================================\nexport function InvoiceCard({ invoiceNumber, date, status, amount, client, className }: {\n invoiceNumber: string\n date: string\n status: \"paid\" | \"pending\" | \"overdue\"\n amount: string\n client: string\n className?: string\n}) {\n const statusStyles = {\n paid: \"bg-emerald-500/10 text-emerald-500\",\n pending: \"bg-amber-500/10 text-amber-500\",\n overdue: \"bg-red-500/10 text-red-500\",\n }\n\n return (\n <div className={cn(\"rounded-xl border border-border bg-card p-5 hover:shadow-md transition-shadow\", className)}>\n <div className=\"flex items-start justify-between mb-3\">\n <div>\n <p className=\"font-mono text-sm font-semibold\">{invoiceNumber}</p>\n <p className=\"text-xs text-muted-foreground\">{date}</p>\n </div>\n <span className={cn(\"text-xs font-medium px-2.5 py-1 rounded-full capitalize\", statusStyles[status])}>{status}</span>\n </div>\n <div className=\"flex items-center justify-between pt-3 border-t border-border\">\n <span className=\"text-sm text-muted-foreground\">{client}</span>\n <span className=\"font-bold text-lg\">{amount}</span>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 6. CreditCard — Visual credit card\n// ============================================\nexport function CreditCardVisual({ holder = \"YOUR NAME\", number = \"•••• •••• •••• 4242\", expiry = \"12/28\", type = \"visa\", className }: {\n holder?: string\n number?: string\n expiry?: string\n type?: \"visa\" | \"mastercard\" | \"amex\"\n className?: string\n}) {\n const gradients = {\n visa: \"from-blue-600 to-blue-800\",\n mastercard: \"from-slate-700 to-slate-900\",\n amex: \"from-emerald-600 to-teal-800\",\n }\n\n return (\n <div className={cn(`relative w-full max-w-sm aspect-[1.6/1] rounded-2xl bg-gradient-to-br ${gradients[type]} p-6 text-white shadow-xl overflow-hidden`, className)}>\n <div className=\"absolute top-0 right-0 w-40 h-40 bg-white/5 rounded-full -translate-y-1/2 translate-x-1/2\" />\n <div className=\"absolute bottom-0 left-0 w-32 h-32 bg-white/5 rounded-full translate-y-1/2 -translate-x-1/2\" />\n <div className=\"relative z-10 h-full flex flex-col justify-between\">\n <div className=\"flex justify-between items-start\">\n <div className=\"w-10 h-7 rounded bg-gradient-to-br from-amber-300 to-amber-500\" />\n <span className=\"text-sm font-bold uppercase opacity-80\">{type}</span>\n </div>\n <p className=\"text-lg font-mono tracking-widest\">{number}</p>\n <div className=\"flex justify-between items-end\">\n <div>\n <p className=\"text-[10px] uppercase opacity-60\">Card Holder</p>\n <p className=\"text-sm font-medium uppercase tracking-wider\">{holder}</p>\n </div>\n <div>\n <p className=\"text-[10px] uppercase opacity-60\">Expires</p>\n <p className=\"text-sm font-mono\">{expiry}</p>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 7. CouponCard — Promo/coupon card\n// ============================================\nexport function CouponCard({ code, discount, description, validUntil, className }: {\n code: string\n discount: string\n description?: string\n validUntil?: string\n className?: string\n}) {\n const [copied, setCopied] = React.useState(false)\n\n return (\n <div className={cn(\"rounded-xl border-2 border-dashed border-primary/30 bg-primary/5 p-5 relative overflow-hidden\", className)}>\n <div className=\"absolute top-0 right-0 w-20 h-20 bg-primary/10 rounded-full -translate-y-1/2 translate-x-1/2\" />\n <div className=\"relative z-10\">\n <p className=\"text-3xl font-bold text-primary mb-1\">{discount}</p>\n {description && <p className=\"text-sm text-muted-foreground mb-3\">{description}</p>}\n <div className=\"flex items-center gap-2\">\n <div className=\"flex-1 px-3 py-2 rounded-lg bg-background border border-border font-mono text-sm text-center tracking-widest font-bold\">\n {code}\n </div>\n <motion.button\n whileTap={{ scale: 0.9 }}\n onClick={() => { navigator.clipboard.writeText(code); setCopied(true); setTimeout(() => setCopied(false), 2000) }}\n className=\"px-4 py-2 rounded-lg bg-primary text-primary-foreground text-sm font-medium shrink-0\"\n >\n {copied ? \"Copied!\" : \"Copy\"}\n </motion.button>\n </div>\n {validUntil && <p className=\"text-xs text-muted-foreground mt-2\">Valid until {validUntil}</p>}\n </div>\n </div>\n )\n}\n\n// ============================================\n// 8. SubscriptionCard — Subscription status\n// ============================================\nexport function SubscriptionCard({ plan, price, nextBilling, status = \"active\", features, className }: {\n plan: string\n price: string\n nextBilling?: string\n status?: \"active\" | \"cancelled\" | \"past_due\"\n features?: string[]\n className?: string\n}) {\n const statusStyles = {\n active: { bg: \"bg-emerald-500/10\", text: \"text-emerald-500\", label: \"Active\" },\n cancelled: { bg: \"bg-muted\", text: \"text-muted-foreground\", label: \"Cancelled\" },\n past_due: { bg: \"bg-red-500/10\", text: \"text-red-500\", label: \"Past Due\" },\n }\n const s = statusStyles[status]\n\n return (\n <div className={cn(\"rounded-2xl border border-border bg-card p-6\", className)}>\n <div className=\"flex items-start justify-between mb-4\">\n <div>\n <h4 className=\"font-bold text-lg\">{plan}</h4>\n <p className=\"text-2xl font-bold mt-1\">{price}<span className=\"text-sm text-muted-foreground font-normal\">/month</span></p>\n </div>\n <span className={cn(\"text-xs font-medium px-3 py-1 rounded-full\", s.bg, s.text)}>{s.label}</span>\n </div>\n {features && (\n <ul className=\"space-y-2 mb-4\">\n {features.map((f, i) => (\n <li key={i} className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <svg className=\"w-4 h-4 text-emerald-500 shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>\n {f}\n </li>\n ))}\n </ul>\n )}\n {nextBilling && (\n <p className=\"text-xs text-muted-foreground pt-4 border-t border-border\">Next billing: {nextBilling}</p>\n )}\n </div>\n )\n}\n\n// ============================================\n// 9. ReviewStars — Star rating selector\n// ============================================\nexport function ReviewStars({ rating = 0, onChange, size = 24, readonly = false, className }: {\n rating?: number\n onChange?: (rating: number) => void\n size?: number\n readonly?: boolean\n className?: string\n}) {\n const [hovered, setHovered] = React.useState(0)\n\n return (\n <div className={cn(\"flex gap-1\", className)}>\n {[1, 2, 3, 4, 5].map((star) => (\n <motion.button\n key={star}\n whileTap={readonly ? {} : { scale: 0.8 }}\n onClick={() => !readonly && onChange?.(star)}\n onMouseEnter={() => !readonly && setHovered(star)}\n onMouseLeave={() => !readonly && setHovered(0)}\n className={cn(\"transition-colors\", readonly ? \"cursor-default\" : \"cursor-pointer\")}\n >\n <svg\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill={(hovered || rating) >= star ? \"currentColor\" : \"none\"}\n stroke=\"currentColor\"\n strokeWidth={1.5}\n className={cn(\n \"transition-colors\",\n (hovered || rating) >= star ? \"text-amber-400\" : \"text-muted-foreground/30\"\n )}\n >\n <path d=\"M12 2l3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01L12 2z\" />\n </svg>\n </motion.button>\n ))}\n </div>\n )\n}\n\n// ============================================\n// 10. TrustBadge — Trust/security badge\n// ============================================\nexport function TrustBadge({ icon, title, subtitle, className }: {\n icon?: React.ReactNode\n title: string\n subtitle?: string\n className?: string\n}) {\n return (\n <div className={cn(\"flex items-center gap-3 rounded-lg border border-border bg-card px-4 py-3\", className)}>\n <div className=\"w-10 h-10 rounded-full bg-emerald-500/10 flex items-center justify-center text-emerald-500 shrink-0\">\n {icon || (\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z\" /></svg>\n )}\n </div>\n <div>\n <p className=\"font-semibold text-sm\">{title}</p>\n {subtitle && <p className=\"text-xs text-muted-foreground\">{subtitle}</p>}\n </div>\n </div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, useMotionValue, useTransform, useSpring, HTMLMotionProps, AnimatePresence } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. GlowSpotlightCard — Cursor-tracking glowing card\n// ============================================\nexport interface GlowSpotlightCardProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n glowColor?: string\n glowSize?: number\n}\n\nexport const GlowSpotlightCard = React.forwardRef<HTMLDivElement, GlowSpotlightCardProps>(\n ({ children, className, glowColor = \"rgba(139, 92, 246, 0.15)\", glowSize = 300, ...props }, ref) => {\n const mouseX = useMotionValue(0)\n const mouseY = useMotionValue(0)\n\n const handleMouseMove = React.useCallback(\n ({ clientX, clientY, currentTarget }: React.MouseEvent) => {\n const { left, top } = currentTarget.getBoundingClientRect()\n mouseX.set(clientX - left)\n mouseY.set(clientY - top)\n },\n [mouseX, mouseY]\n )\n\n return (\n <div\n ref={ref}\n onMouseMove={handleMouseMove}\n className={cn(\n \"relative overflow-hidden rounded-xl border border-border bg-card p-6 shadow-sm transition-shadow duration-300 hover:shadow-md\",\n className\n )}\n {...props}\n >\n <motion.div\n className=\"pointer-events-none absolute -inset-px rounded-xl opacity-0 transition-opacity duration-300 group-hover:opacity-100\"\n style={{\n background: `radial-gradient(${glowSize}px circle at var(--x, 0px) var(--y, 0px), ${glowColor}, transparent 80%)`,\n // Custom properties injected dynamically\n WebkitMaskImage: \"radial-gradient(circle, black, transparent)\",\n }}\n animate={{\n opacity: [0, 1],\n }}\n />\n {/* Fallback mouse tracker using CSS variables */}\n <div\n className=\"absolute inset-0 pointer-events-none opacity-0 group-hover:opacity-100 transition-opacity duration-500\"\n style={\n {\n background: `radial-gradient(${glowSize}px circle at var(--mouse-x, 0px) var(--mouse-y, 0px), ${glowColor}, transparent 80%)`,\n \"--mouse-x\": mouseX.get() + \"px\",\n \"--mouse-y\": mouseY.get() + \"px\",\n } as React.CSSProperties\n }\n />\n <div className=\"relative z-10\">{children}</div>\n </div>\n )\n }\n)\nGlowSpotlightCard.displayName = \"GlowSpotlightCard\"\n\n// ============================================\n// 2. WordFadeReveal — Word-by-word fade with spring\n// ============================================\nexport interface WordFadeRevealProps extends React.HTMLAttributes<HTMLHeadingElement> {\n text: string\n delay?: number\n delayMultiple?: number\n duration?: number\n}\n\nexport function WordFadeReveal({\n text,\n className,\n delay = 0,\n delayMultiple = 0.05,\n duration = 0.5,\n ...props\n}: WordFadeRevealProps) {\n const words = text.split(\" \")\n\n return (\n <h3 className={cn(\"flex flex-wrap justify-center gap-x-1.5\", className)} {...props}>\n {words.map((word, i) => (\n <motion.span\n key={i}\n initial={{ opacity: 0, y: 15, filter: \"blur(4px)\" }}\n animate={{ opacity: 1, y: 0, filter: \"blur(0px)\" }}\n transition={{\n delay: delay + i * delayMultiple,\n duration,\n type: \"spring\",\n stiffness: 100,\n damping: 15,\n }}\n className=\"inline-block\"\n >\n {word}\n </motion.span>\n ))}\n </h3>\n )\n}\n\n// ============================================\n// 3. AnimatedGridBackground — Tech grid with flashing cells\n// ============================================\nexport interface AnimatedGridBackgroundProps extends React.SVGProps<SVGSVGElement> {\n width?: number\n height?: number\n strokeWidth?: number\n strokeColor?: string\n cellFlashColor?: string\n flashInterval?: number\n maxFlashes?: number\n className?: string\n}\n\nexport function AnimatedGridBackground({\n width = 40,\n height = 40,\n strokeWidth = 1,\n strokeColor = \"rgba(255, 255, 255, 0.05)\",\n cellFlashColor = \"rgba(139, 92, 246, 0.1)\",\n flashInterval = 1000,\n maxFlashes = 4,\n className,\n ...props\n}: AnimatedGridBackgroundProps) {\n const id = React.useId()\n const [flashingCells, setFlashingCells] = React.useState<{ x: number; y: number; id: number }[]>([])\n\n React.useEffect(() => {\n const timer = setInterval(() => {\n setFlashingCells((prev) => {\n // Randomly add new flash cells and limit maximum flashing cells\n const newFlash = {\n x: Math.floor(Math.random() * 20) * width,\n y: Math.floor(Math.random() * 20) * height,\n id: Math.random(),\n }\n const filtered = prev.filter((_, idx) => idx > prev.length - maxFlashes)\n return [...filtered, newFlash]\n })\n }, flashInterval)\n\n return () => clearInterval(timer)\n }, [width, height, flashInterval, maxFlashes])\n\n return (\n <svg\n className={cn(\"absolute inset-0 h-full w-full pointer-events-none select-none\", className)}\n {...props}\n >\n <defs>\n <pattern\n id={id}\n width={width}\n height={height}\n patternUnits=\"userSpaceOnUse\"\n x=\"-1\"\n y=\"-1\"\n >\n <path\n d={`M ${width} 0 L 0 0 0 ${height}`}\n fill=\"none\"\n stroke={strokeColor}\n strokeWidth={strokeWidth}\n />\n </pattern>\n </defs>\n <rect width=\"100%\" height=\"100%\" fill={`url(#${id})`} />\n <AnimatePresence>\n {flashingCells.map((cell) => (\n <motion.rect\n key={cell.id}\n initial={{ opacity: 0 }}\n animate={{ opacity: [0, 1, 0] }}\n exit={{ opacity: 0 }}\n transition={{ duration: 2, ease: \"easeInOut\" }}\n x={cell.x}\n y={cell.y}\n width={width - strokeWidth}\n height={height - strokeWidth}\n fill={cellFlashColor}\n />\n ))}\n </AnimatePresence>\n </svg>\n )\n}\n\n// ============================================\n// 4. BentoGrid — Premium Dashboard Layout\n// ============================================\nexport interface BentoGridProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode\n className?: string\n}\n\nexport function BentoGrid({ children, className, ...props }: BentoGridProps) {\n return (\n <div\n className={cn(\n \"grid grid-cols-1 md:grid-cols-3 gap-4 auto-rows-[180px] w-full\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport interface BentoCardProps extends React.HTMLAttributes<HTMLDivElement> {\n title: string\n description: string\n header?: React.ReactNode\n icon?: React.ReactNode\n children?: React.ReactNode\n span?: string // Tailwind grid span class: \"md:col-span-2 md:row-span-2\" etc\n delay?: number\n className?: string\n}\n\nexport function BentoCard({\n title,\n description,\n header,\n icon,\n children,\n span = \"md:col-span-1\",\n className,\n delay = 0,\n ...props\n}: BentoCardProps) {\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\n\n return (\n <motion.div\n initial={{ opacity: 0, y: 15 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay, duration: 0.4, type: \"spring\", stiffness: 100, damping: 15 }}\n className={cn(\n \"group relative flex flex-col justify-between overflow-hidden rounded-xl border border-border bg-card hover:bg-muted/10 p-6 transition-all duration-300 hover:shadow-lg hover:border-primary/20\",\n span,\n className\n )}\n {...(motionSafeProps as HTMLMotionProps<\"div\">)}\n >\n {/* Glow highlight */}\n <div className=\"pointer-events-none absolute -inset-px rounded-xl opacity-0 transition-opacity duration-300 group-hover:opacity-100 bg-gradient-to-tr from-primary/5 via-transparent to-transparent\" />\n\n {header && <div className=\"w-full overflow-hidden rounded-lg mb-4\">{header}</div>}\n\n <div className=\"flex flex-col gap-1.5 mt-auto\">\n <div className=\"flex items-center gap-2\">\n {icon && <div className=\"text-primary transition-transform duration-300 group-hover:scale-110\">{icon}</div>}\n <h3 className=\"font-semibold tracking-tight text-card-foreground text-sm md:text-base\">\n {title}\n </h3>\n </div>\n <p className=\"text-xs md:text-sm text-muted-foreground max-w-[220px]\">\n {description}\n </p>\n </div>\n\n {children && <div className=\"mt-4\">{children}</div>}\n </motion.div>\n )\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"../utils/cn\"\nimport { Check, Copy } from \"lucide-react\"\n\n// ============================================\n// CopyButton — Button with copy-to-clipboard state\n// ============================================\nexport interface CopyButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** The value to copy to clipboard */\n value: string\n}\n\nexport function CopyButton({ value, className, ...props }: CopyButtonProps) {\n const [copied, setCopied] = React.useState(false)\n\n const handleCopy = () => {\n navigator.clipboard.writeText(value)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n\n return (\n <button\n onClick={handleCopy}\n className={cn(\n \"inline-flex items-center justify-center rounded-md p-1.5 text-sm font-medium\",\n \"hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n \"transition-colors\",\n className\n )}\n {...props}\n >\n {copied ? (\n <Check className=\"h-4 w-4 text-emerald-500\" />\n ) : (\n <Copy className=\"h-4 w-4\" />\n )}\n </button>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","names":["React","import_framer_motion","import_class_variance_authority","import_jsx_runtime","React","import_framer_motion","import_class_variance_authority","import_jsx_runtime","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_framer_motion","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_framer_motion","import_jsx_runtime","React","import_class_variance_authority","import_framer_motion","import_jsx_runtime","import_sonner","import_jsx_runtime","SonnerToaster","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","alertVariants","Icon","React","import_lucide_react","import_jsx_runtime","import_framer_motion","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","Icon","import_lucide_react","import_framer_motion","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_framer_motion","import_lucide_react","import_jsx_runtime","Icon","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_lucide_react","import_jsx_runtime","Icon","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","Icon","import_framer_motion","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","Icon","import_framer_motion","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_framer_motion","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","Icon","import_lucide_react","import_jsx_runtime","import_framer_motion","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_framer_motion","import_jsx_runtime","import_framer_motion","import_jsx_runtime","Icon","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/button.tsx","../src/utils/cn.ts","../src/components/card.tsx","../src/components/input.tsx","../src/components/badge.tsx","../src/components/avatar.tsx","../src/components/tabs.tsx","../src/components/accordion.tsx","../src/components/dialog.tsx","../src/components/tooltip.tsx","../src/components/checkbox.tsx","../src/components/switch.tsx","../src/components/select.tsx","../src/components/alert.tsx","../src/components/toaster.tsx","../src/components/skeleton.tsx","../src/components/progress.tsx","../src/components/slider.tsx","../src/components/loader.tsx","../src/components/navigation.tsx","../src/components/scroll-area.tsx","../src/components/special-animations.tsx","../src/components/blur-fade.tsx","../src/components/marquee.tsx","../src/components/number-ticker.tsx","../src/components/rating.tsx","../src/components/file-upload.tsx","../src/components/table.tsx","../src/components/stepper.tsx","../src/components/command.tsx","../src/components/data-display.tsx","../src/components/aurora-border-card.tsx","../src/components/ai-prompt-input.tsx","../src/components/pro-forms.tsx","../src/components/pro-ecommerce.tsx","../src/components/pro-ai.tsx","../src/components/pro-tables.tsx","../src/components/pro-dashboards.tsx","../src/components/pro-navigation.tsx","../src/components/pro-feedback.tsx","../src/components/pro-marketing.tsx","../src/components/pro-lists.tsx","../src/components/pro-layouts.tsx","../src/components/pro-buttons.tsx","../src/components/pro-cards.tsx","../src/components/pro-inputs.tsx","../src/components/special-forms.tsx","../src/components/ultra-components.tsx","../src/components/ultra-effects.tsx","../src/components/premium-overlays.tsx","../src/components/premium-media.tsx","../src/components/premium-charts.tsx","../src/components/premium-social.tsx","../src/components/premium-commerce.tsx","../src/components/premium-effects.tsx","../src/components/aurora-border-fx.tsx","../src/components/morphing-geometry.tsx","../src/components/interactive-code-block.tsx","../src/components/dock.tsx","../src/components/dark-mode.tsx"],"sourcesContent":["// Core Atomic Components\r\nexport * from './components/button';\r\nexport * from './components/card';\r\nexport * from './components/input';\r\nexport * from './components/badge';\r\nexport * from './components/avatar';\r\nexport * from './components/tabs';\r\nexport * from './components/accordion';\r\nexport * from './components/dialog';\r\nexport * from './components/tooltip';\r\nexport * from './components/checkbox';\r\nexport * from './components/switch';\r\nexport * from './components/select';\r\nexport * from './components/alert';\r\nexport * from './components/toaster';\r\nexport * from './components/skeleton';\r\nexport * from './components/progress';\r\nexport * from './components/slider';\r\nexport * from './components/loader';\r\nexport * from './components/navigation';\r\nexport * from './components/scroll-area';\r\n\r\n// Advanced Visual & Motion Helpers\r\nexport * from './components/special-animations';\r\nexport * from './components/blur-fade';\r\nexport * from './components/marquee';\r\nexport * from './components/number-ticker';\r\nexport * from './components/rating';\r\nexport * from './components/file-upload';\r\nexport * from './components/table';\r\nexport * from './components/stepper';\r\nexport * from './components/command';\r\nexport * from './components/data-display';\r\nexport * from './components/aurora-border-card';\r\nexport * from './components/ai-prompt-input';\r\n\r\n// Pro Components\r\nexport * from './components/pro-forms';\r\nexport * from './components/pro-ecommerce';\r\nexport * from './components/pro-ai';\r\nexport * from './components/pro-tables';\r\nexport * from './components/pro-dashboards';\r\nexport * from './components/pro-navigation';\r\nexport * from './components/pro-feedback';\r\nexport * from './components/pro-marketing';\r\nexport * from './components/pro-lists';\r\nexport * from './components/pro-layouts';\r\nexport * from './components/pro-buttons';\r\nexport * from './components/pro-cards';\r\nexport * from './components/pro-inputs';\r\nexport * from './components/special-forms';\r\n\r\n// Ultra Premium Components\r\nexport * from './components/ultra-components';\r\nexport * from './components/ultra-effects';\r\n\r\n// Premium Overlays & Rich Media V2\r\nexport * from './components/premium-overlays';\r\nexport * from './components/premium-media';\r\nexport * from './components/premium-charts';\r\nexport * from './components/premium-social';\r\nexport * from './components/premium-commerce';\r\nexport * from './components/premium-effects';\r\nexport * from './components/aurora-border-card';\r\nexport * from './components/aurora-border-fx';\r\nexport * from './components/morphing-geometry';\r\nexport * from './components/interactive-code-block';\r\n\r\n// Utilities\r\nexport * from './components/dock';\r\nexport * from './components/dark-mode';\r\nexport * from './utils/cn';\r\n","'use client';\r\n\r\nimport * as React from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { cn } from '../utils/cn';\r\nimport { motion, HTMLMotionProps } from 'framer-motion';\r\nimport { Loader2 } from 'lucide-react';\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 active:scale-95\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90\",\r\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80 border border-border/50\",\r\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90 shadow-sm\",\r\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\r\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n // Premium variants\r\n premium: \"bg-gradient-to-r from-violet-600 via-pink-600 to-orange-500 text-white shadow-lg shadow-purple-500/20 hover:shadow-xl hover:shadow-purple-500/30\",\r\n neon: \"bg-background border-2 border-primary text-foreground shadow-[0_0_var(--glow-radius)_rgba(var(--glow-color),var(--glow-strength))] hover:shadow-[0_0_calc(var(--glow-radius)*1.5)_rgba(var(--glow-color),calc(var(--glow-strength)*1.5))]\",\r\n glass: \"backdrop-blur-md bg-zinc-900/10 dark:bg-zinc-100/10 border border-zinc-900/20 dark:border-zinc-100/20 text-zinc-900 dark:text-zinc-50 hover:bg-zinc-900/20 dark:hover:bg-zinc-100/20 shadow-md\",\r\n shimmer: \"relative overflow-hidden bg-slate-900 text-white dark:bg-white dark:text-black\",\r\n // New requested variants\r\n gradient: \"bg-gradient-to-r from-indigo-600 via-purple-600 to-violet-600 dark:from-indigo-500 dark:via-purple-500 dark:to-violet-500 text-white shadow-lg shadow-indigo-500/20 hover:shadow-xl hover:shadow-indigo-500/30 hover:opacity-95\",\r\n glow: \"bg-primary text-primary-foreground shadow-[0_0_var(--glow-radius)_rgba(var(--glow-color),var(--glow-strength))] hover:shadow-[0_0_calc(var(--glow-radius)*1.5)_rgba(var(--glow-color),calc(var(--glow-strength)*1.5))] border border-primary/20\",\r\n magnetic: \"bg-gradient-to-br from-violet-600 to-indigo-600 text-white shadow-md hover:shadow-lg\",\r\n loading: \"bg-primary/80 text-primary-foreground/80 pointer-events-none cursor-wait\",\r\n },\r\n size: {\r\n default: \"h-10 px-5 py-2\",\r\n sm: \"h-9 rounded-lg px-3 text-xs\",\r\n lg: \"h-11 rounded-xl px-8 text-base\",\r\n icon: \"h-10 w-10 rounded-full\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n);\r\n\r\n/**\r\n * Props for the Button component\r\n */\r\nexport interface ButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\r\n VariantProps<typeof buttonVariants> {\r\n /** \r\n * Enable hover/tap spring motion animation\r\n * @default true \r\n */\r\n animate?: boolean;\r\n /** \r\n * Enable shimmer light animation effect\r\n * @default false\r\n */\r\n shimmer?: boolean;\r\n /** \r\n * Enable neon glow effect\r\n * @default false\r\n */\r\n glow?: boolean;\r\n /** \r\n * Display loading spinner icon and disable actions\r\n * @default false\r\n */\r\n isLoading?: boolean;\r\n}\r\n\r\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n (\r\n {\r\n className,\r\n variant,\r\n size,\r\n animate = true,\r\n shimmer = false,\r\n glow = false,\r\n isLoading = false,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const isShimmer = variant === 'shimmer' || shimmer;\r\n const isMagnetic = variant === 'magnetic';\r\n const isGlow = variant === 'glow' || glow;\r\n\r\n // Track mouse coords for magnetic hover movement\r\n const [magneticPos, setMagneticPos] = React.useState({ x: 0, y: 0 });\r\n\r\n const handleMouseMove = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n if (!isMagnetic) return;\r\n const { clientX, clientY, currentTarget } = e;\r\n const { left, top, width, height } = currentTarget.getBoundingClientRect();\r\n const x = clientX - (left + width / 2);\r\n const y = clientY - (top + height / 2);\r\n // spring weight multiplier\r\n setMagneticPos({ x: x * 0.35, y: y * 0.35 });\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (!isMagnetic) return;\r\n setMagneticPos({ x: 0, y: 0 });\r\n };\r\n\r\n const buttonContent = (\r\n <>\r\n {isShimmer && (\r\n <motion.div\r\n className=\"absolute inset-0 w-[200%] bg-gradient-to-r from-transparent via-white/20 to-transparent\"\r\n initial={{ x: '-100%' }}\r\n animate={{ x: '100%' }}\r\n transition={{\r\n repeat: Infinity,\r\n repeatType: 'loop',\r\n duration: 2,\r\n ease: 'linear',\r\n }}\r\n style={{ transform: 'skewX(-20deg)' }}\r\n />\r\n )}\r\n <span className=\"relative z-10 flex items-center justify-center gap-2\">\r\n {isLoading && <Loader2 className=\"animate-spin h-4 w-4 shrink-0\" />}\r\n {children}\r\n </span>\r\n </>\r\n );\r\n\r\n const activeVariant = isLoading ? \"loading\" : variant;\r\n\r\n // Disable button if loading\r\n const disabledState = props.disabled || isLoading;\r\n\r\n // Destructure custom props to avoid passing invalid props down to HTML element\r\n const { ...htmlProps } = props;\r\n\r\n // Setup base styles\r\n const resolvedClassName = cn(\r\n buttonVariants({ variant: activeVariant, size, className }),\r\n isShimmer && \"relative overflow-hidden\",\r\n isGlow && \"shadow-[0_0_var(--glow-radius)_rgba(var(--glow-color),var(--glow-strength))]\"\r\n );\r\n\r\n if (!animate) {\r\n return (\r\n <button\r\n ref={ref}\r\n disabled={disabledState}\r\n className={resolvedClassName}\r\n {...(htmlProps as React.ButtonHTMLAttributes<HTMLButtonElement>)}\r\n >\r\n {buttonContent}\r\n </button>\r\n );\r\n }\r\n\r\n return (\r\n <motion.button\r\n ref={ref}\r\n disabled={disabledState}\r\n className={resolvedClassName}\r\n onMouseMove={handleMouseMove}\r\n onMouseLeave={handleMouseLeave}\r\n animate={isMagnetic ? { x: magneticPos.x, y: magneticPos.y } : undefined}\r\n whileHover={{\r\n scale: isMagnetic ? 1.02 : 1.03,\r\n y: isMagnetic ? 0 : -1.5,\r\n shadow: isGlow ? \"0 0 calc(var(--glow-radius)*1.5) rgba(var(--glow-color), calc(var(--glow-strength)*1.5))\" : undefined,\r\n }}\r\n whileTap={{ scale: 0.97 }}\r\n transition={{\r\n type: \"spring\",\r\n stiffness: 350,\r\n damping: 20,\r\n }}\r\n {...(htmlProps as any)}\r\n >\r\n {buttonContent}\r\n </motion.button>\r\n );\r\n }\r\n);\r\n\r\nButton.displayName = \"Button\";\r\n\r\nexport { Button, buttonVariants };\r\n\r\n// ----------------------------------------------------\r\n// Deprecated button wrappers for backward compatibility\r\n// ----------------------------------------------------\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"neon\">` instead.\r\n */\r\nexport const NeonButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} variant=\"neon\" glow={true} {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nNeonButton.displayName = \"NeonButton\";\r\n\r\n/**\r\n * @deprecated Use custom styles or class variance utilities on the unified `<Button>` instead.\r\n */\r\nexport const ThreeDButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, className, ...props }, ref) => (\r\n <Button\r\n ref={ref}\r\n className={cn(\r\n \"shadow-[0_5px_0_hsl(var(--primary-dark,240_5.9%_30%))] hover:shadow-[0_2px_0_hsl(var(--primary-dark,240_5.9%_30%))] active:translate-y-[3px] active:shadow-[0_0px_0_transparent] transition-all\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </Button>\r\n )\r\n);\r\nThreeDButton.displayName = \"ThreeDButton\";\r\n\r\n/**\r\n * @deprecated Use custom ripple animations on the unified `<Button>` instead.\r\n */\r\nexport const RippleButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, className, ...props }, ref) => (\r\n <Button\r\n ref={ref}\r\n className={cn(\r\n \"relative overflow-hidden group active:scale-95 transition-transform\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute inset-0 bg-white/20 scale-0 rounded-full group-active:scale-[2] transition-transform duration-500 origin-center\"></span>\r\n <span className=\"relative z-10\">{children}</span>\r\n </Button>\r\n )\r\n);\r\nRippleButton.displayName = \"RippleButton\";\r\n\r\n/**\r\n * @deprecated Use standard utility classes on the unified `<Button>` instead.\r\n */\r\nexport const CyberpunkButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, className, ...props }, ref) => (\r\n <Button\r\n ref={ref}\r\n className={cn(\r\n \"bg-yellow-400 text-black font-extrabold uppercase tracking-widest border-2 border-black hover:bg-black hover:text-yellow-400 hover:border-yellow-400 transition-colors shadow-[4px_4px_0_0_#000] rounded-none hover:shadow-[4px_4px_0_0_#fff]\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </Button>\r\n )\r\n);\r\nCyberpunkButton.displayName = \"CyberpunkButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"magnetic\">` instead.\r\n */\r\nexport const MagneticButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} variant=\"magnetic\" {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nMagneticButton.displayName = \"MagneticButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"shimmer\">` instead.\r\n */\r\nexport const ShimmerButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} variant=\"shimmer\" shimmer={true} {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nShimmerButton.displayName = \"ShimmerButton\";\r\n\r\n/**\r\n * @deprecated Use a custom hover effect on the unified `<Button>` instead.\r\n */\r\nexport const BorderBeamButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, className, ...props }, ref) => (\r\n <Button\r\n ref={ref}\r\n variant=\"outline\"\r\n className={cn(\r\n \"relative overflow-hidden border border-border group\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"absolute inset-0 bg-gradient-to-r from-primary to-transparent opacity-0 group-hover:opacity-20 transition-opacity\"></div>\r\n <div className=\"absolute top-0 left-0 w-full h-[2px] bg-primary scale-x-0 group-hover:scale-x-100 transition-transform origin-left\"></div>\r\n <span className=\"relative z-10\">{children}</span>\r\n </Button>\r\n )\r\n);\r\nBorderBeamButton.displayName = \"BorderBeamButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button isLoading={...}>` instead.\r\n */\r\nexport const LoadingButton = React.forwardRef<HTMLButtonElement, ButtonProps & { isLoading?: boolean }>(\r\n ({ children, isLoading = true, ...props }, ref) => (\r\n <Button ref={ref} isLoading={isLoading} {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nLoadingButton.displayName = \"LoadingButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"destructive\" glow>` instead.\r\n */\r\nexport const DestructiveGlowButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} variant=\"destructive\" glow={true} {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nDestructiveGlowButton.displayName = \"DestructiveGlowButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"outline\">` instead.\r\n */\r\nexport const GhostOutlineButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} variant=\"outline\" {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nGhostOutlineButton.displayName = \"GhostOutlineButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"glow\">` instead.\r\n */\r\nexport const GlowButton = React.forwardRef<HTMLButtonElement, ButtonProps & { glowColor?: string }>(\r\n ({ children, glowColor = \"rgba(139, 92, 246, 0.15)\", className, ...props }, ref) => (\r\n <div className=\"relative group inline-block\">\r\n <div\r\n className=\"absolute -inset-0.5 bg-gradient-to-r from-primary to-purple-600 rounded-lg blur opacity-75 group-hover:opacity-100 transition duration-1000 group-hover:duration-200\"\r\n style={{ backgroundColor: glowColor }}\r\n />\r\n <Button ref={ref} className={cn(\"relative bg-background\", className)} {...props}>\r\n {children}\r\n </Button>\r\n </div>\r\n )\r\n);\r\nGlowButton.displayName = \"GlowButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button shimmer>` instead.\r\n */\r\nexport const ShinyButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} shimmer={true} {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nShinyButton.displayName = \"ShinyButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"gradient\">` instead.\r\n */\r\nexport const GradientButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} variant=\"gradient\" {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nGradientButton.displayName = \"GradientButton\";\r\n\r\n/**\r\n * @deprecated Use the unified `<Button variant=\"glass\">` instead.\r\n */\r\nexport const GlassButton = React.forwardRef<HTMLButtonElement, ButtonProps>(\r\n ({ children, ...props }, ref) => (\r\n <Button ref={ref} variant=\"glass\" {...props}>\r\n {children}\r\n </Button>\r\n )\r\n);\r\nGlassButton.displayName = \"GlassButton\";\r\n\r\n","import { type ClassValue, clsx } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client';\r\n\r\nimport * as React from \"react\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { motion, useMotionValue, useSpring, useTransform, HTMLMotionProps } from \"framer-motion\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\nimport { Heart, Share2, MapPin, Star } from \"lucide-react\"\r\n\r\nconst cardVariants = cva(\r\n \"rounded-2xl text-card-foreground transition-all duration-300 overflow-hidden\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"border bg-card text-card-foreground shadow-sm hover:shadow-md\",\r\n glass: \"backdrop-blur-md bg-white/10 dark:bg-black/20 border border-white/20 dark:border-white/10 shadow-lg\",\r\n gradient: \"bg-gradient-to-br from-violet-500/10 via-pink-500/10 to-orange-500/10 border border-purple-500/20 shadow-lg shadow-purple-500/5\",\r\n glow: \"bg-card border-2 border-primary/20 shadow-[0_0_15px_rgba(var(--primary-rgb),0.1)] hover:shadow-[0_0_25px_rgba(var(--primary-rgb),0.2)]\",\r\n // New variants\r\n bento: \"border border-border/60 bg-gradient-to-br from-card to-muted/20 text-card-foreground shadow-md hover:shadow-lg hover:border-primary/30 relative\",\r\n spotlight: \"border bg-card text-card-foreground relative hover:border-primary/20\",\r\n flip: \"bg-transparent border-0 shadow-none overflow-visible relative\",\r\n tilt: \"border bg-card text-card-foreground shadow-md\",\r\n },\r\n hover: {\r\n none: \"\",\r\n lift: \"hover:-translate-y-1.5 hover:shadow-lg\",\r\n glow: \"hover:border-primary/50 hover:shadow-[0_0_25px_rgba(var(--primary-rgb),0.25)]\",\r\n }\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n hover: \"lift\",\r\n }\r\n }\r\n)\r\n\r\n/**\r\n * Props for the Card component\r\n */\r\nexport interface CardProps\r\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\r\n VariantProps<typeof cardVariants> {\r\n /**\r\n * Whether to enable hover spring animations\r\n * @default true\r\n */\r\n animate?: boolean;\r\n /**\r\n * Back content displayed when using the `flip` variant on hover\r\n */\r\n backContent?: React.ReactNode;\r\n /**\r\n * Custom radial spotlight background color (e.g., rgba(168, 85, 247, 0.15))\r\n * @default \"rgba(139, 92, 246, 0.15)\"\r\n */\r\n spotlightColor?: string;\r\n}\r\n\r\nconst Card = React.forwardRef<HTMLDivElement, CardProps>(\r\n (\r\n {\r\n className,\r\n variant,\r\n hover,\r\n animate = true,\r\n backContent,\r\n spotlightColor = \"rgba(139, 92, 246, 0.15)\",\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n // Feature toggles based on variants\r\n const isSpotlight = variant === \"spotlight\";\r\n const isFlip = variant === \"flip\";\r\n const isTilt = variant === \"tilt\";\r\n\r\n // Spotlight mouse tracking state\r\n const [mousePos, setMousePos] = React.useState({ x: 0, y: 0 });\r\n const handleMouseMoveSpotlight = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (!isSpotlight) return;\r\n const { currentTarget, clientX, clientY } = e;\r\n const { left, top } = currentTarget.getBoundingClientRect();\r\n setMousePos({ x: clientX - left, y: clientY - top });\r\n };\r\n\r\n // Tilt mouse tracking state\r\n const [tiltPos, setTiltPos] = React.useState({ rotateX: 0, rotateY: 0 });\r\n const handleMouseMoveTilt = (e: React.MouseEvent<HTMLDivElement>) => {\r\n if (!isTilt) return;\r\n const { currentTarget, clientX, clientY } = e;\r\n const { left, top, width, height } = currentTarget.getBoundingClientRect();\r\n const x = clientX - left;\r\n const y = clientY - top;\r\n const maxTilt = 12; // degrees max rotation\r\n const rotateX = ((y - height / 2) / (height / 2)) * -maxTilt;\r\n const rotateY = ((x - width / 2) / (width / 2)) * maxTilt;\r\n setTiltPos({ rotateX, rotateY });\r\n };\r\n\r\n const handleMouseLeaveTilt = () => {\r\n if (!isTilt) return;\r\n setTiltPos({ rotateX: 0, rotateY: 0 });\r\n };\r\n\r\n // Flip card hover state\r\n const [isFlipped, setIsFlipped] = React.useState(false);\r\n\r\n // Destructure custom props to avoid DOM validation warnings\r\n const { ...htmlProps } = props;\r\n\r\n // Flip Variant Render\r\n if (isFlip) {\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(cardVariants({ variant, hover, className }), \"perspective-1000 w-full h-full\")}\r\n onMouseEnter={() => setIsFlipped(true)}\r\n onMouseLeave={() => setIsFlipped(false)}\r\n {...(htmlProps as React.HTMLAttributes<HTMLDivElement>)}\r\n >\r\n <motion.div\r\n className=\"relative w-full h-full transition-all duration-500 preserve-3d\"\r\n animate={{ rotateY: isFlipped ? 180 : 0 }}\r\n transition={{ type: \"spring\", stiffness: 300, damping: 22 }}\r\n >\r\n {/* Front Face */}\r\n <div className=\"absolute inset-0 backface-hidden border bg-card text-card-foreground rounded-2xl shadow-sm flex flex-col justify-between overflow-hidden\">\r\n {children}\r\n </div>\r\n\r\n {/* Back Face */}\r\n <div className=\"absolute inset-0 backface-hidden rotate-y-180 border bg-gradient-to-br from-primary/10 to-primary/5 text-card-foreground rounded-2xl shadow-sm flex flex-col p-6 items-center justify-center text-center overflow-hidden\">\r\n {backContent || (\r\n <div className=\"text-sm font-medium text-muted-foreground\">\r\n Flip side content placeholder\r\n </div>\r\n )}\r\n </div>\r\n </motion.div>\r\n </div>\r\n );\r\n }\r\n\r\n // Spotlight Variant Render Extra Element\r\n const spotlightEffect = isSpotlight && (\r\n <div\r\n className=\"pointer-events-none absolute -inset-px rounded-2xl opacity-0 hover:opacity-100 group-hover:opacity-100 transition-opacity duration-300\"\r\n style={{\r\n background: `radial-gradient(400px circle at ${mousePos.x}px ${mousePos.y}px, ${spotlightColor}, transparent 80%)`,\r\n }}\r\n />\r\n );\r\n\r\n // Build the resolved element attributes\r\n const cardClass = cn(cardVariants({ variant, hover: isFlip || isTilt ? \"none\" : hover, className }), isSpotlight && \"group\");\r\n\r\n if (animate || isTilt) {\r\n return (\r\n <motion.div\r\n ref={ref}\r\n className={cardClass}\r\n onMouseMove={(e) => {\r\n if (isSpotlight) handleMouseMoveSpotlight(e);\r\n if (isTilt) handleMouseMoveTilt(e);\r\n }}\r\n onMouseLeave={() => {\r\n if (isTilt) handleMouseLeaveTilt();\r\n }}\r\n animate={\r\n isTilt\r\n ? { rotateX: tiltPos.rotateX, rotateY: tiltPos.rotateY }\r\n : undefined\r\n }\r\n whileHover={isTilt ? undefined : { scale: 1.015 }}\r\n transition={{ type: \"spring\", stiffness: 300, damping: 20 }}\r\n {...(htmlProps as any)}\r\n >\r\n {spotlightEffect}\r\n {children}\r\n </motion.div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cardClass}\r\n {...(htmlProps as React.HTMLAttributes<HTMLDivElement>)}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n)\r\nCard.displayName = \"Card\"\r\n\r\nconst CardHeader = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\r\n {...props}\r\n />\r\n))\r\nCardHeader.displayName = \"CardHeader\"\r\n\r\nconst CardTitle = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLHeadingElement>\r\n>(({ className, ...props }, ref) => (\r\n <h3\r\n ref={ref}\r\n className={cn(\"font-semibold leading-none tracking-tight text-xl bg-gradient-to-br from-foreground to-foreground/75 bg-clip-text text-transparent\", className)}\r\n {...props}\r\n />\r\n))\r\nCardTitle.displayName = \"CardTitle\"\r\n\r\nconst CardDescription = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLParagraphElement>\r\n>(({ className, ...props }, ref) => (\r\n <p\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground leading-relaxed mt-1\", className)}\r\n {...props}\r\n />\r\n))\r\nCardDescription.displayName = \"CardDescription\"\r\n\r\nconst CardContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div ref={ref} className={cn(\"p-6 pt-0 leading-relaxed text-sm text-foreground/90\", className)} {...props} />\r\n))\r\nCardContent.displayName = \"CardContent\"\r\n\r\nconst CardFooter = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\"flex items-center p-6 pt-0 border-t border-border/10 mt-auto\", className)}\r\n {...props}\r\n />\r\n))\r\nCardFooter.displayName = \"CardFooter\"\r\n\r\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\r\n\r\nexport const GlassCard = React.forwardRef<HTMLDivElement, CardProps>(\r\n ({ children, ...props }, ref) => (\r\n <Card ref={ref} variant=\"glass\" {...props}>\r\n {children}\r\n </Card>\r\n )\r\n);\r\nGlassCard.displayName = \"GlassCard\";\r\n\r\nexport const GlowCard = React.forwardRef<HTMLDivElement, CardProps>(\r\n ({ children, ...props }, ref) => (\r\n <Card ref={ref} variant=\"glow\" {...props}>\r\n {children}\r\n </Card>\r\n )\r\n);\r\nGlowCard.displayName = \"GlowCard\";\r\n\r\nexport const GradientCard = React.forwardRef<HTMLDivElement, CardProps>(\r\n ({ children, ...props }, ref) => (\r\n <Card ref={ref} variant=\"gradient\" {...props}>\r\n {children}\r\n </Card>\r\n )\r\n);\r\nGradientCard.displayName = \"GradientCard\";\r\n\r\nexport const HoverCard = React.forwardRef<HTMLDivElement, CardProps>(\r\n ({ children, ...props }, ref) => (\r\n <Card ref={ref} hover=\"lift\" {...props}>\r\n {children}\r\n </Card>\r\n )\r\n);\r\nHoverCard.displayName = \"HoverCard\";\r\n\r\nexport const SpotlightCard = React.forwardRef<HTMLDivElement, CardProps>(\r\n ({ children, ...props }, ref) => (\r\n <Card ref={ref} variant=\"spotlight\" {...props}>\r\n {children}\r\n </Card>\r\n )\r\n);\r\nSpotlightCard.displayName = \"SpotlightCard\";\r\n\r\n\r\n\r\n\r\n","'use client';\n\nimport * as React from \"react\"\nimport { cn } from \"../utils/cn\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X, Search, Mail, AlertCircle, CheckCircle2 } from \"lucide-react\"\n\nconst inputVariants = cva(\n \"flex h-10 w-full rounded-xl border bg-transparent px-4 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground/50 focus-visible:outline-none transition-all duration-200 disabled:cursor-not-allowed disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"border-input bg-background/50 focus:border-primary focus:ring-2 focus:ring-primary/20\",\n glass: \"backdrop-blur-md bg-white/5 dark:bg-black/20 border-white/10 dark:border-white/5 focus:border-white/30 dark:focus:border-white/15 focus:bg-white/10 focus:ring-2 focus:ring-white/10\",\n gradient: \"border-purple-500/20 bg-background/50 focus:border-purple-500/50 focus:ring-2 focus:ring-purple-500/20\",\n underline: \"rounded-none border-t-0 border-x-0 border-b border-muted bg-transparent px-1 focus:border-primary focus:ring-0\",\n // New variants\n otp: \"text-center text-lg font-bold border-input bg-background/50 focus:border-primary focus:ring-2 focus:ring-primary/20\",\n tags: \"hidden\", // Handled by tags wrapper styles\n autocomplete: \"border-input bg-background/50 focus:border-primary focus:ring-2 focus:ring-primary/20\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n }\n }\n)\n\n/**\n * Props for the Input component\n */\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"onChange\" | \"value\" | \"defaultValue\">,\n VariantProps<typeof inputVariants> {\n /**\n * Enable entrance spring animation\n * @default true\n */\n animate?: boolean;\n /**\n * Current text value of the input\n */\n value?: string;\n /**\n * Initial default value for uncontrolled inputs\n */\n defaultValue?: string | number;\n /**\n * Callback fired when value changes\n */\n onChange?: (value: string) => void;\n /**\n * Value for OTP inputs (should be length 6 string)\n */\n otpValue?: string;\n /**\n * Callback fired when OTP string changes\n */\n onOtpChange?: (value: string) => void;\n /**\n * Current active list of tag strings for the `tags` variant\n */\n tags?: string[];\n /**\n * Callback fired when the tags list updates\n */\n onTagsChange?: (tags: string[]) => void;\n /**\n * Suggestions list strings for the `autocomplete` variant\n */\n suggestions?: string[];\n /**\n * Callback fired when a suggestion item is clicked\n */\n onSuggestionSelect?: (value: string) => void;\n /**\n * Label displayed above the input field\n * @example <Input label=\"Email address\" />\n */\n label?: string;\n /**\n * Helper text displayed below the input field\n * @example <Input description=\"We'll never share your email\" />\n */\n description?: string;\n /**\n * Validation error message — shown in red below the field\n * @example <Input error={errors.email?.message} />\n */\n error?: string;\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n (\n {\n className,\n type = \"text\",\n variant,\n animate = true,\n value: propValue,\n defaultValue,\n onChange,\n otpValue = \"\",\n onOtpChange,\n tags = [],\n onTagsChange,\n suggestions = [],\n onSuggestionSelect,\n label,\n description,\n error,\n required,\n id,\n ...props\n },\n ref\n ) => {\n // Manage internal value if component is uncontrolled\n const isControlled = propValue !== undefined;\n const [internalValue, setInternalValue] = React.useState<string>(\n defaultValue !== undefined ? String(defaultValue) : \"\"\n );\n const currentValue = isControlled ? propValue : internalValue;\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalValue(e.target.value);\n }\n onChange?.(e.target.value);\n };\n\n // Generate a stable ID for label association if not provided\n const inputId = id || React.useId();\n const descId = description ? `${inputId}-desc` : undefined;\n const errId = error ? `${inputId}-err` : undefined;\n const isOtp = variant === \"otp\";\n const isTags = variant === \"tags\";\n const isAutocomplete = variant === \"autocomplete\";\n\n // ━━━ 1. OTP INPUT VARIANT IMPLEMENTATION ━━━\n const otpLength = 6;\n const otpRefs = React.useRef<(HTMLInputElement | null)[]>([]);\n \n // Split OTP value into array\n const otpArray = React.useMemo(() => {\n const arr = Array(otpLength).fill(\"\");\n for (let i = 0; i < Math.min(otpValue.length, otpLength); i++) {\n arr[i] = otpValue[i];\n }\n return arr;\n }, [otpValue]);\n\n const handleOtpChange = (val: string, index: number) => {\n const newOtp = [...otpArray];\n // Keep only last char if multiple input\n newOtp[index] = val.slice(-1);\n const newOtpString = newOtp.join(\"\");\n onOtpChange?.(newOtpString);\n\n // Focus next input\n if (val !== \"\" && index < otpLength - 1) {\n otpRefs.current[index + 1]?.focus();\n }\n };\n\n const handleOtpKeyDown = (e: React.KeyboardEvent<HTMLInputElement>, index: number) => {\n if (e.key === \"Backspace\" && otpArray[index] === \"\" && index > 0) {\n // Move focus backward on backspace\n otpRefs.current[index - 1]?.focus();\n } else if (e.key === \"ArrowLeft\" && index > 0) {\n otpRefs.current[index - 1]?.focus();\n } else if (e.key === \"ArrowRight\" && index < otpLength - 1) {\n otpRefs.current[index + 1]?.focus();\n }\n };\n\n const handleOtpPaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData(\"text\").trim().slice(0, otpLength);\n if (/^\\d+$/.test(pastedData)) {\n onOtpChange?.(pastedData);\n // Focus the last populated field or the next empty\n const nextFocusIndex = Math.min(pastedData.length, otpLength - 1);\n otpRefs.current[nextFocusIndex]?.focus();\n }\n };\n\n\n // ━━━ 2. TAGS INPUT VARIANT IMPLEMENTATION ━━━\n const [tagInput, setTagInput] = React.useState(\"\");\n const handleTagInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if ((e.key === \"Enter\" || e.key === \",\") && tagInput.trim()) {\n e.preventDefault();\n const cleanTag = tagInput.trim().replace(/,/g, \"\");\n if (cleanTag && !tags.includes(cleanTag)) {\n const newTags = [...tags, cleanTag];\n onTagsChange?.(newTags);\n }\n setTagInput(\"\");\n } else if (e.key === \"Backspace\" && !tagInput && tags.length > 0) {\n // Delete last tag\n const newTags = tags.slice(0, -1);\n onTagsChange?.(newTags);\n }\n };\n\n const handleRemoveTag = (idx: number) => {\n const newTags = tags.filter((_, i) => i !== idx);\n onTagsChange?.(newTags);\n };\n\n\n // ━━━ 3. AUTOCOMPLETE VARIANT IMPLEMENTATION ━━━\n const [focused, setFocused] = React.useState(false);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const filteredSuggestions = React.useMemo(() => {\n if (!currentValue) return [];\n return suggestions.filter(s =>\n s.toLowerCase().includes(currentValue.toLowerCase()) &&\n s.toLowerCase() !== currentValue.toLowerCase()\n );\n }, [suggestions, currentValue]);\n\n React.useEffect(() => {\n const handleOutsideClick = (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n setFocused(false);\n }\n };\n document.addEventListener(\"mousedown\", handleOutsideClick);\n return () => document.removeEventListener(\"mousedown\", handleOutsideClick);\n }, []);\n\n\n // ━━━ RENDER STAGE ━━━\n\n // Destructure custom props to avoid DOM warning dumps\n const { ...htmlProps } = props;\n\n // A. RENDER OTP\n if (isOtp) {\n return (\n <div className=\"flex gap-2 justify-center w-full\">\n {Array.from({ length: otpLength }).map((_, idx) => (\n <input\n key={idx}\n type=\"text\"\n pattern=\"\\d*\"\n inputMode=\"numeric\"\n maxLength={1}\n ref={(el) => {\n otpRefs.current[idx] = el;\n }}\n value={otpArray[idx]}\n onChange={(e) => handleOtpChange(e.target.value, idx)}\n onKeyDown={(e) => handleOtpKeyDown(e, idx)}\n onPaste={handleOtpPaste}\n className={cn(\n inputVariants({ variant: \"otp\" }),\n \"w-12 h-12 rounded-xl text-center font-bold text-lg border-2\"\n )}\n {...(htmlProps as any)}\n />\n ))}\n </div>\n );\n }\n\n // B. RENDER TAGS\n if (isTags) {\n return (\n <div\n className={cn(\n \"flex flex-wrap items-center gap-1.5 min-h-[44px] w-full rounded-xl border border-input bg-background/50 px-3 py-1.5 focus-within:border-primary focus-within:ring-2 focus-within:ring-primary/20 transition-all\",\n className\n )}\n >\n <AnimatePresence>\n {tags.map((tag, idx) => (\n <motion.span\n key={tag + idx}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n transition={{ type: \"spring\", stiffness: 350, damping: 20 }}\n className=\"inline-flex items-center gap-1 bg-primary/10 text-primary border border-primary/20 text-xs font-semibold px-2 py-0.5 rounded-md\"\n >\n <span>{tag}</span>\n <button\n type=\"button\"\n onClick={() => handleRemoveTag(idx)}\n className=\"hover:bg-primary/20 rounded p-0.5\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n </motion.span>\n ))}\n </AnimatePresence>\n <input\n ref={ref}\n type=\"text\"\n value={tagInput}\n onChange={(e) => setTagInput(e.target.value)}\n onKeyDown={handleTagInputKeyDown}\n placeholder={tags.length === 0 ? props.placeholder : \"\"}\n className=\"flex-1 bg-transparent border-0 outline-none text-sm p-0.5 placeholder:text-muted-foreground/50 focus:ring-0 min-w-[60px]\"\n {...(htmlProps as any)}\n />\n </div>\n );\n }\n\n // C. RENDER AUTOCOMPLETE OR STANDARD\n const textInputContent = (\n <input\n ref={ref}\n type={type}\n value={currentValue}\n onChange={handleInputChange}\n className={cn(inputVariants({ variant: isAutocomplete ? \"autocomplete\" : variant, className }))}\n onFocus={() => isAutocomplete && setFocused(true)}\n {...(htmlProps as any)}\n />\n );\n\n if (isAutocomplete) {\n return (\n <div ref={containerRef} className=\"relative w-full\">\n {textInputContent}\n <AnimatePresence>\n {focused && filteredSuggestions.length > 0 && (\n <motion.div\n initial={{ opacity: 0, y: 5 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: 5 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 22 }}\n className=\"absolute z-50 w-full mt-1.5 bg-card border border-border/80 shadow-lg rounded-xl overflow-hidden max-h-[200px] overflow-y-auto p-1 space-y-0.5\"\n >\n {filteredSuggestions.map((item, idx) => (\n <button\n key={item + idx}\n type=\"button\"\n onClick={() => {\n onSuggestionSelect?.(item)\n setFocused(false)\n }}\n className=\"w-full text-left px-3 py-2 text-sm text-foreground hover:bg-muted/50 rounded-lg transition-colors outline-none focus:bg-muted/50\"\n >\n {item}\n </button>\n ))}\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n }\n\n // Standard input rendering with optional animations\n const inputElement = (\n <motion.div\n className=\"relative w-full\"\n initial={animate ? { opacity: 0, y: 4 } : undefined}\n animate={animate ? { opacity: 1, y: 0 } : undefined}\n transition={{ duration: 0.25 }}\n >\n <input\n ref={ref}\n id={inputId}\n type={type}\n value={currentValue}\n onChange={handleInputChange}\n required={required}\n aria-invalid={!!error}\n aria-describedby={[descId, errId].filter(Boolean).join(\" \") || undefined}\n className={cn(inputVariants({ variant: isAutocomplete ? \"autocomplete\" : variant, className }), error && \"border-destructive focus:border-destructive focus:ring-destructive/20\")}\n onFocus={() => isAutocomplete && setFocused(true)}\n {...(htmlProps as any)}\n />\n {variant === \"gradient\" && (\n <div className=\"absolute inset-0 -z-10 rounded-xl bg-gradient-to-r from-violet-500 to-pink-500 opacity-0 blur transition-opacity peer-focus:opacity-20\" />\n )}\n </motion.div>\n );\n\n // If no label/description/error, render bare input (backward compatible)\n if (!label && !description && !error) {\n return inputElement;\n }\n\n // With label/description/error wrapper\n return (\n <div className=\"w-full space-y-1.5\">\n {label && (\n <label\n htmlFor={inputId}\n className=\"block text-sm font-medium text-foreground\"\n >\n {label}\n {required && <span className=\"text-destructive ml-1\" aria-hidden>*</span>}\n </label>\n )}\n {inputElement}\n {description && !error && (\n <p id={descId} className=\"text-xs text-muted-foreground\">{description}</p>\n )}\n {error && (\n <p id={errId} role=\"alert\" className=\"text-xs text-destructive flex items-center gap-1\">\n <AlertCircle className=\"h-3 w-3 shrink-0\" />\n {error}\n </p>\n )}\n </div>\n );\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n\n// ----------------------------------------------------\n// Merged input components for backward compatibility\n// ----------------------------------------------------\n\nexport const SearchInput = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground/60\" />\n <Input ref={ref} className={cn(\"pl-9\", className)} {...props} />\n </div>\n )\n);\nSearchInput.displayName = \"SearchInput\";\n\nexport const PasswordInput = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => {\n const [show, setShow] = React.useState(false);\n return (\n <div className=\"relative w-full\">\n <Input ref={ref} type={show ? \"text\" : \"password\"} className={cn(\"pr-10\", className)} {...props} />\n <button\n type=\"button\"\n onClick={() => setShow(!show)}\n className=\"absolute right-3 top-1/2 -translate-y-1/2 text-xs font-bold text-muted-foreground/60 hover:text-foreground select-none\"\n >\n {show ? \"HIDE\" : \"SHOW\"}\n </button>\n </div>\n );\n }\n);\nPasswordInput.displayName = \"PasswordInput\";\n\nexport const GlassInput = React.forwardRef<HTMLInputElement, InputProps>(\n (props, ref) => <Input ref={ref} variant=\"glass\" {...props} />\n);\nGlassInput.displayName = \"GlassInput\";\n\nexport const GradientInput = React.forwardRef<HTMLInputElement, InputProps>(\n (props, ref) => <Input ref={ref} variant=\"gradient\" {...props} />\n);\nGradientInput.displayName = \"GradientInput\";\n\nexport const UnderlineInput = React.forwardRef<HTMLInputElement, InputProps>(\n (props, ref) => <Input ref={ref} variant=\"underline\" {...props} />\n);\nUnderlineInput.displayName = \"UnderlineInput\";\n\nexport const PillInput = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => <Input ref={ref} className={cn(\"rounded-full px-5\", className)} {...props} />\n);\nPillInput.displayName = \"PillInput\";\n\nexport interface ErrorInputProps extends InputProps {\n errorMessage?: string;\n}\n\nexport const ErrorInput = React.forwardRef<HTMLInputElement, ErrorInputProps>(\n ({ className, errorMessage, ...props }, ref) => (\n <div className=\"flex flex-col gap-1 w-full\">\n <div className=\"relative flex items-center w-full\">\n <Input\n ref={ref}\n className={cn(\n \"border-red-500 focus:border-red-500 focus:ring-red-500/20 text-red-600 placeholder:text-red-400/50 pr-10\",\n className\n )}\n {...props}\n />\n <AlertCircle className=\"absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-red-500\" />\n </div>\n {errorMessage && <span className=\"text-xs text-red-500 px-1\">{errorMessage}</span>}\n </div>\n )\n);\nErrorInput.displayName = \"ErrorInput\";\n\nexport const SuccessInput = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => (\n <div className=\"relative flex items-center w-full\">\n <Input\n ref={ref}\n className={cn(\n \"border-emerald-500 focus:border-emerald-500 focus:ring-emerald-500/20 text-emerald-600 placeholder:text-emerald-400/50 pr-10\",\n className\n )}\n {...props}\n />\n <CheckCircle2 className=\"absolute right-3 top-1/2 -translate-y-1/2 h-4 w-4 text-emerald-500\" />\n </div>\n )\n);\nSuccessInput.displayName = \"SuccessInput\";\n\nexport const GhostInput = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => (\n <Input\n ref={ref}\n className={cn(\n \"border-transparent bg-transparent shadow-none hover:bg-muted/30 focus:bg-muted/50 focus:ring-0\",\n className\n )}\n {...props}\n />\n )\n);\nGhostInput.displayName = \"GhostInput\";\n\nexport const NeumorphicInput = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => (\n <Input\n ref={ref}\n className={cn(\n \"border-0 bg-secondary/30 shadow-[inset_2px_2px_5px_rgba(0,0,0,0.05),_1px_1px_3px_rgba(255,255,255,0.05)] focus:shadow-[inset_1px_1px_3px_rgba(0,0,0,0.08)]\",\n className\n )}\n {...props}\n />\n )\n);\nNeumorphicInput.displayName = \"NeumorphicInput\";\n\nexport interface IconInputProps extends InputProps {\n icon?: React.ReactNode;\n}\n\nexport const IconInputLeft = React.forwardRef<HTMLInputElement, IconInputProps>(\n ({ className, icon, ...props }, ref) => {\n const Icon = icon || <Search className=\"h-4 w-4\" />;\n return (\n <div className=\"relative w-full\">\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground/60\">\n {Icon}\n </div>\n <Input ref={ref} className={cn(\"pl-9\", className)} {...props} />\n </div>\n );\n }\n);\nIconInputLeft.displayName = \"IconInputLeft\";\n\nexport const IconInputRight = React.forwardRef<HTMLInputElement, IconInputProps>(\n ({ className, icon, ...props }, ref) => {\n const Icon = icon || <Mail className=\"h-4 w-4\" />;\n return (\n <div className=\"relative w-full\">\n <Input ref={ref} className={cn(\"pr-9\", className)} {...props} />\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground/60\">\n {Icon}\n </div>\n </div>\n );\n }\n);\nIconInputRight.displayName = \"IconInputRight\";\n\nexport const FloatingLabelInput = React.forwardRef<HTMLInputElement, InputProps & { label: string }>(\n ({ className, label, value = \"\", placeholder, ...props }, ref) => {\n const [focused, setFocused] = React.useState(false);\n const [hasVal, setHasVal] = React.useState(value !== \"\");\n\n React.useEffect(() => {\n setHasVal(value !== \"\");\n }, [value]);\n\n return (\n <div className=\"relative w-full pt-2\">\n <Input\n ref={ref}\n value={value}\n placeholder=\"\"\n onFocus={() => setFocused(true)}\n onBlur={(e) => {\n setFocused(false);\n setHasVal(e.target.value !== \"\");\n }}\n className={className}\n {...props}\n />\n <label\n className={cn(\n \"absolute left-3 transition-all duration-200 pointer-events-none select-none text-muted-foreground/60\",\n focused || hasVal\n ? \"-top-1 text-[10px] font-bold text-primary bg-background px-1\"\n : \"top-5 text-sm\"\n )}\n >\n {label}\n </label>\n </div>\n );\n }\n);\nFloatingLabelInput.displayName = \"FloatingLabelInput\";\n\nexport const MinimalDropInput = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, ...props }, ref) => (\n <Input\n ref={ref}\n className={cn(\n \"border-0 bg-muted/40 hover:bg-muted/60 focus:bg-background border-b-2 border-transparent focus:border-primary rounded-t-xl rounded-b-none\",\n className\n )}\n {...props}\n />\n )\n);\nMinimalDropInput.displayName = \"MinimalDropInput\";\n\n","'use client';\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"../utils/cn\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center gap-1 rounded-full border font-semibold transition-all focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 cursor-default\",\n {\n variants: {\n variant: {\n default: \"border-transparent bg-primary text-primary-foreground hover:bg-primary/80\",\n secondary: \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive: \"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80\",\n outline: \"text-foreground border-border hover:bg-accent\",\n gradient: \"border-transparent bg-gradient-to-r from-violet-600 to-pink-600 dark:from-violet-500 dark:to-pink-500 text-white shadow-sm\",\n neon: \"border-primary/50 bg-primary/10 text-primary shadow-[0_0_10px_rgba(var(--primary-rgb),0.3)]\",\n success: \"border-transparent bg-emerald-500/20 text-emerald-600 dark:text-emerald-400\",\n warning: \"border-transparent bg-amber-500/20 text-amber-600 dark:text-amber-400\",\n info: \"border-transparent bg-blue-500/20 text-blue-600 dark:text-blue-400\",\n },\n size: {\n default: \"px-2.5 py-0.5 text-xs\",\n sm: \"px-1.5 py-0.5 text-[10px]\",\n lg: \"px-3 py-1 text-sm\",\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n /**\n * Описание для pulse\n * @default undefined\n */\n pulse?: boolean;\n /**\n * Описание для dot\n * @default undefined\n */\n dot?: boolean;\n /**\n * Описание для text\n * @default undefined\n */\n text?: string;\n}\n\nfunction Badge({ className, variant, size, pulse = false, dot = false, children, text, ...props }: BadgeProps) {\n const showDot = dot || pulse;\n \n return (\n <div className={cn(badgeVariants({ variant, size }), className)} {...props}>\n {showDot && (\n <span className=\"relative flex h-2 w-2 mr-1\">\n {pulse && (\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full bg-current opacity-75\"></span>\n )}\n <span className=\"relative inline-flex rounded-full h-2 w-2 bg-current\"></span>\n </span>\n )}\n {children || text}\n </div>\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\nimport { motion } from \"framer-motion\"\r\n\r\nconst avatarVariants = cva(\r\n \"relative flex shrink-0 overflow-hidden rounded-full transition-all duration-300\",\r\n {\r\n variants: {\r\n size: {\r\n default: \"h-10 w-10\",\r\n sm: \"h-8 w-8\",\r\n lg: \"h-12 w-12\",\r\n xl: \"h-16 w-16\",\r\n },\r\n variant: {\r\n default: \"border-2 border-background\",\r\n gradient: \"p-[2px] bg-gradient-to-tr from-violet-500 to-pink-500\",\r\n glow: \"shadow-[0_0_15px_rgba(139,92,246,0.5)] border-2 border-violet-500\",\r\n glass: \"backdrop-blur-md bg-white/10 dark:bg-black/20 border border-white/20 dark:border-white/10\",\r\n }\r\n },\r\n defaultVariants: {\r\n size: \"default\",\r\n variant: \"default\",\r\n }\r\n }\r\n)\r\n\r\nexport interface AvatarProps\r\n extends React.HTMLAttributes<HTMLDivElement>,\r\n VariantProps<typeof avatarVariants> {\r\n /**\n * Описание для status\n * @default undefined\n */\n status?: \"online\" | \"offline\" | \"away\" | \"busy\";\r\n}\r\n\r\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\r\n ({ className, size, variant, status, children, ...props }, ref) => {\r\n const statusColors = {\r\n online: \"bg-emerald-500\",\r\n offline: \"bg-muted-foreground/50\",\r\n away: \"bg-amber-500\",\r\n busy: \"bg-red-500\",\r\n }\r\n\r\n return (\r\n <div className=\"relative inline-block group\">\r\n <div\r\n ref={ref}\r\n className={cn(avatarVariants({ size, variant, className }))}\r\n {...props}\r\n >\r\n {variant === \"gradient\" ? (\r\n <div className=\"flex h-full w-full items-center justify-center rounded-full bg-background p-[1px]\">\r\n {children}\r\n </div>\r\n ) : (\r\n children\r\n )}\r\n </div>\r\n {status && (\r\n <span className={cn(\r\n \"absolute bottom-0 right-0 block rounded-full border-2 border-background\",\r\n statusColors[status],\r\n size === \"sm\" ? \"h-2.5 w-2.5\" : size === \"xl\" ? \"h-4.5 w-4.5\" : \"h-3.5 w-3.5\"\r\n )} />\r\n )}\r\n </div>\r\n )\r\n }\r\n)\r\nAvatar.displayName = \"Avatar\"\r\n\r\nexport interface AvatarImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {}\r\n\r\nconst AvatarImage = React.forwardRef<HTMLImageElement, AvatarImageProps>(\r\n ({ className, ...props }, ref) => (\r\n <img\r\n ref={ref}\r\n className={cn(\"aspect-square h-full w-full object-cover rounded-full\", className)}\r\n {...props}\r\n />\r\n )\r\n)\r\nAvatarImage.displayName = \"AvatarImage\"\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n HTMLDivElement,\r\n React.HTMLAttributes<HTMLDivElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex h-full w-full items-center justify-center rounded-full bg-muted text-sm font-medium text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatarFallback.displayName = \"AvatarFallback\"\r\n\r\n// ----------------------------------------------------\r\n// Consolidated Avatar Exports\r\n// ----------------------------------------------------\r\n\r\nexport const GlowAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} variant=\"glow\" status={status} className={className}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const StatusAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={className}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const GlassAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} variant=\"glass\" status={status} className={className}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const SquareAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"rounded-xl [&>div]:rounded-xl [&_img]:rounded-xl [&_div]:rounded-xl\", className)}>\r\n {src ? <AvatarImage src={src} className=\"rounded-xl\" /> : <AvatarFallback className=\"rounded-xl\">{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const HexagonAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"clip-path-hexagon\", className)}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const SquircleAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"rounded-[35%] [&>div]:rounded-[35%] [&_img]:rounded-[35%] [&_div]:rounded-[35%]\", className)}>\r\n {src ? <AvatarImage src={src} className=\"rounded-[35%]\" /> : <AvatarFallback className=\"rounded-[35%]\">{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const GradientRingAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} variant=\"gradient\" status={status} className={className}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const InitialsAvatar = ({ fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={className}>\r\n <AvatarFallback>{fallback}</AvatarFallback>\r\n </Avatar>\r\n)\r\n\r\nexport const InitialsGradientAvatar = ({ fallback, size, status, className }: any) => (\r\n <Avatar size={size} variant=\"gradient\" status={status} className={className}>\r\n <AvatarFallback>{fallback}</AvatarFallback>\r\n </Avatar>\r\n)\r\n\r\nexport const OutlineAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"border-2 border-primary\", className)}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const HoverExpandAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"hover:scale-110 active:scale-95 transition-transform\", className)}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const PulseAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"ring-2 ring-primary ring-offset-2 animate-pulse\", className)}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const StackAvatar = ({\r\n avatars,\r\n urls,\r\n max = 4,\r\n className\r\n}: {\r\n avatars?: Array<{ src?: string; fallback: string }>;\r\n urls?: string[];\r\n max?: number;\r\n className?: string;\r\n}) => {\r\n const resolvedAvatars = avatars \r\n ? avatars \r\n : (urls || []).map(url => ({ src: url, fallback: \"U\" }));\r\n\r\n const visible = resolvedAvatars.slice(0, max)\r\n const remaining = resolvedAvatars.length - max\r\n return (\r\n <div className={cn(\"flex -space-x-3 items-center\", className)}>\r\n {visible.map((av, i) => (\r\n <Avatar key={i} size=\"sm\" className=\"border-2 border-background ring-1 ring-black/5 hover:-translate-y-1 transition-transform\">\r\n {av.src ? <AvatarImage src={av.src} /> : <AvatarFallback>{av.fallback}</AvatarFallback>}\r\n </Avatar>\r\n ))}\r\n {remaining > 0 && (\r\n <div className=\"flex h-8 w-8 items-center justify-center rounded-full border-2 border-background bg-muted text-[10px] font-bold text-muted-foreground ring-1 ring-black/5\">\r\n +{remaining}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\nexport const DottedAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"border-2 border-dashed border-primary p-[1px]\", className)}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const ShadowAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"shadow-2xl shadow-primary/40\", className)}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const PolymorphAvatar = ({ src, fallback, size, status, className }: any) => (\r\n <Avatar size={size} status={status} className={cn(\"rounded-none hover:rounded-[40%] transition-all duration-500\", className)}>\r\n {src ? <AvatarImage src={src} className=\"rounded-none hover:rounded-[40%] transition-all duration-500\" /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n)\r\n\r\nexport const TooltipAvatar = ({ src, fallback, size, status, tooltipText, className }: any) => (\r\n <div className=\"relative group/tooltip inline-block\">\r\n <Avatar size={size} status={status} className={className}>\r\n {src ? <AvatarImage src={src} /> : <AvatarFallback>{fallback}</AvatarFallback>}\r\n </Avatar>\r\n {tooltipText && (\r\n <div className=\"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2.5 py-1 bg-black/90 text-[10px] font-semibold text-white rounded-md whitespace-nowrap opacity-0 pointer-events-none group-hover/tooltip:opacity-100 transition-opacity z-50\">\r\n {tooltipText}\r\n </div>\r\n )}\r\n </div>\r\n)\r\n\r\nexport const AnimatedBorderAvatar = ({ src, fallback }: any) => (\r\n <div className=\"relative p-[2px] rounded-full overflow-hidden inline-block\">\r\n <motion.div animate={{ rotate: 360 }} transition={{ repeat: Infinity, duration: 3, ease: \"linear\" }} className=\"absolute inset-[-50%] bg-[conic-gradient(from_0deg,transparent_0_340deg,hsl(var(--primary))_360deg)]\" />\r\n <Avatar className=\"relative border-2 border-background\">\r\n {src && <AvatarImage src={src} />}\r\n <AvatarFallback>{fallback}</AvatarFallback>\r\n </Avatar>\r\n </div>\r\n)\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nconst Tabs = TabsPrimitive.Root\r\n\r\nconst tabsListVariants = cva(\r\n \"inline-flex h-11 items-center justify-center p-1 text-muted-foreground\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"rounded-xl bg-muted/50 backdrop-blur-sm border border-border/50\",\r\n pill: \"bg-transparent gap-2\",\r\n underline: \"bg-transparent border-b rounded-none w-full justify-start h-auto p-0\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface TabsListProps\r\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>,\r\n VariantProps<typeof tabsListVariants> {}\r\n\r\nconst TabsList = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.List>,\r\n TabsListProps\r\n>(({ className, variant, ...props }, ref) => (\r\n <TabsPrimitive.List\r\n ref={ref}\r\n className={cn(tabsListVariants({ variant, className }))}\r\n {...props}\r\n />\r\n))\r\nTabsList.displayName = TabsPrimitive.List.displayName\r\n\r\nconst tabsTriggerVariants = cva(\r\n \"inline-flex items-center justify-center whitespace-nowrap px-4 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 border border-transparent\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"rounded-lg data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-lg data-[state=active]:border-border/50\",\r\n pill: \"rounded-full border-border/50 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=active]:border-primary\",\r\n underline: \"rounded-none border-b-2 data-[state=active]:border-primary data-[state=active]:bg-transparent pb-3 pt-2\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface TabsTriggerProps\r\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>,\r\n VariantProps<typeof tabsTriggerVariants> {}\r\n\r\nconst TabsTrigger = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Trigger>,\r\n TabsTriggerProps\r\n>(({ className, variant, ...props }, ref) => (\r\n <TabsPrimitive.Trigger\r\n ref={ref}\r\n className={cn(tabsTriggerVariants({ variant, className }))}\r\n {...props}\r\n />\r\n))\r\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\r\n\r\nconst TabsContent = React.forwardRef<\r\n React.ElementRef<typeof TabsPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\r\n>(({ className, ...props }, ref) => (\r\n <TabsPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"mt-3 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nTabsContent.displayName = TabsPrimitive.Content.displayName\r\n\r\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\r\nimport { ChevronDown, Plus } from \"lucide-react\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nconst accordionVariants = cva(\"w-full\", {\r\n variants: {\r\n variant: {\r\n default: \"\",\r\n glass: \"backdrop-blur-md bg-white/5 border border-white/10 rounded-xl p-2\",\r\n outline: \"border border-border/50 rounded-xl p-2\",\r\n neon: \"bg-black rounded-xl\", // Moved border and shadow to items for dynamic glow\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n})\r\n\r\nexport type AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & VariantProps<typeof accordionVariants>;\r\n\r\nconst Accordion = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Root>,\r\n AccordionProps\r\n>(({ className, variant, ...props }, ref) => (\r\n <AccordionPrimitive.Root\r\n ref={ref}\r\n className={cn(accordionVariants({ variant, className }))}\r\n {...(props as any)}\r\n />\r\n))\r\nAccordion.displayName = \"Accordion\"\r\n\r\nconst accordionItemVariants = cva(\"border-b transition-all duration-300\", {\r\n variants: {\r\n variant: {\r\n default: \"border-border/50 data-[state=open]:bg-muted/30 rounded-lg px-2\",\r\n neon: \"border-neutral-800 data-[state=open]:border-cyan-400 data-[state=open]:shadow-[0_0_20px_rgba(6,182,212,0.5)] rounded-xl mb-2 overflow-hidden bg-neutral-950/50\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n})\r\n\r\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item> & VariantProps<typeof accordionItemVariants>;\r\n\r\nconst AccordionItem = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Item>,\r\n AccordionItemProps\r\n>(({ className, variant, ...props }, ref) => (\r\n <AccordionPrimitive.Item\r\n ref={ref}\r\n className={cn(accordionItemVariants({ variant, className }))}\r\n {...props}\r\n />\r\n))\r\nAccordionItem.displayName = \"AccordionItem\"\r\n\r\nexport interface AccordionTriggerProps extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {\r\n iconType?: \"chevron\" | \"plus\";\r\n iconClassName?: string;\r\n variant?: \"default\" | \"neon\";\r\n}\r\n\r\nconst AccordionTrigger = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\r\n AccordionTriggerProps\r\n>(({ className, children, iconType = \"chevron\", iconClassName, variant = \"default\", ...props }, ref) => (\r\n <AccordionPrimitive.Header className=\"flex\">\r\n <AccordionPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:text-primary [&[data-state=open]>svg.chevron]:rotate-180 [&[data-state=open]>svg.plus]:rotate-45\",\r\n variant === \"neon\" && \"text-white px-4 data-[state=open]:text-cyan-400\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"flex items-center gap-2\">{children}</span>\r\n {iconType === \"chevron\" ? (\r\n <ChevronDown className={cn(\"chevron h-4 w-4 shrink-0 transition-transform duration-300 ease-in-out text-muted-foreground\", iconClassName)} />\r\n ) : (\r\n <Plus className={cn(\"plus h-4 w-4 shrink-0 transition-transform duration-300 ease-in-out text-muted-foreground\", iconClassName)} />\r\n )}\r\n </AccordionPrimitive.Trigger>\r\n </AccordionPrimitive.Header>\r\n))\r\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\r\n\r\nconst AccordionContent = React.forwardRef<\r\n React.ElementRef<typeof AccordionPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\r\n>(({ className, children, ...props }, ref) => (\r\n <AccordionPrimitive.Content\r\n ref={ref}\r\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\r\n {...props}\r\n >\r\n <div className={cn(\"pb-4 pt-1 px-1 text-muted-foreground leading-relaxed\", className)}>\r\n {children}\r\n </div>\r\n </AccordionPrimitive.Content>\r\n))\r\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\r\n\r\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\r\nimport { X, AlertTriangle, CheckCircle, Star } from \"lucide-react\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nconst Dialog = DialogPrimitive.Root\r\n\r\nconst DialogTrigger = DialogPrimitive.Trigger\r\n\r\nconst DialogPortal = DialogPrimitive.Portal\r\n\r\nconst DialogClose = DialogPrimitive.Close\r\n\r\nconst DialogOverlay = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Overlay>,\r\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\r\n>(({ className, ...props }, ref) => (\r\n <DialogPrimitive.Overlay\r\n ref={ref}\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\r\n\r\nconst dialogContentVariants = cva(\r\n \"fixed left-[50%] top-[50%] z-50 grid w-full translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background/95 backdrop-blur-md p-6 shadow-2xl duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:scale-95 data-[state=open]:scale-100 data-[state=closed]:translate-y-[-48%] data-[state=open]:translate-y-[-50%] rounded-2xl\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"border-border/50\",\r\n glass: \"bg-white/10 backdrop-blur-xl border-white/20 shadow-2xl\",\r\n destructive: \"border-destructive/20\",\r\n success: \"border-green-500/20\",\r\n fullscreen: \"max-w-full h-screen rounded-none\",\r\n drawer: \"sm:max-w-full sm:h-[50vh] sm:rounded-b-none sm:rounded-t-[20px] fixed bottom-0 top-auto translate-y-0 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\r\n },\r\n size: {\r\n sm: \"max-w-sm\",\r\n md: \"max-w-md\",\r\n lg: \"max-w-lg\",\r\n xl: \"max-w-xl\",\r\n \"2xl\": \"max-w-2xl\",\r\n full: \"max-w-[95vw] md:max-w-[90vw]\",\r\n },\r\n scrollable: {\r\n true: \"max-h-[80vh] overflow-y-auto\",\r\n false: \"\",\r\n }\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"lg\",\r\n scrollable: false,\r\n },\r\n }\r\n)\r\n\r\nexport interface DialogContentProps\r\n extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>,\r\n VariantProps<typeof dialogContentVariants> {}\r\n\r\nconst DialogContent = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Content>,\r\n DialogContentProps\r\n>(({ className, variant, size, scrollable, children, ...props }, ref) => (\r\n <DialogPortal>\r\n <DialogOverlay />\r\n <DialogPrimitive.Content\r\n ref={ref}\r\n className={cn(dialogContentVariants({ variant, size, scrollable, className }))}\r\n {...props}\r\n >\r\n {children}\r\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-full p-1 opacity-70 ring-offset-background transition-opacity hover:opacity-100 hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\">\r\n <X className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogPrimitive.Close>\r\n </DialogPrimitive.Content>\r\n </DialogPortal>\r\n))\r\nDialogContent.displayName = DialogPrimitive.Content.displayName\r\n\r\nconst DialogHeader = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nDialogHeader.displayName = \"DialogHeader\"\r\n\r\nconst DialogFooter = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div\r\n className={cn(\r\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n)\r\nDialogFooter.displayName = \"DialogFooter\"\r\n\r\nconst DialogTitle = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Title>,\r\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\r\n>(({ className, ...props }, ref) => (\r\n <DialogPrimitive.Title\r\n ref={ref}\r\n className={cn(\r\n \"text-xl font-semibold leading-none tracking-tight bg-gradient-to-br from-foreground to-foreground/70 bg-clip-text text-transparent\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDialogTitle.displayName = DialogPrimitive.Title.displayName\r\n\r\nconst DialogDescription = React.forwardRef<\r\n React.ElementRef<typeof DialogPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\r\n>(({ className, ...props }, ref) => (\r\n <DialogPrimitive.Description\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground leading-relaxed\", className)}\r\n {...props}\r\n />\r\n))\r\nDialogDescription.displayName = DialogPrimitive.Description.displayName\r\n\r\nexport {\r\n Dialog,\r\n DialogPortal,\r\n DialogOverlay,\r\n DialogClose,\r\n DialogTrigger,\r\n DialogContent,\r\n DialogHeader,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nconst TooltipProvider = TooltipPrimitive.Provider\r\n\r\nconst TooltipRoot = TooltipPrimitive.Root\r\n\r\nconst TooltipTrigger = TooltipPrimitive.Trigger\r\n\r\nconst TooltipContent = React.forwardRef<\r\n React.ElementRef<typeof TooltipPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"z-50 overflow-hidden rounded-lg border border-border/50 bg-popover/90 backdrop-blur-md px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-xl animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </TooltipPrimitive.Portal>\r\n))\r\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\r\n\r\nexport interface TooltipProps {\r\n /**\r\n * The content to display in the tooltip\r\n */\r\n content: React.ReactNode;\r\n /**\r\n * The element that triggers the tooltip\r\n */\r\n children: React.ReactNode;\r\n /**\r\n * The side of the trigger to display the tooltip on\r\n * @default \"top\"\r\n */\r\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n /**\r\n * The delay in milliseconds before the tooltip opens\r\n * @default 700\r\n */\r\n delay?: number;\r\n /**\r\n * The visual theme style of the tooltip content\r\n * @default \"default\"\r\n */\r\n variant?: \"default\" | \"dark\" | \"light\";\r\n}\r\n\r\nexport function Tooltip({\r\n content,\r\n children,\r\n side = \"top\",\r\n delay = 700,\r\n variant = \"default\",\r\n}: TooltipProps) {\r\n const variantClasses = {\r\n default: \"\",\r\n dark: \"bg-zinc-950/95 text-zinc-50 border-zinc-800\",\r\n light: \"bg-white/95 text-zinc-950 border-zinc-200 shadow-md\",\r\n };\r\n\r\n return (\r\n <TooltipProvider delayDuration={delay}>\r\n <TooltipRoot>\r\n <TooltipTrigger asChild>{children}</TooltipTrigger>\r\n <TooltipContent side={side} className={variantClasses[variant]}>\r\n {content}\r\n </TooltipContent>\r\n </TooltipRoot>\r\n </TooltipProvider>\r\n )\r\n}\r\n\r\nexport { TooltipRoot, TooltipTrigger, TooltipContent, TooltipProvider }\r\n\r\nexport interface SimpleTooltipProps {\r\n content: React.ReactNode;\r\n position?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n children: React.ReactNode;\r\n delay?: number;\r\n variant?: \"default\" | \"dark\" | \"light\";\r\n}\r\n\r\nexport function SimpleTooltip({\r\n content,\r\n position = \"top\",\r\n children,\r\n delay = 200,\r\n variant = \"default\",\r\n}: SimpleTooltipProps) {\r\n return (\r\n <Tooltip content={content} side={position} delay={delay} variant={variant}>\r\n {children}\r\n </Tooltip>\r\n );\r\n}\r\n\r\nexport interface RichTooltipProps {\r\n content: React.ReactNode;\r\n children: React.ReactNode;\r\n delay?: number;\r\n}\r\n\r\nexport function RichTooltip({\r\n content,\r\n children,\r\n delay = 200,\r\n}: RichTooltipProps) {\r\n return (\r\n <Tooltip content={content} side=\"top\" delay={delay}>\r\n {children}\r\n </Tooltip>\r\n );\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\r\nimport { Check } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { motion } from \"framer-motion\"\r\n\r\nconst Checkbox = React.forwardRef<\r\n React.ElementRef<typeof CheckboxPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <CheckboxPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"peer h-5 w-5 shrink-0 rounded-md border border-muted-foreground/30 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200 data-[state=checked]:bg-gradient-to-br data-[state=checked]:from-primary data-[state=checked]:to-primary/80 data-[state=checked]:text-primary-foreground data-[state=checked]:border-transparent data-[state=checked]:shadow-lg data-[state=checked]:shadow-primary/20\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <CheckboxPrimitive.Indicator\r\n className={cn(\"flex items-center justify-center text-current\")}\r\n >\r\n <motion.div\r\n initial={{ scale: 0.5, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n >\r\n <Check className=\"h-3.5 w-3.5 stroke-[3]\" />\r\n </motion.div>\r\n </CheckboxPrimitive.Indicator>\r\n </CheckboxPrimitive.Root>\r\n))\r\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\r\n\r\nexport { Checkbox }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nexport interface SwitchProps\r\n extends React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {\r\n /**\r\n * The visual variant of the switch\r\n * @default \"default\"\r\n */\r\n variant?: \"default\" | \"neon\"\r\n}\r\n\r\nconst Switch = React.forwardRef<\r\n React.ElementRef<typeof SwitchPrimitive.Root>,\r\n SwitchProps\r\n>(({ className, variant = \"default\", ...props }, ref) => (\r\n <SwitchPrimitive.Root\r\n className={cn(\r\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border border-border/50 transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-muted shadow-sm\",\r\n variant === \"neon\" && \"data-[state=checked]:shadow-[0_0_var(--glow-radius)_rgba(var(--glow-color),var(--glow-strength))] data-[state=checked]:border-primary/50\",\r\n className\r\n )}\r\n {...props}\r\n ref={ref}\r\n >\r\n <SwitchPrimitive.Thumb\r\n className={cn(\r\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-sm ring-0 transition-all duration-300 ease-in-out data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0 data-[state=checked]:scale-95 border border-border/20\"\r\n )}\r\n />\r\n </SwitchPrimitive.Root>\r\n))\r\nSwitch.displayName = SwitchPrimitive.Root.displayName\r\n\r\nexport { Switch }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\r\nimport { Check, ChevronDown } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { motion } from \"framer-motion\"\r\n\r\nconst Select = SelectPrimitive.Root\r\n\r\nconst SelectGroup = SelectPrimitive.Group\r\n\r\nconst SelectValue = SelectPrimitive.Value\r\n\r\nconst SelectTrigger = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Trigger>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\r\n>(({ className, children, ...props }, ref) => (\r\n <SelectPrimitive.Trigger\r\n ref={ref}\r\n className={cn(\r\n \"flex h-10 w-full items-center justify-between rounded-lg border border-input bg-background/50 px-4 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-primary/20 focus:border-primary disabled:cursor-not-allowed disabled:opacity-50 transition-all duration-200\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <SelectPrimitive.Icon asChild>\r\n <ChevronDown className=\"h-4 w-4 opacity-50 transition-transform duration-200\" />\r\n </SelectPrimitive.Icon>\r\n </SelectPrimitive.Trigger>\r\n))\r\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\r\n\r\nconst SelectContent = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\r\n>(({ className, children, position = \"popper\", ...props }, ref) => (\r\n <SelectPrimitive.Portal>\r\n <SelectPrimitive.Content\r\n ref={ref}\r\n className={cn(\r\n \"relative z-50 min-w-[8rem] overflow-hidden rounded-xl border border-border/50 bg-popover/90 backdrop-blur-md text-popover-foreground shadow-2xl data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:scale-95 data-[state=open]:scale-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n position === \"popper\" &&\r\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\r\n className\r\n )}\r\n position={position}\r\n {...props}\r\n >\r\n <SelectPrimitive.Viewport\r\n className={cn(\r\n \"p-1\",\r\n position === \"popper\" &&\r\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\r\n )}\r\n >\r\n {children}\r\n </SelectPrimitive.Viewport>\r\n </SelectPrimitive.Content>\r\n </SelectPrimitive.Portal>\r\n))\r\nSelectContent.displayName = SelectPrimitive.Content.displayName\r\n\r\nconst SelectLabel = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\r\n>(({ className, ...props }, ref) => (\r\n <SelectPrimitive.Label\r\n ref={ref}\r\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nSelectLabel.displayName = SelectPrimitive.Label.displayName\r\n\r\nconst SelectItem = React.forwardRef<\r\n React.ElementRef<typeof SelectPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\r\n>(({ className, children, ...props }, ref) => (\r\n <SelectPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex w-full cursor-default select-none items-center rounded-md py-2 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 transition-colors\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <SelectPrimitive.ItemIndicator>\r\n <motion.div\r\n initial={{ scale: 0.5, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\r\n >\r\n <Check className=\"h-4 w-4 stroke-[3] text-primary\" />\r\n </motion.div>\r\n </SelectPrimitive.ItemIndicator>\r\n </span>\r\n\r\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\r\n </SelectPrimitive.Item>\r\n))\r\nSelectItem.displayName = SelectPrimitive.Item.displayName\r\n\r\nexport {\r\n Select,\r\n SelectGroup,\r\n SelectValue,\r\n SelectTrigger,\r\n SelectContent,\r\n SelectLabel,\r\n SelectItem,\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { AlertCircle, Info, CheckCircle2, XCircle, Cookie, BellRing, WifiOff, AlertTriangle, X } from \"lucide-react\"\r\n\r\nconst alertVariants = cva(\r\n \"relative w-full rounded-2xl border p-4 [&>svg~*]:pl-7 [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 transition-all duration-300 shadow-sm\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-background/50 border-border text-foreground\",\r\n destructive: \"border-red-500/20 bg-red-500/10 text-red-600 dark:text-red-400 [&>svg]:text-red-600 dark:[&>svg]:text-red-400\",\r\n success: \"border-emerald-500/20 bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 [&>svg]:text-emerald-600 dark:[&>svg]:text-emerald-400\",\r\n warning: \"border-amber-500/20 bg-amber-500/10 text-amber-600 dark:text-amber-400 [&>svg]:text-amber-600 dark:[&>svg]:text-amber-400\",\r\n info: \"border-blue-500/20 bg-blue-500/10 text-blue-600 dark:text-blue-400 [&>svg]:text-blue-600 dark:[&>svg]:text-blue-400\",\r\n glass: \"backdrop-blur-md bg-white/5 dark:bg-black/20 border-white/10 dark:border-white/5 text-foreground\",\r\n floating: \"fixed bottom-5 right-5 z-50 max-w-sm bg-card/95 backdrop-blur-md border border-border/80 text-foreground shadow-[0_10px_30px_rgba(0,0,0,0.25)] animate-slide-up\",\r\n minimal: \"border-0 bg-muted/40 p-3 text-sm rounded-xl text-foreground hover:bg-muted/60 shadow-none [&>svg]:top-3.5\",\r\n neon: \"border-purple-500/50 bg-purple-500/10 text-purple-200 shadow-[0_0_15px_rgba(168,85,247,0.3)] [&>svg]:text-purple-400\",\r\n cyberpunk: \"border-l-4 border-yellow-400 bg-black text-yellow-400 shadow-[4px_4px_0_0_rgba(250,204,21,1)] rounded-none font-mono uppercase [&>svg]:text-yellow-400\",\r\n gradient: \"bg-gradient-to-r from-blue-500/10 to-indigo-500/10 border-blue-500/20 text-foreground [&>svg]:text-blue-500\",\r\n banner: \"w-full bg-indigo-600 text-white border-0 shadow-md rounded-none sm:rounded-xl [&>svg]:text-white\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n },\r\n }\r\n)\r\n\r\nexport interface AlertProps\r\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\r\n VariantProps<typeof alertVariants> {\r\n /**\n * Описание для animate\n * @default undefined\n */\n animate?: boolean;\r\n /**\n * Описание для title\n * @default undefined\n */\n title?: React.ReactNode;\r\n /**\n * Описание для description\n * @default undefined\n */\n description?: React.ReactNode;\r\n /**\n * Описание для icon\n * @default undefined\n */\n icon?: React.ReactNode;\r\n /**\n * Описание для dismissible\n * @default undefined\n */\n dismissible?: boolean;\r\n /**\n * Описание для onDismiss\n * @default undefined\n */\n onDismiss?: () => void;\r\n /**\n * Описание для actionText\n * @default undefined\n */\n actionText?: string;\r\n /**\n * Описание для onAction\n * @default undefined\n */\n onAction?: () => void;\r\n}\r\n\r\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\r\n (\r\n {\r\n className,\r\n variant,\r\n animate = true,\r\n title,\r\n description,\r\n icon,\r\n dismissible = false,\r\n onDismiss,\r\n actionText,\r\n onAction,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [isOpen, setIsOpen] = React.useState(true);\r\n\r\n if (!isOpen) return null;\r\n\r\n const isMinimal = variant === \"minimal\";\r\n const isBanner = variant === \"banner\";\r\n\r\n const defaultIcon = icon || (\r\n variant === \"destructive\" ? <XCircle className=\"h-4 w-4\" /> :\r\n variant === \"success\" ? <CheckCircle2 className=\"h-4 w-4\" /> :\r\n variant === \"warning\" ? <AlertTriangle className=\"h-4 w-4\" /> :\r\n variant === \"info\" ? <Info className=\"h-4 w-4\" /> :\r\n variant === \"default\" ? <AlertCircle className=\"h-4 w-4\" /> :\r\n null\r\n );\r\n\r\n const content = (\r\n <>\r\n {defaultIcon && <div className={cn(\"absolute left-4\", isMinimal ? \"top-3\" : \"top-4\")}>{defaultIcon}</div>}\r\n <div className={cn(defaultIcon ? \"pl-7\" : \"\", \"pr-8\")}>\r\n {title && <AlertTitle>{title}</AlertTitle>}\r\n {description && <AlertDescription>{description}</AlertDescription>}\r\n {!title && !description && children}\r\n </div>\r\n {isBanner && actionText && (\r\n <button\r\n onClick={onAction}\r\n className=\"absolute right-12 top-1/2 -translate-y-1/2 text-xs font-bold bg-white text-indigo-600 px-3 py-1.5 rounded-md hover:bg-indigo-50 transition-colors\"\r\n >\r\n {actionText}\r\n </button>\r\n )}\r\n {dismissible && (\r\n <button\r\n onClick={() => {\r\n setIsOpen(false);\r\n onDismiss?.();\r\n }}\r\n className=\"absolute right-4 top-4 opacity-50 hover:opacity-100 transition-opacity p-0.5 rounded-md hover:bg-muted\"\r\n aria-label=\"Dismiss\"\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </button>\r\n )}\r\n </>\r\n );\r\n\r\n const alertClass = cn(alertVariants({ variant }), className);\r\n\r\n if (animate) {\r\n return (\r\n <motion.div\r\n ref={ref}\r\n role=\"alert\"\r\n initial={{ opacity: 0, y: variant === \"floating\" ? 30 : 15, scale: variant === \"floating\" ? 0.95 : 1 }}\r\n animate={{ opacity: 1, y: 0, scale: 1 }}\r\n exit={{ opacity: 0, y: variant === \"floating\" ? 20 : 10, scale: 0.95 }}\r\n transition={{ type: \"spring\", stiffness: 350, damping: 24 }}\r\n className={alertClass}\r\n {...(props as any)}\r\n >\r\n {content}\r\n </motion.div>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"alert\"\r\n className={alertClass}\r\n {...(props as React.HTMLAttributes<HTMLDivElement>)}\r\n >\r\n {content}\r\n </div>\r\n );\r\n }\r\n)\r\nAlert.displayName = \"Alert\"\r\n\r\nconst AlertTitle = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLHeadingElement>\r\n>(({ className, ...props }, ref) => (\r\n <h5\r\n ref={ref}\r\n className={cn(\"mb-1 font-semibold leading-none tracking-tight text-base text-foreground\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertTitle.displayName = \"AlertTitle\"\r\n\r\nconst AlertDescription = React.forwardRef<\r\n HTMLParagraphElement,\r\n React.HTMLAttributes<HTMLParagraphElement>\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n className={cn(\"text-sm text-muted-foreground leading-relaxed mt-1 opacity-90 [&_p]:leading-relaxed\", className)}\r\n {...props}\r\n />\r\n))\r\nAlertDescription.displayName = \"AlertDescription\"\r\n\r\n// ----------------------------------------------------\r\n// Merged subcomponents and wrappers\r\n// ----------------------------------------------------\r\n\r\n// 1. ToastAlertWrapper\r\nexport const ToastAlertWrapper = ({ children, className, title, description, time }: any) => (\r\n <div className={cn(\"max-w-sm w-full bg-background border border-border/80 shadow-xl rounded-2xl p-4 flex gap-4 items-start relative\", className)}>\r\n <CheckCircle2 className=\"h-5 w-5 text-green-500 shrink-0 mt-0.5\" />\r\n <div className=\"flex-1\">\r\n {title && <h4 className=\"font-semibold text-sm\">{title}</h4>}\r\n {description && <p className=\"text-sm text-muted-foreground mt-1\">{description}</p>}\r\n {children}\r\n </div>\r\n {time && <span className=\"text-xs text-muted-foreground/60\">{time}</span>}\r\n </div>\r\n)\r\n\r\n// 2. CookieAlert\r\nexport const CookieAlert = ({ onAccept, onDecline }: { onAccept?: () => void; onDecline?: () => void }) => {\r\n const [visible, setVisible] = React.useState(true)\r\n if (!visible) return null\r\n return (\r\n <div className=\"max-w-md bg-card border rounded-2xl p-6 shadow-2xl space-y-4\">\r\n <div className=\"flex items-center gap-3\">\r\n <Cookie className=\"h-6 w-6 text-orange-500 animate-bounce\" />\r\n <h4 className=\"font-bold text-lg\">Cookie Preferences</h4>\r\n </div>\r\n <p className=\"text-sm text-muted-foreground\">\r\n We use cookies to improve your experience. By continuing to visit this site you agree to our use of cookies.\r\n </p>\r\n <div className=\"flex gap-3 pt-2\">\r\n <button \r\n onClick={() => { setVisible(false); onAccept?.(); }}\r\n className=\"flex-1 px-4 py-2 bg-primary text-primary-foreground hover:bg-primary/95 transition-colors rounded-xl text-sm font-semibold shadow-md shadow-primary/10\"\r\n >\r\n Accept All\r\n </button>\r\n <button \r\n onClick={() => { setVisible(false); onDecline?.(); }}\r\n className=\"flex-1 px-4 py-2 border rounded-xl text-sm font-semibold hover:bg-muted transition-colors\"\r\n >\r\n Decline\r\n </button>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// 3. OfflineBanner\r\nexport const OfflineBanner = () => (\r\n <div className=\"w-full bg-red-600 text-white p-3.5 flex justify-center items-center gap-2 text-sm font-semibold shadow-md sm:rounded-xl\">\r\n <WifiOff className=\"w-4 h-4 animate-pulse\" /> You are currently offline. Some features may be unavailable.\r\n </div>\r\n)\r\n\r\n// 4. RateLimitAlert\r\nexport const RateLimitAlert = () => (\r\n <div className=\"border border-orange-500/30 bg-orange-500/10 p-5 rounded-2xl flex gap-3 items-start max-w-md shadow-sm\">\r\n <AlertTriangle className=\"w-5 h-5 text-orange-500 shrink-0 mt-0.5 animate-pulse\" />\r\n <div className=\"flex-1\">\r\n <h4 className=\"font-bold text-orange-600 dark:text-orange-400\">Rate Limit Exceeded</h4>\r\n <p className=\"text-sm text-orange-600/80 dark:text-orange-400/80 mt-1 mb-4\">\r\n You have made too many requests. Please wait 45 seconds before trying again.\r\n </p>\r\n <div className=\"w-full h-1.5 bg-orange-500/20 rounded-full overflow-hidden\">\r\n <motion.div animate={{ width: [\"100%\", \"0%\"] }} transition={{ duration: 45, ease: \"linear\" }} className=\"h-full bg-orange-500\" />\r\n </div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// Re-export original/merged components\r\nexport { Alert, AlertTitle, AlertDescription }\r\n/**\r\n * @deprecated Use the unified `<Alert variant=\"cyberpunk\">` instead.\r\n */\r\nexport const CyberAlert = ({ title, description, variant = \"default\", ...props }: any) => (\r\n <Alert variant=\"cyberpunk\" title={title} description={description} {...props} />\r\n)\r\n\r\n/**\r\n * @deprecated Use `<Alert variant=\"success\">` or `<Alert variant=\"info\">` instead.\r\n */\r\nexport const SoftAlert = ({ title, description, variant = \"default\", ...props }: any) => (\r\n <Alert variant={variant === \"success\" ? \"success\" : \"info\"} title={title} description={description} {...props} />\r\n)\r\n\r\n/**\r\n * @deprecated Use `<Alert variant=\"minimal\">` instead.\r\n */\r\nexport const MinimalAlert = ({ title, description, variant = \"default\", ...props }: any) => (\r\n <Alert variant=\"minimal\" title={title} description={description} {...props} />\r\n)\r\n\r\n/**\r\n * @deprecated Use `<Alert className=\"border-l-4 ...\">` instead.\r\n */\r\nexport const LeftBorderAlert = ({ title, description, variant = \"default\", ...props }: any) => (\r\n <Alert variant={variant === \"warning\" ? \"warning\" : \"default\"} className=\"border-l-4 border-l-primary\" title={title} description={description} {...props} />\r\n)\r\n\r\n/**\r\n * @deprecated Use custom styled layouts or standard elements instead.\r\n */\r\nexport const IconTopAlert = ({ title, description, variant = \"default\", ...props }: any) => (\r\n <div className=\"flex flex-col items-center text-center p-6 bg-card border rounded-2xl\" {...props}>\r\n <div className=\"h-12 w-12 rounded-full bg-destructive/10 text-destructive flex items-center justify-center mb-4\">\r\n <AlertCircle className=\"h-6 w-6\" />\r\n </div>\r\n <h4 className=\"font-bold text-lg mb-2\">{title}</h4>\r\n <p className=\"text-sm text-muted-foreground\">{description}</p>\r\n </div>\r\n)\r\n\r\n/**\r\n * @deprecated Use standard tailwind background colors on unified `<Alert>` instead.\r\n */\r\nexport const SolidAlert = ({ title, description, variant = \"default\", ...props }: any) => {\r\n const bgClasses: Record<string, string> = {\r\n error: \"bg-red-600 text-white border-0\",\r\n success: \"bg-emerald-600 text-white border-0\",\r\n warning: \"bg-amber-500 text-black border-0\",\r\n default: \"bg-primary text-primary-foreground border-0\",\r\n }\r\n const bgClass = bgClasses[variant] || bgClasses.default\r\n return (\r\n <div className={cn(\"p-4 rounded-xl shadow-lg flex gap-3 items-start\", bgClass)} {...props}>\r\n <Info className=\"h-5 w-5 shrink-0 mt-0.5\" />\r\n <div>\r\n <h4 className=\"font-bold\">{title}</h4>\r\n <p className=\"text-sm opacity-90 mt-1\">{description}</p>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n/**\r\n * @deprecated Use `<Alert variant=\"banner\">` instead.\r\n */\r\nexport const BannerAlert = ({ message, variant = \"default\", ...props }: any) => (\r\n <Alert variant=\"banner\" title={message} {...props} />\r\n)\r\n\r\n/**\r\n * @deprecated Use `<Alert variant=\"neon\">` instead.\r\n */\r\nexport const NeonAlert = ({ title, description, variant = \"default\", ...props }: any) => (\r\n <Alert variant=\"neon\" title={title} description={description} {...props} />\r\n)\r\n\r\n/**\r\n * @deprecated Use `<Alert variant=\"glass\">` instead.\r\n */\r\nexport const GlassAlert = ({ title, description, variant = \"default\", ...props }: any) => (\r\n <Alert variant=\"glass\" title={title} description={description} {...props} />\r\n)\r\n\r\n/**\r\n * @deprecated Use `<Alert dismissible={true}>` instead.\r\n */\r\nexport const DismissibleAlert = ({ variant = \"default\", title, description, ...props }: any) => (\r\n <Alert variant={variant} title={title || \"Attention\"} description={description || \"Action required\"} dismissible={true} {...props} />\r\n)\r\n\r\n","\"use client\"\r\n\r\nimport { useTheme } from \"next-themes\"\r\nimport { Toaster as SonnerToaster } from \"sonner\"\r\n\r\ntype ToasterProps = React.ComponentProps<typeof SonnerToaster>\r\n\r\nexport function Toaster({ ...props }: ToasterProps) {\r\n const { theme = \"system\" } = useTheme()\r\n\r\n return (\r\n <SonnerToaster\r\n theme={theme as ToasterProps[\"theme\"]}\r\n className=\"toaster group\"\r\n toastOptions={{\r\n classNames: {\r\n toast:\r\n \"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg\",\r\n description: \"group-[.toast]:text-muted-foreground\",\r\n actionButton:\r\n \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\r\n cancelButton:\r\n \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\r\n },\r\n }}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { toast } from \"sonner\"\r\n","import * as React from \"react\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * The width of the skeleton\r\n */\r\n width?: string | number;\r\n /**\r\n * The height of the skeleton\r\n */\r\n height?: string | number;\r\n /**\r\n * The variant of the skeleton\r\n * @default \"rect\"\r\n */\r\n variant?: \"line\" | \"circle\" | \"rect\";\r\n /**\r\n * The number of skeletons to render\r\n * @default 1\r\n */\r\n count?: number;\r\n /**\r\n * Whether the skeleton is animated\r\n * @default true\r\n */\r\n animated?: boolean;\r\n}\r\n\r\nfunction Skeleton({\r\n className,\r\n width,\r\n height,\r\n variant = \"rect\",\r\n count = 1,\r\n animated = true,\r\n style,\r\n ...props\r\n}: SkeletonProps) {\r\n const variantClasses = {\r\n rect: \"rounded-md\",\r\n circle: \"rounded-full\",\r\n line: \"rounded-sm h-4\",\r\n };\r\n\r\n const skeletons = Array.from({ length: count }).map((_, index) => (\r\n <div\r\n key={index}\r\n className={cn(\r\n \"relative overflow-hidden bg-muted/60 border border-border/30\",\r\n variantClasses[variant],\r\n className\r\n )}\r\n style={{\r\n width: typeof width === 'number' ? `${width}px` : width,\r\n height: typeof height === 'number' ? `${height}px` : height,\r\n ...style,\r\n }}\r\n {...props}\r\n >\r\n {animated && (\r\n <span\r\n className=\"absolute inset-0 -translate-x-full bg-gradient-to-r from-transparent via-foreground/5 to-transparent animate-[shimmer_2s_infinite]\"\r\n style={{\r\n animation: \"shimmer 2s infinite\",\r\n }}\r\n />\r\n )}\r\n </div>\r\n ));\r\n\r\n if (count > 1) {\r\n return <div className=\"space-y-2\">{skeletons}</div>;\r\n }\r\n\r\n return skeletons[0];\r\n}\r\n\r\nexport { Skeleton }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nexport interface ProgressProps\r\n extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {\r\n /**\r\n * The current value of the progress bar\r\n * @default 0\r\n */\r\n value?: number;\r\n /**\r\n * The maximum value of the progress bar\r\n * @default 100\r\n */\r\n max?: number;\r\n /**\r\n * The variant of the progress bar\r\n * @default \"default\"\r\n */\r\n variant?: \"default\" | \"success\" | \"warning\" | \"error\";\r\n /**\r\n * Whether to show the percentage label\r\n * @default false\r\n */\r\n showLabel?: boolean;\r\n /**\r\n * Custom label text shown next to the percentage\r\n * @default \"Progress\"\r\n */\r\n progressLabel?: string;\r\n /**\r\n * The size of the progress bar\r\n * @default \"default\"\r\n */\r\n size?: \"default\" | \"sm\" | \"lg\";\r\n /**\r\n * Whether the progress bar fill animates smoothly\r\n * @default true\r\n */\r\n animated?: boolean;\r\n /**\r\n * Whether the progress bar is in an indeterminate loading state\r\n * @default false\r\n */\r\n isIndeterminate?: boolean;\r\n}\r\n\r\nconst Progress = React.forwardRef<\r\n React.ElementRef<typeof ProgressPrimitive.Root>,\r\n ProgressProps\r\n>(\r\n (\r\n {\r\n className,\r\n value = 0,\r\n max = 100,\r\n variant = \"default\",\r\n showLabel = false,\r\n progressLabel = \"Progress\",\r\n size = \"default\",\r\n animated = true,\r\n isIndeterminate = false,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\r\n\r\n const variantClasses: Record<\"default\" | \"success\" | \"warning\" | \"error\", string> = {\r\n default: \"bg-gradient-to-r from-primary to-primary/80\",\r\n success: \"bg-gradient-to-r from-emerald-500 to-teal-500\",\r\n warning: \"bg-gradient-to-r from-amber-500 to-orange-500\",\r\n error: \"bg-gradient-to-r from-red-500 to-rose-500\",\r\n };\r\n\r\n const sizeClasses: Record<\"default\" | \"sm\" | \"lg\", string> = {\r\n default: \"h-3.5\",\r\n sm: \"h-2\",\r\n lg: \"h-5\",\r\n };\r\n\r\n return (\r\n <div className=\"w-full space-y-1.5\">\r\n {showLabel && !isIndeterminate && (\r\n <div className=\"flex justify-between text-xs font-medium text-muted-foreground\">\r\n <span>{progressLabel}</span>\r\n <span>{Math.round(percentage)}%</span>\r\n </div>\r\n )}\r\n <ProgressPrimitive.Root\r\n ref={ref}\r\n value={isIndeterminate ? null : value}\r\n max={max}\r\n className={cn(\r\n \"relative w-full overflow-hidden rounded-full bg-muted border border-border/40 shadow-inner\",\r\n sizeClasses[size as \"default\" | \"sm\" | \"lg\"],\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ProgressPrimitive.Indicator\r\n className={cn(\r\n \"h-full w-full flex-1 rounded-full\",\r\n variantClasses[variant as \"default\" | \"success\" | \"warning\" | \"error\"],\r\n isIndeterminate\r\n ? \"absolute inset-0 -translate-x-full origin-left bg-gradient-to-r from-primary/30 via-primary to-primary/30\"\r\n : \"transition-transform ease-out\",\r\n animated && !isIndeterminate ? \"duration-500\" : \"duration-0\"\r\n )}\r\n style={\r\n isIndeterminate\r\n // Single animation definition — not duplicated between className and style\r\n ? { animation: \"shimmer 1.8s infinite\" }\r\n : { transform: `translateX(-${100 - percentage}%)` }\r\n }\r\n />\r\n </ProgressPrimitive.Root>\r\n </div>\r\n );\r\n }\r\n);\r\nProgress.displayName = ProgressPrimitive.Root.displayName\r\n\r\nexport { Progress }\r\n\r\nexport interface CircularProgressCardProps {\r\n value?: number;\r\n max?: number;\r\n title?: string;\r\n label?: string;\r\n unit?: string;\r\n className?: string;\r\n}\r\n\r\nexport const CircularProgressCard = ({\r\n value = 75,\r\n max = 100,\r\n title,\r\n label,\r\n unit = \"%\",\r\n className,\r\n}: CircularProgressCardProps) => {\r\n const percentage = Math.min(100, Math.max(0, (value / max) * 100));\r\n const displayTitle = title || label || \"Progress\";\r\n\r\n return (\r\n <div className={cn(\"p-6 bg-card border rounded-2xl flex flex-col items-center gap-4 w-full max-w-[200px] shadow-sm\", className)}>\r\n <div className=\"relative w-24 h-24 flex items-center justify-center\">\r\n <svg className=\"transform -rotate-90 w-full h-full\">\r\n <circle\r\n cx=\"48\"\r\n cy=\"48\"\r\n r=\"40\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"8\"\r\n fill=\"transparent\"\r\n className=\"text-secondary\"\r\n />\r\n <circle\r\n cx=\"48\"\r\n cy=\"48\"\r\n r=\"40\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"8\"\r\n fill=\"transparent\"\r\n strokeDasharray=\"251.2\"\r\n strokeDashoffset={251.2 - (251.2 * percentage) / 100}\r\n className=\"text-primary transition-all duration-1000 ease-out\"\r\n />\r\n </svg>\r\n <span className=\"absolute text-lg font-bold\">\r\n {value}\r\n <span className=\"text-xs font-normal text-muted-foreground ml-0.5\">{unit}</span>\r\n </span>\r\n </div>\r\n <span className=\"text-sm font-semibold text-center text-muted-foreground leading-tight\">{displayTitle}</span>\r\n </div>\r\n );\r\n};\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nexport interface SliderProps extends Omit<\r\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>,\r\n \"value\" | \"defaultValue\" | \"onChange\"\r\n> {\r\n /**\r\n * The minimum value\r\n * @default 0\r\n */\r\n min?: number;\r\n /**\r\n * The maximum value\r\n * @default 100\r\n */\r\n max?: number;\r\n /**\r\n * The step value\r\n * @default 1\r\n */\r\n step?: number;\r\n /**\r\n * The current value\r\n */\r\n value?: number;\r\n /**\r\n * Callback function called when the value changes\r\n */\r\n onChange?: (value: number) => void;\r\n /**\r\n * Whether to show the current value\r\n * @default false\r\n */\r\n showValue?: boolean;\r\n /**\r\n * The variant of the slider\r\n * @default \"default\"\r\n */\r\n variant?: \"default\" | \"success\" | \"warning\" | \"error\";\r\n /**\r\n * Additional class names\r\n */\r\n className?: string;\r\n}\r\n\r\nconst Slider = React.forwardRef<\r\n React.ElementRef<typeof SliderPrimitive.Root>,\r\n SliderProps\r\n>(({ min = 0, max = 100, step = 1, value = 0, onChange, showValue = false, variant = \"default\", className, ...props }, ref) => {\r\n const handleValueChange = (val: number[]) => {\r\n onChange?.(val[0]);\r\n };\r\n\r\n const variantClasses: Record<\"default\" | \"success\" | \"warning\" | \"error\", string> = {\r\n default: \"bg-primary\",\r\n success: \"bg-emerald-500\",\r\n warning: \"bg-amber-500\",\r\n error: \"bg-red-500\",\r\n };\r\n\r\n const thumbBorderClasses: Record<\"default\" | \"success\" | \"warning\" | \"error\", string> = {\r\n default: \"border-primary\",\r\n success: \"border-emerald-500\",\r\n warning: \"border-amber-500\",\r\n error: \"border-red-500\",\r\n };\r\n\r\n const activeVariant = variant as \"default\" | \"success\" | \"warning\" | \"error\";\r\n\r\n return (\r\n <div className=\"w-full space-y-2\">\r\n {showValue && (\r\n <div className=\"flex justify-between text-sm font-medium\">\r\n <span>Value</span>\r\n <span>{value}</span>\r\n </div>\r\n )}\r\n <SliderPrimitive.Root\r\n ref={ref}\r\n min={min}\r\n max={max}\r\n step={step}\r\n value={[value]}\r\n onValueChange={handleValueChange}\r\n className={cn(\r\n \"relative flex w-full touch-none select-none items-center\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary border border-border/20\">\r\n <SliderPrimitive.Range className={cn(\"absolute h-full\", variantClasses[activeVariant])} />\r\n </SliderPrimitive.Track>\r\n <SliderPrimitive.Thumb className={cn(\r\n \"block h-5 w-5 rounded-full border-2 bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 shadow-sm cursor-grab active:cursor-grabbing\",\r\n thumbBorderClasses[activeVariant]\r\n )} />\r\n </SliderPrimitive.Root>\r\n </div>\r\n )\r\n})\r\nSlider.displayName = \"Slider\"\r\n\r\nexport { Slider }\r\n\r\nexport interface RangeSliderInputProps {\r\n defaultValue?: number[];\r\n min?: number;\r\n max?: number;\r\n step?: number;\r\n className?: string;\r\n onChange?: (value: number[]) => void;\r\n}\r\n\r\nexport function RangeSliderInput({\r\n defaultValue = [20, 80],\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n className,\r\n onChange,\r\n}: RangeSliderInputProps) {\r\n const [value, setValue] = React.useState<number[]>(defaultValue);\r\n\r\n const handleValueChange = (val: number[]) => {\r\n setValue(val);\r\n onChange?.(val);\r\n };\r\n\r\n return (\r\n <SliderPrimitive.Root\r\n min={min}\r\n max={max}\r\n step={step}\r\n value={value}\r\n onValueChange={handleValueChange}\r\n className={cn(\r\n \"relative flex w-full touch-none select-none items-center\",\r\n className\r\n )}\r\n >\r\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\r\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\r\n </SliderPrimitive.Track>\r\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\r\n <SliderPrimitive.Thumb className=\"block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\" />\r\n </SliderPrimitive.Root>\r\n );\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// Helper map for standard sizes\r\nconst sizeMap = {\r\n sm: \"scale-75\",\r\n md: \"scale-100\",\r\n lg: \"scale-125\",\r\n}\r\n\r\nexport interface LoaderProps {\r\n /**\n * Описание для variant\n * @default undefined\n */\n variant?:\r\n | \"dots\"\r\n | \"ring\"\r\n | \"bars\"\r\n | \"pulse\"\r\n | \"spinner\"\r\n | \"wifi\"\r\n | \"hourglass\"\r\n | \"heartbeat\"\r\n | \"box\"\r\n | \"clock\"\r\n | \"battery\"\r\n | \"square-spin\"\r\n | \"text\"\r\n | \"progress-ring\"\r\n | \"skeleton-card\"\r\n | \"shimmer-block\"\r\n /**\n * Описание для size\n * @default undefined\n */\n size?: \"sm\" | \"md\" | \"lg\" | number\r\n /**\n * Описание для color\n * @default undefined\n */\n color?: string\r\n /**\n * Описание для text\n * @default undefined\n */\n text?: string\r\n /**\n * Описание для progress\n * @default undefined\n */\n progress?: number\r\n /**\n * Описание для strokeWidth\n * @default undefined\n */\n strokeWidth?: number\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\n// 1. WifiLoader wrapper & definition\r\nexport const WifiLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const style = typeof size === \"number\" ? { transform: `scale(${size / 32})` } : {}\r\n return (\r\n <div \r\n className={cn(\"flex flex-col items-center justify-end h-8 w-8 gap-1 origin-bottom\", scaleClass, className)}\r\n style={{ ...style, color }}\r\n >\r\n <motion.div animate={{ opacity: [0.2, 1, 0.2] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0 }} className=\"w-8 h-2 bg-current rounded-t-full rounded-b-sm\" />\r\n <motion.div animate={{ opacity: [0.2, 1, 0.2] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.2 }} className=\"w-5 h-2 bg-current rounded-t-full rounded-b-sm\" />\r\n <motion.div animate={{ opacity: [0.2, 1, 0.2] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.4 }} className=\"w-2 h-2 bg-current rounded-full\" />\r\n </div>\r\n )\r\n}\r\n\r\n// 2. HourglassLoader wrapper & definition\r\nexport const HourglassLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const scaleVal = typeof size === \"number\" ? size / 32 : 1\r\n return (\r\n <div className={cn(\"inline-flex items-center justify-center\", scaleClass, className)} style={{ transform: `scale(${scaleVal})` }}>\r\n <motion.div \r\n animate={{ rotate: 180 }} \r\n transition={{ repeat: Infinity, duration: 2, ease: \"easeInOut\", repeatDelay: 0.5 }}\r\n className=\"relative w-6 h-8 border-y-4 border-x-2 border-x-transparent flex flex-col justify-between items-center\"\r\n style={{ borderColor: `${color} transparent ${color} transparent` }}\r\n >\r\n <div className=\"w-0 h-0 border-l-[10px] border-l-transparent border-r-[10px] border-r-transparent border-t-[10px] opacity-50\" style={{ borderTopColor: color }} />\r\n <div className=\"w-0 h-0 border-l-[10px] border-l-transparent border-r-[10px] border-r-transparent border-b-[10px] opacity-50\" style={{ borderBottomColor: color }} />\r\n </motion.div>\r\n </div>\r\n )\r\n}\r\n\r\n// 3. HeartbeatLoader\r\nexport const HeartbeatLoader = ({ className, color = \"#ef4444\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const pixelSize = typeof size === \"number\" ? size : (size === \"sm\" ? 24 : size === \"lg\" ? 40 : 32)\r\n return (\r\n <motion.div \r\n animate={{ scale: [1, 1.2, 1, 1.3, 1] }} \r\n transition={{ repeat: Infinity, duration: 1.2 }}\r\n className={cn(\"inline-block\", scaleClass, className)}\r\n >\r\n <svg className=\"fill-current\" style={{ color, width: pixelSize, height: pixelSize }} viewBox=\"0 0 24 24\">\r\n <path d=\"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z\"/>\r\n </svg>\r\n </motion.div>\r\n )\r\n}\r\n\r\n// 4. BoxLoader\r\nexport const BoxLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const pixelSize = typeof size === \"number\" ? size : (size === \"sm\" ? 24 : size === \"lg\" ? 40 : 32)\r\n return (\r\n <div className={cn(\"relative inline-block\", className)} style={{ width: pixelSize, height: pixelSize }}>\r\n <motion.div \r\n animate={{ rotate: 360, borderRadius: [\"20%\", \"50%\", \"20%\"] }} \r\n transition={{ repeat: Infinity, duration: 2, ease: \"linear\" }} \r\n className=\"w-full h-full\" \r\n style={{ backgroundColor: color }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n// 5. BouncingBalls\r\nexport const BouncingBalls = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const scaleVal = typeof size === \"number\" ? size / 32 : 1\r\n return (\r\n <div className={cn(\"flex gap-2 items-center origin-center\", scaleClass, className)} style={{ transform: `scale(${scaleVal})` }}>\r\n {[0, 1, 2].map(i => (\r\n <motion.div \r\n key={i} \r\n animate={{ y: [0, -10, 0] }} \r\n transition={{ repeat: Infinity, duration: 0.6, delay: i * 0.1 }} \r\n className=\"w-3 h-3 rounded-full\" \r\n style={{ backgroundColor: color }}\r\n />\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// 6. GlowRingLoader\r\nexport const GlowRingLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const pixelSize = typeof size === \"number\" ? size : (size === \"sm\" ? 30 : size === \"lg\" ? 50 : 40)\r\n return (\r\n <motion.div \r\n animate={{ rotate: 360 }} \r\n transition={{ repeat: Infinity, duration: 1, ease: \"linear\" }} \r\n className={cn(\"rounded-full border-4 border-current/25\", className)} \r\n style={{ \r\n width: pixelSize, \r\n height: pixelSize, \r\n color, \r\n borderTopColor: color, \r\n boxShadow: `0 0 10px ${color}80` \r\n }} \r\n />\r\n )\r\n}\r\n\r\n// 7. LineScaleLoader\r\nexport const LineScaleLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const scaleVal = typeof size === \"number\" ? size / 32 : 1\r\n return (\r\n <div className={cn(\"flex gap-1 items-end h-8 origin-bottom\", scaleClass, className)} style={{ transform: `scale(${scaleVal})` }}>\r\n {[0, 1, 2, 3, 4].map(i => (\r\n <motion.div \r\n key={i} \r\n animate={{ height: [\"20%\", \"100%\", \"20%\"] }} \r\n transition={{ repeat: Infinity, duration: 1, delay: i * 0.1 }} \r\n className=\"w-1.5 rounded-full\" \r\n style={{ backgroundColor: color }}\r\n />\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// 8. ClockLoader\r\nexport const ClockLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const pixelSize = typeof size === \"number\" ? size : (size === \"sm\" ? 30 : size === \"lg\" ? 50 : 40)\r\n return (\r\n <div \r\n className={cn(\"relative rounded-full border-2\", className)} \r\n style={{ width: pixelSize, height: pixelSize, borderColor: color }}\r\n >\r\n <motion.div \r\n animate={{ rotate: 360 }} \r\n transition={{ repeat: Infinity, duration: 4, ease: \"linear\" }} \r\n className=\"absolute top-1/2 left-1/2 w-0.5 origin-bottom -translate-x-1/2 -translate-y-full\" \r\n style={{ height: `${(pixelSize / 2) - 4}px`, backgroundColor: color }}\r\n />\r\n <motion.div \r\n animate={{ rotate: 360 }} \r\n transition={{ repeat: Infinity, duration: 1, ease: \"linear\" }} \r\n className=\"absolute top-1/2 left-1/2 w-0.5 origin-bottom -translate-x-1/2 -translate-y-full opacity-70\" \r\n style={{ height: `${(pixelSize / 2) - 2}px`, backgroundColor: color }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n// 9. BatteryLoader\r\nexport const BatteryLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const scaleVal = typeof size === \"number\" ? size / 32 : 1\r\n return (\r\n <div className={cn(\"flex items-center origin-left\", scaleClass, className)} style={{ transform: `scale(${scaleVal})` }}>\r\n <div className=\"w-12 h-6 border-2 rounded-sm p-0.5 flex\" style={{ borderColor: color }}>\r\n <motion.div animate={{ width: [\"0%\", \"100%\"] }} transition={{ repeat: Infinity, duration: 2, ease: \"linear\" }} className=\"h-full bg-emerald-500 rounded-sm\" />\r\n </div>\r\n <div className=\"w-1 h-2 rounded-r-sm\" style={{ backgroundColor: color }} />\r\n </div>\r\n )\r\n}\r\n\r\n// 10. SquareSpinLoader\r\nexport const SquareSpinLoader = ({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) => {\r\n const pixelSize = typeof size === \"number\" ? size : (size === \"sm\" ? 24 : size === \"lg\" ? 40 : 32)\r\n return (\r\n <motion.div \r\n animate={{ rotateX: [0, 180, 180, 0], rotateY: [0, 0, 180, 180] }} \r\n transition={{ repeat: Infinity, duration: 2, ease: \"easeInOut\" }} \r\n className={className}\r\n style={{ width: pixelSize, height: pixelSize, backgroundColor: color }} \r\n />\r\n )\r\n}\r\n\r\n// 11. SpinnerLoader\r\nexport function SpinnerLoader({ className, size = 24, color = \"currentColor\" }: { className?: string; size?: number; color?: string }) {\r\n return (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={size}\r\n height={size}\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke={color}\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n className={cn(\"animate-spin\", className)}\r\n >\r\n <path d=\"M21 12a9 9 0 1 1-6.219-8.56\" />\r\n </svg>\r\n )\r\n}\r\n\r\n// 12. DotsLoader\r\nexport function DotsLoader({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const scaleVal = typeof size === \"number\" ? size / 32 : 1\r\n return (\r\n <div className={cn(\"flex space-x-1.5 items-center justify-center h-10 origin-center\", scaleClass, className)} style={{ transform: `scale(${scaleVal})` }}>\r\n <motion.div animate={{ y: [0, -5, 0] }} transition={{ repeat: Infinity, duration: 0.6, delay: 0 }} className=\"w-2.5 h-2.5 rounded-full\" style={{ backgroundColor: color }} />\r\n <motion.div animate={{ y: [0, -5, 0] }} transition={{ repeat: Infinity, duration: 0.6, delay: 0.2 }} className=\"w-2.5 h-2.5 rounded-full\" style={{ backgroundColor: color }} />\r\n <motion.div animate={{ y: [0, -5, 0] }} transition={{ repeat: Infinity, duration: 0.6, delay: 0.4 }} className=\"w-2.5 h-2.5 rounded-full\" style={{ backgroundColor: color }} />\r\n </div>\r\n )\r\n}\r\n\r\n// 13. PulseLoader\r\nexport function PulseLoader({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) {\r\n const pixelSize = typeof size === \"number\" ? size : (size === \"sm\" ? 16 : size === \"lg\" ? 28 : 20)\r\n return (\r\n <div className={cn(\"relative flex items-center justify-center\", className)} style={{ width: pixelSize, height: pixelSize }}>\r\n <span className=\"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75\" style={{ backgroundColor: color }} />\r\n <span className=\"relative inline-flex rounded-full\" style={{ backgroundColor: color, width: pixelSize, height: pixelSize }} />\r\n </div>\r\n )\r\n}\r\n\r\n// 14. BarLoader\r\nexport function BarLoader({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const scaleVal = typeof size === \"number\" ? size / 32 : 1\r\n return (\r\n <div className={cn(\"flex space-x-1 items-center justify-center h-10 origin-center\", scaleClass, className)} style={{ transform: `scale(${scaleVal})` }}>\r\n <motion.div animate={{ scaleY: [1, 2, 1] }} transition={{ repeat: Infinity, duration: 0.8, delay: 0 }} className=\"w-1.5 h-4 rounded-full origin-bottom\" style={{ backgroundColor: color }} />\r\n <motion.div animate={{ scaleY: [1, 2, 1] }} transition={{ repeat: Infinity, duration: 0.8, delay: 0.2 }} className=\"w-1.5 h-4 rounded-full origin-bottom\" style={{ backgroundColor: color }} />\r\n <motion.div animate={{ scaleY: [1, 2, 1] }} transition={{ repeat: Infinity, duration: 0.8, delay: 0.4 }} className=\"w-1.5 h-4 rounded-full origin-bottom\" style={{ backgroundColor: color }} />\r\n </div>\r\n )\r\n}\r\n\r\n// 15. CircleLoader\r\nexport function CircleLoader({ className, size = 32, color = \"currentColor\" }: { className?: string; size?: number; color?: string }) {\r\n return (\r\n <div className={cn(\"relative\", className)} style={{ width: size, height: size }}>\r\n <div className=\"absolute inset-0 rounded-full border-2 opacity-20\" style={{ borderColor: color }} />\r\n <div className=\"absolute inset-0 rounded-full border-2 border-t-transparent border-r-transparent border-b-transparent animate-spin\" style={{ borderLeftColor: color }} />\r\n </div>\r\n )\r\n}\r\n\r\n// 16. RingLoader\r\nexport function RingLoader({ className, color = \"currentColor\", size = \"md\" }: { className?: string; color?: string; size?: \"sm\" | \"md\" | \"lg\" | number }) {\r\n const scaleClass = typeof size === \"string\" ? sizeMap[size] : \"\"\r\n const scaleVal = typeof size === \"number\" ? size / 40 : 1\r\n return (\r\n <div className={cn(\"inline-block relative w-10 h-10 origin-center\", scaleClass, className)} style={{ transform: `scale(${scaleVal})` }}>\r\n <motion.div \r\n className=\"absolute inset-0 rounded-full border-4 border-t-transparent\"\r\n style={{ borderColor: `${color} transparent ${color} ${color}` }}\r\n animate={{ rotate: 360 }}\r\n transition={{ repeat: Infinity, duration: 1.2, ease: \"linear\" }}\r\n />\r\n <motion.div \r\n className=\"absolute inset-2 rounded-full border-4 border-b-transparent opacity-50\"\r\n style={{ borderColor: `${color} ${color} transparent ${color}` }}\r\n animate={{ rotate: -360 }}\r\n transition={{ repeat: Infinity, duration: 1.5, ease: \"linear\" }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n// 17. TextLoader\r\nexport function TextLoader({ text = \"Loading...\", className, color = \"currentColor\" }: { text?: string; className?: string; color?: string }) {\r\n return (\r\n <div className={cn(\"font-mono text-sm font-medium flex items-center gap-2\", className)} style={{ color }}>\r\n <span>{text}</span>\r\n <span className=\"flex gap-0.5\">\r\n <motion.span animate={{ opacity: [0, 1, 0] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0 }}>.</motion.span>\r\n <motion.span animate={{ opacity: [0, 1, 0] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.3 }}>.</motion.span>\r\n <motion.span animate={{ opacity: [0, 1, 0] }} transition={{ repeat: Infinity, duration: 1.5, delay: 0.6 }}>.</motion.span>\r\n </span>\r\n </div>\r\n )\r\n}\r\n\r\n// 18. ProgressRing\r\nexport function ProgressRing({ progress = 50, size = 60, strokeWidth = 4, className, color = \"currentColor\" }: { progress?: number; size?: number; strokeWidth?: number; className?: string; color?: string }) {\r\n const radius = (size - strokeWidth) / 2\r\n const circumference = radius * 2 * Math.PI\r\n const offset = circumference - (progress / 100) * circumference\r\n\r\n return (\r\n <div className={cn(\"relative flex items-center justify-center\", className)} style={{ width: size, height: size }}>\r\n <svg className=\"transform -rotate-90\" width={size} height={size}>\r\n <circle\r\n className=\"text-muted stroke-current opacity-20\"\r\n strokeWidth={strokeWidth}\r\n fill=\"transparent\"\r\n r={radius}\r\n cx={size / 2}\r\n cy={size / 2}\r\n style={{ color }}\r\n />\r\n <motion.circle\r\n className=\"stroke-current\"\r\n strokeWidth={strokeWidth}\r\n fill=\"transparent\"\r\n r={radius}\r\n cx={size / 2}\r\n cy={size / 2}\r\n initial={{ strokeDashoffset: circumference }}\r\n animate={{ strokeDashoffset: offset }}\r\n transition={{ duration: 1, ease: \"easeInOut\" }}\r\n style={{ strokeDasharray: circumference, strokeLinecap: \"round\", color }}\r\n />\r\n </svg>\r\n <span className=\"absolute text-xs font-semibold\" style={{ color }}>{progress}%</span>\r\n </div>\r\n )\r\n}\r\n\r\n// 19. SkeletonCard\r\nexport function SkeletonCard({ className }: { className?: string }) {\r\n return (\r\n <div className={cn(\"border bg-card p-4 rounded-xl space-y-3 w-full max-w-sm border-border/60\", className)}>\r\n <div className=\"flex items-center space-x-4\">\r\n <div className=\"w-10 h-10 rounded-full bg-muted animate-pulse\" />\r\n <div className=\"space-y-2\">\r\n <div className=\"h-4 w-[150px] bg-muted animate-pulse rounded\" />\r\n <div className=\"h-3 w-[100px] bg-muted animate-pulse rounded\" />\r\n </div>\r\n </div>\r\n <div className=\"space-y-2\">\r\n <div className=\"h-4 w-full bg-muted animate-pulse rounded\" />\r\n <div className=\"h-4 w-[80%] bg-muted animate-pulse rounded\" />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// 20. ShimmerBlock\r\nexport function ShimmerBlock({ className }: { className?: string }) {\r\n return (\r\n <div className={cn(\"relative overflow-hidden bg-muted rounded-md h-24 w-full\", className)}>\r\n <motion.div\r\n className=\"absolute inset-0 -translate-x-full bg-gradient-to-r from-transparent via-white/10 to-transparent\"\r\n animate={{ translateX: [\"-100%\", \"100%\"] }}\r\n transition={{ repeat: Infinity, duration: 1.5, ease: \"linear\" }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n// Unified Loader component\r\nexport function Loader({\r\n variant = \"dots\",\r\n size = \"md\",\r\n color,\r\n text,\r\n progress = 50,\r\n strokeWidth = 4,\r\n className,\r\n}: LoaderProps) {\r\n const activeColor = color || \"currentColor\"\r\n\r\n switch (variant) {\r\n case \"ring\":\r\n return <RingLoader className={className} color={activeColor} size={size} />\r\n case \"bars\":\r\n return <BarLoader className={className} color={activeColor} size={size} />\r\n case \"pulse\":\r\n return <PulseLoader className={className} color={activeColor} size={size} />\r\n case \"spinner\":\r\n const pixelSizeSpinner = typeof size === \"number\" ? size : (size === \"sm\" ? 18 : size === \"lg\" ? 36 : 24)\r\n return <SpinnerLoader className={className} color={activeColor} size={pixelSizeSpinner} />\r\n case \"wifi\":\r\n return <WifiLoader className={className} color={activeColor} size={size} />\r\n case \"hourglass\":\r\n return <HourglassLoader className={className} color={activeColor} size={size} />\r\n case \"heartbeat\":\r\n return <HeartbeatLoader className={className} color={activeColor} size={size} />\r\n case \"box\":\r\n return <BoxLoader className={className} color={activeColor} size={size} />\r\n case \"clock\":\r\n return <ClockLoader className={className} color={activeColor} size={size} />\r\n case \"battery\":\r\n return <BatteryLoader className={className} color={activeColor} size={size} />\r\n case \"square-spin\":\r\n return <SquareSpinLoader className={className} color={activeColor} size={size} />\r\n case \"text\":\r\n return <TextLoader text={text} className={className} color={activeColor} />\r\n case \"progress-ring\":\r\n const pixelSizeProgress = typeof size === \"number\" ? size : (size === \"sm\" ? 50 : size === \"lg\" ? 80 : 60)\r\n return <ProgressRing progress={progress} size={pixelSizeProgress} strokeWidth={strokeWidth} className={className} color={activeColor} />\r\n case \"skeleton-card\":\r\n return <SkeletonCard className={className} />\r\n case \"shimmer-block\":\r\n return <ShimmerBlock className={className} />\r\n case \"dots\":\r\n default:\r\n return <DotsLoader className={className} color={activeColor} size={size} />\r\n }\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { ChevronRight, MoreHorizontal, ChevronLeft, Check, Home, Search, Bell, User, Settings, Menu } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { Button } from \"./button\"\r\nimport { motion } from \"framer-motion\"\r\n\r\n// 1. Breadcrumb - Navigation path\r\ninterface BreadcrumbProps extends React.HTMLAttributes<HTMLElement> {\r\n /**\n * Описание для items\n * @default undefined\n */\n items: { label: string; href?: string }[]\r\n /**\n * Описание для separator\n * @default undefined\n */\n separator?: React.ReactNode\r\n}\r\n\r\nexport function Breadcrumb({ items, separator = <ChevronRight className=\"h-4 w-4\" />, className, ...props }: BreadcrumbProps) {\r\n return (\r\n <nav className={cn(\"flex items-center text-sm text-muted-foreground bg-muted/30 backdrop-blur-sm px-4 py-2 rounded-lg border border-border/50 width-fit\", className)} {...props}>\r\n <ol className=\"flex items-center space-x-2\">\r\n {items.map((item, index) => (\r\n <li key={index} className=\"flex items-center space-x-2\">\r\n {index > 0 && <span className=\"text-muted-foreground/50\">{separator}</span>}\r\n {item.href ? (\r\n <a href={item.href} className=\"hover:text-primary transition-colors font-medium\">\r\n {item.label}\r\n </a>\r\n ) : (\r\n <span className=\"font-semibold text-foreground\">{item.label}</span>\r\n )}\r\n </li>\r\n ))}\r\n </ol>\r\n </nav>\r\n )\r\n}\r\n\r\n// 2. Pagination - Page navigation\r\ninterface PaginationProps extends React.HTMLAttributes<HTMLElement> {\r\n /**\n * Описание для totalPages\n * @default undefined\n */\n totalPages: number\r\n /**\n * Описание для currentPage\n * @default undefined\n */\n currentPage: number\r\n /**\n * Описание для onPageChange\n * @default undefined\n */\n onPageChange?: (page: number) => void\r\n}\r\n\r\nexport function Pagination({ totalPages, currentPage, onPageChange, className, ...props }: PaginationProps) {\r\n const pages = Array.from({ length: totalPages }, (_, i) => i + 1)\r\n\r\n return (\r\n <nav className={cn(\"flex justify-center\", className)} {...props}>\r\n <ul className=\"flex items-center space-x-2\">\r\n <li>\r\n <Button\r\n variant=\"outline\"\r\n size=\"icon\"\r\n disabled={currentPage === 1}\r\n onClick={() => onPageChange?.(currentPage - 1)}\r\n className=\"rounded-full\"\r\n >\r\n <ChevronLeft className=\"h-4 w-4\" />\r\n </Button>\r\n </li>\r\n {pages.map((page) => (\r\n <li key={page}>\r\n <Button\r\n variant={currentPage === page ? \"default\" : \"outline\"}\r\n size=\"icon\"\r\n onClick={() => onPageChange?.(page)}\r\n className={cn(\"rounded-full\", currentPage === page && \"shadow-lg shadow-primary/30\")}\r\n >\r\n {page}\r\n </Button>\r\n </li>\r\n ))}\r\n <li>\r\n <Button\r\n variant=\"outline\"\r\n size=\"icon\"\r\n disabled={currentPage === totalPages}\r\n onClick={() => onPageChange?.(currentPage + 1)}\r\n className=\"rounded-full\"\r\n >\r\n <ChevronRight className=\"h-4 w-4\" />\r\n </Button>\r\n </li>\r\n </ul>\r\n </nav>\r\n )\r\n}\r\n\r\n// 3. Steps - Visual progress steps\r\ninterface Step {\r\n title: string\r\n description?: string\r\n status: \"complete\" | \"current\" | \"upcoming\"\r\n}\r\n\r\nexport function Steps({ items, className }: { items: Step[]; className?: string }) {\r\n return (\r\n <div className={cn(\"space-y-6\", className)}>\r\n {items.map((item, index) => (\r\n <div key={index} className=\"flex items-start gap-4 group\">\r\n <div className=\"flex flex-col items-center\">\r\n <motion.div\r\n initial={{ scale: 0.8, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n transition={{ delay: index * 0.1 }}\r\n className={cn(\r\n \"flex h-9 w-9 items-center justify-center rounded-full border-2 text-sm font-bold transition-all duration-300\",\r\n item.status === \"complete\" && \"border-transparent bg-gradient-to-br from-emerald-500 to-emerald-600 text-white shadow-lg shadow-emerald-500/20\",\r\n item.status === \"current\" && \"border-primary bg-background text-primary shadow-lg shadow-primary/20 ring-4 ring-primary/10\",\r\n item.status === \"upcoming\" && \"border-muted-foreground/30 bg-muted text-muted-foreground\"\r\n )}\r\n >\r\n {item.status === \"complete\" ? (\r\n <Check className=\"h-5 w-5 stroke-[3]\" />\r\n ) : (\r\n <span>{index + 1}</span>\r\n )}\r\n </motion.div>\r\n {index !== items.length - 1 && (\r\n <div className={cn(\r\n \"h-full w-[2px] min-h-[30px] my-2 transition-colors duration-300\",\r\n item.status === \"complete\" ? \"bg-emerald-500\" : \"bg-border\"\r\n )} />\r\n )}\r\n </div>\r\n <div className=\"pt-1.5 flex-1\">\r\n <h4 className={cn(\"font-semibold text-base transition-colors\", item.status === \"current\" && \"text-primary\")}>{item.title}</h4>\r\n {item.description && (\r\n <p className=\"text-sm text-muted-foreground mt-0.5 leading-relaxed\">{item.description}</p>\r\n )}\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// Backward compatibility navbars and menu items\r\n// ============================================\r\n\r\nexport const SimpleNavbar = () => (\r\n <nav className=\"flex items-center justify-between p-4 border-b bg-background w-full\">\r\n <div className=\"font-bold text-lg\">Logo</div>\r\n <div className=\"hidden md:flex gap-6 text-sm font-medium text-muted-foreground\">\r\n <a href=\"#\" className=\"text-foreground\">Home</a>\r\n <a href=\"#\" className=\"hover:text-foreground\">About</a>\r\n <a href=\"#\" className=\"hover:text-foreground\">Services</a>\r\n <a href=\"#\" className=\"hover:text-foreground\">Contact</a>\r\n </div>\r\n <div className=\"flex gap-4\">\r\n <button><Search className=\"w-5 h-5\" /></button>\r\n <button className=\"md:hidden\"><Menu className=\"w-5 h-5\" /></button>\r\n </div>\r\n </nav>\r\n)\r\n\r\nexport const CenteredNavbar = () => (\r\n <nav className=\"flex items-center justify-between p-4 border-b bg-background w-full\">\r\n <div className=\"flex-1\"><div className=\"font-bold text-lg\">Logo</div></div>\r\n <div className=\"hidden md:flex gap-6 text-sm font-medium\">\r\n <a href=\"#\">Products</a>\r\n <a href=\"#\">Solutions</a>\r\n <a href=\"#\">Pricing</a>\r\n </div>\r\n <div className=\"flex-1 flex justify-end gap-2\">\r\n <button className=\"px-4 py-2 text-sm font-medium\">Log in</button>\r\n <button className=\"px-4 py-2 text-sm font-medium bg-primary text-primary-foreground rounded-md\">Sign up</button>\r\n </div>\r\n </nav>\r\n)\r\n\r\nexport const GlassNavbar = () => (\r\n <nav className=\"flex items-center justify-between px-6 py-3 bg-white/10 backdrop-blur-md border border-white/20 rounded-full w-[90%] mx-auto mt-4 shadow-lg sticky top-4 z-50\">\r\n <div className=\"font-bold text-white\">Glass UI</div>\r\n <div className=\"flex gap-6 text-sm font-medium text-white/80\">\r\n <a href=\"#\" className=\"hover:text-white transition-colors\">Features</a>\r\n <a href=\"#\" className=\"hover:text-white transition-colors\">Pricing</a>\r\n </div>\r\n <button className=\"px-4 py-1.5 bg-white text-black rounded-full text-sm font-bold\">Start</button>\r\n </nav>\r\n)\r\n\r\nexport const FloatingNavbar = () => (\r\n <nav className=\"flex items-center justify-center gap-8 px-8 py-3 bg-card border rounded-full w-fit mx-auto mt-4 shadow-xl\">\r\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-primary\"><Home className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Home</span></a>\r\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-muted-foreground hover:text-foreground\"><Search className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Search</span></a>\r\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-muted-foreground hover:text-foreground\"><Bell className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Alerts</span></a>\r\n <a href=\"#\" className=\"flex flex-col items-center gap-1 text-muted-foreground hover:text-foreground\"><User className=\"w-5 h-5\" /><span className=\"text-[10px] font-medium\">Profile</span></a>\r\n </nav>\r\n)\r\n\r\nexport const SidebarMenu = () => (\r\n <div className=\"w-64 h-full min-h-[300px] border-r bg-background p-4 flex flex-col gap-2\">\r\n <div className=\"font-bold text-xl mb-6 px-2\">Dashboard</div>\r\n <a href=\"#\" className=\"flex items-center gap-3 px-3 py-2 bg-muted rounded-md font-medium text-sm\"><Home className=\"w-4 h-4\" /> Overview</a>\r\n <a href=\"#\" className=\"flex items-center gap-3 px-3 py-2 text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md font-medium text-sm\"><Settings className=\"w-4 h-4\" /> Settings</a>\r\n <a href=\"#\" className=\"flex items-center gap-3 px-3 py-2 text-muted-foreground hover:text-foreground hover:bg-muted/50 rounded-md font-medium text-sm mt-auto\"><User className=\"w-4 h-4\" /> Account</a>\r\n </div>\r\n)\r\n\r\nexport const BottomNav = () => (\r\n <div className=\"flex items-center justify-around p-3 border-t bg-background w-full mt-auto\">\r\n <button className=\"flex flex-col items-center gap-1 text-primary\"><Home className=\"w-5 h-5\" /></button>\r\n <button className=\"flex flex-col items-center gap-1 text-muted-foreground\"><Search className=\"w-5 h-5\" /></button>\r\n <div className=\"relative -top-5\"><button className=\"flex items-center justify-center w-12 h-12 bg-primary text-primary-foreground rounded-full shadow-lg\"><Menu className=\"w-6 h-6\" /></button></div>\r\n <button className=\"flex flex-col items-center gap-1 text-muted-foreground\"><Bell className=\"w-5 h-5\" /></button>\r\n <button className=\"flex flex-col items-center gap-1 text-muted-foreground\"><User className=\"w-5 h-5\" /></button>\r\n </div>\r\n)\r\n\r\nexport const BreadcrumbTrail = () => (\r\n <nav className=\"flex items-center text-sm text-muted-foreground space-x-1\">\r\n <a href=\"#\" className=\"hover:text-foreground hover:underline\">Home</a>\r\n <ChevronRight className=\"w-4 h-4\" />\r\n <a href=\"#\" className=\"hover:text-foreground hover:underline\">Products</a>\r\n <ChevronRight className=\"w-4 h-4\" />\r\n <span className=\"text-foreground font-medium\">Laptop</span>\r\n </nav>\r\n)\r\n\r\nexport const StepIndicator = ({ current = 2 }: any) => (\r\n <div className=\"flex items-center w-full max-w-sm\">\r\n <div className=\"flex items-center text-primary\"><div className=\"w-8 h-8 rounded-full border-2 border-primary bg-primary text-primary-foreground flex items-center justify-center font-bold text-sm\">1</div></div>\r\n <div className=\"flex-1 h-[2px] bg-primary mx-2\"></div>\r\n <div className=\"flex items-center text-primary\"><div className=\"w-8 h-8 rounded-full border-2 border-primary bg-background flex items-center justify-center font-bold text-sm\">2</div></div>\r\n <div className=\"flex-1 h-[2px] bg-muted mx-2\"></div>\r\n <div className=\"flex items-center text-muted-foreground\"><div className=\"w-8 h-8 rounded-full border-2 border-muted bg-background flex items-center justify-center font-bold text-sm\">3</div></div>\r\n </div>\r\n)\r\n\r\nexport const TabMenu = () => (\r\n <div className=\"flex border-b w-full\">\r\n <button className=\"px-6 py-3 border-b-2 border-primary text-primary font-medium text-sm\">Account</button>\r\n <button className=\"px-6 py-3 border-b-2 border-transparent text-muted-foreground hover:text-foreground font-medium text-sm transition-colors\">Password</button>\r\n <button className=\"px-6 py-3 border-b-2 border-transparent text-muted-foreground hover:text-foreground font-medium text-sm transition-colors\">Notifications</button>\r\n </div>\r\n)\r\n\r\nexport const DropdownMenuVisual = () => (\r\n <div className=\"w-48 border bg-card rounded-md shadow-md p-1 flex flex-col\">\r\n <div className=\"px-2 py-1.5 text-sm font-semibold border-b mb-1\">My Account</div>\r\n <button className=\"px-2 py-1.5 text-sm text-left hover:bg-muted rounded-sm transition-colors\">Profile</button>\r\n <button className=\"px-2 py-1.5 text-sm text-left hover:bg-muted rounded-sm transition-colors\">Billing</button>\r\n <button className=\"px-2 py-1.5 text-sm text-left hover:bg-muted rounded-sm transition-colors\">Settings</button>\r\n <div className=\"border-t my-1\"></div>\r\n <button className=\"px-2 py-1.5 text-sm text-left text-destructive hover:bg-destructive/10 rounded-sm transition-colors\">Log out</button>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nexport interface ScrollAreaProps\r\n extends React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> {}\r\n\r\n/**\r\n * ScrollArea component built on top of Radix UI ScrollArea primitives.\r\n */\r\nconst ScrollArea = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\r\n ScrollAreaProps\r\n>(({ className, children, ...props }, ref) => (\r\n <ScrollAreaPrimitive.Root\r\n ref={ref}\r\n className={cn(\"relative overflow-hidden\", className)}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit] [&>div]:!block\">\r\n {children}\r\n </ScrollAreaPrimitive.Viewport>\r\n <ScrollBar />\r\n <ScrollAreaPrimitive.Corner />\r\n </ScrollAreaPrimitive.Root>\r\n))\r\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\r\n\r\n/**\r\n * ScrollBar component for ScrollArea.\r\n */\r\nconst ScrollBar = React.forwardRef<\r\n React.ElementRef<typeof ScrollAreaPrimitive.Scrollbar>,\r\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Scrollbar>\r\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\r\n <ScrollAreaPrimitive.Scrollbar\r\n ref={ref}\r\n orientation={orientation}\r\n className={cn(\r\n \"flex touch-none select-none transition-colors duration-150 rounded-full\",\r\n orientation === \"vertical\" &&\r\n \"h-full w-2 border-l border-l-transparent p-[1px] hover:bg-black/5 dark:hover:bg-white/5\",\r\n orientation === \"horizontal\" &&\r\n \"h-2 flex-col border-t border-t-transparent p-[1px] hover:bg-black/5 dark:hover:bg-white/5\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <ScrollAreaPrimitive.Thumb className=\"relative flex-1 rounded-full bg-border hover:bg-muted-foreground/60 transition-colors\" />\r\n </ScrollAreaPrimitive.Scrollbar>\r\n))\r\nScrollBar.displayName = ScrollAreaPrimitive.Scrollbar.displayName\r\n\r\nexport { ScrollArea, ScrollBar }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\ninterface BaseAnimationProps {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode;\r\n /**\n * Описание для delay\n * @default undefined\n */\n delay?: number;\r\n /**\n * Описание для duration\n * @default undefined\n */\n duration?: number;\r\n}\r\n\r\n// 1. FadeIn\r\nexport const FadeIn = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div initial={{ opacity: 0 }} animate={{ opacity: 1 }} transition={{ delay, duration }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 2. SlideUp\r\nexport const SlideUp = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ delay, duration }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 3. SlideDown\r\nexport const SlideDown = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div initial={{ opacity: 0, y: -20 }} animate={{ opacity: 1, y: 0 }} transition={{ delay, duration }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 4. SlideLeft\r\nexport const SlideLeft = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div initial={{ opacity: 0, x: 20 }} animate={{ opacity: 1, x: 0 }} transition={{ delay, duration }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 5. SlideRight\r\nexport const SlideRight = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div initial={{ opacity: 0, x: -20 }} animate={{ opacity: 1, x: 0 }} transition={{ delay, duration }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 6. ScaleIn\r\nexport const ScaleIn = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div initial={{ opacity: 0, scale: 0.9 }} animate={{ opacity: 1, scale: 1 }} transition={{ delay, duration }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 7. Bounce\r\nexport const Bounce = ({ children, delay = 0 }: Omit<BaseAnimationProps, 'duration'>) => (\r\n <motion.div\r\n initial={{ y: -20 }}\r\n animate={{ y: 0 }}\r\n transition={{ type: \"spring\", bounce: 0.5, delay }}\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 8. Flip\r\nexport const Flip = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div\r\n initial={{ rotateX: 90, opacity: 0 }}\r\n animate={{ rotateX: 0, opacity: 1 }}\r\n transition={{ delay, duration }}\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 9. Rotate\r\nexport const Rotate = ({ children, delay = 0, duration = 0.5 }: BaseAnimationProps) => (\r\n <motion.div\r\n initial={{ rotate: -180, opacity: 0 }}\r\n animate={{ rotate: 0, opacity: 1 }}\r\n transition={{ delay, duration }}\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 10. Pulse (Continuous)\r\nexport const PulseAnim = ({ children }: { children: React.ReactNode }) => (\r\n <motion.div\r\n animate={{ scale: [1, 1.05, 1] }}\r\n transition={{ repeat: Infinity, duration: 2 }}\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 11. Float (Continuous)\r\nexport const Float = ({ children }: { children: React.ReactNode }) => (\r\n <motion.div\r\n animate={{ y: [0, -10, 0] }}\r\n transition={{ repeat: Infinity, duration: 3, ease: \"easeInOut\" }}\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 12. Wiggle (Hover)\r\nexport const WiggleHover = ({ children }: { children: React.ReactNode }) => (\r\n <motion.div whileHover={{ rotate: [0, -10, 10, -10, 10, 0] }} transition={{ duration: 0.5 }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 13. Heartbeat\r\nexport const Heartbeat = ({ children }: { children: React.ReactNode }) => (\r\n <motion.div\r\n animate={{ scale: [1, 1.1, 1, 1.1, 1] }}\r\n transition={{ repeat: Infinity, duration: 1.5, ease: \"easeInOut\" }}\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 14. Reveal (Clip-path)\r\nexport const RevealClip = ({ children, delay = 0, duration = 0.8 }: BaseAnimationProps) => (\r\n <motion.div\r\n initial={{ clipPath: \"polygon(0 0, 0 0, 0 100%, 0% 100%)\" }}\r\n animate={{ clipPath: \"polygon(0 0, 100% 0, 100% 100%, 0 100%)\" }}\r\n transition={{ delay, duration, ease: \"easeInOut\" }}\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// 15. StaggerContainer & Item\r\nexport const StaggerContainer = ({ children, delayChildren = 0.1, staggerChildren = 0.1 }: { children: React.ReactNode; delayChildren?: number; staggerChildren?: number }) => (\r\n <motion.div\r\n variants={{\r\n hidden: { opacity: 0 },\r\n show: {\r\n opacity: 1,\r\n transition: { staggerChildren, delayChildren }\r\n }\r\n }}\r\n initial=\"hidden\"\r\n animate=\"show\"\r\n >\r\n {children}\r\n </motion.div>\r\n)\r\n\r\nexport const StaggerItem = ({ children }: { children: React.ReactNode }) => (\r\n <motion.div variants={{ hidden: { opacity: 0, y: 20 }, show: { opacity: 1, y: 0 } }}>\r\n {children}\r\n </motion.div>\r\n)\r\n\r\n// New Components requested by user\r\n\r\nexport interface TypingAnimationProps {\r\n /**\n * Описание для texts\n * @default undefined\n */\n texts: string[];\r\n /**\n * Описание для speed\n * @default undefined\n */\n speed?: number;\r\n /**\n * Описание для deleteSpeed\n * @default undefined\n */\n deleteSpeed?: number;\r\n /**\n * Описание для pauseDuration\n * @default undefined\n */\n pauseDuration?: number;\r\n /**\n * Описание для loop\n * @default undefined\n */\n loop?: boolean;\r\n /**\n * Описание для cursor\n * @default undefined\n */\n cursor?: boolean;\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string;\r\n}\r\n\r\nexport function TypingAnimation({\r\n texts,\r\n speed = 100,\r\n deleteSpeed = 50,\r\n pauseDuration = 2000,\r\n loop = true,\r\n cursor = true,\r\n className,\r\n}: TypingAnimationProps) {\r\n const [textIndex, setTextIndex] = React.useState(0);\r\n const [currentText, setCurrentText] = React.useState(\"\");\r\n const [isDeleting, setIsDeleting] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n if (!texts || texts.length === 0) return;\r\n\r\n let timer: any;\r\n\r\n const handleTyping = () => {\r\n const fullText = texts[textIndex];\r\n if (!fullText) return;\r\n\r\n if (!isDeleting) {\r\n const nextText = fullText.slice(0, currentText.length + 1);\r\n setCurrentText(nextText);\r\n \r\n if (nextText === fullText) {\r\n if (loop || textIndex < texts.length - 1) {\r\n timer = setTimeout(() => {\r\n setIsDeleting(true);\r\n }, pauseDuration);\r\n }\r\n } else {\r\n timer = setTimeout(handleTyping, speed);\r\n }\r\n } else {\r\n const nextText = fullText.slice(0, currentText.length - 1);\r\n setCurrentText(nextText);\r\n \r\n if (nextText === \"\") {\r\n setIsDeleting(false);\r\n setTextIndex((prevIndex) => {\r\n const nextIndex = prevIndex + 1;\r\n if (nextIndex >= texts.length) {\r\n return loop ? 0 : prevIndex;\r\n }\r\n return nextIndex;\r\n });\r\n } else {\r\n timer = setTimeout(handleTyping, deleteSpeed);\r\n }\r\n }\r\n };\r\n\r\n timer = setTimeout(handleTyping, isDeleting ? deleteSpeed : speed);\r\n\r\n return () => clearTimeout(timer);\r\n }, [currentText, isDeleting, textIndex, texts, speed, deleteSpeed, pauseDuration, loop]);\r\n\r\n return (\r\n <span className={cn(\"inline-flex items-center\", className)}>\r\n <span>{currentText}</span>\r\n {cursor && (\r\n <motion.span\r\n animate={{ opacity: [1, 0, 1] }}\r\n transition={{ duration: 0.8, repeat: Infinity, ease: \"linear\" }}\r\n className=\"ml-0.5 inline-block w-[2px] h-[1.1em] bg-current font-normal align-middle\"\r\n >\r\n |\r\n </motion.span>\r\n )}\r\n </span>\r\n );\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, useInView, HTMLMotionProps } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n/**\r\n * Props for the BlurFade component\r\n */\r\nexport interface BlurFadeProps extends Omit<HTMLMotionProps<\"div\">, \"ref\"> {\r\n /**\r\n * Children components to animate\r\n */\r\n children: React.ReactNode\r\n /**\r\n * Animation delay in seconds\r\n * @default 0\r\n */\r\n delay?: number\r\n /**\r\n * Animation duration in seconds\r\n * @default 0.4\r\n */\r\n duration?: number\r\n /**\r\n * Y axis offset translation on start\r\n * @default 6\r\n */\r\n yOffset?: number\r\n /**\r\n * Start blur level (CSS blur radius value)\r\n * @default \"4px\"\r\n */\r\n blur?: string\r\n /**\r\n * Additional CSS classes\r\n */\r\n className?: string\r\n /**\r\n * Whether to animate based on viewport entry\r\n * @default true\r\n */\r\n inView?: boolean\r\n /**\r\n * Trigger animation only once\r\n * @default true\r\n */\r\n once?: boolean\r\n /**\r\n * Viewport margin threshold for in-view trigger\r\n * @default \"-50px\"\r\n */\r\n margin?: string\r\n}\r\n\r\n/**\r\n * BlurFade animates elements with a smooth blur and fade transition as they enter the viewport.\r\n */\r\nconst BlurFade = React.forwardRef<HTMLDivElement, BlurFadeProps>(\r\n (\r\n {\r\n children,\r\n delay = 0,\r\n duration = 0.4,\r\n yOffset = 6,\r\n blur = \"4px\",\r\n className,\r\n inView = true,\r\n once = true,\r\n margin = \"-50px\",\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const localRef = React.useRef<HTMLDivElement>(null)\r\n const combinedRef = (ref as React.RefObject<HTMLDivElement>) || localRef\r\n \r\n // Check if element is in view (if requested)\r\n type UseInViewOptions = NonNullable<Parameters<typeof useInView>[1]>\r\n const isInView = useInView(combinedRef, { once, margin: margin as UseInViewOptions[\"margin\"] })\r\n const animateState = inView ? (isInView ? \"visible\" : \"hidden\") : \"visible\"\r\n\r\n const variants = {\r\n hidden: {\r\n y: yOffset,\r\n opacity: 0,\r\n filter: `blur(${blur})`,\r\n },\r\n visible: {\r\n y: 0,\r\n opacity: 1,\r\n filter: \"blur(0px)\",\r\n },\r\n }\r\n\r\n return (\r\n <motion.div\r\n ref={combinedRef}\r\n initial=\"hidden\"\r\n animate={animateState}\r\n variants={variants}\r\n transition={{\r\n delay,\r\n duration,\r\n ease: [0.25, 0.4, 0.25, 1.0], // smooth cubic-bezier physics feel\r\n }}\r\n className={cn(\"w-full\", className)}\r\n {...props}\r\n >\r\n {children}\r\n </motion.div>\r\n )\r\n }\r\n)\r\n\r\nBlurFade.displayName = \"BlurFade\"\r\n\r\nexport { BlurFade }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n/**\r\n * Props for the Marquee component\r\n */\r\nexport interface MarqueeProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * Content of the marquee\r\n */\r\n children: React.ReactNode\r\n /**\r\n * Speed of the scrolling animation (higher is faster, represented in pixels per second or duration)\r\n * @default 40\r\n */\r\n speed?: number\r\n /**\r\n * Direction of the scrolling\r\n * @default \"left\"\r\n */\r\n direction?: \"left\" | \"right\"\r\n /**\r\n * Whether to pause scrolling when hovering\r\n * @default true\r\n */\r\n pauseOnHover?: boolean\r\n /**\r\n * Gap between items in pixels\r\n * @default 16\r\n */\r\n gap?: number\r\n /**\r\n * Additional CSS classes\r\n */\r\n className?: string\r\n}\r\n\r\n/**\r\n * Marquee component provides a smooth infinite auto-scrolling marquee of children.\r\n */\r\nconst Marquee = React.forwardRef<HTMLDivElement, MarqueeProps>(\r\n (\r\n {\r\n children,\r\n speed = 40,\r\n direction = \"left\",\r\n pauseOnHover = true,\r\n gap = 16,\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n // We calculate a duration based on speed\r\n const duration = 1000 / speed\r\n\r\n const [isHovered, setIsHovered] = React.useState(false)\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(\"group flex overflow-hidden p-2 select-none w-full\", className)}\r\n onMouseEnter={() => pauseOnHover && setIsHovered(true)}\r\n onMouseLeave={() => pauseOnHover && setIsHovered(false)}\r\n {...props}\r\n >\r\n <motion.div\r\n className=\"flex shrink-0 min-w-full justify-around items-center\"\r\n style={{ gap: `${gap}px` }}\r\n animate={{\r\n x: direction === \"left\" ? [0, `calc(-50% - ${gap / 2}px)`] : [`calc(-50% - ${gap / 2}px)`, 0],\r\n }}\r\n transition={{\r\n repeat: Infinity,\r\n repeatType: \"loop\",\r\n duration: duration,\r\n ease: \"linear\",\r\n }}\r\n // Dynamic control of pause using dynamic style mapping or animation controls\r\n // For Framer Motion, we can animate play state by using values or simple CSS animation playState\r\n >\r\n {/* We duplicate the children array multiple times to ensure seamless infinite overflow */}\r\n <div className=\"flex shrink-0 items-center justify-around\" style={{ gap: `${gap}px`, animationPlayState: isHovered ? 'paused' : 'running' }}>\r\n {children}\r\n </div>\r\n <div className=\"flex shrink-0 items-center justify-around\" style={{ gap: `${gap}px`, animationPlayState: isHovered ? 'paused' : 'running' }}>\r\n {children}\r\n </div>\r\n </motion.div>\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nMarquee.displayName = \"Marquee\"\r\n\r\nexport { Marquee }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, useMotionValue, useSpring, useTransform, useInView } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n/**\r\n * Props for the NumberTicker component\r\n */\r\nexport interface NumberTickerProps extends React.HTMLAttributes<HTMLSpanElement> {\r\n /**\r\n * The target numeric value to animate to\r\n */\r\n value: number\r\n /**\r\n * Duration of the animation in seconds\r\n * @default 2\r\n */\r\n duration?: number\r\n /**\r\n * Optional prefix to display before the number\r\n */\r\n prefix?: string\r\n /**\r\n * Optional suffix to display after the number\r\n */\r\n suffix?: string\r\n /**\r\n * Number of decimal places to show\r\n * @default 0\r\n */\r\n decimals?: number\r\n /**\r\n * Additional CSS classes\r\n */\r\n className?: string\r\n}\r\n\r\n/**\r\n * NumberTicker component animates a number from 0 to value when it enters the viewport.\r\n */\r\nconst NumberTicker = React.forwardRef<HTMLSpanElement, NumberTickerProps>(\r\n (\r\n {\r\n value,\r\n duration = 2,\r\n prefix = \"\",\r\n suffix = \"\",\r\n decimals = 0,\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const elementRef = React.useRef<HTMLSpanElement>(null)\r\n const combinedRef = (ref as React.RefObject<HTMLSpanElement>) || elementRef\r\n const inView = useInView(combinedRef, { once: true, margin: \"0px 0px -50px 0px\" })\r\n\r\n // Motion value initialized to 0\r\n const motionValue = useMotionValue(0)\r\n\r\n // Spring animation for natural spring physics feel\r\n const springValue = useSpring(motionValue, {\r\n stiffness: 70,\r\n damping: 15,\r\n mass: 1,\r\n })\r\n\r\n // Transform spring output to clean formatted string\r\n const displayValue = useTransform(springValue, (latest) => {\r\n const formatted = Number(latest.toFixed(decimals))\r\n return formatted.toLocaleString(\"en-US\", {\r\n minimumFractionDigits: decimals,\r\n maximumFractionDigits: decimals,\r\n })\r\n })\r\n\r\n React.useEffect(() => {\r\n if (inView) {\r\n // Animate the motion value from 0 to the target value\r\n const animation = motionValue.set(value)\r\n }\r\n }, [inView, value, motionValue])\r\n\r\n return (\r\n <span\r\n ref={combinedRef}\r\n className={cn(\r\n \"inline-block tabular-nums text-foreground tracking-tight\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {prefix}\r\n <motion.span>{displayValue}</motion.span>\r\n {suffix}\r\n </span>\r\n )\r\n }\r\n)\r\n\r\nNumberTicker.displayName = \"NumberTicker\"\r\n\r\nexport { NumberTicker }\r\n\r\nexport interface AnimatedNumberProps {\r\n value: number\r\n className?: string\r\n duration?: number\r\n formatFn?: (v: number) => string\r\n}\r\n\r\nexport function AnimatedNumber({\r\n value,\r\n className,\r\n duration = 0.5,\r\n formatFn,\r\n}: AnimatedNumberProps) {\r\n const motionValue = useMotionValue(value)\r\n const springValue = useSpring(motionValue, {\r\n stiffness: 100,\r\n damping: 15,\r\n })\r\n\r\n React.useEffect(() => {\r\n motionValue.set(value)\r\n }, [value, motionValue])\r\n\r\n const [displayValue, setDisplayValue] = React.useState(\r\n formatFn ? formatFn(value) : String(value)\r\n )\r\n\r\n React.useEffect(() => {\r\n const unsubscribe = springValue.on(\"change\", (latest) => {\r\n if (formatFn) {\r\n setDisplayValue(formatFn(latest))\r\n } else {\r\n setDisplayValue(String(Math.round(latest)))\r\n }\r\n })\r\n return () => unsubscribe()\r\n }, [springValue, formatFn])\r\n\r\n return (\r\n <span className={cn(\"inline-block tabular-nums\", className)}>\r\n {displayValue}\r\n </span>\r\n )\r\n}\r\n\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { Star, Heart, ThumbsUp } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n/**\r\n * Props for the Rating component\r\n */\r\nexport interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onChange\"> {\r\n /**\r\n * Current rating value\r\n */\r\n value: number\r\n /**\r\n * Maximum rating count\r\n * @default 5\r\n */\r\n max?: number\r\n /**\r\n * Callback fired when rating value is clicked\r\n */\r\n onChange?: (value: number) => void\r\n /**\r\n * If true, rating is display-only\r\n * @default false\r\n */\r\n readonly?: boolean\r\n /**\r\n * Size of rating icons\r\n * @default \"md\"\r\n */\r\n size?: \"sm\" | \"md\" | \"lg\"\r\n /**\r\n * Visual icon choice\r\n * @default \"star\"\r\n */\r\n icon?: \"star\" | \"heart\" | \"thumb\"\r\n /**\r\n * Additional CSS classes\r\n */\r\n className?: string\r\n}\r\n\r\n/**\r\n * Rating component provides a premium selection input for score ratings (Stars, Hearts, Thumbs).\r\n */\r\nconst Rating = React.forwardRef<HTMLDivElement, RatingProps>(\r\n (\r\n {\r\n value,\r\n max = 5,\r\n onChange,\r\n readonly = false,\r\n size = \"md\",\r\n icon = \"star\",\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [hoverValue, setHoverValue] = React.useState<number | null>(null)\r\n const activeValue = hoverValue !== null ? hoverValue : value\r\n\r\n const sizeClasses = {\r\n sm: \"h-4 w-4\",\r\n md: \"h-6 w-6\",\r\n lg: \"h-8 w-8\",\r\n }\r\n\r\n const getIcon = () => {\r\n switch (icon) {\r\n case \"heart\":\r\n return Heart\r\n case \"thumb\":\r\n return ThumbsUp\r\n case \"star\":\r\n default:\r\n return Star\r\n }\r\n }\r\n\r\n const RatingIcon = getIcon()\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent, idx: number) => {\r\n if (readonly || !onChange) return\r\n\r\n if (e.key === \"ArrowRight\" || e.key === \"ArrowUp\") {\r\n e.preventDefault()\r\n onChange(Math.min(max, value + 1))\r\n } else if (e.key === \"ArrowLeft\" || e.key === \"ArrowDown\") {\r\n e.preventDefault()\r\n onChange(Math.max(1, value - 1))\r\n } else if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault()\r\n onChange(idx)\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n role=\"slider\"\r\n aria-valuenow={value}\r\n aria-valuemin={1}\r\n aria-valuemax={max}\r\n className={cn(\r\n \"flex items-center gap-1.5\",\r\n readonly ? \"cursor-default\" : \"cursor-pointer\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {Array.from({ length: max }).map((_, i) => {\r\n const indexValue = i + 1\r\n const isFilled = indexValue <= activeValue\r\n const isActuallySelected = indexValue <= value\r\n\r\n return (\r\n <motion.button\r\n key={i}\r\n type=\"button\"\r\n disabled={readonly}\r\n onClick={() => onChange?.(indexValue)}\r\n onMouseEnter={() => !readonly && setHoverValue(indexValue)}\r\n onMouseLeave={() => !readonly && setHoverValue(null)}\r\n onKeyDown={(e) => handleKeyDown(e, indexValue)}\r\n className={cn(\r\n \"p-0.5 outline-none rounded-md transition-colors focus-visible:ring-2 focus-visible:ring-primary/40 focus-visible:ring-offset-1 focus-visible:bg-muted/35\",\r\n readonly ? \"pointer-events-none\" : \"\"\r\n )}\r\n whileHover={readonly ? {} : { scale: 1.15 }}\r\n whileTap={readonly ? {} : { scale: 0.9 }}\r\n transition={{ type: \"spring\", stiffness: 400, damping: 15 }}\r\n >\r\n <RatingIcon\r\n className={cn(\r\n sizeClasses[size],\r\n \"transition-all duration-200 stroke-[1.8]\",\r\n isFilled\r\n ? \"fill-primary text-primary drop-shadow-[0_0_8px_rgba(var(--primary-rgb),0.25)]\"\r\n : \"text-muted-foreground/40 hover:text-muted-foreground/60\"\r\n )}\r\n />\r\n </motion.button>\r\n )\r\n })}\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nRating.displayName = \"Rating\"\r\n\r\nexport { Rating }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { UploadCloud, File, X, AlertCircle } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { Button } from \"./button\"\r\n\r\n/**\r\n * Props for the FileUpload component\r\n */\r\nexport interface FileUploadProps extends Omit<React.HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\r\n /**\r\n * Callback fired when files are successfully validated and selected\r\n */\r\n onUpload: (files: File[]) => void\r\n /**\r\n * Accepted mime types or extensions, e.g. \"image/*,application/pdf\"\r\n */\r\n accept?: string\r\n /**\r\n * Maximum file size in bytes\r\n * @default 10 * 1024 * 1024 (10MB)\r\n */\r\n maxSize?: number\r\n /**\r\n * Whether to allow multiple file uploads\r\n * @default false\r\n */\r\n multiple?: boolean\r\n /**\r\n * Layout visual style\r\n * @default \"default\"\r\n */\r\n variant?: \"default\" | \"dropzone\" | \"button\"\r\n /**\r\n * Additional CSS classes\r\n */\r\n className?: string\r\n}\r\n\r\n/**\r\n * FileUpload component manages local file selection, validation, drag-and-drop state, and displays current uploads.\r\n */\r\nconst FileUpload = React.forwardRef<HTMLDivElement, FileUploadProps>(\r\n (\r\n {\r\n onUpload,\r\n accept,\r\n maxSize = 10 * 1024 * 1024,\r\n multiple = false,\r\n variant = \"default\",\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const fileInputRef = React.useRef<HTMLInputElement>(null)\r\n const [dragActive, setDragActive] = React.useState(false)\r\n const [selectedFiles, setSelectedFiles] = React.useState<File[]>([])\r\n const [error, setError] = React.useState<string | null>(null)\r\n\r\n const handleFiles = (files: FileList | null) => {\r\n if (!files) return\r\n setError(null)\r\n const validFiles: File[] = []\r\n \r\n const fileArray = Array.from(files)\r\n const limit = multiple ? fileArray.length : 1\r\n const filesToProcess = fileArray.slice(0, limit)\r\n\r\n for (const file of filesToProcess) {\r\n // Validate size\r\n if (file.size > maxSize) {\r\n setError(`File \"${file.name}\" exceeds the maximum allowed size of ${(maxSize / (1024 * 1024)).toFixed(0)}MB.`)\r\n return\r\n }\r\n\r\n // Validate accept\r\n if (accept) {\r\n const acceptedTypes = accept.split(\",\").map(t => t.trim())\r\n const isAccepted = acceptedTypes.some((type) => {\r\n if (type.startsWith(\".\")) {\r\n return file.name.endsWith(type)\r\n }\r\n if (type.endsWith(\"/*\")) {\r\n const baseType = type.split(\"/\")[0]\r\n return file.type.startsWith(`${baseType}/`)\r\n }\r\n return file.type === type\r\n })\r\n\r\n if (!isAccepted) {\r\n setError(`File type for \"${file.name}\" is not supported.`)\r\n return\r\n }\r\n }\r\n\r\n validFiles.push(file)\r\n }\r\n\r\n if (validFiles.length > 0) {\r\n let updated: File[]\r\n if (multiple) {\r\n updated = [...selectedFiles, ...validFiles]\r\n } else {\r\n updated = validFiles\r\n }\r\n setSelectedFiles(updated)\r\n onUpload(updated)\r\n }\r\n }\r\n\r\n const handleDrag = (e: React.DragEvent) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n if (e.type === \"dragenter\" || e.type === \"dragover\") {\r\n setDragActive(true)\r\n } else if (e.type === \"dragleave\") {\r\n setDragActive(false)\r\n }\r\n }\r\n\r\n const handleDrop = (e: React.DragEvent) => {\r\n e.preventDefault()\r\n e.stopPropagation()\r\n setDragActive(false)\r\n if (e.dataTransfer.files && e.dataTransfer.files[0]) {\r\n handleFiles(e.dataTransfer.files)\r\n }\r\n }\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n e.preventDefault()\r\n if (e.target.files && e.target.files[0]) {\r\n handleFiles(e.target.files)\r\n }\r\n }\r\n\r\n const removeFile = (idx: number) => {\r\n const updated = selectedFiles.filter((_, i) => i !== idx)\r\n setSelectedFiles(updated)\r\n onUpload(updated)\r\n }\r\n\r\n const triggerFileInput = () => {\r\n fileInputRef.current?.click()\r\n }\r\n\r\n return (\r\n <div ref={ref} className={cn(\"w-full space-y-4\", className)} {...props}>\r\n <input\r\n ref={fileInputRef}\r\n type=\"file\"\r\n accept={accept}\r\n multiple={multiple}\r\n onChange={handleChange}\r\n className=\"hidden\"\r\n />\r\n\r\n {variant === \"button\" ? (\r\n <Button variant=\"default\" onClick={triggerFileInput} className=\"flex items-center gap-2\">\r\n <UploadCloud className=\"h-4 w-4\" />\r\n <span>Upload File{multiple ? \"s\" : \"\"}</span>\r\n </Button>\r\n ) : (\r\n <motion.div\r\n onDragEnter={handleDrag}\r\n onDragOver={handleDrag}\r\n onDragLeave={handleDrag}\r\n onDrop={handleDrop}\r\n onClick={triggerFileInput}\r\n className={cn(\r\n \"relative flex flex-col items-center justify-center border-2 border-dashed rounded-2xl cursor-pointer transition-all duration-300 p-6 text-center select-none bg-muted/5\",\r\n dragActive\r\n ? \"border-primary bg-primary/5 scale-[1.01]\"\r\n : \"border-border hover:border-muted-foreground/40 hover:bg-muted/10\",\r\n variant === \"dropzone\" ? \"min-h-[220px]\" : \"min-h-[140px]\"\r\n )}\r\n whileTap={{ scale: 0.99 }}\r\n >\r\n <div className=\"flex flex-col items-center justify-center gap-3\">\r\n <div className=\"p-3 bg-muted/40 rounded-full border border-border group-hover:scale-110 transition-transform\">\r\n <UploadCloud className=\"h-6 w-6 text-muted-foreground\" />\r\n </div>\r\n <div className=\"space-y-1\">\r\n <p className=\"text-sm font-semibold text-foreground\">\r\n Click to upload or drag & drop\r\n </p>\r\n <p className=\"text-xs text-muted-foreground\">\r\n {accept ? `Supports: ${accept}` : \"All files supported\"} (Max: {(maxSize / (1024 * 1024)).toFixed(0)}MB)\r\n </p>\r\n </div>\r\n </div>\r\n </motion.div>\r\n )}\r\n\r\n {/* Error messaging */}\r\n <AnimatePresence mode=\"wait\">\r\n {error && (\r\n <motion.div\r\n initial={{ opacity: 0, y: -5 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n exit={{ opacity: 0, y: -5 }}\r\n className=\"flex items-center gap-2 text-xs text-destructive bg-destructive/10 border border-destructive/20 rounded-lg p-3\"\r\n >\r\n <AlertCircle className=\"h-4 w-4 shrink-0\" />\r\n <span>{error}</span>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n\r\n {/* Selected file preview tags */}\r\n <AnimatePresence>\r\n {selectedFiles.length > 0 && (\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n className=\"border border-border/60 rounded-xl divide-y divide-border/40 overflow-hidden\"\r\n >\r\n {selectedFiles.map((file, idx) => (\r\n <motion.div\r\n key={file.name + idx}\r\n initial={{ opacity: 0, height: 0 }}\r\n animate={{ opacity: 1, height: \"auto\" }}\r\n exit={{ opacity: 0, height: 0 }}\r\n className=\"flex items-center justify-between p-3 text-sm bg-card\"\r\n >\r\n <div className=\"flex items-center gap-2.5 min-w-0\">\r\n <File className=\"h-4 w-4 text-primary shrink-0\" />\r\n <div className=\"min-w-0 flex flex-col text-left\">\r\n <span className=\"font-medium text-foreground truncate max-w-[280px]\">\r\n {file.name}\r\n </span>\r\n <span className=\"text-[10px] text-muted-foreground\">\r\n {(file.size / 1024).toFixed(0)} KB\r\n </span>\r\n </div>\r\n </div>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n onClick={(e) => {\r\n e.stopPropagation()\r\n removeFile(idx)\r\n }}\r\n className=\"h-7 w-7 rounded-lg text-muted-foreground/60 hover:text-foreground\"\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </Button>\r\n </motion.div>\r\n ))}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nFileUpload.displayName = \"FileUpload\"\r\n\r\nexport { FileUpload }\r\n","'use client';\r\n\r\nimport * as React from 'react';\r\nimport { cva, type VariantProps } from 'class-variance-authority';\r\nimport { motion, AnimatePresence } from 'framer-motion';\r\nimport { cn } from '../utils/cn';\r\n\r\n// Define Table styling context to propagate values to children (th, td, tr)\r\ninterface TableContextProps {\r\n /**\n * Описание для variant\n * @default undefined\n */\n variant: 'default' | 'glass' | 'neon' | 'minimal' | 'cyberpunk' | 'aurora' | 'gradient';\r\n /**\n * Описание для density\n * @default undefined\n */\n density: 'compact' | 'normal' | 'spacious';\r\n /**\n * Описание для hoverable\n * @default undefined\n */\n hoverable: boolean;\r\n /**\n * Описание для striped\n * @default undefined\n */\n striped: boolean;\r\n /**\n * Описание для bordered\n * @default undefined\n */\n bordered: boolean;\r\n /**\n * Описание для animateRows\n * @default undefined\n */\n animateRows?: boolean;\r\n}\r\n\r\nconst TableContext = React.createContext<TableContextProps>({\r\n variant: 'default',\r\n density: 'normal',\r\n hoverable: true,\r\n striped: false,\r\n bordered: false,\r\n animateRows: false,\r\n});\r\n\r\nconst tableContainerVariants = cva(\r\n \"w-full overflow-auto relative transition-all duration-300\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"bg-card border border-border text-card-foreground rounded-2xl shadow-sm\",\r\n glass: \"glass bg-white/[0.01] dark:bg-black/10 border border-white/10 dark:border-white/5 rounded-2xl shadow-xl\",\r\n neon: \"bg-black/40 border border-purple-500/30 text-white rounded-2xl shadow-[0_0_25px_rgba(139,92,246,0.15)]\",\r\n minimal: \"bg-transparent border-0 border-b border-border/50 text-foreground rounded-none shadow-none\",\r\n cyberpunk: \"bg-black border-2 border-green-500/50 text-green-400 font-mono rounded-none shadow-[0_0_15px_rgba(34,197,94,0.15)]\",\r\n aurora: \"bg-card/25 backdrop-blur-xl border border-pink-500/10 text-card-foreground rounded-2xl shadow-xl\",\r\n gradient: \"bg-gradient-to-b from-card to-muted/20 border border-border/80 text-foreground rounded-2xl shadow-md\",\r\n }\r\n },\r\n defaultVariants: {\r\n variant: \"default\"\r\n }\r\n }\r\n);\r\n\r\nexport interface TableProps\r\n extends React.HTMLAttributes<HTMLTableElement>,\r\n VariantProps<typeof tableContainerVariants> {\r\n /**\n * Описание для density\n * @default undefined\n */\n density?: 'compact' | 'normal' | 'spacious';\r\n /**\n * Описание для hoverable\n * @default undefined\n */\n hoverable?: boolean;\r\n /**\n * Описание для striped\n * @default undefined\n */\n striped?: boolean;\r\n /**\n * Описание для bordered\n * @default undefined\n */\n bordered?: boolean;\r\n /**\n * Описание для animateRows\n * @default undefined\n */\n animateRows?: boolean;\r\n /**\n * Описание для containerClassName\n * @default undefined\n */\n containerClassName?: string;\r\n}\r\n\r\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\r\n (\r\n {\r\n className,\r\n containerClassName,\r\n variant = 'default',\r\n density = 'normal',\r\n hoverable = true,\r\n striped = false,\r\n bordered = false,\r\n animateRows = false,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n return (\r\n <TableContext.Provider value={{ \r\n variant: (variant === null || variant === undefined) ? 'default' : variant, \r\n density: (density === null || density === undefined) ? 'normal' : density, \r\n hoverable, \r\n striped, \r\n bordered, \r\n animateRows \r\n }}>\r\n <div className={cn(tableContainerVariants({ variant }), containerClassName)}>\r\n {/* Cyberpunk corner accents */}\r\n {variant === 'cyberpunk' && (\r\n <>\r\n <div className=\"absolute top-0 left-0 w-2 h-2 border-t-2 border-l-2 border-green-500\" />\r\n <div className=\"absolute top-0 right-0 w-2 h-2 border-t-2 border-r-2 border-green-500\" />\r\n <div className=\"absolute bottom-0 left-0 w-2 h-2 border-b-2 border-l-2 border-green-500\" />\r\n <div className=\"absolute bottom-0 right-0 w-2 h-2 border-b-2 border-r-2 border-green-500\" />\r\n </>\r\n )}\r\n <table\r\n ref={ref}\r\n className={cn(\"w-full border-collapse text-left text-sm align-middle\", className)}\r\n {...props}\r\n >\r\n {children}\r\n </table>\r\n </div>\r\n </TableContext.Provider>\r\n );\r\n }\r\n);\r\nTable.displayName = 'Table';\r\n\r\nconst TableHeader = React.forwardRef<\r\n HTMLTableSectionElement,\r\n React.HTMLAttributes<HTMLTableSectionElement>\r\n>(({ className, children, ...props }, ref) => {\r\n const { variant } = React.useContext(TableContext);\r\n\r\n const headerClass = cn(\r\n \"border-b border-border/80 font-medium text-muted-foreground/95 select-none\",\r\n variant === 'cyberpunk' && \"bg-green-950/40 border-b-2 border-green-500/60 text-green-300 font-bold uppercase tracking-wider\",\r\n variant === 'neon' && \"bg-purple-950/20 border-b border-purple-500/40 text-purple-200 tracking-wide\",\r\n variant === 'glass' && \"bg-white/5 dark:bg-white/3 border-b border-white/10 text-foreground/80\",\r\n variant === 'aurora' && \"bg-gradient-to-r from-pink-500/10 via-purple-500/10 to-indigo-500/10 border-b border-purple-500/20 text-purple-300\",\r\n variant === 'gradient' && \"bg-gradient-to-r from-primary/10 to-indigo-500/5 border-b border-border/80 text-foreground/90\",\r\n className\r\n );\r\n\r\n return (\r\n <thead ref={ref} className={headerClass} {...props}>\r\n {children}\r\n </thead>\r\n );\r\n});\r\nTableHeader.displayName = 'TableHeader';\r\n\r\nconst TableBody = React.forwardRef<\r\n HTMLTableSectionElement,\r\n React.HTMLAttributes<HTMLTableSectionElement>\r\n>(({ className, children, ...props }, ref) => {\r\n const { variant } = React.useContext(TableContext);\r\n\r\n const bodyClass = cn(\r\n \"divide-y divide-border/40\",\r\n variant === 'minimal' && \"divide-y divide-border/20\",\r\n variant === 'cyberpunk' && \"divide-y divide-green-500/30\",\r\n className\r\n );\r\n\r\n return (\r\n <tbody ref={ref} className={bodyClass} {...props}>\r\n {children}\r\n </tbody>\r\n );\r\n});\r\nTableBody.displayName = 'TableBody';\r\n\r\nconst TableFooter = React.forwardRef<\r\n HTMLTableSectionElement,\r\n React.HTMLAttributes<HTMLTableSectionElement>\r\n>(({ className, ...props }, ref) => {\r\n const { variant } = React.useContext(TableContext);\r\n return (\r\n <tfoot\r\n ref={ref}\r\n className={cn(\r\n \"border-t bg-muted/50 font-medium text-muted-foreground\",\r\n variant === 'cyberpunk' && \"bg-green-950/20 border-t-2 border-green-500/40 text-green-300 font-mono\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nTableFooter.displayName = 'TableFooter';\r\n\r\nexport interface TableRowProps extends React.HTMLAttributes<HTMLTableRowElement> {\r\n /**\n * Описание для index\n * @default undefined\n */\n index?: number;\r\n}\r\n\r\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\r\n ({ className, index = 0, ...props }, ref) => {\r\n const { variant, hoverable, striped, animateRows } = React.useContext(TableContext);\r\n\r\n const rowClass = cn(\r\n \"transition-all duration-200 border-b border-border/10 last:border-b-0\",\r\n // Striped logic\r\n striped && {\r\n \"odd:bg-muted/15\": ['default', 'gradient', 'minimal', 'aurora'].includes(variant),\r\n \"odd:bg-white/[0.02] dark:odd:bg-white/[0.01]\": variant === 'glass',\r\n \"odd:bg-purple-500/2\": variant === 'neon',\r\n \"odd:bg-green-950/20\": variant === 'cyberpunk',\r\n },\r\n // Hover logic\r\n hoverable && {\r\n \"hover:bg-muted/40\": ['default', 'minimal'].includes(variant),\r\n \"hover:bg-white/5 dark:hover:bg-white/5 hover:backdrop-blur-md\": variant === 'glass',\r\n \"hover:bg-purple-500/5 hover:shadow-[inset_0_0_10px_rgba(139,92,246,0.05)]\": variant === 'neon',\r\n \"hover:bg-green-500/10 hover:text-green-300\": variant === 'cyberpunk',\r\n \"hover:bg-pink-500/5 hover:backdrop-blur-md\": variant === 'aurora',\r\n \"hover:bg-indigo-500/5\": variant === 'gradient',\r\n },\r\n className\r\n );\r\n\r\n if (animateRows) {\r\n return (\r\n <motion.tr\r\n ref={ref as any}\r\n initial={{ opacity: 0, y: 12 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{\r\n type: 'spring',\r\n stiffness: 260,\r\n damping: 24,\r\n delay: index * 0.05,\r\n }}\r\n className={rowClass}\r\n {...(props as any)}\r\n />\r\n );\r\n }\r\n\r\n return <tr ref={ref} className={rowClass} {...props} />;\r\n }\r\n);\r\nTableRow.displayName = 'TableRow';\r\n\r\nconst TableHead = React.forwardRef<\r\n HTMLTableCellElement,\r\n React.ThHTMLAttributes<HTMLTableCellElement>\r\n>(({ className, ...props }, ref) => {\r\n const { density, bordered, variant } = React.useContext(TableContext);\r\n\r\n const headClass = cn(\r\n \"font-semibold select-none align-middle text-muted-foreground/80\",\r\n {\r\n \"px-3 py-2 text-xs\": density === 'compact',\r\n \"px-4 py-3.5 text-sm\": density === 'normal',\r\n \"px-6 py-5 text-base\": density === 'spacious',\r\n \"border-r border-border/40 last:border-r-0\": bordered,\r\n \"border-r border-green-500/30 last:border-r-0\": bordered && variant === 'cyberpunk',\r\n \"border-r border-purple-500/20 last:border-r-0\": bordered && variant === 'neon',\r\n },\r\n variant === 'cyberpunk' && \"text-green-300 font-mono tracking-wider\",\r\n className\r\n );\r\n\r\n return <th ref={ref} className={headClass} {...props} />;\r\n});\r\nTableHead.displayName = 'TableHead';\r\n\r\nconst TableCell = React.forwardRef<\r\n HTMLTableCellElement,\r\n React.TdHTMLAttributes<HTMLTableCellElement>\r\n>(({ className, ...props }, ref) => {\r\n const { density, bordered, variant } = React.useContext(TableContext);\r\n\r\n const cellClass = cn(\r\n \"align-middle transition-colors\",\r\n {\r\n \"px-3 py-2 text-xs\": density === 'compact',\r\n \"px-4 py-3 text-sm\": density === 'normal',\r\n \"px-6 py-4.5 text-base\": density === 'spacious',\r\n \"border-r border-border/40 last:border-r-0\": bordered,\r\n \"border-r border-green-500/20 last:border-r-0\": bordered && variant === 'cyberpunk',\r\n \"border-r border-purple-500/20 last:border-r-0\": bordered && variant === 'neon',\r\n },\r\n variant === 'cyberpunk' && \"border-green-500/20 text-green-400 font-mono\",\r\n className\r\n );\r\n\r\n return <td ref={ref} className={cellClass} {...props} />;\r\n});\r\nTableCell.displayName = 'TableCell';\r\n\r\nconst TableCaption = React.forwardRef<\r\n HTMLTableCaptionElement,\r\n React.HTMLAttributes<HTMLTableCaptionElement>\r\n>(({ className, ...props }, ref) => {\r\n const { variant } = React.useContext(TableContext);\r\n return (\r\n <caption\r\n ref={ref}\r\n className={cn(\r\n \"mt-4 text-xs text-muted-foreground/60 italic text-center pb-3\",\r\n variant === 'cyberpunk' && \"text-green-500/50 font-mono uppercase tracking-widest\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nTableCaption.displayName = 'TableCaption';\r\n\r\n// ━━━ High-Level Customizable Table Component ━━━\r\nexport interface CustomizableTableProps extends TableProps {\r\n /**\n * Описание для headers\n * @default undefined\n */\n headers: string[];\r\n /**\n * Описание для rows\n * @default undefined\n */\n rows: React.ReactNode[][];\r\n /**\n * Описание для caption\n * @default undefined\n */\n caption?: string;\n}\n\nexport const CustomizableTable: React.FC<CustomizableTableProps> = ({\n headers,\n rows,\n caption,\n ...props\n}) => {\n return (\n <Table {...props}>\n {caption && <TableCaption>{caption}</TableCaption>}\n <TableHeader>\n <TableRow>\n {headers.map((header, i) => (\n <TableHead key={i}>{header}</TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {rows.map((row, rowIndex) => (\n <TableRow key={rowIndex} index={rowIndex}>\n {row.map((cell, colIndex) => (\n <TableCell key={colIndex}>{cell}</TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n );\n};\n\nexport interface DataTableColumn<T = any> {\n header: React.ReactNode;\n accessorKey?: keyof T | string;\n cell?: (item: T, index: number) => React.ReactNode;\n className?: string;\n}\n\nexport interface DataTableProps<T = any> extends TableProps {\n data?: T[];\n columns?: DataTableColumn<T>[];\n searchable?: boolean;\n searchPlaceholder?: string;\n searchKey?: keyof T | string;\n pagination?: boolean;\n pageSize?: number;\n emptyMessage?: string;\n children?: React.ReactNode;\n}\n\nexport function DataTable<T = any>({\n data,\n columns,\n searchable = false,\n searchPlaceholder = \"Filter results...\",\n searchKey,\n pagination = false,\n pageSize = 5,\n emptyMessage = \"No results found.\",\n children,\n ...tableProps\n}: DataTableProps<T>) {\n const [search, setSearch] = React.useState('');\n const [page, setPage] = React.useState(1);\n\n if (children) {\n return <Table {...tableProps}>{children}</Table>;\n }\n\n const items = data || [];\n const filtered = items.filter((item: any) => {\n if (!search.trim()) return true;\n if (searchKey && item[searchKey] !== undefined) {\n return String(item[searchKey]).toLowerCase().includes(search.toLowerCase());\n }\n return Object.values(item).some((val) =>\n String(val).toLowerCase().includes(search.toLowerCase())\n );\n });\n\n const totalPages = Math.max(1, Math.ceil(filtered.length / pageSize));\n const displayed = pagination\n ? filtered.slice((page - 1) * pageSize, page * pageSize)\n : filtered;\n\n return (\n <div className=\"w-full space-y-3\">\n {searchable && (\n <div className=\"flex items-center justify-between gap-3\">\n <input\n type=\"text\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value);\n setPage(1);\n }}\n placeholder={searchPlaceholder}\n className=\"px-3.5 py-1.5 rounded-xl border border-border bg-background/60 text-xs text-foreground placeholder:text-muted-foreground outline-none focus:border-primary w-64 shadow-xs\"\n />\n </div>\n )}\n\n <Table {...tableProps}>\n {columns && (\n <TableHeader>\n <TableRow>\n {columns.map((col, idx) => (\n <TableHead key={idx} className={col.className}>\n {col.header}\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n )}\n <TableBody>\n {displayed.length > 0 ? (\n displayed.map((item, rowIdx) => (\n <TableRow key={rowIdx} index={rowIdx}>\n {columns?.map((col, colIdx) => (\n <TableCell key={colIdx} className={col.className}>\n {col.cell\n ? col.cell(item, rowIdx)\n : col.accessorKey\n ? String((item as any)[col.accessorKey] ?? '')\n : null}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns?.length || 1}\n className=\"text-center py-8 text-muted-foreground\"\n >\n {emptyMessage}\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n\n {pagination && totalPages > 1 && (\n <div className=\"flex items-center justify-between px-2 pt-1 text-xs text-muted-foreground\">\n <span>\n Page {page} of {totalPages} ({filtered.length} items)\n </span>\n <div className=\"flex gap-1.5\">\n <button\n type=\"button\"\n disabled={page <= 1}\n onClick={() => setPage((p) => Math.max(1, p - 1))}\n className=\"px-2.5 py-1 rounded-lg border border-border bg-card hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer\"\n >\n Previous\n </button>\n <button\n type=\"button\"\n disabled={page >= totalPages}\n onClick={() => setPage((p) => Math.min(totalPages, p + 1))}\n className=\"px-2.5 py-1 rounded-lg border border-border bg-card hover:bg-muted disabled:opacity-40 disabled:cursor-not-allowed cursor-pointer\"\n >\n Next\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n\n// Attach dot-notation to Table & DataTable\nexport const TableCompound = Object.assign(Table, {\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Head: TableHead,\n Cell: TableCell,\n Caption: TableCaption,\n});\n\nObject.assign(DataTable, {\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n Head: TableHead,\n Cell: TableCell,\n Caption: TableCaption,\n});\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableHead,\n TableCell,\n TableCaption,\n};\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { Check } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n/**\r\n * Representing a single step definition\r\n */\r\nexport interface StepItem {\r\n title: string\r\n description?: string\r\n icon?: React.ReactNode\r\n}\r\n\r\n/**\r\n * Props for the Stepper component\r\n */\r\nexport interface StepperProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * Array of step configurations\r\n */\r\n steps: StepItem[]\r\n /**\r\n * Index of the current active step (0-indexed)\r\n */\r\n currentStep: number\r\n /**\r\n * Orientation layout of the stepper\r\n * @default \"horizontal\"\r\n */\r\n orientation?: \"horizontal\" | \"vertical\"\r\n /**\r\n * Style variant of the stepper\r\n * @default \"default\"\r\n */\r\n variant?: \"default\" | \"circles\" | \"arrows\"\r\n /**\r\n * Additional CSS classes\r\n */\r\n className?: string\r\n}\r\n\r\n/**\r\n * Stepper component displays progress through a multi-step sequence with animations.\r\n */\r\nconst Stepper = React.forwardRef<HTMLDivElement, StepperProps>(\r\n (\r\n {\r\n steps,\r\n currentStep,\r\n orientation = \"horizontal\",\r\n variant = \"default\",\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const isVertical = orientation === \"vertical\"\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className={cn(\r\n \"flex w-full select-none\",\r\n isVertical ? \"flex-col space-y-4\" : \"flex-row items-center justify-between gap-4\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {steps.map((step, idx) => {\r\n const isCompleted = idx < currentStep\r\n const isActive = idx === currentStep\r\n const isLast = idx === steps.length - 1\r\n\r\n return (\r\n <React.Fragment key={idx}>\r\n <div\r\n className={cn(\r\n \"flex items-center gap-3 relative\",\r\n isVertical ? \"w-full\" : \"flex-1\"\r\n )}\r\n >\r\n {/* Visual indicator (number/circle/icon) */}\r\n <div\r\n className={cn(\r\n \"relative flex items-center justify-center rounded-full shrink-0 border-2 transition-all duration-300\",\r\n variant === \"arrows\" ? \"rounded-lg\" : \"\",\r\n isCompleted\r\n ? \"bg-primary border-primary text-primary-foreground shadow-lg shadow-primary/20\"\r\n : isActive\r\n ? \"border-primary text-primary bg-primary/5 scale-110 shadow-md shadow-primary/10\"\r\n : \"border-muted text-muted-foreground bg-muted/20\",\r\n variant === \"circles\" ? \"h-9 w-9 text-[13px] font-bold\" : \"h-8 w-8 text-[12px] font-medium\"\r\n )}\r\n >\r\n {isCompleted ? (\r\n <motion.div\r\n initial={{ scale: 0 }}\r\n animate={{ scale: 1 }}\r\n transition={{ type: \"spring\", stiffness: 300, damping: 20 }}\r\n >\r\n <Check className=\"h-4.5 w-4.5 stroke-[3]\" />\r\n </motion.div>\r\n ) : step.icon ? (\r\n step.icon\r\n ) : (\r\n <span>{idx + 1}</span>\r\n )}\r\n\r\n {/* Active pulsing effect */}\r\n {isActive && (\r\n <span className=\"absolute inset-0 rounded-full animate-ping bg-primary/20 -z-10\" />\r\n )}\r\n </div>\r\n\r\n {/* Text Labels */}\r\n <div className=\"flex flex-col text-left\">\r\n <span\r\n className={cn(\r\n \"text-sm font-semibold transition-colors duration-200\",\r\n isActive ? \"text-foreground\" : isCompleted ? \"text-primary\" : \"text-muted-foreground\"\r\n )}\r\n >\r\n {step.title}\r\n </span>\r\n {step.description && (\r\n <span className=\"text-xs text-muted-foreground/70 mt-0.5 max-w-[200px]\">\r\n {step.description}\r\n </span>\r\n )}\r\n </div>\r\n\r\n {/* Connector line for horizontal view (inside the step flex box) */}\r\n {!isLast && !isVertical && variant !== \"arrows\" && (\r\n <div className=\"flex-1 h-[2px] bg-muted/40 ml-2 rounded-full overflow-hidden relative min-w-[30px]\">\r\n <motion.div\r\n className=\"absolute left-0 top-0 bottom-0 bg-primary\"\r\n initial={{ width: \"0%\" }}\r\n animate={{ width: isCompleted ? \"100%\" : \"0%\" }}\r\n transition={{ type: \"spring\", stiffness: 100, damping: 15 }}\r\n />\r\n </div>\r\n )}\r\n\r\n {/* Arrow indicator for variant=\"arrows\" (horizontal only) */}\r\n {!isLast && !isVertical && variant === \"arrows\" && (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n className=\"text-muted-foreground/30 mx-2 shrink-0\"\r\n >\r\n <path d=\"M5 12h14\" />\r\n <path d=\"m12 5 7 7-7 7\" />\r\n </svg>\r\n )}\r\n </div>\r\n\r\n {/* Connector line for vertical view */}\r\n {!isLast && isVertical && (\r\n <div className=\"h-8 w-[2px] bg-muted/40 ml-4 rounded-full relative\">\r\n <motion.div\r\n className=\"absolute top-0 left-0 right-0 bg-primary\"\r\n initial={{ height: \"0%\" }}\r\n animate={{ height: isCompleted ? \"100%\" : \"0%\" }}\r\n transition={{ type: \"spring\", stiffness: 100, damping: 15 }}\r\n />\r\n </div>\r\n )}\r\n </React.Fragment>\r\n )\r\n })}\r\n </div>\r\n )\r\n }\r\n)\r\n\r\nStepper.displayName = \"Stepper\"\r\n\r\nexport { Stepper }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { Search } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n/**\r\n * Interface representing a Command palette item\r\n */\r\nexport interface CommandItem {\r\n label: string\r\n value: string\r\n icon?: React.ReactNode\r\n onSelect: () => void\r\n}\r\n\r\n/**\r\n * Props for the Command palette component\r\n */\r\nexport interface CommandProps {\r\n /**\r\n * Array of command items\r\n */\r\n items: CommandItem[]\r\n /**\r\n * Input search placeholder text\r\n * @default \"Type a command or search...\"\r\n */\r\n placeholder?: string\r\n /**\r\n * Whether the command dialog is open\r\n */\r\n open?: boolean\r\n /**\r\n * Callback fired when the open state changes\r\n */\r\n onOpenChange?: (open: boolean) => void\r\n}\r\n\r\n/**\r\n * Command component provides an interactive Command Palette (Cmd+K / Ctrl+K) dialog.\r\n */\r\nconst Command = React.forwardRef<HTMLDivElement, CommandProps>(\r\n ({ items, placeholder = \"Type a command or search...\", open: customOpen, onOpenChange }, ref) => {\r\n const [localOpen, setLocalOpen] = React.useState(false)\r\n const open = customOpen !== undefined ? customOpen : localOpen\r\n const setOpen = onOpenChange || setLocalOpen\r\n\r\n const [search, setSearch] = React.useState(\"\")\r\n const [selectedIndex, setSelectedIndex] = React.useState(0)\r\n const listRef = React.useRef<HTMLDivElement>(null)\r\n\r\n // Toggle palette on Cmd+K / Ctrl+K\r\n React.useEffect(() => {\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if ((e.metaKey || e.ctrlKey) && e.key === \"k\") {\r\n e.preventDefault()\r\n setOpen(!open)\r\n }\r\n }\r\n window.addEventListener(\"keydown\", handleKeyDown)\r\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\r\n }, [open, setOpen])\r\n\r\n // Filter items based on search query\r\n const filteredItems = React.useMemo(() => {\r\n if (!search.trim()) return items\r\n return items.filter((item) =>\r\n item.label.toLowerCase().includes(search.toLowerCase()) ||\r\n item.value.toLowerCase().includes(search.toLowerCase())\r\n )\r\n }, [items, search])\r\n\r\n // Reset selected item when filtered items change\r\n React.useEffect(() => {\r\n setSelectedIndex(0)\r\n }, [filteredItems])\r\n\r\n // Handle key navigation inside the list\r\n const handleKeyDown = (e: React.KeyboardEvent) => {\r\n if (filteredItems.length === 0) return\r\n\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault()\r\n setSelectedIndex((prev) => (prev + 1) % filteredItems.length)\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault()\r\n setSelectedIndex((prev) => (prev - 1 + filteredItems.length) % filteredItems.length)\r\n } else if (e.key === \"Enter\") {\r\n e.preventDefault()\r\n const selected = filteredItems[selectedIndex]\r\n if (selected) {\r\n selected.onSelect()\r\n setOpen(false)\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <DialogPrimitive.Root open={open} onOpenChange={setOpen}>\r\n <AnimatePresence>\r\n {open && (\r\n <DialogPrimitive.Portal forceMount>\r\n {/* Overlay */}\r\n <DialogPrimitive.Overlay asChild>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n className=\"fixed inset-0 z-50 bg-black/60 backdrop-blur-md\"\r\n />\r\n </DialogPrimitive.Overlay>\r\n\r\n {/* Palette Container */}\r\n <DialogPrimitive.Content asChild>\r\n <div className=\"fixed inset-0 z-50 flex items-start justify-center pt-[15vh] p-4\">\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95, y: -20 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: -20 }}\r\n transition={{ type: \"spring\", stiffness: 350, damping: 25 }}\r\n onKeyDown={handleKeyDown}\r\n ref={ref}\r\n className=\"relative w-full max-w-[550px] bg-card/95 border border-border/80 rounded-2xl shadow-[0_20px_50px_rgba(0,0,0,0.5)] overflow-hidden flex flex-col focus:outline-none\"\r\n >\r\n {/* Header Input */}\r\n <div className=\"flex items-center gap-3 px-4 border-b border-border/40\">\r\n <Search className=\"h-4.5 w-4.5 text-muted-foreground/60 shrink-0\" />\r\n <input\r\n autoFocus\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n placeholder={placeholder}\r\n className=\"flex-1 h-12 bg-transparent text-[14px] outline-none placeholder:text-muted-foreground/40 font-medium\"\r\n />\r\n <kbd className=\"inline-flex h-5.5 select-none items-center rounded border border-border bg-muted/40 px-1.5 font-mono text-[9px] font-medium text-muted-foreground/50\">\r\n ESC\r\n </kbd>\r\n </div>\r\n\r\n {/* Scrollable list */}\r\n <div\r\n ref={listRef}\r\n className=\"max-h-[300px] overflow-y-auto p-2 space-y-0.5\"\r\n >\r\n {filteredItems.length > 0 ? (\r\n filteredItems.map((item, idx) => {\r\n const isSelected = idx === selectedIndex\r\n return (\r\n <button\r\n key={item.value + idx}\r\n onClick={() => {\r\n item.onSelect()\r\n setOpen(false)\r\n }}\r\n onMouseEnter={() => setSelectedIndex(idx)}\r\n className={cn(\r\n \"w-full flex items-center gap-3 px-3 py-2 rounded-xl text-sm transition-all text-left outline-none\",\r\n isSelected\r\n ? \"bg-primary/10 text-primary font-medium shadow-[inset_0_0_1px_rgba(var(--primary-rgb),0.2)]\"\r\n : \"text-foreground hover:bg-muted/40\"\r\n )}\r\n >\r\n {item.icon && (\r\n <span className={cn(\"shrink-0\", isSelected ? \"text-primary\" : \"text-muted-foreground/70\")}>\r\n {item.icon}\r\n </span>\r\n )}\r\n <span className=\"flex-1 truncate\">{item.label}</span>\r\n {isSelected && (\r\n <span className=\"text-[10px] uppercase font-bold tracking-widest text-primary/80 bg-primary/10 px-1.5 py-0.5 rounded-md\">\r\n Select\r\n </span>\r\n )}\r\n </button>\r\n )\r\n })\r\n ) : (\r\n <div className=\"py-8 text-center text-sm text-muted-foreground/60\">\r\n No results found.\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Footer guides */}\r\n <div className=\"flex items-center gap-4 px-4 py-2.5 border-t border-border/40 bg-muted/10\">\r\n <div className=\"flex items-center gap-1 text-[10px] text-muted-foreground/50\">\r\n <kbd className=\"inline-flex h-4 items-center rounded border border-border bg-muted/20 px-1 font-mono text-[8px]\">↑↓</kbd>\r\n <span>Navigate</span>\r\n </div>\r\n <div className=\"flex items-center gap-1 text-[10px] text-muted-foreground/50\">\r\n <kbd className=\"inline-flex h-4 items-center rounded border border-border bg-muted/20 px-1 font-mono text-[8px]\">↵</kbd>\r\n <span>Select</span>\r\n </div>\r\n </div>\r\n </motion.div>\r\n </div>\r\n </DialogPrimitive.Content>\r\n </DialogPrimitive.Portal>\r\n )}\r\n </AnimatePresence>\r\n </DialogPrimitive.Root>\r\n )\r\n }\r\n)\r\n\r\nCommand.displayName = \"Command\"\r\n\r\nexport { Command }\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { Check, Copy, LucideIcon } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { Button } from \"./button\"\r\nimport { Avatar, AvatarFallback, AvatarImage } from \"./avatar\"\r\nimport { Badge } from \"./badge\"\r\n\r\n// 1. Kbd - Keyboard shortcut component\r\nexport function Kbd({ className, children, ...props }: React.HTMLAttributes<HTMLElement>) {\r\n return (\r\n <kbd\r\n className={cn(\r\n \"pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border border-border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </kbd>\r\n )\r\n}\r\n\r\n// 2. AvatarGroup - Overlapping avatars\r\ninterface AvatarGroupProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\n * Описание для limit\n * @default undefined\n */\n limit?: number\r\n /**\n * Описание для items\n * @default undefined\n */\n items: { src?: string; fallback: string }[]\r\n}\r\n\r\nexport function AvatarGroup({ items, limit = 3, className, ...props }: AvatarGroupProps) {\r\n const visibleItems = items.slice(0, limit)\r\n const remaining = items.length - limit\r\n\r\n return (\r\n <div className={cn(\"flex -space-x-3 items-center\", className)} {...props}>\r\n {visibleItems.map((item, index) => (\r\n <Avatar key={index} className=\"border-2 border-background w-8 h-8\">\r\n {item.src && <AvatarImage src={item.src} />}\r\n <AvatarFallback>{item.fallback}</AvatarFallback>\r\n </Avatar>\r\n ))}\r\n {remaining > 0 && (\r\n <div className=\"flex items-center justify-center w-8 h-8 rounded-full bg-muted border-2 border-background text-xs font-medium\">\r\n +{remaining}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\n// 3. StatCard - Individual stat card\r\ninterface StatCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\n * Описание для title\n * @default undefined\n */\n title: string\r\n /**\n * Описание для value\n * @default undefined\n */\n value: string\r\n /**\n * Описание для description\n * @default undefined\n */\n description?: string\r\n /**\n * Описание для icon\n * @default undefined\n */\n icon?: LucideIcon\r\n /**\n * Описание для trend\n * @default undefined\n */\n trend?: {\r\n /**\n * Описание для value\n * @default undefined\n */\n value: string\r\n /**\n * Описание для positive\n * @default undefined\n */\n positive: boolean\r\n }\r\n}\r\n\r\nexport function StatCard({ title, value, description, icon: Icon, trend, className, ...props }: StatCardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-xl border border-border bg-card p-6 shadow-sm hover:shadow-md transition-shadow\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"flex justify-between items-start\">\r\n <div className=\"space-y-2\">\r\n <p className=\"text-sm font-medium text-muted-foreground\">{title}</p>\r\n <div className=\"flex items-baseline space-x-2\">\r\n <h2 className=\"text-3xl font-bold tracking-tight\">{value}</h2>\r\n {trend && (\r\n <span\r\n className={cn(\r\n \"text-xs font-medium px-1.5 py-0.5 rounded-full\",\r\n trend.positive ? \"bg-green-500/10 text-green-500\" : \"bg-red-500/10 text-red-500\"\r\n )}\r\n >\r\n {trend.positive ? \"+\" : \"-\"}{trend.value}\r\n </span>\r\n )}\r\n </div>\r\n {description && <p className=\"text-xs text-muted-foreground\">{description}</p>}\r\n </div>\r\n {Icon && (\r\n <div className=\"p-2 bg-muted rounded-md\">\r\n <Icon className=\"h-5 w-5 text-muted-foreground\" />\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// 4. Timeline - Vertical timeline\r\ninterface TimelineItem {\r\n title: string\r\n description: string\r\n time: string\r\n status?: \"completed\" | \"current\" | \"upcoming\"\r\n}\r\n\r\nexport function Timeline({ items, className }: { items: TimelineItem[]; className?: string }) {\r\n return (\r\n <div className={cn(\"space-y-8\", className)}>\r\n {items.map((item, index) => (\r\n <div key={index} className=\"relative flex gap-6 pb-8 last:pb-0\">\r\n {index !== items.length - 1 && (\r\n <div className=\"absolute left-[11px] top-4 h-full w-[2px] bg-border\" />\r\n )}\r\n <div\r\n className={cn(\r\n \"relative z-10 flex h-6 w-6 shrink-0 items-center justify-center rounded-full border-2\",\r\n item.status === \"completed\" && \"border-primary bg-primary text-primary-foreground\",\r\n item.status === \"current\" && \"border-primary bg-background\",\r\n item.status === \"upcoming\" && \"border-border bg-muted\"\r\n )}\r\n >\r\n {item.status === \"completed\" && <Check className=\"h-3 w-3\" />}\r\n {item.status === \"current\" && <div className=\"h-2 w-2 rounded-full bg-primary\" />}\r\n </div>\r\n <div className=\"space-y-1.5\">\r\n <div className=\"flex items-center gap-2\">\r\n <h4 className=\"font-semibold\">{item.title}</h4>\r\n <span className=\"text-xs text-muted-foreground\">{item.time}</span>\r\n </div>\r\n <p className=\"text-sm text-muted-foreground\">{item.description}</p>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// 5. CodeBlock - Code block with copy button\r\ninterface CodeBlockProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\n * Описание для code\n * @default undefined\n */\n code: string\r\n /**\n * Описание для language\n * @default undefined\n */\n language?: string\r\n}\r\n\r\nexport function CodeBlock({ code, language, className, ...props }: CodeBlockProps) {\r\n const [copied, setCopied] = React.useState(false)\r\n\r\n const handleCopy = () => {\r\n navigator.clipboard.writeText(code)\r\n setCopied(true)\r\n setTimeout(() => setCopied(false), 2000)\r\n }\r\n\r\n return (\r\n <div className={cn(\"relative rounded-lg border bg-muted/50 p-4 font-mono text-sm overflow-hidden\", className)} {...props}>\r\n <div className=\"absolute right-4 top-4\">\r\n <Button variant=\"ghost\" size=\"icon\" className=\"h-8 w-8\" onClick={handleCopy}>\r\n {copied ? <Check className=\"h-4 w-4\" /> : <Copy className=\"h-4 w-4\" />}\r\n </Button>\r\n </div>\r\n {language && (\r\n <div className=\"absolute left-4 top-2 text-xs text-muted-foreground uppercase\">\r\n {language}\r\n </div>\r\n )}\r\n <pre className={cn(\"overflow-x-auto\", language && \"pt-6\")}>\r\n <code>{code}</code>\r\n </pre>\r\n </div>\r\n )\r\n}\r\n\r\n// 6. PricingCard - Premium pricing card\r\ninterface PricingCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\n * Описание для title\n * @default undefined\n */\n title: string\r\n /**\n * Описание для price\n * @default undefined\n */\n price: string\r\n /**\n * Описание для description\n * @default undefined\n */\n description: string\r\n /**\n * Описание для features\n * @default undefined\n */\n features: string[]\r\n /**\n * Описание для buttonText\n * @default undefined\n */\n buttonText?: string\r\n /**\n * Описание для popular\n * @default undefined\n */\n popular?: boolean\r\n}\r\n\r\nexport function PricingCard({ title, price, description, features, buttonText = \"Get Started\", popular = false, className, ...props }: PricingCardProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"rounded-2xl border bg-card p-6 flex flex-col justify-between relative\",\r\n popular && \"border-primary shadow-lg shadow-primary/5\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {popular && (\r\n <div className=\"absolute -top-3 left-1/2 -translate-x-1/2 bg-primary text-primary-foreground text-xs font-semibold px-3 py-1 rounded-full\">\r\n Most Popular\r\n </div>\r\n )}\r\n <div>\r\n <div className=\"space-y-1.5 mb-6\">\r\n <h3 className=\"text-xl font-bold\">{title}</h3>\r\n <p className=\"text-sm text-muted-foreground\">{description}</p>\r\n </div>\r\n <div className=\"mb-6\">\r\n <span className=\"text-4xl font-bold\">{price}</span>\r\n <span className=\"text-muted-foreground\">/mo</span>\r\n </div>\r\n <ul className=\"space-y-3 mb-6 text-sm\">\r\n {features.map((feature, index) => (\r\n <li key={index} className=\"flex items-center gap-2\">\r\n <Check className=\"h-4 w-4 text-primary\" />\r\n <span>{feature}</span>\r\n </li>\r\n ))}\r\n </ul>\r\n </div>\r\n <Button variant={popular ? \"default\" : \"outline\"} className=\"w-full\">\r\n {buttonText}\r\n </Button>\r\n </div>\r\n )\r\n}\r\n\r\n// 7. Divider - Simple divider line\r\nexport interface DividerProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\r\n * The orientation of the divider\r\n * @default \"horizontal\"\r\n */\r\n /**\n * Описание для orientation\n * @default undefined\n */\n orientation?: \"horizontal\" | \"vertical\";\r\n}\r\n\r\nexport function Divider({ orientation = \"horizontal\", className, ...props }: DividerProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"bg-border shrink-0\",\r\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"w-[1px] h-full\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n","'use client';\n\nimport * as React from 'react';\nimport { motion, useReducedMotion } from 'framer-motion';\nimport { Sparkles, ArrowRight } from 'lucide-react';\nimport { cn } from '../utils/cn';\n\nexport type AuroraVariant = 'aurora' | 'ocean' | 'sunset' | 'forest' | 'cyber' | 'gold' | 'mono';\nexport type AuroraSpeed = 'slow' | 'normal' | 'fast';\nexport type AuroraGlow = 'subtle' | 'medium' | 'strong' | 'none';\nexport type AuroraRadius = 'sm' | 'md' | 'lg' | 'xl';\nexport type AuroraAnimation = 'flow' | 'wave' | 'pulse';\n\nconst radiusMap: Record<AuroraRadius, { outer: string; inner: string; rx: number }> = {\n sm: { outer: 'rounded-xl', inner: 'rounded-[calc(0.75rem-2px)]', rx: 12 },\n md: { outer: 'rounded-2xl', inner: 'rounded-[calc(1rem-2px)]', rx: 16 },\n lg: { outer: 'rounded-3xl', inner: 'rounded-[calc(1.5rem-2px)]', rx: 24 },\n xl: { outer: 'rounded-[2rem]', inner: 'rounded-[calc(2rem-3px)]', rx: 32 },\n};\n\nconst speedDurations: Record<AuroraSpeed, number> = {\n slow: 7.5,\n normal: 4.5,\n fast: 2.5,\n};\n\nconst variantColorStops: Record<AuroraVariant, { s1: string; s2: string; s3: string; s4: string }> = {\n aurora: { s1: '#a855f7', s2: '#ec4899', s3: '#3b82f6', s4: '#06b6d4' },\n ocean: { s1: '#0284c7', s2: '#06b6d4', s3: '#38bdf8', s4: '#10b981' },\n sunset: { s1: '#ff5722', s2: '#f97316', s3: '#ec4899', s4: '#8b5cf6' },\n forest: { s1: '#059669', s2: '#10b981', s3: '#84cc16', s4: '#4ade80' },\n cyber: { s1: '#f43f5e', s2: '#ec4899', s3: '#a855f7', s4: '#06b6d4' },\n gold: { s1: '#d97706', s2: '#f59e0b', s3: '#f97316', s4: '#fbbf24' },\n mono: { s1: '#ffffff', s2: '#d4d4d8', s3: '#71717a', s4: '#ffffff' },\n};\n\nconst subtitleGradients: Record<AuroraVariant, string> = {\n aurora: 'from-purple-600 via-pink-600 to-cyan-600 dark:from-purple-400 dark:via-pink-300 dark:to-cyan-400',\n ocean: 'from-blue-600 via-cyan-600 to-teal-500 dark:from-blue-400 dark:via-cyan-300 dark:to-teal-300',\n sunset: 'from-orange-600 via-pink-600 to-purple-600 dark:from-orange-400 dark:via-pink-400 dark:to-purple-300',\n forest: 'from-emerald-600 via-green-600 to-lime-600 dark:from-emerald-400 dark:via-green-300 dark:to-lime-300',\n cyber: 'from-pink-600 via-purple-600 to-cyan-600 dark:from-pink-400 dark:via-purple-300 dark:to-cyan-300',\n gold: 'from-amber-600 via-orange-600 to-rose-600 dark:from-amber-400 dark:via-orange-300 dark:to-rose-400',\n mono: 'from-zinc-900 via-zinc-700 to-zinc-950 dark:from-zinc-100 dark:via-zinc-300 dark:to-zinc-400',\n};\n\nexport interface AuroraBorderCardProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: AuroraVariant;\n speed?: AuroraSpeed;\n glow?: AuroraGlow;\n borderWidth?: 1 | 2 | 3 | number;\n radius?: AuroraRadius;\n animation?: AuroraAnimation;\n title?: string;\n subtitle?: string;\n description?: string;\n badgeText?: string;\n buttonText?: string;\n buttonHref?: string;\n onButtonClick?: () => void;\n children?: React.ReactNode;\n}\n\n/**\n * AuroraBorderCard Component\n *\n * Displays a permanent visible border with a single, continuous traveling Aurora snake wave.\n * Crisp and luminous on both Light and Dark themes.\n */\nexport const AuroraBorderCard = React.forwardRef<HTMLDivElement, AuroraBorderCardProps>(\n (\n {\n variant = 'aurora',\n speed = 'fast',\n glow = 'medium',\n borderWidth = 1,\n radius = 'xl',\n animation = 'flow',\n title = 'Beautiful Components',\n subtitle = 'For Modern Builders',\n description = 'Build stunning interfaces with premium animated components.',\n badgeText = 'NexoreUI',\n buttonText = 'Get Started',\n buttonHref,\n onButtonClick,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const shouldReduceMotion = useReducedMotion();\n const duration = speedDurations[speed] || 2.5;\n const radiusConfig = radiusMap[radius] || radiusMap.xl;\n const colors = variantColorStops[variant] || variantColorStops.aurora;\n const id = React.useId().replace(/:/g, '');\n\n const glowOpacity = glow === 'none' ? 0 : glow === 'subtle' ? 0.35 : glow === 'medium' ? 0.65 : 0.9;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative isolate select-none group transition-all duration-300',\n radiusConfig.outer,\n className\n )}\n {...props}\n >\n {/* ─── SVG Single Traveling Snake Wave System ─── */}\n <svg\n className=\"absolute inset-0 w-full h-full pointer-events-none overflow-visible z-20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n {/* Dynamic Multi-Stop Gradient for the Snake */}\n <linearGradient id={`snake-grad-${id}`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor={colors.s1} />\n <stop offset=\"35%\" stopColor={colors.s2} />\n <stop offset=\"70%\" stopColor={colors.s3} />\n <stop offset=\"100%\" stopColor={colors.s4} />\n </linearGradient>\n\n {/* Glowing Aura Filter */}\n <filter id={`snake-glow-${id}`} x=\"-30%\" y=\"-30%\" width=\"160%\" height=\"160%\">\n <feGaussianBlur stdDeviation=\"4\" result=\"blur\" />\n <feMerge>\n <feMergeNode in=\"blur\" />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n </defs>\n\n {/* ─── 1. Permanent Static Base Border (Always Visible in Light & Dark) ─── */}\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={radiusConfig.rx}\n fill=\"none\"\n className=\"stroke-zinc-300/90 dark:stroke-white/15\"\n strokeWidth={borderWidth}\n vectorEffect=\"non-scaling-stroke\"\n />\n\n {/* ─── 2. Single Traveling Snake Glow (Moves with the snake head) ─── */}\n {!shouldReduceMotion && glow !== 'none' && (\n <motion.rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={radiusConfig.rx}\n fill=\"none\"\n pathLength={100}\n stroke={`url(#snake-grad-${id})`}\n strokeWidth={Math.max(borderWidth * 2.5, 3)}\n strokeDasharray=\"26 74\"\n strokeLinecap=\"round\"\n filter={`url(#snake-glow-${id})`}\n vectorEffect=\"non-scaling-stroke\"\n opacity={glowOpacity}\n animate={{\n strokeDashoffset: [0, -100],\n }}\n transition={{\n duration,\n repeat: Infinity,\n ease: 'linear',\n }}\n />\n )}\n\n {/* ─── 3. Single Traveling Aurora Snake (Main Wave Head & Body) ─── */}\n {!shouldReduceMotion ? (\n <motion.rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={radiusConfig.rx}\n fill=\"none\"\n pathLength={100}\n stroke={`url(#snake-grad-${id})`}\n strokeWidth={Math.max(borderWidth * 1.5, 2)}\n strokeDasharray=\"26 74\"\n strokeLinecap=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n animate={{\n strokeDashoffset: [0, -100],\n }}\n transition={{\n duration,\n repeat: Infinity,\n ease: 'linear',\n }}\n />\n ) : (\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={radiusConfig.rx}\n fill=\"none\"\n stroke={`url(#snake-grad-${id})`}\n strokeWidth={borderWidth}\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n </svg>\n\n {/* ─── Inner Card Surface ─── */}\n <div\n className={cn(\n 'relative z-10 w-full h-full flex flex-col justify-between p-6 sm:p-8 transition-colors duration-200',\n // Light Theme: Crisp pure white surface with dark text\n 'bg-white text-zinc-900 shadow-xl shadow-zinc-950/5 border border-zinc-200/70',\n // Dark Theme: Deep sleek obsidian with white text\n 'dark:bg-[#0c0d14] dark:text-zinc-100 dark:shadow-2xl dark:shadow-black/70 dark:border-white/5',\n radiusConfig.inner\n )}\n >\n {children ? (\n children\n ) : (\n <div className=\"flex flex-col h-full justify-between gap-6\">\n {/* Top Header / Badge */}\n <div className=\"flex items-center justify-between\">\n <div className=\"inline-flex items-center gap-1.5 px-3.5 py-1 rounded-full text-xs font-semibold tracking-wide bg-zinc-100 text-zinc-800 border border-zinc-200 dark:bg-white/[0.06] dark:text-zinc-200 dark:border-white/10 backdrop-blur-md shadow-sm\">\n <Sparkles className=\"w-3.5 h-3.5 text-primary\" />\n <span>{badgeText}</span>\n </div>\n </div>\n\n {/* Main Content */}\n <div className=\"space-y-2\">\n <h3 className=\"text-2xl sm:text-3xl font-extrabold tracking-tight text-zinc-900 dark:text-white\">\n {title}\n </h3>\n <h4\n className={cn(\n 'text-xl sm:text-2xl font-bold tracking-tight bg-clip-text text-transparent bg-gradient-to-r',\n subtitleGradients[variant] || subtitleGradients.aurora\n )}\n >\n {subtitle}\n </h4>\n <p className=\"text-sm sm:text-base text-zinc-600 dark:text-zinc-400 font-normal leading-relaxed pt-1 max-w-md\">\n {description}\n </p>\n </div>\n\n {/* Action Button */}\n <div className=\"pt-2\">\n {buttonHref ? (\n <a\n href={buttonHref}\n className=\"inline-flex items-center justify-center gap-2 px-5 py-2.5 rounded-xl text-sm font-semibold text-white bg-primary hover:bg-primary/90 active:scale-[0.98] transition-all duration-200 shadow-md shadow-primary/25 cursor-pointer\"\n >\n <span>{buttonText}</span>\n <ArrowRight className=\"w-4 h-4 transition-transform duration-200 group-hover:translate-x-0.5\" />\n </a>\n ) : (\n <button\n type=\"button\"\n onClick={onButtonClick}\n className=\"inline-flex items-center justify-center gap-2 px-5 py-2.5 rounded-xl text-sm font-semibold text-white bg-primary hover:bg-primary/90 active:scale-[0.98] transition-all duration-200 shadow-md shadow-primary/25 cursor-pointer\"\n >\n <span>{buttonText}</span>\n <ArrowRight className=\"w-4 h-4 transition-transform duration-200 group-hover:translate-x-0.5\" />\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n }\n);\n\nAuroraBorderCard.displayName = 'AuroraBorderCard';\n","'use client';\n\nimport * as React from 'react';\nimport { motion, AnimatePresence, useReducedMotion } from 'framer-motion';\nimport {\n Send,\n Square,\n Mic,\n Paperclip,\n Globe,\n Sparkles,\n Bot,\n ChevronDown,\n X,\n FileText,\n Image as ImageIcon,\n Cpu,\n} from 'lucide-react';\nimport { cn } from '../utils/cn';\n\nconst sizeMap = {\n sm: {\n outerRadius: 'rounded-xl',\n innerRadius: 'rounded-[calc(0.75rem-2px)]',\n padding: 'p-2.5 gap-2',\n text: 'text-xs',\n rx: 12,\n },\n md: {\n outerRadius: 'rounded-2xl',\n innerRadius: 'rounded-[calc(1rem-2px)]',\n padding: 'p-3.5 gap-2.5',\n text: 'text-sm',\n rx: 16,\n },\n lg: {\n outerRadius: 'rounded-3xl',\n innerRadius: 'rounded-[calc(1.5rem-2px)]',\n padding: 'p-4 gap-3',\n text: 'text-base',\n rx: 24,\n },\n};\n\nexport interface AIModelOption {\n id: string;\n name: string;\n badge?: string;\n icon?: React.ElementType;\n}\n\nexport interface AttachedFile {\n id: string;\n name: string;\n size?: string;\n type?: 'image' | 'file' | 'code';\n}\n\nexport interface AiPromptInputProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onSubmit'> {\n /**\n * Visual theme variant\n * @default \"default\"\n */\n variant?: 'default' | 'glow' | 'aurora' | 'glass' | 'minimal';\n /**\n * Dimension scale\n * @default \"md\"\n */\n size?: 'sm' | 'md' | 'lg';\n /**\n * Text prompt value (controlled)\n */\n value?: string;\n /**\n * Default text prompt value (uncontrolled)\n */\n defaultValue?: string;\n /**\n * Callback fired when text changes\n */\n onChange?: (value: string) => void;\n /**\n * Callback fired when prompt is submitted (via button or Enter key)\n */\n onSubmit?: (prompt: string, options?: { model?: string; webSearch?: boolean; files?: AttachedFile[] }) => void;\n /**\n * Textarea placeholder text\n * @default \"Ask anything or describe what you want to build...\"\n */\n placeholder?: string;\n /**\n * Whether the AI is currently generating a response (switches Send to Stop button)\n * @default false\n */\n isLoading?: boolean;\n /**\n * Callback fired when user clicks stop generation\n */\n onStop?: () => void;\n /**\n * List of available models in the selector dropdown\n */\n models?: AIModelOption[];\n /**\n * Currently active model ID\n */\n selectedModel?: string;\n /**\n * Callback when active model is changed\n */\n onModelChange?: (modelId: string) => void;\n /**\n * Attached files list preview\n */\n files?: AttachedFile[];\n /**\n * Callback when a file is removed\n */\n onRemoveFile?: (fileId: string) => void;\n /**\n * Callback when user clicks the attach file button\n */\n onAttachClick?: () => void;\n /**\n * Whether voice listening is active\n * @default false\n */\n isListening?: boolean;\n /**\n * Callback when microphone button is clicked\n */\n onVoiceToggle?: () => void;\n /**\n * Whether web search enhancement is enabled\n * @default false\n */\n webSearchEnabled?: boolean;\n /**\n * Callback when web search toggle is clicked\n */\n onWebSearchToggle?: () => void;\n /**\n * Whether Deep Reasoning mode is enabled\n * @default false\n */\n reasoningEnabled?: boolean;\n /**\n * Callback when Deep Reasoning mode toggle is clicked\n */\n onReasoningToggle?: () => void;\n /**\n * Disables all interactive inputs\n * @default false\n */\n disabled?: boolean;\n}\n\nconst defaultModels: AIModelOption[] = [\n { id: 'claude-3-7', name: 'Claude 3.7 Sonnet', badge: 'Hybrid', icon: Sparkles },\n { id: 'gpt-4o', name: 'GPT-4o', badge: 'Fast', icon: Bot },\n { id: 'gemini-2-flash', name: 'Gemini 2.0 Flash', badge: 'Multimodal', icon: Cpu },\n { id: 'deepseek-r1', name: 'DeepSeek R1', badge: 'Reasoning', icon: Globe },\n];\n\n/**\n * AiPromptInput Component\n *\n * An ultra-premium input bar for conversational and agentic AI interfaces.\n * Supports auto-expanding textarea, model selector, attachments, voice pulse,\n * web search / reasoning toggles, and SVG perimeter-traveling Aurora waves.\n */\nexport const AiPromptInput = React.forwardRef<HTMLDivElement, AiPromptInputProps>(\n (\n {\n variant = 'default',\n size = 'md',\n value: controlledValue,\n defaultValue = '',\n onChange,\n onSubmit,\n placeholder = 'Ask anything or describe what you want to build...',\n isLoading = false,\n onStop,\n models = defaultModels,\n selectedModel: controlledModel,\n onModelChange,\n files: controlledFiles,\n onRemoveFile,\n onAttachClick,\n isListening: controlledListening,\n onVoiceToggle,\n webSearchEnabled: controlledWebSearch,\n onWebSearchToggle,\n reasoningEnabled: controlledReasoning,\n onReasoningToggle,\n disabled = false,\n className,\n ...props\n },\n ref\n ) => {\n const [internalValue, setInternalValue] = React.useState(defaultValue);\n const [internalModel, setInternalModel] = React.useState(models[0]?.id || 'claude-3-7');\n const [isModelDropdownOpen, setIsModelDropdownOpen] = React.useState(false);\n const [internalListening, setInternalListening] = React.useState(false);\n const [internalWebSearch, setInternalWebSearch] = React.useState(false);\n const [internalReasoning, setInternalReasoning] = React.useState(false);\n const [internalFiles, setInternalFiles] = React.useState<AttachedFile[]>([]);\n const fileInputRef = React.useRef<HTMLInputElement>(null);\n\n const textareaRef = React.useRef<HTMLTextAreaElement>(null);\n const shouldReduceMotion = useReducedMotion();\n const id = React.useId().replace(/:/g, '');\n\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : internalValue;\n\n const currentModelId = controlledModel !== undefined ? controlledModel : internalModel;\n const currentModel = models.find((m) => m.id === currentModelId) || models[0];\n\n const isListening = controlledListening !== undefined ? controlledListening : internalListening;\n const webSearch = controlledWebSearch !== undefined ? controlledWebSearch : internalWebSearch;\n const reasoning = controlledReasoning !== undefined ? controlledReasoning : internalReasoning;\n const files = controlledFiles !== undefined ? controlledFiles : internalFiles;\n\n const activeSize = sizeMap[size] || sizeMap.md;\n\n // Auto-resize textarea height\n React.useEffect(() => {\n if (textareaRef.current) {\n textareaRef.current.style.height = 'auto';\n textareaRef.current.style.height = `${Math.min(textareaRef.current.scrollHeight, 180)}px`;\n }\n }, [value]);\n\n const handleTextChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (!isControlled) setInternalValue(e.target.value);\n onChange?.(e.target.value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSubmit();\n }\n };\n\n const handleSubmit = () => {\n if (isLoading) {\n onStop?.();\n return;\n }\n if (!value.trim() && files.length === 0) return;\n onSubmit?.(value, {\n model: currentModelId,\n webSearch,\n files,\n });\n if (!isControlled) setInternalValue('');\n };\n\n const handleVoiceClick = () => {\n if (onVoiceToggle) onVoiceToggle();\n else setInternalListening(!internalListening);\n };\n\n const handleWebSearchClick = () => {\n if (onWebSearchToggle) onWebSearchToggle();\n else setInternalWebSearch(!internalWebSearch);\n };\n\n const handleReasoningClick = () => {\n if (onReasoningToggle) onReasoningToggle();\n else setInternalReasoning(!internalReasoning);\n };\n\n const handleAttachClick = () => {\n if (onAttachClick) {\n onAttachClick();\n } else if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n const handleFileSelected = (e: React.ChangeEvent<HTMLInputElement>) => {\n const selected = e.target.files;\n if (selected && selected.length > 0) {\n const newFiles: AttachedFile[] = Array.from(selected).map((f, i) => ({\n id: `${Date.now()}-${i}`,\n name: f.name,\n size: `${(f.size / (1024 * 1024)).toFixed(1)} MB`,\n type: f.type.startsWith('image/') ? 'image' : 'file',\n }));\n setInternalFiles((prev) => [...prev, ...newFiles]);\n }\n };\n\n const handleRemoveFileInternal = (id: string) => {\n if (onRemoveFile) onRemoveFile(id);\n else setInternalFiles((prev) => prev.filter((f) => f.id !== id));\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative isolate w-full transition-all duration-300 select-none group',\n activeSize.outerRadius,\n className\n )}\n {...props}\n >\n {/* Hidden file input for uncontrolled attach */}\n <input\n ref={fileInputRef}\n type=\"file\"\n multiple\n className=\"hidden\"\n onChange={handleFileSelected}\n />\n\n {/* ─── Aurora Variant: SVG Traveling Border Waves ─── */}\n {variant === 'aurora' && (\n <svg\n className=\"absolute inset-0 w-full h-full pointer-events-none overflow-visible\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <defs>\n <linearGradient id={`ai-aurora-grad1-${id}`} x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#a855f7\" />\n <stop offset=\"25%\" stopColor=\"#ec4899\" />\n <stop offset=\"50%\" stopColor=\"#6366f1\" />\n <stop offset=\"75%\" stopColor=\"#06b6d4\" />\n <stop offset=\"100%\" stopColor=\"#10b981\" />\n </linearGradient>\n <linearGradient id={`ai-aurora-grad2-${id}`} x1=\"100%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\n <stop offset=\"0%\" stopColor=\"#10b981\" />\n <stop offset=\"35%\" stopColor=\"#6366f1\" />\n <stop offset=\"70%\" stopColor=\"#ec4899\" />\n <stop offset=\"100%\" stopColor=\"#a855f7\" />\n </linearGradient>\n <filter id={`ai-aurora-glow-${id}`} x=\"-20%\" y=\"-20%\" width=\"140%\" height=\"140%\">\n <feGaussianBlur stdDeviation=\"3.5\" result=\"blur\" />\n <feMerge>\n <feMergeNode in=\"blur\" />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n </defs>\n\n {/* Base border line (Always visible) */}\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={activeSize.rx}\n fill=\"none\"\n className=\"stroke-zinc-200 dark:stroke-white/10\"\n strokeWidth=\"2\"\n vectorEffect=\"non-scaling-stroke\"\n />\n\n {/* Ambient traveling snake wave glow */}\n {!shouldReduceMotion && (\n <motion.rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={activeSize.rx}\n fill=\"none\"\n pathLength={100}\n stroke={`url(#ai-aurora-grad1-${id})`}\n strokeWidth=\"5\"\n strokeDasharray=\"26 74\"\n strokeLinecap=\"round\"\n filter={`url(#ai-aurora-glow-${id})`}\n opacity=\"0.65\"\n vectorEffect=\"non-scaling-stroke\"\n animate={{\n strokeDashoffset: [0, -100],\n }}\n transition={{ duration: 4, repeat: Infinity, ease: 'linear' }}\n />\n )}\n\n {/* Single traveling aurora snake */}\n {!shouldReduceMotion ? (\n <motion.rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={activeSize.rx}\n fill=\"none\"\n pathLength={100}\n stroke={`url(#ai-aurora-grad1-${id})`}\n strokeWidth=\"2.5\"\n strokeDasharray=\"26 74\"\n strokeLinecap=\"round\"\n vectorEffect=\"non-scaling-stroke\"\n animate={{\n strokeDashoffset: [0, -100],\n }}\n transition={{ duration: 4, repeat: Infinity, ease: 'linear' }}\n />\n ) : (\n <rect\n x=\"0\"\n y=\"0\"\n width=\"100%\"\n height=\"100%\"\n rx={activeSize.rx}\n fill=\"none\"\n stroke={`url(#ai-aurora-grad1-${id})`}\n strokeWidth=\"2\"\n vectorEffect=\"non-scaling-stroke\"\n />\n )}\n </svg>\n )}\n\n {/* ─── Inner Prompt Input Container Surface ─── */}\n <div\n className={cn(\n 'relative z-10 flex flex-col w-full transition-all duration-300',\n activeSize.padding,\n activeSize.text,\n activeSize.outerRadius,\n variant === 'aurora' &&\n 'bg-white dark:bg-[#0c0d14] text-zinc-900 dark:text-zinc-100 shadow-xl',\n variant === 'default' &&\n 'bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-800 shadow-lg shadow-zinc-950/5 dark:shadow-black/40 focus-within:border-primary/60 focus-within:ring-2 focus-within:ring-primary/20',\n variant === 'glow' &&\n 'bg-white dark:bg-zinc-950 border border-zinc-200 dark:border-zinc-800 shadow-[0_0_20px_rgba(99,60,220,0.18)] focus-within:border-primary focus-within:shadow-[0_0_25px_rgba(99,60,220,0.35)]',\n variant === 'glass' &&\n 'bg-white/80 dark:bg-zinc-900/80 backdrop-blur-xl border border-white/20 dark:border-white/10 shadow-xl focus-within:border-primary/50',\n variant === 'minimal' &&\n 'bg-zinc-100/80 dark:bg-zinc-900/80 border border-transparent focus-within:bg-white dark:focus-within:bg-zinc-950 focus-within:border-zinc-300 dark:focus-within:border-zinc-700'\n )}\n >\n {/* ─── Attached Files Pill Drawer ─── */}\n {files.length > 0 && (\n <div className=\"flex flex-wrap gap-2 pt-0.5 pb-1\">\n <AnimatePresence>\n {files.map((file) => (\n <motion.div\n key={file.id}\n initial={{ scale: 0.8, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0.8, opacity: 0 }}\n className=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-lg text-xs bg-zinc-100 dark:bg-zinc-800/80 text-zinc-800 dark:text-zinc-200 border border-zinc-200 dark:border-zinc-700/80 shadow-sm\"\n >\n {file.type === 'image' ? (\n <ImageIcon className=\"w-3.5 h-3.5 text-blue-500\" />\n ) : (\n <FileText className=\"w-3.5 h-3.5 text-primary\" />\n )}\n <span className=\"max-w-[140px] truncate font-medium\">{file.name}</span>\n {file.size && <span className=\"text-[10px] text-zinc-400\">({file.size})</span>}\n <button\n type=\"button\"\n onClick={() => handleRemoveFileInternal(file.id)}\n className=\"ml-1 p-0.5 rounded hover:bg-zinc-200 dark:hover:bg-zinc-700 text-zinc-400 hover:text-zinc-700 dark:hover:text-zinc-200 transition-colors cursor-pointer\"\n >\n <X className=\"w-3 h-3\" />\n </button>\n </motion.div>\n ))}\n </AnimatePresence>\n </div>\n )}\n\n {/* ─── Main Textarea ─── */}\n <div className=\"relative w-full\">\n <textarea\n ref={textareaRef}\n rows={1}\n value={value}\n onChange={handleTextChange}\n onKeyDown={handleKeyDown}\n placeholder={isListening ? 'Listening to your voice...' : placeholder}\n disabled={disabled}\n className=\"w-full bg-transparent resize-none border-0 p-0 text-zinc-900 dark:text-zinc-100 placeholder:text-zinc-400 dark:placeholder:text-zinc-500 focus:outline-none focus:ring-0 leading-relaxed max-h-[180px] overflow-y-auto\"\n />\n </div>\n\n {/* ─── Bottom Actions Toolbar ─── */}\n <div className=\"flex items-center justify-between gap-2 pt-1 border-t border-zinc-100 dark:border-white/5\">\n {/* Left Controls: Model dropdown, Search, Reasoning */}\n <div className=\"flex items-center gap-1.5 flex-wrap\">\n {/* Model Selector Button */}\n <div className=\"relative\">\n <button\n type=\"button\"\n onClick={() => setIsModelDropdownOpen(!isModelDropdownOpen)}\n disabled={disabled}\n className=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-xl text-xs font-semibold bg-zinc-100 hover:bg-zinc-200/80 dark:bg-zinc-900 dark:hover:bg-zinc-800 text-zinc-800 dark:text-zinc-200 border border-zinc-200/80 dark:border-white/10 transition-colors cursor-pointer\"\n >\n {currentModel?.icon ? (\n <currentModel.icon className=\"w-3.5 h-3.5 text-primary\" />\n ) : (\n <Sparkles className=\"w-3.5 h-3.5 text-primary\" />\n )}\n <span>{currentModel?.name || 'Model'}</span>\n <ChevronDown className=\"w-3 h-3 text-zinc-400\" />\n </button>\n\n {/* Model Dropdown Menu */}\n {isModelDropdownOpen && (\n <div className=\"absolute left-0 bottom-full mb-2 w-56 p-1.5 rounded-2xl bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-zinc-800 shadow-2xl z-50 space-y-1\">\n <div className=\"px-2.5 py-1 text-[10px] font-bold uppercase tracking-wider text-zinc-400\">\n Select AI Model\n </div>\n {models.map((model) => (\n <button\n key={model.id}\n type=\"button\"\n onClick={() => {\n if (onModelChange) onModelChange(model.id);\n else setInternalModel(model.id);\n setIsModelDropdownOpen(false);\n }}\n className={cn(\n 'w-full flex items-center justify-between px-2.5 py-2 rounded-xl text-xs font-medium transition-colors cursor-pointer text-left',\n currentModelId === model.id\n ? 'bg-primary/10 text-primary font-semibold'\n : 'hover:bg-zinc-100 dark:hover:bg-zinc-800 text-zinc-700 dark:text-zinc-300'\n )}\n >\n <div className=\"flex items-center gap-2\">\n {model.icon ? (\n <model.icon className=\"w-3.5 h-3.5 text-primary\" />\n ) : (\n <Sparkles className=\"w-3.5 h-3.5 text-primary\" />\n )}\n <span>{model.name}</span>\n </div>\n {model.badge && (\n <span className=\"text-[10px] px-1.5 py-0.5 rounded-md bg-zinc-200/60 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-400 font-mono\">\n {model.badge}\n </span>\n )}\n </button>\n ))}\n </div>\n )}\n </div>\n\n {/* Web Search Toggle Pill */}\n <button\n type=\"button\"\n onClick={handleWebSearchClick}\n className={cn(\n 'inline-flex items-center gap-1 px-2.5 py-1 rounded-xl text-xs font-medium transition-colors cursor-pointer',\n webSearch\n ? 'bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 border border-cyan-500/30'\n : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-zinc-900'\n )}\n >\n <Globe className=\"w-3.5 h-3.5\" />\n <span className=\"hidden sm:inline\">Search</span>\n </button>\n\n {/* Deep Reasoning Mode Toggle Pill */}\n <button\n type=\"button\"\n onClick={handleReasoningClick}\n className={cn(\n 'inline-flex items-center gap-1 px-2.5 py-1 rounded-xl text-xs font-medium transition-colors cursor-pointer',\n reasoning\n ? 'bg-purple-500/15 text-purple-600 dark:text-purple-400 border border-purple-500/30'\n : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-zinc-900'\n )}\n >\n <Sparkles className=\"w-3.5 h-3.5\" />\n <span className=\"hidden sm:inline\">Deep Think</span>\n </button>\n </div>\n\n {/* Right Controls: Attach, Voice, Submit/Stop */}\n <div className=\"flex items-center gap-1.5 shrink-0\">\n {/* Attach File Button */}\n <button\n type=\"button\"\n onClick={handleAttachClick}\n disabled={disabled}\n className=\"p-2 rounded-xl text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-zinc-900 transition-colors cursor-pointer\"\n title=\"Attach files or media\"\n >\n <Paperclip className=\"w-4 h-4\" />\n </button>\n\n {/* Voice Input Button */}\n <button\n type=\"button\"\n onClick={handleVoiceClick}\n disabled={disabled}\n className={cn(\n 'p-2 rounded-xl transition-all cursor-pointer relative',\n isListening\n ? 'bg-red-500 text-white shadow-md shadow-red-500/30'\n : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-white hover:bg-zinc-100 dark:hover:bg-zinc-900'\n )}\n title={isListening ? 'Stop listening' : 'Speak to AI'}\n >\n {isListening && !shouldReduceMotion && (\n <span className=\"absolute inset-0 rounded-xl bg-red-500 animate-ping opacity-50\" />\n )}\n <Mic className=\"w-4 h-4 relative z-10\" />\n </button>\n\n {/* Submit / Stop Morphing Button */}\n <button\n type=\"button\"\n onClick={handleSubmit}\n disabled={disabled || (!isLoading && !value.trim() && files.length === 0)}\n className={cn(\n 'inline-flex items-center justify-center p-2 rounded-xl text-white font-semibold transition-all duration-200 cursor-pointer shadow-md disabled:opacity-40 disabled:cursor-not-allowed',\n isLoading\n ? 'bg-zinc-900 dark:bg-white text-white dark:text-zinc-900 shadow-zinc-950/20'\n : 'bg-primary hover:bg-primary/90 active:scale-95 shadow-primary/25'\n )}\n title={isLoading ? 'Stop generation' : 'Send prompt (Enter)'}\n >\n {isLoading ? (\n <Square className=\"w-4 h-4 fill-current\" />\n ) : (\n <Send className=\"w-4 h-4\" />\n )}\n </button>\n </div>\n </div>\n </div>\n </div>\n );\n }\n);\n\nAiPromptInput.displayName = 'AiPromptInput';\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Lock, Mail, User, EyeOff, Eye, CreditCard, Calendar, Upload, Search } from \"lucide-react\"\r\n\r\n// 1. LoginFormPro\r\nexport const LoginFormPro = () => {\r\n const [isLoading, setIsLoading] = React.useState(false)\r\n const [success, setSuccess] = React.useState(false)\r\n\r\n const handleSubmit = () => {\r\n setIsLoading(true)\r\n setTimeout(() => { setIsLoading(false); setSuccess(true) }, 1500)\r\n }\r\n\r\n return (\r\n <div className=\"w-full max-w-sm p-6 border rounded-2xl bg-card shadow-lg\">\r\n <div className=\"text-center mb-6\"><h2 className=\"text-2xl font-bold\">Welcome back</h2><p className=\"text-muted-foreground text-sm\">Enter your credentials to access your account</p></div>\r\n {success ? (\r\n <div className=\"p-4 bg-green-500/10 text-green-500 border border-green-500/20 rounded-xl text-center mb-4 font-medium\">Successfully logged in! Redirecting...</div>\r\n ) : null}\r\n <div className=\"space-y-4\">\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Email</label><div className=\"relative\"><Mail className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" /><input className=\"w-full pl-9 pr-3 py-2 border rounded-lg bg-background focus:ring-2 focus:ring-primary outline-none\" placeholder=\"m@example.com\" /></div></div>\r\n <div className=\"space-y-1\"><div className=\"flex justify-between\"><label className=\"text-sm font-medium\">Password</label><a href=\"#\" className=\"text-xs text-primary hover:underline\">Forgot password?</a></div><div className=\"relative\"><Lock className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" /><input type=\"password\" className=\"w-full pl-9 pr-10 py-2 border rounded-lg bg-background focus:ring-2 focus:ring-primary outline-none\" placeholder=\"••••••••\" /><Eye className=\"absolute right-3 top-2.5 h-4 w-4 text-muted-foreground cursor-pointer hover:text-foreground\" /></div></div>\r\n <button onClick={handleSubmit} disabled={isLoading} className=\"w-full py-2.5 bg-primary text-primary-foreground rounded-lg font-medium hover:bg-primary/90 transition-colors disabled:opacity-70 flex justify-center items-center\">\r\n {isLoading ? <div className=\"w-5 h-5 border-2 border-primary-foreground border-t-transparent rounded-full animate-spin\" /> : \"Sign In\"}\r\n </button>\r\n </div>\r\n <div className=\"mt-4 text-center text-sm\">Don't have an account? <a href=\"#\" className=\"text-primary hover:underline font-medium\">Sign up</a></div>\r\n </div>\r\n )\r\n}\r\n\r\n// 2. RegisterFormPro\r\nexport const RegisterFormPro = () => (\r\n <div className=\"w-full max-w-sm p-6 border rounded-2xl bg-card shadow-lg\">\r\n <div className=\"text-center mb-6\"><h2 className=\"text-2xl font-bold\">Create an account</h2><p className=\"text-muted-foreground text-sm\">Start your 14-day free trial</p></div>\r\n <div className=\"space-y-4\">\r\n <div className=\"grid grid-cols-2 gap-4\">\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">First name</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"Max\" /></div>\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Last name</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"Robinson\" /></div>\r\n </div>\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Email</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"m@example.com\" /></div>\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Password</label><input type=\"password\" className=\"w-full px-3 py-2 border rounded-lg bg-background outline-none focus:ring-2 focus:ring-primary\" placeholder=\"••••••••\" /></div>\r\n <button className=\"w-full py-2.5 bg-primary text-primary-foreground rounded-lg font-medium hover:bg-primary/90 transition-colors\">Create Account</button>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 3. PaymentFormPro\r\nexport const PaymentFormPro = () => {\r\n const [method, setMethod] = React.useState('card')\r\n return (\r\n <div className=\"w-full max-w-md p-6 border rounded-2xl bg-card\">\r\n <h3 className=\"text-lg font-bold mb-4\">Payment Method</h3>\r\n <div className=\"grid grid-cols-3 gap-3 mb-6\">\r\n <button onClick={() => setMethod('card')} className={`flex flex-col items-center justify-center p-3 border rounded-xl gap-2 hover:bg-muted transition-colors ${method === 'card' ? 'border-primary bg-primary/5 ring-1 ring-primary text-primary' : 'text-muted-foreground'}`}><CreditCard className=\"h-6 w-6\" /><span className=\"text-xs font-medium\">Card</span></button>\r\n <button onClick={() => setMethod('paypal')} className={`flex flex-col items-center justify-center p-3 border rounded-xl gap-2 hover:bg-muted transition-colors ${method === 'paypal' ? 'border-primary bg-primary/5 ring-1 ring-primary text-primary' : 'text-muted-foreground'}`}><div className=\"font-bold text-lg leading-none\">P</div><span className=\"text-xs font-medium\">PayPal</span></button>\r\n <button onClick={() => setMethod('apple')} className={`flex flex-col items-center justify-center p-3 border rounded-xl gap-2 hover:bg-muted transition-colors ${method === 'apple' ? 'border-primary bg-primary/5 ring-1 ring-primary text-primary' : 'text-muted-foreground'}`}><div className=\"font-bold text-lg leading-none\"></div><span className=\"text-xs font-medium\">Apple Pay</span></button>\r\n </div>\r\n {method === 'card' ? (\r\n <div className=\"space-y-4\">\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Cardholder Name</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background\" placeholder=\"John Doe\" /></div>\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Card Number</label><div className=\"relative\"><CreditCard className=\"absolute left-3 top-2.5 h-4 w-4 text-muted-foreground\" /><input className=\"w-full pl-9 pr-3 py-2 border rounded-lg bg-background\" placeholder=\"0000 0000 0000 0000\" /></div></div>\r\n <div className=\"grid grid-cols-2 gap-4\">\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Expiry Date</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background\" placeholder=\"MM/YY\" /></div>\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">CVC</label><input className=\"w-full px-3 py-2 border rounded-lg bg-background\" placeholder=\"123\" /></div>\r\n </div>\r\n </div>\r\n ) : (\r\n <div className=\"p-8 text-center border-2 border-dashed rounded-xl bg-muted/10\">\r\n <p className=\"text-sm text-muted-foreground\">You will be redirected to {method === 'paypal' ? 'PayPal' : 'Apple Pay'} to complete your purchase securely.</p>\r\n </div>\r\n )}\r\n <button className=\"w-full py-2.5 bg-foreground text-background rounded-lg font-medium mt-6\">Pay $99.00</button>\r\n </div>\r\n )\r\n}\r\n\r\n// 4. ProfileSettingsForm\r\nexport const ProfileSettingsForm = () => (\r\n <div className=\"w-full max-w-md space-y-6\">\r\n <div className=\"flex items-center gap-6\">\r\n <div className=\"h-20 w-20 rounded-full bg-muted flex items-center justify-center overflow-hidden border\"><User className=\"h-8 w-8 text-muted-foreground\" /></div>\r\n <div className=\"flex gap-2\"><button className=\"px-4 py-2 bg-primary text-primary-foreground text-sm font-medium rounded-md\">Change</button><button className=\"px-4 py-2 border text-sm font-medium rounded-md\">Remove</button></div>\r\n </div>\r\n <div className=\"space-y-4\">\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Username</label><input className=\"w-full px-3 py-2 border rounded-md\" defaultValue=\"al1mov77\" /></div>\r\n <div className=\"space-y-1\"><label className=\"text-sm font-medium\">Bio</label><textarea className=\"w-full px-3 py-2 border rounded-md h-24\" defaultValue=\"Frontend Developer building UI components.\" /></div>\r\n <button className=\"px-4 py-2 bg-foreground text-background font-medium rounded-md\">Save Changes</button>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 5. SubscriptionForm\r\nexport const SubscriptionForm = () => (\r\n <div className=\"w-full max-w-sm p-1 border rounded-full bg-muted flex\">\r\n <input className=\"flex-1 bg-transparent px-4 py-2 outline-none text-sm\" placeholder=\"Enter your email\" />\r\n <button className=\"px-6 py-2 bg-primary text-primary-foreground rounded-full text-sm font-bold shadow-sm\">Subscribe</button>\r\n </div>\r\n)\r\n\r\n// 6. ContactFormPro\r\nexport const ContactFormPro = () => (\r\n <div className=\"w-full space-y-4\">\r\n <div className=\"grid grid-cols-2 gap-4\">\r\n <div className=\"space-y-1\"><label className=\"text-sm\">First Name</label><input className=\"w-full p-2 border rounded-md bg-muted/50\" /></div>\r\n <div className=\"space-y-1\"><label className=\"text-sm\">Last Name</label><input className=\"w-full p-2 border rounded-md bg-muted/50\" /></div>\r\n </div>\r\n <div className=\"space-y-1\"><label className=\"text-sm\">Email</label><input className=\"w-full p-2 border rounded-md bg-muted/50\" /></div>\r\n <div className=\"space-y-1\"><label className=\"text-sm\">Message</label><textarea className=\"w-full p-2 border rounded-md bg-muted/50 h-32\" /></div>\r\n <button className=\"w-full py-3 bg-primary text-primary-foreground font-bold rounded-md\">Send Message</button>\r\n </div>\r\n)\r\n\r\n// 7. AdvancedSearchForm\r\nexport const AdvancedSearchForm = () => (\r\n <div className=\"w-full max-w-2xl bg-card border rounded-xl shadow-lg p-2 flex items-center gap-2\">\r\n <div className=\"flex-1 flex items-center px-3 border-r\"><Search className=\"h-5 w-5 text-muted-foreground mr-2\" /><input className=\"w-full py-2 bg-transparent outline-none\" placeholder=\"Search properties...\" /></div>\r\n <div className=\"w-48 px-3 border-r\"><select className=\"w-full bg-transparent py-2 outline-none text-sm\"><option>All Categories</option><option>Houses</option><option>Apartments</option></select></div>\r\n <div className=\"w-32 px-3\"><select className=\"w-full bg-transparent py-2 outline-none text-sm\"><option>Any Price</option><option>$100k - $500k</option></select></div>\r\n <button className=\"px-6 py-2.5 bg-primary text-primary-foreground font-bold rounded-lg shrink-0\">Search</button>\r\n </div>\r\n)\r\n\r\n// 8. FileUploadForm\r\nexport const FileUploadForm = () => {\r\n const inputRef = React.useRef<HTMLInputElement>(null)\r\n const [files, setFiles] = React.useState<File[]>([])\r\n\r\n return (\r\n <div className=\"w-full p-6 border-2 border-dashed rounded-xl bg-muted/10 hover:bg-muted/30 transition-colors\">\r\n <input type=\"file\" multiple className=\"hidden\" ref={inputRef} onChange={(e) => {\r\n if(e.target.files) setFiles(Array.from(e.target.files))\r\n }} />\r\n <div onClick={() => inputRef.current?.click()} className=\"flex flex-col items-center justify-center text-center cursor-pointer\">\r\n <div className=\"h-12 w-12 rounded-full bg-primary/10 text-primary flex items-center justify-center mb-4\"><Upload className=\"h-6 w-6\" /></div>\r\n <h3 className=\"font-semibold mb-1\">Click to upload or drag and drop</h3>\r\n <p className=\"text-sm text-muted-foreground mb-4\">SVG, PNG, JPG or GIF (max. 800x400px)</p>\r\n </div>\r\n {files.length > 0 && (\r\n <div className=\"mt-4 space-y-2 border-t pt-4\">\r\n <p className=\"text-sm font-bold\">Selected Files:</p>\r\n {files.map((f, i) => (\r\n <div key={i} className=\"text-xs p-2 bg-background border rounded flex justify-between\">\r\n <span className=\"truncate\">{f.name}</span>\r\n <span className=\"text-muted-foreground\">{(f.size / 1024).toFixed(1)} KB</span>\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\n// 9. FeedbackForm\r\nexport const FeedbackForm = () => (\r\n <div className=\"w-full max-w-sm p-6 border rounded-xl bg-card space-y-4 text-center\">\r\n <h3 className=\"font-bold text-lg\">How was your experience?</h3>\r\n <div className=\"flex justify-center gap-2\">\r\n {['😡', '😕', '😐', '🙂', '😍'].map((emoji, i) => <button key={i} className=\"text-3xl hover:scale-125 transition-transform opacity-70 hover:opacity-100\">{emoji}</button>)}\r\n </div>\r\n <textarea className=\"w-full p-3 border rounded-md text-sm mt-4 resize-none h-20\" placeholder=\"Tell us more (optional)\" />\r\n <button className=\"w-full py-2 bg-primary text-primary-foreground font-medium rounded-md\">Submit Feedback</button>\r\n </div>\r\n)\r\n\r\n// 10. InviteUsersForm\r\nexport const InviteUsersForm = () => (\r\n <div className=\"w-full border rounded-xl bg-card p-4 space-y-4\">\r\n <div className=\"flex gap-2\">\r\n <input className=\"flex-1 p-2 border rounded-md text-sm\" placeholder=\"Email address\" />\r\n <select className=\"p-2 border rounded-md text-sm bg-background\"><option>Member</option><option>Admin</option></select>\r\n <button className=\"px-4 py-2 bg-secondary text-secondary-foreground font-medium rounded-md text-sm\">Send Invite</button>\r\n </div>\r\n <div className=\"border-t pt-4 space-y-3\">\r\n <h4 className=\"text-sm font-semibold\">Pending Invites</h4>\r\n <div className=\"flex justify-between items-center text-sm\"><span className=\"text-muted-foreground\">john@example.com</span><span className=\"px-2 py-1 bg-muted rounded text-xs\">Member</span></div>\r\n </div>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Star, Minus, Plus, Trash2, ShoppingBag, ArrowRight, Lock } from \"lucide-react\"\r\n\r\nexport const ProductGallery = () => {\r\n const [active, setActive] = React.useState(1)\r\n return (\r\n <div className=\"flex flex-col md:flex-row gap-4 w-full\">\r\n <div className=\"flex flex-row md:flex-col gap-2 order-2 md:order-1\">\r\n {[1, 2, 3, 4].map(i => (\r\n <div key={i} onClick={() => setActive(i)} className={`w-16 h-16 md:w-20 md:h-24 bg-muted rounded-lg border-2 transition-all ${i === active ? 'border-primary ring-2 ring-primary/20 scale-105' : 'border-transparent cursor-pointer hover:border-foreground/20'}`} />\r\n ))}\r\n </div>\r\n <div className=\"flex-1 bg-muted rounded-2xl aspect-[4/3] flex items-center justify-center text-muted-foreground order-1 md:order-2 overflow-hidden relative\">\r\n <div className=\"absolute inset-0 bg-gradient-to-tr from-background/10 to-transparent\" />\r\n <span className=\"font-medium\">Product View {active}</span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const AddToCartBar = () => {\r\n const [qty, setQty] = React.useState(1)\r\n return (\r\n <div className=\"flex items-center gap-4 w-full p-4 border rounded-2xl bg-card shadow-lg sticky bottom-4 z-10 max-w-2xl mx-auto\">\r\n <div><p className=\"text-sm text-muted-foreground\">Total Price</p><h3 className=\"text-2xl font-bold\">${(qty * 129).toFixed(2)}</h3></div>\r\n <div className=\"flex-1\"></div>\r\n <div className=\"flex items-center border rounded-lg h-12 overflow-hidden bg-background\">\r\n <button onClick={() => setQty(Math.max(1, qty - 1))} className=\"px-4 hover:bg-muted h-full transition-colors\">-</button>\r\n <span className=\"px-4 font-bold min-w-[2.5rem] text-center\">{qty}</span>\r\n <button onClick={() => setQty(qty + 1)} className=\"px-4 hover:bg-muted h-full transition-colors\">+</button>\r\n </div>\r\n <button className=\"px-6 md:px-8 h-12 bg-primary text-primary-foreground font-bold rounded-lg flex items-center gap-2 hover:bg-primary/90 transition-all shadow-md hover:shadow-lg\"><ShoppingBag className=\"w-5 h-5\" /> <span className=\"hidden md:inline\">Add to Cart</span></button>\r\n </div>\r\n )\r\n}\r\n\r\nexport const CartDrawerItem = () => {\r\n const [qty, setQty] = React.useState(1)\r\n const [visible, setVisible] = React.useState(true)\r\n \r\n if (!visible) return null;\r\n\r\n return (\r\n <div className=\"flex gap-4 py-4 border-b\">\r\n <div className=\"w-20 h-20 bg-muted rounded-xl border\" />\r\n <div className=\"flex-1 flex flex-col\">\r\n <div className=\"flex justify-between\"><h4 className=\"font-bold text-sm md:text-base\">Premium Wireless Headphones</h4><button onClick={() => setVisible(false)} className=\"text-muted-foreground hover:text-destructive transition-colors p-1\"><Trash2 className=\"w-4 h-4\" /></button></div>\r\n <p className=\"text-sm text-muted-foreground mb-auto\">Matte Black</p>\r\n <div className=\"flex justify-between items-center mt-3\">\r\n <div className=\"flex items-center border rounded-lg overflow-hidden h-8 bg-background\">\r\n <button onClick={() => setQty(Math.max(1, qty - 1))} className=\"px-3 hover:bg-muted transition-colors\">-</button>\r\n <span className=\"px-3 text-sm font-bold min-w-[2rem] text-center\">{qty}</span>\r\n <button onClick={() => setQty(qty + 1)} className=\"px-3 hover:bg-muted transition-colors\">+</button>\r\n </div>\r\n <span className=\"font-bold text-lg\">${(qty * 299).toFixed(2)}</span>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport const OrderSummaryCard = () => (\r\n <div className=\"p-6 bg-card border rounded-2xl shadow-sm space-y-4\">\r\n <h3 className=\"font-bold text-xl border-b pb-4\">Order Summary</h3>\r\n <div className=\"space-y-3 text-sm\">\r\n <div className=\"flex justify-between font-medium\"><span className=\"text-muted-foreground\">Subtotal</span><span>$129.00</span></div>\r\n <div className=\"flex justify-between font-medium\"><span className=\"text-muted-foreground\">Shipping</span><span>$10.00</span></div>\r\n <div className=\"flex justify-between font-medium\"><span className=\"text-muted-foreground\">Tax</span><span>$6.45</span></div>\r\n </div>\r\n <div className=\"border-t pt-4 flex justify-between font-black text-xl\"><span>Total</span><span>$145.45</span></div>\r\n <button className=\"w-full py-3.5 bg-primary text-primary-foreground font-bold rounded-xl mt-4 flex justify-center items-center gap-2 hover:bg-primary/90 transition-colors shadow-md hover:shadow-lg hover:-translate-y-0.5\">Checkout <ArrowRight className=\"w-4 h-4\" /></button>\r\n <div className=\"flex items-center justify-center gap-2 mt-4 text-muted-foreground opacity-50\">\r\n <Lock className=\"w-3 h-3\" /> <span className=\"text-xs font-medium\">Secure Checkout</span>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 5. PromoCodeInput\r\nexport const PromoCodeInput = () => (\r\n <div className=\"flex gap-2\">\r\n <input className=\"flex-1 px-4 py-2 border rounded-md text-sm\" placeholder=\"Discount code\" />\r\n <button className=\"px-6 py-2 bg-secondary text-secondary-foreground font-medium rounded-md text-sm\">Apply</button>\r\n </div>\r\n)\r\n\r\n// 6. ShippingAddressForm\r\nexport const ShippingAddressForm = () => (\r\n <div className=\"space-y-4\">\r\n <h3 className=\"font-bold text-lg mb-2\">Shipping Information</h3>\r\n <div className=\"grid grid-cols-2 gap-4\">\r\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"First Name\" />\r\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"Last Name\" />\r\n </div>\r\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"Address\" />\r\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"Apartment, suite, etc. (optional)\" />\r\n <div className=\"grid grid-cols-3 gap-4\">\r\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"City\" />\r\n <select className=\"p-2 border rounded-md w-full bg-background\"><option>State</option></select>\r\n <input className=\"p-2 border rounded-md w-full\" placeholder=\"ZIP code\" />\r\n </div>\r\n </div>\r\n)\r\n\r\n// 7. ProductReview\r\nexport const ProductReview = () => (\r\n <div className=\"py-6 border-b\">\r\n <div className=\"flex justify-between mb-2\">\r\n <div className=\"font-semibold\">Alex Johnson</div>\r\n <div className=\"text-sm text-muted-foreground\">October 12, 2025</div>\r\n </div>\r\n <div className=\"flex text-yellow-400 mb-3\">{[1, 2, 3, 4, 5].map(i => <Star key={i} className=\"w-4 h-4 fill-current\" />)}</div>\r\n <h4 className=\"font-bold mb-1\">Incredible sound quality!</h4>\r\n <p className=\"text-muted-foreground text-sm leading-relaxed\">I've been using these for a month and they are absolutely fantastic. The noise cancellation is top tier and battery life is exactly as advertised.</p>\r\n </div>\r\n)\r\n\r\n// 8. ColorSelector\r\nexport const ColorSelector = () => (\r\n <div>\r\n <h4 className=\"text-sm font-medium mb-3\">Color - <span className=\"text-muted-foreground\">Matte Black</span></h4>\r\n <div className=\"flex gap-3\">\r\n {['bg-black', 'bg-gray-300', 'bg-blue-900', 'bg-red-700'].map((color, i) => (\r\n <button key={i} className={`w-10 h-10 rounded-full ${color} ring-offset-2 ${i === 0 ? 'ring-2 ring-primary' : 'ring-1 ring-border'}`} />\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 9. SizeSelector\r\nexport const SizeSelector = () => (\r\n <div>\r\n <div className=\"flex justify-between items-end mb-3\">\r\n <h4 className=\"text-sm font-medium\">Size</h4>\r\n <a href=\"#\" className=\"text-xs text-primary hover:underline\">Size guide</a>\r\n </div>\r\n <div className=\"grid grid-cols-4 gap-2\">\r\n {['S', 'M', 'L', 'XL'].map((size, i) => (\r\n <button key={i} className={`py-2 border rounded-md font-medium transition-colors ${i === 1 ? 'border-primary bg-primary/5 text-primary' : 'hover:border-foreground'}`}>{size}</button>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 10. CategoryCard\r\nexport const CategoryCard = () => (\r\n <div className=\"relative group overflow-hidden rounded-2xl cursor-pointer aspect-square bg-muted flex items-center justify-center\">\r\n <div className=\"absolute inset-0 bg-black/20 group-hover:bg-black/40 transition-colors z-10\" />\r\n <div className=\"absolute inset-0 scale-100 group-hover:scale-110 transition-transform duration-500 bg-gradient-to-tr from-indigo-500 to-purple-500 opacity-50\" />\r\n <div className=\"relative z-20 text-white text-center\">\r\n <h3 className=\"text-3xl font-bold mb-2\">Sneakers</h3>\r\n <div className=\"flex items-center gap-1 text-sm font-medium justify-center group-hover:gap-2 transition-all\">Shop Now <ArrowRight className=\"w-4 h-4\" /></div>\r\n </div>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { Sparkles, Send, Mic, Copy, Check, Bot, User, Settings, FileText, ChevronDown, RefreshCw, Plus } from \"lucide-react\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// 1. ChatBubbleUser\r\nexport const ChatBubbleUser = ({ message }: any) => (\r\n <div className=\"flex gap-4 justify-end mb-6\">\r\n <div className=\"bg-primary text-primary-foreground px-5 py-3 rounded-2xl rounded-tr-sm max-w-[80%] shadow-sm\">\r\n <p className=\"leading-relaxed\">{message || \"How do I build a Next.js application with Tailwind CSS?\"}</p>\r\n </div>\r\n <div className=\"w-8 h-8 rounded-full bg-muted flex items-center justify-center shrink-0 border\"><User className=\"w-4 h-4\" /></div>\r\n </div>\r\n)\r\n\r\n// 2. ChatBubbleAI\r\nexport const ChatBubbleAI = ({ message }: any) => (\r\n <div className=\"flex gap-4 mb-6\">\r\n <div className=\"w-8 h-8 rounded-full bg-primary/10 text-primary flex items-center justify-center shrink-0 border border-primary/20\"><Bot className=\"w-4 h-4\" /></div>\r\n <div className=\"bg-muted/50 px-5 py-3 rounded-2xl rounded-tl-sm max-w-[80%] border border-border/50\">\r\n <p className=\"leading-relaxed text-foreground\">{message || \"You can start by running npx create-next-app@latest and selecting Tailwind CSS during the setup process.\"}</p>\r\n <div className=\"flex gap-2 mt-3 pt-3 border-t border-border/50\">\r\n <button className=\"text-muted-foreground hover:text-foreground\"><Copy className=\"w-4 h-4\" /></button>\r\n <button className=\"text-muted-foreground hover:text-foreground\"><RefreshCw className=\"w-4 h-4\" /></button>\r\n </div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 3. AIPromptInput\r\nexport const AIPromptInput = () => (\r\n <div className=\"w-full relative border rounded-2xl bg-card shadow-lg flex items-end p-2 focus-within:ring-2 focus-within:ring-primary/50 transition-shadow\">\r\n <button className=\"p-3 text-muted-foreground hover:text-foreground\"><Mic className=\"w-5 h-5\" /></button>\r\n <textarea className=\"flex-1 max-h-32 min-h-[44px] py-3 bg-transparent outline-none resize-none placeholder:text-muted-foreground\" placeholder=\"Ask anything...\" rows={1} />\r\n <button className=\"p-3 bg-primary text-primary-foreground rounded-xl shadow-sm hover:opacity-90\"><Send className=\"w-5 h-5\" /></button>\r\n </div>\r\n)\r\n\r\n// 4. ThinkingLoader\r\nexport const ThinkingLoader = () => (\r\n <div className=\"flex gap-4 mb-6\">\r\n <div className=\"w-8 h-8 rounded-full bg-primary/10 text-primary flex items-center justify-center shrink-0 border border-primary/20\"><Bot className=\"w-4 h-4\" /></div>\r\n <div className=\"bg-muted/50 px-5 py-4 rounded-2xl rounded-tl-sm border border-border/50 flex items-center gap-1.5\">\r\n <motion.div animate={{ opacity: [0.3, 1, 0.3] }} transition={{ repeat: Infinity, duration: 1.4, delay: 0 }} className=\"w-2 h-2 rounded-full bg-foreground\" />\r\n <motion.div animate={{ opacity: [0.3, 1, 0.3] }} transition={{ repeat: Infinity, duration: 1.4, delay: 0.2 }} className=\"w-2 h-2 rounded-full bg-foreground\" />\r\n <motion.div animate={{ opacity: [0.3, 1, 0.3] }} transition={{ repeat: Infinity, duration: 1.4, delay: 0.4 }} className=\"w-2 h-2 rounded-full bg-foreground\" />\r\n </div>\r\n </div>\r\n)\r\n\r\n// 5. ModelSelector\r\nexport const ModelSelector = () => (\r\n <div className=\"inline-flex items-center gap-2 px-3 py-1.5 bg-muted rounded-lg border cursor-pointer hover:bg-muted/80 transition-colors\">\r\n <Sparkles className=\"w-4 h-4 text-primary\" />\r\n <span className=\"text-sm font-medium\">GPT-4 Turbo</span>\r\n <ChevronDown className=\"w-4 h-4 text-muted-foreground ml-2\" />\r\n </div>\r\n)\r\n\r\n// 6. GeneratedCodeBlock\r\nexport const GeneratedCodeBlock = () => (\r\n <div className=\"rounded-xl border border-border bg-zinc-950 overflow-hidden my-4 max-w-2xl\">\r\n <div className=\"flex items-center justify-between px-4 py-2 border-b border-white/10 bg-white/5\">\r\n <span className=\"text-xs text-zinc-400 font-mono\">tsx</span>\r\n <button className=\"flex items-center gap-1 text-xs text-zinc-400 hover:text-white\"><Copy className=\"w-3 h-3\" /> Copy code</button>\r\n </div>\r\n <pre className=\"p-4 text-sm text-zinc-300 font-mono overflow-x-auto\">\r\n <code>{`export default function App() {\\n return (\\n <div className=\"p-4\">\\n <h1 className=\"text-2xl font-bold\">Hello World</h1>\\n </div>\\n );\\n}`}</code>\r\n </pre>\r\n </div>\r\n)\r\n\r\n// 7. ChatHistorySidebar\r\nexport const ChatHistorySidebar = () => (\r\n <div className=\"w-64 h-full border-r bg-background p-4 flex flex-col\">\r\n <button className=\"w-full py-2 bg-primary text-primary-foreground rounded-lg font-medium mb-6 text-sm flex items-center justify-center gap-2\"><Plus className=\"w-4 h-4\" /> New Chat</button>\r\n <div className=\"text-xs font-semibold text-muted-foreground mb-3 px-2\">Today</div>\r\n <div className=\"space-y-1\">\r\n <button className=\"w-full text-left px-3 py-2 text-sm bg-muted rounded-md font-medium truncate flex items-center gap-2\"><FileText className=\"w-4 h-4 text-muted-foreground shrink-0\" /> React State Management</button>\r\n <button className=\"w-full text-left px-3 py-2 text-sm text-muted-foreground hover:bg-muted/50 rounded-md truncate flex items-center gap-2\"><FileText className=\"w-4 h-4 shrink-0\" /> Tailwind Layouts</button>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 8. AIFeatureCard\r\nexport const AIFeatureCard = () => (\r\n <div className=\"p-6 rounded-2xl border bg-card relative overflow-hidden group cursor-pointer hover:border-primary/50 transition-colors\">\r\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-primary/10 rounded-full blur-2xl -translate-y-1/2 translate-x-1/2 group-hover:bg-primary/20 transition-colors\" />\r\n <div className=\"w-12 h-12 bg-primary/10 text-primary rounded-xl flex items-center justify-center mb-4 relative z-10\"><Sparkles className=\"w-6 h-6\" /></div>\r\n <h3 className=\"text-xl font-bold mb-2 relative z-10\">Smart Autocomplete</h3>\r\n <p className=\"text-sm text-muted-foreground relative z-10\">Let AI predict and complete your code in real-time as you type.</p>\r\n </div>\r\n)\r\n\r\n// 9. SuggestionChips\r\nexport const SuggestionChips = () => (\r\n <div className=\"flex flex-wrap gap-2\">\r\n {[\"Explain this code\", \"Refactor for performance\", \"Add type definitions\"].map((text, i) => (\r\n <button key={i} className=\"px-4 py-2 rounded-full border bg-background text-sm text-muted-foreground hover:text-foreground hover:border-primary/50 transition-colors\">{text}</button>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 10. VoiceInputPulse\r\nexport const VoiceInputPulse = () => (\r\n <div className=\"flex items-center justify-center w-24 h-24 relative\">\r\n <motion.div animate={{ scale: [1, 1.5, 1], opacity: [0.5, 0, 0.5] }} transition={{ repeat: Infinity, duration: 2 }} className=\"absolute inset-0 rounded-full bg-red-500/20\" />\r\n <motion.div animate={{ scale: [1, 1.2, 1], opacity: [0.8, 0.2, 0.8] }} transition={{ repeat: Infinity, duration: 2, delay: 0.2 }} className=\"absolute inset-2 rounded-full bg-red-500/30\" />\r\n <button className=\"w-16 h-16 rounded-full bg-red-500 text-white flex items-center justify-center relative z-10 shadow-xl\"><Mic className=\"w-6 h-6\" /></button>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { MoreHorizontal, ArrowUpDown, Download, Edit2, Trash2, CheckCircle2, XCircle } from \"lucide-react\"\r\n\r\nimport {\r\n Table,\r\n TableHeader,\r\n TableBody,\r\n TableFooter,\r\n TableRow,\r\n TableHead,\r\n TableCell,\r\n TableCaption,\r\n} from \"./table\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\nexport interface DataTableProColumn<T = any> {\r\n header: React.ReactNode\r\n accessorKey?: keyof T | string\r\n cell?: (item: T, index: number) => React.ReactNode\r\n className?: string\r\n}\r\n\r\nexport interface DataTableProProps<T = any> extends React.HTMLAttributes<HTMLDivElement> {\r\n data?: T[]\r\n columns?: DataTableProColumn<T>[]\r\n searchPlaceholder?: string\r\n itemsPerPage?: number\r\n showSearch?: boolean\r\n showExport?: boolean\r\n children?: React.ReactNode\r\n}\r\n\r\nexport type DataTableProComponent = ((props: DataTableProProps) => React.ReactElement | null) & {\r\n Header: typeof TableHeader\r\n Body: typeof TableBody\r\n Footer: typeof TableFooter\r\n Row: typeof TableRow\r\n Head: typeof TableHead\r\n Cell: typeof TableCell\r\n Caption: typeof TableCaption\r\n}\r\n\r\n// 1. DataTablePro\r\nconst DataTableProBase = ({\r\n data: customData,\r\n columns: customColumns,\r\n searchPlaceholder = \"Search by name...\",\r\n itemsPerPage = 3,\r\n showSearch = true,\r\n showExport = true,\r\n className,\r\n children,\r\n ...props\r\n}: DataTableProProps) => {\r\n // If compound children are passed, render them directly in a Table container\r\n if (children) {\r\n return (\r\n <div className={cn(\"w-full border rounded-xl bg-card overflow-hidden\", className)} {...props}>\r\n <Table>{children}</Table>\r\n </div>\r\n )\r\n }\r\n\r\n const defaultUsers = [\r\n { id: 1, name: \"Alice Freeman\", role: \"Admin\", status: \"Active\" },\r\n { id: 2, name: \"Bob Smith\", role: \"Editor\", status: \"Inactive\" },\r\n { id: 3, name: \"Charlie Davis\", role: \"Viewer\", status: \"Active\" },\r\n { id: 4, name: \"Diana Prince\", role: \"Admin\", status: \"Active\" },\r\n { id: 5, name: \"Evan Wright\", role: \"User\", status: \"Inactive\" },\r\n { id: 6, name: \"Fiona Gallagher\", role: \"Viewer\", status: \"Active\" }\r\n ]\r\n\r\n const [data, setData] = React.useState<any[]>(customData || defaultUsers)\r\n const [search, setSearch] = React.useState(\"\")\r\n const [page, setPage] = React.useState(1)\r\n const [editingId, setEditingId] = React.useState<number | null>(null)\r\n const [editName, setEditName] = React.useState(\"\")\r\n\r\n React.useEffect(() => {\r\n if (customData) {\r\n setData(customData)\r\n }\r\n }, [customData])\r\n\r\n const handleDelete = (id: number) => {\r\n setData(data.filter(item => item.id !== id))\r\n }\r\n\r\n const handleEdit = (id: number, name: string) => {\r\n setEditingId(id)\r\n setEditName(name)\r\n }\r\n\r\n const saveEdit = (id: number) => {\r\n setData(data.map(item => item.id === id ? { ...item, name: editName } : item))\r\n setEditingId(null)\r\n }\r\n\r\n const filteredData = data.filter(item => {\r\n if (!search.trim()) return true\r\n return Object.values(item).some(v =>\r\n String(v).toLowerCase().includes(search.toLowerCase())\r\n )\r\n })\r\n\r\n const totalPages = Math.max(1, Math.ceil(filteredData.length / itemsPerPage))\r\n const paginatedData = filteredData.slice((page - 1) * itemsPerPage, page * itemsPerPage)\r\n\r\n return (\r\n <div className={cn(\"w-full border rounded-xl bg-card overflow-hidden\", className)} {...props}>\r\n {showSearch && (\r\n <div className=\"flex justify-between items-center p-4 border-b\">\r\n <input \r\n className=\"px-3 py-1.5 border border-border rounded-md text-sm w-64 bg-background placeholder:text-muted-foreground outline-none focus:border-primary\" \r\n placeholder={searchPlaceholder} \r\n value={search}\r\n onChange={(e) => {\r\n setSearch(e.target.value)\r\n setPage(1)\r\n }}\r\n />\r\n {showExport && (\r\n <button\r\n type=\"button\"\r\n onClick={() => alert(\"Data exported to CSV\")}\r\n className=\"px-4 py-1.5 bg-primary text-primary-foreground text-sm font-medium rounded-md hover:bg-primary/90 transition-colors cursor-pointer\"\r\n >\r\n Export\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n <div className=\"overflow-x-auto\">\r\n <table className=\"w-full text-sm text-left\">\r\n <thead className=\"bg-muted/50 text-muted-foreground uppercase text-xs border-b\">\r\n {customColumns ? (\r\n <tr>\r\n {customColumns.map((col, idx) => (\r\n <th key={idx} className={cn(\"px-4 py-3\", col.className)}>{col.header}</th>\r\n ))}\r\n </tr>\r\n ) : (\r\n <tr>\r\n <th className=\"px-4 py-3 cursor-pointer hover:text-foreground\">Name <ArrowUpDown className=\"w-3 h-3 inline ml-1\" /></th>\r\n <th className=\"px-4 py-3\">Role</th>\r\n <th className=\"px-4 py-3\">Status</th>\r\n <th className=\"px-4 py-3 text-right\">Actions</th>\r\n </tr>\r\n )}\r\n </thead>\r\n <tbody className=\"divide-y divide-border\">\r\n {customColumns ? (\r\n paginatedData.length > 0 ? paginatedData.map((item, rowIdx) => (\r\n <tr key={rowIdx} className=\"hover:bg-muted/30\">\r\n {customColumns.map((col, colIdx) => (\r\n <td key={colIdx} className={cn(\"px-4 py-3\", col.className)}>\r\n {col.cell ? col.cell(item, rowIdx) : col.accessorKey ? String(item[col.accessorKey] ?? \"\") : null}\r\n </td>\r\n ))}\r\n </tr>\r\n )) : (\r\n <tr><td colSpan={customColumns.length} className=\"text-center py-6 text-muted-foreground\">No entries found.</td></tr>\r\n )\r\n ) : (\r\n paginatedData.length > 0 ? paginatedData.map(item => (\r\n <tr key={item.id} className=\"hover:bg-muted/30\">\r\n <td className=\"px-4 py-3 font-medium\">\r\n {editingId === item.id ? (\r\n <input autoFocus value={editName} onChange={(e) => setEditName(e.target.value)} className=\"w-full px-2 py-1 border rounded bg-background\" />\r\n ) : item.name}\r\n </td>\r\n <td className=\"px-4 py-3 text-muted-foreground\">{item.role}</td>\r\n <td className=\"px-4 py-3\">\r\n <span className={`px-2 py-1 rounded-full text-xs font-medium ${item.status === 'Active' ? 'bg-green-500/10 text-green-500' : 'bg-red-500/10 text-red-500'}`}>\r\n {item.status}\r\n </span>\r\n </td>\r\n <td className=\"px-4 py-3 text-right flex justify-end gap-2\">\r\n {editingId === item.id ? (\r\n <button onClick={() => saveEdit(item.id)} className=\"px-2 py-1 bg-green-500/10 text-green-500 rounded text-xs font-medium\">Save</button>\r\n ) : (\r\n <button onClick={() => handleEdit(item.id, item.name)} className=\"p-1.5 hover:bg-muted rounded text-muted-foreground\"><Edit2 className=\"w-4 h-4\" /></button>\r\n )}\r\n <button onClick={() => handleDelete(item.id)} className=\"p-1.5 hover:bg-destructive/10 rounded text-destructive\"><Trash2 className=\"w-4 h-4\" /></button>\r\n </td>\r\n </tr>\r\n )) : (\r\n <tr><td colSpan={4} className=\"text-center py-6 text-muted-foreground\">No users found.</td></tr>\r\n )\r\n )}\r\n </tbody>\r\n </table>\r\n </div>\r\n <div className=\"p-4 border-t border-border text-sm text-muted-foreground flex justify-between items-center\">\r\n <span>Showing {paginatedData.length} of {filteredData.length} entries</span>\r\n <div className=\"flex gap-1\">\r\n <button disabled={page === 1} onClick={() => setPage(page - 1)} className=\"px-3 py-1 border rounded hover:bg-muted disabled:opacity-50\">Prev</button>\r\n <span className=\"px-3 py-1 font-medium\">{page} / {totalPages}</span>\r\n <button disabled={page === totalPages || totalPages === 0} onClick={() => setPage(page + 1)} className=\"px-3 py-1 border rounded hover:bg-muted disabled:opacity-50\">Next</button>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// Dot-notation attachment for DataTablePro\r\nexport const DataTablePro: DataTableProComponent = Object.assign(DataTableProBase, {\r\n Header: TableHeader,\r\n Body: TableBody,\r\n Footer: TableFooter,\r\n Row: TableRow,\r\n Head: TableHead,\r\n Cell: TableCell,\r\n Caption: TableCaption,\r\n})\r\n\r\n// 2. InvoiceTable\r\nexport const InvoiceTable = () => (\r\n <div className=\"w-full border rounded-xl bg-card overflow-hidden\">\r\n <table className=\"w-full text-sm text-left\">\r\n <thead className=\"bg-muted/50 text-muted-foreground border-b\">\r\n <tr><th className=\"px-6 py-4 font-semibold\">Invoice ID</th><th className=\"px-6 py-4 font-semibold\">Date</th><th className=\"px-6 py-4 font-semibold\">Amount</th><th className=\"px-6 py-4 font-semibold text-right\">Download</th></tr>\r\n </thead>\r\n <tbody className=\"divide-y\">\r\n {['INV-001', 'INV-002'].map((inv, i) => (\r\n <tr key={i} className=\"hover:bg-muted/30\">\r\n <td className=\"px-6 py-4 font-medium\">{inv}</td><td className=\"px-6 py-4 text-muted-foreground\">Oct 24, 2025</td><td className=\"px-6 py-4 font-bold\">${(i+1)*150}.00</td>\r\n <td className=\"px-6 py-4 text-right\"><button className=\"p-2 text-primary hover:bg-primary/10 rounded-full transition-colors\"><Download className=\"w-4 h-4\" /></button></td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n)\r\n\r\n// 3. UserDirectoryTable\r\nexport const UserDirectoryTable = () => (\r\n <div className=\"w-full grid gap-4\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"flex items-center justify-between p-4 border rounded-xl bg-card hover:border-primary transition-colors cursor-pointer\">\r\n <div className=\"flex items-center gap-4\">\r\n <div className=\"w-12 h-12 rounded-full bg-muted\" />\r\n <div><h4 className=\"font-bold\">John Doe {i}</h4><p className=\"text-sm text-muted-foreground\">Software Engineer</p></div>\r\n </div>\r\n <div className=\"flex gap-2\">\r\n <button className=\"p-2 border rounded-md hover:bg-muted\"><Edit2 className=\"w-4 h-4\" /></button>\r\n <button className=\"p-2 border rounded-md text-destructive hover:bg-destructive/10\"><Trash2 className=\"w-4 h-4\" /></button>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 4. TransactionHistory\r\nexport const TransactionHistory = () => (\r\n <div className=\"w-full border rounded-xl bg-card\">\r\n <div className=\"p-4 border-b font-bold text-lg\">Recent Transactions</div>\r\n <div className=\"divide-y\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"flex items-center justify-between p-4\">\r\n <div className=\"flex items-center gap-3\">\r\n <div className={`w-10 h-10 rounded-full flex items-center justify-center ${i % 2 === 0 ? 'bg-green-500/10 text-green-500' : 'bg-red-500/10 text-red-500'}`}>\r\n {i % 2 === 0 ? <ArrowUpDown className=\"w-5 h-5\" /> : <ArrowUpDown className=\"w-5 h-5 rotate-180\" />}\r\n </div>\r\n <div><p className=\"font-medium\">{i % 2 === 0 ? 'Payment Received' : 'Subscription Auto-renew'}</p><p className=\"text-xs text-muted-foreground\">Today, 10:23 AM</p></div>\r\n </div>\r\n <div className={`font-bold ${i % 2 === 0 ? 'text-green-500' : 'text-foreground'}`}>{i % 2 === 0 ? '+' : '-'}${i * 45}.00</div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 5. FileExplorerTable (Mock)\r\nexport const FileExplorerTable = () => (\r\n <div className=\"w-full border rounded-xl bg-card text-sm\">\r\n <div className=\"grid grid-cols-12 px-4 py-3 bg-muted/50 border-b font-medium text-muted-foreground\"><div className=\"col-span-6\">Name</div><div className=\"col-span-3\">Date Modified</div><div className=\"col-span-3\">Size</div></div>\r\n <div className=\"divide-y\">\r\n <div className=\"grid grid-cols-12 px-4 py-3 items-center hover:bg-muted/30 cursor-pointer\"><div className=\"col-span-6 flex items-center gap-2 font-medium\">📁 Documents</div><div className=\"col-span-3 text-muted-foreground\">Oct 12</div><div className=\"col-span-3 text-muted-foreground\">--</div></div>\r\n <div className=\"grid grid-cols-12 px-4 py-3 items-center hover:bg-muted/30 cursor-pointer\"><div className=\"col-span-6 flex items-center gap-2 font-medium\">📄 report.pdf</div><div className=\"col-span-3 text-muted-foreground\">Oct 10</div><div className=\"col-span-3 text-muted-foreground\">2.4 MB</div></div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 6. LeaderboardTable\r\nexport const LeaderboardTable = () => (\r\n <div className=\"w-full border rounded-2xl bg-gradient-to-b from-card to-muted/20 overflow-hidden shadow-lg\">\r\n <div className=\"p-6 text-center border-b\"><h3 className=\"font-bold text-xl uppercase tracking-widest text-yellow-500\">Global Ranking</h3></div>\r\n <div className=\"divide-y\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className={`flex items-center px-6 py-4 ${i === 1 ? 'bg-yellow-500/10' : ''}`}>\r\n <div className={`font-black text-2xl w-8 ${i===1?'text-yellow-500': i===2?'text-gray-400': 'text-amber-700'}`}>#{i}</div>\r\n <div className=\"w-10 h-10 rounded-full bg-muted mx-4\" />\r\n <div className=\"flex-1 font-bold text-lg\">Player {i}</div>\r\n <div className=\"font-mono font-bold text-primary\">{10000 - i*500} pts</div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 7. ProductInventoryTable\r\nexport const ProductInventoryTable = () => (\r\n <div className=\"w-full border rounded-xl bg-card overflow-x-auto\">\r\n <table className=\"w-full text-sm\">\r\n <thead className=\"bg-muted/50 border-b text-left text-muted-foreground\">\r\n <tr><th className=\"px-4 py-3 font-medium\">Product</th><th className=\"px-4 py-3 font-medium\">SKU</th><th className=\"px-4 py-3 font-medium\">Stock</th><th className=\"px-4 py-3 font-medium\">Price</th></tr>\r\n </thead>\r\n <tbody className=\"divide-y\">\r\n {[1, 2].map(i => (\r\n <tr key={i}>\r\n <td className=\"px-4 py-3 flex items-center gap-3\"><div className=\"w-8 h-8 bg-muted rounded\" /><span className=\"font-medium\">Item {i}</span></td>\r\n <td className=\"px-4 py-3 text-muted-foreground\">SKU-{i}000</td>\r\n <td className=\"px-4 py-3\"><div className=\"flex items-center gap-2\"><div className={`w-2 h-2 rounded-full ${i===1?'bg-green-500':'bg-red-500'}`}/> {i===1?'145 in stock':'Out of stock'}</div></td>\r\n <td className=\"px-4 py-3 font-medium\">$49.99</td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n)\r\n\r\n// 8. ScheduleTable\r\nexport const ScheduleTable = () => (\r\n <div className=\"w-full border rounded-xl bg-card overflow-hidden\">\r\n <div className=\"grid grid-cols-6 divide-x border-b bg-muted/50 text-center text-xs font-semibold py-2\">\r\n <div>Time</div><div>Mon</div><div>Tue</div><div>Wed</div><div>Thu</div><div>Fri</div>\r\n </div>\r\n <div className=\"grid grid-cols-6 divide-x border-b text-center text-sm h-16\">\r\n <div className=\"flex items-center justify-center font-medium text-muted-foreground border-r\">09:00</div>\r\n <div className=\"col-span-2 bg-primary/10 text-primary p-2 m-1 rounded border border-primary/20 text-xs text-left font-medium\">Team Meeting</div>\r\n <div className=\"col-span-1\"></div>\r\n <div className=\"col-span-1 bg-indigo-500/10 text-indigo-500 p-2 m-1 rounded border border-indigo-500/20 text-xs text-left font-medium\">Design Sync</div>\r\n <div className=\"col-span-1\"></div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 9. PricingComparisonTable\r\nexport const PricingComparisonTable = () => (\r\n <div className=\"w-full border rounded-xl bg-card overflow-hidden\">\r\n <table className=\"w-full text-sm text-center\">\r\n <thead className=\"bg-muted/30 border-b\">\r\n <tr><th className=\"p-4 text-left\">Features</th><th className=\"p-4 font-bold text-lg\">Basic</th><th className=\"p-4 font-bold text-lg text-primary\">Pro</th></tr>\r\n </thead>\r\n <tbody className=\"divide-y\">\r\n {['Unlimited Projects', 'Custom Domain', '24/7 Support'].map((f, i) => (\r\n <tr key={i} className=\"hover:bg-muted/10\">\r\n <td className=\"p-4 text-left font-medium\">{f}</td>\r\n <td className=\"p-4\">{i < 1 ? <CheckCircle2 className=\"w-5 h-5 mx-auto text-green-500\" /> : <XCircle className=\"w-5 h-5 mx-auto text-muted-foreground/30\" />}</td>\r\n <td className=\"p-4\"><CheckCircle2 className=\"w-5 h-5 mx-auto text-primary\" /></td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n)\r\n\r\n// 10. CompactDataList\r\nexport const CompactDataList = () => (\r\n <div className=\"w-full border rounded-lg bg-card divide-y text-sm\">\r\n {['Server CPU Usage', 'Active Connections', 'Memory Load'].map((l, i) => (\r\n <div key={i} className=\"flex justify-between items-center p-3 hover:bg-muted/50 cursor-pointer\">\r\n <span className=\"text-muted-foreground font-medium\">{l}</span>\r\n <span className=\"font-bold\">{90 - i*15}%</span>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Activity, Users, DollarSign, ArrowUpRight, CheckCircle2, HardDrive, Server, Zap, Plus, FileText, Settings } from \"lucide-react\"\r\n\r\n// 1. DashboardShell (Visual structure)\r\nexport const DashboardShell = ({ children }: any) => (\r\n <div className=\"flex h-[400px] w-full border rounded-xl overflow-hidden bg-background\">\r\n <div className=\"w-48 border-r bg-muted/20 p-4 flex flex-col gap-2\">\r\n <div className=\"w-full h-8 bg-muted rounded mb-4\" />\r\n {[1, 2, 3].map(i => <div key={i} className=\"w-full h-6 bg-muted/50 rounded\" />)}\r\n </div>\r\n <div className=\"flex-1 flex flex-col\">\r\n <div className=\"h-12 border-b flex items-center px-4 justify-between bg-card\"><div className=\"w-32 h-4 bg-muted rounded\" /><div className=\"w-8 h-8 bg-muted rounded-full\" /></div>\r\n <div className=\"flex-1 p-4 overflow-y-auto bg-muted/10\">{children || <div className=\"w-full h-full border-2 border-dashed rounded-lg flex items-center justify-center text-muted-foreground\">Dashboard Content</div>}</div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 2. StatWidgetCard\r\nexport const StatWidgetCard = ({ title = \"Total Revenue\", value = \"$45,231.89\", icon: Icon = DollarSign, trend = \"+20.1%\" }: any) => (\r\n <div className=\"p-6 border rounded-xl bg-card shadow-sm\">\r\n <div className=\"flex justify-between items-center mb-4\">\r\n <h3 className=\"text-sm font-medium text-muted-foreground\">{title}</h3>\r\n <Icon className=\"w-4 h-4 text-muted-foreground\" />\r\n </div>\r\n <div className=\"text-2xl font-bold\">{value}</div>\r\n <p className=\"text-xs text-muted-foreground mt-1\"><span className=\"text-green-500 font-medium flex items-center inline-flex\"><ArrowUpRight className=\"w-3 h-3 mr-1\" />{trend}</span> from last month</p>\r\n </div>\r\n)\r\n\r\n// 3. ActivityFeed\r\nexport const ActivityFeed = () => (\r\n <div className=\"border rounded-xl bg-card p-6\">\r\n <h3 className=\"font-bold mb-4\">Recent Activity</h3>\r\n <div className=\"space-y-6 relative before:absolute before:inset-0 before:ml-4 before:-translate-x-px md:before:mx-auto md:before:translate-x-0 before:h-full before:w-0.5 before:bg-gradient-to-b before:from-transparent before:via-border before:to-transparent\">\r\n {[1, 2].map(i => (\r\n <div key={i} className=\"relative flex items-center justify-between md:justify-normal md:odd:flex-row-reverse group is-active\">\r\n <div className=\"flex items-center justify-center w-8 h-8 rounded-full border-2 border-background bg-primary text-primary-foreground shadow shrink-0 md:order-1 md:group-odd:-translate-x-1/2 md:group-even:translate-x-1/2 z-10\"><Zap className=\"w-4 h-4\" /></div>\r\n <div className=\"w-[calc(100%-4rem)] md:w-[calc(50%-2.5rem)] border rounded-lg p-3 bg-background shadow-sm\">\r\n <div className=\"flex justify-between items-center mb-1\"><h4 className=\"font-bold text-sm\">System Update</h4><time className=\"text-xs text-muted-foreground\">2 hrs ago</time></div>\r\n <p className=\"text-xs text-muted-foreground\">Server deployed successfully.</p>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 4. ProgressWidget\r\nexport const ProgressWidget = () => (\r\n <div className=\"border rounded-xl bg-card p-6\">\r\n <h3 className=\"font-bold mb-4 text-sm\">Monthly Goal</h3>\r\n <div className=\"flex justify-between items-end mb-2\">\r\n <div className=\"text-2xl font-bold\">12,450 <span className=\"text-sm font-normal text-muted-foreground\">/ 20,000</span></div>\r\n <div className=\"text-sm font-medium text-primary\">62%</div>\r\n </div>\r\n <div className=\"h-2 bg-muted rounded-full overflow-hidden\"><div className=\"h-full bg-primary w-[62%]\" /></div>\r\n </div>\r\n)\r\n\r\n// 5. QuickActionsWidget\r\nexport const QuickActionsWidget = () => (\r\n <div className=\"border rounded-xl bg-card p-4 grid grid-cols-3 gap-2\">\r\n <button className=\"flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2\"><div className=\"p-2 bg-primary/10 text-primary rounded-full\"><Plus className=\"w-4 h-4\" /></div><span className=\"text-xs font-medium\">New Project</span></button>\r\n <button className=\"flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2\"><div className=\"p-2 bg-blue-500/10 text-blue-500 rounded-full\"><FileText className=\"w-4 h-4\" /></div><span className=\"text-xs font-medium\">Create Invoice</span></button>\r\n <button className=\"flex flex-col items-center justify-center p-3 rounded-lg hover:bg-muted transition-colors gap-2\"><div className=\"p-2 bg-zinc-500/10 text-zinc-500 rounded-full\"><Settings className=\"w-4 h-4\" /></div><span className=\"text-xs font-medium\">Settings</span></button>\r\n </div>\r\n)\r\n\r\n// 6. TaskChecklist\r\nexport const TaskChecklist = () => (\r\n <div className=\"border rounded-xl bg-card p-6\">\r\n <h3 className=\"font-bold mb-4 text-sm\">Tasks</h3>\r\n <div className=\"space-y-3\">\r\n {['Review pull requests', 'Deploy new staging environment', 'Update documentation'].map((t, i) => (\r\n <div key={i} className=\"flex items-center gap-3\">\r\n <input type=\"checkbox\" defaultChecked={i === 0} className=\"w-4 h-4 rounded border-gray-300 text-primary focus:ring-primary\" />\r\n <span className={`text-sm ${i === 0 ? 'line-through text-muted-foreground' : 'font-medium'}`}>{t}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 7. StorageWidget\r\nexport const StorageWidget = () => (\r\n <div className=\"border rounded-xl bg-card p-6 flex flex-col items-center text-center\">\r\n <div className=\"w-16 h-16 rounded-full bg-blue-500/10 flex items-center justify-center mb-4\"><HardDrive className=\"w-8 h-8 text-blue-500\" /></div>\r\n <h3 className=\"font-bold mb-1\">Storage Usage</h3>\r\n <p className=\"text-2xl font-bold mb-1\">45.2 GB <span className=\"text-sm font-normal text-muted-foreground\">/ 100 GB</span></p>\r\n <div className=\"w-full h-2 bg-muted rounded-full mt-4\"><div className=\"h-full bg-blue-500 rounded-full w-[45%]\" /></div>\r\n </div>\r\n)\r\n\r\n// 8. RevenueChartWidget (Visual Mock)\r\nexport const RevenueChartWidget = () => (\r\n <div className=\"border rounded-xl bg-card p-6 h-48 flex flex-col\">\r\n <h3 className=\"font-bold text-sm mb-4\">Revenue Overview</h3>\r\n <div className=\"flex-1 flex items-end gap-2\">\r\n {[30, 50, 40, 70, 50, 90, 80].map((h, i) => <div key={i} className=\"flex-1 bg-primary hover:opacity-80 transition-opacity rounded-t-sm\" style={{ height: `${h}%` }} />)}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 9. RecentUsersWidget\r\nexport const RecentUsersWidget = () => (\r\n <div className=\"border rounded-xl bg-card p-6\">\r\n <h3 className=\"font-bold text-sm mb-4\">New Users</h3>\r\n <div className=\"flex -space-x-3 overflow-hidden\">\r\n {[1, 2, 3, 4, 5].map(i => <div key={i} className=\"inline-block h-10 w-10 rounded-full ring-2 ring-background bg-muted flex items-center justify-center text-xs border font-medium\">{i}</div>)}\r\n </div>\r\n <button className=\"text-xs font-medium text-primary mt-4 hover:underline\">View all users</button>\r\n </div>\r\n)\r\n\r\n// 10. ServerStatusWidget\r\nexport const ServerStatusWidget = () => (\r\n <div className=\"border rounded-xl bg-card p-6 flex items-center justify-between\">\r\n <div className=\"flex items-center gap-4\">\r\n <div className=\"p-3 bg-green-500/10 rounded-full\"><Server className=\"w-6 h-6 text-green-500\" /></div>\r\n <div><h3 className=\"font-bold\">us-east-1</h3><p className=\"text-xs text-green-500 font-medium flex items-center\"><span className=\"w-2 h-2 rounded-full bg-green-500 mr-2 animate-pulse\" />Operational</p></div>\r\n </div>\r\n <div className=\"text-right\"><p className=\"text-xs text-muted-foreground mb-1\">Ping</p><p className=\"font-mono font-bold text-sm\">24ms</p></div>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Globe, ChevronDown, X, ChevronRight, ChevronLeft } from \"lucide-react\"\r\n\r\n// ============================================\r\n// 1. FilterBar\r\n// ============================================\r\nexport const FilterBar = () => (\r\n <div className=\"flex flex-wrap gap-3 items-center p-2 border rounded-lg bg-card\">\r\n <span className=\"text-sm font-bold ml-2\">Filters:</span>\r\n <div className=\"flex items-center border rounded-full px-3 py-1 bg-muted/50 text-sm gap-2\">Status: Active <X className=\"w-3 h-3 cursor-pointer\" /></div>\r\n <div className=\"flex items-center border rounded-full px-3 py-1 bg-muted/50 text-sm gap-2\">Role: Admin <X className=\"w-3 h-3 cursor-pointer\" /></div>\r\n <button className=\"text-sm border-dashed border rounded-full px-3 py-1 text-muted-foreground hover:bg-muted\">+ Add Filter</button>\r\n <button className=\"text-sm text-muted-foreground hover:text-foreground ml-auto pr-2\">Clear all</button>\r\n </div>\r\n)\r\n\r\n// ============================================\r\n// 2. LanguageSelector\r\n// ============================================\r\nexport const LanguageSelector = () => (\r\n <div className=\"inline-flex items-center border rounded-md bg-card overflow-hidden\">\r\n <div className=\"px-3 py-2 border-r flex items-center\"><Globe className=\"w-4 h-4 text-muted-foreground\" /></div>\r\n <select className=\"bg-transparent pl-3 pr-8 py-2 text-sm font-medium outline-none cursor-pointer appearance-none\">\r\n <option>English (US)</option><option>Spanish</option><option>French</option>\r\n </select>\r\n </div>\r\n)\r\n\r\n// ============================================\r\n// 3. UserMenuDropdown\r\n// ============================================\r\nexport const UserMenuDropdown = () => (\r\n <div className=\"flex items-center gap-3 cursor-pointer p-2 border rounded-lg hover:bg-muted transition-colors w-fit\">\r\n <div className=\"w-8 h-8 rounded-full bg-primary/20 text-primary flex items-center justify-center font-bold text-xs\">JD</div>\r\n <div className=\"flex flex-col\"><span className=\"text-sm font-bold leading-none\">John Doe</span><span className=\"text-xs text-muted-foreground\">admin@example.com</span></div>\r\n <ChevronDown className=\"w-4 h-4 text-muted-foreground ml-2\" />\r\n </div>\r\n)\r\n\r\n// ============================================\r\n// 4. TreeNavigation\r\n// ============================================\r\nexport const TreeNavigation = () => (\r\n <div className=\"w-64 bg-card border rounded-lg p-4 space-y-1 text-sm\">\r\n <div className=\"flex items-center gap-2 font-bold cursor-pointer py-1\"><ChevronDown className=\"w-4 h-4\" /> Components</div>\r\n <div className=\"pl-6 space-y-1\">\r\n <div className=\"flex items-center gap-2 font-medium text-primary cursor-pointer py-1 bg-primary/10 px-2 rounded\">Buttons</div>\r\n <div className=\"flex items-center gap-2 text-muted-foreground hover:text-foreground cursor-pointer py-1 px-2\">Cards</div>\r\n <div className=\"flex items-center gap-2 text-muted-foreground hover:text-foreground cursor-pointer py-1 px-2\">Inputs</div>\r\n </div>\r\n <div className=\"flex items-center gap-2 font-bold text-muted-foreground cursor-pointer py-1\"><ChevronRight className=\"w-4 h-4\" /> Hooks</div>\r\n </div>\r\n)\r\n\r\n// ============================================\r\n// 5. ContextActionBar\r\n// ============================================\r\nexport const ContextActionBar = () => (\r\n <div className=\"flex items-center justify-between p-2 bg-primary text-primary-foreground rounded-lg shadow-xl mx-auto w-fit gap-6 animate-in slide-in-from-bottom-4\">\r\n <span className=\"text-sm font-medium pl-2\">3 items selected</span>\r\n <div className=\"flex gap-2\">\r\n <button className=\"px-3 py-1 bg-white/20 hover:bg-white/30 rounded text-sm font-medium transition-colors\">Move</button>\r\n <button className=\"px-3 py-1 bg-white/20 hover:bg-white/30 rounded text-sm font-medium transition-colors\">Archive</button>\r\n <button className=\"px-3 py-1 bg-destructive hover:bg-destructive/90 rounded text-sm font-medium transition-colors\">Delete</button>\r\n </div>\r\n </div>\r\n)\r\n\r\n// ============================================\r\n// 6. PaginationPro\r\n// ============================================\r\nexport const PaginationPro = () => (\r\n <div className=\"flex items-center gap-1 border bg-card p-1 rounded-md w-fit mx-auto\">\r\n <button className=\"p-2 hover:bg-muted rounded text-muted-foreground disabled:opacity-50\"><ChevronLeft className=\"w-4 h-4\" /></button>\r\n <button className=\"w-8 h-8 rounded text-sm font-medium hover:bg-muted\">1</button>\r\n <button className=\"w-8 h-8 rounded text-sm font-medium bg-primary text-primary-foreground\">2</button>\r\n <button className=\"w-8 h-8 rounded text-sm font-medium hover:bg-muted\">3</button>\r\n <span className=\"px-2 text-muted-foreground\">...</span>\r\n <button className=\"w-8 h-8 rounded text-sm font-medium hover:bg-muted\">10</button>\r\n <button className=\"p-2 hover:bg-muted rounded text-muted-foreground\"><ChevronRight className=\"w-4 h-4\" /></button>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { CheckCircle2, X, AlertTriangle, WifiOff, FileBox, UploadCloud } from \"lucide-react\"\r\n\r\n// Re-export OfflineBanner and RateLimitAlert from alert.tsx for backward compatibility\r\nexport { OfflineBanner, RateLimitAlert } from \"./alert\"\r\n\r\n// 1. ConfettiSuccess (Visual)\r\nexport const ConfettiSuccess = () => (\r\n <div className=\"flex flex-col items-center justify-center p-8 border rounded-xl bg-card text-center relative overflow-hidden\">\r\n <div className=\"absolute inset-0 pointer-events-none flex justify-center\">\r\n {[1,2,3,4,5,6].map(i => <motion.div key={i} animate={{ y: [0, 100], x: [(i%2===0?1:-1)*20, (i%2===0?1:-1)*40], opacity: [1, 0], rotate: [0, 360] }} transition={{ repeat: Infinity, duration: 2, delay: i*0.2 }} className={`w-2 h-2 absolute top-0 ${i%3===0?'bg-red-500':i%2===0?'bg-blue-500':'bg-yellow-500'}`} />)}\r\n </div>\r\n <div className=\"w-16 h-16 bg-green-500/10 text-green-500 rounded-full flex items-center justify-center mb-4 relative z-10\"><CheckCircle2 className=\"w-8 h-8\" /></div>\r\n <h3 className=\"text-2xl font-bold mb-2 relative z-10\">Payment Successful!</h3>\r\n <p className=\"text-muted-foreground relative z-10\">Your order #12345 has been processed.</p>\r\n </div>\r\n)\r\n\r\n// 2. ActionToast\r\nexport const ActionToast = () => (\r\n <div className=\"flex items-center justify-between p-4 bg-foreground text-background rounded-lg shadow-xl max-w-sm mx-auto\">\r\n <div><p className=\"text-sm font-medium\">Item moved to trash</p></div>\r\n <div className=\"flex gap-4 items-center\"><button className=\"text-sm font-bold text-primary hover:underline\">Undo</button><button><X className=\"w-4 h-4 text-muted\" /></button></div>\r\n </div>\r\n)\r\n\r\n// 3. MultiStepProgress\r\nexport const MultiStepProgress = ({ current = 2 }: any) => (\r\n <div className=\"w-full\">\r\n <div className=\"flex justify-between mb-2 text-sm font-medium\"><span className=\"text-primary\">Cart</span><span className=\"text-primary\">Shipping</span><span className=\"text-muted-foreground\">Payment</span></div>\r\n <div className=\"flex h-2 bg-muted rounded-full overflow-hidden\"><div className=\"w-1/3 bg-primary border-r-2 border-background\" /><div className=\"w-1/3 bg-primary/50\" /></div>\r\n </div>\r\n)\r\n\r\n// 4. SkeletonList\r\nexport const SkeletonList = () => (\r\n <div className=\"space-y-4 w-full border p-4 rounded-xl bg-card\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"flex gap-4 items-center\">\r\n <div className=\"w-12 h-12 rounded-full bg-muted animate-pulse\" />\r\n <div className=\"flex-1 space-y-2\"><div className=\"h-4 bg-muted rounded w-1/3 animate-pulse\" /><div className=\"h-3 bg-muted rounded w-1/2 animate-pulse\" /></div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 5. EmptyStatePro\r\nexport const EmptyStatePro = () => (\r\n <div className=\"flex flex-col items-center justify-center p-12 border-2 border-dashed rounded-xl bg-muted/10 text-center\">\r\n <div className=\"w-16 h-16 bg-muted rounded-full flex items-center justify-center mb-4 text-muted-foreground\"><FileBox className=\"w-8 h-8\" /></div>\r\n <h3 className=\"text-xl font-bold mb-2\">No projects found</h3>\r\n <p className=\"text-muted-foreground mb-6 max-w-sm\">Get started by creating a new project. You can also import an existing one.</p>\r\n <button className=\"px-6 py-2.5 bg-primary text-primary-foreground font-bold rounded-lg shadow-sm hover:opacity-90\">Create Project</button>\r\n </div>\r\n)\r\n\r\n// 6. TooltipForm (Visual)\r\nexport const TooltipForm = () => (\r\n <div className=\"relative inline-block mt-8\">\r\n <button className=\"px-4 py-2 bg-muted rounded-md font-medium\">Hover me</button>\r\n <div className=\"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 w-64 p-4 bg-card border shadow-xl rounded-lg z-10\">\r\n <h4 className=\"font-bold text-sm mb-2\">Quick Edit</h4>\r\n <input className=\"w-full p-2 border rounded text-xs mb-2 bg-background\" placeholder=\"New name...\" />\r\n <button className=\"w-full py-1.5 bg-primary text-primary-foreground text-xs font-bold rounded\">Save</button>\r\n <div className=\"absolute -bottom-2 left-1/2 -translate-x-1/2 w-4 h-4 bg-card border-b border-r transform rotate-45\" />\r\n </div>\r\n </div>\r\n)\r\n\r\n// 7. PasswordStrengthMeter\r\nexport const PasswordStrengthMeter = ({ score = 3 }: any) => (\r\n <div className=\"w-full max-w-sm space-y-2\">\r\n <input type=\"password\" placeholder=\"Password\" className=\"w-full p-2 border rounded-md\" defaultValue=\"Str0ngP@ss\" />\r\n <div className=\"flex gap-1 h-1.5\">\r\n {[1, 2, 3, 4].map(i => <div key={i} className={`flex-1 rounded-full ${i <= score ? (score < 2 ? 'bg-red-500' : score < 4 ? 'bg-yellow-500' : 'bg-green-500') : 'bg-muted'}`} />)}\r\n </div>\r\n <p className={`text-xs font-medium ${score < 2 ? 'text-red-500' : score < 4 ? 'text-yellow-500' : 'text-green-500'}`}>{score < 2 ? 'Weak' : score < 4 ? 'Good' : 'Strong'}</p>\r\n </div>\r\n)\r\n\r\n// 8. UploadProgress\r\nexport const UploadProgress = () => (\r\n <div className=\"w-full max-w-sm border rounded-lg p-3 flex items-center gap-4 bg-card shadow-sm\">\r\n <div className=\"p-2 bg-primary/10 text-primary rounded-md\"><UploadCloud className=\"w-5 h-5\" /></div>\r\n <div className=\"flex-1\">\r\n <div className=\"flex justify-between text-sm mb-1\"><span className=\"font-medium truncate max-w-[150px]\">design-assets.zip</span><span className=\"text-muted-foreground\">45%</span></div>\r\n <div className=\"h-1.5 w-full bg-muted rounded-full overflow-hidden\"><div className=\"h-full bg-primary w-[45%]\" /></div>\r\n </div>\r\n <button><X className=\"w-4 h-4 text-muted-foreground hover:text-foreground\" /></button>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { Check, Play, ArrowRight, ShieldCheck } from \"lucide-react\"\r\n\r\n// 1. WaitlistForm\r\nexport const WaitlistForm = () => (\r\n <div className=\"w-full max-w-md mx-auto text-center space-y-6 bg-card p-8 rounded-3xl border shadow-xl\">\r\n <div className=\"inline-block px-3 py-1 bg-primary/10 text-primary font-bold text-xs rounded-full mb-2\">EARLY ACCESS</div>\r\n <h2 className=\"text-3xl font-extrabold tracking-tight\">Join the Waitlist</h2>\r\n <p className=\"text-muted-foreground text-sm\">Be the first to know when we launch and get 50% off your first year.</p>\r\n <div className=\"flex flex-col gap-3\">\r\n <input className=\"w-full px-4 py-3 bg-muted/50 border rounded-xl outline-none focus:border-primary transition-colors\" placeholder=\"Email address\" />\r\n <button className=\"w-full py-3 bg-foreground text-background font-bold rounded-xl hover:opacity-90 transition-opacity\">Request Access</button>\r\n </div>\r\n <p className=\"text-xs text-muted-foreground\">Over 10,000+ people already joined.</p>\r\n </div>\r\n)\r\n\r\n// 2. PricingToggle\r\nexport const PricingToggle = () => (\r\n <div className=\"flex items-center justify-center gap-3\">\r\n <span className=\"font-medium text-sm\">Monthly</span>\r\n <div className=\"w-12 h-6 bg-primary rounded-full relative cursor-pointer\"><div className=\"absolute top-1 left-7 w-4 h-4 bg-background rounded-full transition-all\" /></div>\r\n <span className=\"font-medium text-sm\">Annually <span className=\"text-green-500 text-xs font-bold bg-green-500/10 px-1.5 py-0.5 rounded ml-1\">Save 20%</span></span>\r\n </div>\r\n)\r\n\r\n// 3. FeatureShowcase\r\nexport const FeatureShowcase = () => (\r\n <div className=\"flex items-center gap-8 bg-card border rounded-2xl p-6 overflow-hidden\">\r\n <div className=\"flex-1 space-y-4\">\r\n <div className=\"w-12 h-12 bg-primary/10 text-primary flex items-center justify-center rounded-xl\"><ShieldCheck className=\"w-6 h-6\" /></div>\r\n <h3 className=\"text-2xl font-bold\">Enterprise Security</h3>\r\n <p className=\"text-muted-foreground\">Bank-grade encryption for all your data. We never compromise on the security of your business.</p>\r\n <button className=\"flex items-center gap-2 text-primary font-bold text-sm hover:underline\">Learn more <ArrowRight className=\"w-4 h-4\" /></button>\r\n </div>\r\n <div className=\"flex-1 h-48 bg-muted rounded-xl border flex items-center justify-center font-mono text-muted-foreground text-sm\">Illustration Placeholder</div>\r\n </div>\r\n)\r\n\r\n// 4. TrustBanner\r\nexport const TrustBanner = () => (\r\n <div className=\"py-8 text-center border-y bg-muted/20\">\r\n <p className=\"text-sm font-bold text-muted-foreground mb-6 uppercase tracking-widest\">Backed by the best</p>\r\n <div className=\"flex justify-center gap-8 flex-wrap opacity-60\">\r\n <div className=\"font-black text-xl\">Y COMBINATOR</div><div className=\"font-black text-xl\">SEQUOIA</div><div className=\"font-black text-xl\">a16z</div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 5. ComparisonTableMock\r\nexport const ComparisonTableMock = () => (\r\n <div className=\"w-full border rounded-2xl bg-card overflow-hidden\">\r\n <div className=\"grid grid-cols-3 bg-muted/50 p-4 border-b font-bold text-center\">\r\n <div className=\"text-left\">Features</div><div className=\"text-muted-foreground\">Others</div><div className=\"text-primary\">Us</div>\r\n </div>\r\n <div className=\"divide-y text-sm\">\r\n {['Real-time sync', 'End-to-end encryption', '24/7 Support'].map((f, i) => (\r\n <div key={i} className=\"grid grid-cols-3 p-4 items-center text-center\">\r\n <div className=\"text-left font-medium\">{f}</div>\r\n <div className=\"text-muted-foreground/30\">{i === 0 ? '✔️' : '❌'}</div>\r\n <div className=\"text-primary font-bold text-lg\">✓</div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 6. AnimatedHeroText\r\nexport const AnimatedHeroText = () => (\r\n <h1 className=\"text-4xl md:text-6xl font-black text-center leading-tight\">\r\n Create the next <br/>\r\n <span className=\"text-transparent bg-clip-text bg-gradient-to-r from-blue-500 via-purple-500 to-pink-500 animate-[pulse_4s_ease-in-out_infinite]\">unicorn startup.</span>\r\n </h1>\r\n)\r\n\r\n// 7. StatCounter\r\nexport const StatCounter = () => (\r\n <div className=\"grid grid-cols-3 gap-4 border-y py-8 text-center bg-card\">\r\n <div><div className=\"text-4xl font-black text-primary mb-1\">99.9%</div><div className=\"text-sm font-medium text-muted-foreground\">Uptime SLA</div></div>\r\n <div><div className=\"text-4xl font-black text-primary mb-1\">2M+</div><div className=\"text-sm font-medium text-muted-foreground\">Active Users</div></div>\r\n <div><div className=\"text-4xl font-black text-primary mb-1\">4.9/5</div><div className=\"text-sm font-medium text-muted-foreground\">Customer Rating</div></div>\r\n </div>\r\n)\r\n\r\n// 8. NewsletterSignup\r\nexport const NewsletterSignup = () => (\r\n <div className=\"bg-primary text-primary-foreground p-8 md:p-12 rounded-3xl text-center md:text-left flex flex-col md:flex-row items-center gap-8 justify-between\">\r\n <div className=\"max-w-md\"><h2 className=\"text-3xl font-bold mb-2\">Subscribe to our newsletter</h2><p className=\"opacity-90\">Get the latest news, articles, and resources delivered to your inbox weekly.</p></div>\r\n <div className=\"w-full max-w-sm flex flex-col gap-2\">\r\n <div className=\"flex gap-2\"><input className=\"flex-1 px-4 py-3 rounded-xl text-foreground outline-none\" placeholder=\"Enter your email\" /><button className=\"px-6 py-3 bg-foreground text-background font-bold rounded-xl\">Subscribe</button></div>\r\n <p className=\"text-xs opacity-70 text-center md:text-left\">We care about your data. Read our Privacy Policy.</p>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 9. VideoModalVisual\r\nexport const VideoModalVisual = () => (\r\n <div className=\"relative w-full max-w-2xl mx-auto aspect-video bg-zinc-900 rounded-2xl overflow-hidden shadow-2xl group cursor-pointer border border-white/10\">\r\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent\" />\r\n <div className=\"absolute inset-0 flex items-center justify-center\">\r\n <div className=\"w-16 h-16 bg-white/20 backdrop-blur-md rounded-full flex items-center justify-center group-hover:scale-110 transition-transform\"><Play className=\"w-6 h-6 text-white ml-1\" /></div>\r\n </div>\r\n <div className=\"absolute bottom-4 left-4 text-white\"><h4 className=\"font-bold\">Watch the demo</h4><p className=\"text-sm opacity-80\">2 mins</p></div>\r\n </div>\r\n)\r\n\r\n// 10. GradientCTABlock\r\nexport const GradientCTABlock = () => (\r\n <div className=\"relative p-12 rounded-3xl overflow-hidden border shadow-lg text-center\">\r\n <div className=\"absolute inset-0 bg-gradient-to-br from-indigo-500/20 via-purple-500/20 to-pink-500/20\" />\r\n <div className=\"relative z-10 max-w-lg mx-auto space-y-6\">\r\n <h2 className=\"text-3xl md:text-4xl font-extrabold\">Ready to dive in?</h2>\r\n <p className=\"text-lg text-muted-foreground\">Start your free 14-day trial today. No credit card required.</p>\r\n <button className=\"px-8 py-4 bg-foreground text-background rounded-full font-bold shadow-xl hover:scale-105 transition-transform\">Get Started Free</button>\r\n </div>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Phone, Mail, FileText, Download, Briefcase, MapPin, Clock, MessageSquare, Plus, Check } from \"lucide-react\"\r\n\r\n// 1. ContactList\r\nexport const ContactList = () => (\r\n <div className=\"w-full max-w-md border rounded-xl bg-card divide-y\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"flex items-center justify-between p-4 hover:bg-muted/50 cursor-pointer\">\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"w-10 h-10 rounded-full bg-primary/20 text-primary flex items-center justify-center font-bold text-sm\">C{i}</div>\r\n <div><h4 className=\"font-semibold text-sm\">Contact Name {i}</h4><p className=\"text-xs text-muted-foreground\">contact{i}@example.com</p></div>\r\n </div>\r\n <div className=\"flex gap-2 text-muted-foreground\"><Phone className=\"w-4 h-4 hover:text-foreground\" /><Mail className=\"w-4 h-4 hover:text-foreground\" /></div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 2. NotificationList\r\nexport const NotificationList = () => (\r\n <div className=\"w-full max-w-md border rounded-xl bg-card divide-y\">\r\n <div className=\"p-4 border-b font-bold flex justify-between items-center\">Notifications <span className=\"text-xs font-normal text-primary hover:underline cursor-pointer\">Mark all read</span></div>\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className={`flex gap-4 p-4 ${i === 1 ? 'bg-primary/5' : ''}`}>\r\n {i === 1 && <div className=\"w-2 h-2 rounded-full bg-primary mt-1.5\" />}\r\n <div className=\"flex-1\"><p className=\"text-sm\"><span className=\"font-bold\">System</span> completed the backup successfully.</p><p className=\"text-xs text-muted-foreground mt-1\">2 hours ago</p></div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 3. TimelineVertical\r\nexport const TimelineVertical = () => (\r\n <div className=\"w-full max-w-md p-4\">\r\n <div className=\"relative border-l-2 border-muted ml-3 space-y-8\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"relative pl-6\">\r\n <div className=\"absolute w-4 h-4 bg-primary rounded-full border-4 border-background -left-[9px] top-1\" />\r\n <h4 className=\"font-bold text-sm mb-1\">Project Milestone {i}</h4>\r\n <p className=\"text-xs text-muted-foreground mb-2\">October {10 + i}, 2025</p>\r\n <p className=\"text-sm\">Completed the initial design phase and got client approval.</p>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 4. StepList\r\nexport const StepList = () => (\r\n <div className=\"w-full max-w-md space-y-4\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"flex gap-4\">\r\n <div className={`w-8 h-8 rounded-full flex items-center justify-center shrink-0 border-2 font-bold text-sm ${i === 1 ? 'bg-primary border-primary text-primary-foreground' : 'border-muted text-muted-foreground'}`}>{i === 1 ? <Check className=\"w-4 h-4\" /> : i}</div>\r\n <div><h4 className={`font-bold text-sm ${i === 1 ? '' : 'text-muted-foreground'}`}>Step {i} Title</h4><p className=\"text-sm text-muted-foreground mt-1\">Detailed description of what needs to be done in this step.</p></div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 5. FAQAccordionList (Visual Mock)\r\nexport const FAQAccordionList = () => (\r\n <div className=\"w-full max-w-2xl border rounded-xl bg-card divide-y\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"p-4\">\r\n <h4 className=\"font-bold text-sm mb-2 flex justify-between\">How does pricing work? <Plus className=\"w-4 h-4 text-muted-foreground\" /></h4>\r\n {i === 1 && <p className=\"text-sm text-muted-foreground mt-2\">Pricing is based on the number of users in your workspace. You can upgrade or downgrade at any time.</p>}\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 6. FileDownloadList\r\nexport const FileDownloadList = () => (\r\n <div className=\"w-full max-w-md border rounded-xl bg-card p-4 space-y-3\">\r\n <h3 className=\"font-bold text-sm mb-4\">Attached Files</h3>\r\n {[1, 2].map(i => (\r\n <div key={i} className=\"flex items-center justify-between p-3 border rounded-lg hover:bg-muted transition-colors\">\r\n <div className=\"flex items-center gap-3\"><FileText className=\"w-8 h-8 text-primary\" /><div><p className=\"text-sm font-medium\">Document-{i}.pdf</p><p className=\"text-xs text-muted-foreground\">2.4 MB</p></div></div>\r\n <button className=\"p-2 border bg-background rounded-full hover:text-primary\"><Download className=\"w-4 h-4\" /></button>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 7. MessageList\r\nexport const MessageList = () => (\r\n <div className=\"w-full max-w-md border rounded-xl bg-card divide-y\">\r\n {[1, 2, 3].map(i => (\r\n <div key={i} className=\"flex gap-4 p-4 hover:bg-muted/50 cursor-pointer\">\r\n <div className=\"w-10 h-10 rounded-full bg-muted shrink-0\" />\r\n <div className=\"flex-1 min-w-0\">\r\n <div className=\"flex justify-between items-baseline mb-1\"><h4 className=\"font-bold text-sm truncate\">Jane Doe</h4><span className=\"text-xs text-muted-foreground shrink-0\">12:30 PM</span></div>\r\n <p className=\"text-sm text-muted-foreground truncate\">Hey, are we still on for the meeting later today?</p>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 8. JobBoardList\r\nexport const JobBoardList = () => (\r\n <div className=\"w-full max-w-2xl border rounded-xl bg-card divide-y\">\r\n {[1, 2].map(i => (\r\n <div key={i} className=\"p-6 hover:bg-muted/20 transition-colors flex flex-col sm:flex-row gap-4 justify-between items-start sm:items-center\">\r\n <div>\r\n <h3 className=\"text-lg font-bold mb-2\">Senior React Developer</h3>\r\n <div className=\"flex flex-wrap gap-3 text-sm text-muted-foreground\">\r\n <span className=\"flex items-center gap-1\"><Briefcase className=\"w-4 h-4\" /> Full-time</span>\r\n <span className=\"flex items-center gap-1\"><MapPin className=\"w-4 h-4\" /> Remote</span>\r\n <span className=\"flex items-center gap-1\"><Clock className=\"w-4 h-4\" /> Posted 2 days ago</span>\r\n </div>\r\n </div>\r\n <button className=\"px-6 py-2 border rounded-full text-sm font-bold hover:bg-muted\">Apply Now</button>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 9. EventScheduleList\r\nexport const EventScheduleList = () => (\r\n <div className=\"w-full max-w-lg p-6 bg-card border rounded-xl\">\r\n <h3 className=\"font-bold text-xl mb-6\">Conference Schedule</h3>\r\n <div className=\"space-y-6\">\r\n {[1, 2].map(i => (\r\n <div key={i} className=\"flex gap-4\">\r\n <div className=\"text-right w-16 shrink-0\"><p className=\"font-bold\">09:00</p><p className=\"text-xs text-muted-foreground\">AM</p></div>\r\n <div className=\"w-0.5 bg-primary/20 relative\"><div className=\"absolute top-1 -left-1 w-2.5 h-2.5 rounded-full bg-primary\" /></div>\r\n <div className=\"pb-6\"><h4 className=\"font-bold text-lg mb-1\">Keynote Speech</h4><p className=\"text-sm text-muted-foreground mb-2\">Main Stage</p><div className=\"flex items-center gap-2 text-xs font-medium bg-muted w-fit px-2 py-1 rounded\"><div className=\"w-4 h-4 bg-primary/20 rounded-full\" /> Speaker Name</div></div>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n)\r\n\r\n// 10. RecentCommentsList\r\nexport const RecentCommentsList = () => (\r\n <div className=\"w-full max-w-md space-y-4\">\r\n {[1, 2].map(i => (\r\n <div key={i} className=\"flex gap-3\">\r\n <div className=\"w-8 h-8 rounded-full bg-muted shrink-0\" />\r\n <div className=\"flex-1 bg-card border p-3 rounded-2xl rounded-tl-none text-sm\">\r\n <p className=\"font-bold mb-1\">User {i} <span className=\"font-normal text-muted-foreground text-xs ml-2\">1h ago</span></p>\r\n <p>This is a great article! Thanks for sharing this information.</p>\r\n <div className=\"flex gap-3 mt-2 text-xs font-medium text-muted-foreground\"><button className=\"hover:text-primary flex items-center gap-1\"><MessageSquare className=\"w-3 h-3\" /> Reply</button></div>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { LayoutGrid, FileText, Settings, User, Bell, Search, MessageSquare, Menu } from \"lucide-react\"\r\n\r\n// 1. SplitScreenLayout\r\nexport const SplitScreenLayout = () => (\r\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\r\n <div className=\"flex-1 p-8 md:p-12 flex flex-col justify-center bg-card\">\r\n <div className=\"w-12 h-12 bg-primary rounded-xl mb-8\" />\r\n <h2 className=\"text-3xl font-bold mb-4\">Welcome back</h2>\r\n <p className=\"text-muted-foreground mb-8\">Please enter your details to sign in.</p>\r\n <div className=\"w-full h-10 bg-muted rounded-lg mb-4\" />\r\n <div className=\"w-full h-10 bg-muted rounded-lg mb-8\" />\r\n <div className=\"w-full h-12 bg-primary rounded-lg\" />\r\n </div>\r\n <div className=\"hidden md:block flex-1 bg-gradient-to-br from-indigo-500 to-purple-600 p-12 text-white flex flex-col justify-between\">\r\n <div></div>\r\n <div>\r\n <h2 className=\"text-4xl font-bold mb-4\">Nexore UI</h2>\r\n <p className=\"text-lg opacity-80\">The most powerful and flexible UI library for modern web applications.</p>\r\n </div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 2. AuthenticationLayout (Centered)\r\nexport const AuthenticationLayout = () => (\r\n <div className=\"w-full h-[400px] bg-muted/20 border rounded-xl flex items-center justify-center p-4\">\r\n <div className=\"w-full max-w-md bg-card border rounded-2xl shadow-xl p-8 flex flex-col items-center\">\r\n <div className=\"w-16 h-16 rounded-full bg-primary/10 flex items-center justify-center mb-6\"><User className=\"w-8 h-8 text-primary\" /></div>\r\n <h2 className=\"text-2xl font-bold mb-2\">Create Account</h2>\r\n <p className=\"text-muted-foreground text-center mb-8 text-sm\">Join thousands of developers building the future.</p>\r\n <div className=\"w-full space-y-4\"><div className=\"w-full h-10 bg-muted rounded-md\" /><div className=\"w-full h-10 bg-muted rounded-md\" /><div className=\"w-full h-10 bg-primary rounded-md mt-4\" /></div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 3. SidebarLayout\r\nexport const SidebarLayout = () => (\r\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background text-sm\">\r\n <div className=\"w-64 bg-card border-r flex flex-col\">\r\n <div className=\"h-14 border-b flex items-center px-4 font-bold\">App Name</div>\r\n <div className=\"p-4 space-y-2 flex-1\"><div className=\"w-full h-8 bg-primary/10 text-primary rounded flex items-center px-3 font-medium\">Dashboard</div><div className=\"w-full h-8 hover:bg-muted rounded flex items-center px-3 text-muted-foreground\">Projects</div></div>\r\n <div className=\"p-4 border-t flex items-center gap-3\"><div className=\"w-8 h-8 bg-muted rounded-full\" /><div className=\"flex-1 h-4 bg-muted rounded\" /></div>\r\n </div>\r\n <div className=\"flex-1 flex flex-col\">\r\n <div className=\"h-14 border-b flex items-center px-6 justify-between\"><div className=\"font-bold\">Overview</div><div className=\"flex gap-4\"><Search className=\"w-4 h-4 text-muted-foreground\" /><Bell className=\"w-4 h-4 text-muted-foreground\" /></div></div>\r\n <div className=\"p-6 flex-1 bg-muted/10\"><div className=\"w-full h-full border-2 border-dashed rounded-xl border-muted flex items-center justify-center text-muted-foreground\">Content Area</div></div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 4. DashboardGridLayout\r\nexport const DashboardGridLayout = () => (\r\n <div className=\"w-full p-4 border rounded-xl bg-muted/10 space-y-4 h-[400px] overflow-hidden\">\r\n <div className=\"grid grid-cols-4 gap-4\"><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 h-24 bg-card border rounded-xl shadow-sm\" /></div>\r\n <div className=\"grid grid-cols-3 gap-4 h-[200px]\"><div className=\"col-span-2 bg-card border rounded-xl shadow-sm\" /><div className=\"col-span-1 bg-card border rounded-xl shadow-sm\" /></div>\r\n </div>\r\n)\r\n\r\n// 5. BentoGridVisual\r\nexport const BentoGridVisual = () => (\r\n <div className=\"w-full h-[400px] border rounded-xl bg-background p-4 grid grid-cols-4 grid-rows-3 gap-4\">\r\n <div className=\"col-span-2 row-span-2 bg-gradient-to-br from-primary/20 to-primary/5 border rounded-2xl p-6 flex flex-col justify-end\"><h3 className=\"text-2xl font-bold\">Main Feature</h3></div>\r\n <div className=\"col-span-1 row-span-1 bg-card border rounded-2xl\" />\r\n <div className=\"col-span-1 row-span-2 bg-card border rounded-2xl\" />\r\n <div className=\"col-span-1 row-span-1 bg-card border rounded-2xl\" />\r\n <div className=\"col-span-3 row-span-1 bg-card border rounded-2xl\" />\r\n </div>\r\n)\r\n\r\n// 6. KanbanBoardVisual\r\nexport const KanbanBoardVisual = () => (\r\n <div className=\"flex w-full h-[400px] border rounded-xl bg-muted/20 p-4 gap-4 overflow-hidden\">\r\n {[1, 2, 3].map(col => (\r\n <div key={col} className=\"w-80 shrink-0 flex flex-col bg-card border rounded-xl p-3 h-full\">\r\n <h4 className=\"font-bold text-sm mb-3 px-1\">{col === 1 ? 'To Do' : col === 2 ? 'In Progress' : 'Done'} <span className=\"text-muted-foreground font-normal ml-2\">3</span></h4>\r\n <div className=\"space-y-3 flex-1 overflow-hidden\">\r\n <div className=\"w-full h-24 bg-background border rounded-lg shadow-sm\" />\r\n <div className=\"w-full h-32 bg-background border rounded-lg shadow-sm\" />\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 7. ChatLayoutVisual\r\nexport const ChatLayoutVisual = () => (\r\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\r\n <div className=\"w-64 border-r flex flex-col\"><div className=\"p-4 border-b font-bold\">Messages</div><div className=\"p-2 space-y-1 flex-1\"><div className=\"w-full h-12 bg-muted rounded-lg\" /><div className=\"w-full h-12 hover:bg-muted/50 rounded-lg\" /></div></div>\r\n <div className=\"flex-1 flex flex-col\">\r\n <div className=\"p-4 border-b font-bold flex items-center gap-3\"><div className=\"w-8 h-8 bg-muted rounded-full\" /> User Name</div>\r\n <div className=\"flex-1 p-4 flex flex-col gap-4 overflow-hidden bg-muted/10\">\r\n <div className=\"w-64 h-12 bg-muted rounded-2xl rounded-tl-sm\" />\r\n <div className=\"w-48 h-10 bg-primary rounded-2xl rounded-tr-sm self-end\" />\r\n </div>\r\n <div className=\"p-4 border-t\"><div className=\"w-full h-10 bg-muted rounded-full\" /></div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 8. FeedLayout\r\nexport const FeedLayout = () => (\r\n <div className=\"w-full h-[400px] border rounded-xl overflow-hidden bg-muted/20 flex justify-center p-4\">\r\n <div className=\"w-full max-w-lg flex flex-col gap-4\">\r\n <div className=\"w-full p-4 bg-card border rounded-xl shadow-sm\"><div className=\"flex gap-3 items-center mb-4\"><div className=\"w-10 h-10 bg-muted rounded-full\" /><div className=\"w-32 h-4 bg-muted rounded\" /></div><div className=\"w-full h-24 bg-muted/50 rounded-lg\" /></div>\r\n <div className=\"w-full p-4 bg-card border rounded-xl shadow-sm\"><div className=\"flex gap-3 items-center mb-4\"><div className=\"w-10 h-10 bg-muted rounded-full\" /><div className=\"w-32 h-4 bg-muted rounded\" /></div><div className=\"w-full h-24 bg-muted/50 rounded-lg\" /></div>\r\n </div>\r\n </div>\r\n)\r\n\r\n// 9. DocumentationLayout\r\nexport const DocumentationLayout = () => (\r\n <div className=\"flex w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\r\n <div className=\"w-64 border-r p-4 space-y-4\"><div className=\"w-full h-6 bg-muted rounded mb-6\" /><div className=\"w-full h-4 bg-muted/50 rounded\" /><div className=\"w-3/4 h-4 bg-muted/50 rounded\" /><div className=\"w-5/6 h-4 bg-muted/50 rounded\" /></div>\r\n <div className=\"flex-1 p-8 overflow-hidden\">\r\n <h1 className=\"text-3xl font-bold mb-4\">Installation</h1>\r\n <p className=\"text-muted-foreground mb-6\">Learn how to install and setup the library in your project.</p>\r\n <div className=\"w-full h-32 bg-zinc-950 rounded-xl mb-6 flex items-center px-4\"><span className=\"font-mono text-zinc-300\">npm install nexoreui</span></div>\r\n <div className=\"w-full h-4 bg-muted rounded mb-2\" /><div className=\"w-full h-4 bg-muted rounded mb-2\" /><div className=\"w-3/4 h-4 bg-muted rounded\" />\r\n </div>\r\n <div className=\"w-48 border-l p-4 space-y-4 hidden lg:block\"><div className=\"text-sm font-bold\">On this page</div><div className=\"w-full h-3 bg-muted rounded\" /><div className=\"w-2/3 h-3 bg-muted rounded\" /></div>\r\n </div>\r\n)\r\n\r\n// 10. HeaderFooterLayout\r\nexport const HeaderFooterLayout = () => (\r\n <div className=\"flex flex-col w-full h-[400px] border rounded-xl overflow-hidden bg-background\">\r\n <header className=\"h-16 border-b flex items-center justify-between px-6 bg-card\"><div className=\"w-8 h-8 bg-primary rounded\" /><div className=\"flex gap-4\"><div className=\"w-16 h-4 bg-muted rounded\" /><div className=\"w-16 h-4 bg-muted rounded\" /></div></header>\r\n <main className=\"flex-1 bg-muted/10 p-8\"><div className=\"w-full h-full border-2 border-dashed rounded-xl border-muted flex items-center justify-center\">Main Content</div></main>\r\n <footer className=\"h-20 border-t bg-card p-6 flex items-center justify-between\"><div className=\"w-32 h-4 bg-muted rounded\" /><div className=\"flex gap-2\"><div className=\"w-6 h-6 bg-muted rounded-full\" /><div className=\"w-6 h-6 bg-muted rounded-full\" /></div></footer>\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// Re-export standard button variants as alias wrappers for backward compatibility\r\nexport { GlowButton as NeonGlowButton, GradientButton as OutlineGradientButton, GlassButton as GlassmorphButton } from \"./button\"\r\n\r\n// ============================================\r\n// 1. MorphButton — Shape morphing button\r\n// ============================================\r\nexport function MorphButton({ children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>) {\r\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\r\n return (\r\n <motion.button\r\n className={cn(\r\n \"relative px-6 py-2.5 rounded-lg font-semibold bg-primary text-primary-foreground border border-primary/20\",\r\n className\r\n )}\r\n whileHover={{\r\n borderRadius: \"24px\",\r\n scale: 1.05,\r\n }}\r\n whileTap={{ scale: 0.95 }}\r\n transition={{ type: \"spring\", stiffness: 400, damping: 17 }}\r\n {...motionSafeProps}\r\n >\r\n {children}\r\n </motion.button>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 2. SplitButton\r\n// ============================================\r\nexport function SplitButton({ primary, secondary, onPrimary, onSecondary, className }: {\r\n primary: string\r\n secondary: string\r\n onPrimary?: () => void\r\n onSecondary?: () => void\r\n className?: string\r\n}) {\r\n return (\r\n <div className={cn(\"inline-flex rounded-lg overflow-hidden shadow-sm\", className)}>\r\n <button onClick={onPrimary} className=\"px-4 py-2 bg-primary text-primary-foreground font-medium hover:bg-primary/90 transition-colors\">\r\n {primary}\r\n </button>\r\n <button onClick={onSecondary} className=\"px-3 py-2 bg-primary/80 text-primary-foreground border-l border-primary-foreground/20 hover:bg-primary/70 transition-colors\">\r\n {secondary}\r\n </button>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. CopyTextButton — Copy text to clipboard with visual feedback\r\n// ============================================\r\nexport function CopyTextButton({ text, className }: { text: string; className?: string }) {\r\n const [copied, setCopied] = React.useState(false)\r\n return (\r\n <button\r\n className={cn(\"inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-secondary text-secondary-foreground font-mono text-sm hover:bg-secondary/80 transition-all active:scale-95\", className)}\r\n onClick={() => { navigator.clipboard.writeText(text); setCopied(true); setTimeout(() => setCopied(false), 2000) }}\r\n >\r\n <span className=\"truncate max-w-[200px]\">{text}</span>\r\n <AnimatePresence mode=\"wait\">\r\n {copied ? (\r\n <motion.svg key=\"check\" initial={{ scale: 0 }} animate={{ scale: 1 }} exit={{ scale: 0 }} className=\"w-4 h-4 text-green-500\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></motion.svg>\r\n ) : (\r\n <motion.svg key=\"copy\" initial={{ scale: 0 }} animate={{ scale: 1 }} exit={{ scale: 0 }} className=\"w-4 h-4 opacity-50\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" /></motion.svg>\r\n )}\r\n </AnimatePresence>\r\n </button>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 4. ExpandButton — Expands on hover to show icon\r\n// ============================================\r\nexport function ExpandButton({ children, icon, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & { icon: React.ReactNode }) {\r\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\r\n return (\r\n <motion.button\r\n className={cn(\"inline-flex items-center gap-0 px-4 py-2.5 rounded-lg bg-primary text-primary-foreground font-semibold overflow-hidden\", className)}\r\n whileHover=\"expanded\"\r\n initial=\"collapsed\"\r\n {...motionSafeProps}\r\n >\r\n <span>{children}</span>\r\n <motion.span\r\n variants={{\r\n collapsed: { width: 0, opacity: 0, marginLeft: 0 },\r\n expanded: { width: \"auto\", opacity: 1, marginLeft: 8 }\r\n }}\r\n transition={{ type: \"spring\", stiffness: 300, damping: 25 }}\r\n className=\"overflow-hidden\"\r\n >\r\n {icon}\r\n </motion.span>\r\n </motion.button>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 5. StatusButton — Shows loading/success/error states\r\n// ============================================\r\nexport function StatusButton({ status = \"idle\", children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement> & { status?: \"idle\" | \"loading\" | \"success\" | \"error\" }) {\r\n const variants: Record<string, { bg: string; text: string }> = {\r\n idle: { bg: \"bg-primary\", text: \"text-primary-foreground\" },\r\n loading: { bg: \"bg-yellow-500 dark:bg-yellow-600\", text: \"text-white\" },\r\n success: { bg: \"bg-emerald-500 dark:bg-emerald-600\", text: \"text-white\" },\r\n error: { bg: \"bg-red-500 dark:bg-red-600\", text: \"text-white\" },\r\n }\r\n const v = variants[status]\r\n return (\r\n <button className={cn(\"relative px-5 py-2.5 rounded-lg font-semibold transition-all duration-300\", v.bg, v.text, status === \"loading\" && \"animate-pulse\", className)} disabled={status === \"loading\"} {...props}>\r\n <AnimatePresence mode=\"wait\">\r\n <motion.span key={status} initial={{ opacity: 0, y: 10 }} animate={{ opacity: 1, y: 0 }} exit={{ opacity: 0, y: -10 }} className=\"inline-flex items-center gap-2\">\r\n {status === \"loading\" && <span className=\"w-4 h-4 border-2 border-white/30 border-t-white rounded-full animate-spin\" />}\r\n {status === \"success\" && <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>}\r\n {status === \"error\" && <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" /></svg>}\r\n {status === \"idle\" ? children : status === \"loading\" ? \"Loading...\" : status === \"success\" ? \"Done!\" : \"Failed\"}\r\n </motion.span>\r\n </AnimatePresence>\r\n </button>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 6. SegmentedButton — Button group with selection\r\n// ============================================\r\nexport function SegmentedButton({ options, value, onChange, className }: {\r\n options: string[]\r\n value: string\r\n onChange: (val: string) => void\r\n className?: string\r\n}) {\r\n return (\r\n <div className={cn(\"inline-flex rounded-lg bg-muted p-1 gap-0.5\", className)}>\r\n {options.map((opt) => (\r\n <button\r\n key={opt}\r\n onClick={() => onChange(opt)}\r\n className={cn(\r\n \"relative px-4 py-1.5 rounded-md text-sm font-medium transition-all duration-200\",\r\n value === opt ? \"text-foreground\" : \"text-muted-foreground hover:text-foreground\"\r\n )}\r\n >\r\n {value === opt && (\r\n <motion.div layoutId=\"segmented-bg\" className=\"absolute inset-0 bg-background rounded-md shadow-sm\" transition={{ type: \"spring\", stiffness: 400, damping: 30 }} />\r\n )}\r\n <span className=\"relative z-10\">{opt}</span>\r\n </button>\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 7. TextButton — Minimal text with underline animation\r\n// ============================================\r\nexport function TextButton({ children, className, ...props }: React.ButtonHTMLAttributes<HTMLButtonElement>) {\r\n return (\r\n <button\r\n className={cn(\r\n \"relative font-medium text-foreground group transition-colors\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <span className=\"absolute bottom-0 left-0 h-[2px] w-0 bg-primary transition-all duration-300 group-hover:w-full\" />\r\n </button>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// ============================================\r\n// 1. NeumorphicCard\r\n// ============================================\r\nexport function NeumorphicCard({ children, className }: { children: React.ReactNode; className?: string }) {\r\n return (\r\n <div className={cn(\r\n \"rounded-2xl p-6 bg-background shadow-[8px_8px_16px_rgba(0,0,0,0.1),-8px_-8px_16px_rgba(255,255,255,0.7)] dark:shadow-[8px_8px_16px_rgba(0,0,0,0.4),-8px_-8px_16px_rgba(255,255,255,0.05)]\",\r\n className\r\n )}>\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 2. GradientMeshCard\r\n// ============================================\r\nexport function GradientMeshCard({ children, className }: { children: React.ReactNode; className?: string }) {\r\n return (\r\n <div className={cn(\"relative rounded-2xl overflow-hidden\", className)}>\r\n <div className=\"absolute inset-0 bg-gradient-to-br from-violet-500/20 via-transparent to-pink-500/20 dark:from-violet-500/10 dark:to-pink-500/10\" />\r\n <div className=\"absolute top-0 right-0 w-32 h-32 bg-orange-400/20 dark:bg-orange-400/10 rounded-full blur-3xl\" />\r\n <div className=\"absolute bottom-0 left-0 w-32 h-32 bg-blue-400/20 dark:bg-blue-400/10 rounded-full blur-3xl\" />\r\n <div className=\"relative p-6 border border-white/10 dark:border-white/5 rounded-2xl backdrop-blur-sm\">\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. TiltCard — 3D tilt on hover\r\n// ============================================\r\nexport function TiltCard({ children, className }: { children: React.ReactNode; className?: string }) {\r\n const ref = React.useRef<HTMLDivElement>(null)\r\n const [transform, setTransform] = React.useState(\"\")\r\n\r\n const handleMouseMove = (e: React.MouseEvent) => {\r\n if (!ref.current) return\r\n const rect = ref.current.getBoundingClientRect()\r\n const x = (e.clientX - rect.left) / rect.width - 0.5\r\n const y = (e.clientY - rect.top) / rect.height - 0.5\r\n setTransform(`perspective(600px) rotateX(${y * -10}deg) rotateY(${x * 10}deg) scale3d(1.02,1.02,1.02)`)\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n onMouseMove={handleMouseMove}\r\n onMouseLeave={() => setTransform(\"\")}\r\n className={cn(\"rounded-2xl border border-border bg-card p-6 transition-transform duration-200 ease-out\", className)}\r\n style={{ transform }}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 4. FeatureCard — Card with icon, title, desc\r\n// ============================================\r\nexport function FeatureCard({ icon, title, description, className }: {\r\n icon: React.ReactNode\r\n title: string\r\n description: string\r\n className?: string\r\n}) {\r\n return (\r\n <motion.div\r\n whileHover={{ y: -4 }}\r\n className={cn(\"rounded-xl border border-border bg-card p-5 transition-shadow hover:shadow-lg dark:hover:shadow-primary/5\", className)}\r\n >\r\n <div className=\"mb-3 inline-flex items-center justify-center w-10 h-10 rounded-lg bg-primary/10 text-primary\">\r\n {icon}\r\n </div>\r\n <h4 className=\"font-semibold text-foreground mb-1\">{title}</h4>\r\n <p className=\"text-sm text-muted-foreground leading-relaxed\">{description}</p>\r\n </motion.div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 5. MetricCard — Stat card with trend\r\n// ============================================\r\nexport function MetricCard({ title, value, change, changeType = \"positive\", className }: {\r\n title: string\r\n value: string\r\n change: string\r\n changeType?: \"positive\" | \"negative\" | \"neutral\"\r\n className?: string\r\n}) {\r\n const colors = {\r\n positive: \"text-emerald-500 bg-emerald-500/10\",\r\n negative: \"text-red-500 bg-red-500/10\",\r\n neutral: \"text-muted-foreground bg-muted\",\r\n }\r\n return (\r\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\r\n <p className=\"text-sm text-muted-foreground mb-1\">{title}</p>\r\n <div className=\"flex items-end justify-between\">\r\n <span className=\"text-2xl font-bold\">{value}</span>\r\n <span className={cn(\"text-xs font-medium px-2 py-0.5 rounded-full\", colors[changeType])}>{change}</span>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// Re-export standard input variants for backward compatibility\r\nexport { GradientInput as GradientFocusInput, FloatingLabelInput as AnimatedLabelInput, SearchInput as SearchCommandInput } from \"./input\"\r\n\r\n// ============================================\r\n// 1. OTPInput — One-time passcode input\r\n// ============================================\r\nexport function OTPCodeInput({ length = 6, className, onChange }: { length?: number; className?: string; onChange?: (val: string) => void }) {\r\n const [values, setValues] = React.useState<string[]>(Array(length).fill(\"\"))\r\n const refs = React.useRef<(HTMLInputElement | null)[]>([])\r\n\r\n const handleChange = (i: number, v: string) => {\r\n if (!/^\\d*$/.test(v)) return\r\n const newVals = [...values]\r\n newVals[i] = v.slice(-1)\r\n setValues(newVals)\r\n onChange?.(newVals.join(\"\"))\r\n if (v && i < length - 1) refs.current[i + 1]?.focus()\r\n }\r\n\r\n const handleKeyDown = (i: number, e: React.KeyboardEvent) => {\r\n if (e.key === \"Backspace\" && !values[i] && i > 0) refs.current[i - 1]?.focus()\r\n }\r\n\r\n return (\r\n <div className={cn(\"flex gap-2\", className)}>\r\n {values.map((v, i) => (\r\n <input\r\n key={i}\r\n ref={(el) => { refs.current[i] = el }}\r\n type=\"text\"\r\n inputMode=\"numeric\"\r\n maxLength={1}\r\n value={v}\r\n onChange={(e) => handleChange(i, e.target.value)}\r\n onKeyDown={(e) => handleKeyDown(i, e)}\r\n className=\"w-12 h-12 text-center text-lg font-mono rounded-lg border border-border bg-background text-foreground outline-none focus:border-primary focus:ring-2 focus:ring-primary/30 transition-all\"\r\n />\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 2. TagInput — Input with tags\r\n// ============================================\r\nexport function TagInput({ placeholder = \"Add tag...\", className }: { placeholder?: string; className?: string }) {\r\n const [tags, setTags] = React.useState<string[]>([\"React\", \"TypeScript\"])\r\n const [input, setInput] = React.useState(\"\")\r\n\r\n const addTag = () => {\r\n const trimmed = input.trim()\r\n if (trimmed && !tags.includes(trimmed)) {\r\n setTags([...tags, trimmed])\r\n setInput(\"\")\r\n }\r\n }\r\n\r\n return (\r\n <div className={cn(\"flex flex-wrap items-center gap-2 p-2.5 rounded-lg border border-border bg-background min-h-[44px]\", className)}>\r\n <AnimatePresence>\r\n {tags.map((tag) => (\r\n <motion.span\r\n key={tag}\r\n initial={{ scale: 0, opacity: 0 }}\r\n animate={{ scale: 1, opacity: 1 }}\r\n exit={{ scale: 0, opacity: 0 }}\r\n className=\"inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full bg-primary/10 text-primary text-xs font-medium\"\r\n >\r\n {tag}\r\n <button onClick={() => setTags(tags.filter(t => t !== tag))} className=\"hover:text-destructive\">×</button>\r\n </motion.span>\r\n ))}\r\n </AnimatePresence>\r\n <input\r\n className=\"flex-1 min-w-[100px] bg-transparent text-sm outline-none placeholder:text-muted-foreground\"\r\n value={input}\r\n onChange={(e) => setInput(e.target.value)}\r\n onKeyDown={(e) => { if (e.key === \"Enter\") { e.preventDefault(); addTag() } }}\r\n placeholder={placeholder}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. CurrencyInput\r\n// ============================================\r\nexport function CurrencyInput({ currency = \"$\", className, ...props }: React.InputHTMLAttributes<HTMLInputElement> & { currency?: string }) {\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n <span className=\"absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground font-medium\">{currency}</span>\r\n <input\r\n type=\"number\"\r\n className=\"w-full pl-8 pr-4 py-2.5 rounded-lg border border-border bg-background text-foreground text-sm outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all placeholder:text-muted-foreground\"\r\n placeholder=\"0.00\"\r\n {...props}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 4. TextareaAutosize — Auto-expanding textarea\r\n// ============================================\r\nexport function TextareaAutosize({ className, ...props }: React.TextareaHTMLAttributes<HTMLTextAreaElement>) {\r\n const ref = React.useRef<HTMLTextAreaElement>(null)\r\n\r\n const handleInput = () => {\r\n if (!ref.current) return\r\n ref.current.style.height = \"auto\"\r\n ref.current.style.height = ref.current.scrollHeight + \"px\"\r\n }\r\n\r\n return (\r\n <textarea\r\n ref={ref}\r\n onInput={handleInput}\r\n className={cn(\r\n \"w-full px-4 py-3 rounded-lg border border-border bg-background text-foreground text-sm outline-none focus:border-primary focus:ring-1 focus:ring-primary/30 transition-all resize-none min-h-[80px] placeholder:text-muted-foreground\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n// ============================================\r\n// 5. ColorPickerInput\r\n// ============================================\r\nexport function ColorPickerInput({ value: initial = \"#8b5cf6\", label, className, onChange }: {\r\n value?: string; label?: string; className?: string; onChange?: (color: string) => void\r\n}) {\r\n const [color, setColor] = React.useState(initial)\r\n\r\n return (\r\n <div className={cn(\"flex items-center gap-3\", className)}>\r\n <div className=\"relative\">\r\n <div className=\"w-10 h-10 rounded-lg border-2 border-border overflow-hidden\" style={{ backgroundColor: color }} />\r\n <input\r\n type=\"color\" value={color}\r\n onChange={(e) => { setColor(e.target.value); onChange?.(e.target.value) }}\r\n className=\"absolute inset-0 opacity-0 cursor-pointer\"\r\n />\r\n </div>\r\n <div>\r\n {label && <p className=\"text-sm font-medium\">{label}</p>}\r\n <p className=\"text-xs text-muted-foreground font-mono\">{color}</p>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { Check, Upload, Star, Plus, Minus } from \"lucide-react\"\r\n\r\n// 1. RadioCard\r\nexport const RadioCard = ({ title, description, checked, onChange, value, name }: any) => (\r\n <label className={cn(\"relative flex cursor-pointer rounded-lg border p-4 hover:bg-accent transition-all\", checked ? \"border-primary bg-primary/5 shadow-sm\" : \"border-border bg-card\")}>\r\n <input type=\"radio\" name={name} value={value} checked={checked} onChange={onChange} className=\"sr-only\" />\r\n <div className=\"flex w-full justify-between items-center\">\r\n <div className=\"flex flex-col\">\r\n <span className=\"font-semibold\">{title}</span>\r\n {description && <span className=\"text-sm text-muted-foreground\">{description}</span>}\r\n </div>\r\n <div className={cn(\"flex h-5 w-5 items-center justify-center rounded-full border-2 transition-colors\", checked ? \"border-primary bg-primary\" : \"border-muted-foreground\")}>\r\n {checked && <div className=\"h-2.5 w-2.5 rounded-full bg-background\" />}\r\n </div>\r\n </div>\r\n </label>\r\n)\r\n\r\n// 2. ColorSwatch\r\nexport const ColorSwatch = ({ color, selected, onClick }: any) => (\r\n <button\r\n type=\"button\"\r\n onClick={onClick}\r\n className={cn(\"relative flex h-10 w-10 items-center justify-center rounded-full transition-transform hover:scale-110\", selected && \"ring-2 ring-primary ring-offset-2 ring-offset-background\")}\r\n style={{ backgroundColor: color }}\r\n >\r\n {selected && <Check className=\"h-5 w-5 text-white drop-shadow-md\" />}\r\n </button>\r\n)\r\n\r\n// 3. NumberStepper\r\nexport const NumberStepper = ({ value = 0, onChange, min = 0, max = 100 }: any) => (\r\n <div className=\"flex items-center space-x-2 rounded-md border border-border p-1 w-fit bg-card\">\r\n <button type=\"button\" onClick={() => onChange(Math.max(min, value - 1))} className=\"p-1 rounded hover:bg-muted text-muted-foreground transition-colors\"><Minus className=\"h-4 w-4\" /></button>\r\n <div className=\"w-8 text-center font-medium text-sm\">{value}</div>\r\n <button type=\"button\" onClick={() => onChange(Math.min(max, value + 1))} className=\"p-1 rounded hover:bg-muted text-muted-foreground transition-colors\"><Plus className=\"h-4 w-4\" /></button>\r\n </div>\r\n)\r\n\r\n// 4. FileDropzone\r\nexport const FileDropzone = ({ onDrop }: any) => (\r\n <div className=\"flex flex-col items-center justify-center w-full h-40 border-2 border-dashed border-muted-foreground/25 rounded-xl bg-card hover:bg-accent/50 transition-colors cursor-pointer group\">\r\n <div className=\"p-4 rounded-full bg-muted group-hover:bg-background transition-colors mb-2\">\r\n <Upload className=\"h-6 w-6 text-muted-foreground group-hover:text-primary transition-colors\" />\r\n </div>\r\n <p className=\"text-sm font-medium\">Click or drag file to this area to upload</p>\r\n <p className=\"text-xs text-muted-foreground mt-1\">Support for a single or bulk upload.</p>\r\n </div>\r\n)\r\n\r\n// 5. RatingStars\r\nexport const RatingStars = ({ rating = 0, max = 5, onRate }: any) => (\r\n <div className=\"flex items-center space-x-1\">\r\n {Array.from({ length: max }).map((_, i) => (\r\n <button key={i} type=\"button\" onClick={() => onRate?.(i + 1)} className=\"p-1 focus:outline-none transition-transform hover:scale-110\">\r\n <Star className={cn(\"h-6 w-6\", i < rating ? \"fill-yellow-400 text-yellow-400\" : \"fill-muted text-muted-foreground\")} />\r\n </button>\r\n ))}\r\n </div>\r\n)\r\n\r\n// 6. ToggleGroupItem (Visual wrapper)\r\nexport const ToggleGroupItemWrapper = ({ children, active, onClick }: any) => (\r\n <button type=\"button\" onClick={onClick} className={cn(\"px-4 py-2 text-sm font-medium transition-colors border border-transparent\", active ? \"bg-background text-foreground shadow-sm rounded-md\" : \"text-muted-foreground hover:text-foreground\")}>\r\n {children}\r\n </button>\r\n)\r\n\r\nexport const ToggleGroupWrapper = ({ children }: any) => (\r\n <div className=\"inline-flex items-center rounded-lg bg-muted p-1\">{children}</div>\r\n)\r\n\r\n// 7. InputWithLabelOverlay\r\nexport const InputWithLabelOverlay = ({ label, id, ...props }: any) => (\r\n <div className=\"relative\">\r\n <input id={id} className=\"block w-full rounded-md border border-border bg-background px-3 pb-2 pt-6 text-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary peer\" placeholder=\" \" {...props} />\r\n <label htmlFor={id} className=\"absolute left-3 top-2 text-xs text-muted-foreground transition-all peer-placeholder-shown:top-4 peer-placeholder-shown:text-sm peer-focus:top-2 peer-focus:text-xs peer-focus:text-primary cursor-text\">\r\n {label}\r\n </label>\r\n </div>\r\n)\r\n\r\n// 8. VisualSelectCard\r\nexport const VisualSelectCard = ({ icon: Icon, title, description, selected }: any) => (\r\n <div className={cn(\"flex flex-col items-center justify-center p-6 rounded-xl border text-center transition-all cursor-pointer hover:border-primary\", selected ? \"border-primary bg-primary/5\" : \"border-border bg-card\")}>\r\n <Icon className={cn(\"h-8 w-8 mb-4\", selected ? \"text-primary\" : \"text-muted-foreground\")} />\r\n <h3 className=\"font-semibold mb-1\">{title}</h3>\r\n <p className=\"text-xs text-muted-foreground\">{description}</p>\r\n </div>\r\n)\r\n\r\n// 9. FloatingActionForm (Button that expands into form)\r\nexport const FloatingActionForm = ({ isOpen, toggle, children }: any) => (\r\n <div className=\"relative\">\r\n <AnimatePresence>\r\n {isOpen && (\r\n <motion.div initial={{ opacity: 0, scale: 0.8, y: 20 }} animate={{ opacity: 1, scale: 1, y: 0 }} exit={{ opacity: 0, scale: 0.8, y: 20 }} className=\"absolute bottom-16 right-0 w-80 bg-card border rounded-xl shadow-xl p-4 origin-bottom-right\">\r\n {children}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n <button type=\"button\" onClick={toggle} className=\"flex h-14 w-14 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg hover:bg-primary/90 transition-transform active:scale-95\">\r\n <motion.div animate={{ rotate: isOpen ? 45 : 0 }}><Plus className=\"h-6 w-6\" /></motion.div>\r\n </button>\r\n </div>\r\n)\r\n\r\n// 10. OTPInput (Visual boxes)\r\nexport const OTPInput = ({ length = 6 }: any) => (\r\n <div className=\"flex space-x-2\">\r\n {Array.from({ length }).map((_, i) => (\r\n <input key={i} type=\"text\" maxLength={1} className=\"w-12 h-14 text-center text-xl font-bold rounded-md border border-border bg-background focus:border-primary focus:ring-1 focus:ring-primary outline-none\" />\r\n ))}\r\n </div>\r\n)\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, useMotionValue, useSpring, useTransform } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// ============================================\r\n// 1. Marquee, NumberTicker, and TypingAnimation Re-exports\r\n// ============================================\r\nexport { Marquee, type MarqueeProps } from \"./marquee\"\r\nexport { NumberTicker, type NumberTickerProps } from \"./number-ticker\"\r\nexport { TypingAnimation, type TypingAnimationProps } from \"./special-animations\"\r\n\r\n// ============================================\r\n// 5. AnimatedGradientBorder — Animated gradient border\r\n// ============================================\r\nexport interface AnimatedGradientBorderProps {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для containerClassName\n * @default undefined\n */\n containerClassName?: string\r\n /**\n * Описание для gradientClassName\n * @default undefined\n */\n gradientClassName?: string\r\n /**\n * Описание для duration\n * @default undefined\n */\n duration?: number\r\n}\r\n\r\nexport function AnimatedGradientBorder({\r\n children,\r\n className,\r\n containerClassName,\r\n gradientClassName,\r\n duration = 3,\r\n}: AnimatedGradientBorderProps) {\r\n return (\r\n <div className={cn(\"relative rounded-xl p-[1px]\", containerClassName)}>\r\n <motion.div\r\n className={cn(\r\n \"absolute inset-0 rounded-xl\",\r\n gradientClassName\r\n )}\r\n style={{\r\n background: \"linear-gradient(var(--angle, 0deg), #ff0080, #7928ca, #ff0080)\",\r\n }}\r\n animate={{\r\n \"--angle\": [\"0deg\", \"360deg\"],\r\n } as any}\r\n transition={{\r\n duration,\r\n repeat: Infinity,\r\n ease: \"linear\",\r\n }}\r\n />\r\n <div className={cn(\"relative rounded-xl bg-background\", className)}>\r\n {children}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n\r\n// ============================================\r\n// 7. AnimatedBeam — SVG beam connecting elements\r\n// ============================================\r\nexport interface AnimatedBeamProps {\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n}\r\n\r\nexport function AnimatedBeam({ className, children }: AnimatedBeamProps) {\r\n return (\r\n <div className={cn(\"relative\", className)}>\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 8. ShinyText — Text with a shimmering highlight\r\n// ============================================\r\nexport interface ShinyTextProps {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для shimmerWidth\n * @default undefined\n */\n shimmerWidth?: number\r\n}\r\n\r\nexport function ShinyText({\r\n children,\r\n className,\r\n shimmerWidth = 100,\r\n}: ShinyTextProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"inline-block bg-clip-text text-transparent\",\r\n \"bg-[length:250%_100%] animate-shimmer-text\",\r\n className\r\n )}\r\n style={{\r\n backgroundImage: `linear-gradient(110deg, currentColor 35%, rgba(255,255,255,0.8) 50%, currentColor 65%)`,\r\n WebkitBackgroundClip: \"text\",\r\n backgroundClip: \"text\",\r\n color: \"transparent\",\r\n backgroundSize: `${shimmerWidth * 3}% 100%`,\r\n }}\r\n >\r\n {children}\r\n </span>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 9. RetroGrid — Retro perspective grid background\r\n// ============================================\r\nexport interface RetroGridProps {\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для angle\n * @default undefined\n */\n angle?: number\r\n}\r\n\r\nexport function RetroGrid({ className, angle = 65 }: RetroGridProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"pointer-events-none absolute inset-0 overflow-hidden [perspective:200px]\",\r\n className\r\n )}\r\n style={{ \"--grid-angle\": `${angle}deg` } as React.CSSProperties}\r\n >\r\n <div className=\"absolute inset-0 [transform:rotateX(var(--grid-angle))]\">\r\n <div\r\n className=\"animate-grid\"\r\n style={{\r\n backgroundRepeat: \"repeat\",\r\n backgroundSize: \"60px 60px\",\r\n height: \"300vh\",\r\n inset: \"-50% 0px\",\r\n marginLeft: \"-50%\",\r\n transformOrigin: \"100% 0 0\",\r\n width: \"600vw\",\r\n backgroundImage: `linear-gradient(to right, rgba(0,0,0,0.1) 1px, transparent 0),\r\n linear-gradient(to bottom, rgba(0,0,0,0.1) 1px, transparent 0)`,\r\n }}\r\n />\r\n </div>\r\n <div className=\"absolute inset-0 bg-gradient-to-t from-background to-transparent to-90%\" />\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 10. Meteors — Falling meteors animation\r\n// ============================================\r\nexport interface MeteorsProps {\r\n /**\n * Описание для number\n * @default undefined\n */\n number?: number\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function Meteors({ number = 20, className }: MeteorsProps) {\r\n const meteors = React.useMemo(() => {\r\n return [...Array(number)].map((_, idx) => ({\r\n id: idx,\r\n size: Math.floor(Math.random() * 2) + 1,\r\n left: `${Math.floor(Math.random() * 100)}%`,\r\n animationDelay: `${(Math.random() * 2).toFixed(1)}s`,\r\n animationDuration: `${Math.floor(Math.random() * 8 + 5)}s`,\r\n }))\r\n }, [number])\r\n\r\n return (\r\n <div className={cn(\"absolute inset-0 overflow-hidden pointer-events-none\", className)}>\r\n {meteors.map((meteor) => (\r\n <span\r\n key={meteor.id}\r\n className=\"absolute top-0 animate-meteor rounded-full bg-foreground/20 shadow-[0_0_0_1px_#ffffff10]\"\r\n style={{\r\n left: meteor.left,\r\n width: `${meteor.size}px`,\r\n height: `${meteor.size * 20}px`,\r\n animationDelay: meteor.animationDelay,\r\n animationDuration: meteor.animationDuration,\r\n }}\r\n >\r\n <div className=\"absolute top-1/2 -translate-y-1/2 w-[1px] h-full bg-gradient-to-b from-foreground/30 to-transparent\" />\r\n </span>\r\n ))}\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, useMotionValue, useSpring, AnimatePresence } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// ============================================\r\n// 1. MorphingText — Text morphing between values\r\n// ============================================\r\nexport interface MorphingTextProps {\r\n /**\n * Описание для texts\n * @default undefined\n */\n texts: string[]\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для interval\n * @default undefined\n */\n interval?: number\r\n}\r\n\r\nexport function MorphingText({\r\n texts,\r\n className,\r\n interval = 3000,\r\n}: MorphingTextProps) {\r\n const [currentIndex, setCurrentIndex] = React.useState(0)\r\n\r\n React.useEffect(() => {\r\n const timer = setInterval(() => {\r\n setCurrentIndex((prev) => (prev + 1) % texts.length)\r\n }, interval)\r\n return () => clearInterval(timer)\r\n }, [texts.length, interval])\r\n\r\n return (\r\n <div className={cn(\"relative overflow-hidden\", className)}>\r\n <AnimatePresence mode=\"wait\">\r\n <motion.span\r\n key={currentIndex}\r\n initial={{ y: 20, opacity: 0, filter: \"blur(8px)\" }}\r\n animate={{ y: 0, opacity: 1, filter: \"blur(0px)\" }}\r\n exit={{ y: -20, opacity: 0, filter: \"blur(8px)\" }}\r\n transition={{ duration: 0.4, ease: \"easeInOut\" }}\r\n className=\"block\"\r\n >\r\n {texts[currentIndex]}\r\n </motion.span>\r\n </AnimatePresence>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 2. AnimatedList — Animated notification list\r\n// ============================================\r\nexport interface AnimatedListProps {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для delay\n * @default undefined\n */\n delay?: number\r\n}\r\n\r\nexport function AnimatedList({\r\n children,\r\n className,\r\n delay = 500,\r\n}: AnimatedListProps) {\r\n const [items, setItems] = React.useState<React.ReactNode[]>([])\r\n const childArray = React.Children.toArray(children)\r\n\r\n React.useEffect(() => {\r\n let i = 0\r\n const timer = setInterval(() => {\r\n if (i < childArray.length) {\r\n setItems((prev) => [...prev, childArray[i]])\r\n i++\r\n } else {\r\n clearInterval(timer)\r\n }\r\n }, delay)\r\n return () => clearInterval(timer)\r\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\r\n\r\n return (\r\n <div className={cn(\"flex flex-col gap-2\", className)}>\r\n <AnimatePresence>\r\n {items.map((item, index) => (\r\n <motion.div\r\n key={index}\r\n initial={{ opacity: 0, y: 20, scale: 0.95 }}\r\n animate={{ opacity: 1, y: 0, scale: 1 }}\r\n exit={{ opacity: 0, y: -20, scale: 0.95 }}\r\n transition={{ duration: 0.3, ease: \"easeOut\" }}\r\n >\r\n {item}\r\n </motion.div>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. BlurFade Re-export\r\n// ============================================\r\nexport { BlurFade, type BlurFadeProps } from \"./blur-fade\"\r\n\r\n// ============================================\r\n// 4. InteractiveHoverButton — Button with expanding hover\r\n// ============================================\r\nexport interface InteractiveHoverButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n /**\n * Описание для text\n * @default undefined\n */\n text?: string\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function InteractiveHoverButton({\r\n text = \"Button\",\r\n className,\r\n ...props\r\n}: InteractiveHoverButtonProps) {\r\n return (\r\n <button\r\n className={cn(\r\n \"group relative w-32 cursor-pointer overflow-hidden rounded-full border border-border bg-background p-2 text-center font-semibold transition-colors duration-300\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"inline-block translate-x-1 transition-all duration-300 group-hover:translate-x-12 group-hover:opacity-0\">\r\n {text}\r\n </span>\r\n <div className=\"absolute top-0 z-10 flex h-full w-full translate-x-12 items-center justify-center gap-2 text-primary-foreground opacity-0 transition-all duration-300 group-hover:-translate-x-1 group-hover:opacity-100\">\r\n <span>{text}</span>\r\n </div>\r\n <div className=\"absolute left-[20%] top-[40%] h-2 w-2 scale-[1] rounded-lg bg-primary transition-all duration-300 group-hover:left-[0%] group-hover:top-[0%] group-hover:h-full group-hover:w-full group-hover:scale-[1.8] group-hover:rounded-none\" />\r\n </button>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 5. PulsatingButton — Button with pulsating ring\r\n// ============================================\r\nexport interface PulsatingButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n /**\n * Описание для pulseColor\n * @default undefined\n */\n pulseColor?: string\r\n /**\n * Описание для duration\n * @default undefined\n */\n duration?: string\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function PulsatingButton({\r\n className,\r\n children,\r\n pulseColor = \"hsl(var(--primary))\",\r\n duration = \"1.5s\",\r\n ...props\r\n}: PulsatingButtonProps) {\r\n return (\r\n <button\r\n className={cn(\r\n \"relative text-center cursor-pointer flex justify-center items-center rounded-lg text-white bg-primary px-4 py-2\",\r\n className\r\n )}\r\n style={\r\n {\r\n \"--pulse-color\": pulseColor,\r\n \"--duration\": duration,\r\n } as React.CSSProperties\r\n }\r\n {...props}\r\n >\r\n <div className=\"relative z-10\">{children}</div>\r\n <div className=\"absolute top-1/2 left-1/2 size-full rounded-lg bg-inherit animate-pulse-ring -translate-x-1/2 -translate-y-1/2\" />\r\n </button>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 6. RainbowButton — Button with rainbow gradient border\r\n// ============================================\r\nexport interface RainbowButtonProps\r\n extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function RainbowButton({\r\n children,\r\n className,\r\n ...props\r\n}: RainbowButtonProps) {\r\n return (\r\n <button\r\n className={cn(\r\n \"group relative inline-flex h-11 animate-rainbow cursor-pointer items-center justify-center rounded-xl border-0 bg-[length:200%] px-8 py-2 font-medium text-primary-foreground transition-colors [background-clip:padding-box,border-box,border-box] [background-origin:border-box] [border:calc(0.08*1rem)_solid_transparent]\",\r\n \"bg-[linear-gradient(#121213,#121213),linear-gradient(#121213_50%,rgba(18,18,19,0.6)_80%,rgba(18,18,19,0)),linear-gradient(90deg,hsl(0,100%,63%),hsl(30,100%,63%),hsl(60,100%,63%),hsl(120,100%,63%),hsl(180,100%,63%),hsl(240,100%,63%),hsl(300,100%,63%),hsl(360,100%,63%))]\",\r\n \"dark:bg-[linear-gradient(#fff,#fff),linear-gradient(#fff_50%,rgba(255,255,255,0.6)_80%,rgba(0,0,0,0)),linear-gradient(90deg,hsl(0,100%,63%),hsl(30,100%,63%),hsl(60,100%,63%),hsl(120,100%,63%),hsl(180,100%,63%),hsl(240,100%,63%),hsl(300,100%,63%),hsl(360,100%,63%))]\",\r\n \"dark:text-primary\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 7. CoolMode — Particles burst on click\r\n// ============================================\r\nexport interface CoolModeProps {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactElement\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function CoolMode({ children, className }: CoolModeProps) {\r\n const containerRef = React.useRef<HTMLDivElement>(null)\r\n\r\n const handleClick = (e: React.MouseEvent) => {\r\n const rect = containerRef.current?.getBoundingClientRect()\r\n if (!rect) return\r\n\r\n const x = e.clientX - rect.left\r\n const y = e.clientY - rect.top\r\n const count = 15\r\n\r\n for (let i = 0; i < count; i++) {\r\n const particle = document.createElement(\"div\")\r\n const size = Math.random() * 8 + 4\r\n const angle = (Math.PI * 2 * i) / count\r\n const velocity = Math.random() * 80 + 40\r\n\r\n particle.style.cssText = `\r\n position: absolute;\r\n left: ${x}px;\r\n top: ${y}px;\r\n width: ${size}px;\r\n height: ${size}px;\r\n border-radius: 50%;\r\n background: hsl(${Math.random() * 360}, 70%, 60%);\r\n pointer-events: none;\r\n z-index: 9999;\r\n transform: translate(-50%, -50%);\r\n transition: all ${0.5 + Math.random() * 0.5}s cubic-bezier(0.25, 0.46, 0.45, 0.94);\r\n `\r\n\r\n containerRef.current?.appendChild(particle)\r\n\r\n requestAnimationFrame(() => {\r\n particle.style.transform = `translate(${Math.cos(angle) * velocity}px, ${Math.sin(angle) * velocity}px)`\r\n particle.style.opacity = \"0\"\r\n })\r\n\r\n setTimeout(() => particle.remove(), 1000)\r\n }\r\n }\r\n\r\n return (\r\n <div ref={containerRef} className={cn(\"relative inline-block\", className)} onClick={handleClick}>\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 8. WordPullUp — Words pulling up animation\r\n// ============================================\r\nexport interface WordPullUpProps {\r\n /**\n * Описание для words\n * @default undefined\n */\n words: string\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для delayMultiple\n * @default undefined\n */\n delayMultiple?: number\r\n}\r\n\r\nexport function WordPullUp({\r\n words,\r\n className,\r\n delayMultiple = 0.08,\r\n}: WordPullUpProps) {\r\n const wordArray = words.split(\" \")\r\n\r\n return (\r\n <div className={cn(\"flex flex-wrap justify-center gap-x-2\", className)}>\r\n {wordArray.map((word, i) => (\r\n <motion.span\r\n key={i}\r\n initial={{ opacity: 0, y: 20, filter: \"blur(4px)\" }}\r\n animate={{ opacity: 1, y: 0, filter: \"blur(0px)\" }}\r\n transition={{\r\n delay: i * delayMultiple,\r\n duration: 0.3,\r\n ease: [0.2, 0.65, 0.3, 0.9],\r\n }}\r\n className=\"inline-block\"\r\n >\r\n {word}\r\n </motion.span>\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 9. BoxReveal — Box reveal animation\r\n// ============================================\r\nexport interface BoxRevealProps {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для boxColor\n * @default undefined\n */\n boxColor?: string\r\n /**\n * Описание для duration\n * @default undefined\n */\n duration?: number\r\n /**\n * Описание для delay\n * @default undefined\n */\n delay?: number\r\n}\r\n\r\nexport function BoxReveal({\r\n children,\r\n className,\r\n boxColor = \"hsl(var(--primary))\",\r\n duration = 0.5,\r\n delay = 0,\r\n}: BoxRevealProps) {\r\n return (\r\n <div className={cn(\"relative inline-block overflow-hidden\", className)}>\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n transition={{ delay: delay + duration, duration: 0.01 }}\r\n >\r\n {children}\r\n </motion.div>\r\n <motion.div\r\n className=\"absolute inset-0\"\r\n style={{ backgroundColor: boxColor, transformOrigin: \"left\" }}\r\n initial={{ scaleX: 0 }}\r\n animate={{ scaleX: [0, 1, 1, 0] }}\r\n transition={{\r\n duration: duration * 2,\r\n delay,\r\n ease: \"easeInOut\",\r\n times: [0, 0.5, 0.5, 1],\r\n }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 10. TextShimmer — Text with color shimmer\r\n// ============================================\r\nexport interface TextShimmerProps {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n /**\n * Описание для duration\n * @default undefined\n */\n duration?: number\r\n /**\n * Описание для spread\n * @default undefined\n */\n spread?: number\r\n}\r\n\r\nexport function TextShimmer({\r\n children,\r\n className,\r\n duration = 2,\r\n spread = 2,\r\n}: TextShimmerProps) {\r\n return (\r\n <span\r\n className={cn(\r\n \"inline-flex animate-text-shimmer bg-clip-text text-transparent\",\r\n className\r\n )}\r\n style={{\r\n backgroundImage: `linear-gradient(\r\n 110deg,\r\n hsl(var(--foreground)) 35%,\r\n hsl(var(--primary)) ${50 - spread}%,\r\n hsl(var(--primary)) ${50 + spread}%,\r\n hsl(var(--foreground)) 65%\r\n )`,\r\n backgroundSize: \"250% 100%\",\r\n animationDuration: `${duration}s`,\r\n WebkitBackgroundClip: \"text\",\r\n backgroundClip: \"text\",\r\n }}\r\n >\r\n {children}\r\n </span>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\nimport { X } from \"lucide-react\"\r\n\r\n// ============================================\r\n// 1. ScrollArea Re-export\r\n// ============================================\r\nexport { ScrollArea, type ScrollAreaProps } from \"./scroll-area\"\r\n\r\n// ============================================\r\n// 2. Drawer — Slide-in panel from bottom or side\r\n// ============================================\r\nexport interface DrawerProps {\r\n /** Whether the drawer is open */\r\n open: boolean\r\n /** Callback when drawer should close */\r\n onClose: () => void\r\n /** Direction the drawer slides from */\r\n side?: \"bottom\" | \"right\" | \"left\"\r\n /** Drawer content */\r\n children: React.ReactNode\r\n /** Additional CSS classes for the drawer panel */\r\n className?: string\r\n /** Title for the drawer header */\r\n title?: string\r\n}\r\n\r\nconst slideVariants = {\r\n bottom: {\r\n initial: { y: \"100%\" },\r\n animate: { y: 0 },\r\n exit: { y: \"100%\" },\r\n className: \"inset-x-0 bottom-0 rounded-t-2xl max-h-[85vh]\",\r\n },\r\n right: {\r\n initial: { x: \"100%\" },\r\n animate: { x: 0 },\r\n exit: { x: \"100%\" },\r\n className: \"inset-y-0 right-0 w-full max-w-md h-full\",\r\n },\r\n left: {\r\n initial: { x: \"-100%\" },\r\n animate: { x: 0 },\r\n exit: { x: \"-100%\" },\r\n className: \"inset-y-0 left-0 w-full max-w-md h-full\",\r\n },\r\n}\r\n\r\nexport function Drawer({\r\n open,\r\n onClose,\r\n side = \"bottom\",\r\n children,\r\n className,\r\n title,\r\n}: DrawerProps) {\r\n const variant = slideVariants[side]\r\n\r\n // Close on Escape key\r\n React.useEffect(() => {\r\n if (!open) return\r\n const handler = (e: KeyboardEvent) => {\r\n if (e.key === \"Escape\") onClose()\r\n }\r\n window.addEventListener(\"keydown\", handler)\r\n return () => window.removeEventListener(\"keydown\", handler)\r\n }, [open, onClose])\r\n\r\n return (\r\n <AnimatePresence>\r\n {open && (\r\n <div className=\"fixed inset-0 z-50\">\r\n {/* Backdrop */}\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n className=\"absolute inset-0 bg-black/50 backdrop-blur-sm\"\r\n onClick={onClose}\r\n />\r\n {/* Panel */}\r\n <motion.div\r\n initial={variant.initial}\r\n animate={variant.animate}\r\n exit={variant.exit}\r\n transition={{ type: \"spring\", damping: 30, stiffness: 300 }}\r\n className={cn(\r\n \"absolute bg-card border border-border shadow-2xl overflow-y-auto\",\r\n variant.className,\r\n className\r\n )}\r\n >\r\n {/* Handle for bottom drawer */}\r\n {side === \"bottom\" && (\r\n <div className=\"flex justify-center pt-3 pb-1\">\r\n <div className=\"w-12 h-1.5 rounded-full bg-muted-foreground/20\" />\r\n </div>\r\n )}\r\n {/* Header */}\r\n {title && (\r\n <div className=\"flex items-center justify-between px-6 py-4 border-b border-border\">\r\n <h3 className=\"font-semibold text-lg\">{title}</h3>\r\n <button\r\n onClick={onClose}\r\n className=\"p-1.5 rounded-md hover:bg-muted transition-colors text-muted-foreground hover:text-foreground\"\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </button>\r\n </div>\r\n )}\r\n {/* Content */}\r\n <div className=\"p-6\">{children}</div>\r\n </motion.div>\r\n </div>\r\n )}\r\n </AnimatePresence>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. CommandPalette — Cmd+K search overlay\r\n// ============================================\r\nexport interface CommandPaletteItem {\r\n /** Unique identifier */\r\n id: string\r\n /** Display label */\r\n label: string\r\n /** Optional icon */\r\n icon?: React.ReactNode\r\n /** Optional group/category */\r\n group?: string\r\n /** Action when selected */\r\n onSelect?: () => void\r\n}\r\n\r\nexport interface CommandPaletteProps {\r\n /** Whether the palette is open */\r\n open: boolean\r\n /** Callback when palette should close */\r\n onClose: () => void\r\n /** Items to display */\r\n items: CommandPaletteItem[]\r\n /** Placeholder text */\r\n placeholder?: string\r\n /** Additional CSS classes */\r\n className?: string\r\n}\r\n\r\nexport function CommandPalette({\r\n open,\r\n onClose,\r\n items,\r\n placeholder = \"Type a command or search...\",\r\n className,\r\n}: CommandPaletteProps) {\r\n const [query, setQuery] = React.useState(\"\")\r\n const [selectedIndex, setSelectedIndex] = React.useState(0)\r\n\r\n const filtered = React.useMemo(\r\n () => items.filter(item => item.label.toLowerCase().includes(query.toLowerCase())),\r\n [items, query]\r\n )\r\n\r\n // Group items\r\n const groups = React.useMemo(() => {\r\n const map = new Map<string, CommandPaletteItem[]>()\r\n filtered.forEach(item => {\r\n const group = item.group || \"Results\"\r\n if (!map.has(group)) map.set(group, [])\r\n map.get(group)!.push(item)\r\n })\r\n return map\r\n }, [filtered])\r\n\r\n // Reset on open\r\n React.useEffect(() => {\r\n if (open) {\r\n setQuery(\"\")\r\n setSelectedIndex(0)\r\n }\r\n }, [open])\r\n\r\n // Keyboard navigation\r\n React.useEffect(() => {\r\n if (!open) return\r\n const handler = (e: KeyboardEvent) => {\r\n if (e.key === \"ArrowDown\") {\r\n e.preventDefault()\r\n setSelectedIndex(i => Math.min(i + 1, filtered.length - 1))\r\n } else if (e.key === \"ArrowUp\") {\r\n e.preventDefault()\r\n setSelectedIndex(i => Math.max(i - 1, 0))\r\n } else if (e.key === \"Enter\") {\r\n e.preventDefault()\r\n filtered[selectedIndex]?.onSelect?.()\r\n onClose()\r\n } else if (e.key === \"Escape\") {\r\n onClose()\r\n }\r\n }\r\n window.addEventListener(\"keydown\", handler)\r\n return () => window.removeEventListener(\"keydown\", handler)\r\n }, [open, filtered, selectedIndex, onClose])\r\n\r\n return (\r\n <AnimatePresence>\r\n {open && (\r\n <div className=\"fixed inset-0 z-[100] flex items-start justify-center pt-[20vh]\">\r\n <motion.div\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n exit={{ opacity: 0 }}\r\n className=\"absolute inset-0 bg-black/50 backdrop-blur-sm\"\r\n onClick={onClose}\r\n />\r\n <motion.div\r\n initial={{ opacity: 0, scale: 0.95, y: -10 }}\r\n animate={{ opacity: 1, scale: 1, y: 0 }}\r\n exit={{ opacity: 0, scale: 0.95, y: -10 }}\r\n transition={{ duration: 0.15 }}\r\n className={cn(\r\n \"relative w-full max-w-lg mx-4 bg-card border border-border rounded-xl shadow-2xl overflow-hidden\",\r\n className\r\n )}\r\n >\r\n {/* Search input */}\r\n <div className=\"flex items-center gap-2 px-4 border-b border-border\">\r\n <svg className=\"h-4 w-4 text-muted-foreground shrink-0\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <circle cx=\"11\" cy=\"11\" r=\"8\" strokeWidth=\"2\" />\r\n <path d=\"m21 21-4.35-4.35\" strokeWidth=\"2\" strokeLinecap=\"round\" />\r\n </svg>\r\n <input\r\n autoFocus\r\n value={query}\r\n onChange={e => setQuery(e.target.value)}\r\n className=\"flex-1 h-12 bg-transparent text-sm outline-none placeholder:text-muted-foreground\"\r\n placeholder={placeholder}\r\n />\r\n </div>\r\n {/* Results */}\r\n <div className=\"max-h-[300px] overflow-y-auto p-2\">\r\n {filtered.length > 0 ? (\r\n Array.from(groups.entries()).map(([groupName, groupItems]) => (\r\n <div key={groupName}>\r\n <div className=\"px-2 py-1.5 text-[11px] font-medium text-muted-foreground uppercase tracking-wider\">\r\n {groupName}\r\n </div>\r\n {groupItems.map((item) => {\r\n const globalIndex = filtered.indexOf(item)\r\n return (\r\n <button\r\n key={item.id}\r\n onClick={() => {\r\n item.onSelect?.()\r\n onClose()\r\n }}\r\n className={cn(\r\n \"flex w-full items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors text-left\",\r\n globalIndex === selectedIndex\r\n ? \"bg-accent text-accent-foreground\"\r\n : \"hover:bg-muted/50\"\r\n )}\r\n >\r\n {item.icon && <span className=\"text-muted-foreground\">{item.icon}</span>}\r\n {item.label}\r\n </button>\r\n )\r\n })}\r\n </div>\r\n ))\r\n ) : (\r\n <div className=\"text-center py-8 text-sm text-muted-foreground\">\r\n No results found.\r\n </div>\r\n )}\r\n </div>\r\n </motion.div>\r\n </div>\r\n )}\r\n </AnimatePresence>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 4. ContextMenu — Right-click context menu\r\n// ============================================\r\nexport interface ContextMenuItem {\r\n /** Display label */\r\n label: string\r\n /** Action when clicked */\r\n onClick?: () => void\r\n /** Keyboard shortcut hint */\r\n shortcut?: string\r\n /** Whether this is a separator */\r\n separator?: boolean\r\n /** Whether the item is disabled */\r\n disabled?: boolean\r\n /** Whether this is a destructive action */\r\n destructive?: boolean\r\n}\r\n\r\nexport interface ContextMenuProps {\r\n /** Items in the context menu */\r\n items: ContextMenuItem[]\r\n /** Content to right-click on */\r\n children: React.ReactNode\r\n /** Additional CSS classes */\r\n className?: string\r\n}\r\n\r\nexport function ContextMenu({ items, children, className }: ContextMenuProps) {\r\n const [open, setOpen] = React.useState(false)\r\n const [position, setPosition] = React.useState({ x: 0, y: 0 })\r\n const menuRef = React.useRef<HTMLDivElement>(null)\r\n\r\n const handleContextMenu = (e: React.MouseEvent) => {\r\n e.preventDefault()\r\n setPosition({ x: e.clientX, y: e.clientY })\r\n setOpen(true)\r\n }\r\n\r\n React.useEffect(() => {\r\n if (!open) return\r\n const close = () => setOpen(false)\r\n window.addEventListener(\"click\", close)\r\n window.addEventListener(\"scroll\", close)\r\n window.addEventListener(\"resize\", close)\r\n return () => {\r\n window.removeEventListener(\"click\", close)\r\n window.removeEventListener(\"scroll\", close)\r\n window.removeEventListener(\"resize\", close)\r\n }\r\n }, [open])\r\n\r\n return (\r\n <>\r\n <div onContextMenu={handleContextMenu} className={className}>\r\n {children}\r\n </div>\r\n <AnimatePresence>\r\n {open && (\r\n <motion.div\r\n ref={menuRef}\r\n initial={{ opacity: 0, scale: 0.95 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.95 }}\r\n transition={{ duration: 0.1 }}\r\n className=\"fixed z-[100] min-w-[180px] bg-card border border-border rounded-lg shadow-xl p-1 overflow-hidden\"\r\n style={{ left: position.x, top: position.y }}\r\n >\r\n {items.map((item, i) =>\r\n item.separator ? (\r\n <div key={i} className=\"my-1 h-px bg-border\" />\r\n ) : (\r\n <button\r\n key={i}\r\n disabled={item.disabled}\r\n onClick={() => {\r\n item.onClick?.()\r\n setOpen(false)\r\n }}\r\n className={cn(\r\n \"flex w-full items-center justify-between gap-4 rounded-md px-3 py-1.5 text-sm transition-colors\",\r\n item.disabled && \"opacity-50 cursor-not-allowed\",\r\n item.destructive\r\n ? \"text-destructive hover:bg-destructive/10\"\r\n : \"hover:bg-accent\"\r\n )}\r\n >\r\n <span>{item.label}</span>\r\n {item.shortcut && (\r\n <span className=\"text-[11px] text-muted-foreground font-mono\">{item.shortcut}</span>\r\n )}\r\n </button>\r\n )\r\n )}\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n </>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, AnimatePresence } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// ============================================\r\n// 1. ImageCarousel — Auto-playing carousel\r\n// ============================================\r\nexport function ImageCarousel({ images, autoPlay = true, interval = 4000, className }: {\r\n images: { src: string; alt?: string }[]\r\n autoPlay?: boolean\r\n interval?: number\r\n className?: string\r\n}) {\r\n const [current, setCurrent] = React.useState(0)\r\n\r\n React.useEffect(() => {\r\n if (!autoPlay || images.length <= 1) return\r\n const timer = setInterval(() => setCurrent((c) => (c + 1) % images.length), interval)\r\n return () => clearInterval(timer)\r\n }, [autoPlay, interval, images.length])\r\n\r\n return (\r\n <div className={cn(\"relative overflow-hidden rounded-xl bg-muted\", className)}>\r\n <div className=\"relative aspect-video\">\r\n {images.map((img, i) => (\r\n <motion.div\r\n key={i}\r\n initial={false}\r\n animate={{ opacity: i === current ? 1 : 0 }}\r\n transition={{ duration: 0.5 }}\r\n className=\"absolute inset-0\"\r\n >\r\n <div className=\"w-full h-full bg-gradient-to-br from-violet-500/20 to-pink-500/20 flex items-center justify-center text-muted-foreground\">\r\n {img.alt || `Slide ${i + 1}`}\r\n </div>\r\n </motion.div>\r\n ))}\r\n </div>\r\n <div className=\"absolute bottom-3 left-1/2 -translate-x-1/2 flex gap-1.5\">\r\n {images.map((_, i) => (\r\n <button\r\n key={i}\r\n onClick={() => setCurrent(i)}\r\n className={cn(\"w-2 h-2 rounded-full transition-all\", i === current ? \"bg-white w-6\" : \"bg-white/50 hover:bg-white/70\")}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 2. VideoPlayer — Styled video player\r\n// ============================================\r\nexport function VideoPlayer({ title, duration = \"3:45\", thumbnail, className }: {\r\n title?: string\r\n duration?: string\r\n thumbnail?: string\r\n className?: string\r\n}) {\r\n const [playing, setPlaying] = React.useState(false)\r\n\r\n return (\r\n <div className={cn(\"relative overflow-hidden rounded-xl bg-muted group cursor-pointer\", className)}>\r\n <div className=\"aspect-video bg-gradient-to-br from-slate-800 to-slate-900 flex items-center justify-center\">\r\n <motion.button\r\n whileHover={{ scale: 1.1 }}\r\n whileTap={{ scale: 0.95 }}\r\n onClick={() => setPlaying(!playing)}\r\n className=\"w-16 h-16 rounded-full bg-white/20 backdrop-blur-md flex items-center justify-center border border-white/30 shadow-lg\"\r\n >\r\n {playing ? (\r\n <svg className=\"w-6 h-6 text-white\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\"/></svg>\r\n ) : (\r\n <svg className=\"w-6 h-6 text-white ml-1\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"/></svg>\r\n )}\r\n </motion.button>\r\n </div>\r\n {(title || duration) && (\r\n <div className=\"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-4\">\r\n {title && <p className=\"text-white text-sm font-medium\">{title}</p>}\r\n {duration && <span className=\"text-white/70 text-xs\">{duration}</span>}\r\n </div>\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. AudioWaveform — Audio visualizer\r\n// ============================================\r\nexport function AudioWaveform({ playing = false, bars = 24, className }: {\r\n playing?: boolean\r\n bars?: number\r\n className?: string\r\n}) {\r\n return (\r\n <div className={cn(\"flex items-end gap-[2px] h-8\", className)}>\r\n {Array.from({ length: bars }).map((_, i) => {\r\n const height = Math.random() * 100\r\n return (\r\n <motion.div\r\n key={i}\r\n className=\"w-1 rounded-full bg-primary\"\r\n animate={playing ? {\r\n height: [`${20 + Math.random() * 30}%`, `${50 + Math.random() * 50}%`, `${20 + Math.random() * 30}%`],\r\n } : { height: \"20%\" }}\r\n transition={playing ? {\r\n duration: 0.4 + Math.random() * 0.4,\r\n repeat: Infinity,\r\n repeatType: \"reverse\",\r\n ease: \"easeInOut\",\r\n } : {}}\r\n style={{ height: `${height}%` }}\r\n />\r\n )\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 4. FilePreviewCard — File with icon/preview\r\n// ============================================\r\nexport function FilePreviewCard({ name, size, type = \"file\", className }: {\r\n name: string\r\n size: string\r\n type?: \"file\" | \"image\" | \"video\" | \"pdf\" | \"code\"\r\n className?: string\r\n}) {\r\n const icons = {\r\n file: \"📄\",\r\n image: \"🖼\",\r\n video: \"🎬\",\r\n pdf: \"📕\",\r\n code: \"💻\",\r\n }\r\n const colors = {\r\n file: \"from-blue-500/10 to-blue-500/5\",\r\n image: \"from-pink-500/10 to-pink-500/5\",\r\n video: \"from-violet-500/10 to-violet-500/5\",\r\n pdf: \"from-red-500/10 to-red-500/5\",\r\n code: \"from-emerald-500/10 to-emerald-500/5\",\r\n }\r\n\r\n return (\r\n <motion.div\r\n whileHover={{ y: -2 }}\r\n className={cn(\"rounded-xl border border-border bg-card p-4 flex items-center gap-3 cursor-pointer transition-shadow hover:shadow-md\", className)}\r\n >\r\n <div className={cn(\"w-12 h-12 rounded-lg bg-gradient-to-br flex items-center justify-center text-xl\", colors[type])}>\r\n {icons[type]}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <p className=\"text-sm font-medium truncate\">{name}</p>\r\n <p className=\"text-xs text-muted-foreground\">{size}</p>\r\n </div>\r\n <svg className=\"w-4 h-4 text-muted-foreground shrink-0\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4\" />\r\n </svg>\r\n </motion.div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 5. EmbedCard — oEmbed-style preview card\r\n// ============================================\r\nexport function EmbedCard({ title, description, domain, favicon, className }: {\r\n title: string\r\n description?: string\r\n domain: string\r\n favicon?: string\r\n className?: string\r\n}) {\r\n return (\r\n <div className={cn(\"rounded-xl border border-border bg-card overflow-hidden hover:shadow-md transition-shadow cursor-pointer\", className)}>\r\n <div className=\"h-36 bg-gradient-to-br from-violet-500/20 via-blue-500/20 to-pink-500/20\" />\r\n <div className=\"p-4 border-t border-border\">\r\n <div className=\"flex items-center gap-2 mb-2\">\r\n <div className=\"w-4 h-4 rounded-full bg-muted flex items-center justify-center text-[8px]\">\r\n {favicon || domain.charAt(0).toUpperCase()}\r\n </div>\r\n <span className=\"text-xs text-muted-foreground\">{domain}</span>\r\n </div>\r\n <h4 className=\"text-sm font-semibold mb-1 line-clamp-1\">{title}</h4>\r\n {description && <p className=\"text-xs text-muted-foreground line-clamp-2\">{description}</p>}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 6. MusicPlayer — Mini music player widget\r\n// ============================================\r\nexport function MusicPlayer({ title, artist, album, className }: {\r\n title: string\r\n artist: string\r\n album?: string\r\n className?: string\r\n}) {\r\n const [playing, setPlaying] = React.useState(false)\r\n const [progress, setProgress] = React.useState(35)\r\n\r\n return (\r\n <div className={cn(\"rounded-2xl border border-border bg-card p-5 w-full max-w-sm\", className)}>\r\n <div className=\"flex items-center gap-4 mb-4\">\r\n <motion.div\r\n animate={playing ? { rotate: 360 } : {}}\r\n transition={playing ? { duration: 3, repeat: Infinity, ease: \"linear\" } : {}}\r\n className=\"w-14 h-14 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center shadow-lg shrink-0\"\r\n >\r\n <div className=\"w-5 h-5 rounded-full bg-background\" />\r\n </motion.div>\r\n <div className=\"min-w-0 flex-1\">\r\n <p className=\"font-semibold text-sm truncate\">{title}</p>\r\n <p className=\"text-xs text-muted-foreground truncate\">{artist}</p>\r\n {album && <p className=\"text-xs text-muted-foreground/60 truncate\">{album}</p>}\r\n </div>\r\n </div>\r\n <div className=\"mb-3\">\r\n <div className=\"h-1 bg-muted rounded-full overflow-hidden\">\r\n <motion.div\r\n className=\"h-full bg-primary rounded-full\"\r\n style={{ width: `${progress}%` }}\r\n />\r\n </div>\r\n <div className=\"flex justify-between text-[10px] text-muted-foreground mt-1\">\r\n <span>1:15</span>\r\n <span>3:45</span>\r\n </div>\r\n </div>\r\n <div className=\"flex items-center justify-center gap-6\">\r\n <button className=\"text-muted-foreground hover:text-foreground transition-colors\">\r\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6 6h2v12H6V6zm3.5 6l8.5 6V6l-8.5 6z\"/></svg>\r\n </button>\r\n <motion.button\r\n whileTap={{ scale: 0.9 }}\r\n onClick={() => setPlaying(!playing)}\r\n className=\"w-10 h-10 rounded-full bg-primary text-primary-foreground flex items-center justify-center shadow-md\"\r\n >\r\n {playing ? (\r\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M6 4h4v16H6V4zm8 0h4v16h-4V4z\"/></svg>\r\n ) : (\r\n <svg className=\"w-5 h-5 ml-0.5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M8 5v14l11-7z\"/></svg>\r\n )}\r\n </motion.button>\r\n <button className=\"text-muted-foreground hover:text-foreground transition-colors\">\r\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M18 18h-2V6h2v12zm-3.5-6L6 6v12l8.5-6z\"/></svg>\r\n </button>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 7. ImageCompare — Before/After slider\r\n// ============================================\r\nexport function ImageCompare({ \r\n leftImage, \r\n rightImage, \r\n leftLabel = \"Before\", \r\n rightLabel = \"After\", \r\n className \r\n}: {\r\n leftImage?: string\r\n rightImage?: string\r\n leftLabel?: string\r\n rightLabel?: string\r\n className?: string\r\n}) {\r\n const [position, setPosition] = React.useState(50)\r\n const containerRef = React.useRef<HTMLDivElement>(null)\r\n\r\n const handleMove = (e: React.MouseEvent) => {\r\n if (!containerRef.current) return\r\n const rect = containerRef.current.getBoundingClientRect()\r\n const x = ((e.clientX - rect.left) / rect.width) * 100\r\n setPosition(Math.max(0, Math.min(100, x)))\r\n }\r\n\r\n const handleTouchMove = (e: React.TouchEvent) => {\r\n if (!containerRef.current) return\r\n const rect = containerRef.current.getBoundingClientRect()\r\n if (e.touches[0]) {\r\n const x = ((e.touches[0].clientX - rect.left) / rect.width) * 100\r\n setPosition(Math.max(0, Math.min(100, x)))\r\n }\r\n }\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={cn(\"relative aspect-video rounded-xl overflow-hidden cursor-col-resize select-none\", className)}\r\n onMouseMove={handleMove}\r\n onTouchMove={handleTouchMove}\r\n >\r\n {/* Right side (Background - After) */}\r\n {rightImage ? (\r\n <img src={rightImage} alt={rightLabel} className=\"absolute inset-0 w-full h-full object-cover\" />\r\n ) : (\r\n <div className=\"absolute inset-0 bg-gradient-to-br from-slate-600 to-slate-800\" />\r\n )}\r\n\r\n {/* Left side (Foreground - Before) */}\r\n {leftImage ? (\r\n <img \r\n src={leftImage} \r\n alt={leftLabel} \r\n className=\"absolute inset-0 w-full h-full object-cover\" \r\n style={{ clipPath: `inset(0 ${100 - position}% 0 0)` }} \r\n />\r\n ) : (\r\n <div \r\n className=\"absolute inset-0 bg-gradient-to-br from-violet-500 to-pink-500\" \r\n style={{ clipPath: `inset(0 ${100 - position}% 0 0)` }} \r\n />\r\n )}\r\n\r\n <div className=\"absolute top-0 bottom-0\" style={{ left: `${position}%` }}>\r\n <div className=\"absolute top-0 bottom-0 w-0.5 bg-white shadow-lg -translate-x-1/2\" />\r\n <div className=\"absolute top-1/2 -translate-y-1/2 -translate-x-1/2 w-8 h-8 rounded-full bg-white shadow-lg flex items-center justify-center\">\r\n <svg className=\"w-4 h-4 text-slate-700\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 9l4-4 4 4m0 6l-4 4-4-4\" /></svg>\r\n </div>\r\n </div>\r\n <span className=\"absolute top-3 left-3 text-xs font-medium text-white bg-black/40 px-2 py-1 rounded-md backdrop-blur-sm\">{leftLabel}</span>\r\n <span className=\"absolute top-3 right-3 text-xs font-medium text-white bg-black/40 px-2 py-1 rounded-md backdrop-blur-sm\">{rightLabel}</span>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 8. GalleryGrid — Masonry-style gallery\r\n// ============================================\r\nexport function GalleryGrid({ items, className }: {\r\n items: { title: string; color?: string }[]\r\n className?: string\r\n}) {\r\n const colors = [\r\n \"from-violet-500 to-purple-600\",\r\n \"from-pink-500 to-rose-600\",\r\n \"from-blue-500 to-indigo-600\",\r\n \"from-emerald-500 to-teal-600\",\r\n \"from-amber-500 to-orange-600\",\r\n \"from-cyan-500 to-blue-600\",\r\n ]\r\n\r\n return (\r\n <div className={cn(\"grid grid-cols-2 md:grid-cols-3 gap-3\", className)}>\r\n {items.map((item, i) => (\r\n <motion.div\r\n key={i}\r\n whileHover={{ scale: 1.02 }}\r\n className={cn(\r\n \"rounded-xl bg-gradient-to-br p-4 flex items-end cursor-pointer transition-shadow hover:shadow-lg\",\r\n item.color || colors[i % colors.length],\r\n i === 0 ? \"row-span-2 min-h-[200px]\" : \"min-h-[100px]\"\r\n )}\r\n >\r\n <span className=\"text-white text-sm font-medium drop-shadow-md\">{item.title}</span>\r\n </motion.div>\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 9. CodeSnippet — Syntax-highlighted block\r\n// ============================================\r\nexport function CodeSnippet({ code, language = \"tsx\", filename, className }: {\r\n code: string\r\n language?: string\r\n filename?: string\r\n className?: string\r\n}) {\r\n const [copied, setCopied] = React.useState(false)\r\n\r\n return (\r\n <div className={cn(\"rounded-xl border border-border bg-slate-950 overflow-hidden\", className)}>\r\n <div className=\"flex items-center justify-between px-4 py-2 bg-slate-900 border-b border-slate-800\">\r\n <div className=\"flex items-center gap-2\">\r\n <div className=\"flex gap-1.5\">\r\n <div className=\"w-3 h-3 rounded-full bg-red-500/80\" />\r\n <div className=\"w-3 h-3 rounded-full bg-yellow-500/80\" />\r\n <div className=\"w-3 h-3 rounded-full bg-green-500/80\" />\r\n </div>\r\n {filename && <span className=\"text-xs text-slate-400 ml-2 font-mono\">{filename}</span>}\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n <span className=\"text-[10px] text-slate-500 font-mono uppercase\">{language}</span>\r\n <button\r\n onClick={() => { navigator.clipboard.writeText(code); setCopied(true); setTimeout(() => setCopied(false), 2000) }}\r\n className=\"text-slate-400 hover:text-slate-200 transition-colors\"\r\n >\r\n {copied ? (\r\n <svg className=\"w-4 h-4 text-green-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M5 13l4 4L19 7\" /></svg>\r\n ) : (\r\n <svg className=\"w-4 h-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"><path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\" /></svg>\r\n )}\r\n </button>\r\n </div>\r\n </div>\r\n <pre className=\"p-4 text-sm overflow-x-auto\">\r\n <code className=\"font-mono text-slate-200\">{code}</code>\r\n </pre>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 10. TestimonialCarousel — Animated testimonials\r\n// ============================================\r\nexport function TestimonialCarousel({ testimonials, className }: {\r\n testimonials: { quote: string; author: string; role: string }[]\r\n className?: string\r\n}) {\r\n const [current, setCurrent] = React.useState(0)\r\n\r\n React.useEffect(() => {\r\n if (testimonials.length <= 1) return\r\n const timer = setInterval(() => setCurrent((c) => (c + 1) % testimonials.length), 5000)\r\n return () => clearInterval(timer)\r\n }, [testimonials.length])\r\n\r\n const t = testimonials[current]\r\n\r\n return (\r\n <div className={cn(\"relative text-center py-8\", className)}>\r\n <svg className=\"w-10 h-10 text-primary/20 mx-auto mb-4\" fill=\"currentColor\" viewBox=\"0 0 32 32\">\r\n <path d=\"M10 8c-3.3 0-6 2.7-6 6v10h10V14H8c0-1.1.9-2 2-2V8zm14 0c-3.3 0-6 2.7-6 6v10h10V14h-6c0-1.1.9-2 2-2V8z\"/>\r\n </svg>\r\n <AnimatePresence mode=\"wait\">\r\n <motion.div\r\n key={current}\r\n initial={{ opacity: 0, y: 10 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n exit={{ opacity: 0, y: -10 }}\r\n transition={{ duration: 0.3 }}\r\n >\r\n <p className=\"text-lg leading-relaxed mb-4 max-w-lg mx-auto\">{t.quote}</p>\r\n <p className=\"font-semibold text-sm\">{t.author}</p>\r\n <p className=\"text-xs text-muted-foreground\">{t.role}</p>\r\n </motion.div>\r\n </AnimatePresence>\r\n <div className=\"flex justify-center gap-1.5 mt-6\">\r\n {testimonials.map((_, i) => (\r\n <button\r\n key={i}\r\n onClick={() => setCurrent(i)}\r\n className={cn(\"w-2 h-2 rounded-full transition-all\", i === current ? \"bg-primary w-6\" : \"bg-muted-foreground/30 hover:bg-muted-foreground/50\")}\r\n />\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// ============================================\r\n// 1. DonutChart — Animated donut/ring chart\r\n// ============================================\r\nexport function DonutChart({ value, max = 100, size = 120, strokeWidth = 10, color = \"hsl(var(--primary))\", label, className }: {\r\n value: number\r\n max?: number\r\n size?: number\r\n strokeWidth?: number\r\n color?: string\r\n label?: string\r\n className?: string\r\n}) {\r\n const radius = (size - strokeWidth) / 2\r\n const circumference = 2 * Math.PI * radius\r\n const percentage = (value / max) * 100\r\n const offset = circumference - (percentage / 100) * circumference\r\n\r\n return (\r\n <div className={cn(\"relative inline-flex items-center justify-center\", className)}>\r\n <svg width={size} height={size} className=\"-rotate-90\">\r\n <circle cx={size / 2} cy={size / 2} r={radius} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth} className=\"text-muted/30\" />\r\n <motion.circle\r\n cx={size / 2} cy={size / 2} r={radius} fill=\"none\" stroke={color} strokeWidth={strokeWidth}\r\n strokeLinecap=\"round\" strokeDasharray={circumference}\r\n initial={{ strokeDashoffset: circumference }}\r\n animate={{ strokeDashoffset: offset }}\r\n transition={{ duration: 1, ease: \"easeOut\" }}\r\n />\r\n </svg>\r\n <div className=\"absolute inset-0 flex flex-col items-center justify-center\">\r\n <span className=\"text-2xl font-bold\">{Math.round(percentage)}%</span>\r\n {label && <span className=\"text-[10px] text-muted-foreground\">{label}</span>}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 2. BarChartSimple — Animated vertical bars\r\n// ============================================\r\nexport function BarChartSimple({ data, height = 200, className }: {\r\n data: { label: string; value: number; color?: string }[]\r\n height?: number\r\n className?: string\r\n}) {\r\n const maxVal = Math.max(...data.map(d => d.value))\r\n\r\n return (\r\n <div className={cn(\"w-full\", className)}>\r\n <div className=\"flex items-end gap-2 justify-between\" style={{ height }}>\r\n {data.map((item, i) => (\r\n <div key={i} className=\"flex-1 flex flex-col items-center gap-1\">\r\n <span className=\"text-xs font-medium text-muted-foreground\">{item.value}</span>\r\n <motion.div\r\n initial={{ height: 0 }}\r\n animate={{ height: `${(item.value / maxVal) * 100}%` }}\r\n transition={{ duration: 0.6, delay: i * 0.08, ease: \"easeOut\" }}\r\n className={cn(\"w-full rounded-t-md min-h-[4px]\", item.color || \"bg-primary\")}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n <div className=\"flex gap-2 mt-2\">\r\n {data.map((item, i) => (\r\n <div key={i} className=\"flex-1 text-center\">\r\n <span className=\"text-[10px] text-muted-foreground\">{item.label}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. AreaChart — Simple area/sparkline chart\r\n// ============================================\r\nexport function AreaChartSimple({ data, height = 80, color = \"hsl(var(--primary))\", className }: {\r\n data: number[]\r\n height?: number\r\n color?: string\r\n className?: string\r\n}) {\r\n const max = Math.max(...data)\r\n const min = Math.min(...data)\r\n const range = max - min || 1\r\n const w = 300\r\n const points = data.map((v, i) => ({\r\n x: (i / (data.length - 1)) * w,\r\n y: height - ((v - min) / range) * (height - 10) - 5,\r\n }))\r\n const pathD = points.map((p, i) => (i === 0 ? `M${p.x},${p.y}` : `L${p.x},${p.y}`)).join(\" \")\r\n const areaD = `${pathD} L${w},${height} L0,${height} Z`\r\n\r\n return (\r\n <div className={cn(\"w-full\", className)}>\r\n <svg viewBox={`0 0 ${w} ${height}`} className=\"w-full\" style={{ height }}>\r\n <defs>\r\n <linearGradient id=\"area-fill\" x1=\"0\" x2=\"0\" y1=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" stopColor={color} stopOpacity=\"0.3\" />\r\n <stop offset=\"100%\" stopColor={color} stopOpacity=\"0\" />\r\n </linearGradient>\r\n </defs>\r\n <motion.path\r\n d={areaD}\r\n fill=\"url(#area-fill)\"\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n transition={{ duration: 0.8 }}\r\n />\r\n <motion.path\r\n d={pathD}\r\n fill=\"none\"\r\n stroke={color}\r\n strokeWidth=\"2\"\r\n strokeLinecap=\"round\"\r\n initial={{ pathLength: 0 }}\r\n animate={{ pathLength: 1 }}\r\n transition={{ duration: 1.2, ease: \"easeOut\" }}\r\n />\r\n </svg>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 4. StatWidget — Stat with sparkline\r\n// ============================================\r\nexport function StatWidget({ title, value, change, changeType = \"positive\", data = [], className }: {\r\n title: string\r\n value: string\r\n change?: string\r\n changeType?: \"positive\" | \"negative\"\r\n data?: number[]\r\n className?: string\r\n}) {\r\n return (\r\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\r\n <div className=\"flex items-center justify-between mb-3\">\r\n <p className=\"text-sm text-muted-foreground\">{title}</p>\r\n {change && (\r\n <span className={cn(\"text-xs font-medium px-2 py-0.5 rounded-full\",\r\n changeType === \"positive\" ? \"text-emerald-500 bg-emerald-500/10\" : \"text-red-500 bg-red-500/10\"\r\n )}>{change}</span>\r\n )}\r\n </div>\r\n <p className=\"text-2xl font-bold mb-3\">{value}</p>\r\n {data.length > 0 && (\r\n <AreaChartSimple data={data} height={40} color={changeType === \"positive\" ? \"#10b981\" : \"#ef4444\"} />\r\n )}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 5. ProgressCircle — Circular progress ring\r\n// ============================================\r\nexport function ProgressCircle({ value, size = 60, label, className }: {\r\n value: number\r\n size?: number\r\n label?: string\r\n className?: string\r\n}) {\r\n const strokeWidth = 5\r\n const radius = (size - strokeWidth) / 2\r\n const circumference = 2 * Math.PI * radius\r\n const offset = circumference - (value / 100) * circumference\r\n\r\n return (\r\n <div className={cn(\"inline-flex flex-col items-center gap-1\", className)}>\r\n <svg width={size} height={size} className=\"-rotate-90\">\r\n <circle cx={size/2} cy={size/2} r={radius} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth} className=\"text-muted/20\" />\r\n <motion.circle\r\n cx={size/2} cy={size/2} r={radius} fill=\"none\" stroke=\"currentColor\" strokeWidth={strokeWidth}\r\n strokeLinecap=\"round\" strokeDasharray={circumference}\r\n initial={{ strokeDashoffset: circumference }}\r\n animate={{ strokeDashoffset: offset }}\r\n transition={{ duration: 0.8, ease: \"easeOut\" }}\r\n className=\"text-primary\"\r\n />\r\n </svg>\r\n {label && <span className=\"text-xs text-muted-foreground\">{label}</span>}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 6. ComparisonBar — Horizontal comparison\r\n// ============================================\r\nexport function ComparisonBar({ label1, label2, value1, value2, className }: {\r\n label1: string\r\n label2: string\r\n value1: number\r\n value2: number\r\n className?: string\r\n}) {\r\n const total = value1 + value2\r\n const percent1 = (value1 / total) * 100\r\n const percent2 = (value2 / total) * 100\r\n\r\n return (\r\n <div className={cn(\"w-full\", className)}>\r\n <div className=\"flex justify-between text-sm mb-2\">\r\n <span className=\"font-medium\">{label1} <span className=\"text-muted-foreground\">({value1})</span></span>\r\n <span className=\"font-medium\">{label2} <span className=\"text-muted-foreground\">({value2})</span></span>\r\n </div>\r\n <div className=\"flex h-3 rounded-full overflow-hidden gap-0.5\">\r\n <motion.div\r\n initial={{ width: 0 }}\r\n animate={{ width: `${percent1}%` }}\r\n transition={{ duration: 0.8, ease: \"easeOut\" }}\r\n className=\"bg-primary rounded-l-full\"\r\n />\r\n <motion.div\r\n initial={{ width: 0 }}\r\n animate={{ width: `${percent2}%` }}\r\n transition={{ duration: 0.8, ease: \"easeOut\", delay: 0.2 }}\r\n className=\"bg-violet-500 rounded-r-full\"\r\n />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 7. HeatmapGrid — Activity heatmap\r\n// ============================================\r\nexport function HeatmapGrid({ data, columns = 7, className }: {\r\n data: number[]\r\n columns?: number\r\n className?: string\r\n}) {\r\n const max = Math.max(...data)\r\n\r\n return (\r\n <div className={cn(\"inline-grid gap-1\", className)} style={{ gridTemplateColumns: `repeat(${columns}, 1fr)` }}>\r\n {data.map((val, i) => {\r\n const intensity = max > 0 ? val / max : 0\r\n return (\r\n <motion.div\r\n key={i}\r\n initial={{ opacity: 0, scale: 0.5 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n transition={{ delay: i * 0.01 }}\r\n className=\"w-4 h-4 rounded-sm\"\r\n style={{ backgroundColor: `hsl(var(--primary) / ${0.1 + intensity * 0.9})` }}\r\n title={`${val}`}\r\n />\r\n )\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 8. LeaderboardWidget — Ranked list\r\n// ============================================\r\nexport function LeaderboardWidget({ items, title, className }: {\r\n items: { name: string; score: number; avatar?: string }[]\r\n title?: string\r\n className?: string\r\n}) {\r\n const maxScore = Math.max(...items.map(i => i.score))\r\n\r\n return (\r\n <div className={cn(\"rounded-xl border border-border bg-card p-5\", className)}>\r\n {title && <h4 className=\"font-semibold mb-4\">{title}</h4>}\r\n <div className=\"space-y-3\">\r\n {items.map((item, i) => (\r\n <div key={i} className=\"flex items-center gap-3\">\r\n <span className={cn(\r\n \"w-6 h-6 rounded-full flex items-center justify-center text-xs font-bold shrink-0\",\r\n i === 0 ? \"bg-amber-500/20 text-amber-500\" :\r\n i === 1 ? \"bg-slate-300/20 text-slate-400\" :\r\n i === 2 ? \"bg-orange-500/20 text-orange-500\" :\r\n \"bg-muted text-muted-foreground\"\r\n )}>{i + 1}</span>\r\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-br from-violet-500 to-pink-500 flex items-center justify-center text-white text-xs font-bold shrink-0\">\r\n {item.avatar || item.name.charAt(0)}\r\n </div>\r\n <div className=\"flex-1 min-w-0\">\r\n <p className=\"text-sm font-medium truncate\">{item.name}</p>\r\n <div className=\"h-1.5 bg-muted rounded-full mt-1 overflow-hidden\">\r\n <motion.div\r\n initial={{ width: 0 }}\r\n animate={{ width: `${(item.score / maxScore) * 100}%` }}\r\n transition={{ duration: 0.6, delay: i * 0.1 }}\r\n className=\"h-full bg-primary rounded-full\"\r\n />\r\n </div>\r\n </div>\r\n <span className=\"text-sm font-semibold text-muted-foreground shrink-0\">{item.score}</span>\r\n </div>\r\n ))}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 9. FunnelChart — Conversion funnel\r\n// ============================================\r\nexport function FunnelChart({ steps, className }: {\r\n steps: { label: string; value: number; color?: string }[]\r\n className?: string\r\n}) {\r\n const maxVal = steps[0]?.value || 1\r\n\r\n return (\r\n <div className={cn(\"w-full space-y-2\", className)}>\r\n {steps.map((step, i) => {\r\n const widthPercent = (step.value / maxVal) * 100\r\n return (\r\n <motion.div\r\n key={i}\r\n initial={{ opacity: 0, x: -20 }}\r\n animate={{ opacity: 1, x: 0 }}\r\n transition={{ delay: i * 0.1 }}\r\n className=\"flex items-center gap-3\"\r\n >\r\n <span className=\"text-xs text-muted-foreground w-20 text-right shrink-0\">{step.label}</span>\r\n <div className=\"flex-1 h-8 relative\">\r\n <motion.div\r\n initial={{ width: 0 }}\r\n animate={{ width: `${widthPercent}%` }}\r\n transition={{ duration: 0.6, delay: i * 0.1 }}\r\n className={cn(\"h-full rounded-md flex items-center px-3\", step.color || \"bg-primary\")}\r\n style={{ minWidth: \"40px\" }}\r\n >\r\n <span className=\"text-xs font-medium text-primary-foreground\">{step.value.toLocaleString()}</span>\r\n </motion.div>\r\n </div>\r\n </motion.div>\r\n )\r\n })}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 10. KPIDashboard — Multi-stat KPI row\r\n// ============================================\r\nexport function KPIDashboard({ metrics, className }: {\r\n metrics: { label: string; value: string; icon?: React.ReactNode; trend?: string; trendType?: \"up\" | \"down\" }[]\r\n className?: string\r\n}) {\r\n return (\r\n <div className={cn(\"grid grid-cols-2 md:grid-cols-4 gap-4\", className)}>\r\n {metrics.map((m, i) => (\r\n <motion.div\r\n key={i}\r\n initial={{ opacity: 0, y: 20 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ delay: i * 0.1 }}\r\n className=\"rounded-xl border border-border bg-card p-4\"\r\n >\r\n <div className=\"flex items-center justify-between mb-2\">\r\n <span className=\"text-xs text-muted-foreground\">{m.label}</span>\r\n {m.icon && <span className=\"text-muted-foreground\">{m.icon}</span>}\r\n </div>\r\n <p className=\"text-xl font-bold\">{m.value}</p>\r\n {m.trend && (\r\n <span className={cn(\"text-xs font-medium\",\r\n m.trendType === \"up\" ? \"text-emerald-500\" : \"text-red-500\"\r\n )}>\r\n {m.trendType === \"up\" ? \"↑\" : \"↓\"} {m.trend}\r\n </span>\r\n )}\r\n </motion.div>\r\n ))}\r\n </div>\r\n )\r\n}\r\n\r\n// ============================================\r\n// Modern Charts Engine (SVG + Framer Motion)\r\n// ============================================\r\n\r\nconst chartColorMap: Record<string, { stroke: string; fill: string; glow: string; text: string }> = {\r\n violet: { stroke: \"#8b5cf6\", fill: \"rgba(139, 92, 246, 0.2)\", glow: \"rgba(139, 92, 246, 0.4)\", text: \"text-violet-400\" },\r\n cyan: { stroke: \"#06b6d4\", fill: \"rgba(6, 182, 212, 0.2)\", glow: \"rgba(6, 182, 212, 0.4)\", text: \"text-cyan-400\" },\r\n emerald: { stroke: \"#10b981\", fill: \"rgba(16, 185, 129, 0.2)\", glow: \"rgba(16, 185, 129, 0.4)\", text: \"text-emerald-400\" },\r\n rose: { stroke: \"#f43f5e\", fill: \"rgba(244, 63, 94, 0.2)\", glow: \"rgba(244, 63, 94, 0.4)\", text: \"text-rose-400\" },\r\n amber: { stroke: \"#f59e0b\", fill: \"rgba(245, 158, 11, 0.2)\", glow: \"rgba(245, 158, 11, 0.4)\", text: \"text-amber-400\" },\r\n};\r\n\r\nexport interface ModernAreaChartProps {\r\n data?: { label: string; value: number }[];\r\n color?: string;\r\n height?: number;\r\n showGrid?: boolean;\r\n showTooltip?: boolean;\r\n currency?: string;\r\n className?: string;\r\n}\r\n\r\nexport function ModernAreaChart({\r\n data = [\r\n { label: \"Mon\", value: 3400 },\r\n { label: \"Tue\", value: 4200 },\r\n { label: \"Wed\", value: 3900 },\r\n { label: \"Thu\", value: 5800 },\r\n { label: \"Fri\", value: 6400 },\r\n { label: \"Sat\", value: 5900 },\r\n { label: \"Sun\", value: 7800 },\r\n ],\r\n color = \"violet\",\r\n height = 240,\r\n showGrid = true,\r\n showTooltip = true,\r\n currency = \"$\",\r\n className,\r\n}: ModernAreaChartProps) {\r\n const [hoverIndex, setHoverIndex] = React.useState<number | null>(null);\r\n const colorTheme = chartColorMap[color] || chartColorMap.violet;\r\n\r\n const padding = { top: 20, right: 20, bottom: 35, left: 45 };\r\n const width = 600;\r\n const chartWidth = width - padding.left - padding.right;\r\n const chartHeight = height - padding.top - padding.bottom;\r\n\r\n const values = data.map((d) => d.value);\r\n const minVal = Math.min(...values) * 0.85;\r\n const maxVal = Math.max(...values) * 1.1;\r\n\r\n const points = data.map((d, i) => {\r\n const x = padding.left + (i / Math.max(1, data.length - 1)) * chartWidth;\r\n const y = padding.top + chartHeight - ((d.value - minVal) / Math.max(1, maxVal - minVal)) * chartHeight;\r\n return { x, y, ...d };\r\n });\r\n\r\n const pathD = points.reduce((acc, p, i, a) => {\r\n if (i === 0) return `M ${p.x} ${p.y}`;\r\n const prev = a[i - 1];\r\n const cp1x = prev.x + (p.x - prev.x) / 2;\r\n const cp1y = prev.y;\r\n const cp2x = prev.x + (p.x - prev.x) / 2;\r\n const cp2y = p.y;\r\n return `${acc} C ${cp1x} ${cp1y}, ${cp2x} ${cp2y}, ${p.x} ${p.y}`;\r\n }, \"\");\r\n\r\n const areaD = points.length > 0\r\n ? `${pathD} L ${points[points.length - 1].x} ${padding.top + chartHeight} L ${points[0].x} ${padding.top + chartHeight} Z`\r\n : \"\";\r\n\r\n const activePoint = hoverIndex !== null ? points[hoverIndex] : points[points.length - 1] || { label: \"\", value: 0 };\r\n\r\n return (\r\n <div className={cn(\"relative w-full select-none\", className)}>\r\n <svg\r\n viewBox={`0 0 ${width} ${height}`}\r\n className=\"w-full h-auto overflow-visible\"\r\n onMouseLeave={() => setHoverIndex(null)}\r\n >\r\n <defs>\r\n <linearGradient id={`area-grad-${color}`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n <stop offset=\"0%\" stopColor={colorTheme.stroke} stopOpacity=\"0.4\" />\r\n <stop offset=\"85%\" stopColor={colorTheme.stroke} stopOpacity=\"0.02\" />\r\n <stop offset=\"100%\" stopColor={colorTheme.stroke} stopOpacity=\"0\" />\r\n </linearGradient>\r\n <filter id={`glow-${color}`} x=\"-20%\" y=\"-20%\" width=\"140%\" height=\"140%\">\r\n <feGaussianBlur stdDeviation=\"3\" result=\"blur\" />\r\n <feMerge>\r\n <feMergeNode in=\"blur\" />\r\n <feMergeNode in=\"SourceGraphic\" />\r\n </feMerge>\r\n </filter>\r\n </defs>\r\n\r\n {showGrid && (\r\n <g className=\"stroke-border/40\" strokeDasharray=\"3 3\">\r\n {[0, 0.33, 0.66, 1].map((ratio, i) => {\r\n const y = padding.top + chartHeight * ratio;\r\n return <line key={i} x1={padding.left} y1={y} x2={width - padding.right} y2={y} />;\r\n })}\r\n </g>\r\n )}\r\n\r\n {areaD && (\r\n <motion.path\r\n d={areaD}\r\n fill={`url(#area-grad-${color})`}\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: 1 }}\r\n transition={{ duration: 0.6 }}\r\n />\r\n )}\r\n\r\n <motion.path\r\n d={pathD}\r\n fill=\"none\"\r\n stroke={colorTheme.stroke}\r\n strokeWidth=\"2.5\"\r\n filter={`url(#glow-${color})`}\r\n initial={{ pathLength: 0 }}\r\n animate={{ pathLength: 1 }}\r\n transition={{ duration: 0.8, ease: \"easeOut\" }}\r\n />\r\n\r\n {points.map((p, i) => (\r\n <g key={i} className=\"cursor-pointer\" onMouseEnter={() => setHoverIndex(i)}>\r\n <circle cx={p.x} cy={p.y} r=\"16\" fill=\"transparent\" />\r\n <circle\r\n cx={p.x}\r\n cy={p.y}\r\n r={hoverIndex === i ? 5.5 : 3.5}\r\n fill=\"#09090b\"\r\n stroke={colorTheme.stroke}\r\n strokeWidth={hoverIndex === i ? 3 : 2}\r\n className=\"transition-all duration-150\"\r\n />\r\n <text\r\n x={p.x}\r\n y={height - 10}\r\n textAnchor=\"middle\"\r\n className={cn(\r\n \"text-[11px] font-mono fill-muted-foreground transition-colors\",\r\n hoverIndex === i && \"fill-foreground font-bold\"\r\n )}\r\n >\r\n {p.label}\r\n </text>\r\n </g>\r\n ))}\r\n\r\n {hoverIndex !== null && (\r\n <line\r\n x1={activePoint.x}\r\n y1={padding.top}\r\n x2={activePoint.x}\r\n y2={padding.top + chartHeight}\r\n stroke={colorTheme.stroke}\r\n strokeWidth=\"1.5\"\r\n strokeDasharray=\"2 2\"\r\n opacity=\"0.6\"\r\n />\r\n )}\r\n </svg>\r\n\r\n {showTooltip && (\r\n <div className=\"absolute top-2 right-4 flex items-center gap-2 px-3 py-1.5 rounded-xl border border-border/80 bg-card/90 backdrop-blur-md shadow-lg pointer-events-none\">\r\n <span className=\"w-2 h-2 rounded-full\" style={{ backgroundColor: colorTheme.stroke }} />\r\n <span className=\"text-xs font-mono text-muted-foreground\">{activePoint.label}:</span>\r\n <span className=\"text-xs font-mono font-bold text-foreground\">\r\n {currency}\r\n {activePoint.value.toLocaleString()}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport interface ModernBarChartProps {\r\n data?: { label: string; value: number }[];\r\n color?: string;\r\n height?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ModernBarChart({\r\n data = [\r\n { label: \"Jan\", value: 45 },\r\n { label: \"Feb\", value: 68 },\r\n { label: \"Mar\", value: 85 },\r\n { label: \"Apr\", value: 52 },\r\n { label: \"May\", value: 94 },\r\n { label: \"Jun\", value: 76 },\r\n { label: \"Jul\", value: 110 },\r\n ],\r\n color = \"cyan\",\r\n height = 220,\r\n className,\r\n}: ModernBarChartProps) {\r\n const [hoveredIdx, setHoveredIdx] = React.useState<number | null>(null);\r\n const colorTheme = chartColorMap[color] || chartColorMap.cyan;\r\n const maxVal = Math.max(...data.map((d) => d.value)) * 1.15;\r\n\r\n return (\r\n <div className={cn(\"w-full select-none space-y-2\", className)}>\r\n <div className=\"flex items-end gap-3 justify-between w-full px-2\" style={{ height }}>\r\n {data.map((item, idx) => {\r\n const heightPct = (item.value / maxVal) * 100;\r\n const isHovered = hoveredIdx === idx;\r\n return (\r\n <div\r\n key={idx}\r\n className=\"flex-1 flex flex-col items-center justify-end h-full gap-2 cursor-pointer group\"\r\n onMouseEnter={() => setHoveredIdx(idx)}\r\n onMouseLeave={() => setHoveredIdx(null)}\r\n >\r\n <span\r\n className={cn(\r\n \"text-[10px] font-mono text-muted-foreground transition-all duration-150\",\r\n isHovered && \"text-foreground font-bold scale-110\"\r\n )}\r\n >\r\n {item.value}\r\n </span>\r\n\r\n <motion.div\r\n initial={{ height: 0 }}\r\n animate={{ height: `${heightPct}%` }}\r\n transition={{ duration: 0.5, delay: idx * 0.05 }}\r\n className={cn(\r\n \"w-full rounded-t-lg transition-all duration-200 relative overflow-hidden\",\r\n isHovered ? \"opacity-100 shadow-lg\" : \"opacity-80 hover:opacity-100\"\r\n )}\r\n style={{\r\n backgroundColor: colorTheme.stroke,\r\n boxShadow: isHovered ? `0 0 20px ${colorTheme.glow}` : \"none\",\r\n }}\r\n >\r\n <div className=\"absolute inset-0 bg-gradient-to-t from-black/20 to-white/20\" />\r\n </motion.div>\r\n\r\n <span\r\n className={cn(\r\n \"text-[11px] font-mono text-muted-foreground\",\r\n isHovered && \"text-foreground font-bold\"\r\n )}\r\n >\r\n {item.label}\r\n </span>\r\n </div>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nexport interface ModernDonutChartProps {\r\n percentage?: number;\r\n title?: string;\r\n subtitle?: string;\r\n color?: string;\r\n size?: number;\r\n strokeWidth?: number;\r\n className?: string;\r\n}\r\n\r\nexport function ModernDonutChart({\r\n percentage = 78,\r\n title = \"78%\",\r\n subtitle = \"Conversion Rate\",\r\n color = \"emerald\",\r\n size = 180,\r\n strokeWidth = 14,\r\n className,\r\n}: ModernDonutChartProps) {\r\n const colorTheme = chartColorMap[color] || chartColorMap.emerald;\r\n const radius = (size - strokeWidth) / 2;\r\n const circumference = 2 * Math.PI * radius;\r\n const offset = circumference - (percentage / 100) * circumference;\r\n\r\n return (\r\n <div className={cn(\"relative inline-flex items-center justify-center select-none\", className)}>\r\n <svg width={size} height={size} className=\"-rotate-90 overflow-visible\">\r\n <circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n strokeWidth={strokeWidth}\r\n className=\"text-muted/30\"\r\n />\r\n <motion.circle\r\n cx={size / 2}\r\n cy={size / 2}\r\n r={radius}\r\n fill=\"none\"\r\n stroke={colorTheme.stroke}\r\n strokeWidth={strokeWidth}\r\n strokeLinecap=\"round\"\r\n strokeDasharray={circumference}\r\n initial={{ strokeDashoffset: circumference }}\r\n animate={{ strokeDashoffset: offset }}\r\n transition={{ duration: 1, ease: \"easeOut\" }}\r\n style={{\r\n filter: `drop-shadow(0 0 8px ${colorTheme.glow})`,\r\n }}\r\n />\r\n </svg>\r\n\r\n <div className=\"absolute inset-0 flex flex-col items-center justify-center text-center p-4\">\r\n <span className=\"text-3xl font-extrabold text-foreground tracking-tight\">{title}</span>\r\n {subtitle && (\r\n <span className=\"text-[11px] font-mono text-muted-foreground mt-0.5\">{subtitle}</span>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n}\r\n","'use client';\n\nimport * as React from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport {\n Heart,\n MessageCircle,\n Share2,\n Bookmark,\n MoreHorizontal,\n Send,\n Paperclip,\n Smile,\n Check,\n CheckCheck,\n Bell,\n Sparkles,\n Copy,\n ExternalLink,\n Plus\n} from 'lucide-react';\nimport { cn } from '../utils/cn';\n\n// ============================================================================\n// 1. CHAT MESSAGE (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface ChatMessageContextValue {\n variant: 'sent' | 'received';\n isOwn: boolean;\n}\n\nconst ChatMessageContext = React.createContext<ChatMessageContextValue>({\n variant: 'received',\n isOwn: false,\n});\n\nexport interface ChatMessageProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: 'sent' | 'received';\n isOwn?: boolean;\n // Legacy / fallback props:\n message?: string;\n sender?: string;\n time?: string;\n avatar?: string;\n children?: React.ReactNode;\n}\n\nexport const ChatMessage = React.forwardRef<HTMLDivElement, ChatMessageProps>(\n (\n {\n variant,\n isOwn,\n message,\n sender,\n time,\n avatar,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const resolvedVariant: 'sent' | 'received' =\n variant || (isOwn ? 'sent' : 'received');\n const resolvedIsOwn = resolvedVariant === 'sent';\n\n const contextValue = React.useMemo(\n () => ({ variant: resolvedVariant, isOwn: resolvedIsOwn }),\n [resolvedVariant, resolvedIsOwn]\n );\n\n // If compound children are provided, render compound tree\n if (children) {\n return (\n <ChatMessageContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={cn(\n 'flex gap-3 group/msg transition-all duration-200',\n resolvedIsOwn ? 'flex-row-reverse justify-start' : 'flex-row justify-start',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </ChatMessageContext.Provider>\n );\n }\n\n // Graceful backward compatibility with flat props\n return (\n <ChatMessageContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={cn(\n 'flex gap-3 group/msg transition-all duration-200',\n resolvedIsOwn ? 'flex-row-reverse justify-start' : 'flex-row justify-start',\n className\n )}\n {...props}\n >\n <ChatMessageAvatar fallback={avatar || sender?.charAt(0) || 'U'} />\n <ChatMessageBody>\n {(sender || time) && (\n <ChatMessageHeader>\n {sender && <ChatMessageSender>{sender}</ChatMessageSender>}\n {time && <ChatMessageTime>{time}</ChatMessageTime>}\n </ChatMessageHeader>\n )}\n {message && <ChatMessageContent>{message}</ChatMessageContent>}\n </ChatMessageBody>\n </div>\n </ChatMessageContext.Provider>\n );\n }\n);\nChatMessage.displayName = 'ChatMessage';\n\nexport interface ChatMessageAvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n fallback?: string;\n isOnline?: boolean;\n}\n\nexport const ChatMessageAvatar = React.forwardRef<HTMLDivElement, ChatMessageAvatarProps>(\n ({ src, fallback, isOnline, className, children, ...props }, ref) => {\n const { isOwn } = React.useContext(ChatMessageContext);\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative w-8 h-8 rounded-full flex items-center justify-center text-xs font-bold shrink-0 select-none shadow-sm',\n isOwn\n ? 'bg-gradient-to-tr from-primary to-violet-500 text-white shadow-primary/20'\n : 'bg-gradient-to-tr from-zinc-700 to-zinc-900 dark:from-zinc-800 dark:to-zinc-950 text-white border border-border/80',\n className\n )}\n {...props}\n >\n {src ? (\n <img src={src} alt=\"avatar\" className=\"w-full h-full rounded-full object-cover\" />\n ) : children ? (\n children\n ) : (\n <span>{fallback || (isOwn ? 'Y' : 'U')}</span>\n )}\n\n {isOnline && (\n <span className=\"absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 rounded-full bg-emerald-500 ring-2 ring-background\" />\n )}\n </div>\n );\n }\n);\nChatMessageAvatar.displayName = 'ChatMessageAvatar';\n\nexport const ChatMessageBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { isOwn } = React.useContext(ChatMessageContext);\n return (\n <div\n ref={ref}\n className={cn(\n 'flex flex-col max-w-[80%] sm:max-w-[70%]',\n isOwn ? 'items-end' : 'items-start',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nChatMessageBody.displayName = 'ChatMessageBody';\n\nexport const ChatMessageHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => {\n const { isOwn } = React.useContext(ChatMessageContext);\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-2 mb-1 px-1',\n isOwn ? 'flex-row-reverse text-right' : 'flex-row text-left',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nChatMessageHeader.displayName = 'ChatMessageHeader';\n\nexport const ChatMessageSender = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, children, ...props }, ref) => (\n <span\n ref={ref}\n className={cn('text-xs font-semibold text-foreground/90 tracking-tight', className)}\n {...props}\n >\n {children}\n </span>\n )\n);\nChatMessageSender.displayName = 'ChatMessageSender';\n\nexport const ChatMessageTime = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, children, ...props }, ref) => (\n <span\n ref={ref}\n className={cn('text-[11px] font-mono text-muted-foreground/80', className)}\n {...props}\n >\n {children}\n </span>\n )\n);\nChatMessageTime.displayName = 'ChatMessageTime';\n\nexport interface ChatMessageContentProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: 'sent' | 'received';\n}\n\nexport const ChatMessageContent = React.forwardRef<HTMLDivElement, ChatMessageContentProps>(\n ({ variant: propVariant, className, children, ...props }, ref) => {\n const context = React.useContext(ChatMessageContext);\n const isOwn = propVariant ? propVariant === 'sent' : context.isOwn;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'px-4 py-2.5 text-sm leading-relaxed tracking-normal shadow-xs transition-colors duration-200',\n isOwn\n ? 'bg-primary text-primary-foreground rounded-2xl rounded-tr-xs selection:bg-primary-foreground/20 selection:text-primary-foreground font-medium'\n : 'bg-card/90 dark:bg-zinc-900 text-card-foreground border border-border/70 rounded-2xl rounded-tl-xs backdrop-blur-md',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\nChatMessageContent.displayName = 'ChatMessageContent';\n\nexport interface ChatMessageStatusProps extends React.HTMLAttributes<HTMLSpanElement> {\n status?: 'sent' | 'delivered' | 'read';\n}\n\nexport const ChatMessageStatus = React.forwardRef<HTMLSpanElement, ChatMessageStatusProps>(\n ({ status = 'read', className, ...props }, ref) => {\n return (\n <span\n ref={ref}\n className={cn('inline-flex items-center text-[10px] text-muted-foreground ml-1.5', className)}\n {...props}\n >\n {status === 'sent' && <Check className=\"w-3 h-3 text-muted-foreground\" />}\n {status === 'delivered' && <CheckCheck className=\"w-3 h-3 text-muted-foreground\" />}\n {status === 'read' && <CheckCheck className=\"w-3 h-3 text-primary\" />}\n </span>\n );\n }\n);\nChatMessageStatus.displayName = 'ChatMessageStatus';\n\n// Compound Dot-notation assignment for ChatMessage\nexport const ChatMessageCompound = Object.assign(ChatMessage, {\n Avatar: ChatMessageAvatar,\n Body: ChatMessageBody,\n Header: ChatMessageHeader,\n Sender: ChatMessageSender,\n Time: ChatMessageTime,\n Content: ChatMessageContent,\n Status: ChatMessageStatus,\n});\n\n\n// ============================================================================\n// 2. CHAT INPUT (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface ChatInputProps extends React.HTMLAttributes<HTMLDivElement> {\n placeholder?: string;\n onSend?: (message: string) => void;\n children?: React.ReactNode;\n}\n\nexport const ChatInput = React.forwardRef<HTMLDivElement, ChatInputProps>(\n ({ placeholder = 'Type a message...', onSend, className, children, ...props }, ref) => {\n const [text, setText] = React.useState('');\n\n const handleSend = () => {\n if (text.trim()) {\n onSend?.(text);\n setText('');\n }\n };\n\n if (children) {\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-2.5 rounded-2xl border border-border/80 bg-card/60 backdrop-blur-md p-2 pl-4 shadow-sm focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-primary/20 transition-all duration-200',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-2.5 rounded-2xl border border-border/80 bg-card/60 backdrop-blur-md p-2 pl-4 shadow-sm focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-primary/20 transition-all duration-200',\n className\n )}\n {...props}\n >\n <ChatInputAction icon={<Paperclip className=\"w-4 h-4\" />} title=\"Attach file\" />\n <ChatInputField\n value={text}\n onChange={(e) => setText(e.target.value)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n handleSend();\n }\n }}\n placeholder={placeholder}\n />\n <ChatInputAction icon={<Smile className=\"w-4 h-4\" />} title=\"Add emoji\" />\n <ChatInputSubmit onClick={handleSend} disabled={!text.trim()} />\n </div>\n );\n }\n);\nChatInput.displayName = 'ChatInput';\n\nexport const ChatInputField = React.forwardRef<HTMLInputElement, React.InputHTMLAttributes<HTMLInputElement>>(\n ({ className, ...props }, ref) => (\n <input\n ref={ref}\n className={cn(\n 'flex-1 bg-transparent text-sm text-foreground outline-none placeholder:text-muted-foreground/70 min-w-0 font-normal',\n className\n )}\n {...props}\n />\n )\n);\nChatInputField.displayName = 'ChatInputField';\n\nexport const ChatInputActions = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-1 shrink-0', className)} {...props}>\n {children}\n </div>\n )\n);\nChatInputActions.displayName = 'ChatInputActions';\n\nexport interface ChatInputActionProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n icon?: React.ReactNode;\n}\n\nexport const ChatInputAction = React.forwardRef<HTMLButtonElement, ChatInputActionProps>(\n ({ icon, className, children, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n className={cn(\n 'w-8 h-8 rounded-xl flex items-center justify-center text-muted-foreground hover:text-foreground hover:bg-muted/60 active:scale-95 transition-all duration-150 cursor-pointer shrink-0',\n className\n )}\n {...props}\n >\n {icon || children}\n </button>\n )\n);\nChatInputAction.displayName = 'ChatInputAction';\n\nexport interface ChatInputSubmitProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n disabled?: boolean;\n}\n\nexport const ChatInputSubmit = React.forwardRef<HTMLButtonElement, ChatInputSubmitProps>(\n ({ disabled = false, className, children, ...props }, ref) => (\n <motion.button\n whileTap={{ scale: disabled ? 1 : 0.92 }}\n disabled={disabled}\n className={cn(\n 'w-9 h-9 rounded-xl flex items-center justify-center shrink-0 transition-all duration-200 cursor-pointer',\n disabled\n ? 'bg-muted/70 text-muted-foreground/50 cursor-not-allowed'\n : 'bg-primary text-primary-foreground shadow-md shadow-primary/25 hover:bg-primary/90',\n className\n )}\n {...(props as any)}\n >\n {children || <Send className=\"w-4 h-4\" />}\n </motion.button>\n )\n);\nChatInputSubmit.displayName = 'ChatInputSubmit';\n\nexport const ChatInputCompound = Object.assign(ChatInput, {\n Field: ChatInputField,\n Actions: ChatInputActions,\n Action: ChatInputAction,\n Submit: ChatInputSubmit,\n});\n\n\n// ============================================================================\n// 3. USER PROFILE CARD (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface UserProfileCardProps extends React.HTMLAttributes<HTMLDivElement> {\n name?: string;\n username?: string;\n bio?: string;\n stats?: { label: string; value: string }[];\n isFollowing?: boolean;\n avatar?: string;\n coverGradient?: string;\n children?: React.ReactNode;\n}\n\nexport const UserProfileCard = React.forwardRef<HTMLDivElement, UserProfileCardProps>(\n (\n {\n name = 'Jane Doe',\n username = '@janedoe',\n bio,\n stats,\n isFollowing = false,\n avatar,\n coverGradient,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [following, setFollowing] = React.useState(isFollowing);\n\n if (children) {\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border border-border/80 bg-card text-card-foreground overflow-hidden w-full max-w-sm shadow-xl shadow-black/5 dark:shadow-black/40 transition-all duration-300',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border border-border/80 bg-card text-card-foreground overflow-hidden w-full max-w-sm shadow-xl shadow-black/5 dark:shadow-black/40 transition-all duration-300',\n className\n )}\n {...props}\n >\n <UserProfileCover gradient={coverGradient} />\n <div className=\"px-5 pb-5\">\n <div className=\"flex items-end justify-between -mt-9 mb-3\">\n <UserProfileAvatar fallback={avatar || name.charAt(0)} />\n <UserProfileFollowButton following={following} onClick={() => setFollowing(!following)} />\n </div>\n\n <UserProfileInfo>\n <UserProfileName>{name}</UserProfileName>\n <UserProfileHandle>{username}</UserProfileHandle>\n </UserProfileInfo>\n\n {bio && <UserProfileBio>{bio}</UserProfileBio>}\n\n {stats && stats.length > 0 && (\n <UserProfileStats>\n {stats.map((s, idx) => (\n <UserProfileStat key={idx} label={s.label} value={s.value} />\n ))}\n </UserProfileStats>\n )}\n </div>\n </div>\n );\n }\n);\nUserProfileCard.displayName = 'UserProfileCard';\n\nexport interface UserProfileCoverProps extends React.HTMLAttributes<HTMLDivElement> {\n gradient?: string;\n imageSrc?: string;\n}\n\nexport const UserProfileCover = React.forwardRef<HTMLDivElement, UserProfileCoverProps>(\n ({ gradient, imageSrc, className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'h-36 w-full relative overflow-hidden rounded-t-2xl',\n gradient || 'bg-gradient-to-r from-violet-600 via-indigo-600 to-cyan-500',\n className\n )}\n {...props}\n >\n {/* Decorative Grid Mesh Overlay */}\n <div className=\"absolute inset-0 bg-[linear-gradient(to_right,#ffffff15_1px,transparent_1px),linear-gradient(to_bottom,#ffffff15_1px,transparent_1px)] bg-[size:18px_18px] pointer-events-none\" />\n {/* Soft atmospheric radial glow */}\n <div className=\"absolute -top-12 -right-12 w-44 h-44 bg-white/20 rounded-full blur-2xl pointer-events-none\" />\n <div className=\"absolute -bottom-10 -left-10 w-40 h-40 bg-black/40 rounded-full blur-2xl pointer-events-none\" />\n {/* Smooth bottom blend into card */}\n <div className=\"absolute inset-0 bg-gradient-to-t from-card/80 via-transparent to-transparent pointer-events-none\" />\n {imageSrc && <img src={imageSrc} alt=\"Cover\" className=\"w-full h-full object-cover\" />}\n {children}\n </div>\n )\n);\nUserProfileCover.displayName = 'UserProfileCover';\n\nexport interface UserProfileAvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n fallback?: string;\n status?: 'online' | 'busy' | 'offline';\n}\n\nexport const UserProfileAvatar = React.forwardRef<HTMLDivElement, UserProfileAvatarProps>(\n ({ src, fallback, status = 'online', className, children, ...props }, ref) => (\n <div className=\"relative shrink-0\">\n <div\n ref={ref}\n className={cn(\n 'w-20 h-20 rounded-full border-4 border-card ring-2 ring-primary/30 bg-gradient-to-tr from-violet-600 via-indigo-600 to-cyan-500 flex items-center justify-center text-white font-extrabold text-2xl shadow-2xl overflow-hidden select-none',\n className\n )}\n {...props}\n >\n {src ? (\n <img src={src} alt=\"avatar\" className=\"w-full h-full object-cover\" />\n ) : children ? (\n children\n ) : (\n <span>{fallback || 'U'}</span>\n )}\n </div>\n\n {status && (\n <span\n className={cn(\n 'absolute bottom-1 right-1 w-4 h-4 rounded-full ring-2 ring-card shadow-sm',\n status === 'online' && 'bg-emerald-500',\n status === 'busy' && 'bg-rose-500',\n status === 'offline' && 'bg-zinc-500'\n )}\n title={`Status: ${status}`}\n />\n )}\n </div>\n )\n);\nUserProfileAvatar.displayName = 'UserProfileAvatar';\n\nexport const UserProfileInfo = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('space-y-0.5', className)} {...props}>\n {children}\n </div>\n )\n);\nUserProfileInfo.displayName = 'UserProfileInfo';\n\nexport const UserProfileName = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, children, ...props }, ref) => (\n <div className=\"flex items-center gap-1.5\">\n <h4 ref={ref} className={cn('font-bold text-lg text-foreground tracking-tight', className)} {...props}>\n {children}\n </h4>\n <svg className=\"w-4 h-4 text-primary fill-primary/20 shrink-0\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path\n fillRule=\"evenodd\"\n d=\"M8.603 3.799A4.49 4.49 0 0112 2.25c1.357 0 2.573.6 3.397 1.549a4.49 4.49 0 013.498 1.307 4.491 4.491 0 011.307 3.497A4.49 4.49 0 0121.75 12a4.49 4.49 0 01-1.549 3.397 4.491 4.491 0 01-1.307 3.497 4.491 4.491 0 01-3.497 1.307A4.49 4.49 0 0112 21.75a4.49 4.49 0 01-3.397-1.549 4.49 4.49 0 01-3.498-1.306 4.491 4.491 0 01-1.307-3.498A4.49 4.49 0 012.25 12c0-1.357.6-2.573 1.549-3.397a4.49 4.49 0 011.307-3.497 4.49 4.49 0 013.497-1.307zm7.007 6.387a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </div>\n )\n);\nUserProfileName.displayName = 'UserProfileName';\n\nexport const UserProfileHandle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, children, ...props }, ref) => (\n <p ref={ref} className={cn('text-xs font-mono text-muted-foreground', className)} {...props}>\n {children}\n </p>\n )\n);\nUserProfileHandle.displayName = 'UserProfileHandle';\n\nexport const UserProfileBio = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, children, ...props }, ref) => (\n <p ref={ref} className={cn('text-xs sm:text-sm text-muted-foreground leading-relaxed mt-3', className)} {...props}>\n {children}\n </p>\n )\n);\nUserProfileBio.displayName = 'UserProfileBio';\n\nexport const UserProfileStats = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('flex items-center gap-6 mt-4 pt-4 border-t border-border/70', className)}\n {...props}\n >\n {children}\n </div>\n )\n);\nUserProfileStats.displayName = 'UserProfileStats';\n\nexport interface UserProfileStatProps extends React.HTMLAttributes<HTMLDivElement> {\n label: string;\n value: string;\n}\n\nexport const UserProfileStat = React.forwardRef<HTMLDivElement, UserProfileStatProps>(\n ({ label, value, className, ...props }, ref) => (\n <div ref={ref} className={cn('space-y-0.5', className)} {...props}>\n <p className=\"font-bold text-sm text-foreground tracking-tight\">{value}</p>\n <p className=\"text-[11px] text-muted-foreground\">{label}</p>\n </div>\n )\n);\nUserProfileStat.displayName = 'UserProfileStat';\n\nexport interface UserProfileFollowButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n following?: boolean;\n}\n\nexport const UserProfileFollowButton = React.forwardRef<HTMLButtonElement, UserProfileFollowButtonProps>(\n ({ following = false, className, children, ...props }, ref) => (\n <motion.button\n whileTap={{ scale: 0.95 }}\n className={cn(\n 'px-4 py-1.5 rounded-full text-xs font-semibold transition-all duration-200 cursor-pointer shadow-xs',\n following\n ? 'bg-muted/80 text-muted-foreground hover:bg-rose-500/10 hover:text-rose-500 border border-border/80'\n : 'bg-primary text-primary-foreground hover:bg-primary/90 shadow-primary/25',\n className\n )}\n {...(props as any)}\n >\n {children || (following ? 'Following' : 'Follow')}\n </motion.button>\n )\n);\nUserProfileFollowButton.displayName = 'UserProfileFollowButton';\n\nexport const UserProfileCardCompound = Object.assign(UserProfileCard, {\n Cover: UserProfileCover,\n Avatar: UserProfileAvatar,\n Info: UserProfileInfo,\n Name: UserProfileName,\n Handle: UserProfileHandle,\n Bio: UserProfileBio,\n Stats: UserProfileStats,\n Stat: UserProfileStat,\n FollowButton: UserProfileFollowButton,\n});\n\n\n// ============================================================================\n// 4. COMMENT THREAD (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface CommentData {\n author: string;\n text: string;\n time: string;\n avatar?: string;\n replies?: { author: string; text: string; time: string; avatar?: string }[];\n}\n\nexport interface CommentThreadProps extends React.HTMLAttributes<HTMLDivElement> {\n comments?: CommentData[];\n children?: React.ReactNode;\n}\n\nexport const CommentThread = React.forwardRef<HTMLDivElement, CommentThreadProps>(\n ({ comments, className, children, ...props }, ref) => {\n if (children) {\n return (\n <div ref={ref} className={cn('space-y-4 w-full', className)} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <div ref={ref} className={cn('space-y-4 w-full', className)} {...props}>\n {comments?.map((comment, i) => (\n <div key={i} className=\"space-y-3\">\n <CommentItem>\n <CommentAvatar fallback={comment.author.charAt(0)} />\n <CommentBody>\n <CommentHeader>\n <CommentAuthor>{comment.author}</CommentAuthor>\n <CommentTime>{comment.time}</CommentTime>\n </CommentHeader>\n <CommentText>{comment.text}</CommentText>\n <CommentActions>\n <button type=\"button\" className=\"hover:text-primary transition-colors cursor-pointer\">\n Reply\n </button>\n </CommentActions>\n </CommentBody>\n </CommentItem>\n\n {comment.replies?.map((reply, j) => (\n <CommentReply key={j}>\n <CommentAvatar fallback={reply.author.charAt(0)} size=\"sm\" />\n <CommentBody>\n <CommentHeader>\n <CommentAuthor>{reply.author}</CommentAuthor>\n <CommentTime>{reply.time}</CommentTime>\n </CommentHeader>\n <CommentText>{reply.text}</CommentText>\n </CommentBody>\n </CommentReply>\n ))}\n </div>\n ))}\n </div>\n );\n }\n);\nCommentThread.displayName = 'CommentThread';\n\nexport const CommentItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex gap-3.5 items-start', className)} {...props}>\n {children}\n </div>\n )\n);\nCommentItem.displayName = 'CommentItem';\n\nexport interface CommentAvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n fallback?: string;\n size?: 'sm' | 'md';\n}\n\nexport const CommentAvatar = React.forwardRef<HTMLDivElement, CommentAvatarProps>(\n ({ src, fallback, size = 'md', className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'rounded-full flex items-center justify-center font-bold text-white shrink-0 bg-gradient-to-tr from-violet-500 to-indigo-600 shadow-xs',\n size === 'sm' ? 'w-6 h-6 text-[10px]' : 'w-8 h-8 text-xs',\n className\n )}\n {...props}\n >\n {src ? (\n <img src={src} alt=\"avatar\" className=\"w-full h-full rounded-full object-cover\" />\n ) : children ? (\n children\n ) : (\n <span>{fallback || 'U'}</span>\n )}\n </div>\n )\n);\nCommentAvatar.displayName = 'CommentAvatar';\n\nexport const CommentBody = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex-1 min-w-0 space-y-1', className)} {...props}>\n {children}\n </div>\n )\n);\nCommentBody.displayName = 'CommentBody';\n\nexport const CommentHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-2 mb-0.5', className)} {...props}>\n {children}\n </div>\n )\n);\nCommentHeader.displayName = 'CommentHeader';\n\nexport const CommentAuthor = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, children, ...props }, ref) => (\n <span ref={ref} className={cn('font-semibold text-xs text-foreground', className)} {...props}>\n {children}\n </span>\n )\n);\nCommentAuthor.displayName = 'CommentAuthor';\n\nexport const CommentTime = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, children, ...props }, ref) => (\n <span ref={ref} className={cn('text-[11px] font-mono text-muted-foreground', className)} {...props}>\n {children}\n </span>\n )\n);\nCommentTime.displayName = 'CommentTime';\n\nexport const CommentText = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, children, ...props }, ref) => (\n <p ref={ref} className={cn('text-xs sm:text-sm text-foreground/80 leading-relaxed', className)} {...props}>\n {children}\n </p>\n )\n);\nCommentText.displayName = 'CommentText';\n\nexport const CommentActions = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-3 pt-1 text-[11px] text-muted-foreground', className)} {...props}>\n {children}\n </div>\n )\n);\nCommentActions.displayName = 'CommentActions';\n\nexport const CommentReply = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex gap-3 items-start ml-11 pl-2 border-l border-border/60', className)} {...props}>\n {children}\n </div>\n )\n);\nCommentReply.displayName = 'CommentReply';\n\nexport const CommentThreadCompound = Object.assign(CommentThread, {\n Item: CommentItem,\n Avatar: CommentAvatar,\n Body: CommentBody,\n Header: CommentHeader,\n Author: CommentAuthor,\n Time: CommentTime,\n Text: CommentText,\n Actions: CommentActions,\n Reply: CommentReply,\n});\n\n\n// ============================================================================\n// 5. SOCIAL POST (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface SocialPostProps extends React.HTMLAttributes<HTMLDivElement> {\n author?: string;\n handle?: string;\n content?: string;\n time?: string;\n avatar?: string;\n likes?: number;\n comments?: number;\n shares?: number;\n children?: React.ReactNode;\n}\n\nexport const SocialPost = React.forwardRef<HTMLDivElement, SocialPostProps>(\n (\n {\n author = 'John Smith',\n handle = '@johnsmith',\n content = 'Just launched my new project! Check it out 🚀',\n time = '2h ago',\n avatar,\n likes = 42,\n comments = 12,\n shares = 5,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [liked, setLiked] = React.useState(false);\n const [likeCount, setLikeCount] = React.useState(likes);\n\n if (children) {\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border border-border/80 bg-card text-card-foreground p-5 w-full shadow-lg shadow-black/5 dark:shadow-black/30 transition-all duration-200',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border border-border/80 bg-card text-card-foreground p-5 w-full shadow-lg shadow-black/5 dark:shadow-black/30 transition-all duration-200',\n className\n )}\n {...props}\n >\n <SocialPostHeader>\n <SocialPostAvatar fallback={avatar || author.charAt(0)} />\n <div className=\"flex-1 min-w-0\">\n <SocialPostAuthor>{author}</SocialPostAuthor>\n <div className=\"flex items-center gap-1.5 text-xs text-muted-foreground\">\n <SocialPostHandle>{handle}</SocialPostHandle>\n <span>·</span>\n <SocialPostTime>{time}</SocialPostTime>\n </div>\n </div>\n </SocialPostHeader>\n\n <SocialPostContent>{content}</SocialPostContent>\n\n <SocialPostActions>\n <SocialPostAction\n active={liked}\n icon={<Heart className={cn('w-4 h-4', liked && 'fill-rose-500 text-rose-500')} />}\n label={likeCount}\n onClick={() => {\n setLiked(!liked);\n setLikeCount(liked ? likeCount - 1 : likeCount + 1);\n }}\n />\n <SocialPostAction icon={<MessageCircle className=\"w-4 h-4\" />} label={comments} />\n <SocialPostAction icon={<Share2 className=\"w-4 h-4\" />} label={shares} />\n </SocialPostActions>\n </div>\n );\n }\n);\nSocialPost.displayName = 'SocialPost';\n\nexport const SocialPostHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-3 mb-3.5', className)} {...props}>\n {children}\n </div>\n )\n);\nSocialPostHeader.displayName = 'SocialPostHeader';\n\nexport const SocialPostAvatar = React.forwardRef<HTMLDivElement, CommentAvatarProps>(\n ({ src, fallback, className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'w-10 h-10 rounded-full bg-gradient-to-tr from-violet-500 to-indigo-600 flex items-center justify-center text-white font-bold shrink-0 shadow-xs',\n className\n )}\n {...props}\n >\n {src ? (\n <img src={src} alt=\"avatar\" className=\"w-full h-full rounded-full object-cover\" />\n ) : children ? (\n children\n ) : (\n <span>{fallback || 'U'}</span>\n )}\n </div>\n )\n);\nSocialPostAvatar.displayName = 'SocialPostAvatar';\n\nexport const SocialPostAuthor = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, children, ...props }, ref) => (\n <p ref={ref} className={cn('font-semibold text-sm text-foreground tracking-tight', className)} {...props}>\n {children}\n </p>\n )\n);\nSocialPostAuthor.displayName = 'SocialPostAuthor';\n\nexport const SocialPostHandle = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, children, ...props }, ref) => (\n <span ref={ref} className={cn('font-mono text-xs text-muted-foreground', className)} {...props}>\n {children}\n </span>\n )\n);\nSocialPostHandle.displayName = 'SocialPostHandle';\n\nexport const SocialPostTime = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, children, ...props }, ref) => (\n <span ref={ref} className={cn('text-xs text-muted-foreground/80', className)} {...props}>\n {children}\n </span>\n )\n);\nSocialPostTime.displayName = 'SocialPostTime';\n\nexport const SocialPostContent = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, children, ...props }, ref) => (\n <p ref={ref} className={cn('text-sm leading-relaxed text-foreground/90 mb-4', className)} {...props}>\n {children}\n </p>\n )\n);\nSocialPostContent.displayName = 'SocialPostContent';\n\nexport const SocialPostActions = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, children, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center gap-6 pt-3 border-t border-border/70', className)} {...props}>\n {children}\n </div>\n )\n);\nSocialPostActions.displayName = 'SocialPostActions';\n\nexport interface SocialPostActionProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n icon?: React.ReactNode;\n label?: React.ReactNode;\n active?: boolean;\n}\n\nexport const SocialPostAction = React.forwardRef<HTMLButtonElement, SocialPostActionProps>(\n ({ icon, label, active, className, children, ...props }, ref) => (\n <motion.button\n ref={ref}\n type=\"button\"\n whileTap={{ scale: 0.9 }}\n className={cn(\n 'inline-flex items-center gap-1.5 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer',\n active && 'text-rose-500 hover:text-rose-500 font-medium',\n className\n )}\n {...(props as any)}\n >\n {icon}\n {label !== undefined && <span>{label}</span>}\n {children}\n </motion.button>\n )\n);\nSocialPostAction.displayName = 'SocialPostAction';\n\nexport const SocialPostCompound = Object.assign(SocialPost, {\n Header: SocialPostHeader,\n Avatar: SocialPostAvatar,\n Author: SocialPostAuthor,\n Handle: SocialPostHandle,\n Time: SocialPostTime,\n Content: SocialPostContent,\n Actions: SocialPostActions,\n Action: SocialPostAction,\n});\n\n\n// ============================================================================\n// 6. REACTION BAR (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface ReactionData {\n emoji: string;\n count: number;\n active?: boolean;\n}\n\nexport interface ReactionBarProps extends React.HTMLAttributes<HTMLDivElement> {\n reactions?: ReactionData[];\n onReact?: (emoji: string) => void;\n children?: React.ReactNode;\n}\n\nexport const ReactionBar = React.forwardRef<HTMLDivElement, ReactionBarProps>(\n ({ reactions, onReact, className, children, ...props }, ref) => {\n if (children) {\n return (\n <div ref={ref} className={cn('flex flex-wrap items-center gap-2', className)} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <div ref={ref} className={cn('flex flex-wrap items-center gap-2', className)} {...props}>\n {reactions?.map((r, i) => (\n <ReactionItem\n key={i}\n emoji={r.emoji}\n count={r.count}\n active={r.active}\n onClick={() => onReact?.(r.emoji)}\n />\n ))}\n <ReactionAdd onAdd={() => onReact?.('✨')} />\n </div>\n );\n }\n);\nReactionBar.displayName = 'ReactionBar';\n\nexport interface ReactionItemProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n emoji: string;\n count: number;\n active?: boolean;\n}\n\nexport const ReactionItem = React.forwardRef<HTMLButtonElement, ReactionItemProps>(\n ({ emoji, count, active = false, className, ...props }, ref) => (\n <motion.button\n ref={ref}\n type=\"button\"\n whileTap={{ scale: 0.92 }}\n className={cn(\n 'inline-flex items-center gap-1.5 rounded-full px-3 py-1 text-xs border transition-all duration-200 cursor-pointer shadow-2xs',\n active\n ? 'border-primary/40 bg-primary/10 text-primary font-semibold'\n : 'border-border/80 bg-card hover:bg-muted/60 text-muted-foreground hover:text-foreground',\n className\n )}\n {...(props as any)}\n >\n <span className=\"text-sm leading-none\">{emoji}</span>\n <span className=\"font-mono\">{count}</span>\n </motion.button>\n )\n);\nReactionItem.displayName = 'ReactionItem';\n\nexport const ReactionAdd = React.forwardRef<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement> & { onAdd?: () => void }>(\n ({ onAdd, className, ...props }, ref) => (\n <button\n ref={ref}\n type=\"button\"\n onClick={onAdd}\n className={cn(\n 'inline-flex items-center justify-center w-7 h-7 rounded-full border border-dashed border-border/80 text-muted-foreground hover:text-foreground hover:border-foreground/30 transition-colors text-xs cursor-pointer',\n className\n )}\n {...props}\n >\n <Plus className=\"w-3.5 h-3.5\" />\n </button>\n )\n);\nReactionAdd.displayName = 'ReactionAdd';\n\nexport const ReactionBarCompound = Object.assign(ReactionBar, {\n Item: ReactionItem,\n Add: ReactionAdd,\n});\n\n\n// ============================================================================\n// 7. ACTIVITY ITEM (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface ActivityItemProps extends React.HTMLAttributes<HTMLDivElement> {\n user?: string;\n action?: string;\n target?: string;\n time?: string;\n icon?: React.ReactNode;\n children?: React.ReactNode;\n}\n\nexport const ActivityItem = React.forwardRef<HTMLDivElement, ActivityItemProps>(\n ({ user, action, target, time, icon, className, children, ...props }, ref) => {\n if (children) {\n return (\n <div ref={ref} className={cn('flex items-start gap-3 py-3 w-full', className)} {...props}>\n {children}\n </div>\n );\n }\n\n return (\n <div ref={ref} className={cn('flex items-start gap-3 py-3 w-full', className)} {...props}>\n <div className=\"w-8 h-8 rounded-full bg-gradient-to-tr from-violet-500 to-indigo-600 flex items-center justify-center text-white text-xs font-bold shrink-0 shadow-xs\">\n {icon || user?.charAt(0) || 'U'}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-xs sm:text-sm text-foreground/90 leading-snug\">\n <span className=\"font-semibold text-foreground\">{user}</span>{' '}\n <span className=\"text-muted-foreground\">{action}</span>{' '}\n {target && <span className=\"font-medium text-foreground\">{target}</span>}\n </p>\n {time && <span className=\"text-[11px] font-mono text-muted-foreground mt-0.5 block\">{time}</span>}\n </div>\n </div>\n );\n }\n);\nActivityItem.displayName = 'ActivityItem';\n\n\n// ============================================================================\n// 8. ONLINE USERS LIST (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface OnlineUserData {\n name: string;\n status?: 'online' | 'away' | 'busy' | 'offline';\n avatar?: string;\n}\n\nexport interface OnlineUsersListProps extends React.HTMLAttributes<HTMLDivElement> {\n users?: OnlineUserData[];\n children?: React.ReactNode;\n}\n\nexport const OnlineUsersList = React.forwardRef<HTMLDivElement, OnlineUsersListProps>(\n ({ users, className, children, ...props }, ref) => {\n const statusColors = {\n online: 'bg-emerald-500',\n away: 'bg-amber-500',\n busy: 'bg-rose-500',\n offline: 'bg-muted-foreground/50',\n };\n\n if (children) {\n return (\n <div\n ref={ref}\n className={cn('rounded-2xl border border-border/80 bg-card p-4 shadow-lg w-full max-w-xs', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n const onlineCount = users?.filter((u) => u.status === 'online').length || 0;\n\n return (\n <div\n ref={ref}\n className={cn('rounded-2xl border border-border/80 bg-card p-4 shadow-lg w-full max-w-xs', className)}\n {...props}\n >\n <div className=\"flex items-center justify-between mb-3 pb-2 border-b border-border/60\">\n <h4 className=\"font-semibold text-xs tracking-tight text-foreground\">Active Team Members</h4>\n <span className=\"text-[10px] font-mono px-2 py-0.5 rounded-full bg-emerald-500/10 text-emerald-500 font-semibold border border-emerald-500/20\">\n {onlineCount} Online\n </span>\n </div>\n <div className=\"space-y-2\">\n {users?.map((user, i) => (\n <div key={i} className=\"flex items-center gap-2.5 py-1\">\n <div className=\"relative shrink-0\">\n <div className=\"w-7 h-7 rounded-full bg-gradient-to-tr from-violet-500 to-indigo-600 flex items-center justify-center text-white text-[11px] font-bold shadow-2xs\">\n {user.name.charAt(0)}\n </div>\n <div\n className={cn(\n 'absolute -bottom-0.5 -right-0.5 w-2.5 h-2.5 rounded-full ring-2 ring-card',\n statusColors[user.status || 'offline']\n )}\n />\n </div>\n <span className=\"text-xs font-medium text-foreground/90\">{user.name}</span>\n </div>\n ))}\n </div>\n </div>\n );\n }\n);\nOnlineUsersList.displayName = 'OnlineUsersList';\n\n\n// ============================================================================\n// 9. SHARE SHEET (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface ShareSheetProps extends React.HTMLAttributes<HTMLDivElement> {\n url?: string;\n title?: string;\n children?: React.ReactNode;\n}\n\nexport const ShareSheet = React.forwardRef<HTMLDivElement, ShareSheetProps>(\n ({ url = 'https://nexoreui.site', title = 'Share this project', className, children, ...props }, ref) => {\n const [copied, setCopied] = React.useState(false);\n\n if (children) {\n return (\n <div\n ref={ref}\n className={cn('rounded-2xl border border-border/80 bg-card p-5 shadow-lg max-w-sm w-full', className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n const platforms = [\n { name: 'Twitter', color: 'bg-sky-500', icon: '𝕏' },\n { name: 'Facebook', color: 'bg-blue-600', icon: 'f' },\n { name: 'LinkedIn', color: 'bg-indigo-600', icon: 'in' },\n { name: 'Telegram', color: 'bg-cyan-500', icon: '✈' },\n ];\n\n const handleCopy = () => {\n navigator.clipboard.writeText(url);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <div\n ref={ref}\n className={cn('rounded-2xl border border-border/80 bg-card p-5 shadow-lg max-w-sm w-full space-y-4', className)}\n {...props}\n >\n <h4 className=\"font-semibold text-sm text-foreground tracking-tight\">{title}</h4>\n <div className=\"flex gap-2.5\">\n {platforms.map((p, i) => (\n <motion.button\n key={i}\n whileTap={{ scale: 0.92 }}\n className={cn(\n 'w-9 h-9 rounded-xl flex items-center justify-center text-white text-xs font-bold shadow-sm transition-transform cursor-pointer',\n p.color\n )}\n title={p.name}\n >\n {p.icon}\n </motion.button>\n ))}\n </div>\n <div className=\"flex items-center gap-2\">\n <div className=\"flex-1 px-3 py-2 rounded-xl bg-muted/60 text-xs font-mono text-muted-foreground truncate border border-border/60\">\n {url}\n </div>\n <motion.button\n whileTap={{ scale: 0.92 }}\n onClick={handleCopy}\n className=\"px-3.5 py-2 rounded-xl bg-primary text-primary-foreground text-xs font-medium shrink-0 flex items-center gap-1.5 shadow-sm shadow-primary/20 hover:bg-primary/90 transition-colors cursor-pointer\"\n >\n {copied ? <Check className=\"w-3.5 h-3.5 text-emerald-400\" /> : <Copy className=\"w-3.5 h-3.5\" />}\n <span>{copied ? 'Copied!' : 'Copy'}</span>\n </motion.button>\n </div>\n </div>\n );\n }\n);\nShareSheet.displayName = 'ShareSheet';\n\n\n// ============================================================================\n// 10. NOTIFICATION CENTER (Compound Architecture + Backward Compatibility)\n// ============================================================================\n\nexport interface NotificationItemData {\n title: string;\n message: string;\n time: string;\n read?: boolean;\n type?: 'info' | 'success' | 'warning';\n}\n\nexport interface NotificationCenterProps extends React.HTMLAttributes<HTMLDivElement> {\n notifications?: NotificationItemData[];\n onMarkAllRead?: () => void;\n children?: React.ReactNode;\n}\n\nexport const NotificationCenter = React.forwardRef<HTMLDivElement, NotificationCenterProps>(\n ({ notifications, onMarkAllRead, className, children, ...props }, ref) => {\n if (children) {\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border border-border/80 bg-card text-card-foreground overflow-hidden max-w-sm w-full shadow-xl',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n const typeIcons = {\n info: '💬',\n success: '✅',\n warning: '⚠️',\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border border-border/80 bg-card text-card-foreground overflow-hidden max-w-sm w-full shadow-xl',\n className\n )}\n {...props}\n >\n <div className=\"flex items-center justify-between px-4 py-3 border-b border-border/70 bg-muted/30\">\n <div className=\"flex items-center gap-2\">\n <Bell className=\"w-4 h-4 text-primary\" />\n <h4 className=\"font-semibold text-xs text-foreground tracking-tight\">Notifications</h4>\n </div>\n <button\n type=\"button\"\n onClick={onMarkAllRead}\n className=\"text-[11px] text-primary hover:underline font-medium cursor-pointer\"\n >\n Mark all read\n </button>\n </div>\n <div className=\"divide-y divide-border/60 max-h-[360px] overflow-y-auto\">\n {notifications?.map((n, i) => (\n <div\n key={i}\n className={cn(\n 'flex items-start gap-3 px-4 py-3 hover:bg-muted/40 transition-colors cursor-pointer',\n !n.read && 'bg-primary/5'\n )}\n >\n <span className=\"text-sm shrink-0 mt-0.5\">{typeIcons[n.type || 'info']}</span>\n <div className=\"flex-1 min-w-0\">\n <p className={cn('text-xs', !n.read ? 'font-semibold text-foreground' : 'font-medium text-foreground/80')}>\n {n.title}\n </p>\n <p className=\"text-[11px] text-muted-foreground line-clamp-1 mt-0.5\">{n.message}</p>\n </div>\n <span className=\"text-[10px] font-mono text-muted-foreground shrink-0 mt-0.5\">{n.time}</span>\n {!n.read && <div className=\"w-1.5 h-1.5 rounded-full bg-primary shrink-0 mt-1.5\" />}\n </div>\n ))}\n </div>\n </div>\n );\n }\n);\nNotificationCenter.displayName = 'NotificationCenter';\n","\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport {\n ShoppingBag,\n Heart,\n Star,\n Check,\n ShieldCheck,\n Lock,\n Download,\n CreditCard,\n Copy,\n Trash2,\n Plus,\n Minus,\n Sparkles,\n ArrowRight,\n Zap,\n Tag\n} from \"lucide-react\"\nimport { cn } from \"../utils/cn\"\n\n// ============================================\n// 1. ProductCardPro — Modern Luxury Product Card\n// ============================================\n\nexport interface ProductCardProProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string\n price: string | number\n originalPrice?: string | number\n badge?: string\n rating?: number\n reviewCount?: number\n imageSrc?: string\n colors?: string[]\n onAddToCart?: () => void\n}\n\nexport function ProductCardPro({\n name,\n price,\n originalPrice,\n badge = \"Bestseller\",\n rating = 4.9,\n reviewCount = 248,\n imageSrc,\n colors = [\"#18181b\", \"#6366f1\", \"#06b6d4\"],\n onAddToCart,\n className,\n ...props\n}: ProductCardProProps) {\n const [isWishlisted, setIsWishlisted] = React.useState(false)\n const [selectedColor, setSelectedColor] = React.useState(0)\n const [isAdded, setIsAdded] = React.useState(false)\n\n const handleAdd = () => {\n setIsAdded(true)\n onAddToCart?.()\n setTimeout(() => setIsAdded(false), 1800)\n }\n\n return (\n <motion.div\n whileHover={{ y: -5 }}\n transition={{ duration: 0.25 }}\n className={cn(\n \"rounded-3xl border border-border/80 bg-card text-card-foreground p-4 w-full max-w-sm shadow-xl shadow-black/5 dark:shadow-black/40 overflow-hidden relative group backdrop-blur-md\",\n className\n )}\n {...(props as any)}\n >\n {/* Product Image / Visual Container */}\n <div className=\"relative aspect-[4/3] rounded-2xl bg-gradient-to-br from-muted/60 via-card to-background border border-border/50 overflow-hidden flex items-center justify-center\">\n {/* Atmospheric ambient glow */}\n <div\n className=\"absolute inset-0 opacity-20 blur-2xl transition-colors duration-500 pointer-events-none\"\n style={{ backgroundColor: colors[selectedColor] || \"#6366f1\" }}\n />\n\n {/* Badge */}\n {badge && (\n <div className=\"absolute top-3 left-3 z-10\">\n <span className=\"inline-flex items-center gap-1 px-2.5 py-1 rounded-full bg-primary/90 text-primary-foreground text-[11px] font-bold tracking-wide shadow-md backdrop-blur-md\">\n <Sparkles className=\"w-3 h-3\" />\n {badge}\n </span>\n </div>\n )}\n\n {/* Wishlist button */}\n <button\n type=\"button\"\n onClick={() => setIsWishlisted(!isWishlisted)}\n className=\"absolute top-3 right-3 z-10 w-8 h-8 rounded-full bg-background/80 hover:bg-background backdrop-blur-md border border-border/80 flex items-center justify-center transition-transform active:scale-90 cursor-pointer shadow-xs\"\n title={isWishlisted ? \"Remove from wishlist\" : \"Add to wishlist\"}\n >\n <Heart\n className={cn(\n \"w-4 h-4 transition-colors\",\n isWishlisted ? \"fill-rose-500 text-rose-500\" : \"text-muted-foreground hover:text-foreground\"\n )}\n />\n </button>\n\n {/* Product Visual */}\n {imageSrc ? (\n <img\n src={imageSrc}\n alt={name}\n className=\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500\"\n />\n ) : (\n <div className=\"flex flex-col items-center gap-2 select-none group-hover:scale-105 transition-transform duration-300\">\n <div className=\"w-20 h-20 rounded-2xl bg-gradient-to-tr from-primary/20 via-primary/10 to-transparent border border-primary/20 flex items-center justify-center text-primary shadow-lg\">\n <ShoppingBag className=\"w-9 h-9\" />\n </div>\n <span className=\"text-[10px] font-mono tracking-widest text-muted-foreground uppercase\">\n STUDIO SERIES\n </span>\n </div>\n )}\n </div>\n\n {/* Product Content Details */}\n <div className=\"pt-4 space-y-3\">\n {/* Rating & Color Swatches */}\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-1.5\">\n <div className=\"flex items-center text-amber-400\">\n <Star className=\"w-3.5 h-3.5 fill-amber-400\" />\n </div>\n <span className=\"text-xs font-bold text-foreground\">{rating}</span>\n <span className=\"text-xs text-muted-foreground\">({reviewCount})</span>\n </div>\n\n {/* Color choices */}\n {colors.length > 0 && (\n <div className=\"flex items-center gap-1\">\n {colors.map((c, i) => (\n <button\n key={i}\n type=\"button\"\n onClick={() => setSelectedColor(i)}\n className={cn(\n \"w-4 h-4 rounded-full border border-background shadow-xs transition-transform cursor-pointer\",\n selectedColor === i ? \"scale-125 ring-2 ring-primary\" : \"opacity-70 hover:opacity-100\"\n )}\n style={{ backgroundColor: c }}\n title={`Color option ${i + 1}`}\n />\n ))}\n </div>\n )}\n </div>\n\n {/* Name Title */}\n <h3 className=\"font-bold text-base text-foreground tracking-tight line-clamp-1 group-hover:text-primary transition-colors\">\n {name}\n </h3>\n\n {/* Price Row */}\n <div className=\"flex items-baseline gap-2\">\n <span className=\"text-2xl font-extrabold text-foreground tracking-tight\">\n ${price}\n </span>\n {originalPrice && (\n <span className=\"text-sm font-medium text-muted-foreground line-through\">\n ${originalPrice}\n </span>\n )}\n {originalPrice && (\n <span className=\"text-[10px] font-bold px-1.5 py-0.5 rounded-md bg-emerald-500/10 text-emerald-500 border border-emerald-500/20 ml-auto\">\n SAVE ${(Number(originalPrice) - Number(price)).toFixed(0)}\n </span>\n )}\n </div>\n\n {/* Action Button */}\n <motion.button\n whileTap={{ scale: 0.96 }}\n onClick={handleAdd}\n className={cn(\n \"w-full py-2.5 px-4 rounded-xl text-xs font-semibold flex items-center justify-center gap-2 transition-all duration-200 cursor-pointer shadow-md\",\n isAdded\n ? \"bg-emerald-600 text-white shadow-emerald-500/25\"\n : \"bg-primary text-primary-foreground hover:bg-primary/90 shadow-primary/20\"\n )}\n >\n {isAdded ? (\n <>\n <Check className=\"w-4 h-4\" />\n <span>Added to Cart!</span>\n </>\n ) : (\n <>\n <ShoppingBag className=\"w-4 h-4\" />\n <span>Add to Cart</span>\n </>\n )}\n </motion.button>\n </div>\n </motion.div>\n )\n}\n\n// ============================================\n// 2. CheckoutSummary — High-Conversion Order Summary\n// ============================================\n\nexport interface CheckoutSummaryProps extends React.HTMLAttributes<HTMLDivElement> {\n subtotal: string | number\n shipping?: string\n tax?: string | number\n total: string | number\n onCheckout?: () => void\n}\n\nexport function CheckoutSummary({\n subtotal = \"299.98\",\n shipping = \"Free\",\n tax = \"24.00\",\n total = \"323.98\",\n onCheckout,\n className,\n ...props\n}: CheckoutSummaryProps) {\n const [promoCode, setPromoCode] = React.useState(\"\")\n const [applied, setApplied] = React.useState(false)\n\n const handleApply = (e: React.FormEvent) => {\n e.preventDefault()\n if (promoCode.trim()) {\n setApplied(true)\n }\n }\n\n return (\n <div\n className={cn(\n \"rounded-3xl border border-border/80 bg-card/90 backdrop-blur-md p-6 w-full max-w-md shadow-2xl shadow-black/10 dark:shadow-black/40 space-y-5 text-card-foreground\",\n className\n )}\n {...props}\n >\n {/* Header */}\n <div className=\"flex items-center justify-between pb-3 border-b border-border/60\">\n <h3 className=\"font-bold text-base text-foreground tracking-tight\">Order Summary</h3>\n <span className=\"text-xs font-mono text-muted-foreground\">3 Items</span>\n </div>\n\n {/* Promo Code Input */}\n <form onSubmit={handleApply} className=\"flex gap-2\">\n <div className=\"relative flex-1\">\n <Tag className=\"w-3.5 h-3.5 absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground\" />\n <input\n type=\"text\"\n value={promoCode}\n onChange={(e) => {\n setPromoCode(e.target.value)\n setApplied(false)\n }}\n placeholder=\"Discount code or gift card\"\n className=\"w-full pl-8.5 pr-3 py-2 text-xs rounded-xl border border-border bg-background/60 text-foreground placeholder:text-muted-foreground outline-none focus:border-primary transition-colors\"\n />\n </div>\n <button\n type=\"submit\"\n disabled={!promoCode.trim() || applied}\n className=\"px-3.5 py-2 rounded-xl text-xs font-semibold bg-muted hover:bg-muted/80 text-foreground border border-border disabled:opacity-40 transition-colors cursor-pointer\"\n >\n {applied ? \"Applied\" : \"Apply\"}\n </button>\n </form>\n\n {/* Cost Breakdown */}\n <div className=\"space-y-2.5 text-xs text-muted-foreground\">\n <div className=\"flex justify-between items-center\">\n <span>Subtotal</span>\n <span className=\"font-mono font-medium text-foreground\">${subtotal}</span>\n </div>\n <div className=\"flex justify-between items-center\">\n <span>Express Delivery</span>\n <span className=\"font-semibold text-emerald-500 bg-emerald-500/10 px-2 py-0.5 rounded-full\">\n {shipping}\n </span>\n </div>\n <div className=\"flex justify-between items-center\">\n <span>Estimated Taxes (HST)</span>\n <span className=\"font-mono font-medium text-foreground\">${tax}</span>\n </div>\n\n {applied && (\n <div className=\"flex justify-between items-center text-emerald-500 font-medium\">\n <span>Promo Discount (10% OFF)</span>\n <span className=\"font-mono\">-$29.99</span>\n </div>\n )}\n </div>\n\n {/* Total Separator */}\n <div className=\"pt-3 border-t border-border flex items-baseline justify-between\">\n <div>\n <span className=\"font-bold text-sm text-foreground\">Total Due</span>\n <p className=\"text-[10px] text-muted-foreground\">Includes all regional sales taxes</p>\n </div>\n <span className=\"text-2xl font-extrabold text-foreground tracking-tight font-mono\">\n ${total}\n </span>\n </div>\n\n {/* Primary CTA Button */}\n <motion.button\n whileTap={{ scale: 0.98 }}\n onClick={onCheckout}\n className=\"w-full py-3.5 px-4 rounded-xl text-xs font-bold bg-primary text-primary-foreground hover:bg-primary/90 shadow-lg shadow-primary/25 flex items-center justify-center gap-2 cursor-pointer transition-all\"\n >\n <Lock className=\"w-3.5 h-3.5\" />\n <span>Complete Secure Checkout</span>\n </motion.button>\n\n {/* Security & Trust Row */}\n <div className=\"pt-2 flex items-center justify-center gap-4 text-[11px] text-muted-foreground select-none\">\n <div className=\"flex items-center gap-1\">\n <ShieldCheck className=\"w-3.5 h-3.5 text-primary\" />\n <span>256-Bit SSL</span>\n </div>\n <span>•</span>\n <span>Money-Back Guarantee</span>\n <span>•</span>\n <span>Apple Pay</span>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 3. SubscriptionCard — Modern SaaS Tier Card\n// ============================================\n\nexport interface SubscriptionCardProps extends React.HTMLAttributes<HTMLDivElement> {\n plan: string\n price: string | number\n billingPeriod?: string\n nextBilling?: string\n status?: \"active\" | \"cancelled\" | \"past_due\"\n features?: string[]\n isPopular?: boolean\n onUpgrade?: () => void\n}\n\nexport function SubscriptionCard({\n plan = \"Pro Developer\",\n price = \"49\",\n billingPeriod = \"month\",\n nextBilling = \"Oct 01, 2026\",\n status = \"active\",\n features = [\n \"Unlimited Team Workspaces\",\n \"Real-time Cloud Analytics\",\n \"Priority 24/7 Support\",\n \"Dedicated CDN Edge Endpoints\",\n \"Custom Domain Verification\"\n ],\n isPopular = true,\n onUpgrade,\n className,\n ...props\n}: SubscriptionCardProps) {\n return (\n <div\n className={cn(\n \"rounded-3xl border border-border/80 bg-card/90 backdrop-blur-md p-6 w-full max-w-sm shadow-xl relative overflow-hidden text-card-foreground space-y-6\",\n isPopular && \"border-primary/50 shadow-primary/10\",\n className\n )}\n {...props}\n >\n {/* Decorative Glow */}\n {isPopular && (\n <div className=\"absolute -top-12 -right-12 w-32 h-32 bg-primary/20 rounded-full blur-3xl pointer-events-none\" />\n )}\n\n {/* Header */}\n <div className=\"flex items-start justify-between\">\n <div>\n <span className=\"text-xs font-bold uppercase tracking-wider text-primary\">\n {plan}\n </span>\n <div className=\"flex items-baseline gap-1 mt-1\">\n <span className=\"text-3xl font-extrabold text-foreground tracking-tight font-mono\">\n ${price}\n </span>\n <span className=\"text-xs text-muted-foreground font-mono\">/{billingPeriod}</span>\n </div>\n </div>\n\n {isPopular && (\n <span className=\"px-2.5 py-1 rounded-full bg-primary/10 border border-primary/30 text-primary text-[10px] font-bold uppercase tracking-wider\">\n POPULAR\n </span>\n )}\n </div>\n\n {/* Features List */}\n <div className=\"space-y-2.5 pt-2 border-t border-border/60\">\n <p className=\"text-[11px] font-bold text-muted-foreground uppercase tracking-wider\">\n Included with plan:\n </p>\n <ul className=\"space-y-2 text-xs\">\n {features.map((f, i) => (\n <li key={i} className=\"flex items-center gap-2.5 text-foreground/90\">\n <div className=\"w-4 h-4 rounded-full bg-emerald-500/10 border border-emerald-500/20 text-emerald-500 flex items-center justify-center shrink-0\">\n <Check className=\"w-2.5 h-2.5\" />\n </div>\n <span>{f}</span>\n </li>\n ))}\n </ul>\n </div>\n\n {/* CTA Button */}\n <motion.button\n whileTap={{ scale: 0.98 }}\n onClick={onUpgrade}\n className=\"w-full py-3 rounded-xl text-xs font-bold bg-primary text-primary-foreground hover:bg-primary/90 shadow-md shadow-primary/20 flex items-center justify-center gap-2 cursor-pointer transition-all\"\n >\n <span>Upgrade to {plan}</span>\n <ArrowRight className=\"w-3.5 h-3.5\" />\n </motion.button>\n </div>\n )\n}\n\n// ============================================\n// 4. CreditCardVisual — Holographic Luxury Card\n// ============================================\n\nexport interface CreditCardVisualProps extends React.HTMLAttributes<HTMLDivElement> {\n holder?: string\n number?: string\n expiry?: string\n type?: \"visa\" | \"mastercard\" | \"amex\"\n}\n\nexport function CreditCardVisual({\n holder = \"ALEXANDER VANCE\",\n number = \"•••• •••• •••• 8842\",\n expiry = \"09/29\",\n type = \"visa\",\n className,\n ...props\n}: CreditCardVisualProps) {\n return (\n <div\n className={cn(\n \"relative w-full max-w-sm aspect-[1.6/1] rounded-2xl bg-gradient-to-tr from-zinc-950 via-zinc-900 to-zinc-800 border border-white/10 p-6 text-white shadow-2xl overflow-hidden select-none flex flex-col justify-between\",\n className\n )}\n {...props}\n >\n {/* Gloss reflection overlay */}\n <div className=\"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,rgba(255,255,255,0.15),transparent_60%)] pointer-events-none\" />\n <div className=\"absolute -bottom-10 -left-10 w-36 h-36 bg-primary/20 rounded-full blur-2xl pointer-events-none\" />\n\n {/* Top Header with Chip and Contactless */}\n <div className=\"flex items-center justify-between z-10\">\n <div className=\"flex items-center gap-3\">\n {/* Gold EMV Chip */}\n <div className=\"w-10 h-7 rounded-md bg-gradient-to-br from-amber-300 via-amber-400 to-amber-600 border border-amber-200/50 shadow-xs relative overflow-hidden\">\n <div className=\"absolute inset-x-0 top-1/2 -translate-y-1/2 h-[1px] bg-amber-900/30\" />\n <div className=\"absolute inset-y-0 left-1/2 -translate-x-1/2 w-[1px] bg-amber-900/30\" />\n </div>\n\n {/* Contactless Wave */}\n <svg className=\"w-5 h-5 text-white/70 rotate-90\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M8.111 16.404a5.5 5.5 0 017.778 0M12 20h.01m-7.08-7.071c3.904-3.905 10.236-3.905 14.141 0M1.393 9.393c5.857-5.857 15.355-5.857 21.213 0\" />\n </svg>\n </div>\n\n {/* Brand */}\n <span className=\"font-mono text-sm font-extrabold tracking-widest uppercase opacity-80\">\n NEXORE BLACK\n </span>\n </div>\n\n {/* Middle Card Number */}\n <div className=\"z-10 tracking-[0.2em] font-mono text-lg text-white/95 font-medium shadow-xs\">\n {number}\n </div>\n\n {/* Bottom Cardholder & Expiry */}\n <div className=\"flex items-end justify-between z-10 text-[11px] font-mono\">\n <div>\n <p className=\"text-[9px] uppercase tracking-widest text-white/50\">CARDHOLDER</p>\n <p className=\"font-semibold tracking-wider uppercase text-white/90\">{holder}</p>\n </div>\n <div className=\"text-right\">\n <p className=\"text-[9px] uppercase tracking-widest text-white/50\">EXPIRES</p>\n <p className=\"font-semibold tracking-wider text-white/90\">{expiry}</p>\n </div>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 5. CartItem — Modern Cart Drawer List Item\n// ============================================\n\nexport interface CartItemProps extends React.HTMLAttributes<HTMLDivElement> {\n name: string\n price: string | number\n quantity?: number\n onQuantityChange?: (qty: number) => void\n onRemove?: () => void\n}\n\nexport function CartItem({\n name,\n price,\n quantity = 1,\n onQuantityChange,\n onRemove,\n className,\n ...props\n}: CartItemProps) {\n return (\n <div\n className={cn(\n \"flex items-center gap-4 py-3.5 px-4 rounded-2xl border border-border/80 bg-card/60 backdrop-blur-md shadow-xs text-card-foreground\",\n className\n )}\n {...props}\n >\n <div className=\"w-14 h-14 rounded-xl bg-muted/60 border border-border flex items-center justify-center text-primary shrink-0\">\n <ShoppingBag className=\"w-6 h-6\" />\n </div>\n\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"font-semibold text-sm truncate text-foreground\">{name}</h4>\n <p className=\"text-xs font-mono font-bold text-primary mt-0.5\">${price}</p>\n </div>\n\n <div className=\"flex items-center gap-1 shrink-0 bg-muted/40 p-1 rounded-xl border border-border/60\">\n <button\n type=\"button\"\n onClick={() => onQuantityChange?.(Math.max(1, quantity - 1))}\n className=\"w-6 h-6 rounded-lg bg-card hover:bg-muted flex items-center justify-center text-xs transition-colors cursor-pointer border border-border/40\"\n >\n <Minus className=\"w-3 h-3\" />\n </button>\n <span className=\"w-6 text-center text-xs font-mono font-bold\">{quantity}</span>\n <button\n type=\"button\"\n onClick={() => onQuantityChange?.(quantity + 1)}\n className=\"w-6 h-6 rounded-lg bg-card hover:bg-muted flex items-center justify-center text-xs transition-colors cursor-pointer border border-border/40\"\n >\n <Plus className=\"w-3 h-3\" />\n </button>\n </div>\n\n {onRemove && (\n <button\n type=\"button\"\n onClick={onRemove}\n className=\"p-2 rounded-xl text-muted-foreground hover:text-destructive hover:bg-destructive/10 transition-colors shrink-0 cursor-pointer\"\n title=\"Remove item\"\n >\n <Trash2 className=\"w-4 h-4\" />\n </button>\n )}\n </div>\n )\n}\n\n// ============================================\n// 6. InvoiceCard — Digital Invoice Summary\n// ============================================\n\nexport interface InvoiceCardProps extends React.HTMLAttributes<HTMLDivElement> {\n invoiceNumber: string\n date: string\n status?: \"paid\" | \"pending\" | \"overdue\"\n amount: string | number\n client: string\n onDownload?: () => void\n}\n\nexport function InvoiceCard({\n invoiceNumber = \"INV-2026-001\",\n date = \"Oct 24, 2026\",\n status = \"paid\",\n amount = \"1,250.00\",\n client = \"Acme Global Corp\",\n onDownload,\n className,\n ...props\n}: InvoiceCardProps) {\n const statusStyles = {\n paid: \"bg-emerald-500/10 text-emerald-500 border-emerald-500/20\",\n pending: \"bg-amber-500/10 text-amber-500 border-amber-500/20\",\n overdue: \"bg-red-500/10 text-red-500 border-red-500/20\",\n }\n\n return (\n <div\n className={cn(\n \"rounded-2xl border border-border/80 bg-card p-5 hover:shadow-lg transition-all duration-200 w-full max-w-sm text-card-foreground space-y-4\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-start justify-between\">\n <div>\n <span className=\"font-mono text-xs font-bold text-foreground\">{invoiceNumber}</span>\n <p className=\"text-[11px] text-muted-foreground\">{date}</p>\n </div>\n <span\n className={cn(\n \"text-[10px] font-bold px-2.5 py-0.5 rounded-full uppercase tracking-wider border\",\n statusStyles[status] || statusStyles.paid\n )}\n >\n {status}\n </span>\n </div>\n\n <div className=\"flex items-center justify-between pt-3 border-t border-border/60\">\n <div>\n <p className=\"text-[10px] text-muted-foreground uppercase tracking-wider\">BILLED TO</p>\n <p className=\"text-xs font-semibold text-foreground\">{client}</p>\n </div>\n <div className=\"text-right\">\n <p className=\"text-[10px] text-muted-foreground uppercase tracking-wider\">AMOUNT</p>\n <p className=\"text-lg font-bold font-mono text-foreground\">${amount}</p>\n </div>\n </div>\n\n <button\n type=\"button\"\n onClick={onDownload || (() => alert(\"Downloading PDF...\"))}\n className=\"w-full py-2 rounded-xl border border-border bg-muted/40 hover:bg-muted text-xs font-semibold text-foreground flex items-center justify-center gap-1.5 transition-colors cursor-pointer\"\n >\n <Download className=\"w-3.5 h-3.5 text-primary\" />\n <span>Download Receipt (PDF)</span>\n </button>\n </div>\n )\n}\n\n// ============================================\n// 7. CouponCard — Promotional Voucher\n// ============================================\n\nexport interface CouponCardProps extends React.HTMLAttributes<HTMLDivElement> {\n code: string\n discount: string\n description?: string\n validUntil?: string\n}\n\nexport function CouponCard({\n code = \"NEXORE50\",\n discount = \"50% OFF\",\n description = \"Valid across all annual developer packages.\",\n validUntil = \"Dec 31, 2026\",\n className,\n ...props\n}: CouponCardProps) {\n const [copied, setCopied] = React.useState(false)\n\n const handleCopy = () => {\n navigator.clipboard?.writeText(code)\n setCopied(true)\n setTimeout(() => setCopied(false), 2000)\n }\n\n return (\n <div\n className={cn(\n \"rounded-2xl border-2 border-dashed border-primary/30 bg-primary/5 p-5 w-full max-w-sm relative overflow-hidden text-card-foreground space-y-3\",\n className\n )}\n {...props}\n >\n <div className=\"flex items-baseline justify-between\">\n <span className=\"text-2xl font-black text-primary font-mono\">{discount}</span>\n {validUntil && <span className=\"text-[10px] font-mono text-muted-foreground\">Exp: {validUntil}</span>}\n </div>\n\n {description && <p className=\"text-xs text-muted-foreground leading-relaxed\">{description}</p>}\n\n <div className=\"flex items-center gap-2 pt-1\">\n <div className=\"flex-1 px-3 py-2 rounded-xl bg-background border border-border font-mono text-xs text-center font-bold tracking-widest text-foreground\">\n {code}\n </div>\n <button\n type=\"button\"\n onClick={handleCopy}\n className=\"px-4 py-2 rounded-xl bg-primary text-primary-foreground text-xs font-semibold hover:bg-primary/90 transition-colors cursor-pointer flex items-center gap-1.5 shrink-0\"\n >\n {copied ? <Check className=\"w-3.5 h-3.5\" /> : <Copy className=\"w-3.5 h-3.5\" />}\n <span>{copied ? \"Copied!\" : \"Copy\"}</span>\n </button>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 8. PricingSlider — Interactive Tiers Slider\n// ============================================\n\nexport interface PricingSliderProps extends React.HTMLAttributes<HTMLDivElement> {\n tiers?: { name: string; price: string | number; features: string[] }[]\n}\n\nexport function PricingSlider({\n tiers = [\n { name: \"Starter\", price: \"19\", features: [\"Up to 5 Projects\", \"Community Support\", \"Basic Analytics\"] },\n { name: \"Professional\", price: \"49\", features: [\"Unlimited Projects\", \"Priority Support\", \"Advanced Analytics\", \"Custom Domain\"] },\n { name: \"Enterprise\", price: \"99\", features: [\"Unlimited Everything\", \"24/7 Phone Support\", \"Custom SLAs\", \"Dedicated Engineer\"] },\n ],\n className,\n ...props\n}: PricingSliderProps) {\n const [selected, setSelected] = React.useState(1)\n const current = tiers[selected] || tiers[0]\n\n return (\n <div\n className={cn(\n \"rounded-3xl border border-border/80 bg-card p-6 w-full max-w-md shadow-xl text-card-foreground space-y-5\",\n className\n )}\n {...props}\n >\n <div className=\"text-center space-y-1\">\n <p className=\"text-xs font-bold uppercase tracking-wider text-primary\">{current.name} Plan</p>\n <div className=\"flex items-baseline justify-center gap-1\">\n <span className=\"text-4xl font-extrabold font-mono text-foreground\">${current.price}</span>\n <span className=\"text-xs text-muted-foreground font-mono\">/month</span>\n </div>\n </div>\n\n <input\n type=\"range\"\n min={0}\n max={tiers.length - 1}\n value={selected}\n onChange={(e) => setSelected(Number(e.target.value))}\n className=\"w-full accent-primary cursor-pointer\"\n />\n\n <div className=\"space-y-2 pt-2 border-t border-border/60\">\n <p className=\"text-[11px] font-bold text-muted-foreground uppercase\">Key Features:</p>\n <ul className=\"space-y-1.5 text-xs\">\n {current.features.map((f, idx) => (\n <li key={idx} className=\"flex items-center gap-2 text-foreground/90\">\n <Check className=\"w-3.5 h-3.5 text-emerald-500 shrink-0\" />\n <span>{f}</span>\n </li>\n ))}\n </ul>\n </div>\n </div>\n )\n}\n\n// ============================================\n// 9. ReviewStars & TrustBadge\n// ============================================\n\nexport function ReviewStars({ rating = 4.8, size = 18, reviewCount }: { rating?: number; size?: number; reviewCount?: number }) {\n return (\n <div className=\"inline-flex items-center gap-1.5\">\n <div className=\"flex items-center text-amber-400\">\n {[1, 2, 3, 4, 5].map((s) => (\n <Star key={s} style={{ width: size, height: size }} className={cn(s <= Math.round(rating) ? \"fill-amber-400 text-amber-400\" : \"text-muted/40\")} />\n ))}\n </div>\n <span className=\"text-xs font-bold text-foreground\">{rating}</span>\n {reviewCount && <span className=\"text-xs text-muted-foreground\">({reviewCount})</span>}\n </div>\n )\n}\n\nexport function TrustBadge({\n icon,\n title = \"Guaranteed Checkout\",\n subtitle = \"256-Bit SSL Protection\",\n className,\n}: {\n icon?: React.ReactNode\n title?: string\n subtitle?: string\n className?: string\n}) {\n return (\n <div className={cn(\"inline-flex items-center gap-3 p-3 rounded-2xl border border-border/80 bg-card/60 backdrop-blur-md shadow-xs\", className)}>\n <div className=\"w-10 h-10 rounded-xl bg-primary/10 text-primary flex items-center justify-center shrink-0\">\n {icon || <ShieldCheck className=\"w-5 h-5\" />}\n </div>\n <div>\n <h5 className=\"text-xs font-bold text-foreground leading-tight\">{title}</h5>\n <p className=\"text-[11px] text-muted-foreground\">{subtitle}</p>\n </div>\n </div>\n )\n}\n","\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { motion, useMotionValue, useTransform, useSpring, HTMLMotionProps, AnimatePresence } from \"framer-motion\"\r\nimport { cn } from \"../utils/cn\"\r\n\r\n// ============================================\r\n// 1. GlowSpotlightCard — Cursor-tracking glowing card\r\n// ============================================\r\nexport interface GlowSpotlightCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n /**\n * Описание для glowColor\n * @default undefined\n */\n glowColor?: string\r\n /**\n * Описание для glowSize\n * @default undefined\n */\n glowSize?: number\r\n}\r\n\r\nexport const GlowSpotlightCard = React.forwardRef<HTMLDivElement, GlowSpotlightCardProps>(\r\n ({ children, className, glowColor = \"rgba(139, 92, 246, 0.15)\", glowSize = 300, ...props }, ref) => {\r\n const mouseX = useMotionValue(0)\r\n const mouseY = useMotionValue(0)\r\n\r\n const handleMouseMove = React.useCallback(\r\n ({ clientX, clientY, currentTarget }: React.MouseEvent) => {\r\n const { left, top } = currentTarget.getBoundingClientRect()\r\n mouseX.set(clientX - left)\r\n mouseY.set(clientY - top)\r\n },\r\n [mouseX, mouseY]\r\n )\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n onMouseMove={handleMouseMove}\r\n className={cn(\r\n \"relative overflow-hidden rounded-xl border border-border bg-card p-6 shadow-sm transition-shadow duration-300 hover:shadow-md\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <motion.div\r\n className=\"pointer-events-none absolute -inset-px rounded-xl opacity-0 transition-opacity duration-300 group-hover:opacity-100\"\r\n style={{\r\n background: `radial-gradient(${glowSize}px circle at var(--x, 0px) var(--y, 0px), ${glowColor}, transparent 80%)`,\r\n // Custom properties injected dynamically\r\n WebkitMaskImage: \"radial-gradient(circle, black, transparent)\",\r\n }}\r\n animate={{\r\n opacity: [0, 1],\r\n }}\r\n />\r\n {/* Fallback mouse tracker using CSS variables */}\r\n <div\r\n className=\"absolute inset-0 pointer-events-none opacity-0 group-hover:opacity-100 transition-opacity duration-500\"\r\n style={\r\n {\r\n background: `radial-gradient(${glowSize}px circle at var(--mouse-x, 0px) var(--mouse-y, 0px), ${glowColor}, transparent 80%)`,\r\n \"--mouse-x\": mouseX.get() + \"px\",\r\n \"--mouse-y\": mouseY.get() + \"px\",\r\n } as React.CSSProperties\r\n }\r\n />\r\n <div className=\"relative z-10\">{children}</div>\r\n </div>\r\n )\r\n }\r\n)\r\nGlowSpotlightCard.displayName = \"GlowSpotlightCard\"\r\n\r\n// ============================================\r\n// 2. WordFadeReveal — Word-by-word fade with spring\r\n// ============================================\r\nexport interface WordFadeRevealProps extends React.HTMLAttributes<HTMLHeadingElement> {\r\n /**\n * Описание для text\n * @default undefined\n */\n text: string\r\n /**\n * Описание для delay\n * @default undefined\n */\n delay?: number\r\n /**\n * Описание для delayMultiple\n * @default undefined\n */\n delayMultiple?: number\r\n /**\n * Описание для duration\n * @default undefined\n */\n duration?: number\r\n}\r\n\r\nexport function WordFadeReveal({\r\n text,\r\n className,\r\n delay = 0,\r\n delayMultiple = 0.05,\r\n duration = 0.5,\r\n ...props\r\n}: WordFadeRevealProps) {\r\n const words = text.split(\" \")\r\n\r\n return (\r\n <h3 className={cn(\"flex flex-wrap justify-center gap-x-1.5\", className)} {...props}>\r\n {words.map((word, i) => (\r\n <motion.span\r\n key={i}\r\n initial={{ opacity: 0, y: 15, filter: \"blur(4px)\" }}\r\n animate={{ opacity: 1, y: 0, filter: \"blur(0px)\" }}\r\n transition={{\r\n delay: delay + i * delayMultiple,\r\n duration,\r\n type: \"spring\",\r\n stiffness: 100,\r\n damping: 15,\r\n }}\r\n className=\"inline-block\"\r\n >\r\n {word}\r\n </motion.span>\r\n ))}\r\n </h3>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 3. AnimatedGridBackground — Tech grid with flashing cells\r\n// ============================================\r\nexport interface AnimatedGridBackgroundProps extends React.SVGProps<SVGSVGElement> {\r\n /**\n * Описание для width\n * @default undefined\n */\n width?: number\r\n /**\n * Описание для height\n * @default undefined\n */\n height?: number\r\n /**\n * Описание для strokeWidth\n * @default undefined\n */\n strokeWidth?: number\r\n /**\n * Описание для strokeColor\n * @default undefined\n */\n strokeColor?: string\r\n /**\n * Описание для cellFlashColor\n * @default undefined\n */\n cellFlashColor?: string\r\n /**\n * Описание для flashInterval\n * @default undefined\n */\n flashInterval?: number\r\n /**\n * Описание для maxFlashes\n * @default undefined\n */\n maxFlashes?: number\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function AnimatedGridBackground({\r\n width = 40,\r\n height = 40,\r\n strokeWidth = 1,\r\n strokeColor = \"rgba(255, 255, 255, 0.05)\",\r\n cellFlashColor = \"rgba(139, 92, 246, 0.1)\",\r\n flashInterval = 1000,\r\n maxFlashes = 4,\r\n className,\r\n ...props\r\n}: AnimatedGridBackgroundProps) {\r\n const id = React.useId()\r\n const [flashingCells, setFlashingCells] = React.useState<{ x: number; y: number; id: number }[]>([])\r\n\r\n React.useEffect(() => {\r\n const timer = setInterval(() => {\r\n setFlashingCells((prev) => {\r\n // Randomly add new flash cells and limit maximum flashing cells\r\n const newFlash = {\r\n x: Math.floor(Math.random() * 20) * width,\r\n y: Math.floor(Math.random() * 20) * height,\r\n id: Math.random(),\r\n }\r\n const filtered = prev.filter((_, idx) => idx > prev.length - maxFlashes)\r\n return [...filtered, newFlash]\r\n })\r\n }, flashInterval)\r\n\r\n return () => clearInterval(timer)\r\n }, [width, height, flashInterval, maxFlashes])\r\n\r\n return (\r\n <svg\r\n className={cn(\"absolute inset-0 h-full w-full pointer-events-none select-none\", className)}\r\n {...props}\r\n >\r\n <defs>\r\n <pattern\r\n id={id}\r\n width={width}\r\n height={height}\r\n patternUnits=\"userSpaceOnUse\"\r\n x=\"-1\"\r\n y=\"-1\"\r\n >\r\n <path\r\n d={`M ${width} 0 L 0 0 0 ${height}`}\r\n fill=\"none\"\r\n stroke={strokeColor}\r\n strokeWidth={strokeWidth}\r\n />\r\n </pattern>\r\n </defs>\r\n <rect width=\"100%\" height=\"100%\" fill={`url(#${id})`} />\r\n <AnimatePresence>\r\n {flashingCells.map((cell) => (\r\n <motion.rect\r\n key={cell.id}\r\n initial={{ opacity: 0 }}\r\n animate={{ opacity: [0, 1, 0] }}\r\n exit={{ opacity: 0 }}\r\n transition={{ duration: 2, ease: \"easeInOut\" }}\r\n x={cell.x}\r\n y={cell.y}\r\n width={width - strokeWidth}\r\n height={height - strokeWidth}\r\n fill={cellFlashColor}\r\n />\r\n ))}\r\n </AnimatePresence>\r\n </svg>\r\n )\r\n}\r\n\r\n// ============================================\r\n// 4. BentoGrid — Premium Dashboard Layout\r\n// ============================================\r\nexport interface BentoGridProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\n * Описание для children\n * @default undefined\n */\n children: React.ReactNode\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function BentoGrid({ children, className, ...props }: BentoGridProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"grid grid-cols-1 md:grid-cols-3 gap-4 auto-rows-[180px] w-full\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n )\r\n}\r\n\r\nexport interface BentoCardProps extends React.HTMLAttributes<HTMLDivElement> {\r\n /**\n * Описание для title\n * @default undefined\n */\n title: string\r\n /**\n * Описание для description\n * @default undefined\n */\n description: string\r\n /**\n * Описание для header\n * @default undefined\n */\n header?: React.ReactNode\r\n /**\n * Описание для icon\n * @default undefined\n */\n icon?: React.ReactNode\r\n /**\n * Описание для children\n * @default undefined\n */\n children?: React.ReactNode\r\n /**\n * Описание для span\n * @default undefined\n */\n span?: string // Tailwind grid span class: \"md:col-span-2 md:row-span-2\" etc\r\n /**\n * Описание для delay\n * @default undefined\n */\n delay?: number\r\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\r\n}\r\n\r\nexport function BentoCard({\r\n title,\r\n description,\r\n header,\r\n icon,\r\n children,\r\n span = \"md:col-span-1\",\r\n className,\r\n delay = 0,\r\n ...props\r\n}: BentoCardProps) {\r\n const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...motionSafeProps } = props\r\n\r\n return (\r\n <motion.div\r\n initial={{ opacity: 0, y: 15 }}\r\n animate={{ opacity: 1, y: 0 }}\r\n transition={{ delay, duration: 0.4, type: \"spring\", stiffness: 100, damping: 15 }}\r\n className={cn(\r\n \"group relative flex flex-col justify-between overflow-hidden rounded-xl border border-border bg-card hover:bg-muted/10 p-6 transition-all duration-300 hover:shadow-lg hover:border-primary/20\",\r\n span,\r\n className\r\n )}\r\n {...(motionSafeProps as HTMLMotionProps<\"div\">)}\r\n >\r\n {/* Glow highlight */}\r\n <div className=\"pointer-events-none absolute -inset-px rounded-xl opacity-0 transition-opacity duration-300 group-hover:opacity-100 bg-gradient-to-tr from-primary/5 via-transparent to-transparent\" />\r\n\r\n {header && <div className=\"w-full overflow-hidden rounded-lg mb-4\">{header}</div>}\r\n\r\n <div className=\"flex flex-col gap-1.5 mt-auto\">\r\n <div className=\"flex items-center gap-2\">\r\n {icon && <div className=\"text-primary transition-transform duration-300 group-hover:scale-110\">{icon}</div>}\r\n <h3 className=\"font-semibold tracking-tight text-card-foreground text-sm md:text-base\">\r\n {title}\r\n </h3>\r\n </div>\r\n <p className=\"text-xs md:text-sm text-muted-foreground max-w-[220px]\">\r\n {description}\r\n </p>\r\n </div>\r\n\r\n {children && <div className=\"mt-4\">{children}</div>}\r\n </motion.div>\r\n )\r\n}\r\n","'use client';\n\nimport * as React from 'react';\nimport { motion, useReducedMotion } from 'framer-motion';\nimport { Sparkles } from 'lucide-react';\nimport { cn } from '../utils/cn';\n\nexport type AuroraFXColor = 'violet' | 'cyan' | 'emerald' | 'rose' | 'amber' | string;\nexport type AuroraFXGlow = 'none' | 'subtle' | 'medium' | 'strong';\nexport type AuroraFXRadius = 'sm' | 'md' | 'lg' | 'xl' | 'full';\n\nexport interface AuroraColorOption {\n name: string;\n hex: string;\n}\n\nexport const defaultAuroraColors: AuroraColorOption[] = [\n { name: 'Violet', hex: '#8b5cf6' },\n { name: 'Cyan', hex: '#06b6d4' },\n { name: 'Emerald', hex: '#10b981' },\n { name: 'Rose', hex: '#f43f5e' },\n { name: 'Amber', hex: '#f59e0b' },\n];\n\nconst colorPresetMap: Record<string, string> = {\n violet: '#8b5cf6',\n cyan: '#06b6d4',\n emerald: '#10b981',\n rose: '#f43f5e',\n amber: '#f59e0b',\n};\n\nconst radiusMap: Record<AuroraFXRadius, { outer: string; inner: string }> = {\n sm: { outer: 'rounded-lg', inner: 'rounded-[calc(0.5rem-1px)]' },\n md: { outer: 'rounded-xl', inner: 'rounded-[calc(0.75rem-1px)]' },\n lg: { outer: 'rounded-2xl', inner: 'rounded-[calc(1rem-1px)]' },\n xl: { outer: 'rounded-3xl', inner: 'rounded-[calc(1.5rem-1.5px)]' },\n full: { outer: 'rounded-full', inner: 'rounded-full' },\n};\n\nconst glowOpacityMap: Record<AuroraFXGlow, number> = {\n none: 0,\n subtle: 0.25,\n medium: 0.45,\n strong: 0.75,\n};\n\nexport interface AuroraBorderFXProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Color preset ('violet', 'cyan', 'emerald', 'rose', 'amber') or any valid CSS hex/rgb color */\n color?: AuroraFXColor;\n /** Ambient dynamic glow intensity */\n glow?: AuroraFXGlow;\n /** Corner radius preset */\n radius?: AuroraFXRadius;\n /** Badge text displayed at the top */\n badgeText?: string;\n /** Icon displayed next to badge text */\n badgeIcon?: React.ReactNode;\n /** Card title */\n title?: string;\n /** Card description */\n description?: string;\n /** Whether to show the interactive color switcher */\n showColorPicker?: boolean;\n /** Custom color options for the color switcher */\n colors?: AuroraColorOption[];\n /** Controlled active color */\n activeColor?: string;\n /** Callback fired when color changes in color picker */\n onColorChange?: (colorHex: string) => void;\n /** Preview slot inside card body */\n previewSlot?: React.ReactNode;\n /** Footer slot at the bottom of the card */\n footerSlot?: React.ReactNode;\n /** Custom children — replaces standard card body if provided */\n children?: React.ReactNode;\n}\n\n/**\n * AuroraBorderFX Component\n *\n * State-of-the-art interactive card with reactive Aurora glow,\n * dynamic gradient border tracking, ambient atmospheric blur,\n * and built-in interactive color switcher.\n */\nexport const AuroraBorderFX = React.forwardRef<HTMLDivElement, AuroraBorderFXProps>(\n (\n {\n color = 'violet',\n glow = 'medium',\n radius = 'lg',\n badgeText = 'Aurora Border FX',\n badgeIcon = <Sparkles className=\"w-3 h-3\" />,\n title = 'Reactive Aurora Borders',\n description = 'Smooth multi-color conic gradients that dynamically track and react with zero JavaScript canvas lag.',\n showColorPicker = true,\n colors = defaultAuroraColors,\n activeColor: controlledColor,\n onColorChange,\n previewSlot,\n footerSlot,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const shouldReduceMotion = useReducedMotion();\n const resolvedInitialColor = colorPresetMap[color] || color || '#8b5cf6';\n const [internalColor, setInternalColor] = React.useState<string>(resolvedInitialColor);\n\n React.useEffect(() => {\n if (colorPresetMap[color]) {\n setInternalColor(colorPresetMap[color]);\n } else if (color) {\n setInternalColor(color);\n }\n }, [color]);\n\n const currentColor = controlledColor !== undefined ? controlledColor : internalColor;\n const radiusConfig = radiusMap[radius] || radiusMap.lg;\n const glowOpacity = glowOpacityMap[glow] ?? 0.45;\n\n const handleSelectColor = (hex: string) => {\n if (controlledColor === undefined) {\n setInternalColor(hex);\n }\n onColorChange?.(hex);\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'relative isolate p-5 sm:p-6 overflow-hidden flex flex-col justify-between group transition-all duration-300',\n 'border border-border/80 bg-card/60 backdrop-blur-xl shadow-xl',\n radiusConfig.outer,\n className\n )}\n {...props}\n >\n {/* Ambient Dynamic Background Glow */}\n {glow !== 'none' && (\n <div\n className=\"absolute -top-12 -right-12 w-48 h-48 rounded-full blur-[85px] pointer-events-none transition-colors duration-500 -z-10\"\n style={{\n backgroundColor: currentColor,\n opacity: glowOpacity,\n }}\n />\n )}\n\n {/* Ambient Secondary Counter-Glow for depth */}\n {glow !== 'none' && glow !== 'subtle' && (\n <div\n className=\"absolute -bottom-10 -left-10 w-40 h-40 rounded-full blur-[90px] pointer-events-none transition-colors duration-700 -z-10\"\n style={{\n backgroundColor: currentColor,\n opacity: glowOpacity * 0.4,\n }}\n />\n )}\n\n {/* Custom Children Mode */}\n {children ? (\n <div className=\"relative z-10 w-full h-full\">{children}</div>\n ) : (\n <div className=\"relative z-10 flex flex-col justify-between h-full space-y-5\">\n {/* Header: Badge & Color Switcher */}\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between gap-3\">\n {badgeText && (\n <div\n className=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-[11px] font-semibold border transition-all duration-300 shadow-xs\"\n style={{\n backgroundColor: `${currentColor}18`,\n borderColor: `${currentColor}40`,\n color: currentColor,\n }}\n >\n {badgeIcon}\n <span>{badgeText}</span>\n </div>\n )}\n\n {/* Color Switcher */}\n {showColorPicker && colors && colors.length > 0 && (\n <div className=\"flex items-center gap-1.5 bg-muted/60 dark:bg-muted/40 p-1 rounded-full border border-border/60 backdrop-blur-md\">\n {colors.map((c) => {\n const isActive = currentColor.toLowerCase() === c.hex.toLowerCase();\n return (\n <button\n key={c.name}\n type=\"button\"\n onClick={() => handleSelectColor(c.hex)}\n className={cn(\n 'w-3.5 h-3.5 rounded-full transition-all duration-200 cursor-pointer',\n isActive\n ? 'scale-125 ring-2 ring-foreground/40 shadow-xs'\n : 'hover:scale-110 opacity-70 hover:opacity-100'\n )}\n style={{ backgroundColor: c.hex }}\n title={`Switch to ${c.name}`}\n aria-label={`Switch glow to ${c.name}`}\n />\n );\n })}\n </div>\n )}\n </div>\n\n {/* Title & Description */}\n <div>\n {title && (\n <h3 className=\"text-base sm:text-lg font-bold tracking-tight text-foreground\">\n {title}\n </h3>\n )}\n {description && (\n <p className=\"text-xs sm:text-sm text-muted-foreground leading-relaxed mt-1\">\n {description}\n </p>\n )}\n </div>\n </div>\n\n {/* Live Interactive Preview Box */}\n <div className=\"pt-2 flex items-center justify-center\">\n {previewSlot ? (\n previewSlot\n ) : (\n <div\n className={cn(\n 'relative p-[1.5px] overflow-hidden transition-all duration-300 w-full max-w-[280px]',\n radiusConfig.inner\n )}\n style={{\n background: `linear-gradient(135deg, ${currentColor}, transparent 60%, ${currentColor}90)`,\n }}\n >\n <div\n className={cn(\n 'bg-card/90 dark:bg-card/80 px-4 py-3 flex items-center justify-between backdrop-blur-md shadow-inner',\n radiusConfig.inner\n )}\n >\n <div className=\"flex items-center gap-2.5\">\n <div\n className=\"w-2.5 h-2.5 rounded-full animate-pulse shrink-0\"\n style={{ backgroundColor: currentColor }}\n />\n <span className=\"text-xs font-mono font-semibold text-foreground\">\n Interactive Aurora Pill\n </span>\n </div>\n <span\n className=\"text-[10px] font-mono px-2 py-0.5 rounded-md font-medium border\"\n style={{\n backgroundColor: `${currentColor}12`,\n borderColor: `${currentColor}30`,\n color: currentColor,\n }}\n >\n {currentColor.toUpperCase()}\n </span>\n </div>\n </div>\n )}\n </div>\n\n {/* Footer Slot */}\n {footerSlot && <div className=\"pt-2 border-t border-border/50\">{footerSlot}</div>}\n </div>\n )}\n </div>\n );\n }\n);\n\nAuroraBorderFX.displayName = 'AuroraBorderFX';\n","'use client';\n\nimport * as React from 'react';\nimport { motion, HTMLMotionProps } from 'framer-motion';\nimport { Sparkles } from 'lucide-react';\nimport { cn } from '../utils/cn';\n\nexport type MorphingShape = 'pill' | 'circle' | 'square' | 'squircle' | 'custom';\nexport type MorphingVariant = 'gradient' | 'aurora' | 'neon' | 'glass' | 'outline' | 'subtle';\nexport type MorphingColor = 'violet' | 'cyan' | 'emerald' | 'rose' | 'amber' | 'rainbow' | 'mono';\nexport type MorphingSize = 'sm' | 'md' | 'lg' | 'xl' | 'custom';\n\nexport interface MorphingGeometryProps extends Omit<HTMLMotionProps<'div'>, 'children'> {\n /** Shape geometry preset */\n shape?: MorphingShape;\n /** Explicit corner radius (in pixels or css string) when shape is custom or morphed */\n radius?: number | string;\n /** Visual surface variant style */\n variant?: MorphingVariant;\n /** Color theme palette */\n color?: MorphingColor;\n /** Standardized size preset */\n size?: MorphingSize;\n /** Custom width/height dimension in pixels if size is 'custom' */\n dimension?: number;\n /** Whether the geometry undergoes continuous slow rotation */\n spin?: boolean;\n /** Spin duration in seconds */\n spinDuration?: number;\n /** Whether clicking morphs the shape dynamically */\n interactive?: boolean;\n /** Ambient box-shadow glow intensity */\n glow?: boolean;\n /** Icon or graphic to display centered within the shape */\n icon?: React.ReactNode;\n /** Content rendered inside the morphing shape */\n children?: React.ReactNode;\n}\n\nconst sizeMap: Record<MorphingSize, string> = {\n sm: 'w-16 h-16 text-xs',\n md: 'w-24 h-24 text-sm',\n lg: 'w-32 h-32 text-base',\n xl: 'w-44 h-44 text-lg',\n custom: '',\n};\n\nconst shapeRadiusMap: Record<MorphingShape, string> = {\n pill: '9999px',\n circle: '50%',\n square: '0px',\n squircle: '28%',\n custom: '16px',\n};\n\nconst colorGradients: Record<MorphingColor, { bg: string; border: string; glow: string; text: string }> = {\n violet: {\n bg: 'from-violet-600 via-purple-600 to-indigo-700',\n border: 'border-violet-400/40',\n glow: 'rgba(139, 92, 246, 0.45)',\n text: 'text-white',\n },\n cyan: {\n bg: 'from-cyan-500 via-teal-500 to-blue-600',\n border: 'border-cyan-400/40',\n glow: 'rgba(6, 182, 212, 0.45)',\n text: 'text-white',\n },\n emerald: {\n bg: 'from-emerald-500 via-green-600 to-teal-700',\n border: 'border-emerald-400/40',\n glow: 'rgba(16, 185, 129, 0.45)',\n text: 'text-white',\n },\n rose: {\n bg: 'from-rose-500 via-pink-600 to-red-600',\n border: 'border-rose-400/40',\n glow: 'rgba(244, 63, 94, 0.45)',\n text: 'text-white',\n },\n amber: {\n bg: 'from-amber-500 via-orange-600 to-yellow-600',\n border: 'border-amber-400/40',\n glow: 'rgba(245, 158, 11, 0.45)',\n text: 'text-white',\n },\n rainbow: {\n bg: 'from-violet-500 via-pink-500 via-amber-400 to-cyan-400',\n border: 'border-white/30',\n glow: 'rgba(236, 72, 153, 0.45)',\n text: 'text-white',\n },\n mono: {\n bg: 'from-zinc-800 via-zinc-900 to-black dark:from-zinc-100 dark:via-zinc-200 dark:to-white',\n border: 'border-zinc-700 dark:border-zinc-300',\n glow: 'rgba(113, 113, 122, 0.3)',\n text: 'text-white dark:text-zinc-900',\n },\n};\n\n/**\n * MorphingGeometry Component\n *\n * An interactive geometric entity with fluid corner transitions, dynamic physics,\n * luminous glow, and continuous ambient rotational states.\n */\nexport const MorphingGeometry = React.forwardRef<HTMLDivElement, MorphingGeometryProps>(\n (\n {\n shape = 'squircle',\n radius,\n variant = 'gradient',\n color = 'violet',\n size = 'md',\n dimension,\n spin = false,\n spinDuration = 6,\n interactive = false,\n glow = true,\n icon,\n children,\n className,\n style,\n onClick,\n ...props\n },\n ref\n ) => {\n const [currentShape, setCurrentShape] = React.useState<MorphingShape>(shape);\n const [isHovered, setIsHovered] = React.useState(false);\n\n React.useEffect(() => {\n setCurrentShape(shape);\n }, [shape]);\n\n const handleInteractiveClick = (e: React.MouseEvent<HTMLDivElement>) => {\n if (interactive) {\n const shapesList: MorphingShape[] = ['square', 'squircle', 'circle', 'pill'];\n const nextIdx = (shapesList.indexOf(currentShape) + 1) % shapesList.length;\n setCurrentShape(shapesList[nextIdx]);\n }\n onClick?.(e);\n };\n\n const colorScheme = colorGradients[color] || colorGradients.violet;\n const computedRadius = radius !== undefined\n ? typeof radius === 'number' ? `${radius}px` : radius\n : shapeRadiusMap[currentShape];\n\n const customDimensionStyle: React.CSSProperties = size === 'custom' && dimension\n ? { width: `${dimension}px`, height: `${dimension}px` }\n : {};\n\n const glowStyle: React.CSSProperties = glow\n ? { boxShadow: `0 12px 36px -4px ${colorScheme.glow}` }\n : {};\n\n let variantClasses = '';\n if (variant === 'gradient') {\n variantClasses = `bg-gradient-to-tr ${colorScheme.bg} border ${colorScheme.border} ${colorScheme.text}`;\n } else if (variant === 'aurora') {\n variantClasses = `bg-gradient-to-tr ${colorScheme.bg} border-2 border-white/40 shadow-2xl ${colorScheme.text}`;\n } else if (variant === 'neon') {\n variantClasses = `bg-black/90 border-2 ${colorScheme.border} ${colorScheme.text}`;\n } else if (variant === 'glass') {\n variantClasses = `bg-white/10 dark:bg-zinc-900/40 backdrop-blur-xl border border-white/20 text-foreground`;\n } else if (variant === 'outline') {\n variantClasses = `bg-transparent border-2 ${colorScheme.border} ${colorScheme.text}`;\n } else if (variant === 'subtle') {\n variantClasses = `bg-muted/60 border border-border text-foreground`;\n }\n\n return (\n <motion.div\n ref={ref}\n animate={spin ? { rotate: [0, 90, 180, 270, 360] } : { rotate: 0 }}\n transition={{\n rotate: {\n duration: spinDuration,\n repeat: Infinity,\n ease: 'linear',\n },\n borderRadius: { duration: 0.4, ease: [0.16, 1, 0.3, 1] },\n }}\n whileHover={{ scale: 1.04 }}\n whileTap={{ scale: 0.96 }}\n onHoverStart={() => setIsHovered(true)}\n onHoverEnd={() => setIsHovered(false)}\n onClick={handleInteractiveClick}\n className={cn(\n 'relative flex items-center justify-center select-none overflow-hidden transition-all duration-300',\n sizeMap[size],\n variantClasses,\n interactive ? 'cursor-pointer' : '',\n className\n )}\n style={{\n borderRadius: computedRadius,\n ...glowStyle,\n ...customDimensionStyle,\n ...style,\n }}\n {...props}\n >\n {/* Specular ambient surface highlight */}\n <div className=\"absolute inset-0 bg-gradient-to-b from-white/25 via-transparent to-black/20 pointer-events-none\" />\n\n {/* Content / Icon Slot */}\n <div className=\"relative z-10 flex flex-col items-center justify-center p-2 text-center\">\n {icon || (children ? children : <Sparkles className=\"w-6 h-6 drop-shadow-md\" />)}\n </div>\n </motion.div>\n );\n }\n);\n\nMorphingGeometry.displayName = 'MorphingGeometry';\nexport default MorphingGeometry;\n","'use client';\n\nimport * as React from 'react';\nimport { Copy, Check, Terminal, Code2 } from 'lucide-react';\nimport { cn } from '../utils/cn';\n\nexport type CodeBlockTheme = 'dark' | 'aurora' | 'neon' | 'glass' | 'midnight';\n\nexport interface InteractiveCodeBlockProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onCopy'> {\n /** Source code snippet string to display */\n code: string;\n /** Filename or title displayed in the macOS titlebar */\n filename?: string;\n /** Programming language identifier */\n language?: string;\n /** Whether to show numeric line numbers */\n showLineNumbers?: boolean;\n /** Array of line numbers to highlight */\n highlightLines?: number[];\n /** Color theme styling */\n theme?: CodeBlockTheme;\n /** Whether to render the 1-click clipboard copy button */\n copyable?: boolean;\n /** Custom badge tag displayed in the header */\n badgeText?: string;\n /** Callback fired when code is copied */\n onCopy?: (code: string) => void;\n}\n\nconst themeStyles: Record<CodeBlockTheme, { container: string; header: string; text: string; border: string }> = {\n dark: {\n container: 'bg-zinc-950 text-zinc-100',\n header: 'bg-zinc-900/90 border-zinc-800',\n text: 'text-zinc-300',\n border: 'border-zinc-800/80',\n },\n aurora: {\n container: 'bg-zinc-950 text-zinc-100 shadow-[0_0_30px_rgba(139,92,246,0.15)]',\n header: 'bg-zinc-900/90 border-violet-500/30',\n text: 'text-zinc-200',\n border: 'border-violet-500/40',\n },\n neon: {\n container: 'bg-black text-cyan-200 shadow-[0_0_25px_rgba(6,182,212,0.2)]',\n header: 'bg-zinc-950 border-cyan-500/40',\n text: 'text-cyan-100',\n border: 'border-cyan-500/50',\n },\n glass: {\n container: 'bg-zinc-950/70 backdrop-blur-xl text-zinc-100',\n header: 'bg-white/5 border-white/10',\n text: 'text-zinc-200',\n border: 'border-white/15',\n },\n midnight: {\n container: 'bg-slate-950 text-slate-100',\n header: 'bg-slate-900 border-slate-800',\n text: 'text-slate-300',\n border: 'border-slate-800',\n },\n};\n\n/**\n * InteractiveCodeBlock Component\n *\n * A macOS-inspired code presentation card with instant 1-click copy,\n * syntax layout, line numbering, and vibrant theme styling.\n */\nexport const InteractiveCodeBlock = React.forwardRef<HTMLDivElement, InteractiveCodeBlockProps>(\n (\n {\n code,\n filename = 'Component.tsx',\n language = 'tsx',\n showLineNumbers = true,\n highlightLines = [],\n theme = 'dark',\n copyable = true,\n badgeText,\n onCopy,\n className,\n ...props\n },\n ref\n ) => {\n const [copied, setCopied] = React.useState(false);\n\n const handleCopy = async () => {\n try {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n onCopy?.(code);\n setTimeout(() => setCopied(false), 2000);\n } catch (err) {\n console.error('Failed to copy code', err);\n }\n };\n\n const lines = React.useMemo(() => code.trim().split('\\n'), [code]);\n const themeConfig = themeStyles[theme] || themeStyles.dark;\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-2xl border shadow-2xl overflow-hidden font-mono text-xs select-text transition-all duration-300',\n themeConfig.container,\n themeConfig.border,\n className\n )}\n {...props}\n >\n {/* macOS Window Titlebar */}\n <div\n className={cn(\n 'flex items-center justify-between px-4 py-2.5 border-b select-none',\n themeConfig.header\n )}\n >\n {/* Traffic light buttons */}\n <div className=\"flex items-center gap-2\">\n <div className=\"w-2.5 h-2.5 rounded-full bg-[#ff5f57] shadow-xs\" />\n <div className=\"w-2.5 h-2.5 rounded-full bg-[#febc2e] shadow-xs\" />\n <div className=\"w-2.5 h-2.5 rounded-full bg-[#28c840] shadow-xs\" />\n <span className=\"ml-2 font-medium opacity-75\">{filename}</span>\n </div>\n\n {/* Right actions: Badge + Copy */}\n <div className=\"flex items-center gap-2\">\n {badgeText && (\n <span className=\"text-[10px] px-2 py-0.5 rounded bg-white/10 text-zinc-300 font-sans font-medium\">\n {badgeText}\n </span>\n )}\n\n {copyable && (\n <button\n type=\"button\"\n onClick={handleCopy}\n aria-label=\"Copy code to clipboard\"\n className=\"inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md bg-white/10 hover:bg-white/15 text-zinc-300 hover:text-white transition-all cursor-pointer active:scale-95\"\n >\n {copied ? (\n <>\n <Check className=\"h-3 w-3 text-emerald-400\" />\n <span className=\"text-emerald-400 text-[11px] font-sans\">Copied!</span>\n </>\n ) : (\n <>\n <Copy className=\"h-3 w-3\" />\n <span className=\"text-[11px] font-sans\">Copy</span>\n </>\n )}\n </button>\n )}\n </div>\n </div>\n\n {/* Code Content Container */}\n <div className=\"p-4 overflow-x-auto\">\n <pre className={cn('leading-relaxed whitespace-pre font-mono text-xs', themeConfig.text)}>\n {lines.map((line, idx) => {\n const lineNum = idx + 1;\n const isHighlighted = highlightLines.includes(lineNum);\n\n return (\n <div\n key={idx}\n className={cn(\n 'flex items-center px-1 rounded transition-colors',\n isHighlighted ? 'bg-white/10 -mx-1 px-2' : ''\n )}\n >\n {showLineNumbers && (\n <span className=\"w-8 shrink-0 select-none text-zinc-600 text-[11px] text-right pr-3\">\n {lineNum}\n </span>\n )}\n <span className=\"flex-1\">{line || ' '}</span>\n </div>\n );\n })}\n </pre>\n </div>\n </div>\n );\n }\n);\n\nInteractiveCodeBlock.displayName = 'InteractiveCodeBlock';\nexport default InteractiveCodeBlock;\n","\"use client\"\n\nimport React, { useRef } from \"react\"\nimport { motion, useMotionValue, useSpring, useTransform } from \"framer-motion\"\nimport { cn } from \"../utils/cn\"\n\nexport interface DockProps {\n /**\n * Описание для items\n * @default undefined\n */\n items: {\n /**\n * Описание для icon\n * @default undefined\n */\n icon: React.ReactNode\n /**\n * Описание для label\n * @default undefined\n */\n label: string\n /**\n * Описание для onClick\n * @default undefined\n */\n onClick?: () => void\n }[]\n /**\n * Описание для className\n * @default undefined\n */\n className?: string\n /**\n * Описание для magnification\n * @default undefined\n */\n magnification?: number\n /**\n * Описание для distance\n * @default undefined\n */\n distance?: number\n}\n\nexport function Dock({\n items,\n className,\n magnification = 60,\n distance = 140,\n}: DockProps) {\n const mouseX = useMotionValue(Infinity);\n const numMagnification = Number(magnification) || 60;\n const numDistance = Number(distance) || 140;\n\n return (\n <motion.div\n onMouseMove={(e) => mouseX.set(e.clientX)}\n onMouseLeave={() => mouseX.set(Infinity)}\n className={cn(\n \"mx-auto flex h-14 items-end gap-3 rounded-2xl border border-border bg-background/80 px-4 pb-2 backdrop-blur-md\",\n className\n )}\n >\n {items.map((item, i) => (\n <DockIcon key={i} mouseX={mouseX} magnification={numMagnification} distance={numDistance} {...item} />\n ))}\n </motion.div>\n )\n}\n\nfunction DockIcon({\n mouseX,\n magnification,\n distance,\n icon,\n label,\n onClick,\n}: {\n mouseX: any\n magnification: number\n distance: number\n icon: React.ReactNode\n label: string\n onClick?: () => void\n}) {\n const ref = useRef<HTMLDivElement>(null)\n\n const numDistance = Number(distance) || 140\n const numMagnification = Number(magnification) || 60\n\n const distanceVal = useTransform(mouseX, (val: number) => {\n const bounds = ref.current?.getBoundingClientRect() ?? { x: 0, width: 0 }\n return val - bounds.x - bounds.width / 2\n })\n\n const widthSync = useTransform(\n distanceVal,\n [-numDistance, 0, numDistance],\n [40, numMagnification, 40]\n )\n\n const width = useSpring(widthSync, {\n mass: 0.1,\n stiffness: 150,\n damping: 12,\n })\n\n return (\n <motion.div\n ref={ref}\n style={{ width }}\n className=\"group relative flex aspect-square cursor-pointer items-center justify-center rounded-full bg-muted/80 hover:bg-accent transition-colors\"\n onClick={onClick}\n title={label}\n >\n <div className=\"flex items-center justify-center text-foreground\">\n {icon}\n </div>\n <span className=\"absolute -top-8 left-1/2 -translate-x-1/2 rounded-md bg-popover px-2 py-1 text-xs text-popover-foreground border border-border opacity-0 group-hover:opacity-100 transition-opacity whitespace-nowrap shadow-lg\">\n {label}\n </span>\n </motion.div>\n )\n}\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { motion } from \"framer-motion\";\nimport { Sun, Moon, Monitor } from \"lucide-react\";\nimport { cn } from \"../utils/cn\";\n\nexport interface DarkModeToggleProps {\n theme?: \"light\" | \"dark\" | \"system\";\n variant?: \"pill\" | \"icon\" | \"segmented\";\n size?: \"sm\" | \"md\" | \"lg\";\n showLabel?: boolean;\n onChange?: (theme: \"light\" | \"dark\" | \"system\") => void;\n className?: string;\n}\n\nexport function DarkModeToggle({\n theme: controlledTheme,\n variant = \"pill\",\n size = \"md\",\n showLabel = false,\n onChange,\n className,\n}: DarkModeToggleProps) {\n const [internalTheme, setInternalTheme] = useState<\"light\" | \"dark\" | \"system\">(\"dark\");\n\n const activeTheme = controlledTheme !== undefined ? controlledTheme : internalTheme;\n\n const handleToggle = (newTheme: \"light\" | \"dark\" | \"system\") => {\n if (controlledTheme === undefined) {\n setInternalTheme(newTheme);\n // Toggle class on documentElement for vanilla / non-provider environments\n if (typeof document !== \"undefined\") {\n if (newTheme === \"dark\") {\n document.documentElement.classList.add(\"dark\");\n } else if (newTheme === \"light\") {\n document.documentElement.classList.remove(\"dark\");\n }\n }\n }\n onChange?.(newTheme);\n };\n\n const isDark = activeTheme === \"dark\";\n\n if (variant === \"icon\") {\n return (\n <button\n type=\"button\"\n onClick={() => handleToggle(isDark ? \"light\" : \"dark\")}\n className={cn(\n \"relative flex items-center justify-center rounded-xl border border-border/80 bg-card hover:bg-muted/60 text-foreground transition-all duration-200 cursor-pointer shadow-xs\",\n size === \"sm\" ? \"w-8 h-8\" : size === \"lg\" ? \"w-11 h-11\" : \"w-9 h-9\",\n className\n )}\n title={`Switch to ${isDark ? \"light\" : \"dark\"} theme`}\n aria-label=\"Toggle theme\"\n >\n <motion.div\n key={isDark ? \"dark\" : \"light\"}\n initial={{ rotate: -90, scale: 0.8, opacity: 0 }}\n animate={{ rotate: 0, scale: 1, opacity: 1 }}\n exit={{ rotate: 90, scale: 0.8, opacity: 0 }}\n transition={{ duration: 0.2 }}\n >\n {isDark ? (\n <Moon className={size === \"sm\" ? \"w-3.5 h-3.5 text-primary\" : \"w-4.5 h-4.5 text-primary\"} />\n ) : (\n <Sun className={size === \"sm\" ? \"w-3.5 h-3.5 text-amber-500\" : \"w-4.5 h-4.5 text-amber-500\"} />\n )}\n </motion.div>\n </button>\n );\n }\n\n if (variant === \"segmented\") {\n return (\n <div\n className={cn(\n \"inline-flex items-center gap-1 p-1 rounded-xl border border-border/80 bg-muted/40 backdrop-blur-md shadow-xs\",\n className\n )}\n >\n {([\"light\", \"dark\", \"system\"] as const).map((t) => {\n const isActive = activeTheme === t;\n return (\n <button\n key={t}\n type=\"button\"\n onClick={() => handleToggle(t)}\n className={cn(\n \"inline-flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs font-medium capitalize transition-all duration-200 cursor-pointer\",\n isActive\n ? \"bg-card text-foreground shadow-xs border border-border/60 font-semibold\"\n : \"text-muted-foreground hover:text-foreground\"\n )}\n >\n {t === \"light\" && <Sun className=\"w-3.5 h-3.5 text-amber-500\" />}\n {t === \"dark\" && <Moon className=\"w-3.5 h-3.5 text-primary\" />}\n {t === \"system\" && <Monitor className=\"w-3.5 h-3.5 text-muted-foreground\" />}\n {showLabel && <span>{t}</span>}\n </button>\n );\n })}\n </div>\n );\n }\n\n // Default: Pill toggle\n const dimensions =\n size === \"sm\"\n ? { track: \"w-11 h-6\", thumb: \"w-4.5 h-4.5\", icon: \"w-2.5 h-2.5\" }\n : size === \"lg\"\n ? { track: \"w-16 h-9\", thumb: \"w-7 h-7\", icon: \"w-4 h-4\" }\n : { track: \"w-14 h-7.5\", thumb: \"w-5.5 h-5.5\", icon: \"w-3 h-3\" };\n\n return (\n <div className={cn(\"inline-flex items-center gap-3\", className)}>\n <button\n type=\"button\"\n onClick={() => handleToggle(isDark ? \"light\" : \"dark\")}\n className={cn(\n \"relative rounded-full transition-colors duration-300 border border-border/80 shadow-xs cursor-pointer p-0.75\",\n isDark ? \"bg-zinc-900 border-primary/40\" : \"bg-zinc-200 dark:bg-zinc-800\",\n dimensions.track\n )}\n title={`Switch to ${isDark ? \"light\" : \"dark\"} mode`}\n aria-label=\"Toggle dark mode\"\n >\n <motion.div\n animate={{\n x: isDark ? (size === \"sm\" ? 20 : size === \"lg\" ? 28 : 25) : 0,\n }}\n transition={{ type: \"spring\", stiffness: 500, damping: 30 }}\n className={cn(\n \"rounded-full bg-white shadow-md flex items-center justify-center transition-colors\",\n dimensions.thumb\n )}\n >\n {isDark ? (\n <Moon className={cn(dimensions.icon, \"text-zinc-900\")} />\n ) : (\n <Sun className={cn(dimensions.icon, \"text-amber-500\")} />\n )}\n </motion.div>\n </button>\n\n {showLabel && (\n <span className=\"text-xs font-semibold text-foreground/90 capitalize select-none\">\n {activeTheme} mode\n </span>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","names":["React","import_framer_motion","import_class_variance_authority","import_jsx_runtime","React","import_framer_motion","import_class_variance_authority","import_lucide_react","import_jsx_runtime","Icon","import_class_variance_authority","import_jsx_runtime","React","import_class_variance_authority","import_framer_motion","import_jsx_runtime","React","import_class_variance_authority","import_jsx_runtime","React","import_lucide_react","import_class_variance_authority","import_jsx_runtime","React","import_lucide_react","import_class_variance_authority","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_framer_motion","import_jsx_runtime","React","import_jsx_runtime","React","import_lucide_react","import_framer_motion","import_jsx_runtime","React","import_class_variance_authority","import_framer_motion","import_lucide_react","import_jsx_runtime","import_sonner","import_jsx_runtime","SonnerToaster","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_lucide_react","import_framer_motion","import_jsx_runtime","React","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_class_variance_authority","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","DialogPrimitive","import_framer_motion","import_lucide_react","import_jsx_runtime","handleKeyDown","React","import_lucide_react","import_jsx_runtime","Icon","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","sizeMap","id","ImageIcon","React","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","Icon","import_lucide_react","import_jsx_runtime","import_framer_motion","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","import_lucide_react","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","import_framer_motion","import_lucide_react","import_jsx_runtime","Icon","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","React","import_framer_motion","import_jsx_runtime","React","import_framer_motion","import_lucide_react","import_jsx_runtime","radiusMap","React","import_framer_motion","import_lucide_react","import_jsx_runtime","sizeMap","React","import_lucide_react","import_jsx_runtime","import_framer_motion","import_jsx_runtime","import_react","import_framer_motion","import_lucide_react","import_jsx_runtime"]}