@cupcodev/ui 1.0.0 → 1.0.2
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/README.md +10 -10
- package/dist/charts 2.cjs +500 -0
- package/dist/charts 2.js +454 -0
- package/dist/charts-KwYmX5He.d 2.cts +97 -0
- package/dist/charts-KwYmX5He.d 2.ts +97 -0
- package/dist/charts.cjs 2.map +1 -0
- package/dist/charts.d 2.cts +11 -0
- package/dist/charts.d 2.ts +11 -0
- package/dist/charts.js 2.map +1 -0
- package/dist/index 2.cjs +6568 -0
- package/dist/index 2.js +6207 -0
- package/dist/index.cjs 2.map +1 -0
- package/dist/index.d 2.cts +1019 -0
- package/dist/index.d 2.ts +1019 -0
- package/dist/index.js 2.map +1 -0
- package/package.json +2 -1
- package/styles/dock.css +130 -73
- package/styles/global.css +10 -9
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/cupcode/AccordionCupcode.tsx","../src/lib/utils.ts","../src/components/cupcode/AvatarCupcode.tsx","../src/components/cupcode/BackgroundRainbow.tsx","../src/components/cupcode/BackgroundStars.tsx","../src/components/cupcode/BadgeCupcode.tsx","../src/components/cupcode/CardGlass.tsx","../src/components/cupcode/ChipTag.tsx","../src/components/cupcode/Dock.tsx","../src/components/ui/tooltip.tsx","../src/components/cupcode/DockWrapper.tsx","../src/hooks/useTelescupAsset.ts","../src/utils/parseAssetId.ts","../src/components/cupcode/JellyButton.tsx","../src/components/cupcode/EmptyState.tsx","../src/components/cupcode/ErrorBoundary.tsx","../src/components/cupcode/EyebrowCupcode.tsx","../src/components/cupcode/HeroTitle.tsx","../src/components/cupcode/InputField.tsx","../src/components/cupcode/JellyButtonOriginal.tsx","../src/hooks/useResponsiveSize.ts","../src/components/cupcode/LoadingSpinner.tsx","../src/components/cupcode/LoadingScreen.tsx","../src/components/cupcode/ModalCupcode.tsx","../src/components/cupcode/NavbarCupcode.tsx","../src/components/cupcode/ParticleSystem.tsx","../src/components/cupcode/PricingCard.tsx","../src/components/cupcode/ProgressCupcode.tsx","../src/components/cupcode/SelectField.tsx","../src/components/cupcode/SwitchField.tsx","../src/components/cupcode/TabsCupcode.tsx","../src/components/cupcode/TelescupImage.tsx","../src/components/cupcode/TelescupVideo.tsx","../src/components/cupcode/TextareaField.tsx","../src/components/cupcode/ThemeToggle.tsx","../src/components/cupcode/TimelineCupcode.tsx","../src/components/cupcode/ToastCupcode.tsx","../src/components/cupcode/TooltipCupcode.tsx","../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/alert-dialog.tsx","../src/components/ui/button.tsx","../src/components/ui/aspect-ratio.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/calendar.tsx","../src/components/ui/card.tsx","../src/components/ui/carousel.tsx","../src/components/ui/chart.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/command.tsx","../src/components/ui/dialog.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/drawer.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/form.tsx","../src/components/ui/label.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/input.tsx","../src/components/ui/input-otp.tsx","../src/components/ui/menubar.tsx","../src/components/ui/navigation-menu.tsx","../src/components/ui/pagination.tsx","../src/components/ui/popover.tsx","../src/components/ui/progress.tsx","../src/components/ui/radio-group.tsx","../src/components/ui/resizable.tsx","../src/components/ui/scroll-area.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/sidebar.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/slider.tsx","../src/components/ui/sonner.tsx","../src/components/ui/switch.tsx","../src/components/ui/table.tsx","../src/components/ui/tabs.tsx","../src/components/ui/textarea.tsx","../src/components/ui/toast.tsx","../src/hooks/use-toast.ts","../src/components/ui/toaster.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/lib/navigation.tsx","../src/lib/dock.ts"],"sourcesContent":["import * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\nimport { cn } from '../../lib/utils';\n\nconst AccordionCupcode = 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(\"glass rounded-xl mb-3 overflow-hidden\", 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 p-4 font-semibold text-foreground\",\n \"transition-all hover:bg-cupcode-purple/5\",\n \"[&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-5 w-5 shrink-0 text-cupcode-purple transition-transform duration-300\" />\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(\"px-4 pb-4 pt-0 text-muted-foreground\", className)}>\n {children}\n </div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { AccordionCupcode, AccordionItem, AccordionTrigger, AccordionContent };\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\nimport { cn } from '../../lib/utils';\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n \"ring-2 ring-border ring-offset-2 ring-offset-background\",\n className\n )}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full object-cover\", className)}\n {...props}\n />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full\",\n \"bg-gradient-to-br from-cupcode-pink to-cupcode-purple\",\n \"text-white font-semibold\",\n className\n )}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport type StatusType = \"online\" | \"offline\" | \"away\" | \"busy\";\n\nconst statusStyles = {\n online: \"bg-success\",\n offline: \"bg-muted-foreground\",\n away: \"bg-warning\",\n busy: \"bg-destructive\",\n};\n\nexport interface AvatarWithStatusProps {\n src?: string;\n alt?: string;\n fallback: string;\n status?: StatusType;\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n className?: string;\n}\n\nconst sizeClasses = {\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-14 w-14\",\n xl: \"h-20 w-20\",\n};\n\nconst statusSizes = {\n sm: \"h-2 w-2\",\n md: \"h-2.5 w-2.5\",\n lg: \"h-3 w-3\",\n xl: \"h-4 w-4\",\n};\n\nexport const AvatarWithStatus: React.FC<AvatarWithStatusProps> = ({\n src,\n alt,\n fallback,\n status,\n size = \"md\",\n className,\n}) => {\n return (\n <div className=\"relative inline-block\">\n <Avatar className={cn(sizeClasses[size], className)}>\n <AvatarImage src={src} alt={alt} />\n <AvatarFallback>{fallback}</AvatarFallback>\n </Avatar>\n {status && (\n <span\n className={cn(\n \"absolute bottom-0 right-0 block rounded-full ring-2 ring-background\",\n statusStyles[status],\n statusSizes[size],\n status === \"online\" && \"animate-pulse\"\n )}\n />\n )}\n </div>\n );\n};\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","// BackgroundRainbow.tsx\nimport { useEffect, useRef } from \"react\";\n\nexport const BackgroundRainbow = () => {\n const interactiveRef = useRef<HTMLDivElement | null>(null);\n const rafRef = useRef<number | null>(null);\n const cur = useRef({ x: 0, y: 0 });\n const target = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n const easeFactor = 10;\n\n const move = () => {\n cur.current.x += (target.current.x - cur.current.x) / easeFactor;\n cur.current.y += (target.current.y - cur.current.y) / easeFactor;\n\n if (interactiveRef.current) {\n interactiveRef.current.style.transform = `translate(${Math.round(\n cur.current.x\n )}px, ${Math.round(cur.current.y)}px)`;\n }\n rafRef.current = requestAnimationFrame(move);\n };\n\n const onPointer = (e: PointerEvent) => {\n target.current.x = e.clientX;\n target.current.y = e.clientY;\n };\n\n window.addEventListener(\"pointermove\", onPointer, { passive: true });\n\n const prefersReduced = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (!prefersReduced.matches) {\n rafRef.current = requestAnimationFrame(move);\n }\n\n return () => {\n window.removeEventListener(\"pointermove\", onPointer);\n if (rafRef.current) cancelAnimationFrame(rafRef.current);\n };\n }, []);\n\n return (\n <div className=\"fixed inset-0 overflow-hidden pointer-events-none z-0 bg-white\">\n <svg className=\"hidden\" xmlns=\"http://www.w3.org/2000/svg\" aria-hidden focusable=\"false\">\n <defs>\n <filter id=\"cc-goo\">\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\" />\n <feColorMatrix\n in=\"blur\"\n mode=\"matrix\"\n values=\"1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 18 -8\"\n result=\"goo\"\n />\n <feBlend in=\"SourceGraphic\" in2=\"goo\" />\n </filter>\n </defs>\n </svg>\n\n <div className=\"absolute inset-0\" style={{ filter: \"url(#cc-goo) blur(36px)\" }}>\n <div className=\"cc-bubble cc-a cc-g1\" />\n <div className=\"cc-bubble cc-b cc-g2\" />\n <div className=\"cc-bubble cc-a cc-g3\" />\n <div ref={interactiveRef} className=\"cc-bubble cc-b cc-interactive\" />\n </div>\n\n <style>{`\n .cc-bubble {\n position: absolute;\n mix-blend-mode: hard-light;\n pointer-events: none;\n will-change: transform;\n }\n\n /* usa tuas globais #ed1e79 e #951ddb com ~0.4 de opacidade */\n .cc-a {\n background: radial-gradient(circle at center,\n color-mix(in srgb, var(--color-one) 40%, transparent) 0%,\n transparent 50%) no-repeat;\n }\n .cc-b {\n background: radial-gradient(circle at center,\n color-mix(in srgb, var(--color-two) 40%, transparent) 0%,\n transparent 50%) no-repeat;\n }\n\n .cc-g1, .cc-g2, .cc-g3 {\n width: 80vmin;\n height: 80vmin;\n top: calc(50% - 40vmin);\n left: calc(50% - 40vmin);\n }\n\n .cc-g1 {\n transform-origin: center center;\n animation: cc-bounceV 28s var(--ease-smooth, ease-in-out) infinite;\n opacity: 1;\n }\n .cc-g2 {\n transform-origin: calc(50% - 360px);\n animation: cc-circle 22s linear infinite reverse;\n opacity: 1;\n }\n .cc-g3 {\n top: calc(50% - 40vmin + 160px);\n left: calc(50% - 40vmin - 420px);\n transform-origin: calc(50% + 360px);\n animation: cc-circle 38s linear infinite;\n opacity: 0.9;\n }\n\n .cc-interactive {\n width: 100%;\n height: 100%;\n top: -50%;\n left: -50%;\n opacity: 0.7;\n transform: translate(0px, 0px); /* evita warning de transform null */\n }\n\n @keyframes cc-circle {\n 0% { transform: rotate(0deg); }\n 50% { transform: rotate(180deg); }\n 100% { transform: rotate(360deg); }\n }\n @keyframes cc-bounceV {\n 0% { transform: translateY(-50%); }\n 50% { transform: translateY(50%); }\n 100% { transform: translateY(-50%); }\n }\n\n @media (prefers-reduced-motion: reduce) {\n .cc-g1, .cc-g2, .cc-g3 { animation: none !important; }\n }\n `}</style>\n </div>\n );\n};\n","import React, { useEffect, useRef } from \"react\";\n\n// ==========================================\n// BackgroundStars (Optimized)\n// - Mantém todos os efeitos visuais do seu componente:\n// twinkle + spark + glowpump + flares cruzados + drift + cometas\n// - Troca 260 <div>s animadas por um ÚNICO canvas para estrelas (GPU friendly)\n// - Nebulosa também em canvas, pré-renderizada em offscreen e reaplicada com composição \"screen\"\n// - Sem listener de resize (usa o tamanho no mount, como você pediu)\n// - Prefere cálculos numéricos a filtros CSS custosos\n// ==========================================\n\n// ---------- Tipos ----------\ntype Star = {\n x: number; // em px\n y: number; // em px\n size: number; // em px (base do sprite)\n color: string; // hex/rgba para tinte\n isHighlight: boolean;\n // animação\n driftDx: number; // deslocamento de drift X (px)\n driftDy: number; // deslocamento de drift Y (px)\n driftDur: number; // ms\n scaleTo: number; // escala final do drift\n baseOpacity: number; // 0.85–1.0\n intensity: number; // 1.0–1.6\n twinkleDur: number; // ms (5000–35000)\n twinkleDelay: number; // ms\n sparkDur: number; // ms (600–1000)\n sparkDelay: number; // ms (0–1200) repetidos\n // rand phases\n phase: number; // fase aleatória para sin twinkle\n};\n\n// ---------- Utils ----------\nconst rand = (a: number, b: number) => a + Math.random() * (b - a);\nconst choice = <T,>(arr: T[]) => arr[(Math.random() * arr.length) | 0];\n\n// Conversor hex para rgb\nfunction hexToRgb(hex: string): { r: number; g: number; b: number } {\n const c = hex.replace('#', '');\n const n = parseInt(c.length === 3 ? c.split('').map(x => x + x).join('') : c, 16);\n return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 };\n}\n\n// ---------- Componente ----------\nexport function BackgroundStars() {\n const nebulaRef = useRef<HTMLCanvasElement | null>(null);\n const starsRef = useRef<HTMLCanvasElement | null>(null);\n\n useEffect(() => {\n // ===== Setup básico (sem resize listener) =====\n const w = window.innerWidth;\n const h = window.innerHeight;\n\n // Nebulosa (canvas de fundo)\n const nebulaCanvas = nebulaRef.current!;\n const nebulaCtx = nebulaCanvas.getContext('2d', { alpha: true })!;\n nebulaCanvas.width = w;\n nebulaCanvas.height = h;\n\n // Estrelas (canvas superior)\n const starsCanvas = starsRef.current!;\n const starsCtx = starsCanvas.getContext('2d', { alpha: true })!;\n starsCanvas.width = w;\n starsCanvas.height = h;\n\n // ===== Paleta =====\n const palette = [\n '#ffffff',\n '#d7c8ff',\n '#951ddb', // roxo Cupcode\n '#b146ea',\n '#ed1e79', // magenta Cupcode\n '#ff8ad1',\n ];\n\n // ===== Sprites pré-renderizados (offscreen) =====\n // Sprite de estrela (núcleo + halo) em offscreen para evitar gradientes por frame\n const starSprite = document.createElement('canvas');\n const SPR = 128; // resolução do sprite base\n starSprite.width = SPR;\n starSprite.height = SPR;\n const sprCtx = starSprite.getContext('2d')!;\n // núcleo + halo base\n const grad = sprCtx.createRadialGradient(SPR/2, SPR/2, 0, SPR/2, SPR/2, SPR/2);\n grad.addColorStop(0.0, 'rgba(255,255,255,0.5)');\n grad.addColorStop(0.28, 'rgba(255,255,255,0.4)');\n grad.addColorStop(0.36, 'rgba(255,2,230,0.35)');\n grad.addColorStop(0.78, 'rgba(255,255,255,0.0)');\n sprCtx.fillStyle = grad;\n sprCtx.beginPath();\n sprCtx.arc(SPR/2, SPR/2, SPR/2, 0, Math.PI * 2);\n sprCtx.fill();\n\n // Sprite do flare cruzado\n const flareSprite = document.createElement('canvas');\n flareSprite.width = SPR * 4; // mais comprido\n flareSprite.height = SPR;\n const flareCtx = flareSprite.getContext('2d')!;\n const g2 = flareCtx.createLinearGradient(0, SPR/2, flareSprite.width, SPR/2);\n g2.addColorStop(0.0, 'rgba(0,0,0,0)');\n g2.addColorStop(0.45, 'rgba(41,5,40,0.98)');\n g2.addColorStop(0.55, 'rgba(41,5,40,0.98)');\n g2.addColorStop(1.0, 'rgba(0,0,0,0)');\n flareCtx.fillStyle = g2;\n flareCtx.filter = 'blur(0.45px)';\n flareCtx.fillRect(0, (SPR-4)/2, flareSprite.width, 4);\n\n // ===== Nebulosa offscreen pré-computada =====\n const off = document.createElement('canvas');\n off.width = w;\n off.height = h;\n const offCtx = off.getContext('2d')!;\n // Fundo radial escuro\n const bg = offCtx.createRadialGradient(w/2, h/2, 0, w/2, h/2, Math.max(w,h)/2);\n bg.addColorStop(0, '#0c0d1d');\n bg.addColorStop(1, '#000000');\n offCtx.fillStyle = bg;\n offCtx.fillRect(0, 0, w, h);\n\n type Cloud = { x: number; y: number; r: number; color: string; pts: {x:number;y:number}[]; angle: number; speed: number; };\n const colors = [\n 'rgba(65,105,225,0.10)',\n 'rgba(138,43,226,0.10)',\n 'rgba(255,20,147,0.10)',\n 'rgba(75,0,130,0.10)',\n 'rgba(147,112,219,0.10)',\n 'rgba(218,112,214,0.10)',\n ];\n\n function genCloud(): Cloud {\n const r = rand(150, 450);\n const n = 12;\n const step = (Math.PI * 2) / n;\n const pts = [] as {x:number;y:number}[];\n for (let i = 0; i <= n; i++) {\n const a = i * step;\n const dist = rand(0.5, 1.0);\n pts.push({ x: Math.cos(a) * r * dist, y: Math.sin(a) * r * dist });\n }\n return {\n x: Math.random() * w,\n y: Math.random() * h,\n r,\n color: choice(colors),\n pts,\n angle: 0,\n speed: (Math.random() - 0.5) * 0.001,\n };\n }\n const clouds: Cloud[] = Array.from({ length: 8 }, genCloud);\n\n // Render da nebulosa por frame: leve (apenas rotação + fill com \"screen\")\n function drawNebula(t: number) {\n nebulaCtx.clearRect(0, 0, w, h);\n // pinta o fundo radial\n nebulaCtx.drawImage(off, 0, 0);\n nebulaCtx.globalCompositeOperation = 'screen';\n // desenha clouds\n for (const c of clouds) {\n c.angle += c.speed;\n nebulaCtx.save();\n nebulaCtx.translate(c.x, c.y);\n nebulaCtx.rotate(c.angle);\n // shape\n nebulaCtx.beginPath();\n nebulaCtx.moveTo(c.pts[0].x, c.pts[0].y);\n for (let i = 1; i < c.pts.length; i++) nebulaCtx.lineTo(c.pts[i].x, c.pts[i].y);\n nebulaCtx.closePath();\n const g = nebulaCtx.createRadialGradient(0, 0, 0, 0, 0, c.r);\n g.addColorStop(0, c.color);\n g.addColorStop(1, 'rgba(0,0,0,0)');\n nebulaCtx.fillStyle = g;\n nebulaCtx.fill();\n nebulaCtx.restore();\n }\n nebulaCtx.globalCompositeOperation = 'source-over';\n }\n\n // ===== Estrelas =====\n const QUANTITY = 260; // mantém seu volume\n\n const stars: Star[] = Array.from({ length: QUANTITY }).map(() => {\n // buckets: tiny (25%), normal (72%), highlight (3%)\n const r = Math.random();\n let size: number; let isHighlight = false;\n if (r < 0.25) size = rand(0.35, 0.95) * (w * 0.001); // escala com largura\n else if (r < 0.97) size = rand(0.6, 1.8) * (w * 0.001);\n else { size = rand(1.8, 3.6) * (w * 0.001); isHighlight = true; }\n\n const twMs = rand(5000, 35000);\n return {\n x: Math.random() * w,\n y: Math.random() * h,\n size: Math.max(1, size),\n color: choice(palette),\n isHighlight,\n driftDx: rand(-0.006, 0.006) * w, // ~ -0.6..0.6vw aproximado em px\n driftDy: rand(-0.006, 0.006) * h,\n driftDur: rand(50000, 90000),\n scaleTo: rand(0.9, 1.12),\n baseOpacity: rand(0.85, 1.0),\n intensity: rand(1.0, 1.6),\n twinkleDur: twMs,\n twinkleDelay: rand(0, 25000),\n sparkDur: rand(600, 1000),\n sparkDelay: rand(0, 1200),\n phase: Math.random() * Math.PI * 2,\n } as Star;\n });\n\n // Para pintar com tonalidade, convertemos a cor em multiplicador\n function tintMultiplier(hex: string) {\n const { r, g, b } = hexToRgb(hex);\n return [r / 255, g / 255, b / 255];\n }\n\n // Cometas\n type Comet = {\n x: number; y: number; angle: number; len: number; life: number; t0: number; dur: number;\n };\n let comets: Comet[] = [];\n\n function spawnComet() {\n const angle = Math.random() * Math.PI * 2;\n const len = rand(80, 160);\n const dur = rand(1400, 2200);\n const x = Math.random() * w;\n const y = Math.random() * h;\n comets.push({ x, y, angle, len, life: 0, t0: performance.now(), dur });\n }\n\n let lastComet = performance.now();\n\n // ===== Loop de animação =====\n let raf = 0;\n function draw(t: number) {\n // Nebulosa (bem leve)\n drawNebula(t);\n\n // Estrelas\n starsCtx.clearRect(0, 0, w, h);\n starsCtx.globalCompositeOperation = 'screen'; // blend luminoso\n\n for (const s of stars) {\n // Drift progress (0..1)\n const driftP = Math.min(1, ((t % s.driftDur) / s.driftDur));\n const sx = s.x + s.driftDx * driftP;\n const sy = s.y + s.driftDy * driftP;\n const sc = 1 + (s.scaleTo - 1) * driftP;\n\n // Twinkle: sinus com delay + baseOpacity\n const twLerp = (Math.sin(((t + s.twinkleDelay) / s.twinkleDur) * Math.PI * 2 + s.phase) + 1) * 0.5; // 0..1\n const twPeak = 0.6 + 0.4 * twLerp; // 0.6..1.0\n\n // Spark: pequenos picos curtos e frequentes\n const sparkCycle = ((t + s.sparkDelay) % s.sparkDur) / s.sparkDur; // 0..1\n const sparkBoost = sparkCycle < 0.15 ? (sparkCycle / 0.15) : (sparkCycle < 0.45 ? 1 - (sparkCycle - 0.15) / 0.30 : 0); // pico triangular\n const sparkScale = 1 + 0.28 * sparkBoost;\n\n // Glow breathing (glowpump)\n const glow = 0.38 + 0.20 * (0.5 + 0.5 * Math.sin(t * 0.002 + s.phase));\n\n const opacity = s.baseOpacity * twPeak;\n const k = s.intensity * (0.8 + 0.4 * sparkBoost);\n const size = s.size * sc * sparkScale;\n\n // Desenho do sprite com tinte\n const [tr, tg, tb] = tintMultiplier(s.color);\n starsCtx.save();\n starsCtx.globalAlpha = opacity;\n starsCtx.translate(sx, sy);\n starsCtx.scale(size / SPR, size / SPR);\n starsCtx.drawImage(starSprite, -SPR/2, -SPR/2);\n\n // Aplica tinte multiplicando (simples e barato)\n starsCtx.globalCompositeOperation = 'multiply';\n starsCtx.fillStyle = `rgba(${(tr*255)|0}, ${(tg*255)|0}, ${(tb*255)|0}, ${0.75})`;\n starsCtx.fillRect(-SPR/2, -SPR/2, SPR, SPR);\n\n // Volta para screen e aplica halos externos (imitando box-shadow escalado)\n starsCtx.globalCompositeOperation = 'screen';\n const halo1 = size * 4.2 * k;\n const halo2 = size * 7.2 * k;\n const halo3 = size * 10.8 * k;\n drawHalo(starsCtx, 0, 0, halo1, 'rgba(251,88,235,0.65)');\n drawHalo(starsCtx, 0, 0, halo2, 'rgba(237,30,121,0.58)');\n drawHalo(starsCtx, 0, 0, halo3, 'rgba(149,29,219,0.52)');\n\n // Glowpump (drop-shadow simulado com halos pequenos)\n const gp = size * (1.8 + glow);\n drawHalo(starsCtx, 0, 0, gp, 'rgba(233,12,211,0.28)');\n\n // Flares cruzados (só destaque)\n if (s.isHighlight) {\n starsCtx.globalAlpha = opacity * (0.35 + 0.65 * sparkBoost);\n starsCtx.rotate(0);\n starsCtx.drawImage(flareSprite, -2*SPR, -SPR/2, 4*SPR, SPR);\n starsCtx.rotate(Math.PI / 2);\n starsCtx.drawImage(flareSprite, -2*SPR, -SPR/2, 4*SPR, SPR);\n }\n\n starsCtx.restore();\n }\n\n // Cometas ocasionais\n if (t - lastComet > rand(3200, 6800)) {\n spawnComet();\n lastComet = t;\n }\n drawComets(starsCtx, comets, t);\n\n starsCtx.globalCompositeOperation = 'source-over';\n raf = requestAnimationFrame(draw);\n }\n\n function drawHalo(ctx: CanvasRenderingContext2D, x: number, y: number, r: number, color: string) {\n if (r <= 0.5) return;\n const g = ctx.createRadialGradient(x, y, 0, x, y, r);\n g.addColorStop(0, color);\n g.addColorStop(1, 'rgba(0,0,0,0)');\n ctx.fillStyle = g;\n ctx.beginPath();\n ctx.arc(x, y, r, 0, Math.PI * 2);\n ctx.fill();\n }\n\n function drawComets(ctx: CanvasRenderingContext2D, list: any[], t: number) {\n for (let i = list.length - 1; i >= 0; i--) {\n const c = list[i] as { x:number;y:number;angle:number;len:number;life:number;t0:number;dur:number };\n const p = (t - c.t0) / c.dur;\n if (p >= 1) { list.splice(i, 1); continue; }\n const ease = p < 0.5 ? (p*2) : (1 - (p-0.5)*2);\n const dx = Math.cos(c.angle) * c.len * 7 * p;\n const dy = Math.sin(c.angle) * c.len * 7 * p;\n const x = c.x + dx;\n const y = c.y + dy;\n\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(c.angle);\n ctx.globalAlpha = 0.2 + 0.8 * ease;\n // núcleo\n drawHalo(ctx, 0, 0, 0.85, 'rgba(255,255,255,1)');\n drawHalo(ctx, 0, 0, 8, 'rgba(237,30,121,0.75)');\n drawHalo(ctx, 0, 0, 14, 'rgba(149,29,219,0.6)');\n // cauda\n const tailLen = c.len;\n const grd = ctx.createLinearGradient(0, 0, -tailLen, 0);\n grd.addColorStop(0.0, 'rgba(255,255,255,0.95)');\n grd.addColorStop(0.4, 'rgba(237,30,121,0.75)');\n grd.addColorStop(0.75, 'rgba(149,29,219,0.55)');\n grd.addColorStop(1.0, 'rgba(0,0,0,0)');\n ctx.fillStyle = grd;\n ctx.fillRect(-tailLen, -1, tailLen, 2);\n // brilho\n const shine = ctx.createLinearGradient(0, 0, 20, 0);\n shine.addColorStop(0, 'rgba(0,0,0,0)');\n shine.addColorStop(0.5, 'rgba(255,255,255,0.95)');\n shine.addColorStop(1, 'rgba(0,0,0,0)');\n ctx.globalAlpha = 0.6 * ease;\n ctx.fillStyle = shine;\n ctx.fillRect(0, -1, 20, 2);\n ctx.restore();\n }\n }\n\n raf = requestAnimationFrame(draw);\n return () => cancelAnimationFrame(raf);\n }, []);\n\n return (\n <>\n {/* Canvas da Nebulosa (fundo) */}\n <canvas ref={nebulaRef} className=\"fixed inset-0 z-0 pointer-events-none hidden dark:block\" />\n {/* Canvas único das estrelas + cometas */}\n <canvas ref={starsRef} className=\"fixed inset-0 z-10 pointer-events-none hidden dark:block\" />\n {/* Acessibilidade: respeito ao prefers-reduced-motion via CSS (opcional) */}\n <style>{`\n @media (prefers-reduced-motion: reduce) {\n canvas { display: none !important; }\n }\n `}</style>\n </>\n );\n}\n\nexport default BackgroundStars;\n","import { cn } from '../../lib/utils';\nimport { forwardRef } from \"react\";\n\ninterface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"error\" | \"info\" | \"outline\";\n size?: \"sm\" | \"md\" | \"lg\";\n dot?: boolean;\n}\n\nexport const Badge = forwardRef<HTMLDivElement, BadgeProps>(\n ({ variant = \"primary\", size = \"md\", dot = false, className, children, ...props }, ref) => {\n const baseClasses = cn(\n \"inline-flex items-center gap-1 font-ui font-semibold transition-all\",\n \"rounded-pill\"\n );\n\n const sizeClasses = {\n sm: \"text-xs px-2 py-0.5\",\n md: \"text-sm px-3 py-1\",\n lg: \"text-base px-4 py-1.5\",\n };\n\n const variantClasses = {\n primary: \"bg-cupcode-purple text-white\",\n secondary: \"bg-cupcode-pink text-white\",\n success: \"bg-success text-success-foreground\",\n warning: \"bg-warning text-warning-foreground\",\n error: \"bg-destructive text-destructive-foreground\",\n info: \"bg-info text-info-foreground\",\n outline: \"border-2 border-cupcode-purple text-cupcode-purple bg-transparent\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(baseClasses, sizeClasses[size], variantClasses[variant], className)}\n {...props}\n >\n {dot && (\n <span className=\"w-2 h-2 rounded-full bg-current animate-pulse\" />\n )}\n {children}\n </div>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n","import { cn } from '../../lib/utils';\nimport { HTMLAttributes, forwardRef } from \"react\";\n\ninterface CardGlassProps extends HTMLAttributes<HTMLDivElement> {\n variant?: \"glass\" | \"glass-subtle\" | \"glass-strong\" | \"solid\";\n elevation?: 0 | 1 | 2 | 3 | 4 | 5;\n children: React.ReactNode;\n}\n\nexport const CardGlass = forwardRef<HTMLDivElement, CardGlassProps>(\n ({ variant = \"glass\", elevation = 2, className, children, ...props }, ref) => {\n const variantClasses = {\n glass: \"glass\",\n \"glass-subtle\": \"glass-subtle\",\n \"glass-strong\": \"glass-strong\",\n solid: \"bg-card border border-border\",\n };\n \n return (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl p-6 transition-all duration-300\",\n variantClasses[variant],\n `elevation-${elevation}`,\n \"hover:scale-[1.02]\",\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nCardGlass.displayName = \"CardGlass\";\n","import * as React from \"react\";\nimport { X } from \"lucide-react\";\nimport { cn } from '../../lib/utils';\n\nexport type ChipVariant = \"default\" | \"primary\" | \"secondary\" | \"outline\";\n\nexport interface ChipTagProps {\n label: string;\n variant?: ChipVariant;\n onRemove?: () => void;\n leftIcon?: React.ReactNode;\n className?: string;\n}\n\nconst variantStyles = {\n default: \"bg-muted text-cupcode-ink border-border\",\n primary: \"bg-gradient-to-r from-cupcode-pink to-cupcode-purple text-white border-transparent\",\n secondary: \"bg-cupcode-purple/10 text-cupcode-purple border-cupcode-purple/20\",\n outline: \"bg-transparent text-cupcode-ink border-cupcode-purple\",\n};\n\nexport const ChipTag: React.FC<ChipTagProps> = ({\n label,\n variant = \"default\",\n onRemove,\n leftIcon,\n className,\n}) => {\n return (\n <span\n className={cn(\n \"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs font-semibold\",\n \"border transition-all duration-200\",\n \"hover:scale-105\",\n variantStyles[variant],\n className\n )}\n >\n {leftIcon && <span className=\"shrink-0\">{leftIcon}</span>}\n <span>{label}</span>\n {onRemove && (\n <button\n onClick={onRemove}\n className=\"shrink-0 ml-0.5 rounded-full p-0.5 hover:bg-foreground/10 dark:hover:bg-foreground/20 transition-colors\"\n aria-label=\"Remove\"\n >\n <X className=\"h-3 w-3\" />\n </button>\n )}\n </span>\n );\n};\n\nexport interface TagGroupProps {\n tags: Array<{ id: string; label: string }>;\n variant?: ChipVariant;\n onRemove?: (id: string) => void;\n className?: string;\n}\n\nexport const TagGroup: React.FC<TagGroupProps> = ({\n tags,\n variant = \"default\",\n onRemove,\n className,\n}) => {\n return (\n <div className={cn(\"flex flex-wrap gap-2\", className)}>\n {tags.map((tag) => (\n <ChipTag\n key={tag.id}\n label={tag.label}\n variant={variant}\n onRemove={onRemove ? () => onRemove(tag.id) : undefined}\n />\n ))}\n </div>\n );\n};\n","import { cn } from '../../lib/utils';\nimport { useState, useRef, useEffect, type ReactNode } from \"react\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../ui/tooltip\";\n\ninterface DockItem {\n id: string;\n label: string;\n icon: ReactNode;\n onClick?: () => void;\n}\n\ninterface DockProps {\n items: DockItem[];\n className?: string;\n}\n\nexport const Dock = ({ items, className }: DockProps) => {\n const [activeIndex, setActiveIndex] = useState(0);\n const [sliderStyle, setSliderStyle] = useState({ left: 0, width: 0 });\n const itemsRef = useRef<(HTMLLIElement | null)[]>([]);\n \n const OVERSHOOT = 5;\n \n useEffect(() => {\n const activeItem = itemsRef.current[activeIndex];\n if (!activeItem) return;\n \n const containerRect = activeItem.parentElement?.getBoundingClientRect();\n const itemRect = activeItem.getBoundingClientRect();\n \n if (!containerRect) return;\n \n const relativeLeft = itemRect.left - containerRect.left;\n const targetLeft = Math.max(0, Math.min(relativeLeft, containerRect.width - itemRect.width));\n \n // Animate with overshoot then settle\n setSliderStyle({ \n left: targetLeft + OVERSHOOT, \n width: itemRect.width \n });\n \n setTimeout(() => {\n setSliderStyle({ \n left: targetLeft, \n width: itemRect.width \n });\n }, 150);\n }, [activeIndex]);\n \n return (\n <div className={cn(\"relative\", className)}>\n {/* SVG Filter for liquid displacement */}\n <svg className=\"absolute w-0 h-0\">\n <defs>\n <filter id=\"lg-dist\">\n <feTurbulence \n type=\"fractalNoise\" \n baseFrequency=\"0.015\" \n numOctaves=\"3\" \n result=\"noise\"\n />\n <feDisplacementMap \n in=\"SourceGraphic\" \n in2=\"noise\" \n scale=\"8\" \n xChannelSelector=\"R\" \n yChannelSelector=\"G\"\n />\n </filter>\n </defs>\n </svg>\n \n <TooltipProvider delayDuration={0}>\n <nav className=\"relative\">\n <ul className=\"relative flex items-center gap-2 px-4 py-3 rounded-2xl glass elevation-3\">\n {/* Animated slider */}\n <li\n className=\"absolute h-12 rounded-xl cc-gradient-galaxy transition-all duration-300 ease-out pointer-events-none\"\n style={{\n left: `${sliderStyle.left}px`,\n width: `${sliderStyle.width}px`,\n filter: 'url(#lg-dist)',\n }}\n />\n \n {items.map((item, index) => (\n <li\n key={item.id}\n ref={(el) => (itemsRef.current[index] = el)}\n className=\"relative z-10\"\n >\n <Tooltip>\n <TooltipTrigger asChild>\n <button\n onClick={() => {\n setActiveIndex(index);\n item.onClick?.();\n }}\n className={cn(\n \"flex items-center justify-center w-12 h-12 rounded-xl\",\n \"transition-all duration-200\",\n \"hover:scale-110 active:scale-95\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\",\n activeIndex === index ? \"text-white\" : \"text-foreground\"\n )}\n >\n {typeof item.icon === \"string\" ? (\n <span className=\"text-2xl leading-none\">{item.icon}</span>\n ) : (\n item.icon\n )}\n </button>\n </TooltipTrigger>\n <TooltipContent \n side=\"top\"\n className=\"glass-strong elevation-2 border-0\"\n >\n <p className=\"text-sm font-medium\">{item.label}</p>\n </TooltipContent>\n </Tooltip>\n </li>\n ))}\n </ul>\n </nav>\n </TooltipProvider>\n </div>\n );\n};\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\n\nimport { cn } from '../../lib/utils';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst Tooltip = 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.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md 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));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n","'use client'\n\nimport React, { useEffect, useState, useRef } from 'react'\nimport { buildTelescupImageURL } from '../../hooks/useTelescupAsset'\nimport { parseAssetId } from '../../utils/parseAssetId'\n\n// Tipos\nexport type DockButton = {\n type: 'link' | 'popup'\n label: string\n href?: string\n popupId?: string\n}\n\nexport type DockCard = {\n title: string\n description?: string\n iconUrl?: string\n buttons?: DockButton[]\n}\n\nexport type DockCategory = {\n id: string\n title: string\n slug: string\n order: number\n tooltip?: string\n href?: string\n bgImageUrl?: string\n cards: DockCard[]\n}\n\ntype Props = {\n categories: DockCategory[]\n}\n\nconst DockWrapper: React.FC<Props> = ({ categories }) => {\n const rootRef = useRef<HTMLDivElement | null>(null)\n const timeoutsRef = useRef<number[]>([])\n const listenersRef = useRef<{ target: EventTarget; type: string; fn: any }[]>([])\n\n useEffect(() => {\n const root = rootRef.current\n if (!root) return\n\n const $ = (sel: string) => root.querySelector(sel) as HTMLElement | null\n const $$ = (sel: string) => Array.from(root.querySelectorAll(sel)) as HTMLElement[]\n\n const tabbar = $('.tabbar')\n const dock = $('.dock')\n const listMenuShow = $('.list-menu-mob-show')\n const tabbarUl = root.querySelector('.tabbar ul') as HTMLElement | null\n const dockItems = $$('.tab-style1 li')\n\n if (!tabbar || !dock || !listMenuShow || !tabbarUl || dockItems.length === 0) return\n\n // Tooltip\n const tip = document.createElement('div')\n tip.id = 'dock-tip'\n Object.assign(tip.style, {\n position: 'fixed',\n zIndex: '10000',\n top: '0',\n left: '0',\n transform: 'translate(-50%, -100%)',\n padding: '6px 10px',\n borderRadius: '6px',\n background: 'rgba(0,0,0,0.8)',\n color: '#fff',\n fontWeight: '600',\n fontSize: '12px',\n lineHeight: '1',\n pointerEvents: 'none',\n opacity: '0',\n transition: 'opacity 120ms ease',\n whiteSpace: 'nowrap',\n } as CSSStyleDeclaration)\n\n const content = document.createElement('span')\n content.id = 'dock-tip-content'\n Object.assign(content.style, {\n display: 'inline-block',\n margin: '0',\n padding: '0',\n } as CSSStyleDeclaration)\n\n const arrow = document.createElement('div')\n arrow.id = 'dock-tip-arrow'\n Object.assign(arrow.style, {\n position: 'absolute',\n width: '14px',\n height: '8px',\n left: '50%',\n transform: 'translateX(-50%)',\n background: 'rgba(0,0,0,0.8)',\n pointerEvents: 'none',\n } as CSSStyleDeclaration)\n\n tip.appendChild(content)\n tip.appendChild(arrow)\n document.body.appendChild(tip)\n\n let activeEl: HTMLElement | null = null\n const showTip = (el: HTMLElement) => {\n const txt = el.getAttribute('data-tip') || ''\n if (!txt) return\n const ct = tip.querySelector('#dock-tip-content') as HTMLElement | null\n if (ct) ct.textContent = txt\n tip.style.opacity = '1'\n activeEl = el\n }\n const hideTip = () => {\n tip.style.opacity = '0'\n activeEl = null\n }\n const _tipOver = (e: MouseEvent) => {\n const t = e.target as HTMLElement\n const el = t.closest('[data-tip]') as HTMLElement | null\n if (!el) return\n showTip(el)\n }\n const _tipMove = (_e: MouseEvent) => {\n if (!activeEl) return\n const rect = activeEl.getBoundingClientRect()\n const tipRect = tip.getBoundingClientRect()\n const pad = 8\n let x = rect.left + rect.width / 2\n let y = rect.top - 8\n let placedBelow = false\n if (x - tipRect.width / 2 < pad) x = pad + tipRect.width / 2\n if (x + tipRect.width / 2 > window.innerWidth - pad)\n x = window.innerWidth - pad - tipRect.width / 2\n if (y < pad) {\n y = rect.bottom + 8\n placedBelow = true\n }\n tip.style.left = `${x}px`\n tip.style.top = `${y}px`\n\n if (placedBelow) {\n arrow.style.top = '-8px'\n arrow.style.bottom = ''\n ;(arrow.style as any).clipPath = 'polygon(50% 0, 100% 100%, 0 100%)'\n } else {\n arrow.style.top = ''\n arrow.style.bottom = '-8px'\n ;(arrow.style as any).clipPath = 'polygon(0 0, 100% 0, 50% 100%)'\n }\n }\n const _tipOut = () => hideTip()\n const _tipOnScroll = () => hideTip()\n\n tabbarUl.addEventListener('mouseover', _tipOver)\n tabbarUl.addEventListener('mousemove', _tipMove)\n tabbarUl.addEventListener('mouseout', _tipOut)\n window.addEventListener('scroll', _tipOnScroll, { passive: true })\n\n let _sliderT1: number | null = null\n let _sliderT2: number | null = null\n\n function addTimeout(cb: () => void, ms: number) {\n const id = window.setTimeout(cb, ms)\n timeoutsRef.current.push(id)\n return id\n }\n function clearAllTimeouts() {\n timeoutsRef.current.forEach((id) => clearTimeout(id))\n timeoutsRef.current = []\n }\n function on<K extends string>(target: Document | Window | HTMLElement, type: K, fn: any) {\n target.addEventListener(type as any, fn as any)\n listenersRef.current.push({ target, type, fn })\n }\n function cleanupListeners() {\n listenersRef.current.forEach(({ target, type, fn }) => {\n target.removeEventListener(type as any, fn as any)\n })\n listenersRef.current = []\n }\n\n function _pxVar(el: HTMLElement, name: string) {\n const v = getComputedStyle(el).getPropertyValue(name)\n const n = parseFloat(String(v).replace('px', '').trim())\n return Number.isFinite(n) ? n : 0\n }\n function _setSliderVars({\n left,\n width,\n height,\n top,\n ease,\n dur,\n scale,\n }: {\n left?: number\n width?: number\n height?: number\n top?: number\n ease?: string\n dur?: string\n scale?: number\n }) {\n if (!tabbarUl) return\n if (left != null) tabbarUl.style.setProperty('--slider-left', `${left}px`)\n if (width != null) tabbarUl.style.setProperty('--slider-width', `${width}px`)\n if (height != null) tabbarUl.style.setProperty('--slider-height', `${height}px`)\n if (top != null) tabbarUl.style.setProperty('--slider-top', `${top}px`)\n if (ease) tabbarUl.style.setProperty('--slider-ease', ease)\n if (dur) tabbarUl.style.setProperty('--slider-duration', dur)\n if (scale != null) tabbarUl.style.setProperty('--slider-scale', String(scale))\n }\n function _computeTarget(li: HTMLElement) {\n const ulRect = tabbarUl!.getBoundingClientRect()\n const liRect = li.getBoundingClientRect()\n const targetLeftRaw = liRect.left - ulRect.left\n const maxLeft = Math.max(0, ulRect.width - liRect.width)\n const targetLeft = Math.max(0, Math.min(targetLeftRaw, maxLeft))\n const top = Math.max((ulRect.height - liRect.height) / 2, 0)\n return { liRect, targetLeft, maxLeft, top }\n }\n function moveSliderTo(li: HTMLElement | null) {\n if (!tabbarUl || !li) return\n if (_sliderT1) clearTimeout(_sliderT1)\n if (_sliderT2) clearTimeout(_sliderT2)\n const { liRect, targetLeft, maxLeft, top } = _computeTarget(li)\n _setSliderVars({\n width: liRect.width,\n height: liRect.height,\n top,\n scale: 1,\n })\n const currLeft = _pxVar(tabbarUl, '--slider-left')\n const dir = Math.sign(targetLeft - currLeft) || 1\n let overshootLeft = targetLeft + 5 * dir\n if (overshootLeft < 0 || overshootLeft > maxLeft) {\n overshootLeft = targetLeft\n }\n _setSliderVars({\n ease: 'cubic-bezier(0.33, 1, 0.68, 1)',\n dur: '240ms',\n left: overshootLeft,\n scale: 1.04,\n })\n _sliderT1 = window.setTimeout(() => {\n _setSliderVars({\n ease: 'cubic-bezier(0.2, 0.8, 0.2, 1)',\n dur: '150ms',\n left: targetLeft,\n scale: 1,\n })\n _sliderT2 = window.setTimeout(() => {}, 160)\n }, 240)\n }\n function positionSubmenuFor(item: HTMLElement | null, targetMenu: HTMLElement | null) {\n if (!item || !targetMenu || !dock) return\n const itemRect = item.getBoundingClientRect()\n const dockRect = dock.getBoundingClientRect()\n const submenuStack = targetMenu.querySelector('.submenu-stack') as HTMLElement | null\n if (!submenuStack) return\n let offsetX = itemRect.left + itemRect.width / 2 - submenuStack.offsetWidth / 2\n offsetX -= dockRect.left\n const isMobile = window.innerWidth <= 600\n const isTablet = window.innerWidth > 600 && window.innerWidth <= 1024\n const dataWhere = item.getAttribute('data-where')\n const minLeft = -dockRect.left + 10\n const maxLeft = dockRect.width - submenuStack.offsetWidth - 10\n if (isMobile) {\n if (dataWhere === 'mn-contato') offsetX = 110\n else offsetX = Math.max(minLeft, Math.min(offsetX, maxLeft))\n } else if (isTablet) {\n if (dataWhere === 'mn-contato') {\n offsetX =\n itemRect.left + itemRect.width / 2 - submenuStack.offsetWidth / 2 - dockRect.left\n offsetX = Math.max(minLeft, Math.min(offsetX, maxLeft))\n } else offsetX = Math.max(minLeft, Math.min(offsetX, maxLeft))\n } else {\n if (dataWhere === 'mn-contato') offsetX -= 10\n offsetX = Math.max(minLeft, Math.min(offsetX, maxLeft))\n }\n submenuStack.style.position = 'absolute'\n submenuStack.style.left = `${offsetX}px`\n submenuStack.style.top = `-${submenuStack.offsetHeight + 10}px`\n }\n function openMenu(menu: HTMLElement | null) {\n if (!menu) return\n menu.classList.remove('hide')\n menu.classList.add('show')\n const submenuStack = menu.querySelector('.submenu-stack')\n const cards = menu.querySelectorAll('.submenu-card')\n Array.from(cards)\n .reverse()\n .forEach((card, i) => {\n addTimeout(() => {\n card.classList.add('animate-in')\n }, i * 100)\n })\n addTimeout(() => {\n submenuStack?.classList.add('visible')\n }, cards.length * 100)\n }\n function closeMenu(menu: HTMLElement | null, callback: (() => void) | null = null) {\n if (!menu) {\n callback?.()\n return\n }\n const submenuStack = menu.querySelector('.submenu-stack')\n const cards = menu.querySelectorAll('.submenu-card')\n submenuStack?.classList.remove('visible')\n if (cards.length === 0) {\n menu.classList.remove('show')\n menu.classList.add('hide')\n callback?.()\n return\n }\n Array.from(cards).forEach((card, i) => {\n addTimeout(() => {\n card.classList.remove('animate-in')\n }, i * 50)\n })\n const total = (cards.length - 1) * 50 + 200\n addTimeout(() => {\n menu.classList.remove('show')\n menu.classList.add('hide')\n callback?.()\n }, total)\n }\n\n const onItemClick = (item: HTMLElement) => (_e: MouseEvent) => {\n moveSliderTo(item)\n const hasCards = item.getAttribute('data-has-cards') === 'true'\n if (!hasCards) return\n const dataWhere = item.getAttribute('data-where')\n const targetMenu = root.querySelector(\n `.mob-list-menu[data-tagget=\"${dataWhere}\"]`,\n ) as HTMLElement | null\n const isActive = item.classList.contains('active')\n const anyWin = window as any\n const tooltip = anyWin?.bootstrap?.Tooltip ? anyWin.bootstrap.Tooltip.getInstance(item) : null\n if (tooltip) tooltip.hide()\n if (isActive) {\n closeMenu(targetMenu, () => {\n $$('.tab-style1 li').forEach((el) => el.classList.remove('active'))\n listMenuShow.classList.remove('show')\n tabbar.classList.remove('is-active-menu')\n ;(dock as HTMLElement).classList.remove('dock-open')\n const resetClass = tabbar.className\n .split(' ')\n .filter((c) => !c.endsWith('-style'))\n .join(' ')\n tabbar.className = `${resetClass} tab-style1`\n })\n } else {\n const currentActiveItem = root.querySelector(\n '.tab-style1 li.active[data-has-cards=\"true\"]',\n ) as HTMLElement | null\n if (currentActiveItem && currentActiveItem !== item) {\n const currentWhere = currentActiveItem.getAttribute('data-where')\n const currentMenu = root.querySelector(\n `.mob-list-menu[data-tagget=\"${currentWhere}\"]`,\n ) as HTMLElement | null\n currentActiveItem.classList.remove('active')\n closeMenu(currentMenu, () => {\n item.classList.add('active')\n tabbar.classList.add('is-active-menu')\n ;(dock as HTMLElement).classList.add('dock-open')\n listMenuShow.classList.add('show')\n openMenu(targetMenu)\n positionSubmenuFor(item, targetMenu)\n const resetClass = tabbar.className\n .split(' ')\n .filter((c) => !c.endsWith('-style'))\n .join(' ')\n tabbar.className = `${resetClass} ${dataWhere}-style`\n })\n } else {\n item.classList.add('active')\n tabbar.classList.add('is-active-menu')\n ;(dock as HTMLElement).classList.add('dock-open')\n listMenuShow.classList.add('show')\n openMenu(targetMenu)\n positionSubmenuFor(item, targetMenu)\n const resetClass = tabbar.className\n .split(' ')\n .filter((c) => !c.endsWith('-style'))\n .join(' ')\n tabbar.className = `${resetClass} ${dataWhere}-style`\n }\n }\n }\n\n dockItems.forEach((item) => on(item, 'click', onItemClick(item)))\n\n const clickOutside = (e: MouseEvent) => {\n if (!tabbar || !listMenuShow) return\n const target = e.target as Node\n const isInside = tabbar.contains(target) || listMenuShow.contains(target)\n if (!isInside) {\n const currentActiveItem = root.querySelector(\n '.tab-style1 li.active[data-has-cards=\"true\"]',\n ) as HTMLElement | null\n if (currentActiveItem) {\n const currentWhere = currentActiveItem.getAttribute('data-where')\n const currentMenu = root.querySelector(\n `.mob-list-menu[data-tagget=\"${currentWhere}\"]`,\n ) as HTMLElement | null\n closeMenu(currentMenu, () => {\n $$('.tab-style1 li').forEach((el) => el.classList.remove('active'))\n listMenuShow.classList.remove('show')\n tabbar.classList.remove('is-active-menu')\n ;(dock as HTMLElement).classList.remove('dock-open')\n tabbar.className = 'tabbar tab-style1'\n const firstItem = root.querySelector('.tab-style1 li') as HTMLElement | null\n if (firstItem) moveSliderTo(firstItem)\n })\n currentActiveItem.classList.remove('active')\n }\n }\n }\n on(document, 'click', clickOutside)\n\n const onResize = () => {\n const activeItem = (root.querySelector('.tab-style1 li.active') ||\n root.querySelector('.tab-style1 li')) as HTMLElement | null\n if (activeItem) {\n moveSliderTo(activeItem)\n const where = activeItem.getAttribute('data-where')\n const menu = root.querySelector(\n `.mob-list-menu[data-tagget=\"${where}\"]`,\n ) as HTMLElement | null\n if (menu && menu.classList.contains('show')) positionSubmenuFor(activeItem, menu)\n }\n }\n on(window, 'resize', onResize)\n\n const init = () => {\n const initial = (root.querySelector('.tab-style1 li.active') ||\n root.querySelector('.tab-style1 li')) as HTMLElement | null\n if (initial) moveSliderTo(initial)\n }\n requestAnimationFrame(init)\n\n return () => {\n timeoutsRef.current.forEach((id) => clearTimeout(id))\n cleanupListeners()\n tabbarUl.removeEventListener('mouseover', _tipOver)\n tabbarUl.removeEventListener('mousemove', _tipMove)\n tabbarUl.removeEventListener('mouseout', _tipOut)\n window.removeEventListener('scroll', _tipOnScroll)\n tip.remove()\n }\n }, [categories])\n\n return (\n <div ref={rootRef}>\n <div className=\"dock\">\n <div className=\"tabbar tab-style1\">\n <div className=\"glass-filter\" />\n <div className=\"glass-overlay\" />\n <div className=\"glass-specular\" />\n\n <ul className=\"flex-center\">\n {categories.map((cat) => (\n <li\n key={cat.id}\n className={`dock-tooltip ${cat.slug}`}\n data-where={cat.slug}\n data-has-cards={(cat.cards?.length || 0) > 0 ? 'true' : 'false'}\n data-tip={(cat.cards?.length || 0) > 0 ? cat.tooltip || cat.title : undefined}\n role=\"button\"\n aria-label={cat.title}\n tabIndex={0}\n >\n {(() => {\n const link = cat.href\n return (cat.cards?.length || 0) === 0 && link ? (\n <a\n className=\"link-absolute-menu\"\n href={link as string}\n data-tip={cat.tooltip || cat.title}\n aria-label={cat.title}\n />\n ) : null\n })()}\n {cat.bgImageUrl && (() => {\n const bgUrl = cat.bgImageUrl.startsWith('http') \n ? cat.bgImageUrl \n : buildTelescupImageURL({\n id: parseAssetId(cat.bgImageUrl),\n width: 60,\n height: 60,\n fit: 'cover',\n format: 'avif',\n quality: 60\n });\n return (\n <div\n className=\"bg-img-menu-fix-mob\"\n style={{ backgroundImage: `url(${bgUrl})` }}\n />\n );\n })()}\n </li>\n ))}\n </ul>\n\n <div className=\"list-menu-mob-show\">\n {categories.map((cat) => (\n <div className=\"mob-list-menu hide\" data-tagget={cat.slug} key={`${cat.id}-menu`}>\n <div className={`submenu-stack ${cat.slug}`}>\n {cat.cards.map((card, i) => (\n <div className=\"submenu-card\" key={`${cat.id}-card-${i}`}>\n <div className=\"fold\" />\n <div className=\"glass-filter\" />\n <div className=\"glass-overlay\" />\n <div className=\"glass-specular\" />\n <div className=\"card-content\">\n {card.iconUrl && (() => {\n const iconUrl = card.iconUrl.startsWith('http') \n ? card.iconUrl \n : buildTelescupImageURL({\n id: parseAssetId(card.iconUrl),\n width: 50,\n height: 50,\n fit: 'cover',\n format: 'avif',\n quality: 60\n });\n return (\n <img\n className=\"icon\"\n src={iconUrl}\n data-api-id={!card.iconUrl.startsWith('http') ? parseAssetId(card.iconUrl) : undefined}\n loading=\"lazy\"\n decoding=\"async\"\n alt={card.title}\n />\n );\n })()}\n <div className=\"text-content\">\n <div className=\"title\">{card.title}</div>\n {card.description ? (\n <div className=\"description\">{card.description}</div>\n ) : null}\n </div>\n <div className=\"actions\">\n {(card.buttons ?? []).slice(0, 2).map((btn, idx) => {\n const className = idx === 0 ? 'saiba-mais' : 'saiba-mais-1'\n\n if (btn.type === 'popup') {\n return (\n <a\n key={`${cat.id}-card-${i}-btn-${idx}`}\n href=\"#\"\n data-popup-id={btn.popupId}\n className={className}\n onClick={(e) => {\n e.preventDefault()\n if (btn.popupId) {\n window.dispatchEvent(new Event(`qw:open:${btn.popupId}`))\n }\n }}\n >\n {btn.label ?? 'Abrir'}\n </a>\n )\n }\n\n return (\n <a\n key={`${cat.id}-card-${i}-btn-${idx}`}\n href={btn.href || '#'}\n className={className}\n target={btn.href?.startsWith('http') ? '_blank' : undefined}\n rel={\n btn.href?.startsWith('http') ? 'noopener noreferrer' : undefined\n }\n >\n {btn.label ?? 'Saiba mais >'}\n </a>\n )\n })}\n </div>\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n </div>\n\n <svg id=\"lg-filter\" style={{ display: 'none' }}>\n <filter id=\"lg-dist\" x=\"-10%\" y=\"-10%\" width=\"120%\" height=\"120%\">\n <feTurbulence\n type=\"fractalNoise\"\n baseFrequency=\"0.01 0.01\"\n numOctaves=\"3\"\n seed=\"92\"\n result=\"noise\"\n />\n <feGaussianBlur in=\"noise\" stdDeviation=\"1.5\" result=\"blurred\" />\n <feDisplacementMap\n in=\"SourceGraphic\"\n in2=\"blurred\"\n scale=\"50\"\n xChannelSelector=\"R\"\n yChannelSelector=\"G\"\n result=\"displaced\"\n />\n <feComposite in=\"displaced\" in2=\"SourceGraphic\" operator=\"atop\" />\n </filter>\n </svg>\n </div>\n </div>\n )\n}\n\nexport default DockWrapper\n","import { useState, useEffect } from 'react';\n\nconst API_BASE = \"https://telescup.cupcode.dev\";\n\ninterface TelescupImageOptions {\n id: string;\n width?: number;\n height?: number;\n fit?: 'cover' | 'contain' | 'fill' | 'inside' | 'outside';\n format?: 'avif' | 'webp' | 'jpeg' | 'png';\n quality?: number;\n}\n\ninterface TelescupMeta {\n alt?: string;\n title?: string;\n description?: string;\n}\n\nexport function buildTelescupImageURL(options: TelescupImageOptions): string {\n const { id, width, height, fit = 'cover', format = 'avif', quality = 60 } = options;\n const params = new URLSearchParams({ id });\n \n if (width) params.set('w', width.toString());\n if (height) params.set('h', height.toString());\n params.set('fit', fit);\n params.set('format', format);\n params.set('q', quality.toString());\n \n return `${API_BASE}/i?${params.toString()}`;\n}\n\nexport function buildTelescupVideoURL(id: string): string {\n return `${API_BASE}/i/v?id=${id}`;\n}\n\nexport function useTelescupMeta(id: string, lang: string = 'pt-BR') {\n const [meta, setMeta] = useState<TelescupMeta>({});\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n async function fetchMeta() {\n try {\n const response = await fetch(\n `${API_BASE}/i/meta?${new URLSearchParams({ id, lang })}`\n );\n if (response.ok) {\n const data = await response.json();\n setMeta(data);\n }\n } catch (error) {\n console.error('Failed to fetch Telescup metadata:', error);\n } finally {\n setLoading(false);\n }\n }\n\n if (id) {\n fetchMeta();\n }\n }, [id, lang]);\n\n return { meta, loading };\n}\n\nexport function useTelescupImage(options: TelescupImageOptions, lang?: string) {\n const url = buildTelescupImageURL(options);\n const { meta, loading } = useTelescupMeta(options.id, lang);\n\n return { url, meta, loading };\n}\n","// utils/parseAssetId.ts\r\nexport function parseAssetId(input?: string): string | undefined {\r\n if (!input) return undefined\r\n try {\r\n // caso seja uma URL completa do telescup\r\n const u = new URL(input)\r\n const id = u.searchParams.get('id')\r\n if (id) return id\r\n } catch {\r\n // não é uma URL válida → provavelmente já é só o id\r\n }\r\n return input // devolve como veio\r\n}\r\n","import { cn } from '../../lib/utils';\nimport { ButtonHTMLAttributes, forwardRef, useEffect, useRef } from \"react\";\n\ninterface JellyButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: \"primary\" | \"secondary\" | \"half\" | \"original-pink\" | \"original-green\";\n children: React.ReactNode;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport const JellyButton = forwardRef<HTMLButtonElement, JellyButtonProps>(\n ({ variant = \"primary\", size = \"md\", className, children, onClick, ...props }, ref) => {\n const internalRef = useRef<HTMLButtonElement>(null);\n const buttonRef = (ref as React.RefObject<HTMLButtonElement>) || internalRef;\n const rafRef = useRef<number>();\n const animationRef = useRef<{ start: number; duration: number } | null>(null);\n const isAnimatingRef = useRef(false);\n \n const ROTATE_LIMIT = 8;\n const SMOOTHING = 0.15;\n const REFLECT_SMOOTHING = 0.2;\n const JELLY_DURATION = 1600;\n \n useEffect(() => {\n const button = buttonRef.current;\n if (!button) return;\n \n let targetRx = 0, targetRy = 0;\n let currentRx = 0, currentRy = 0;\n let targetReflectX = 50, targetReflectY = 50;\n let currentReflectX = 50, currentReflectY = 50;\n \n const handleMouseMove = (e: MouseEvent) => {\n const rect = button.getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n\n const deltaX = e.clientX - centerX;\n const deltaY = e.clientY - centerY;\n\n targetRy = (deltaX / (rect.width / 2)) * ROTATE_LIMIT;\n targetRx = -(deltaY / (rect.height / 2)) * ROTATE_LIMIT;\n\n const localX = ((e.clientX - rect.left) / rect.width) * 100;\n const localY = ((e.clientY - rect.top) / rect.height) * 100;\n targetReflectX = Math.max(0, Math.min(100, localX));\n targetReflectY = Math.max(0, Math.min(100, localY));\n };\n\n const handleMouseLeave = () => {\n targetRx = 0;\n targetRy = 0;\n targetReflectX = 50;\n targetReflectY = 50;\n };\n \n const animate = (time: number) => {\n currentRx += (targetRx - currentRx) * SMOOTHING;\n currentRy += (targetRy - currentRy) * SMOOTHING;\n currentReflectX += (targetReflectX - currentReflectX) * REFLECT_SMOOTHING;\n currentReflectY += (targetReflectY - currentReflectY) * REFLECT_SMOOTHING;\n\n button.style.setProperty('--rx', `${currentReflectX}%`);\n button.style.setProperty('--ry', `${currentReflectY}%`);\n\n let scaleX = 1;\n let scaleY = 1;\n\n if (isAnimatingRef.current && animationRef.current) {\n const elapsed = time - animationRef.current.start;\n const duration = animationRef.current.duration;\n\n if (elapsed < duration) {\n const progress = elapsed / duration;\n const wave = Math.sin(progress * Math.PI * 3.2);\n const decay = Math.exp(-4 * progress);\n const amplitude = 0.12 * decay;\n\n scaleX = 1 + amplitude * wave;\n scaleY = 1 - amplitude * wave;\n } else {\n isAnimatingRef.current = false;\n animationRef.current = null;\n }\n }\n\n button.style.transform = `perspective(1000px) rotateX(${currentRx}deg) rotateY(${currentRy}deg) scale(${scaleX}, ${scaleY})`;\n rafRef.current = requestAnimationFrame(animate);\n };\n \n button.addEventListener('mousemove', handleMouseMove);\n button.addEventListener('mouseleave', handleMouseLeave);\n rafRef.current = requestAnimationFrame(animate);\n \n return () => {\n button.removeEventListener('mousemove', handleMouseMove);\n button.removeEventListener('mouseleave', handleMouseLeave);\n if (rafRef.current) cancelAnimationFrame(rafRef.current);\n };\n }, []);\n \n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n animationRef.current = { start: performance.now(), duration: JELLY_DURATION };\n isAnimatingRef.current = true;\n onClick?.(e);\n };\n\n const baseClasses = cn(\n \"relative overflow-hidden font-display font-semibold\",\n \"transition-all duration-200\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2\",\n \"disabled:opacity-50 disabled:pointer-events-none\",\n \"rounded-pill\"\n );\n \n const sizeClasses = {\n sm: \"px-4 py-2 text-sm\",\n md: \"px-6 py-3 text-base\",\n lg: \"px-8 py-4 text-lg\",\n };\n \n const variantStyles: Record<JellyButtonProps[\"variant\"], { base: string; overlay?: string }> = {\n primary: {\n base: \"bg-gradient-to-r from-cupcode-purple via-[#7b2bff] to-cupcode-ink text-white shadow-[0_0_25px_rgba(149,29,219,0.35)]\",\n overlay: \"bg-gradient-to-r from-white/20 via-transparent to-transparent\",\n },\n secondary: {\n base: \"bg-gradient-to-r from-emerald-400 via-emerald-500 to-emerald-600 text-white shadow-[0_0_25px_rgba(56,189,148,0.35)]\",\n overlay: \"bg-gradient-to-r from-white/15 via-emerald-300/20 to-transparent\",\n },\n half: {\n base: \"bg-gradient-to-r from-cupcode-ink via-[#1a0838] to-black text-cupcode-pink shadow-[0_0_30px_rgba(24,1,58,0.45)]\",\n overlay: \"bg-gradient-to-br from-white/12 via-cupcode-pink/10 to-transparent\",\n },\n \"original-pink\": {\n base: \"bg-[linear-gradient(90deg,#ff6caf,#ff4088)] text-white shadow-[0_0_10px_rgba(255,0,150,0.3),0_0_20px_rgba(255,0,150,0.5)]\",\n overlay: undefined,\n },\n \"original-green\": {\n base: \"bg-[linear-gradient(90deg,#63b659,#288b0d)] text-white shadow-[0_0_10px_#288b0d4d,0_0_20px_#63b65980]\",\n overlay: undefined,\n },\n };\n\n const currentStyle = variantStyles[variant];\n \n return (\n <button\n ref={buttonRef}\n onClick={handleClick}\n className={cn(\n baseClasses,\n sizeClasses[size],\n currentStyle.base,\n className\n )}\n style={{\n transform: 'perspective(1000px) rotateX(0deg) rotateY(0deg) scale(1, 1)',\n // @ts-ignore\n '--rx': '50%',\n '--ry': '50%',\n }}\n {...props}\n >\n {currentStyle.overlay && (\n <span className={cn(\"absolute inset-0 pointer-events-none\", currentStyle.overlay)} />\n )}\n <span \n className=\"absolute inset-0 opacity-0 transition-opacity duration-300 hover:opacity-100 pointer-events-none z-0\"\n style={{\n background: `radial-gradient(circle at var(--rx, 50%) var(--ry, 50%), rgba(255, 255, 255, 0.3) 0%, transparent 70%)`,\n }}\n />\n <span className=\"relative z-10\">{children}</span>\n </button>\n );\n }\n);\n\nJellyButton.displayName = \"JellyButton\";\n","import { cn } from '../../lib/utils';\nimport { LucideIcon } from \"lucide-react\";\nimport { JellyButton } from \"./JellyButton\";\n\ninterface EmptyStateProps {\n icon?: LucideIcon;\n title: string;\n description?: string;\n action?: {\n label: string;\n onClick: () => void;\n };\n className?: string;\n}\n\nexport function EmptyState({\n icon: Icon,\n title,\n description,\n action,\n className,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center text-center p-12\",\n \"animate-fade-in\",\n className\n )}\n >\n {Icon && (\n <div className=\"mb-6 p-6 rounded-full bg-muted/50 animate-float-slow\">\n <Icon className=\"w-16 h-16 text-muted-foreground\" />\n </div>\n )}\n\n <h3 className=\"text-2xl font-display font-bold text-foreground mb-3\">\n {title}\n </h3>\n\n {description && (\n <p className=\"text-muted-foreground mb-6 max-w-md\">\n {description}\n </p>\n )}\n\n {action && (\n <JellyButton onClick={action.onClick} variant=\"primary\">\n {action.label}\n </JellyButton>\n )}\n </div>\n );\n}\n","import React from \"react\";\nimport { AlertTriangle } from \"lucide-react\";\nimport { JellyButton } from \"./JellyButton\";\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n fallback?: React.ReactNode;\n}\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error?: Error;\n}\n\nexport class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { hasError: true, error };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n console.error(\"Error caught by boundary:\", error, errorInfo);\n }\n\n handleReset = () => {\n this.setState({ hasError: false, error: undefined });\n };\n\n render() {\n if (this.state.hasError) {\n if (this.props.fallback) {\n return this.props.fallback;\n }\n\n return (\n <div className=\"min-h-screen flex items-center justify-center p-6 bg-gradient-to-br from-cupcode-surface to-muted\">\n <div className=\"max-w-md w-full glass rounded-xl p-8 text-center animate-scale-in\">\n <div className=\"mb-6 flex justify-center\">\n <div className=\"p-4 rounded-full bg-destructive/10\">\n <AlertTriangle className=\"w-12 h-12 text-destructive\" />\n </div>\n </div>\n\n <h2 className=\"text-2xl font-display font-bold text-foreground mb-3\">\n Algo deu errado\n </h2>\n\n <p className=\"text-muted-foreground mb-6\">\n Desculpe, encontramos um erro inesperado. Por favor, tente novamente.\n </p>\n\n {this.state.error && (\n <details className=\"mb-6 text-left\">\n <summary className=\"cursor-pointer text-sm text-muted-foreground hover:text-foreground\">\n Detalhes técnicos\n </summary>\n <pre className=\"mt-2 p-3 bg-muted rounded-md text-xs overflow-x-auto\">\n {this.state.error.message}\n </pre>\n </details>\n )}\n\n <div className=\"flex gap-3 justify-center\">\n <JellyButton onClick={this.handleReset} variant=\"primary\">\n Tentar novamente\n </JellyButton>\n <JellyButton onClick={() => window.location.href = \"/\"} variant=\"secondary\">\n Ir para início\n </JellyButton>\n </div>\n </div>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n","import { cn } from '../../lib/utils';\nimport { forwardRef } from \"react\";\n\ninterface EyebrowProps extends React.HTMLAttributes<HTMLDivElement> {\n variant?: \"galaxy\" | \"pink\" | \"purple\" | \"outline\";\n glow?: boolean;\n}\n\nexport const Eyebrow = forwardRef<HTMLDivElement, EyebrowProps>(\n ({ variant = \"galaxy\", glow = false, className, children, ...props }, ref) => {\n const baseClasses = cn(\n \"inline-flex items-center gap-2\",\n \"text-xs font-display font-bold uppercase tracking-wider\",\n \"px-3 py-1.5 rounded-pill\",\n \"transition-all duration-300\",\n glow && \"animate-pulse\"\n );\n\n const variantClasses = {\n galaxy: \"cc-gradient-galaxy text-white shadow-[0_0_20px_rgba(193,27,150,0.4)]\",\n pink: \"bg-cupcode-pink text-white shadow-[0_0_20px_rgba(237,30,121,0.4)]\",\n purple: \"bg-cupcode-purple text-white shadow-[0_0_20px_rgba(149,29,219,0.4)]\",\n outline: \"border-2 border-cupcode-purple text-cupcode-purple bg-transparent\",\n };\n\n return (\n <div\n ref={ref}\n className={cn(baseClasses, variantClasses[variant], className)}\n {...props}\n >\n {children}\n </div>\n );\n }\n);\n\nEyebrow.displayName = \"Eyebrow\";\n","import { cn } from '../../lib/utils';\n\ninterface HeroTitleProps {\n eyebrow?: string;\n smallPrefix?: string;\n strong: string;\n className?: string;\n level?: 1 | 2 | 3;\n}\n\nexport const HeroTitle = ({ \n eyebrow, \n smallPrefix, \n strong, \n className,\n level = 2 \n}: HeroTitleProps) => {\n const Tag = `h${level}` as keyof JSX.IntrinsicElements;\n \n return (\n <div className={cn(\"space-y-3\", className)}>\n {eyebrow && (\n <span className=\"span-destaque animate-fade-in\">\n {eyebrow}\n </span>\n )}\n <Tag className=\"font-display font-bold leading-tight animate-slide-up\">\n {smallPrefix && (\n <small className=\"block text-base font-normal opacity-70 mb-1\">\n {smallPrefix}\n </small>\n )}\n <b className=\"block bg-gradient-to-r from-cupcode-pink to-cupcode-purple bg-clip-text text-transparent\">\n {strong}\n </b>\n </Tag>\n </div>\n );\n};\n","import * as React from \"react\";\nimport { cn } from '../../lib/utils';\n\nexport interface InputFieldProps extends React.InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: string;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n}\n\nconst InputField = React.forwardRef<HTMLInputElement, InputFieldProps>(\n ({ className, type, label, error, leftIcon, rightIcon, ...props }, ref) => {\n return (\n <div className=\"cc-stack space-2 w-full\">\n {label && (\n <label className=\"text-sm font-semibold text-cupcode-ink\">\n {label}\n </label>\n )}\n <div className=\"relative\">\n {leftIcon && (\n <div className=\"absolute left-3 top-1/2 -translate-y-1/2 text-cupcode-purple opacity-60\">\n {leftIcon}\n </div>\n )}\n <input\n type={type}\n className={cn(\n \"flex h-12 w-full rounded-lg border border-border bg-white/80 px-4 py-2 text-sm\",\n \"ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cupcode-purple focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"transition-all duration-200\",\n \"backdrop-blur-sm\",\n \"hover:bg-white hover:shadow-sm\",\n error && \"border-destructive focus-visible:ring-destructive\",\n leftIcon && \"pl-10\",\n rightIcon && \"pr-10\",\n className\n )}\n ref={ref}\n {...props}\n />\n {rightIcon && (\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2 text-cupcode-purple opacity-60\">\n {rightIcon}\n </div>\n )}\n </div>\n {error && (\n <p className=\"text-xs font-medium text-destructive animate-fade-in\">\n {error}\n </p>\n )}\n </div>\n );\n }\n);\nInputField.displayName = \"InputField\";\n\nexport { InputField };\n","import React, { useEffect, useRef } from 'react'\nimport { useBreakpoint, responsiveSizeClasses, type ResponsiveSize } from '../../hooks/useResponsiveSize'\n\ntype Size = 'xxs' | 'xs' | 'sm' | 'md' | 'lg'\n\nexport type JellyButtonOriginalProps = {\n label: string\n color?: 'pink' | 'green'\n href?: string\n popupId?: string\n size?: ResponsiveSize\n className?: string\n onClick?: () => void\n}\n\nexport function JellyButtonOriginal({\n label,\n color = 'pink',\n href,\n popupId,\n size = 'md',\n className,\n onClick,\n}: JellyButtonOriginalProps) {\n const wrapperRef = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement | HTMLAnchorElement>(null)\n const bp = useBreakpoint()\n\n useEffect(() => {\n if (!wrapperRef.current || !buttonRef.current) return\n const wrapper = wrapperRef.current\n const btn = buttonRef.current\n const reflection = btn.querySelector('.jelly-reflection') as HTMLElement | null\n if (!reflection) return\n\n const BASE_TRANSFORM =\n getComputedStyle(wrapper).transform === 'none' ? '' : getComputedStyle(wrapper).transform\n\n const ROTATE_LIMIT = 10\n const SMOOTHING = 0.15\n const REFLECT_SMOOTHING = 0.15\n const MAX_OFFSET = 5\n const STICKY_MARGIN = 5\n\n let targetRX = 0,\n targetRY = 0,\n curRX = 0,\n curRY = 0\n let targetFX = 50,\n targetFY = 50,\n curFX = 50,\n curFY = 50\n let originalX = 0,\n originalY = 0,\n isInsideSticky = false\n\n function updateParallax() {\n curRX += (targetRX - curRX) * SMOOTHING\n curRY += (targetRY - curRY) * SMOOTHING\n ;(btn as HTMLElement).style.transform = `rotateX(${curRX}deg) rotateY(${curRY}deg)`\n\n curFX += (targetFX - curFX) * REFLECT_SMOOTHING\n curFY += (targetFY - curFY) * REFLECT_SMOOTHING\n reflection?.style.setProperty('--rx', curFX + '%')\n reflection?.style.setProperty('--ry', curFY + '%')\n\n requestAnimationFrame(updateParallax)\n }\n requestAnimationFrame(updateParallax)\n\n btn.addEventListener('mousemove', (e) => {\n const me = e as MouseEvent\n const r = (btn as HTMLElement).getBoundingClientRect()\n const x = me.clientX - r.left\n const y = me.clientY - r.top\n\n const ratioX = (x - r.width / 2) / (r.width / 2)\n const ratioY = (y - r.height / 2) / (r.height / 2)\n\n targetRX = -(ratioY * ROTATE_LIMIT)\n targetRY = ratioX * ROTATE_LIMIT\n\n targetFX = (x / r.width) * 100\n targetFY = (y / r.height) * 100\n })\n\n btn.addEventListener('mouseleave', () => {\n targetRX = targetRY = 0\n targetFX = targetFY = 50\n })\n\n window.addEventListener('load', () => {\n const r = wrapper.getBoundingClientRect()\n originalX = r.left + r.width / 2\n originalY = r.top + r.height / 2\n })\n\n const handleSticky = (e: MouseEvent) => {\n const { clientX: mx, clientY: my } = e\n const r = wrapper.getBoundingClientRect()\n\n const inside =\n mx >= r.left - STICKY_MARGIN &&\n mx <= r.right + STICKY_MARGIN &&\n my >= r.top - STICKY_MARGIN &&\n my <= r.bottom + STICKY_MARGIN\n\n if (!isInsideSticky && inside) isInsideSticky = true\n\n if (isInsideSticky && !inside) {\n isInsideSticky = false\n wrapper.style.transition = 'transform 0.5s ease-out'\n wrapper.style.transform = BASE_TRANSFORM\n ;(btn as HTMLElement).classList.remove('force-jelly')\n void (btn as HTMLElement).offsetWidth\n ;(btn as HTMLElement).classList.add('force-jelly')\n setTimeout(() => (btn as HTMLElement).classList.remove('force-jelly'), 1600)\n return\n }\n\n if (inside) {\n wrapper.style.transition = 'none'\n const dx = mx - originalX\n const dy = my - originalY\n const dist = Math.hypot(dx, dy)\n const offsetX = dist > MAX_OFFSET ? (dx / dist) * MAX_OFFSET : dx\n const offsetY = dist > MAX_OFFSET ? (dy / dist) * MAX_OFFSET : dy\n wrapper.style.transform = `${BASE_TRANSFORM} translate(${offsetX}px, ${offsetY}px)`\n }\n }\n\n document.addEventListener('mousemove', handleSticky)\n return () => document.removeEventListener('mousemove', handleSticky)\n }, [])\n\n const colorClasses =\n color === 'pink'\n ? 'bg-[linear-gradient(90deg,#ff6caf,#ff4088)] shadow-[0_0_10px_rgba(255,0,150,0.3),0_0_20px_rgba(255,0,150,0.5)]'\n : 'bg-[linear-gradient(90deg,#63b659,#288b0d)] shadow-[0_0_10px_#288b0d4d,0_0_20px_#63b65980]'\n\n const classes = `\n relative inline-flex items-center justify-center\n overflow-hidden outline-none cursor-pointer\n text-white font-semibold rounded-full transform-gpu\n ${responsiveSizeClasses(size, bp)}\n ${colorClasses}\n ${className ?? ''}\n `\n\n function handleClick() {\n if (onClick) return onClick()\n if (popupId) {\n window.dispatchEvent(new Event(`qw:open:${popupId}`))\n return\n }\n if (href) {\n window.location.href = href\n }\n }\n\n return (\n <div ref={wrapperRef} className=\"transition-transform duration-150 ease-out inline-block\">\n <button\n ref={buttonRef as React.RefObject<HTMLButtonElement>}\n type=\"button\"\n onClick={handleClick}\n className={classes}\n >\n <div\n className=\"jelly-reflection absolute inset-0 pointer-events-none z-0\"\n style={{\n background:\n 'radial-gradient(circle at var(--rx,50%) var(--ry,50%), rgba(255,255,255,0.3), transparent 60%)',\n }}\n />\n <span className=\"relative z-10\">{label}</span>\n </button>\n </div>\n )\n}\n","import { useEffect, useState } from 'react'\n\ntype Size = 'xxs' | 'xs' | 'sm' | 'md' | 'lg'\nexport type ResponsiveSize = Size | { base?: Size; sm?: Size; md?: Size; lg?: Size; xl?: Size }\n\nexport function useBreakpoint() {\n const [bp, setBp] = useState<'base' | 'sm' | 'md' | 'lg' | 'xl' | null>(null)\n\n useEffect(() => {\n function calcBp() {\n const w = window.innerWidth\n if (w >= 1280) return setBp('xl')\n if (w >= 1024) return setBp('lg')\n if (w >= 768) return setBp('md')\n if (w >= 640) return setBp('sm')\n return setBp('base')\n }\n\n calcBp()\n window.addEventListener('resize', calcBp)\n return () => window.removeEventListener('resize', calcBp)\n }, [])\n\n return bp\n}\n\nexport function responsiveSizeClasses(\n s: ResponsiveSize,\n currentBp: 'base' | 'sm' | 'md' | 'lg' | 'xl' | null,\n) {\n function sizeToClasses(size: Size) {\n switch (size) {\n case 'xxs':\n return 'text-[10px] px-3 py-1.5'\n case 'xs':\n return 'text-xs px-4 py-2'\n case 'sm':\n return 'text-sm px-4 py-2'\n case 'md':\n return 'text-base px-6 py-3'\n case 'lg':\n return 'text-lg px-8 py-4'\n }\n }\n\n if (typeof s === 'string') return sizeToClasses(s)\n\n if (!currentBp) {\n return s.base ? sizeToClasses(s.base) : sizeToClasses((s.sm || s.md || s.lg || s.xl) as Size)\n }\n\n const order: ('xl' | 'lg' | 'md' | 'sm' | 'base')[] = ['xl', 'lg', 'md', 'sm', 'base']\n const idx = order.indexOf(currentBp)\n\n for (let i = idx; i >= 0; i--) {\n const key = order[i]\n if (s[key]) return sizeToClasses(s[key] as Size)\n }\n\n return s.base ? sizeToClasses(s.base) : sizeToClasses((s.sm || s.md || s.lg || s.xl) as Size)\n}\n","import * as React from \"react\";\nimport { cn } from '../../lib/utils';\n\nexport interface LoadingSpinnerProps {\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst sizes = {\n sm: \"h-4 w-4 border-2\",\n md: \"h-8 w-8 border-3\",\n lg: \"h-12 w-12 border-4\",\n};\n\nexport const LoadingSpinner: React.FC<LoadingSpinnerProps> = ({\n size = \"md\",\n className,\n}) => {\n return (\n <div\n className={cn(\n \"animate-spin rounded-full border-transparent border-t-cupcode-pink border-r-cupcode-purple\",\n sizes[size],\n className\n )}\n role=\"status\"\n aria-label=\"Loading\"\n >\n <span className=\"sr-only\">Loading...</span>\n </div>\n );\n};\n\nexport interface SkeletonProps {\n className?: string;\n}\n\nexport const Skeleton: React.FC<SkeletonProps> = ({ className }) => {\n return (\n <div\n className={cn(\n \"animate-pulse rounded-lg bg-gradient-to-r from-border to-muted\",\n className\n )}\n />\n );\n};\n\nexport const SkeletonText: React.FC<{ lines?: number }> = ({ lines = 3 }) => {\n return (\n <div className=\"space-y-2\">\n {Array.from({ length: lines }).map((_, i) => (\n <Skeleton\n key={i}\n className={cn(\n \"h-4\",\n i === lines - 1 ? \"w-3/4\" : \"w-full\"\n )}\n />\n ))}\n </div>\n );\n};\n","import * as React from \"react\";\nimport { LoadingSpinner } from \"./LoadingSpinner\";\nimport { cn } from '../../lib/utils';\n\ninterface LoadingScreenProps {\n message?: string;\n fullScreen?: boolean;\n variant?: \"default\" | \"galaxy\" | \"minimal\";\n}\n\nexport const LoadingScreen: React.FC<LoadingScreenProps> = ({\n message = \"Carregando...\",\n fullScreen = true,\n variant = \"default\",\n}) => {\n const containerClasses = fullScreen\n ? \"fixed inset-0 z-50 flex items-center justify-center bg-background\"\n : \"flex items-center justify-center p-12\";\n\n if (variant === \"minimal\") {\n return (\n <div className={containerClasses}>\n <LoadingSpinner size=\"lg\" />\n </div>\n );\n }\n\n if (variant === \"galaxy\") {\n return (\n <div className={cn(containerClasses, \"cc-gradient-galaxy\")}>\n <div className=\"glass rounded-2xl p-8 flex flex-col items-center space-y-4 animate-scale-in\">\n <div className=\"relative\">\n <LoadingSpinner size=\"lg\" />\n <div className=\"absolute inset-0 blur-2xl bg-cupcode-pink/30 animate-pulse-scale\" />\n </div>\n {message && (\n <p className=\"text-white font-semibold text-lg animate-pulse\">\n {message}\n </p>\n )}\n </div>\n </div>\n );\n }\n\n return (\n <div className={containerClasses}>\n <div className=\"glass rounded-2xl p-8 flex flex-col items-center space-y-6 animate-scale-in max-w-sm\">\n <div className=\"relative\">\n <div className=\"w-20 h-20 rounded-full cc-gradient-animated flex items-center justify-center\">\n <div className=\"w-16 h-16 rounded-full bg-background flex items-center justify-center\">\n <LoadingSpinner size=\"md\" />\n </div>\n </div>\n <div className=\"absolute inset-0 blur-xl bg-cupcode-purple/20 animate-pulse-scale -z-10\" />\n </div>\n {message && (\n <div className=\"text-center space-y-2\">\n <p className=\"font-bold text-lg cc-text-gradient-galaxy\">\n {message}\n </p>\n <div className=\"flex gap-1 justify-center\">\n <div className=\"w-2 h-2 rounded-full bg-cupcode-pink animate-bounce\" style={{ animationDelay: \"0ms\" }} />\n <div className=\"w-2 h-2 rounded-full bg-cupcode-purple animate-bounce\" style={{ animationDelay: \"150ms\" }} />\n <div className=\"w-2 h-2 rounded-full bg-cupcode-pink animate-bounce\" style={{ animationDelay: \"300ms\" }} />\n </div>\n </div>\n )}\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\nimport { cn } from '../../lib/utils';\n\nconst Modal = DialogPrimitive.Root;\nconst ModalTrigger = DialogPrimitive.Trigger;\nconst ModalPortal = DialogPrimitive.Portal;\nconst ModalClose = DialogPrimitive.Close;\n\nconst ModalOverlay = 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-cupcode-ink/80 backdrop-blur-sm\",\n \"data-[state=open]:animate-fade-in data-[state=closed]:animate-fade-out\",\n className\n )}\n {...props}\n />\n));\nModalOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\ninterface ModalContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n size?: \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst ModalContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n ModalContentProps\n>(({ className, children, size = \"md\", ...props }, ref) => {\n const sizeClasses = {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n };\n\n return (\n <ModalPortal>\n <ModalOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 w-full translate-x-[-50%] translate-y-[-50%]\",\n \"glass rounded-xl p-6\",\n \"data-[state=open]:animate-scale-in data-[state=closed]:animate-scale-out\",\n \"focus:outline-none\",\n sizeClasses[size],\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-md p-1 opacity-70 ring-offset-background transition-opacity hover:opacity-100 hover:bg-cupcode-ink/10 focus:outline-none focus:ring-2 focus:ring-cupcode-purple 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 </ModalPortal>\n );\n});\nModalContent.displayName = DialogPrimitive.Content.displayName;\n\nconst ModalHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col space-y-2 text-center sm:text-left mb-4\", className)}\n {...props}\n />\n);\nModalHeader.displayName = \"ModalHeader\";\n\nconst ModalFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 mt-6\", className)}\n {...props}\n />\n);\nModalFooter.displayName = \"ModalFooter\";\n\nconst ModalTitle = 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(\"text-xl font-bold cc-text-gradient-galaxy\", className)}\n {...props}\n />\n));\nModalTitle.displayName = DialogPrimitive.Title.displayName;\n\nconst ModalDescription = 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\", className)}\n {...props}\n />\n));\nModalDescription.displayName = DialogPrimitive.Description.displayName;\n\nexport {\n Modal,\n ModalTrigger,\n ModalContent,\n ModalHeader,\n ModalFooter,\n ModalTitle,\n ModalDescription,\n ModalClose,\n};\n","import * as React from \"react\";\nimport { Menu, X } from \"lucide-react\";\nimport { Link } from \"react-router-dom\";\nimport { cn } from '../../lib/utils';\n\nexport interface NavItem {\n label: string;\n href: string;\n icon?: React.ReactNode;\n}\n\nexport interface NavbarCupcodeProps {\n logo: React.ReactNode;\n items: NavItem[];\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport const NavbarCupcode: React.FC<NavbarCupcodeProps> = ({\n logo,\n items,\n actions,\n className,\n}) => {\n const [isOpen, setIsOpen] = React.useState(false);\n\n return (\n <nav\n className={cn(\n \"fixed top-0 left-0 right-0 z-50\",\n \"glass border-b border-border\",\n className\n )}\n >\n <div className=\"cc-container\">\n <div className=\"flex items-center justify-between h-16\">\n {/* Logo */}\n <div className=\"flex-shrink-0\">{logo}</div>\n\n {/* Desktop Menu */}\n <div className=\"hidden md:flex items-center space-x-8\">\n {items.map((item, index) => (\n item.href.startsWith('#') ? (\n <a\n key={index}\n href={item.href}\n className={cn(\n \"flex items-center gap-2 text-sm font-semibold text-foreground\",\n \"hover:text-primary transition-colors duration-200\",\n \"relative after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-0\",\n \"after:bg-primary after:transition-all after:duration-300\",\n \"hover:after:w-full\"\n )}\n >\n {item.icon && <span>{item.icon}</span>}\n {item.label}\n </a>\n ) : (\n <Link\n key={index}\n to={item.href}\n className={cn(\n \"flex items-center gap-2 text-sm font-semibold text-foreground\",\n \"hover:text-primary transition-colors duration-200\",\n \"relative after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-0\",\n \"after:bg-primary after:transition-all after:duration-300\",\n \"hover:after:w-full\"\n )}\n >\n {item.icon && <span>{item.icon}</span>}\n {item.label}\n </Link>\n )\n ))}\n </div>\n\n {/* Desktop Actions */}\n {actions && <div className=\"hidden md:flex\">{actions}</div>}\n\n {/* Mobile Menu Button */}\n <button\n onClick={() => setIsOpen(!isOpen)}\n className=\"md:hidden p-2 rounded-lg hover:bg-primary/10 transition-colors\"\n >\n {isOpen ? (\n <X className=\"h-6 w-6 text-foreground\" />\n ) : (\n <Menu className=\"h-6 w-6 text-foreground\" />\n )}\n </button>\n </div>\n\n {/* Mobile Menu */}\n {isOpen && (\n <div className=\"md:hidden py-4 space-y-3 animate-slide-up\">\n {items.map((item, index) => (\n item.href.startsWith('#') ? (\n <a\n key={index}\n href={item.href}\n className=\"flex items-center gap-2 px-4 py-2 text-sm font-semibold text-foreground hover:bg-primary/10 rounded-lg transition-colors\"\n onClick={() => setIsOpen(false)}\n >\n {item.icon && <span>{item.icon}</span>}\n {item.label}\n </a>\n ) : (\n <Link\n key={index}\n to={item.href}\n className=\"flex items-center gap-2 px-4 py-2 text-sm font-semibold text-foreground hover:bg-primary/10 rounded-lg transition-colors\"\n onClick={() => setIsOpen(false)}\n >\n {item.icon && <span>{item.icon}</span>}\n {item.label}\n </Link>\n )\n ))}\n {actions && <div className=\"px-4 pt-2\">{actions}</div>}\n </div>\n )}\n </div>\n </nav>\n );\n};\n","import { useEffect, useRef } from \"react\";\nimport { cn } from '../../lib/utils';\n\ninterface Particle {\n x: number;\n y: number;\n size: number;\n speedX: number;\n speedY: number;\n opacity: number;\n}\n\ninterface ParticleSystemProps {\n count?: number;\n variant?: \"stars\" | \"comets\";\n className?: string;\n}\n\nexport function ParticleSystem({ \n count = 50, \n variant = \"stars\",\n className \n}: ParticleSystemProps) {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n // Set canvas size\n const resizeCanvas = () => {\n canvas.width = canvas.offsetWidth;\n canvas.height = canvas.offsetHeight;\n };\n resizeCanvas();\n window.addEventListener(\"resize\", resizeCanvas);\n\n // Create particles\n const particles: Particle[] = [];\n for (let i = 0; i < count; i++) {\n particles.push({\n x: Math.random() * canvas.width,\n y: Math.random() * canvas.height,\n size: Math.random() * 3 + 1,\n speedX: (Math.random() - 0.5) * 0.5,\n speedY: (Math.random() - 0.5) * 0.5,\n opacity: Math.random() * 0.5 + 0.5,\n });\n }\n\n // Animation loop\n let animationId: number;\n const animate = () => {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n particles.forEach((particle) => {\n // Update position\n particle.x += particle.speedX;\n particle.y += particle.speedY;\n\n // Wrap around edges\n if (particle.x < 0) particle.x = canvas.width;\n if (particle.x > canvas.width) particle.x = 0;\n if (particle.y < 0) particle.y = canvas.height;\n if (particle.y > canvas.height) particle.y = 0;\n\n // Draw particle\n if (variant === \"stars\") {\n // Star effect\n ctx.fillStyle = `rgba(237, 30, 121, ${particle.opacity})`;\n ctx.beginPath();\n ctx.arc(particle.x, particle.y, particle.size, 0, Math.PI * 2);\n ctx.fill();\n } else {\n // Comet effect\n const gradient = ctx.createLinearGradient(\n particle.x,\n particle.y,\n particle.x - particle.speedX * 10,\n particle.y - particle.speedY * 10\n );\n gradient.addColorStop(0, `rgba(149, 29, 219, ${particle.opacity})`);\n gradient.addColorStop(1, \"rgba(149, 29, 219, 0)\");\n\n ctx.strokeStyle = gradient;\n ctx.lineWidth = particle.size;\n ctx.beginPath();\n ctx.moveTo(particle.x, particle.y);\n ctx.lineTo(\n particle.x - particle.speedX * 10,\n particle.y - particle.speedY * 10\n );\n ctx.stroke();\n }\n });\n\n animationId = requestAnimationFrame(animate);\n };\n\n animate();\n\n return () => {\n window.removeEventListener(\"resize\", resizeCanvas);\n cancelAnimationFrame(animationId);\n };\n }, [count, variant]);\n\n return (\n <canvas\n ref={canvasRef}\n className={cn(\"absolute inset-0 pointer-events-none\", className)}\n />\n );\n}\n","import { cn } from '../../lib/utils';\nimport { Check } from \"lucide-react\";\nimport { JellyButton } from \"./JellyButton\";\nimport { CardGlass } from \"./CardGlass\";\n\ninterface PricingFeature {\n text: string;\n included: boolean;\n}\n\ninterface PricingCardProps {\n title: string;\n price: string;\n period?: string;\n description?: string;\n features: PricingFeature[];\n highlighted?: boolean;\n onSelect: () => void;\n buttonText?: string;\n className?: string;\n}\n\nexport function PricingCard({\n title,\n price,\n period = \"/mês\",\n description,\n features,\n highlighted = false,\n onSelect,\n buttonText = \"Escolher plano\",\n className,\n}: PricingCardProps) {\n return (\n <CardGlass\n className={cn(\n \"p-8 relative transition-all duration-300\",\n highlighted && \"scale-105 elevation-4 border-2 border-cupcode-purple\",\n !highlighted && \"hover:elevation-3 hover:scale-102\",\n className\n )}\n >\n {highlighted && (\n <div className=\"absolute -top-4 left-1/2 -translate-x-1/2\">\n <span className=\"bg-cupcode-purple text-white text-xs font-bold px-4 py-1 rounded-pill\">\n POPULAR\n </span>\n </div>\n )}\n\n {/* Header */}\n <div className=\"text-center mb-6\">\n <h3 className=\"text-2xl font-display font-bold text-foreground mb-2\">\n {title}\n </h3>\n {description && (\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n )}\n </div>\n\n {/* Price */}\n <div className=\"text-center mb-8\">\n <div className=\"flex items-baseline justify-center gap-2\">\n <span className=\"text-5xl font-display font-bold cc-text-gradient-galaxy\">\n {price}\n </span>\n <span className=\"text-muted-foreground\">{period}</span>\n </div>\n </div>\n\n {/* Features */}\n <ul className=\"space-3 mb-8\">\n {features.map((feature, index) => (\n <li key={index} className=\"flex items-start gap-3\">\n <Check\n className={cn(\n \"w-5 h-5 shrink-0 mt-0.5\",\n feature.included ? \"text-success\" : \"text-muted-foreground opacity-30\"\n )}\n />\n <span\n className={cn(\n \"text-sm\",\n feature.included ? \"text-foreground\" : \"text-muted-foreground line-through\"\n )}\n >\n {feature.text}\n </span>\n </li>\n ))}\n </ul>\n\n {/* CTA */}\n <JellyButton\n onClick={onSelect}\n variant={highlighted ? \"primary\" : \"secondary\"}\n className=\"w-full\"\n >\n {buttonText}\n </JellyButton>\n </CardGlass>\n );\n}\n","import * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\nimport { cn } from '../../lib/utils';\n\ninterface ProgressCupcodeProps extends React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root> {\n variant?: \"default\" | \"galaxy\" | \"success\" | \"warning\" | \"error\";\n showLabel?: boolean;\n size?: \"sm\" | \"md\" | \"lg\";\n}\n\nconst ProgressCupcode = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n ProgressCupcodeProps\n>(({ className, value, variant = \"default\", showLabel = false, size = \"md\", ...props }, ref) => {\n const sizeClasses = {\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\",\n };\n\n const variantClasses = {\n default: \"bg-cupcode-purple\",\n galaxy: \"cc-gradient-galaxy\",\n success: \"bg-success\",\n warning: \"bg-warning\",\n error: \"bg-destructive\",\n };\n\n return (\n <div className=\"w-full space-y-2\">\n {showLabel && (\n <div className=\"flex items-center justify-between text-sm\">\n <span className=\"font-semibold text-foreground\">Progresso</span>\n <span className=\"text-muted-foreground\">{value}%</span>\n </div>\n )}\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\n \"relative w-full overflow-hidden rounded-pill glass-subtle\",\n sizeClasses[size],\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className={cn(\n \"h-full w-full flex-1 transition-all duration-500 ease-smooth rounded-pill\",\n variantClasses[variant]\n )}\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n </div>\n );\n});\nProgressCupcode.displayName = \"ProgressCupcode\";\n\nexport { ProgressCupcode };\n","import * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown } from \"lucide-react\";\nimport { cn } from '../../lib/utils';\n\nconst Select = SelectPrimitive.Root;\nconst SelectGroup = SelectPrimitive.Group;\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-12 w-full items-center justify-between rounded-lg border border-border bg-white/80 px-4 py-2\",\n \"text-sm ring-offset-background placeholder:text-muted-foreground\",\n \"focus:outline-none focus:ring-2 focus:ring-cupcode-purple focus:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"transition-all duration-200\",\n \"backdrop-blur-sm\",\n \"hover:bg-white hover:shadow-sm\",\n \"[&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\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 max-h-96 min-w-[8rem] overflow-hidden rounded-lg border border-border\",\n \"bg-white/95 backdrop-blur-lg text-cupcode-ink shadow-lg\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"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 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-pointer select-none items-center rounded-md py-2 pl-8 pr-2 text-sm outline-none\",\n \"focus:bg-cupcode-purple/10 focus:text-cupcode-ink\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"transition-colors duration-150\",\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 <Check className=\"h-4 w-4 text-cupcode-purple\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nexport interface SelectFieldProps {\n label?: string;\n error?: string;\n placeholder?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n options: { value: string; label: string }[];\n disabled?: boolean;\n}\n\nconst SelectField: React.FC<SelectFieldProps> = ({\n label,\n error,\n placeholder,\n value,\n onValueChange,\n options,\n disabled,\n}) => {\n return (\n <div className=\"cc-stack space-2 w-full\">\n {label && (\n <label className=\"text-sm font-semibold text-cupcode-ink\">\n {label}\n </label>\n )}\n <Select value={value} onValueChange={onValueChange} disabled={disabled}>\n <SelectTrigger>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n <SelectGroup>\n {options.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n {error && (\n <p className=\"text-xs font-medium text-destructive animate-fade-in\">\n {error}\n </p>\n )}\n </div>\n );\n};\n\nexport { SelectField, Select, SelectGroup, SelectValue, SelectTrigger, SelectContent, SelectItem };\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\nimport { cn } from '../../lib/utils';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent\",\n \"transition-all duration-300 ease-jelly\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cupcode-purple focus-visible:ring-offset-2\",\n \"focus-visible:ring-offset-background\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-gradient-to-r data-[state=checked]:from-cupcode-pink data-[state=checked]:to-cupcode-purple\",\n \"data-[state=unchecked]:bg-border\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-white shadow-lg ring-0\",\n \"transition-all duration-300 ease-jelly\",\n \"data-[state=checked]:translate-x-5\",\n \"data-[state=unchecked]:translate-x-0\",\n \"data-[state=checked]:scale-110\"\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport interface SwitchFieldProps extends React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root> {\n label?: string;\n description?: string;\n}\n\nconst SwitchField: React.FC<SwitchFieldProps> = ({ label, description, ...props }) => {\n return (\n <div className=\"flex items-center justify-between space-x-4\">\n <div className=\"cc-stack space-1 flex-1\">\n {label && (\n <label className=\"text-sm font-semibold text-cupcode-ink cursor-pointer\">\n {label}\n </label>\n )}\n {description && (\n <p className=\"text-xs text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n <Switch {...props} />\n </div>\n );\n};\n\nexport { Switch, SwitchField };\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from '../../lib/utils';\n\nconst Tabs = 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 items-center justify-center rounded-lg bg-muted/50 p-1\",\n \"glass-subtle\",\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-md px-4 py-2\",\n \"text-sm font-semibold ring-offset-background transition-all\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cupcode-purple focus-visible:ring-offset-2\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"data-[state=active]:bg-white data-[state=active]:text-cupcode-ink data-[state=active]:shadow-sm\",\n \"data-[state=inactive]:text-muted-foreground hover:text-cupcode-purple\",\n \"relative\",\n \"data-[state=active]:after:absolute data-[state=active]:after:bottom-0 data-[state=active]:after:left-0\",\n \"data-[state=active]:after:h-0.5 data-[state=active]:after:w-full\",\n \"data-[state=active]:after:bg-gradient-to-r data-[state=active]:after:from-cupcode-pink data-[state=active]:after:to-cupcode-purple\",\n \"data-[state=active]:after:animate-scale-in\",\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-4 ring-offset-background\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cupcode-purple focus-visible:ring-offset-2\",\n \"data-[state=active]:animate-fade-in\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import React from 'react';\nimport { useTelescupImage } from '../../hooks/useTelescupAsset';\n\ninterface TelescupImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n apiId: string;\n imageWidth?: number;\n imageHeight?: number;\n fit?: 'cover' | 'contain' | 'fill' | 'inside' | 'outside';\n format?: 'avif' | 'webp' | 'jpeg' | 'png';\n quality?: number;\n lang?: string;\n}\n\nexport const TelescupImage: React.FC<TelescupImageProps> = ({\n apiId,\n imageWidth,\n imageHeight,\n fit = 'cover',\n format = 'avif',\n quality = 60,\n lang = 'pt-BR',\n alt,\n title,\n loading = 'lazy',\n className,\n ...props\n}) => {\n const { url, meta } = useTelescupImage(\n {\n id: apiId,\n width: imageWidth,\n height: imageHeight,\n fit,\n format,\n quality,\n },\n lang\n );\n\n return (\n <img\n src={url}\n data-api-id={apiId}\n alt={alt || meta.alt || ''}\n title={title || meta.title}\n loading={loading}\n className={className}\n {...props}\n />\n );\n};\n","import React from 'react';\nimport { buildTelescupVideoURL, useTelescupMeta } from '../../hooks/useTelescupAsset';\n\ninterface TelescupVideoProps extends React.VideoHTMLAttributes<HTMLVideoElement> {\n apiId: string;\n lang?: string;\n}\n\nexport const TelescupVideo: React.FC<TelescupVideoProps> = ({\n apiId,\n lang = 'pt-BR',\n title,\n className,\n ...props\n}) => {\n const url = buildTelescupVideoURL(apiId);\n const { meta } = useTelescupMeta(apiId, lang);\n\n return (\n <video\n src={url}\n data-api-id={apiId}\n title={title || meta.title}\n aria-label={meta.alt}\n className={className}\n {...props}\n />\n );\n};\n","import * as React from \"react\";\nimport { cn } from '../../lib/utils';\n\nexport interface TextareaFieldProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n label?: string;\n error?: string;\n}\n\nconst TextareaField = React.forwardRef<HTMLTextAreaElement, TextareaFieldProps>(\n ({ className, label, error, ...props }, ref) => {\n return (\n <div className=\"cc-stack space-2 w-full\">\n {label && (\n <label className=\"text-sm font-semibold text-cupcode-ink\">\n {label}\n </label>\n )}\n <textarea\n className={cn(\n \"flex min-h-[120px] w-full rounded-lg border border-border bg-white/80 px-4 py-3 text-sm\",\n \"ring-offset-background\",\n \"placeholder:text-muted-foreground\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cupcode-purple focus-visible:ring-offset-2\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"transition-all duration-200\",\n \"backdrop-blur-sm\",\n \"hover:bg-white hover:shadow-sm\",\n \"resize-none\",\n error && \"border-destructive focus-visible:ring-destructive\",\n className\n )}\n ref={ref}\n {...props}\n />\n {error && (\n <p className=\"text-xs font-medium text-destructive animate-fade-in\">\n {error}\n </p>\n )}\n </div>\n );\n }\n);\nTextareaField.displayName = \"TextareaField\";\n\nexport { TextareaField };\n","import * as React from \"react\";\nimport { Moon, Sun } from \"lucide-react\";\nimport { useTheme } from \"next-themes\";\nimport { cn } from '../../lib/utils';\n\ninterface ThemeToggleProps {\n className?: string;\n}\n\nexport const ThemeToggle: React.FC<ThemeToggleProps> = ({ className }) => {\n const { theme, setTheme } = useTheme();\n const [mounted, setMounted] = React.useState(false);\n\n React.useEffect(() => {\n setMounted(true);\n console.log(\"ThemeToggle mounted, current theme:\", theme);\n }, []);\n\n React.useEffect(() => {\n console.log(\"Theme changed:\", theme);\n console.log(\"HTML class:\", document.documentElement.className);\n }, [theme]);\n\n if (!mounted) {\n return (\n <div className={cn(\"w-10 h-10 rounded-lg bg-muted\", className)} />\n );\n }\n\n return (\n <button\n onClick={() => {\n const newTheme = theme === \"dark\" ? \"light\" : \"dark\";\n console.log(\"Theme toggle clicked:\", { currentTheme: theme, newTheme });\n setTheme(newTheme);\n }}\n className={cn(\n \"relative inline-flex items-center justify-center w-10 h-10\",\n \"rounded-lg transition-all duration-300\",\n \"glass hover:glass-strong\",\n \"group\",\n className\n )}\n aria-label=\"Toggle theme\"\n >\n <Sun className=\"h-5 w-5 text-cupcode-purple rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0\" />\n <Moon className=\"absolute h-5 w-5 text-cupcode-pink rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100\" />\n <span className=\"sr-only\">Current theme: {theme}</span>\n </button>\n );\n};\n","import { cn } from '../../lib/utils';\n\ninterface TimelineItem {\n id: string;\n title: string;\n description?: string;\n date?: string;\n icon?: React.ReactNode;\n active?: boolean;\n}\n\ninterface TimelineProps {\n items: TimelineItem[];\n variant?: \"vertical\" | \"horizontal\";\n className?: string;\n}\n\nexport function Timeline({ items, variant = \"vertical\", className }: TimelineProps) {\n if (variant === \"horizontal\") {\n return (\n <div className={cn(\"flex items-start gap-4 overflow-x-auto pb-4\", className)}>\n {items.map((item, index) => (\n <div key={item.id} className=\"flex flex-col items-center min-w-[200px]\">\n {/* Icon */}\n <div\n className={cn(\n \"w-12 h-12 rounded-full flex items-center justify-center mb-3\",\n \"transition-all duration-300\",\n item.active\n ? \"cc-gradient-galaxy text-white elevation-3 scale-110\"\n : \"bg-muted text-muted-foreground\"\n )}\n >\n {item.icon || <span className=\"text-sm font-bold\">{index + 1}</span>}\n </div>\n\n {/* Connector */}\n {index < items.length - 1 && (\n <div className={cn(\n \"h-1 w-full mb-3\",\n item.active ? \"bg-cupcode-purple\" : \"bg-muted\"\n )} />\n )}\n\n {/* Content */}\n <div className=\"text-center\">\n <h4 className={cn(\n \"font-display font-semibold mb-1\",\n item.active ? \"text-cupcode-purple\" : \"text-foreground\"\n )}>\n {item.title}\n </h4>\n {item.description && (\n <p className=\"text-sm text-muted-foreground\">{item.description}</p>\n )}\n {item.date && (\n <p className=\"text-xs text-muted-foreground mt-1\">{item.date}</p>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n }\n\n return (\n <div className={cn(\"relative space-6\", className)}>\n {/* Vertical Line */}\n <div className=\"absolute left-6 top-0 bottom-0 w-0.5 bg-muted\" />\n\n {items.map((item, index) => (\n <div key={item.id} className=\"relative flex gap-6 pb-8 last:pb-0\">\n {/* Icon */}\n <div\n className={cn(\n \"relative z-10 w-12 h-12 rounded-full flex items-center justify-center shrink-0\",\n \"transition-all duration-300\",\n item.active\n ? \"cc-gradient-galaxy text-white elevation-3\"\n : \"bg-muted text-muted-foreground\"\n )}\n >\n {item.icon || <span className=\"text-sm font-bold\">{index + 1}</span>}\n </div>\n\n {/* Content */}\n <div className=\"flex-1 pt-1\">\n <h4 className={cn(\n \"font-display font-semibold mb-1\",\n item.active ? \"text-cupcode-purple\" : \"text-foreground\"\n )}>\n {item.title}\n </h4>\n {item.description && (\n <p className=\"text-sm text-muted-foreground mb-2\">{item.description}</p>\n )}\n {item.date && (\n <p className=\"text-xs text-muted-foreground\">{item.date}</p>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","import * as React from \"react\";\nimport { X, CheckCircle, AlertCircle, Info, AlertTriangle } from \"lucide-react\";\nimport { cn } from '../../lib/utils';\n\nexport type ToastVariant = \"success\" | \"error\" | \"warning\" | \"info\";\n\nexport interface ToastCupcodeProps {\n title: string;\n description?: string;\n variant?: ToastVariant;\n onClose?: () => void;\n}\n\nconst variantStyles = {\n success: {\n gradient: \"from-success/20 to-success/5\",\n icon: CheckCircle,\n iconColor: \"text-success\",\n border: \"border-success/30\",\n },\n error: {\n gradient: \"from-destructive/20 to-destructive/5\",\n icon: AlertCircle,\n iconColor: \"text-destructive\",\n border: \"border-destructive/30\",\n },\n warning: {\n gradient: \"from-warning/20 to-warning/5\",\n icon: AlertTriangle,\n iconColor: \"text-warning\",\n border: \"border-warning/30\",\n },\n info: {\n gradient: \"from-info/20 to-info/5\",\n icon: Info,\n iconColor: \"text-info\",\n border: \"border-info/30\",\n },\n};\n\nexport const ToastCupcode: React.FC<ToastCupcodeProps> = ({\n title,\n description,\n variant = \"info\",\n onClose,\n}) => {\n const style = variantStyles[variant];\n const Icon = style.icon;\n\n return (\n <div\n className={cn(\n \"glass pointer-events-auto relative rounded-xl p-4\",\n \"bg-gradient-to-br\",\n style.gradient,\n \"border\",\n style.border,\n \"min-w-[300px] max-w-[420px]\",\n \"animate-slide-up\"\n )}\n >\n <div className=\"flex items-start gap-3\">\n <Icon className={cn(\"h-5 w-5 shrink-0 mt-0.5\", style.iconColor)} />\n <div className=\"flex-1 space-y-1\">\n <p className=\"text-sm font-semibold text-cupcode-ink\">{title}</p>\n {description && (\n <p className=\"text-xs text-cupcode-ink/70\">{description}</p>\n )}\n </div>\n {onClose && (\n <button\n onClick={onClose}\n className=\"shrink-0 rounded-md p-1 hover:bg-cupcode-ink/10 transition-colors\"\n >\n <X className=\"h-4 w-4 text-cupcode-ink/50\" />\n </button>\n )}\n </div>\n </div>\n );\n};\n","import * as React from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from '../../lib/utils';\n\nconst TooltipProvider = TooltipPrimitive.Provider;\n\nconst TooltipCupcode = 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.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-lg glass px-3 py-2 text-sm text-foreground\",\n \"animate-fade-in\",\n \"data-[state=closed]:animate-fade-out\",\n \"data-[side=bottom]:slide-in-from-top-2\",\n \"data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2\",\n \"data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n));\nTooltipContent.displayName = TooltipPrimitive.Content.displayName;\n\nexport { TooltipCupcode, TooltipTrigger, TooltipContent, TooltipProvider };\n","import * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport { ChevronDown } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst Accordion = 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 ref={ref} className={cn(\"border-b\", className)} {...props} />\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 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\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-0\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n));\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from '../../lib/utils';\n\nconst alertVariants = cva(\n \"relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-background text-foreground\",\n destructive: \"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Alert = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = \"Alert\";\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5 ref={ref} className={cn(\"mb-1 font-medium leading-none tracking-tight\", className)} {...props} />\n ),\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"text-sm [&_p]:leading-relaxed\", className)} {...props} />\n ),\n);\nAlertDescription.displayName = \"AlertDescription\";\n\nexport { Alert, AlertTitle, AlertDescription };\n","import * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from '../../lib/utils';\nimport { buttonVariants } from \"./button\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 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 ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.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 bg-background p-6 shadow-lg 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]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n />\n </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />\n);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold\", className)} {...props} />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n));\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action ref={ref} className={cn(buttonVariants(), className)} {...props} />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(buttonVariants({ variant: \"outline\" }), \"mt-2 sm:mt-0\", className)}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from '../../lib/utils';\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium 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 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\",\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 asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />;\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","import * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\";\n\nconst AspectRatio = AspectRatioPrimitive.Root;\n\nexport { AspectRatio };\n","import * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\nimport { cn } from '../../lib/utils';\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\", className)}\n {...props}\n />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image ref={ref} className={cn(\"aspect-square h-full w-full\", className)} {...props} />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\"flex h-full w-full items-center justify-center rounded-full bg-muted\", className)}\n {...props}\n />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n\nexport { Avatar, AvatarImage, AvatarFallback };\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from '../../lib/utils';\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\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\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return <div className={cn(badgeVariants({ variant }), className)} {...props} />;\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<\"ol\">>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n ),\n);\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<\"li\">>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"inline-flex items-center gap-1.5\", className)} {...props} />\n ),\n);\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return <Comp ref={ref} className={cn(\"transition-colors hover:text-foreground\", className)} {...props} />;\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<HTMLSpanElement, React.ComponentPropsWithoutRef<\"span\">>(\n ({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n ),\n);\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<\"li\">) => (\n <li role=\"presentation\" aria-hidden=\"true\" className={cn(\"[&>svg]:size-3.5\", className)} {...props}>\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { DayPicker } from \"react-day-picker\";\n\nimport { cn } from '../../lib/utils';\nimport { buttonVariants } from \"./button\";\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0\",\n month: \"space-y-4\",\n caption: \"flex justify-center pt-1 relative items-center\",\n caption_label: \"text-sm font-medium\",\n nav: \"space-x-1 flex items-center\",\n nav_button: cn(\n buttonVariants({ variant: \"outline\" }),\n \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\n ),\n nav_button_previous: \"absolute left-1\",\n nav_button_next: \"absolute right-1\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex\",\n head_cell: \"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]\",\n row: \"flex w-full mt-2\",\n cell: \"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20\",\n day: cn(buttonVariants({ variant: \"ghost\" }), \"h-9 w-9 p-0 font-normal aria-selected:opacity-100\"),\n day_range_end: \"day-range-end\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside:\n \"day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_range_middle: \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: ({ ..._props }) => <ChevronLeft className=\"h-4 w-4\" />,\n IconRight: ({ ..._props }) => <ChevronRight className=\"h-4 w-4\" />,\n }}\n {...props}\n />\n );\n}\nCalendar.displayName = \"Calendar\";\n\nexport { Calendar };\n","import * as React from \"react\";\n\nimport { cn } from '../../lib/utils';\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"rounded-lg border bg-card text-card-foreground shadow-sm\", className)} {...props} />\n));\nCard.displayName = \"Card\";\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col space-y-1.5 p-6\", className)} {...props} />\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nconst CardTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3 ref={ref} className={cn(\"text-2xl font-semibold leading-none tracking-tight\", className)} {...props} />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n ),\n);\nCardDescription.displayName = \"CardDescription\";\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div ref={ref} className={cn(\"p-6 pt-0\", className)} {...props} />,\n);\nCardContent.displayName = \"CardContent\";\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center p-6 pt-0\", className)} {...props} />\n ),\n);\nCardFooter.displayName = \"CardFooter\";\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","import * as React from \"react\";\nimport useEmblaCarousel, { type UseEmblaCarouselType } from \"embla-carousel-react\";\nimport { ArrowLeft, ArrowRight } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\nimport { Button } from \"./button\";\n\ntype CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\ntype CarouselOptions = UseCarouselParameters[0];\ntype CarouselPlugin = UseCarouselParameters[1];\n\ntype CarouselProps = {\n opts?: CarouselOptions;\n plugins?: CarouselPlugin;\n orientation?: \"horizontal\" | \"vertical\";\n setApi?: (api: CarouselApi) => void;\n};\n\ntype CarouselContextProps = {\n carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n api: ReturnType<typeof useEmblaCarousel>[1];\n scrollPrev: () => void;\n scrollNext: () => void;\n canScrollPrev: boolean;\n canScrollNext: boolean;\n} & CarouselProps;\n\nconst CarouselContext = React.createContext<CarouselContextProps | null>(null);\n\nfunction useCarousel() {\n const context = React.useContext(CarouselContext);\n\n if (!context) {\n throw new Error(\"useCarousel must be used within a <Carousel />\");\n }\n\n return context;\n}\n\nconst Carousel = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement> & CarouselProps>(\n ({ orientation = \"horizontal\", opts, setApi, plugins, className, children, ...props }, ref) => {\n const [carouselRef, api] = useEmblaCarousel(\n {\n ...opts,\n axis: orientation === \"horizontal\" ? \"x\" : \"y\",\n },\n plugins,\n );\n const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n const [canScrollNext, setCanScrollNext] = React.useState(false);\n\n const onSelect = React.useCallback((api: CarouselApi) => {\n if (!api) {\n return;\n }\n\n setCanScrollPrev(api.canScrollPrev());\n setCanScrollNext(api.canScrollNext());\n }, []);\n\n const scrollPrev = React.useCallback(() => {\n api?.scrollPrev();\n }, [api]);\n\n const scrollNext = React.useCallback(() => {\n api?.scrollNext();\n }, [api]);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === \"ArrowLeft\") {\n event.preventDefault();\n scrollPrev();\n } else if (event.key === \"ArrowRight\") {\n event.preventDefault();\n scrollNext();\n }\n },\n [scrollPrev, scrollNext],\n );\n\n React.useEffect(() => {\n if (!api || !setApi) {\n return;\n }\n\n setApi(api);\n }, [api, setApi]);\n\n React.useEffect(() => {\n if (!api) {\n return;\n }\n\n onSelect(api);\n api.on(\"reInit\", onSelect);\n api.on(\"select\", onSelect);\n\n return () => {\n api?.off(\"select\", onSelect);\n };\n }, [api, onSelect]);\n\n return (\n <CarouselContext.Provider\n value={{\n carouselRef,\n api: api,\n opts,\n orientation: orientation || (opts?.axis === \"y\" ? \"vertical\" : \"horizontal\"),\n scrollPrev,\n scrollNext,\n canScrollPrev,\n canScrollNext,\n }}\n >\n <div\n ref={ref}\n onKeyDownCapture={handleKeyDown}\n className={cn(\"relative\", className)}\n role=\"region\"\n aria-roledescription=\"carousel\"\n {...props}\n >\n {children}\n </div>\n </CarouselContext.Provider>\n );\n },\n);\nCarousel.displayName = \"Carousel\";\n\nconst CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { carouselRef, orientation } = useCarousel();\n\n return (\n <div ref={carouselRef} className=\"overflow-hidden\">\n <div\n ref={ref}\n className={cn(\"flex\", orientation === \"horizontal\" ? \"-ml-4\" : \"-mt-4 flex-col\", className)}\n {...props}\n />\n </div>\n );\n },\n);\nCarouselContent.displayName = \"CarouselContent\";\n\nconst CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const { orientation } = useCarousel();\n\n return (\n <div\n ref={ref}\n role=\"group\"\n aria-roledescription=\"slide\"\n className={cn(\"min-w-0 shrink-0 grow-0 basis-full\", orientation === \"horizontal\" ? \"pl-4\" : \"pt-4\", className)}\n {...props}\n />\n );\n },\n);\nCarouselItem.displayName = \"CarouselItem\";\n\nconst CarouselPrevious = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollPrev, canScrollPrev } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-left-12 top-1/2 -translate-y-1/2\"\n : \"-top-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollPrev}\n onClick={scrollPrev}\n {...props}\n >\n <ArrowLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Previous slide</span>\n </Button>\n );\n },\n);\nCarouselPrevious.displayName = \"CarouselPrevious\";\n\nconst CarouselNext = React.forwardRef<HTMLButtonElement, React.ComponentProps<typeof Button>>(\n ({ className, variant = \"outline\", size = \"icon\", ...props }, ref) => {\n const { orientation, scrollNext, canScrollNext } = useCarousel();\n\n return (\n <Button\n ref={ref}\n variant={variant}\n size={size}\n className={cn(\n \"absolute h-8 w-8 rounded-full\",\n orientation === \"horizontal\"\n ? \"-right-12 top-1/2 -translate-y-1/2\"\n : \"-bottom-12 left-1/2 -translate-x-1/2 rotate-90\",\n className,\n )}\n disabled={!canScrollNext}\n onClick={scrollNext}\n {...props}\n >\n <ArrowRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Next slide</span>\n </Button>\n );\n },\n);\nCarouselNext.displayName = \"CarouselNext\";\n\nexport { type CarouselApi, Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext };\n","import * as React from \"react\";\nimport * as RechartsPrimitive from \"recharts\";\n\nimport { cn } from '../../lib/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: \"\", dark: \".dark\" } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & ({ color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> });\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error(\"useChart must be used within a <ChartContainer />\");\n }\n\n return context;\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>[\"children\"];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, \"\")}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = \"Chart\";\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([_, config]) => config.theme || config.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join(\"\\n\")}\n}\n`,\n )\n .join(\"\\n\"),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<\"div\"> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: \"line\" | \"dot\" | \"dashed\";\n nameKey?: string;\n labelKey?: string;\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = \"dot\",\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item.dataKey || item.name || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === \"string\"\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return <div className={cn(\"font-medium\", labelClassName)}>{labelFormatter(value, payload)}</div>;\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn(\"font-medium\", labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\";\n\n return (\n <div\n ref={ref}\n className={cn(\n \"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl\",\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n \"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\",\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\"shrink-0 rounded-[2px] border-[--color-border] bg-[--color-bg]\", {\n \"h-2.5 w-2.5\": indicator === \"dot\",\n \"w-1\": indicator === \"line\",\n \"w-0 border-[1.5px] border-dashed bg-transparent\": indicator === \"dashed\",\n \"my-0.5\": nestLabel && indicator === \"dashed\",\n })}\n style={\n {\n \"--color-bg\": indicatorColor,\n \"--color-border\": indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n \"flex flex-1 justify-between leading-none\",\n nestLabel ? \"items-end\" : \"items-center\",\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = \"ChartTooltip\";\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> &\n Pick<RechartsPrimitive.LegendProps, \"payload\" | \"verticalAlign\"> & {\n hideIcon?: boolean;\n nameKey?: string;\n }\n>(({ className, hideIcon = false, payload, verticalAlign = \"bottom\", nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\"flex items-center justify-center gap-4\", verticalAlign === \"top\" ? \"pb-3\" : \"pt-3\", className)}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || \"value\"}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\")}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = \"ChartLegend\";\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== \"object\" || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n \"payload\" in payload && typeof payload.payload === \"object\" && payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof payload[key as keyof typeof payload] === \"string\") {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === \"string\"\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport { ChartContainer, ChartTooltip, ChartTooltipContent, ChartLegend, ChartLegendContent, ChartStyle };\n","import * as React from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { Check } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\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-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className={cn(\"flex items-center justify-center text-current\")}>\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = CheckboxPrimitive.Root.displayName;\n\nexport { Checkbox };\n","import * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","import * as React from \"react\";\nimport { type DialogProps } from \"@radix-ui/react-dialog\";\nimport { Command as CommandPrimitive } from \"cmdk\";\nimport { Search } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\nimport { Dialog, DialogContent } from \"./dialog\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n />\n));\nCommand.displayName = CommandPrimitive.displayName;\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n};\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"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\",\n className,\n )}\n {...props}\n />\n </div>\n));\n\nCommandInput.displayName = CommandPrimitive.Input.displayName;\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n));\n\nCommandList.displayName = CommandPrimitive.List.displayName;\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => <CommandPrimitive.Empty ref={ref} className=\"py-6 text-center text-sm\" {...props} />);\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName;\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName;\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator ref={ref} className={cn(\"-mx-1 h-px bg-border\", className)} {...props} />\n));\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName;\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50\",\n className,\n )}\n {...props}\n />\n));\n\nCommandItem.displayName = CommandPrimitive.Item.displayName;\n\nconst CommandShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />;\n};\nCommandShortcut.displayName = \"CommandShortcut\";\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n","import * as React from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\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/80 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 bg-background p-6 shadow-lg 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]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className,\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 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 = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-1.5 text-center sm:text-left\", className)} {...props} />\n);\nDialogHeader.displayName = \"DialogHeader\";\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />\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(\"text-lg font-semibold leading-none tracking-tight\", className)}\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 ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\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","import * as React from \"react\";\nimport * as ContextMenuPrimitive from \"@radix-ui/react-context-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst ContextMenu = ContextMenuPrimitive.Root;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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]:zoom-out-95 data-[state=open]:zoom-in-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));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 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]:zoom-out-95 data-[state=open]:zoom-in-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 </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold text-foreground\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-border\", className)} {...props} />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nconst ContextMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />;\n};\nContextMenuShortcut.displayName = \"ContextMenuShortcut\";\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n","import * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from '../../lib/utils';\n\nconst Drawer = ({ shouldScaleBackground = true, ...props }: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay ref={ref} className={cn(\"fixed inset-0 z-50 bg-black/80\", className)} {...props} />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className,\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)} {...props} />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)} {...props} />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","import * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent focus:bg-accent\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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]:zoom-out-95 data-[state=open]:zoom-in-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));\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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]:zoom-out-95 data-[state=open]:zoom-in-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 </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-muted\", className)} {...props} />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)} {...props} />;\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { Controller, ControllerProps, FieldPath, FieldValues, FormProvider, useFormContext } from \"react-hook-form\";\n\nimport { cn } from '../../lib/utils';\nimport { Label } from \"./label\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>({} as FormFieldContextValue);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>({} as FormItemContextValue);\n\nconst FormItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n },\n);\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return <Label ref={ref} className={cn(error && \"text-destructive\", className)} htmlFor={formItemId} {...props} />;\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<React.ElementRef<typeof Slot>, React.ComponentPropsWithoutRef<typeof Slot>>(\n ({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={!error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`}\n aria-invalid={!!error}\n {...props}\n />\n );\n },\n);\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return <p ref={ref} id={formDescriptionId} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />;\n },\n);\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n ({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p ref={ref} id={formMessageId} className={cn(\"text-sm font-medium text-destructive\", className)} {...props}>\n {body}\n </p>\n );\n },\n);\nFormMessage.displayName = \"FormMessage\";\n\nexport { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField };\n","import * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from '../../lib/utils';\n\nconst labelVariants = cva(\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\");\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root ref={ref} className={cn(labelVariants(), className)} {...props} />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","import * as React from \"react\";\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\";\n\nimport { cn } from '../../lib/utils';\n\nconst HoverCard = HoverCardPrimitive.Root;\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n React.ElementRef<typeof HoverCardPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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]:zoom-out-95 data-[state=open]:zoom-in-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));\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n","import * as React from \"react\";\n\nimport { cn } from '../../lib/utils';\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n },\n);\nInput.displayName = \"Input\";\n\nexport { Input };\n","import * as React from \"react\";\nimport { OTPInput, OTPInputContext } from \"input-otp\";\nimport { Dot } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst InputOTP = React.forwardRef<React.ElementRef<typeof OTPInput>, React.ComponentPropsWithoutRef<typeof OTPInput>>(\n ({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\"flex items-center gap-2 has-[:disabled]:opacity-50\", containerClassName)}\n className={cn(\"disabled:cursor-not-allowed\", className)}\n {...props}\n />\n ),\n);\nInputOTP.displayName = \"InputOTP\";\n\nconst InputOTPGroup = React.forwardRef<React.ElementRef<\"div\">, React.ComponentPropsWithoutRef<\"div\">>(\n ({ className, ...props }, ref) => <div ref={ref} className={cn(\"flex items-center\", className)} {...props} />,\n);\nInputOTPGroup.displayName = \"InputOTPGroup\";\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<\"div\">,\n React.ComponentPropsWithoutRef<\"div\"> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n return (\n <div\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md\",\n isActive && \"z-10 ring-2 ring-ring ring-offset-background\",\n className,\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink h-4 w-px bg-foreground duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = \"InputOTPSlot\";\n\nconst InputOTPSeparator = React.forwardRef<React.ElementRef<\"div\">, React.ComponentPropsWithoutRef<\"div\">>(\n ({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n ),\n);\nInputOTPSeparator.displayName = \"InputOTPSeparator\";\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n","import * as React from \"react\";\nimport * as MenubarPrimitive from \"@radix-ui/react-menubar\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst MenubarMenu: typeof MenubarPrimitive.Menu = MenubarPrimitive.Menu;\n\nconst MenubarGroup: typeof MenubarPrimitive.Group = MenubarPrimitive.Group;\n\nconst MenubarPortal: typeof MenubarPrimitive.Portal = MenubarPrimitive.Portal;\n\nconst MenubarSub: typeof MenubarPrimitive.Sub = MenubarPrimitive.Sub;\n\nconst MenubarRadioGroup: typeof MenubarPrimitive.RadioGroup = MenubarPrimitive.RadioGroup;\n\nconst Menubar = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Root\n ref={ref}\n className={cn(\"flex h-10 items-center space-x-1 rounded-md border bg-background p-1\", className)}\n {...props}\n />\n));\nMenubar.displayName = MenubarPrimitive.Root.displayName;\n\nconst MenubarTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n {...props}\n />\n));\nMenubarTrigger.displayName = MenubarPrimitive.Trigger.displayName;\n\nconst MenubarSubTrigger = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <MenubarPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n));\nMenubarSubTrigger.displayName = MenubarPrimitive.SubTrigger.displayName;\n\nconst MenubarSubContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground 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]:zoom-out-95 data-[state=open]:zoom-in-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));\nMenubarSubContent.displayName = MenubarPrimitive.SubContent.displayName;\n\nconst MenubarContent = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Content>\n>(({ className, align = \"start\", alignOffset = -4, sideOffset = 8, ...props }, ref) => (\n <MenubarPrimitive.Portal>\n <MenubarPrimitive.Content\n ref={ref}\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 </MenubarPrimitive.Portal>\n));\nMenubarContent.displayName = MenubarPrimitive.Content.displayName;\n\nconst MenubarItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n inset && \"pl-8\",\n className,\n )}\n {...props}\n />\n));\nMenubarItem.displayName = MenubarPrimitive.Item.displayName;\n\nconst MenubarCheckboxItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <MenubarPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n));\nMenubarCheckboxItem.displayName = MenubarPrimitive.CheckboxItem.displayName;\n\nconst MenubarRadioItem = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <MenubarPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n));\nMenubarRadioItem.displayName = MenubarPrimitive.RadioItem.displayName;\n\nconst MenubarLabel = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <MenubarPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", inset && \"pl-8\", className)}\n {...props}\n />\n));\nMenubarLabel.displayName = MenubarPrimitive.Label.displayName;\n\nconst MenubarSeparator = React.forwardRef<\n React.ElementRef<typeof MenubarPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <MenubarPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-muted\", className)} {...props} />\n));\nMenubarSeparator.displayName = MenubarPrimitive.Separator.displayName;\n\nconst MenubarShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return <span className={cn(\"ml-auto text-xs tracking-widest text-muted-foreground\", className)} {...props} />;\n};\nMenubarShortcut.displayname = \"MenubarShortcut\";\n\nexport {\n Menubar,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarItem,\n MenubarSeparator,\n MenubarLabel,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarPortal,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarGroup,\n MenubarSub,\n MenubarShortcut,\n};\n","import * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDown } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst NavigationMenu = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Root\n ref={ref}\n className={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...props}\n >\n {children}\n <NavigationMenuViewport />\n </NavigationMenuPrimitive.Root>\n));\nNavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;\n\nconst NavigationMenuList = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.List\n ref={ref}\n className={cn(\"group flex flex-1 list-none items-center justify-center space-x-1\", className)}\n {...props}\n />\n));\nNavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;\n\nconst NavigationMenuItem = NavigationMenuPrimitive.Item;\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50\",\n);\n\nconst NavigationMenuTrigger = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <NavigationMenuPrimitive.Trigger\n ref={ref}\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDown\n className=\"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n));\nNavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;\n\nconst NavigationMenuContent = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Content\n ref={ref}\n className={cn(\n \"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\",\n className,\n )}\n {...props}\n />\n));\nNavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;\n\nconst NavigationMenuLink = NavigationMenuPrimitive.Link;\n\nconst NavigationMenuViewport = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>\n>(({ className, ...props }, ref) => (\n <div className={cn(\"absolute left-0 top-full flex justify-center\")}>\n <NavigationMenuPrimitive.Viewport\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n ref={ref}\n {...props}\n />\n </div>\n));\nNavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;\n\nconst NavigationMenuIndicator = React.forwardRef<\n React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,\n React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>\n>(({ className, ...props }, ref) => (\n <NavigationMenuPrimitive.Indicator\n ref={ref}\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n));\nNavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n};\n","import * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\nimport { ButtonProps, buttonVariants } from \"./button\";\n\nconst Pagination = ({ className, ...props }: React.ComponentProps<\"nav\">) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n);\nPagination.displayName = \"Pagination\";\n\nconst PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => (\n <ul ref={ref} className={cn(\"flex flex-row items-center gap-1\", className)} {...props} />\n ),\n);\nPaginationContent.displayName = \"PaginationContent\";\n\nconst PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn(\"\", className)} {...props} />\n));\nPaginationItem.displayName = \"PaginationItem\";\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<ButtonProps, \"size\"> &\n React.ComponentProps<\"a\">;\n\nconst PaginationLink = ({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) => (\n <a\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className,\n )}\n {...props}\n />\n);\nPaginationLink.displayName = \"PaginationLink\";\n\nconst PaginationPrevious = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink aria-label=\"Go to previous page\" size=\"default\" className={cn(\"gap-1 pl-2.5\", className)} {...props}>\n <ChevronLeft className=\"h-4 w-4\" />\n <span>Previous</span>\n </PaginationLink>\n);\nPaginationPrevious.displayName = \"PaginationPrevious\";\n\nconst PaginationNext = ({ className, ...props }: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink aria-label=\"Go to next page\" size=\"default\" className={cn(\"gap-1 pr-2.5\", className)} {...props}>\n <span>Next</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n);\nPaginationNext.displayName = \"PaginationNext\";\n\nconst PaginationEllipsis = ({ className, ...props }: React.ComponentProps<\"span\">) => (\n <span aria-hidden className={cn(\"flex h-9 w-9 items-center justify-center\", className)} {...props}>\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n);\nPaginationEllipsis.displayName = \"PaginationEllipsis\";\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n","import * as React from \"react\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\n\nimport { cn } from '../../lib/utils';\n\nconst Popover = PopoverPrimitive.Root;\n\nconst PopoverTrigger = PopoverPrimitive.Trigger;\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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]:zoom-out-95 data-[state=open]:zoom-in-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 </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n\nexport { Popover, PopoverTrigger, PopoverContent };\n","import * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from '../../lib/utils';\n\nconst Progress = React.forwardRef<\n React.ElementRef<typeof ProgressPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n <ProgressPrimitive.Root\n ref={ref}\n className={cn(\"relative h-4 w-full overflow-hidden rounded-full bg-secondary\", className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n className=\"h-full w-full flex-1 bg-primary transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","import * as React from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { Circle } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst RadioGroup = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>\n>(({ className, ...props }, ref) => {\n return <RadioGroupPrimitive.Root className={cn(\"grid gap-2\", className)} {...props} ref={ref} />;\n});\nRadioGroup.displayName = RadioGroupPrimitive.Root.displayName;\n\nconst RadioGroupItem = React.forwardRef<\n React.ElementRef<typeof RadioGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item>\n>(({ className, ...props }, ref) => {\n return (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center\">\n <Circle className=\"h-2.5 w-2.5 fill-current text-current\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n});\nRadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;\n\nexport { RadioGroup, RadioGroupItem };\n","import { GripVertical } from \"lucide-react\";\nimport * as ResizablePrimitive from \"react-resizable-panels\";\n\nimport { cn } from '../../lib/utils';\n\nconst ResizablePanelGroup = ({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (\n <ResizablePrimitive.PanelGroup\n className={cn(\"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\", className)}\n {...props}\n />\n);\n\nconst ResizablePanel = ResizablePrimitive.Panel;\n\nconst ResizableHandle = ({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n withHandle?: boolean;\n}) => (\n <ResizablePrimitive.PanelResizeHandle\n className={cn(\n \"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n <GripVertical className=\"h-2.5 w-2.5\" />\n </div>\n )}\n </ResizablePrimitive.PanelResizeHandle>\n);\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n","import * as React from \"react\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\n\nimport { cn } from '../../lib/utils';\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root ref={ref} className={cn(\"relative overflow-hidden\", className)} {...props}>\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">{children}</ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n));\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" && \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" && \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className,\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;\n\nexport { ScrollArea, ScrollBar };\n","import * as React from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\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-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\"flex cursor-default items-center justify-center py-1\", className)}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.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 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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]:zoom-out-95 data-[state=open]:zoom-in-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 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 <SelectScrollUpButton />\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 <SelectScrollDownButton />\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 ref={ref} className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)} {...props} />\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-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground\",\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 <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-muted\", className)} {...props} />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n};\n","import * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport { cn } from '../../lib/utils';\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = \"horizontal\", decorative = true, ...props }, ref) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\"shrink-0 bg-border\", orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\", className)}\n {...props}\n />\n));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { cn } from '../../lib/utils';\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 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 ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n },\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\n ({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\n {children}\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 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 </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n ),\n);\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />\n);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold text-foreground\", className)} {...props} />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetOverlay,\n SheetPortal,\n SheetTitle,\n SheetTrigger,\n};\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { VariantProps, cva } from \"class-variance-authority\";\nimport { PanelLeft } from \"lucide-react\";\n\nimport { useIsMobile } from \"../../hooks/use-mobile\";\nimport { cn } from '../../lib/utils';\nimport { Button } from \"./button\";\nimport { Input } from \"./input\";\nimport { Separator } from \"./separator\";\nimport { Sheet, SheetContent } from \"./sheet\";\nimport { Skeleton } from \"./skeleton\";\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"./tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContext = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = \"SidebarProvider\";\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n }\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\", className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\",\n )}\n />\n <div\n className={cn(\n \"fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] duration-200 ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className,\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = \"Sidebar\";\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 hover:after:bg-sidebar-border sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = \"SidebarRail\";\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex min-h-svh flex-1 flex-col bg-background\",\n \"peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = \"SidebarInset\";\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = \"SidebarInput\";\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\n});\nSidebarHeader.displayName = \"SidebarHeader\";\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\n});\nSidebarFooter.displayName = \"SidebarFooter\";\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = \"SidebarContent\";\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = \"SidebarGroup\";\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)} {...props} />\n));\nSidebarMenu.displayName = \"SidebarMenu\";\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative\", className)} {...props} />\n));\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform peer-hover/menu-button:text-sidebar-accent-foreground hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","import * as React from \"react\";\n\nconst MOBILE_BREAKPOINT = 768;\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined);\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n };\n mql.addEventListener(\"change\", onChange);\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);\n return () => mql.removeEventListener(\"change\", onChange);\n }, []);\n\n return !!isMobile;\n}\n","import { cn } from '../../lib/utils';\n\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return <div className={cn(\"animate-pulse rounded-md bg-muted\", className)} {...props} />;\n}\n\nexport { Skeleton };\n","import * as React from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\n\nimport { cn } from '../../lib/utils';\n\nconst Slider = React.forwardRef<\n React.ElementRef<typeof SliderPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n className={cn(\"relative flex w-full touch-none select-none items-center\", className)}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-full bg-secondary\">\n <SliderPrimitive.Range className=\"absolute h-full bg-primary\" />\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));\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import { useTheme } from \"next-themes\";\nimport { Toaster as Sonner, toast } from \"sonner\";\n\ntype ToasterProps = React.ComponentProps<typeof Sonner>;\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme();\n\n return (\n <Sonner\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: \"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground\",\n cancelButton: \"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground\",\n },\n }}\n {...props}\n />\n );\n};\n\nexport { Toaster, toast };\n","import * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\n\nimport { cn } from '../../lib/utils';\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.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-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input 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\",\n className,\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\",\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import * as React from \"react\";\n\nimport { cn } from '../../lib/utils';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table ref={ref} className={cn(\"w-full caption-bottom text-sm\", className)} {...props} />\n </div>\n ),\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />,\n);\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tbody ref={ref} className={cn(\"[&_tr:last-child]:border-0\", className)} {...props} />\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nconst TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(\n ({ className, ...props }, ref) => (\n <tfoot ref={ref} className={cn(\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)} {...props} />\n ),\n);\nTableFooter.displayName = \"TableFooter\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\"border-b transition-colors data-[state=selected]:bg-muted hover:bg-muted/50\", className)}\n {...props}\n />\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0\",\n className,\n )}\n {...props}\n />\n ),\n);\nTableHead.displayName = \"TableHead\";\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(\n ({ className, ...props }, ref) => (\n <td ref={ref} className={cn(\"p-4 align-middle [&:has([role=checkbox])]:pr-0\", className)} {...props} />\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nconst TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(\n ({ className, ...props }, ref) => (\n <caption ref={ref} className={cn(\"mt-4 text-sm text-muted-foreground\", className)} {...props} />\n ),\n);\nTableCaption.displayName = \"TableCaption\";\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n","import * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from '../../lib/utils';\n\nconst Tabs = 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-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\",\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-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm 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 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-2 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 { Tabs, TabsList, TabsTrigger, TabsContent };\n","import * as React from \"react\";\n\nimport { cn } from '../../lib/utils';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ className, ...props }, ref) => {\n return (\n <textarea\n className={cn(\n \"flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n ref={ref}\n {...props}\n />\n );\n});\nTextarea.displayName = \"Textarea\";\n\nexport { Textarea };\n","import * as React from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from '../../lib/utils';\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n \"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]\",\n className,\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full\",\n {\n variants: {\n variant: {\n default: \"border bg-background text-foreground\",\n destructive: \"destructive group border-destructive bg-destructive text-destructive-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n },\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return <ToastPrimitives.Root ref={ref} className={cn(toastVariants({ variant }), className)} {...props} />;\n});\nToast.displayName = ToastPrimitives.Root.displayName;\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action.displayName;\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600\",\n className,\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close.displayName;\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title ref={ref} className={cn(\"text-sm font-semibold\", className)} {...props} />\n));\nToastTitle.displayName = ToastPrimitives.Title.displayName;\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description ref={ref} className={cn(\"text-sm opacity-90\", className)} {...props} />\n));\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n};\n","import * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"../components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","import { useToast } from \"../../hooks/use-toast\";\nimport { Toast, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport } from \"./toast\";\n\nexport function Toaster() {\n const { toasts } = useToast();\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && <ToastDescription>{description}</ToastDescription>}\n </div>\n {action}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport />\n </ToastProvider>\n );\n}\n","import * as React from \"react\";\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from '../../lib/utils';\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground 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=on]:bg-accent data-[state=on]:text-accent-foreground\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-10 px-3\",\n sm: \"h-9 px-2.5\",\n lg: \"h-11 px-5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nconst Toggle = React.forwardRef<\n React.ElementRef<typeof TogglePrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof TogglePrimitive.Root> & VariantProps<typeof toggleVariants>\n>(({ className, variant, size, ...props }, ref) => (\n <TogglePrimitive.Root ref={ref} className={cn(toggleVariants({ variant, size, className }))} {...props} />\n));\n\nToggle.displayName = TogglePrimitive.Root.displayName;\n\nexport { Toggle, toggleVariants };\n","import * as React from \"react\";\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\";\nimport { type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from '../../lib/utils';\nimport { toggleVariants } from \"./toggle\";\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n size: \"default\",\n variant: \"default\",\n});\n\nconst ToggleGroup = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n <ToggleGroupPrimitive.Root ref={ref} className={cn(\"flex items-center justify-center gap-1\", className)} {...props}>\n <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n));\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;\n\nconst ToggleGroupItem = React.forwardRef<\n React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n ref={ref}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className,\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n});\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;\n\nexport { ToggleGroup, ToggleGroupItem };\n","import { BookOpen, Home, Layers } from \"lucide-react\";\nimport type { NavItem } from \"../components/cupcode/NavbarCupcode\";\n\nexport const getMainNavItems = (): NavItem[] => [\n {\n label: \"Início\",\n href: \"/\",\n icon: <Home className=\"h-4 w-4\" />,\n },\n {\n label: \"Design System\",\n href: \"/design-system\",\n icon: <Layers className=\"h-4 w-4\" />,\n },\n {\n label: \"Docs\",\n href: \"/docs\",\n icon: <BookOpen className=\"h-4 w-4\" />,\n },\n];\n","import type { DockCategory } from \"../components/cupcode/DockWrapper\";\n\nexport const mainDockCategories: DockCategory[] = [\n {\n id: \"home\",\n title: \"Home\",\n slug: \"mn-homepage\",\n order: 0,\n tooltip: \"Página inicial\",\n href: \"/\",\n bgImageUrl: \"92b6c6ac-6e41-47cf-9b92-0e16131af1c4\",\n cards: [],\n },\n {\n id: \"marketing\",\n title: \"Marketing\",\n slug: \"marketing\",\n order: 1,\n tooltip: \"Serviços de Marketing\",\n bgImageUrl: \"f9a6fe47-b519-483b-8b14-a86402d30e78\",\n cards: [\n {\n title: \"Branding\",\n description: \"Otimização para mecanismos de busca\",\n buttons: [\n { type: \"link\", label: \"Saiba mais >\", href: \"/marketing/seo\" },\n ],\n },\n {\n title: \"Redes Sociais\",\n description: \"Gestão de redes sociais\",\n buttons: [\n { type: \"link\", label: \"Saiba mais >\", href: \"/marketing/social\" },\n ],\n },\n ],\n },\n {\n id: \"desenvolvimento\",\n title: \"Desenvolvimento\",\n slug: \"mn-desenvolvimento\",\n order: 2,\n tooltip: \"Desenvolvimento Web\",\n bgImageUrl: \"308d748a-14f1-4794-bd42-d36c4d082983\",\n cards: [\n {\n title: \"Frontend\",\n description: \"React, Vue, Angular\",\n buttons: [\n { type: \"link\", label: \"Saiba mais >\", href: \"/dev/frontend\" },\n ],\n },\n {\n title: \"Backend\",\n description: \"Node.js, Python, PHP\",\n buttons: [\n { type: \"link\", label: \"Saiba mais >\", href: \"/dev/backend\" },\n ],\n },\n ],\n },\n {\n id: \"solucoes\",\n title: \"Soluções\",\n slug: \"mn-solucoes\",\n order: 3,\n tooltip: \"Nossas Soluções\",\n bgImageUrl: \"3d166e89-1cd0-48aa-a056-c849f3a749b2\",\n cards: [\n {\n title: \"Cloud Computing\",\n description: \"Infraestrutura escalável\",\n buttons: [\n { type: \"link\", label: \"Saiba mais >\", href: \"/solucoes/cloud\" },\n ],\n },\n ],\n },\n {\n id: \"cases\",\n title: \"Cases\",\n slug: \"mn-cases-de-sucesso\",\n order: 4,\n tooltip: \"Cases de Sucesso\",\n href: \"/cases\",\n bgImageUrl: \"a22bc9cf-ed3d-44a1-b53f-10ebe9960a52\",\n cards: [],\n },\n {\n id: \"sobre-nos\",\n title: \"Sobre Nós\",\n slug: \"mn-sobre-nos\",\n order: 5,\n tooltip: \"Conheça a Cupcode\",\n href: \"/sobre-nos\",\n bgImageUrl: \"2916aa79-3d21-4d1c-9787-1969f5e2b865\",\n cards: [],\n },\n {\n id: \"contato\",\n title: \"Contato\",\n slug: \"mn-contato\",\n order: 6,\n tooltip: \"Fale conosco\",\n href: \"/contato\",\n bgImageUrl: \"102c3568-cb5a-48b8-878b-1ba170c3e8f5\",\n cards: [],\n },\n];\n"],"mappings":"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","names":["React","jsx","jsxs","jsx","jsxs","useEffect","useRef","jsx","jsxs","forwardRef","jsx","jsxs","sizeClasses","forwardRef","jsx","jsx","jsxs","useRef","useEffect","React","jsx","jsx","jsxs","useRef","useEffect","useEffect","useRef","useState","useEffect","jsx","jsxs","useRef","useEffect","_a","forwardRef","useEffect","useRef","jsx","jsxs","sizeClasses","variantStyles","jsx","jsxs","Icon","React","jsx","jsxs","React","forwardRef","jsx","jsx","jsxs","React","jsx","jsxs","useEffect","useRef","useEffect","useState","jsx","jsxs","useRef","useEffect","jsx","jsx","jsxs","React","X","jsx","jsxs","sizeClasses","X","React","X","jsx","jsxs","X","useEffect","useRef","jsx","count","useRef","useEffect","jsx","jsxs","React","jsx","jsxs","sizeClasses","React","Check","ChevronDown","jsx","jsxs","ChevronDown","Check","React","jsx","jsxs","React","jsx","jsx","jsx","React","jsx","jsxs","React","jsx","jsxs","jsx","jsxs","X","AlertTriangle","jsx","jsxs","variantStyles","AlertTriangle","Icon","X","React","TooltipPrimitive","jsx","TooltipProvider","TooltipTrigger","TooltipContent","React","AccordionPrimitive","ChevronDown","jsx","jsxs","AccordionItem","AccordionTrigger","ChevronDown","AccordionContent","React","jsx","React","React","cva","jsx","cva","jsx","jsxs","React","AvatarPrimitive","jsx","Avatar","AvatarImage","AvatarFallback","cva","jsx","cva","Badge","React","Slot","jsx","jsxs","Slot","ChevronRight","jsx","ChevronRight","React","jsx","React","jsx","jsxs","api","React","Fragment","jsx","jsxs","config","React","Check","jsx","Check","CollapsibleTrigger","CollapsibleContent","React","React","DialogPrimitive","X","jsx","jsxs","X","jsx","jsxs","React","Check","ChevronRight","jsx","jsxs","ChevronRight","Check","React","jsx","jsxs","React","Check","ChevronRight","Circle","jsx","jsxs","ChevronRight","Check","Circle","React","Slot","React","cva","jsx","cva","Label","jsx","Label","Slot","React","jsx","React","jsx","React","jsx","jsxs","React","Check","ChevronRight","Circle","jsx","jsxs","ChevronRight","Check","Circle","React","cva","ChevronDown","jsx","jsxs","cva","ChevronDown","React","ChevronLeft","ChevronRight","MoreHorizontal","jsx","jsxs","ChevronLeft","ChevronRight","MoreHorizontal","React","jsx","React","ProgressPrimitive","jsx","React","Circle","jsx","RadioGroup","Circle","jsx","React","jsx","jsxs","React","SelectPrimitive","Check","ChevronDown","jsx","jsxs","Select","SelectGroup","SelectValue","SelectTrigger","ChevronDown","SelectContent","SelectItem","Check","React","jsx","Separator","cva","X","React","jsx","jsxs","cva","X","React","Slot","cva","React","jsx","Skeleton","jsx","jsxs","open","Separator","Slot","cva","Skeleton","React","jsx","jsxs","useTheme","jsx","React","SwitchPrimitives","jsx","Switch","React","jsx","React","TabsPrimitive","jsx","Tabs","TabsList","TabsTrigger","TabsContent","React","jsx","React","cva","X","jsx","cva","X","React","toast","props","jsx","jsxs","Toaster","React","cva","jsx","cva","React","jsx","jsx"]}
|