@snow-labs/brutal-ui 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/brutal/cta-section.js +8 -7
- package/dist/components/brutal/cta-section.js.map +1 -1
- package/dist/components/brutal/faq.d.ts +1 -1
- package/dist/components/brutal/faq.js +2 -5
- package/dist/components/brutal/faq.js.map +1 -1
- package/dist/components/brutal/feature-grid.d.ts +1 -1
- package/dist/components/brutal/feature-grid.js +13 -47
- package/dist/components/brutal/feature-grid.js.map +1 -1
- package/dist/components/brutal/hero.d.ts +1 -1
- package/dist/components/brutal/hero.js +4 -7
- package/dist/components/brutal/hero.js.map +1 -1
- package/dist/components/brutal/index.js +28 -58
- package/dist/components/brutal/index.js.map +1 -1
- package/dist/components/brutal/integration-grid.d.ts +1 -1
- package/dist/components/brutal/integration-grid.js +0 -3
- package/dist/components/brutal/integration-grid.js.map +1 -1
- package/dist/components/brutal/logo-cloud.d.ts +1 -1
- package/dist/components/brutal/logo-cloud.js +0 -3
- package/dist/components/brutal/logo-cloud.js.map +1 -1
- package/dist/components/brutal/newsletter.d.ts +1 -1
- package/dist/components/brutal/newsletter.js +0 -3
- package/dist/components/brutal/newsletter.js.map +1 -1
- package/dist/components/brutal/pricing-table.d.ts +1 -1
- package/dist/components/brutal/pricing-table.js +0 -3
- package/dist/components/brutal/pricing-table.js.map +1 -1
- package/dist/components/brutal/section.d.ts +1 -1
- package/dist/components/brutal/section.js +0 -3
- package/dist/components/brutal/section.js.map +1 -1
- package/dist/components/brutal/stats-bar.d.ts +1 -1
- package/dist/components/brutal/stats-bar.js +0 -3
- package/dist/components/brutal/stats-bar.js.map +1 -1
- package/dist/components/brutal/testimonials.js +1 -4
- package/dist/components/brutal/testimonials.js.map +1 -1
- package/dist/components/ui/badge.d.ts +1 -1
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/tabs.d.ts +1 -1
- package/dist/index.js +35 -65
- package/dist/index.js.map +1 -1
- package/dist/templates/index.js +35 -65
- package/dist/templates/index.js.map +1 -1
- package/dist/templates/saas-launch.js +32 -62
- package/dist/templates/saas-launch.js.map +1 -1
- package/dist/templates/studio.js +29 -59
- package/dist/templates/studio.js.map +1 -1
- package/dist/theme.css +5 -15
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/button.tsx","../src/components/ui/card.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/input.tsx","../src/components/ui/textarea.tsx","../src/components/ui/input-group.tsx","../src/components/ui/command.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/drawer.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/label.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/scroll-area.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/slider.tsx","../src/components/ui/switch.tsx","../src/components/ui/tabs.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/ui/tooltip.tsx","../src/lib/animations.ts","../src/components/brutal/section.tsx","../src/components/brutal/section-divider.tsx","../src/components/brutal/hero.tsx","../src/components/brutal/feature-grid.tsx","../src/components/brutal/testimonials.tsx","../src/components/brutal/integration-grid.tsx","../src/components/brutal/cta-section.tsx","../src/components/brutal/nav.tsx","../src/components/brutal/footer.tsx","../src/components/brutal/pricing-table.tsx","../src/components/brutal/logo-cloud.tsx","../src/components/brutal/stats-bar.tsx","../src/components/brutal/faq.tsx","../src/components/brutal/newsletter.tsx","../src/components/dashboard/app-shell.tsx","../src/components/dashboard/sidebar.tsx","../src/components/dashboard/stat-card.tsx","../src/components/dashboard/view-switcher.tsx","../src/components/dashboard/search-bar.tsx","../src/components/dashboard/user-menu.tsx","../src/components/dashboard/empty-state.tsx","../src/components/dashboard/activity-feed.tsx","../src/components/dashboard/file-upload.tsx","../src/components/views/data-table.tsx","../src/components/views/kanban-board.tsx","../src/components/views/grid-view.tsx","../src/components/views/calendar-view.tsx","../src/components/views/list-view.tsx","../src/templates/saas-launch.tsx","../src/templates/studio.tsx","../src/templates/dashboard.tsx"],"names":["AccordionPrimitive","jsx","AvatarPrimitive","cva","useRender","mergeProps","jsxs","ButtonPrimitive","CheckboxPrimitive","CollapsiblePrimitive","DialogPrimitive","InputPrimitive","CommandPrimitive","CheckIcon","ContextMenuPrimitive","ChevronRightIcon","DrawerPrimitive","MenuPrimitive","PreviewCardPrimitive","MenubarPrimitive","NavigationMenuPrimitive","ChevronDownIcon","MoreHorizontalIcon","PopoverPrimitive","ProgressPrimitive","RadioGroupPrimitive","RadioPrimitive","ScrollAreaPrimitive","SelectPrimitive","ChevronUpIcon","SeparatorPrimitive","SheetPrimitive","XIcon","React","SliderPrimitive","SwitchPrimitive","TabsPrimitive","TogglePrimitive","ToggleGroupPrimitive","TooltipPrimitive","Fragment","Menu","useState","useEffect","createContext","useContext","useRef"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\n\nfunction Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-brutal border-foreground rounded-lg mb-2 px-3\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionPrimitive.Trigger.Props) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-bold transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionPrimitive.Panel.Props) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\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 \"group/alert relative grid w-full gap-0.5 rounded-lg border-brutal border-foreground shadow-brutal-sm px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"font-bold group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(\"absolute top-2 right-2\", className)}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\n \"aspect-square size-full rounded-full object-cover\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarBadge,\n}\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"group/badge inline-flex w-fit shrink-0 items-center justify-center gap-1 rounded-md whitespace-nowrap font-bold transition-all [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default:\n \"border-brutal border-foreground bg-primary px-3 py-1 text-xs text-primary-foreground shadow-brutal-sm\",\n secondary:\n \"border-brutal border-foreground bg-secondary px-3 py-1 text-xs text-secondary-foreground shadow-brutal-sm\",\n brand:\n \"border-brutal border-foreground bg-brand px-3 py-1 text-xs text-brand-foreground shadow-brutal-sm\",\n cta: \"border-brutal border-foreground bg-cta px-3 py-1 text-xs text-cta-foreground shadow-brutal-sm\",\n outline:\n \"border-brutal border-foreground bg-background px-3 py-1 text-xs text-foreground\",\n destructive:\n \"border-brutal border-destructive bg-destructive/10 px-3 py-1 text-xs text-destructive\",\n ghost: \"px-2 py-0.5 text-xs text-muted-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>) {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n className: cn(badgeVariants({ variant }), className),\n },\n props\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n },\n });\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm font-bold wrap-break-word text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"a\">) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\"transition-colors hover:text-foreground\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\n },\n })\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-bold text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"font-mono text-foreground [&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? (\n <ChevronRightIcon />\n )}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n \"flex size-5 items-center justify-center [&>svg]:size-4\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg whitespace-nowrap font-bold transition-all duration-150 select-none outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n // Primary: Black bg, white text, offset shadow\n default:\n \"border-brutal border-foreground bg-primary text-primary-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // CTA: Mint green bg — the Bannerbear signature\n cta: \"border-brutal border-foreground bg-cta text-cta-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Brand: Dynamic brand color bg\n brand:\n \"border-brutal border-foreground bg-brand text-brand-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Outline: White bg, black border, offset shadow\n outline:\n \"border-brutal border-foreground bg-background text-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Secondary: Light bg, border, smaller shadow\n secondary:\n \"border-brutal border-foreground bg-secondary text-secondary-foreground shadow-brutal-sm hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal active:translate-x-px active:translate-y-px active:shadow-none\",\n // Ghost: No border/shadow, subtle hover\n ghost: \"hover:bg-secondary hover:text-foreground\",\n // Link: Text only\n link: \"text-foreground underline-offset-4 hover:underline\",\n // Destructive\n destructive:\n \"border-brutal border-destructive bg-destructive text-destructive-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Nav: Thin border, no shadow (for nav Sign In buttons)\n nav: \"border border-foreground bg-background text-foreground hover:bg-foreground hover:text-background\",\n },\n size: {\n xs: \"h-7 gap-1 px-2.5 text-xs\",\n sm: \"h-8 gap-1.5 px-3 text-sm\",\n default: \"h-10 gap-2 px-5 text-sm\",\n lg: \"h-12 gap-2 px-7 text-base\",\n xl: \"h-14 gap-2.5 px-9 text-lg\",\n icon: \"size-10\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-12\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Card({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"group/card flex flex-col gap-4 rounded-lg border-brutal border-foreground bg-card p-5 text-card-foreground shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\"flex flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-lg font-bold leading-snug\", className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\"self-start justify-self-end\", className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center border-t-brutal border-foreground pt-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n","\"use client\"\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\n\nimport { cn } from \"../../lib/utils\"\nimport { CheckIcon } from \"lucide-react\"\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-5 shrink-0 items-center justify-center rounded-md border-brutal border-foreground transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n )\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: DialogPrimitive.Close.Props) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: DialogPrimitive.Backdrop.Props) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/60 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: DialogPrimitive.Popup.Props & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n \"fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border-brutal border-foreground bg-background p-4 text-sm shadow-brutal-lg duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-2 right-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Popup>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-lg border-t-2 border-foreground bg-muted/50 p-4 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close render={<Button variant=\"outline\" />}>\n Close\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-base leading-none font-bold\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: DialogPrimitive.Description.Props) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import * as React from \"react\";\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-10 w-full min-w-0 rounded-lg border-brutal border-foreground bg-background px-3 py-2 text-base font-medium shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground focus:shadow-brutal focus:-translate-x-0.5 focus:-translate-y-0.5 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive md:text-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full rounded-lg border-brutal border-foreground bg-background px-2.5 py-2 text-base shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:-translate-x-0.5 focus-visible:-translate-y-0.5 focus-visible:shadow-brutal disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\"\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\n\nimport { cn } from \"../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"./dialog\"\nimport {\n InputGroup,\n InputGroupAddon,\n} from \"./input-group\"\nimport { SearchIcon, CheckIcon } from \"lucide-react\"\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-lg! border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal-lg\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = false,\n ...props\n}: Omit<React.ComponentProps<typeof Dialog>, \"children\"> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n children: React.ReactNode\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n \"top-1/3 translate-y-0 overflow-hidden rounded-lg! p-0\",\n className\n )}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn(\"py-6 text-center text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\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}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronRightIcon, CheckIcon } from \"lucide-react\"\n\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n )\n}\n\nfunction ContextMenuTrigger({\n className,\n ...props\n}: ContextMenuPrimitive.Trigger.Props) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n align = \"start\",\n alignOffset = 4,\n side = \"right\",\n sideOffset = 0,\n ...props\n}: ContextMenuPrimitive.Popup.Props &\n Pick<\n ContextMenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <ContextMenuPrimitive.Popup\n data-slot=\"context-menu-content\"\n className={cn(\"z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ContextMenuPrimitive.Positioner>\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n )\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return (\n <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n )\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction ContextMenuSubContent({\n ...props\n}: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n className=\"shadow-lg\"\n side=\"right\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: ContextMenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: ContextMenuPrimitive.RadioGroup.Props) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: ContextMenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuPrimitive.Separator.Props) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\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","\"use client\"\n\nimport * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Drawer({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />\n}\n\nfunction DrawerTrigger({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />\n}\n\nfunction DrawerPortal(props: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal {...props} />\n}\n\nfunction DrawerClose({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/60 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content fixed z-50 flex h-auto flex-col border-brutal border-foreground bg-background text-sm shadow-brutal-lg data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-lg data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-lg data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </>\n )\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\"text-base font-bold text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronRightIcon, CheckIcon } from \"lucide-react\"\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<\n MenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\"z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"w-auto min-w-[96px] rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","\"use client\"\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return (\n <PreviewCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n )\n}\n\nfunction HoverCardContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<\n PreviewCardPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PreviewCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 origin-(--transform-origin) rounded-lg border-brutal border-foreground bg-popover p-2.5 text-sm text-popover-foreground shadow-brutal outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-bold select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\"\n\nimport { cn } from \"../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\nimport { CheckIcon } from \"lucide-react\"\n\nfunction Menubar({ className, ...props }: MenubarPrimitive.Props) {\n return (\n <MenubarPrimitive\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-0.5 rounded-lg border-brutal border-foreground p-[3px] shadow-brutal-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {\n return <DropdownMenu data-slot=\"menubar-menu\" {...props} />\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuGroup>) {\n return <DropdownMenuGroup data-slot=\"menubar-group\" {...props} />\n}\n\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPortal>) {\n return <DropdownMenuPortal data-slot=\"menubar-portal\" {...props} />\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuTrigger>) {\n return (\n <DropdownMenuTrigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-md px-1.5 py-[2px] text-sm font-bold outline-hidden select-none hover:bg-muted aria-expanded:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\"min-w-36 rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95\", className )}\n {...props}\n />\n )\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuItem>) {\n return (\n <DropdownMenuItem\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/menubar-item gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuRadioGroup>) {\n return <DropdownMenuRadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuLabel> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuLabel\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-sm font-medium data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSeparator>) {\n return (\n <DropdownMenuSeparator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuShortcut>) {\n return (\n <DropdownMenuShortcut\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuSub>) {\n return <DropdownMenuSub data-slot=\"menubar-sub\" {...props} />\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuSubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubContent>) {\n return (\n <DropdownMenuSubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\"min-w-32 rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n}\n","import { NavigationMenu as NavigationMenuPrimitive } from \"@base-ui/react/navigation-menu\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronDownIcon } from \"lucide-react\"\n\nfunction NavigationMenu({\n align = \"start\",\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props &\n Pick<NavigationMenuPrimitive.Positioner.Props, \"align\">) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center gap-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg bg-background px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted\"\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\" aria-hidden=\"true\" />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 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 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n \"isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0\",\n className\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n )\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in 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.Icon>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? \"default\" : \"ghost\"}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n {...props}\n />\n }\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n text = \"Previous\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"pl-1.5!\", className)}\n {...props}\n >\n <ChevronLeftIcon data-icon=\"inline-start\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n text = \"Next\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"pr-1.5!\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<\n PopoverPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n \"z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg border-brutal border-foreground bg-popover p-2.5 text-sm text-popover-foreground shadow-brutal outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-0.5 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n}\n","\"use client\"\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Progress({\n className,\n children,\n value,\n ...props\n}: ProgressPrimitive.Root.Props) {\n return (\n <ProgressPrimitive.Root\n value={value}\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-3\", className)}\n {...props}\n >\n {children}\n <ProgressTrack>\n <ProgressIndicator />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n )\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"relative flex h-3 w-full items-center overflow-x-hidden rounded-full border-brutal border-foreground bg-muted\",\n className\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n )\n}\n\nfunction ProgressIndicator({\n className,\n ...props\n}: ProgressPrimitive.Indicator.Props) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"h-full bg-brand transition-all\", className)}\n {...props}\n />\n )\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"text-sm font-bold\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n )\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\n \"ml-auto text-sm text-muted-foreground tabular-nums\",\n className\n )}\n data-slot=\"progress-value\"\n {...props}\n />\n )\n}\n\nexport {\n Progress,\n ProgressTrack,\n ProgressIndicator,\n ProgressLabel,\n ProgressValue,\n}\n","\"use client\"\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\"\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {\n return (\n <RadioGroupPrimitive\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {\n return (\n <RadioPrimitive.Root\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-5 shrink-0 rounded-full border-brutal border-foreground outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <RadioPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-5 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-foreground/20\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from \"lucide-react\"\n\nconst Select = SelectPrimitive.Root\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border-brutal border-foreground bg-background py-2 pr-2 pl-2.5 text-sm whitespace-nowrap shadow-brutal-sm transition-all outline-none select-none hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n }\n />\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\"relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover text-popover-foreground shadow-brutal duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon\n />\n </SelectPrimitive.ScrollUpArrow>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon\n />\n </SelectPrimitive.ScrollDownArrow>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-foreground data-horizontal:h-0.5 data-horizontal:w-full data-vertical:w-0.5 data-vertical:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/60 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 border-brutal border-foreground bg-background bg-clip-padding text-sm shadow-brutal-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-3 right-3\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-0.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"text-base font-bold text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import { cn } from \"../../lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-lg bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slider as SliderPrimitive } from \"@base-ui/react/slider\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n return (\n <SliderPrimitive.Root\n className={cn(\"data-horizontal:w-full data-vertical:h-full\", className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-full border-brutal border-foreground bg-muted select-none data-horizontal:h-3 data-horizontal:w-full data-vertical:h-full data-vertical:w-3\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"relative block size-5 shrink-0 rounded-full border-brutal border-foreground bg-white shadow-brutal-sm transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport { Switch as SwitchPrimitive } from \"@base-ui/react/switch\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer group/switch relative inline-flex shrink-0 items-center rounded-full border-brutal border-foreground transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[20px] data-[size=default]:w-[36px] data-[size=sm]:h-[16px] data-[size=sm]:w-[28px] data-checked:bg-primary data-unchecked:bg-input data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full border border-foreground bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","\"use client\"\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-horizontal:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"group/tabs-list inline-flex w-fit items-center justify-center rounded-lg border-brutal border-foreground p-[3px] text-muted-foreground group-data-horizontal/tabs:h-9 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none data-[variant=line]:border-0\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-0.5 text-sm font-bold whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-brutal-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:bg-brand data-active:text-brand-foreground data-active:border-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 text-sm outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","\"use client\"\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:border-brutal aria-pressed:border-foreground aria-pressed:bg-muted aria-pressed:shadow-brutal-sm data-[state=on]:border-brutal data-[state=on]:border-foreground data-[state=on]:bg-muted data-[state=on]:shadow-brutal-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-brutal border-foreground bg-transparent shadow-brutal-sm hover:bg-muted\",\n },\n size: {\n default: \"h-8 min-w-8 px-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]\",\n lg: \"h-9 min-w-9 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-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<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[var(--gap)] rounded-lg border-brutal border-foreground data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","\"use client\"\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md border-brutal border-foreground bg-foreground px-3 py-1.5 text-xs font-medium text-background shadow-brutal-sm has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","// Shared animation variants for framer-motion (optional peer dep)\n// These are plain objects — they work even if framer-motion isn't installed\n\nexport const fadeInUp = {\n hidden: { opacity: 0, y: 20 },\n visible: { opacity: 1, y: 0 },\n};\n\nexport const fadeIn = {\n hidden: { opacity: 0 },\n visible: { opacity: 1 },\n};\n\nexport const staggerContainer = {\n hidden: {},\n visible: {\n transition: {\n staggerChildren: 0.08,\n delayChildren: 0.1,\n },\n },\n};\n\nexport const scaleIn = {\n hidden: { opacity: 0, scale: 0.95 },\n visible: { opacity: 1, scale: 1 },\n};\n\nexport const slideInLeft = {\n hidden: { opacity: 0, x: -30 },\n visible: { opacity: 1, x: 0 },\n};\n\nexport const slideInRight = {\n hidden: { opacity: 0, x: 30 },\n visible: { opacity: 1, x: 0 },\n};\n\nexport const defaultTransition = {\n duration: 0.5,\n ease: [0.25, 0.1, 0.25, 1],\n};\n\nexport const springTransition = {\n type: \"spring\" as const,\n stiffness: 300,\n damping: 30,\n};\n","import { cn } from \"../../lib/utils\";\n\nexport type SectionColor =\n | \"white\"\n | \"brand\"\n | \"brand-muted\"\n | \"blue\"\n | \"gray\"\n | \"cream\"\n | \"black\"\n | \"cta\";\n\nexport type SectionPattern =\n | \"dots\"\n | \"stripes\"\n | \"noise\"\n | \"grain\"\n | \"crosshatch\"\n | \"grid-dots\"\n | \"gradient-mesh\"\n | \"none\";\n\ninterface BrutalSectionProps {\n children: React.ReactNode;\n color?: SectionColor;\n className?: string;\n containerSize?: \"sm\" | \"default\" | \"lg\";\n padding?: \"sm\" | \"default\" | \"lg\";\n pattern?: SectionPattern;\n /** @deprecated Use pattern=\"dots\" instead */\n dots?: boolean;\n /** @deprecated Use pattern=\"stripes\" instead */\n stripes?: boolean;\n id?: string;\n}\n\nconst colorMap: Record<SectionColor, string> = {\n white: \"bg-background text-foreground\",\n brand: \"bg-brand\",\n \"brand-muted\": \"bg-brand-muted text-foreground\",\n blue: \"bg-section-blue\",\n gray: \"bg-section-gray text-foreground\",\n cream: \"bg-section-cream text-foreground\",\n black: \"bg-foreground text-background\",\n cta: \"bg-cta\",\n};\n\nconst containerMap = {\n sm: \"brutal-container-sm\",\n default: \"brutal-container\",\n lg: \"brutal-container-lg\",\n};\n\nconst paddingMap = {\n sm: \"brutal-section-sm\",\n default: \"brutal-section\",\n lg: \"brutal-section py-28 sm:py-36 md:py-44\",\n};\n\nconst patternMap: Record<SectionPattern, string> = {\n dots: \"brutal-dots\",\n stripes: \"brutal-stripes\",\n noise: \"brutal-noise\",\n grain: \"brutal-grain\",\n crosshatch: \"brutal-crosshatch\",\n \"grid-dots\": \"brutal-grid-dots\",\n \"gradient-mesh\": \"brutal-gradient-mesh\",\n none: \"\",\n};\n\nexport function BrutalSection({\n children,\n color = \"white\",\n className,\n containerSize = \"default\",\n padding = \"default\",\n pattern,\n dots = false,\n stripes = false,\n id,\n}: BrutalSectionProps) {\n const resolvedPattern = pattern\n ?? (dots ? \"dots\" : undefined)\n ?? (stripes ? \"stripes\" : undefined)\n ?? \"none\";\n\n return (\n <section\n id={id}\n className={cn(\n paddingMap[padding],\n colorMap[color],\n patternMap[resolvedPattern],\n className\n )}\n >\n <div className={containerMap[containerSize]}>{children}</div>\n </section>\n );\n}\n","import { cn } from \"../../lib/utils\";\n\ntype DividerVariant =\n | \"wave\"\n | \"jagged\"\n | \"curve\"\n | \"castle\"\n | \"torn-paper\"\n | \"brush-stroke\"\n | \"geometric\"\n | \"blob\"\n | \"diagonal\"\n | \"zigzag\"\n | \"hand-drawn\";\n\ninterface SectionDividerProps {\n from?: string;\n to?: string;\n flip?: boolean;\n className?: string;\n variant?: DividerVariant;\n layers?: boolean;\n}\n\nconst paths: Record<DividerVariant, string> = {\n wave: \"M0,64 C160,128 320,0 480,64 C640,128 800,0 960,64 L960,160 L0,160 Z\",\n jagged: \"M0,80 L80,40 L160,80 L240,20 L320,80 L400,40 L480,80 L560,20 L640,80 L720,40 L800,80 L880,20 L960,80 L960,160 L0,160 Z\",\n curve: \"M0,128 Q480,-32 960,128 L960,160 L0,160 Z\",\n castle: \"M0,80 L0,60 L80,60 L80,80 L120,80 L120,40 L200,40 L200,80 L240,80 L240,60 L320,60 L320,80 L360,80 L360,40 L440,40 L440,80 L480,80 L480,60 L560,60 L560,80 L600,80 L600,40 L680,40 L680,80 L720,80 L720,60 L800,60 L800,80 L840,80 L840,40 L920,40 L920,80 L960,80 L960,160 L0,160 Z\",\n \"torn-paper\": \"M0,70 C30,65 45,85 80,72 C115,59 130,90 170,78 C210,66 225,88 270,75 C315,62 340,92 380,79 C420,66 445,86 490,73 C535,60 560,88 600,76 C640,64 665,90 710,77 C755,64 780,84 830,71 C875,58 900,86 960,80 L960,160 L0,160 Z\",\n \"brush-stroke\": \"M0,90 C80,50 120,100 200,60 C280,20 360,110 480,70 C600,30 640,100 720,80 C800,60 880,100 960,70 L960,160 L0,160 Z\",\n geometric: \"M0,100 L120,60 L240,80 L360,40 L480,90 L600,50 L720,70 L840,30 L960,80 L960,160 L0,160 Z\",\n blob: \"M0,80 C80,120 160,40 280,80 C400,120 440,30 560,70 C680,110 760,40 960,80 L960,160 L0,160 Z\",\n diagonal: \"M0,160 L960,60 L960,160 Z\",\n zigzag: \"M0,80 L60,40 L120,80 L180,40 L240,80 L300,40 L360,80 L420,40 L480,80 L540,40 L600,80 L660,40 L720,80 L780,40 L840,80 L900,40 L960,80 L960,160 L0,160 Z\",\n \"hand-drawn\": \"M0,72 C20,68 35,82 60,75 C85,68 95,84 125,76 C155,68 170,85 200,77 C230,69 245,83 275,75 C305,67 320,86 350,78 C380,70 395,82 425,74 C455,66 470,84 500,76 C530,68 545,83 575,75 C605,67 620,85 650,77 C680,69 695,82 725,74 C755,66 770,84 800,76 C830,68 845,83 875,75 C905,67 920,82 960,74 L960,160 L0,160 Z\",\n};\n\nexport function SectionDivider({\n from = \"hsl(var(--background))\",\n to = \"hsl(var(--background))\",\n flip = false,\n className = \"\",\n variant = \"wave\",\n layers = false,\n}: SectionDividerProps) {\n return (\n <div\n className={cn(\"relative -my-px w-full overflow-hidden\", className)}\n style={{ backgroundColor: from }}\n >\n {layers && (\n <svg\n viewBox=\"0 0 960 160\"\n preserveAspectRatio=\"none\"\n className=\"absolute inset-0 block w-full opacity-30\"\n style={{\n height: \"clamp(40px, 6vw, 80px)\",\n transform: flip ? \"scaleY(-1) translateY(4px)\" : \"translateY(-4px)\",\n }}\n >\n <path d={paths[variant]} fill={to} />\n </svg>\n )}\n <svg\n viewBox=\"0 0 960 160\"\n preserveAspectRatio=\"none\"\n className=\"relative block w-full\"\n style={{\n height: \"clamp(40px, 6vw, 80px)\",\n transform: flip ? \"scaleY(-1)\" : undefined,\n }}\n >\n <path d={paths[variant]} fill={to} />\n </svg>\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { BrutalSection } from \"./section\";\nimport type { SectionPattern } from \"./section\";\n\ntype HeroVariant = \"split\" | \"centered\" | \"overlap\" | \"asymmetric\";\n\ninterface BrutalHeroProps {\n variant?: HeroVariant;\n badge?: string;\n badgePosition?: \"above\" | \"inline\" | \"floating\";\n headline: string;\n description: string;\n ctaText: string;\n ctaHref?: string;\n ctaVariant?: \"cta\" | \"brand\" | \"default\";\n secondaryText?: string;\n secondaryHref?: string;\n visual?: React.ReactNode;\n color?: \"white\" | \"brand\" | \"brand-muted\" | \"gray\";\n pattern?: SectionPattern;\n proof?: string;\n className?: string;\n}\n\nexport function BrutalHero({\n variant = \"split\",\n badge,\n badgePosition = \"above\",\n headline,\n description,\n ctaText,\n ctaHref = \"#\",\n ctaVariant = \"cta\",\n secondaryText,\n secondaryHref,\n visual,\n color = \"brand\",\n pattern,\n proof,\n className,\n}: BrutalHeroProps) {\n const badgeElement = badge && (\n <div\n className={cn(\n \"inline-flex w-fit border-brutal border-foreground bg-background px-3 py-1 font-mono text-xs font-bold uppercase tracking-widest text-foreground shadow-brutal-sm\",\n badgePosition === \"floating\" && \"absolute -top-3 left-6 z-10\",\n )}\n >\n {badge}\n </div>\n );\n\n const textContent = (\n <div className={cn(\n \"flex flex-col gap-6\",\n variant === \"centered\" && \"items-center text-center\",\n )}>\n {badgePosition === \"above\" && badgeElement}\n\n <h1 className={cn(\n \"brutal-display text-balance\",\n variant === \"centered\" && \"mx-auto max-w-4xl\",\n )}>\n {badgePosition === \"inline\" && badgeElement}\n {headline}\n </h1>\n\n <p className={cn(\n \"brutal-body-lg max-w-lg opacity-80\",\n variant === \"centered\" && \"mx-auto\",\n )}>\n {description}\n </p>\n\n <div className={cn(\n \"flex flex-wrap gap-4\",\n variant === \"centered\" && \"justify-center\",\n )}>\n <Button variant={ctaVariant} size=\"xl\" render={<a href={ctaHref} />}>\n {ctaText}\n </Button>\n {secondaryText && (\n <Button variant=\"outline\" size=\"xl\" render={<a href={secondaryHref || \"#\"} />}>\n {secondaryText}\n </Button>\n )}\n </div>\n\n {proof && (\n <p className=\"flex items-center gap-2 text-sm font-medium opacity-70\">\n <span className=\"inline-flex size-5 items-center justify-center border border-current text-xs\">\n ✓\n </span>\n {proof}\n </p>\n )}\n </div>\n );\n\n const layoutClass = {\n split: \"grid items-center gap-12 lg:grid-cols-2 lg:gap-16\",\n centered: \"flex flex-col items-center gap-12\",\n overlap: \"relative\",\n asymmetric: \"grid items-center gap-12 lg:grid-cols-[3fr_2fr] lg:gap-16\",\n }[variant];\n\n return (\n <BrutalSection color={color} padding=\"lg\" pattern={pattern} className={cn(\"relative\", className)}>\n {badgePosition === \"floating\" && badgeElement}\n\n <div className={layoutClass}>\n {textContent}\n\n {visual && variant === \"overlap\" ? (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center opacity-20\">\n {visual}\n </div>\n ) : visual ? (\n <div className={cn(\n \"flex items-center justify-center\",\n variant === \"asymmetric\" && \"-rotate-2 transform\",\n )}>\n {visual}\n </div>\n ) : null}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n} from \"../ui/card\";\nimport { BrutalSection } from \"./section\";\n\ntype FeatureGridVariant = \"icon-top\" | \"icon-left\" | \"numbered\" | \"bento\";\n\ninterface Feature {\n icon?: React.ReactNode;\n title: string;\n description: string;\n featured?: boolean;\n stat?: string;\n}\n\ninterface BrutalFeatureGridProps {\n variant?: FeatureGridVariant;\n badge?: string;\n headline: string;\n description?: string;\n features: Feature[];\n columns?: 2 | 3 | 4;\n color?: \"white\" | \"brand\" | \"brand-muted\" | \"gray\" | \"cream\";\n className?: string;\n}\n\nconst accentColors = [\n \"hsl(var(--brand))\",\n \"hsl(var(--cta))\",\n \"hsl(var(--section-blue))\",\n \"hsl(12 85% 62%)\",\n \"hsl(260 55% 68%)\",\n \"hsl(25 75% 48%)\",\n];\n\nconst colMap = {\n 2: \"sm:grid-cols-2\",\n 3: \"sm:grid-cols-2 lg:grid-cols-3\",\n 4: \"sm:grid-cols-2 lg:grid-cols-4\",\n};\n\nexport function BrutalFeatureGrid({\n variant = \"icon-top\",\n badge,\n headline,\n description,\n features,\n columns = 3,\n color = \"white\",\n className,\n}: BrutalFeatureGridProps) {\n return (\n <BrutalSection color={color} className={className}>\n <div className=\"mb-12 max-w-2xl\">\n {badge && (\n <p className=\"brutal-label mb-4 text-muted-foreground\">{badge}</p>\n )}\n <h2 className=\"brutal-h2 mb-4\">{headline}</h2>\n {description && (\n <p className=\"brutal-body text-muted-foreground\">{description}</p>\n )}\n </div>\n\n <div\n className={cn(\n \"grid gap-6\",\n variant === \"bento\" ? \"sm:grid-cols-2 lg:grid-cols-3\" : colMap[columns],\n )}\n >\n {features.map((feature, i) => (\n <FeatureCard\n key={feature.title}\n feature={feature}\n variant={variant}\n index={i}\n accentColor={accentColors[i % accentColors.length]}\n />\n ))}\n </div>\n </BrutalSection>\n );\n}\n\nfunction FeatureCard({\n feature,\n variant,\n index,\n accentColor,\n}: {\n feature: Feature;\n variant: FeatureGridVariant;\n index: number;\n accentColor: string;\n}) {\n const isBentoFeatured = variant === \"bento\" && feature.featured;\n\n if (variant === \"icon-left\") {\n return (\n <div\n className=\"flex gap-4 border-brutal border-foreground bg-background p-5 shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\"\n style={{ borderLeftColor: accentColor, borderLeftWidth: \"4px\" }}\n >\n {feature.icon && (\n <div className=\"flex size-12 shrink-0 items-center justify-center border-brutal border-foreground bg-brand-muted text-2xl shadow-brutal-sm\">\n {feature.icon}\n </div>\n )}\n <div>\n {feature.stat && (\n <p className=\"brutal-label mb-1 text-brand\">{feature.stat}</p>\n )}\n <h3 className=\"brutal-h4 mb-1\">{feature.title}</h3>\n <p className=\"text-sm text-muted-foreground\">{feature.description}</p>\n </div>\n </div>\n );\n }\n\n if (variant === \"numbered\") {\n return (\n <Card>\n <CardHeader>\n <span\n className=\"brutal-display mb-2 block opacity-15\"\n style={{ color: accentColor }}\n >\n {String(index + 1).padStart(2, \"0\")}\n </span>\n {feature.stat && (\n <p className=\"brutal-label mb-1 text-brand\">{feature.stat}</p>\n )}\n <CardTitle>{feature.title}</CardTitle>\n </CardHeader>\n <CardContent>\n <CardDescription>{feature.description}</CardDescription>\n </CardContent>\n </Card>\n );\n }\n\n return (\n <Card\n className={cn(\n isBentoFeatured && \"sm:col-span-2 bg-brand-muted\",\n )}\n >\n <CardHeader>\n {feature.icon && (\n <div\n className=\"mb-2 inline-flex size-12 items-center justify-center border-brutal border-foreground bg-brand-muted text-2xl shadow-brutal-sm\"\n style={{ borderBottomColor: accentColor }}\n >\n {feature.icon}\n </div>\n )}\n {feature.stat && (\n <p className=\"brutal-label mb-1 text-brand\">{feature.stat}</p>\n )}\n <CardTitle>{feature.title}</CardTitle>\n </CardHeader>\n <CardContent>\n <CardDescription>{feature.description}</CardDescription>\n </CardContent>\n </Card>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\nimport type { SectionColor, SectionPattern } from \"./section\";\n\nexport interface Testimonial {\n name: string;\n handle?: string;\n avatar?: string;\n text: string;\n role?: string;\n company?: string;\n companyLogo?: string;\n rating?: 1 | 2 | 3 | 4 | 5;\n featured?: boolean;\n}\n\ninterface BrutalTestimonialsProps {\n badge?: string;\n headline?: string;\n testimonials: Testimonial[];\n variant?: \"masonry\" | \"featured-grid\" | \"carousel\" | \"wall-of-love\";\n color?: SectionColor;\n pattern?: SectionPattern;\n className?: string;\n}\n\nfunction StarRating({ rating }: { rating: number }) {\n return (\n <div className=\"flex gap-0.5\">\n {Array.from({ length: 5 }, (_, i) => (\n <span\n key={i}\n className={cn(\n \"text-sm\",\n i < rating ? \"text-amber-500\" : \"text-foreground/20\"\n )}\n >\n ★\n </span>\n ))}\n </div>\n );\n}\n\nfunction TestimonialCard({\n t,\n className,\n}: {\n t: Testimonial;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n \"relative break-inside-avoid border-brutal border-foreground bg-background p-5 text-foreground shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\",\n className\n )}\n >\n {/* Decorative quote mark */}\n <span className=\"pointer-events-none absolute top-3 right-4 select-none font-serif text-5xl leading-none text-foreground/[0.06]\">\n “\n </span>\n\n {t.rating && (\n <div className=\"mb-3\">\n <StarRating rating={t.rating} />\n </div>\n )}\n\n <p className=\"relative mb-4 text-sm leading-relaxed\">{t.text}</p>\n\n <div className=\"flex items-center gap-3\">\n {t.avatar ? (\n <img\n src={t.avatar}\n alt={t.name}\n className=\"size-9 border-2 object-cover\"\n style={{ borderColor: \"hsl(var(--brand))\" }}\n />\n ) : (\n <div\n className=\"flex size-9 items-center justify-center border-2 font-bold text-brand-foreground\"\n style={{\n borderColor: \"hsl(var(--brand))\",\n backgroundColor: \"hsl(var(--brand))\",\n }}\n >\n {t.name[0]}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"text-sm font-bold\">{t.name}</p>\n {(t.role || t.company) && (\n <p className=\"truncate text-xs text-muted-foreground\">\n {t.role}\n {t.role && t.company && \" · \"}\n {t.company}\n </p>\n )}\n {!t.role && !t.company && t.handle && (\n <p className=\"font-mono text-xs text-muted-foreground\">\n {t.handle}\n </p>\n )}\n </div>\n {t.companyLogo && (\n <img\n src={t.companyLogo}\n alt={t.company || \"\"}\n className=\"h-5 object-contain opacity-60\"\n />\n )}\n </div>\n </div>\n );\n}\n\nfunction MasonryLayout({ testimonials }: { testimonials: Testimonial[] }) {\n return (\n <div className=\"columns-1 gap-6 sm:columns-2 lg:columns-3\">\n {testimonials.map((t, i) => (\n <TestimonialCard key={i} t={t} className=\"mb-6\" />\n ))}\n </div>\n );\n}\n\nfunction FeaturedGridLayout({\n testimonials,\n}: {\n testimonials: Testimonial[];\n}) {\n const featured = testimonials.find((t) => t.featured) || testimonials[0];\n const rest = testimonials.filter((t) => t !== featured);\n\n return (\n <div className=\"grid gap-6 lg:grid-cols-2\">\n {/* Large featured card */}\n {featured && (\n <TestimonialCard\n t={featured}\n className=\"flex flex-col justify-between p-8 lg:row-span-2\"\n />\n )}\n {/* Smaller grid */}\n {rest.map((t, i) => (\n <TestimonialCard key={i} t={t} />\n ))}\n </div>\n );\n}\n\nfunction CarouselLayout({ testimonials }: { testimonials: Testimonial[] }) {\n return (\n <div className=\"-mx-6 flex snap-x snap-mandatory gap-6 overflow-x-auto px-6 pb-4\">\n {testimonials.map((t, i) => (\n <TestimonialCard\n key={i}\n t={t}\n className=\"w-80 flex-none snap-center\"\n />\n ))}\n </div>\n );\n}\n\nfunction WallOfLoveLayout({ testimonials }: { testimonials: Testimonial[] }) {\n return (\n <div className=\"relative max-h-[600px] overflow-hidden\">\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {testimonials.map((t, i) => (\n <TestimonialCard key={i} t={t} />\n ))}\n </div>\n {/* Fade overlay at bottom */}\n <div className=\"pointer-events-none absolute inset-x-0 bottom-0 h-32 bg-gradient-to-t from-background to-transparent\" />\n </div>\n );\n}\n\nexport function BrutalTestimonials({\n badge,\n headline,\n testimonials,\n variant = \"masonry\",\n color = \"blue\",\n pattern,\n className,\n}: BrutalTestimonialsProps) {\n return (\n <BrutalSection color={color} pattern={pattern} className={className}>\n {(headline || badge) && (\n <div className=\"mb-12 text-center\">\n {badge && <p className=\"brutal-label mb-4 opacity-70\">{badge}</p>}\n {headline && <h2 className=\"brutal-h2\">{headline}</h2>}\n </div>\n )}\n\n {variant === \"masonry\" && <MasonryLayout testimonials={testimonials} />}\n {variant === \"featured-grid\" && (\n <FeaturedGridLayout testimonials={testimonials} />\n )}\n {variant === \"carousel\" && (\n <CarouselLayout testimonials={testimonials} />\n )}\n {variant === \"wall-of-love\" && (\n <WallOfLoveLayout testimonials={testimonials} />\n )}\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\n\ninterface Integration {\n icon: React.ReactNode;\n name: string;\n href?: string;\n}\n\ninterface BrutalIntegrationGridProps {\n badge?: string;\n headline: string;\n description?: string;\n integrations: Integration[];\n color?: \"white\" | \"brand\" | \"gray\" | \"cream\";\n className?: string;\n}\n\nexport function BrutalIntegrationGrid({\n badge,\n headline,\n description,\n integrations,\n color = \"brand\",\n className,\n}: BrutalIntegrationGridProps) {\n return (\n <BrutalSection color={color} className={className}>\n <div className=\"mb-12 text-center\">\n {badge && <p className=\"brutal-label mb-4 opacity-70\">{badge}</p>}\n <h2 className=\"brutal-h2 mb-4\">{headline}</h2>\n {description && (\n <p className=\"brutal-body mx-auto max-w-lg text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n\n <div className=\"flex flex-wrap items-center justify-center gap-6\">\n {integrations.map((item) => {\n const inner = (\n <>\n <div className=\"mb-2 flex size-14 items-center justify-center text-3xl\">\n {item.icon}\n </div>\n <p className=\"text-sm font-bold\">{item.name}</p>\n </>\n );\n\n return item.href ? (\n <a\n key={item.name}\n href={item.href}\n className=\"flex w-28 flex-col items-center border-brutal border-foreground bg-background p-4 text-foreground shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\"\n >\n {inner}\n </a>\n ) : (\n <div\n key={item.name}\n className=\"flex w-28 flex-col items-center border-brutal border-foreground bg-background p-4 text-foreground shadow-brutal\"\n >\n {inner}\n </div>\n );\n })}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { BrutalSection } from \"./section\";\nimport type { SectionColor, SectionPattern } from \"./section\";\n\ninterface BrutalCTAProps {\n headline: string;\n description?: string;\n ctaText: string;\n ctaHref?: string;\n ctaVariant?: \"cta\" | \"brand\" | \"default\" | \"outline\";\n secondaryText?: string;\n secondaryHref?: string;\n color?: SectionColor;\n pattern?: SectionPattern;\n className?: string;\n variant?: \"centered\" | \"split\" | \"with-visual\" | \"floating-card\";\n visual?: React.ReactNode;\n stats?: string;\n}\n\nfunction CTAButtons({\n ctaText,\n ctaHref = \"#\",\n ctaVariant = \"cta\",\n secondaryText,\n secondaryHref,\n}: Pick<\n BrutalCTAProps,\n \"ctaText\" | \"ctaHref\" | \"ctaVariant\" | \"secondaryText\" | \"secondaryHref\"\n>) {\n return (\n <div className=\"flex flex-wrap items-center justify-center gap-4\">\n <Button\n variant={ctaVariant}\n size=\"xl\"\n render={<a href={ctaHref} />}\n >\n {ctaText}\n </Button>\n {secondaryText && (\n <Button\n variant=\"outline\"\n size=\"lg\"\n render={<a href={secondaryHref || \"#\"} />}\n >\n {secondaryText}\n </Button>\n )}\n </div>\n );\n}\n\nfunction CenteredCTA(props: BrutalCTAProps) {\n return (\n <div className=\"mx-auto max-w-2xl text-center\">\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <CTAButtons\n ctaText={props.ctaText}\n ctaHref={props.ctaHref}\n ctaVariant={props.ctaVariant}\n secondaryText={props.secondaryText}\n secondaryHref={props.secondaryHref}\n />\n </div>\n );\n}\n\nfunction SplitCTA(props: BrutalCTAProps) {\n return (\n <div className=\"grid items-center gap-12 lg:grid-cols-2\">\n <div>\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <div className=\"flex flex-wrap gap-4\">\n <Button\n variant={props.ctaVariant || \"cta\"}\n size=\"xl\"\n render={<a href={props.ctaHref || \"#\"} />}\n >\n {props.ctaText}\n </Button>\n {props.secondaryText && (\n <Button\n variant=\"outline\"\n size=\"lg\"\n render={<a href={props.secondaryHref || \"#\"} />}\n >\n {props.secondaryText}\n </Button>\n )}\n </div>\n </div>\n {props.visual && <div>{props.visual}</div>}\n </div>\n );\n}\n\nfunction WithVisualCTA(props: BrutalCTAProps) {\n return (\n <div className=\"relative\">\n {props.visual && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center opacity-10\">\n {props.visual}\n </div>\n )}\n <div className=\"relative mx-auto max-w-2xl text-center\">\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <CTAButtons\n ctaText={props.ctaText}\n ctaHref={props.ctaHref}\n ctaVariant={props.ctaVariant}\n secondaryText={props.secondaryText}\n secondaryHref={props.secondaryHref}\n />\n </div>\n </div>\n );\n}\n\nfunction FloatingCardCTA(props: BrutalCTAProps) {\n return (\n <div className=\"relative z-10 -mt-16\">\n <div className=\"mx-auto max-w-2xl border-brutal border-foreground bg-background p-8 text-center text-foreground shadow-brutal-lg\">\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <CTAButtons\n ctaText={props.ctaText}\n ctaHref={props.ctaHref}\n ctaVariant={props.ctaVariant}\n secondaryText={props.secondaryText}\n secondaryHref={props.secondaryHref}\n />\n </div>\n </div>\n );\n}\n\nexport function BrutalCTA({\n variant = \"centered\",\n color = \"black\",\n className,\n pattern,\n ...props\n}: BrutalCTAProps) {\n // floating-card variant doesn't wrap in a section — it floats above the previous section\n if (variant === \"floating-card\") {\n return (\n <div className={cn(\"brutal-container px-6\", className)}>\n <FloatingCardCTA {...props} variant={variant} color={color} />\n </div>\n );\n }\n\n return (\n <BrutalSection color={color} pattern={pattern} className={className}>\n {variant === \"centered\" && <CenteredCTA {...props} variant={variant} color={color} />}\n {variant === \"split\" && <SplitCTA {...props} variant={variant} color={color} />}\n {variant === \"with-visual\" && <WithVisualCTA {...props} variant={variant} color={color} />}\n </BrutalSection>\n );\n}\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport {\n Sheet,\n SheetContent,\n SheetTrigger,\n SheetTitle,\n} from \"../ui/sheet\";\nimport { Menu } from \"lucide-react\";\n\ninterface NavLink {\n label: string;\n href: string;\n badge?: string;\n active?: boolean;\n}\n\ninterface BrutalNavProps {\n logo: React.ReactNode;\n links: NavLink[];\n ctaText?: string;\n ctaHref?: string;\n variant?: \"solid\" | \"transparent\" | \"floating-pill\";\n className?: string;\n}\n\nexport function BrutalNav({\n logo,\n links,\n ctaText = \"Sign In\",\n ctaHref = \"/admin\",\n variant = \"solid\",\n className,\n}: BrutalNavProps) {\n const [mobileOpen, setMobileOpen] = useState(false);\n const [isScrolled, setIsScrolled] = useState(false);\n\n useEffect(() => {\n if (variant !== \"transparent\") return;\n const onScroll = () => setIsScrolled(window.scrollY > 20);\n onScroll(); // check on mount\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => window.removeEventListener(\"scroll\", onScroll);\n }, [variant]);\n\n const variantStyles = {\n solid: \"sticky top-0 z-50 w-full border-b-brutal border-foreground bg-brand\",\n transparent: cn(\n \"fixed top-0 left-0 right-0 z-50 w-full transition-all duration-200\",\n isScrolled\n ? \"bg-background/80 text-foreground backdrop-blur-md border-b border-foreground/10\"\n : \"bg-transparent text-white\"\n ),\n \"floating-pill\":\n \"fixed top-0 left-0 right-0 z-50 mx-4 mt-4 rounded-full border-brutal border-foreground bg-background shadow-brutal\",\n };\n\n return (\n <header className={cn(variantStyles[variant], className)}>\n <div\n className={cn(\n \"flex h-14 items-center justify-between px-6\",\n variant === \"floating-pill\" ? \"mx-auto max-w-7xl\" : \"brutal-container\"\n )}\n >\n {/* Logo */}\n <a href=\"/\" className=\"flex items-center gap-2 text-lg font-black\">\n {logo}\n </a>\n\n {/* Center links (desktop) */}\n <nav className=\"hidden items-center gap-1 md:flex\">\n {links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className={cn(\n \"relative rounded-md px-3 py-1.5 text-sm font-bold transition-colors hover:opacity-70\",\n link.active && \"bg-foreground/10\"\n )}\n >\n {link.label}\n {link.badge && (\n <span className=\"absolute -top-1 -right-1 border border-foreground bg-background px-1 font-mono text-[9px] font-bold uppercase text-foreground\">\n {link.badge}\n </span>\n )}\n </a>\n ))}\n </nav>\n\n {/* Right side: CTA + Hamburger */}\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"nav\"\n size=\"sm\"\n render={<a href={ctaHref} />}\n className=\"hidden md:inline-flex\"\n >\n {ctaText}\n </Button>\n\n {/* Mobile hamburger */}\n <Sheet open={mobileOpen} onOpenChange={setMobileOpen}>\n <SheetTrigger\n render={\n <Button variant=\"ghost\" size=\"icon-sm\" className=\"md:hidden\" />\n }\n >\n <Menu className=\"size-5\" />\n <span className=\"sr-only\">Menu</span>\n </SheetTrigger>\n <SheetContent side=\"right\" showCloseButton>\n <SheetTitle>Navigation</SheetTitle>\n <nav className=\"flex flex-col gap-1 px-2 pt-4\">\n {links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n onClick={() => setMobileOpen(false)}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-2.5 text-sm font-bold transition-colors hover:bg-foreground/5\",\n link.active && \"bg-foreground/10\"\n )}\n >\n {link.label}\n {link.badge && (\n <span className=\"border border-foreground bg-background px-1 font-mono text-[9px] font-bold uppercase text-foreground\">\n {link.badge}\n </span>\n )}\n </a>\n ))}\n <div className=\"mt-4 border-t border-foreground/10 pt-4\">\n <Button\n variant=\"default\"\n size=\"default\"\n render={<a href={ctaHref} />}\n className=\"w-full\"\n >\n {ctaText}\n </Button>\n </div>\n </nav>\n </SheetContent>\n </Sheet>\n </div>\n </div>\n </header>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\n\ninterface FooterColumn {\n title: string;\n links: { label: string; href: string }[];\n}\n\ninterface BrutalFooterProps {\n logo: React.ReactNode;\n tagline?: string;\n columns: FooterColumn[];\n bottomLeft?: string;\n bottomRight?: string;\n variant?: \"mega\" | \"minimal\" | \"newsletter\";\n socials?: {\n twitter?: string;\n github?: string;\n linkedin?: string;\n discord?: string;\n };\n newsletter?: {\n headline?: string;\n description?: string;\n placeholder?: string;\n buttonText?: string;\n };\n className?: string;\n}\n\nfunction SocialsRow({\n socials,\n}: {\n socials: NonNullable<BrutalFooterProps[\"socials\"]>;\n}) {\n const items = [\n { key: \"twitter\", label: \"Twitter\", url: socials.twitter },\n { key: \"github\", label: \"GitHub\", url: socials.github },\n { key: \"linkedin\", label: \"LinkedIn\", url: socials.linkedin },\n { key: \"discord\", label: \"Discord\", url: socials.discord },\n ].filter((s) => s.url);\n\n if (items.length === 0) return null;\n\n return (\n <div className=\"flex items-center gap-4\">\n {items.map((s) => (\n <a\n key={s.key}\n href={s.url!}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-sm font-bold transition-colors hover:text-muted-foreground\"\n >\n {s.label}\n </a>\n ))}\n </div>\n );\n}\n\nfunction NewsletterSection({\n newsletter,\n}: {\n newsletter: NonNullable<BrutalFooterProps[\"newsletter\"]>;\n}) {\n return (\n <div className=\"mb-10 border-b-brutal border-foreground pb-10\">\n <div className=\"mx-auto max-w-lg text-center\">\n <h3 className=\"brutal-h4 mb-2\">\n {newsletter.headline || \"Stay in the loop\"}\n </h3>\n {newsletter.description && (\n <p className=\"brutal-caption mb-4\">{newsletter.description}</p>\n )}\n <form\n onSubmit={(e) => e.preventDefault()}\n className=\"flex gap-2\"\n >\n <Input\n type=\"email\"\n placeholder={newsletter.placeholder || \"you@email.com\"}\n className=\"flex-1\"\n />\n <Button variant=\"default\" size=\"default\" type=\"submit\">\n {newsletter.buttonText || \"Subscribe\"}\n </Button>\n </form>\n </div>\n </div>\n );\n}\n\nfunction MegaContent({\n logo,\n tagline,\n columns,\n socials,\n}: Pick<BrutalFooterProps, \"logo\" | \"tagline\" | \"columns\" | \"socials\">) {\n return (\n <div className=\"mb-10 flex flex-col gap-8 sm:flex-row sm:items-start sm:justify-between\">\n {/* Logo + tagline */}\n <div className=\"max-w-xs\">\n <div className=\"mb-2 text-xl font-black\">{logo}</div>\n {tagline && (\n <p className=\"mb-4 text-sm text-muted-foreground\">{tagline}</p>\n )}\n {socials && <SocialsRow socials={socials} />}\n </div>\n\n {/* Link columns */}\n <div className=\"grid grid-cols-2 gap-8 sm:grid-cols-3 md:gap-12\">\n {columns.map((col) => (\n <div key={col.title}>\n <h3 className=\"brutal-label mb-3 text-muted-foreground\">\n {col.title}\n </h3>\n <ul className=\"flex flex-col gap-2\">\n {col.links.map((link) => (\n <li key={link.href}>\n <a\n href={link.href}\n className=\"text-sm font-medium transition-colors hover:text-muted-foreground\"\n >\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction MinimalContent({\n logo,\n columns,\n socials,\n}: Pick<BrutalFooterProps, \"logo\" | \"columns\" | \"socials\">) {\n const allLinks = columns.flatMap((col) => col.links);\n\n return (\n <div className=\"mb-6 flex flex-col items-center gap-4 sm:flex-row sm:justify-between\">\n <div className=\"text-xl font-black\">{logo}</div>\n <nav className=\"flex flex-wrap items-center justify-center gap-x-6 gap-y-2\">\n {allLinks.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className=\"text-sm font-medium transition-colors hover:text-muted-foreground\"\n >\n {link.label}\n </a>\n ))}\n </nav>\n {socials && <SocialsRow socials={socials} />}\n </div>\n );\n}\n\nexport function BrutalFooter({\n logo,\n tagline,\n columns,\n bottomLeft,\n bottomRight,\n variant = \"mega\",\n socials,\n newsletter,\n className,\n}: BrutalFooterProps) {\n return (\n <footer\n className={cn(\n \"w-full border-t-4 bg-background px-6 py-12 text-foreground\",\n className\n )}\n style={{ borderTopColor: \"hsl(var(--brand))\" }}\n >\n <div className=\"brutal-container\">\n {/* Newsletter section (only for newsletter variant) */}\n {variant === \"newsletter\" && newsletter && (\n <NewsletterSection newsletter={newsletter} />\n )}\n\n {/* Main content */}\n {variant === \"minimal\" ? (\n <MinimalContent logo={logo} columns={columns} socials={socials} />\n ) : (\n <MegaContent\n logo={logo}\n tagline={tagline}\n columns={columns}\n socials={socials}\n />\n )}\n\n {/* Bottom bar */}\n <div className=\"flex items-center justify-between border-t-brutal border-foreground pt-6 font-mono text-xs uppercase tracking-widest text-muted-foreground\">\n <span>{bottomLeft || \"Built with care\"}</span>\n <span>{bottomRight || new Date().getFullYear()}</span>\n </div>\n </div>\n </footer>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { Badge } from \"../ui/badge\";\nimport { BrutalSection } from \"./section\";\nimport { useState } from \"react\";\n\ninterface PricingTier {\n name: string;\n description?: string;\n price: { monthly: number | string; annual: number | string };\n features: string[];\n ctaText: string;\n ctaHref?: string;\n ctaVariant?: \"cta\" | \"brand\" | \"default\" | \"outline\";\n}\n\ninterface PricingTableProps {\n badge?: string;\n headline?: string;\n description?: string;\n tiers: PricingTier[];\n popularIndex?: number;\n billingToggle?: boolean;\n color?: \"white\" | \"gray\" | \"cream\";\n className?: string;\n}\n\nexport function PricingTable({\n badge,\n headline,\n description,\n tiers,\n popularIndex,\n billingToggle = true,\n color = \"white\",\n className,\n}: PricingTableProps) {\n const [annual, setAnnual] = useState(false);\n\n return (\n <BrutalSection color={color} className={className}>\n {(headline || badge) && (\n <div className=\"mb-8 text-center\">\n {badge && <p className=\"brutal-label mb-4 text-muted-foreground\">{badge}</p>}\n {headline && <h2 className=\"brutal-h2 mb-4\">{headline}</h2>}\n {description && <p className=\"brutal-body mx-auto max-w-lg text-muted-foreground\">{description}</p>}\n </div>\n )}\n\n {billingToggle && (\n <div className=\"mb-10 flex items-center justify-center gap-3\">\n <span className={cn(\"text-sm font-bold\", !annual && \"text-brand\")}>Monthly</span>\n <button\n onClick={() => setAnnual(!annual)}\n className={cn(\n \"relative h-8 w-14 border-brutal border-foreground transition-colors\",\n annual ? \"bg-brand\" : \"bg-secondary\",\n )}\n >\n <span\n className={cn(\n \"absolute top-1 size-6 border border-foreground bg-background transition-transform\",\n annual ? \"left-7\" : \"left-1\",\n )}\n />\n </button>\n <span className={cn(\"text-sm font-bold\", annual && \"text-brand\")}>Annual</span>\n {annual && <Badge variant=\"cta\">Save 20%</Badge>}\n </div>\n )}\n\n <div className={cn(\n \"grid gap-6\",\n tiers.length === 2 && \"mx-auto max-w-2xl sm:grid-cols-2\",\n tiers.length === 3 && \"lg:grid-cols-3\",\n tiers.length >= 4 && \"sm:grid-cols-2 lg:grid-cols-4\",\n )}>\n {tiers.map((tier, i) => {\n const isPopular = i === popularIndex;\n const price = annual ? tier.price.annual : tier.price.monthly;\n\n return (\n <div\n key={tier.name}\n className={cn(\n \"relative flex flex-col border-brutal border-foreground bg-background p-6 shadow-brutal\",\n isPopular && \"border-brand shadow-brutal-lg ring-2 ring-brand z-10 scale-105\",\n )}\n >\n {isPopular && (\n <Badge variant=\"brand\" className=\"absolute -top-3 left-1/2 -translate-x-1/2\">\n Popular\n </Badge>\n )}\n <h3 className=\"brutal-h4 mb-1\">{tier.name}</h3>\n {tier.description && <p className=\"mb-4 text-sm text-muted-foreground\">{tier.description}</p>}\n <div className=\"mb-6\">\n <span className=\"brutal-h1\">{typeof price === \"number\" ? `$${price}` : price}</span>\n {typeof price === \"number\" && <span className=\"text-sm text-muted-foreground\">/mo</span>}\n </div>\n <ul className=\"mb-8 flex flex-1 flex-col gap-2\">\n {tier.features.map((feature) => (\n <li key={feature} className=\"flex items-start gap-2 text-sm\">\n <span className=\"mt-0.5 text-brand\">✓</span>\n {feature}\n </li>\n ))}\n </ul>\n <Button\n variant={tier.ctaVariant || (isPopular ? \"cta\" : \"outline\")}\n size=\"lg\"\n className=\"w-full\"\n render={tier.ctaHref ? <a href={tier.ctaHref} /> : undefined}\n >\n {tier.ctaText}\n </Button>\n </div>\n );\n })}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\n\ninterface Logo {\n src: string;\n alt: string;\n href?: string;\n}\n\ninterface LogoCloudProps {\n title?: string;\n logos: Logo[];\n marquee?: boolean;\n color?: \"white\" | \"gray\" | \"cream\" | \"brand\";\n className?: string;\n}\n\nexport function LogoCloud({\n title,\n logos,\n marquee = false,\n color = \"white\",\n className,\n}: LogoCloudProps) {\n const logoElements = logos.map((logo) => {\n const img = (\n <img\n key={logo.alt}\n src={logo.src}\n alt={logo.alt}\n className=\"h-8 max-w-[120px] object-contain opacity-50 grayscale transition-all duration-200 hover:opacity-100 hover:grayscale-0\"\n />\n );\n\n return logo.href ? (\n <a key={logo.alt} href={logo.href} className=\"flex items-center px-6\">\n {img}\n </a>\n ) : (\n <div key={logo.alt} className=\"flex items-center px-6\">\n {img}\n </div>\n );\n });\n\n return (\n <BrutalSection color={color} padding=\"sm\" className={className}>\n {title && (\n <p className=\"brutal-label mb-6 text-center text-muted-foreground\">{title}</p>\n )}\n {marquee ? (\n <div className=\"relative overflow-hidden\">\n <div className=\"flex animate-marquee\">\n {logoElements}\n {logoElements}\n </div>\n </div>\n ) : (\n <div className=\"flex flex-wrap items-center justify-center gap-8\">\n {logoElements}\n </div>\n )}\n </BrutalSection>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\nimport { useEffect, useRef, useState } from \"react\";\n\ninterface Stat {\n value: number;\n label: string;\n prefix?: string;\n suffix?: string;\n}\n\ninterface StatsBarProps {\n stats: Stat[];\n color?: \"white\" | \"brand\" | \"black\" | \"gray\";\n className?: string;\n}\n\nfunction useCountUp(target: number, inView: boolean) {\n const [count, setCount] = useState(0);\n\n useEffect(() => {\n if (!inView) return;\n let frame: number;\n const duration = 1500;\n const start = performance.now();\n\n function animate(now: number) {\n const elapsed = now - start;\n const progress = Math.min(elapsed / duration, 1);\n const eased = 1 - Math.pow(1 - progress, 3);\n setCount(Math.round(eased * target));\n if (progress < 1) frame = requestAnimationFrame(animate);\n }\n\n frame = requestAnimationFrame(animate);\n return () => cancelAnimationFrame(frame);\n }, [target, inView]);\n\n return count;\n}\n\nfunction StatItem({ stat, inView }: { stat: Stat; inView: boolean }) {\n const count = useCountUp(stat.value, inView);\n\n return (\n <div className=\"text-center\">\n <p className=\"brutal-display\">\n {stat.prefix}{count.toLocaleString()}{stat.suffix}\n </p>\n <p className=\"brutal-label mt-2 text-muted-foreground\">{stat.label}</p>\n </div>\n );\n}\n\nexport function StatsBar({ stats, color = \"white\", className }: StatsBarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [inView, setInView] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setInView(true);\n observer.disconnect();\n }\n },\n { threshold: 0.3 }\n );\n observer.observe(ref.current);\n return () => observer.disconnect();\n }, []);\n\n return (\n <BrutalSection color={color} padding=\"sm\" className={className}>\n <div\n ref={ref}\n className={cn(\n \"grid gap-8\",\n stats.length === 2 && \"grid-cols-2\",\n stats.length === 3 && \"grid-cols-3\",\n stats.length >= 4 && \"grid-cols-2 sm:grid-cols-4\",\n )}\n >\n {stats.map((stat) => (\n <StatItem key={stat.label} stat={stat} inView={inView} />\n ))}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from \"../ui/accordion\";\nimport { BrutalSection } from \"./section\";\n\ninterface FAQItem {\n question: string;\n answer: string;\n}\n\ninterface FAQProps {\n badge?: string;\n headline?: string;\n items: FAQItem[];\n color?: \"white\" | \"gray\" | \"cream\";\n className?: string;\n}\n\nexport function FAQ({\n badge,\n headline,\n items,\n color = \"white\",\n className,\n}: FAQProps) {\n return (\n <BrutalSection color={color} className={className}>\n {(headline || badge) && (\n <div className=\"mb-10 max-w-2xl\">\n {badge && <p className=\"brutal-label mb-4 text-muted-foreground\">{badge}</p>}\n {headline && <h2 className=\"brutal-h2\">{headline}</h2>}\n </div>\n )}\n <Accordion className=\"mx-auto max-w-2xl\">\n {items.map((item, i) => (\n <AccordionItem\n key={i}\n value={`faq-${i}`}\n className={cn(\n \"border-brutal border-foreground mb-3 px-5\",\n i % 2 === 0 ? \"bg-background\" : \"bg-secondary\",\n )}\n >\n <AccordionTrigger className=\"brutal-h4 py-4 text-left\">\n {item.question}\n </AccordionTrigger>\n <AccordionContent className=\"brutal-body pb-4 text-muted-foreground\">\n {item.answer}\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n </BrutalSection>\n );\n}\n","import { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\nimport { BrutalSection } from \"./section\";\n\ninterface NewsletterProps {\n headline?: string;\n description?: string;\n placeholder?: string;\n buttonText?: string;\n onSubmit?: (email: string) => void;\n color?: \"white\" | \"brand\" | \"gray\" | \"black\";\n className?: string;\n}\n\nexport function Newsletter({\n headline = \"Stay in the loop\",\n description,\n placeholder = \"you@example.com\",\n buttonText = \"Subscribe\",\n onSubmit,\n color = \"white\",\n className,\n}: NewsletterProps) {\n return (\n <BrutalSection color={color} padding=\"sm\" className={className}>\n <div className=\"mx-auto max-w-md border-brutal border-foreground bg-background p-8 text-foreground shadow-brutal-lg\">\n <h3 className=\"brutal-h3 mb-2\">{headline}</h3>\n {description && (\n <p className=\"brutal-body mb-6 text-muted-foreground\">{description}</p>\n )}\n <form\n onSubmit={(e) => {\n e.preventDefault();\n const form = e.target as HTMLFormElement;\n const email = new FormData(form).get(\"email\") as string;\n onSubmit?.(email);\n }}\n className=\"flex gap-3\"\n >\n <Input type=\"email\" name=\"email\" placeholder={placeholder} required className=\"flex-1\" />\n <Button type=\"submit\" variant=\"cta\">{buttonText}</Button>\n </form>\n </div>\n </BrutalSection>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState, createContext, useContext } from \"react\";\nimport { Sheet, SheetContent, SheetTitle } from \"../ui/sheet\";\nimport { Button } from \"../ui/button\";\n\ninterface AppShellContextValue {\n collapsed: boolean;\n setCollapsed: (v: boolean) => void;\n mobileOpen: boolean;\n setMobileOpen: (v: boolean) => void;\n}\n\nconst AppShellContext = createContext<AppShellContextValue>({\n collapsed: false,\n setCollapsed: () => {},\n mobileOpen: false,\n setMobileOpen: () => {},\n});\n\nexport const useAppShell = () => useContext(AppShellContext);\n\ninterface AppShellProps {\n sidebar: React.ReactNode;\n header?: React.ReactNode;\n children: React.ReactNode;\n defaultCollapsed?: boolean;\n className?: string;\n}\n\nexport function AppShell({\n sidebar,\n header,\n children,\n defaultCollapsed = false,\n className,\n}: AppShellProps) {\n const [collapsed, setCollapsed] = useState(defaultCollapsed);\n const [mobileOpen, setMobileOpen] = useState(false);\n\n return (\n <AppShellContext.Provider\n value={{ collapsed, setCollapsed, mobileOpen, setMobileOpen }}\n >\n <div className={cn(\"flex h-screen bg-background\", className)}>\n <aside\n className={cn(\n \"hidden border-r-brutal border-foreground bg-background transition-all duration-200 md:block\",\n collapsed ? \"w-16\" : \"w-64\"\n )}\n >\n {sidebar}\n </aside>\n <Sheet open={mobileOpen} onOpenChange={setMobileOpen}>\n <SheetContent side=\"left\" className=\"w-64 p-0 md:hidden\">\n <SheetTitle className=\"sr-only\">Navigation</SheetTitle>\n {sidebar}\n </SheetContent>\n </Sheet>\n <div className=\"flex flex-1 flex-col overflow-hidden\">\n {header && (\n <header className=\"flex h-14 items-center gap-4 border-b-brutal border-foreground px-6\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"md:hidden\"\n onClick={() => setMobileOpen(true)}\n >\n ☰\n </Button>\n {header}\n </header>\n )}\n <main className=\"flex-1 overflow-auto p-6\">{children}</main>\n </div>\n </div>\n </AppShellContext.Provider>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useAppShell } from \"./app-shell\";\n\ninterface SidebarLink {\n icon: React.ReactNode;\n label: string;\n href: string;\n active?: boolean;\n badge?: string | number;\n}\n\ninterface SidebarGroup {\n title?: string;\n links: SidebarLink[];\n}\n\ninterface SidebarProps {\n logo: React.ReactNode;\n logoCollapsed?: React.ReactNode;\n groups: SidebarGroup[];\n footer?: React.ReactNode;\n className?: string;\n}\n\nexport function Sidebar({\n logo,\n logoCollapsed,\n groups,\n footer,\n className,\n}: SidebarProps) {\n const { collapsed, setCollapsed } = useAppShell();\n\n return (\n <div className={cn(\"flex h-full flex-col\", className)}>\n <div className=\"flex h-14 items-center justify-between border-b-brutal border-foreground px-4\">\n <div className=\"font-black\">\n {collapsed ? logoCollapsed || logo : logo}\n </div>\n <button\n onClick={() => setCollapsed(!collapsed)}\n className=\"hidden text-xs text-muted-foreground hover:text-foreground md:block\"\n >\n {collapsed ? \"→\" : \"←\"}\n </button>\n </div>\n <nav className=\"flex-1 overflow-auto p-2\">\n {groups.map((group, gi) => (\n <div key={gi} className=\"mb-4\">\n {group.title && !collapsed && (\n <p className=\"brutal-label mb-2 px-2 text-muted-foreground\">\n {group.title}\n </p>\n )}\n <div className=\"flex flex-col gap-0.5\">\n {group.links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className={cn(\n \"flex items-center gap-3 rounded-sm px-3 py-2 text-sm font-medium transition-colors\",\n link.active\n ? \"bg-brand text-brand-foreground\"\n : \"hover:bg-secondary\",\n collapsed && \"justify-center\"\n )}\n title={collapsed ? link.label : undefined}\n >\n <span className=\"size-5 shrink-0\">{link.icon}</span>\n {!collapsed && (\n <>\n <span className=\"flex-1\">{link.label}</span>\n {link.badge !== undefined && (\n <span className=\"border border-foreground bg-brand-muted px-1.5 font-mono text-[10px] font-bold\">\n {link.badge}\n </span>\n )}\n </>\n )}\n </a>\n ))}\n </div>\n </div>\n ))}\n </nav>\n {footer && (\n <div className=\"border-t-brutal border-foreground p-3\">{footer}</div>\n )}\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\n\ninterface StatCardProps {\n label: string;\n value: string | number;\n change?: number;\n changeLabel?: string;\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport function StatCard({\n label,\n value,\n change,\n changeLabel,\n icon,\n className,\n}: StatCardProps) {\n return (\n <div\n className={cn(\n \"border-brutal border-foreground bg-background p-5 shadow-brutal\",\n className\n )}\n >\n <div className=\"mb-3 flex items-center justify-between\">\n <p className=\"brutal-label text-muted-foreground\">{label}</p>\n {icon && <span className=\"text-muted-foreground\">{icon}</span>}\n </div>\n <p className=\"brutal-h1 mb-1\">{value}</p>\n {change !== undefined && (\n <p\n className={cn(\n \"flex items-center gap-1 font-mono text-xs font-bold\",\n change >= 0 ? \"text-cta\" : \"text-destructive\"\n )}\n >\n <span>{change >= 0 ? \"↑\" : \"↓\"}</span>\n <span>{Math.abs(change)}%</span>\n {changeLabel && (\n <span className=\"font-normal text-muted-foreground\">\n {changeLabel}\n </span>\n )}\n </p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { ToggleGroup, ToggleGroupItem } from \"../ui/toggle-group\";\n\ntype ViewMode = \"table\" | \"kanban\" | \"grid\" | \"calendar\" | \"list\";\n\ninterface ViewSwitcherProps {\n value: ViewMode;\n onChange: (value: ViewMode) => void;\n views?: ViewMode[];\n className?: string;\n}\n\nconst viewLabels: Record<ViewMode, string> = {\n table: \"Table\",\n kanban: \"Board\",\n grid: \"Grid\",\n calendar: \"Calendar\",\n list: \"List\",\n};\n\nexport function ViewSwitcher({\n value,\n onChange,\n views = [\"table\", \"kanban\", \"grid\", \"calendar\", \"list\"],\n className,\n}: ViewSwitcherProps) {\n return (\n <ToggleGroup\n value={[value]}\n onValueChange={(vals: string[]) => {\n if (vals.length > 0) {\n onChange(vals[0] as ViewMode);\n }\n }}\n className={className}\n >\n {views.map((view) => (\n <ToggleGroupItem key={view} value={view} className=\"brutal-label text-xs\">\n {viewLabels[view]}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Input } from \"../ui/input\";\n\ninterface SearchBarProps {\n placeholder?: string;\n shortcut?: string;\n value?: string;\n onChange?: (value: string) => void;\n className?: string;\n}\n\nexport function SearchBar({\n placeholder = \"Search...\",\n shortcut = \"⌘K\",\n value,\n onChange,\n className,\n}: SearchBarProps) {\n return (\n <div className={cn(\"relative\", className)}>\n <Input\n type=\"search\"\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n className=\"pr-12\"\n />\n {shortcut && (\n <span className=\"absolute right-2 top-1/2 -translate-y-1/2 border border-foreground bg-secondary px-1.5 font-mono text-[10px] text-muted-foreground\">\n {shortcut}\n </span>\n )}\n </div>\n );\n}\n","import {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuLabel,\n DropdownMenuGroup,\n} from \"../ui/dropdown-menu\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../ui/avatar\";\n\ninterface UserMenuProps {\n name: string;\n email?: string;\n avatar?: string;\n items?: { label: string; href?: string; onClick?: () => void }[];\n onSignOut?: () => void;\n}\n\nexport function UserMenu({ name, email, avatar, items, onSignOut }: UserMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n className=\"inline-flex shrink-0 cursor-pointer items-center gap-2 rounded-lg px-3 py-1.5 text-sm font-medium outline-none hover:bg-secondary\"\n >\n <Avatar className=\"size-7\">\n {avatar && <AvatarImage src={avatar} alt={name} />}\n <AvatarFallback>{name[0]}</AvatarFallback>\n </Avatar>\n <span className=\"hidden text-sm font-medium sm:inline\">{name}</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-48\">\n <DropdownMenuLabel>\n <p className=\"text-sm font-bold\">{name}</p>\n {email && <p className=\"text-xs text-muted-foreground\">{email}</p>}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {items && (\n <DropdownMenuGroup>\n {items.map((item) => (\n <DropdownMenuItem key={item.label} onClick={item.onClick}>\n {item.href ? <a href={item.href}>{item.label}</a> : item.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n )}\n {onSignOut && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={onSignOut}>Sign out</DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\n\ninterface EmptyStateProps {\n icon?: React.ReactNode;\n headline: string;\n description?: string;\n ctaText?: string;\n ctaHref?: string;\n onAction?: () => void;\n className?: string;\n}\n\nexport function EmptyState({\n icon,\n headline,\n description,\n ctaText,\n ctaHref,\n onAction,\n className,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-16 text-center\",\n className\n )}\n >\n {icon && (\n <div className=\"mb-4 flex size-16 items-center justify-center border-brutal border-foreground bg-secondary text-3xl shadow-brutal-sm\">\n {icon}\n </div>\n )}\n <h3 className=\"brutal-h3 mb-2\">{headline}</h3>\n {description && (\n <p className=\"brutal-body mb-6 max-w-sm text-muted-foreground\">\n {description}\n </p>\n )}\n {ctaText &&\n (ctaHref ? (\n <Button variant=\"cta\" render={<a href={ctaHref} />}>\n {ctaText}\n </Button>\n ) : (\n <Button variant=\"cta\" onClick={onAction}>\n {ctaText}\n </Button>\n ))}\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../ui/avatar\";\n\ninterface ActivityEntry {\n id: string;\n avatar?: string;\n name: string;\n action: string;\n timestamp: Date | string;\n metadata?: React.ReactNode;\n}\n\ninterface ActivityFeedProps {\n entries: ActivityEntry[];\n groupByDate?: boolean;\n className?: string;\n}\n\nfunction formatDate(d: Date | string) {\n const date = typeof d === \"string\" ? new Date(d) : d;\n return date.toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\" });\n}\n\nfunction formatTime(d: Date | string) {\n const date = typeof d === \"string\" ? new Date(d) : d;\n return date.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n}\n\nexport function ActivityFeed({\n entries,\n groupByDate = true,\n className,\n}: ActivityFeedProps) {\n const grouped = groupByDate\n ? entries.reduce<Record<string, ActivityEntry[]>>((acc, entry) => {\n const key = formatDate(entry.timestamp);\n (acc[key] ??= []).push(entry);\n return acc;\n }, {})\n : { \"\": entries };\n\n return (\n <div className={cn(\"flex flex-col gap-6\", className)}>\n {Object.entries(grouped).map(([date, items]) => (\n <div key={date}>\n {date && (\n <p className=\"brutal-label mb-3 text-muted-foreground\">{date}</p>\n )}\n <div className=\"relative flex flex-col gap-0 pl-6\">\n <div className=\"absolute bottom-2 left-2 top-2 w-px bg-foreground/10\" />\n {items.map((entry) => (\n <div key={entry.id} className=\"relative flex items-start gap-3 py-2\">\n <div className=\"absolute left-[-18px] top-3 size-2 border border-foreground bg-brand\" />\n <Avatar className=\"size-7 shrink-0\">\n {entry.avatar && (\n <AvatarImage src={entry.avatar} alt={entry.name} />\n )}\n <AvatarFallback className=\"text-[10px]\">\n {entry.name[0]}\n </AvatarFallback>\n </Avatar>\n <div className=\"min-w-0 flex-1\">\n <p className=\"text-sm\">\n <span className=\"font-bold\">{entry.name}</span>{\" \"}\n {entry.action}\n </p>\n <p className=\"font-mono text-xs text-muted-foreground\">\n {formatTime(entry.timestamp)}\n </p>\n {entry.metadata}\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState, useCallback } from \"react\";\n\ninterface FileUploadProps {\n onFiles: (files: File[]) => void;\n accept?: string;\n maxFiles?: number;\n maxSize?: number;\n className?: string;\n}\n\nexport function FileUpload({\n onFiles,\n accept,\n maxFiles = 10,\n maxSize,\n className,\n}: FileUploadProps) {\n const [isDragging, setIsDragging] = useState(false);\n const [files, setFiles] = useState<File[]>([]);\n\n const handleFiles = useCallback(\n (newFiles: FileList | File[]) => {\n const arr = Array.from(newFiles).slice(0, maxFiles);\n setFiles(arr);\n onFiles(arr);\n },\n [maxFiles, onFiles]\n );\n\n return (\n <div className={cn(\"flex flex-col gap-4\", className)}>\n <div\n onDragOver={(e) => {\n e.preventDefault();\n setIsDragging(true);\n }}\n onDragLeave={() => setIsDragging(false)}\n onDrop={(e) => {\n e.preventDefault();\n setIsDragging(false);\n handleFiles(e.dataTransfer.files);\n }}\n className={cn(\n \"flex cursor-pointer flex-col items-center justify-center border-2 border-dashed border-foreground p-8 text-center transition-colors\",\n isDragging && \"border-brand bg-brand-muted\"\n )}\n onClick={() => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.multiple = maxFiles > 1;\n if (accept) input.accept = accept;\n input.onchange = (e) => {\n const target = e.target as HTMLInputElement;\n if (target.files) handleFiles(target.files);\n };\n input.click();\n }}\n >\n <p className=\"brutal-h4 mb-1\">Drop files here</p>\n <p className=\"text-sm text-muted-foreground\">or click to browse</p>\n {maxSize && (\n <p className=\"mt-2 font-mono text-xs text-muted-foreground\">\n Max {Math.round(maxSize / 1024 / 1024)}MB\n </p>\n )}\n </div>\n\n {files.length > 0 && (\n <div className=\"flex flex-col gap-2\">\n {files.map((file, i) => (\n <div\n key={i}\n className=\"flex items-center justify-between border border-foreground bg-secondary px-3 py-2 text-sm\"\n >\n <span className=\"truncate\">{file.name}</span>\n <span className=\"font-mono text-xs text-muted-foreground\">\n {(file.size / 1024).toFixed(0)}KB\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState } from \"react\";\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n flexRender,\n type ColumnDef,\n type SortingState,\n} from \"@tanstack/react-table\";\nimport { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\n\ninterface DataTableProps<TData> {\n columns: ColumnDef<TData, any>[];\n data: TData[];\n searchColumn?: string;\n searchPlaceholder?: string;\n pageSize?: number;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function DataTable<TData>({\n columns,\n data,\n searchColumn,\n searchPlaceholder = \"Search...\",\n pageSize = 10,\n emptyMessage = \"No data\",\n className,\n}: DataTableProps<TData>) {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [globalFilter, setGlobalFilter] = useState(\"\");\n\n const table = useReactTable({\n data,\n columns,\n state: { sorting, globalFilter },\n onSortingChange: setSorting,\n onGlobalFilterChange: setGlobalFilter,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n initialState: { pagination: { pageSize } },\n });\n\n return (\n <div className={cn(\"flex flex-col gap-4\", className)}>\n {searchColumn !== undefined && (\n <Input\n placeholder={searchPlaceholder}\n value={globalFilter}\n onChange={(e) => setGlobalFilter(e.target.value)}\n className=\"max-w-sm\"\n />\n )}\n\n <div className=\"overflow-auto border-brutal border-foreground shadow-brutal\">\n <table className=\"w-full text-sm\">\n <thead>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr\n key={headerGroup.id}\n className=\"border-b-brutal border-foreground bg-secondary\"\n >\n {headerGroup.headers.map((header) => (\n <th\n key={header.id}\n className={cn(\n \"brutal-label px-4 py-3 text-left\",\n header.column.getCanSort() &&\n \"cursor-pointer select-none\"\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {{\n asc: \" ↑\",\n desc: \" ↓\",\n }[header.column.getIsSorted() as string] ?? \"\"}\n </th>\n ))}\n </tr>\n ))}\n </thead>\n <tbody>\n {table.getRowModel().rows.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n className=\"px-4 py-8 text-center text-muted-foreground\"\n >\n {emptyMessage}\n </td>\n </tr>\n ) : (\n table.getRowModel().rows.map((row, i) => (\n <tr\n key={row.id}\n className={cn(\n \"border-b border-foreground/10 transition-colors hover:bg-brand-muted\",\n i % 2 === 1 && \"bg-secondary/30\"\n )}\n >\n {row.getVisibleCells().map((cell) => (\n <td key={cell.id} className=\"px-4 py-3\">\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm text-muted-foreground\">\n Page {table.getState().pagination.pageIndex + 1} of{\" \"}\n {table.getPageCount()}\n </p>\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n Next\n </Button>\n </div>\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useEffect, useRef, useState, useCallback } from \"react\";\nimport {\n draggable,\n dropTargetForElements,\n} from \"@atlaskit/pragmatic-drag-and-drop/element/adapter\";\nimport { combine } from \"@atlaskit/pragmatic-drag-and-drop/combine\";\nimport { Input } from \"../ui/input\";\n\ninterface KanbanColumn<TCard> {\n id: string;\n title: string;\n cards: TCard[];\n}\n\ninterface KanbanBoardProps<TCard extends { id: string }> {\n columns: KanbanColumn<TCard>[];\n renderCard: (card: TCard) => React.ReactNode;\n onCardMove?: (\n cardId: string,\n fromColumn: string,\n toColumn: string,\n index: number\n ) => void;\n onCardAdd?: (columnId: string, title: string) => void;\n className?: string;\n}\n\nexport function KanbanBoard<TCard extends { id: string }>({\n columns,\n renderCard,\n onCardMove,\n onCardAdd,\n className,\n}: KanbanBoardProps<TCard>) {\n return (\n <div className={cn(\"flex gap-4 overflow-x-auto pb-4\", className)}>\n {columns.map((column) => (\n <KanbanColumnComponent\n key={column.id}\n column={column}\n renderCard={renderCard}\n onCardMove={onCardMove}\n onCardAdd={onCardAdd}\n />\n ))}\n </div>\n );\n}\n\nfunction KanbanColumnComponent<TCard extends { id: string }>({\n column,\n renderCard,\n onCardMove,\n onCardAdd,\n}: {\n column: KanbanColumn<TCard>;\n renderCard: (card: TCard) => React.ReactNode;\n onCardMove?: (\n cardId: string,\n fromColumn: string,\n toColumn: string,\n index: number\n ) => void;\n onCardAdd?: (columnId: string, title: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const [isDragOver, setIsDragOver] = useState(false);\n const [addText, setAddText] = useState(\"\");\n\n useEffect(() => {\n if (!ref.current) return;\n return dropTargetForElements({\n element: ref.current,\n getData: () => ({ columnId: column.id }),\n onDragEnter: () => setIsDragOver(true),\n onDragLeave: () => setIsDragOver(false),\n onDrop: ({ source }) => {\n setIsDragOver(false);\n const data = source.data as { cardId: string; columnId: string };\n if (data.columnId !== column.id) {\n onCardMove?.(\n data.cardId as string,\n data.columnId as string,\n column.id,\n column.cards.length\n );\n }\n },\n });\n }, [column.id, column.cards.length, onCardMove]);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex min-w-[280px] flex-col border-brutal border-foreground bg-secondary/30 p-3\",\n isDragOver && \"ring-2 ring-brand\"\n )}\n >\n <div className=\"brutal-label mb-3 flex items-center justify-between\">\n <span>{column.title}</span>\n <span className=\"bg-foreground px-1.5 font-mono text-xs text-background\">\n {column.cards.length}\n </span>\n </div>\n <div className=\"flex flex-1 flex-col gap-2\">\n {column.cards.map((card) => (\n <KanbanCard\n key={card.id}\n card={card}\n columnId={column.id}\n renderCard={renderCard}\n />\n ))}\n </div>\n {onCardAdd && (\n <form\n className=\"mt-3\"\n onSubmit={(e) => {\n e.preventDefault();\n if (addText.trim()) {\n onCardAdd(column.id, addText.trim());\n setAddText(\"\");\n }\n }}\n >\n <Input\n value={addText}\n onChange={(e) => setAddText(e.target.value)}\n placeholder=\"+ Add card...\"\n className=\"text-sm\"\n />\n </form>\n )}\n </div>\n );\n}\n\nfunction KanbanCard<TCard extends { id: string }>({\n card,\n columnId,\n renderCard,\n}: {\n card: TCard;\n columnId: string;\n renderCard: (card: TCard) => React.ReactNode;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n return draggable({\n element: ref.current,\n getInitialData: () => ({ cardId: card.id, columnId }),\n onDragStart: () => setIsDragging(true),\n onDrop: () => setIsDragging(false),\n });\n }, [card.id, columnId]);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"cursor-grab border-brutal border-foreground bg-background p-3 shadow-brutal-sm transition-opacity active:cursor-grabbing\",\n isDragging && \"opacity-50\"\n )}\n >\n {renderCard(card)}\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\n\ninterface GridViewProps {\n children: React.ReactNode;\n columns?: number;\n gap?: number;\n className?: string;\n}\n\nexport function GridView({\n children,\n columns = 3,\n gap = 6,\n className,\n}: GridViewProps) {\n return (\n <div\n className={cn(\"grid\", className)}\n style={{\n gridTemplateColumns: `repeat(auto-fill, minmax(${Math.floor(100 / columns) - 2}%, 1fr))`,\n gap: `${gap * 4}px`,\n }}\n >\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState } from \"react\";\nimport { Button } from \"../ui/button\";\n\ninterface CalendarEvent {\n id: string;\n title: string;\n date: Date | string;\n color?: string;\n}\n\ninterface CalendarViewProps {\n events?: CalendarEvent[];\n onEventClick?: (event: CalendarEvent) => void;\n onDateClick?: (date: Date) => void;\n className?: string;\n}\n\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\nfunction getDaysInMonth(year: number, month: number) {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number) {\n return new Date(year, month, 1).getDay();\n}\n\nexport function CalendarView({\n events = [],\n onEventClick,\n onDateClick,\n className,\n}: CalendarViewProps) {\n const [currentDate, setCurrentDate] = useState(new Date());\n const year = currentDate.getFullYear();\n const month = currentDate.getMonth();\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const monthName = currentDate.toLocaleDateString(\"en-US\", {\n month: \"long\",\n year: \"numeric\",\n });\n\n const cells: (number | null)[] = [];\n for (let i = 0; i < firstDay; i++) cells.push(null);\n for (let d = 1; d <= daysInMonth; d++) cells.push(d);\n\n const getEventsForDay = (day: number) =>\n events.filter((e) => {\n const d = typeof e.date === \"string\" ? new Date(e.date) : e.date;\n return (\n d.getFullYear() === year &&\n d.getMonth() === month &&\n d.getDate() === day\n );\n });\n\n const today = new Date();\n const isToday = (day: number) =>\n day === today.getDate() &&\n month === today.getMonth() &&\n year === today.getFullYear();\n\n return (\n <div className={cn(\"flex flex-col gap-4\", className)}>\n <div className=\"flex items-center justify-between\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setCurrentDate(new Date(year, month - 1))}\n >\n ←\n </Button>\n <h3 className=\"brutal-h4\">{monthName}</h3>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setCurrentDate(new Date(year, month + 1))}\n >\n →\n </Button>\n </div>\n <div className=\"grid grid-cols-7 border-brutal border-foreground\">\n {DAYS.map((day) => (\n <div\n key={day}\n className=\"brutal-label border-b-brutal border-foreground bg-secondary px-2 py-2 text-center text-xs\"\n >\n {day}\n </div>\n ))}\n {cells.map((day, i) => {\n const dayEvents = day ? getEventsForDay(day) : [];\n return (\n <div\n key={i}\n className={cn(\n \"min-h-[80px] border-b border-r border-foreground/10 p-1\",\n day && onDateClick && \"cursor-pointer hover:bg-secondary/50\",\n isToday(day ?? 0) && \"bg-brand-muted\"\n )}\n onClick={() => day && onDateClick?.(new Date(year, month, day))}\n >\n {day && (\n <>\n <span\n className={cn(\n \"text-xs font-bold\",\n isToday(day) && \"text-brand\"\n )}\n >\n {day}\n </span>\n <div className=\"mt-1 flex flex-col gap-0.5\">\n {dayEvents.slice(0, 3).map((event) => (\n <div\n key={event.id}\n onClick={(e) => {\n e.stopPropagation();\n onEventClick?.(event);\n }}\n className=\"cursor-pointer truncate border border-foreground/20 bg-brand-muted px-1 text-[10px] font-medium hover:bg-brand\"\n style={\n event.color\n ? { borderLeftColor: event.color, borderLeftWidth: 2 }\n : undefined\n }\n >\n {event.title}\n </div>\n ))}\n {dayEvents.length > 3 && (\n <span className=\"text-[10px] text-muted-foreground\">\n +{dayEvents.length - 3}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../ui/avatar\";\n\ninterface ListItem {\n id: string;\n title: string;\n subtitle?: string;\n avatar?: string;\n metadata?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\ninterface ListViewProps {\n items: ListItem[];\n onItemClick?: (item: ListItem) => void;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function ListView({\n items,\n onItemClick,\n emptyMessage = \"No items\",\n className,\n}: ListViewProps) {\n if (items.length === 0) {\n return (\n <p className=\"py-8 text-center text-muted-foreground\">{emptyMessage}</p>\n );\n }\n\n return (\n <div className={cn(\"border-brutal border-foreground shadow-brutal\", className)}>\n {items.map((item, i) => (\n <div\n key={item.id}\n onClick={() => onItemClick?.(item)}\n className={cn(\n \"flex items-center gap-4 px-4 py-3 transition-colors\",\n onItemClick && \"cursor-pointer\",\n \"hover:bg-secondary/50\",\n i < items.length - 1 && \"border-b border-foreground/10\"\n )}\n >\n {item.avatar && (\n <Avatar className=\"size-8\">\n <AvatarImage src={item.avatar} alt={item.title} />\n <AvatarFallback>{item.title[0]}</AvatarFallback>\n </Avatar>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"text-sm font-bold\">{item.title}</p>\n {item.subtitle && (\n <p className=\"truncate text-xs text-muted-foreground\">\n {item.subtitle}\n </p>\n )}\n </div>\n {item.metadata && (\n <div className=\"text-sm text-muted-foreground\">{item.metadata}</div>\n )}\n {item.actions && <div>{item.actions}</div>}\n </div>\n ))}\n </div>\n );\n}\n","import { BrutalNav } from \"../components/brutal/nav\";\nimport { BrutalHero } from \"../components/brutal/hero\";\nimport { SectionDivider } from \"../components/brutal/section-divider\";\nimport { LogoCloud } from \"../components/brutal/logo-cloud\";\nimport { BrutalFeatureGrid } from \"../components/brutal/feature-grid\";\nimport { StatsBar } from \"../components/brutal/stats-bar\";\nimport { BrutalTestimonials } from \"../components/brutal/testimonials\";\nimport { PricingTable } from \"../components/brutal/pricing-table\";\nimport { FAQ } from \"../components/brutal/faq\";\nimport { BrutalCTA } from \"../components/brutal/cta-section\";\nimport { BrutalFooter } from \"../components/brutal/footer\";\n\ninterface SaaSLaunchProps {\n brand: string;\n logo: React.ReactNode;\n nav: {\n links: { label: string; href: string; badge?: string; active?: boolean }[];\n ctaText?: string;\n ctaHref?: string;\n };\n hero: {\n badge?: string;\n headline: string;\n description: string;\n ctaText: string;\n ctaHref?: string;\n secondaryText?: string;\n secondaryHref?: string;\n visual?: React.ReactNode;\n proof?: string;\n };\n logos?: { src: string; alt: string; href?: string }[];\n features: {\n badge?: string;\n headline: string;\n description?: string;\n items: { icon?: React.ReactNode; title: string; description: string; featured?: boolean; stat?: string }[];\n };\n stats?: { value: number; label: string; prefix?: string; suffix?: string }[];\n testimonials: {\n badge?: string;\n headline?: string;\n items: { name: string; handle?: string; avatar?: string; text: string; role?: string; company?: string; rating?: 1 | 2 | 3 | 4 | 5; featured?: boolean }[];\n };\n pricing?: {\n badge?: string;\n headline?: string;\n description?: string;\n tiers: { name: string; description?: string; price: { monthly: number | string; annual: number | string }; features: string[]; ctaText: string; ctaHref?: string; ctaVariant?: \"cta\" | \"brand\" | \"default\" | \"outline\" }[];\n popularIndex?: number;\n };\n faq?: { question: string; answer: string }[];\n cta: {\n headline: string;\n description?: string;\n ctaText: string;\n ctaHref?: string;\n secondaryText?: string;\n secondaryHref?: string;\n };\n footer: {\n tagline?: string;\n columns: { title: string; links: { label: string; href: string }[] }[];\n socials?: { twitter?: string; github?: string; linkedin?: string; discord?: string };\n };\n}\n\nexport function SaaSLaunchTemplate({\n brand,\n logo,\n nav,\n hero,\n logos,\n features,\n stats,\n testimonials,\n pricing,\n faq,\n cta,\n footer,\n}: SaaSLaunchProps) {\n return (\n <div>\n <BrutalNav logo={logo} links={nav.links} ctaText={nav.ctaText} ctaHref={nav.ctaHref} variant=\"solid\" />\n\n <BrutalHero\n variant=\"split\"\n badge={hero.badge}\n headline={hero.headline}\n description={hero.description}\n ctaText={hero.ctaText}\n ctaHref={hero.ctaHref}\n secondaryText={hero.secondaryText}\n secondaryHref={hero.secondaryHref}\n visual={hero.visual}\n proof={hero.proof}\n color=\"brand\"\n pattern=\"noise\"\n />\n\n <SectionDivider from=\"hsl(var(--brand))\" to=\"hsl(var(--background))\" variant=\"wave\" />\n\n {logos && logos.length > 0 && (\n <LogoCloud logos={logos} marquee title=\"Trusted by teams everywhere\" />\n )}\n\n <BrutalFeatureGrid\n variant=\"bento\"\n badge={features.badge}\n headline={features.headline}\n description={features.description}\n features={features.items}\n color=\"white\"\n />\n\n {stats && stats.length > 0 && (\n <StatsBar stats={stats} color=\"brand\" />\n )}\n\n <SectionDivider from=\"hsl(var(--brand))\" to=\"hsl(var(--section-blue))\" variant=\"torn-paper\" />\n\n <BrutalTestimonials\n variant=\"wall-of-love\"\n badge={testimonials.badge}\n headline={testimonials.headline}\n testimonials={testimonials.items}\n color=\"blue\"\n />\n\n <SectionDivider from=\"hsl(var(--section-blue))\" to=\"hsl(var(--background))\" variant=\"wave\" />\n\n {pricing && (\n <PricingTable\n badge={pricing.badge}\n headline={pricing.headline}\n description={pricing.description}\n tiers={pricing.tiers}\n popularIndex={pricing.popularIndex}\n color=\"white\"\n />\n )}\n\n {faq && faq.length > 0 && (\n <FAQ badge=\"FAQ\" headline=\"Common Questions\" items={faq} color=\"gray\" />\n )}\n\n <BrutalCTA\n variant=\"with-visual\"\n headline={cta.headline}\n description={cta.description}\n ctaText={cta.ctaText}\n ctaHref={cta.ctaHref}\n secondaryText={cta.secondaryText}\n secondaryHref={cta.secondaryHref}\n color=\"black\"\n pattern=\"gradient-mesh\"\n />\n\n <BrutalFooter\n variant=\"mega\"\n logo={logo}\n tagline={footer.tagline}\n columns={footer.columns}\n socials={footer.socials}\n />\n </div>\n );\n}\n","import { BrutalNav } from \"../components/brutal/nav\";\nimport { BrutalHero } from \"../components/brutal/hero\";\nimport { SectionDivider } from \"../components/brutal/section-divider\";\nimport { BrutalFeatureGrid } from \"../components/brutal/feature-grid\";\nimport { BrutalTestimonials } from \"../components/brutal/testimonials\";\nimport { Newsletter } from \"../components/brutal/newsletter\";\nimport { BrutalCTA } from \"../components/brutal/cta-section\";\nimport { BrutalFooter } from \"../components/brutal/footer\";\n\ninterface StudioProps {\n logo: React.ReactNode;\n nav: {\n links: { label: string; href: string; badge?: string; active?: boolean }[];\n ctaText?: string;\n ctaHref?: string;\n };\n hero: {\n badge?: string;\n headline: string;\n description: string;\n ctaText: string;\n ctaHref?: string;\n visual?: React.ReactNode;\n proof?: string;\n };\n features: {\n badge?: string;\n headline: string;\n description?: string;\n items: { icon?: React.ReactNode; title: string; description: string }[];\n };\n testimonials?: {\n badge?: string;\n headline?: string;\n items: { name: string; handle?: string; avatar?: string; text: string; role?: string; company?: string; rating?: 1 | 2 | 3 | 4 | 5; featured?: boolean }[];\n };\n newsletter?: {\n headline?: string;\n description?: string;\n onSubmit?: (email: string) => void;\n };\n cta: {\n headline: string;\n description?: string;\n ctaText: string;\n ctaHref?: string;\n };\n footer: {\n tagline?: string;\n columns: { title: string; links: { label: string; href: string }[] }[];\n };\n}\n\nexport function StudioTemplate({\n logo,\n nav,\n hero,\n features,\n testimonials,\n newsletter,\n cta,\n footer,\n}: StudioProps) {\n return (\n <div>\n <BrutalNav logo={logo} links={nav.links} ctaText={nav.ctaText} ctaHref={nav.ctaHref} variant=\"floating-pill\" />\n\n <BrutalHero\n variant=\"asymmetric\"\n badge={hero.badge}\n headline={hero.headline}\n description={hero.description}\n ctaText={hero.ctaText}\n ctaHref={hero.ctaHref}\n visual={hero.visual}\n proof={hero.proof}\n color=\"brand\"\n pattern=\"grain\"\n />\n\n <SectionDivider from=\"hsl(var(--brand))\" to=\"hsl(var(--background))\" variant=\"brush-stroke\" />\n\n <BrutalFeatureGrid\n variant=\"numbered\"\n badge={features.badge}\n headline={features.headline}\n description={features.description}\n features={features.items}\n color=\"white\"\n />\n\n {testimonials && (\n <>\n <SectionDivider from=\"hsl(var(--background))\" to=\"hsl(var(--section-gray))\" variant=\"diagonal\" />\n <BrutalTestimonials\n variant=\"featured-grid\"\n badge={testimonials.badge}\n headline={testimonials.headline}\n testimonials={testimonials.items}\n color=\"gray\"\n />\n <SectionDivider from=\"hsl(var(--section-gray))\" to=\"hsl(var(--background))\" variant=\"diagonal\" flip />\n </>\n )}\n\n {newsletter && (\n <Newsletter\n headline={newsletter.headline}\n description={newsletter.description}\n onSubmit={newsletter.onSubmit}\n />\n )}\n\n <BrutalCTA\n variant=\"floating-card\"\n headline={cta.headline}\n description={cta.description}\n ctaText={cta.ctaText}\n ctaHref={cta.ctaHref}\n color=\"brand\"\n />\n\n <BrutalFooter\n variant=\"minimal\"\n logo={logo}\n tagline={footer.tagline}\n columns={footer.columns}\n />\n </div>\n );\n}\n","\"use client\";\n\nimport { AppShell } from \"../components/dashboard/app-shell\";\nimport { Sidebar } from \"../components/dashboard/sidebar\";\nimport { SearchBar } from \"../components/dashboard/search-bar\";\nimport { UserMenu } from \"../components/dashboard/user-menu\";\nimport { StatCard } from \"../components/dashboard/stat-card\";\nimport { ViewSwitcher } from \"../components/dashboard/view-switcher\";\nimport { useState } from \"react\";\n\ninterface DashboardProps {\n logo: React.ReactNode;\n logoCollapsed?: React.ReactNode;\n sidebarGroups: { title?: string; links: { icon: React.ReactNode; label: string; href: string; active?: boolean; badge?: string | number }[] }[];\n user: { name: string; email?: string; avatar?: string };\n userMenuItems?: { label: string; href?: string; onClick?: () => void }[];\n onSignOut?: () => void;\n stats?: { label: string; value: string | number; change?: number; changeLabel?: string; icon?: React.ReactNode }[];\n views?: (\"table\" | \"kanban\" | \"grid\" | \"calendar\" | \"list\")[];\n children: React.ReactNode;\n sidebarFooter?: React.ReactNode;\n}\n\nexport function DashboardTemplate({\n logo,\n logoCollapsed,\n sidebarGroups,\n user,\n userMenuItems,\n onSignOut,\n stats,\n views,\n children,\n sidebarFooter,\n}: DashboardProps) {\n const [view, setView] = useState<\"table\" | \"kanban\" | \"grid\" | \"calendar\" | \"list\">(\"table\");\n\n return (\n <AppShell\n sidebar={\n <Sidebar\n logo={logo}\n logoCollapsed={logoCollapsed}\n groups={sidebarGroups}\n footer={sidebarFooter}\n />\n }\n header={\n <>\n <SearchBar className=\"flex-1 max-w-sm\" />\n <div className=\"ml-auto\">\n <UserMenu\n name={user.name}\n email={user.email}\n avatar={user.avatar}\n items={userMenuItems}\n onSignOut={onSignOut}\n />\n </div>\n </>\n }\n >\n {stats && stats.length > 0 && (\n <div className=\"mb-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {stats.map((stat) => (\n <StatCard key={stat.label} {...stat} />\n ))}\n </div>\n )}\n\n {views && views.length > 1 && (\n <div className=\"mb-4\">\n <ViewSwitcher value={view} onChange={setView} views={views} />\n </div>\n )}\n\n {children}\n </AppShell>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/components/ui/accordion.tsx","../src/components/ui/alert.tsx","../src/components/ui/avatar.tsx","../src/components/ui/badge.tsx","../src/components/ui/breadcrumb.tsx","../src/components/ui/button.tsx","../src/components/ui/card.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/collapsible.tsx","../src/components/ui/dialog.tsx","../src/components/ui/input.tsx","../src/components/ui/textarea.tsx","../src/components/ui/input-group.tsx","../src/components/ui/command.tsx","../src/components/ui/context-menu.tsx","../src/components/ui/drawer.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/ui/hover-card.tsx","../src/components/ui/label.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/scroll-area.tsx","../src/components/ui/select.tsx","../src/components/ui/separator.tsx","../src/components/ui/sheet.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/slider.tsx","../src/components/ui/switch.tsx","../src/components/ui/tabs.tsx","../src/components/ui/toggle.tsx","../src/components/ui/toggle-group.tsx","../src/components/ui/tooltip.tsx","../src/lib/animations.ts","../src/components/brutal/section.tsx","../src/components/brutal/section-divider.tsx","../src/components/brutal/hero.tsx","../src/components/brutal/feature-grid.tsx","../src/components/brutal/testimonials.tsx","../src/components/brutal/integration-grid.tsx","../src/components/brutal/cta-section.tsx","../src/components/brutal/nav.tsx","../src/components/brutal/footer.tsx","../src/components/brutal/pricing-table.tsx","../src/components/brutal/logo-cloud.tsx","../src/components/brutal/stats-bar.tsx","../src/components/brutal/faq.tsx","../src/components/brutal/newsletter.tsx","../src/components/dashboard/app-shell.tsx","../src/components/dashboard/sidebar.tsx","../src/components/dashboard/stat-card.tsx","../src/components/dashboard/view-switcher.tsx","../src/components/dashboard/search-bar.tsx","../src/components/dashboard/user-menu.tsx","../src/components/dashboard/empty-state.tsx","../src/components/dashboard/activity-feed.tsx","../src/components/dashboard/file-upload.tsx","../src/components/views/data-table.tsx","../src/components/views/kanban-board.tsx","../src/components/views/grid-view.tsx","../src/components/views/calendar-view.tsx","../src/components/views/list-view.tsx","../src/templates/saas-launch.tsx","../src/templates/studio.tsx","../src/templates/dashboard.tsx"],"names":["AccordionPrimitive","jsx","AvatarPrimitive","cva","useRender","mergeProps","jsxs","ButtonPrimitive","CheckboxPrimitive","CollapsiblePrimitive","DialogPrimitive","InputPrimitive","CommandPrimitive","CheckIcon","ContextMenuPrimitive","ChevronRightIcon","DrawerPrimitive","MenuPrimitive","PreviewCardPrimitive","MenubarPrimitive","NavigationMenuPrimitive","ChevronDownIcon","MoreHorizontalIcon","PopoverPrimitive","ProgressPrimitive","RadioGroupPrimitive","RadioPrimitive","ScrollAreaPrimitive","SelectPrimitive","ChevronUpIcon","SeparatorPrimitive","SheetPrimitive","XIcon","React","SliderPrimitive","SwitchPrimitive","TabsPrimitive","TogglePrimitive","ToggleGroupPrimitive","TooltipPrimitive","Fragment","Menu","useState","useEffect","createContext","useContext","useRef"],"mappings":"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","file":"index.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\"\n\nimport { Accordion as AccordionPrimitive } from \"@base-ui/react/accordion\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\n\nfunction Accordion({ className, ...props }: AccordionPrimitive.Root.Props) {\n return (\n <AccordionPrimitive.Root\n data-slot=\"accordion\"\n className={cn(\"flex w-full flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionItem({ className, ...props }: AccordionPrimitive.Item.Props) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-brutal border-foreground rounded-lg mb-2 px-3\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: AccordionPrimitive.Trigger.Props) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"group/accordion-trigger relative flex flex-1 items-start justify-between rounded-lg border border-transparent py-2.5 text-left text-sm font-bold transition-all outline-none hover:underline focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 aria-disabled:pointer-events-none aria-disabled:opacity-50 **:data-[slot=accordion-trigger-icon]:ml-auto **:data-[slot=accordion-trigger-icon]:size-4 **:data-[slot=accordion-trigger-icon]:text-muted-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none shrink-0 group-aria-expanded/accordion-trigger:hidden\" />\n <ChevronUpIcon data-slot=\"accordion-trigger-icon\" className=\"pointer-events-none hidden shrink-0 group-aria-expanded/accordion-trigger:inline\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: AccordionPrimitive.Panel.Props) {\n return (\n <AccordionPrimitive.Panel\n data-slot=\"accordion-content\"\n className=\"overflow-hidden text-sm data-open:animate-accordion-down data-closed:animate-accordion-up\"\n {...props}\n >\n <div\n className={cn(\n \"h-(--accordion-panel-height) pt-0 pb-2.5 data-ending-style:h-0 data-starting-style:h-0 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n >\n {children}\n </div>\n </AccordionPrimitive.Panel>\n )\n}\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 \"group/alert relative grid w-full gap-0.5 rounded-lg border-brutal border-foreground shadow-brutal-sm px-2.5 py-2 text-left text-sm has-data-[slot=alert-action]:relative has-data-[slot=alert-action]:pr-18 has-[>svg]:grid-cols-[auto_1fr] has-[>svg]:gap-x-2 *:[svg]:row-span-2 *:[svg]:translate-y-0.5 *:[svg]:text-current *:[svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 *:[svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Alert({\n className,\n variant,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"font-bold group-has-[>svg]/alert:col-start-2 [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"text-sm text-balance text-muted-foreground md:text-pretty [&_a]:underline [&_a]:underline-offset-3 [&_a]:hover:text-foreground [&_p:not(:last-child)]:mb-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-action\"\n className={cn(\"absolute top-2 right-2\", className)}\n {...props}\n />\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Avatar as AvatarPrimitive } from \"@base-ui/react/avatar\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: AvatarPrimitive.Root.Props & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 rounded-full select-none after:absolute after:inset-0 after:rounded-full after:border after:border-border after:mix-blend-darken data-[size=lg]:size-10 data-[size=sm]:size-6 dark:after:mix-blend-lighten\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\n \"aspect-square size-full rounded-full object-cover\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: AvatarPrimitive.Fallback.Props) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full bg-primary text-primary-foreground bg-blend-color ring-2 ring-background select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2 *:data-[slot=avatar]:ring-background\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"relative flex size-8 shrink-0 items-center justify-center rounded-full bg-muted text-sm text-muted-foreground ring-2 ring-background group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarGroup,\n AvatarGroupCount,\n AvatarBadge,\n}\n","import { mergeProps } from \"@base-ui/react/merge-props\";\nimport { useRender } from \"@base-ui/react/use-render\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\n \"group/badge inline-flex w-fit shrink-0 items-center justify-center gap-1 rounded-md whitespace-nowrap font-bold transition-all [&>svg]:pointer-events-none [&>svg]:size-3!\",\n {\n variants: {\n variant: {\n default:\n \"border-brutal border-foreground bg-primary px-3 py-1 text-xs text-primary-foreground shadow-brutal-sm\",\n secondary:\n \"border-brutal border-foreground bg-secondary px-3 py-1 text-xs text-secondary-foreground shadow-brutal-sm\",\n brand:\n \"border-brutal border-foreground bg-brand px-3 py-1 text-xs text-brand-foreground shadow-brutal-sm\",\n cta: \"border-brutal border-foreground bg-cta px-3 py-1 text-xs text-cta-foreground shadow-brutal-sm\",\n outline:\n \"border-brutal border-foreground bg-background px-3 py-1 text-xs text-foreground\",\n destructive:\n \"border-brutal border-destructive bg-destructive/10 px-3 py-1 text-xs text-destructive\",\n ghost: \"px-2 py-0.5 text-xs text-muted-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nfunction Badge({\n className,\n variant = \"default\",\n render,\n ...props\n}: useRender.ComponentProps<\"span\"> & VariantProps<typeof badgeVariants>) {\n return useRender({\n defaultTagName: \"span\",\n props: mergeProps<\"span\">(\n {\n className: cn(badgeVariants({ variant }), className),\n },\n props\n ),\n render,\n state: {\n slot: \"badge\",\n variant,\n },\n });\n}\n\nexport { Badge, badgeVariants };\n","import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nfunction Breadcrumb({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n aria-label=\"breadcrumb\"\n data-slot=\"breadcrumb\"\n className={cn(className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"flex flex-wrap items-center gap-1.5 text-sm font-bold wrap-break-word text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"a\">) {\n return useRender({\n defaultTagName: \"a\",\n props: mergeProps<\"a\">(\n {\n className: cn(\"transition-colors hover:text-foreground\", className),\n },\n props\n ),\n render,\n state: {\n slot: \"breadcrumb-link\",\n },\n })\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-bold text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"font-mono text-foreground [&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? (\n <ChevronRightIcon />\n )}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\n \"flex size-5 items-center justify-center [&>svg]:size-4\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n","\"use client\";\n\nimport { Button as ButtonPrimitive } from \"@base-ui/react/button\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst buttonVariants = cva(\n \"group/button inline-flex shrink-0 items-center justify-center rounded-lg whitespace-nowrap font-bold transition-all duration-150 select-none outline-none disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n // Primary: Black bg, white text, offset shadow\n default:\n \"border-brutal border-foreground bg-primary text-primary-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // CTA: Mint green bg — the Bannerbear signature\n cta: \"border-brutal border-foreground bg-cta text-cta-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Brand: Dynamic brand color bg\n brand:\n \"border-brutal border-foreground bg-brand text-brand-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Outline: White bg, black border, offset shadow\n outline:\n \"border-brutal border-foreground bg-background text-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Secondary: Light bg, border, smaller shadow\n secondary:\n \"border-brutal border-foreground bg-secondary text-secondary-foreground shadow-brutal-sm hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal active:translate-x-px active:translate-y-px active:shadow-none\",\n // Ghost: No border/shadow, subtle hover\n ghost: \"hover:bg-secondary hover:text-foreground\",\n // Link: Text only\n link: \"text-foreground underline-offset-4 hover:underline\",\n // Destructive\n destructive:\n \"border-brutal border-destructive bg-destructive text-destructive-foreground shadow-brutal hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg active:translate-x-px active:translate-y-px active:shadow-brutal-sm\",\n // Nav: Thin border, no shadow (for nav Sign In buttons)\n nav: \"border border-foreground bg-background text-foreground hover:bg-foreground hover:text-background\",\n },\n size: {\n xs: \"h-7 gap-1 px-2.5 text-xs\",\n sm: \"h-8 gap-1.5 px-3 text-sm\",\n default: \"h-10 gap-2 px-5 text-sm\",\n lg: \"h-12 gap-2 px-7 text-base\",\n xl: \"h-14 gap-2.5 px-9 text-lg\",\n icon: \"size-10\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-12\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ButtonPrimitive.Props & VariantProps<typeof buttonVariants>) {\n return (\n <ButtonPrimitive\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n );\n}\n\nexport { Button, buttonVariants };\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Card({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n \"group/card flex flex-col gap-4 rounded-lg border-brutal border-foreground bg-card p-5 text-card-foreground shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\"flex flex-col gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn(\"text-lg font-bold leading-snug\", className)}\n {...props}\n />\n );\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn(\"self-start justify-self-end\", className)}\n {...props}\n />\n );\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-content\"\n className={cn(\"\", className)}\n {...props}\n />\n );\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn(\n \"flex items-center border-t-brutal border-foreground pt-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Card,\n CardHeader,\n CardFooter,\n CardTitle,\n CardAction,\n CardDescription,\n CardContent,\n};\n","\"use client\"\n\nimport { Checkbox as CheckboxPrimitive } from \"@base-ui/react/checkbox\"\n\nimport { cn } from \"../../lib/utils\"\nimport { CheckIcon } from \"lucide-react\"\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative flex size-5 shrink-0 items-center justify-center rounded-md border-brutal border-foreground transition-colors outline-none group-has-disabled/field:opacity-50 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\"\n >\n <CheckIcon\n />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"@base-ui/react/collapsible\"\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n return (\n <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />\n )\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n return (\n <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Dialog({ ...props }: DialogPrimitive.Root.Props) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({ ...props }: DialogPrimitive.Trigger.Props) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: DialogPrimitive.Portal.Props) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: DialogPrimitive.Close.Props) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: DialogPrimitive.Backdrop.Props) {\n return (\n <DialogPrimitive.Backdrop\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 isolate z-50 bg-black/60 duration-100 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: DialogPrimitive.Popup.Props & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Popup\n data-slot=\"dialog-content\"\n className={cn(\n \"fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border-brutal border-foreground bg-background p-4 text-sm shadow-brutal-lg duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-2 right-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Popup>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-lg border-t-2 border-foreground bg-muted/50 p-4 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close render={<Button variant=\"outline\" />}>\n Close\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({ className, ...props }: DialogPrimitive.Title.Props) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-base leading-none font-bold\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: DialogPrimitive.Description.Props) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n \"text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n","import * as React from \"react\";\nimport { Input as InputPrimitive } from \"@base-ui/react/input\";\n\nimport { cn } from \"../../lib/utils\";\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <InputPrimitive\n type={type}\n data-slot=\"input\"\n className={cn(\n \"h-10 w-full min-w-0 rounded-lg border-brutal border-foreground bg-background px-3 py-2 text-base font-medium shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground focus:shadow-brutal focus:-translate-x-0.5 focus:-translate-y-0.5 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive md:text-sm\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n","import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"flex field-sizing-content min-h-16 w-full rounded-lg border-brutal border-foreground bg-background px-2.5 py-2 text-base shadow-brutal-sm transition-all outline-none placeholder:text-muted-foreground hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:-translate-x-0.5 focus-visible:-translate-y-0.5 focus-visible:shadow-brutal disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { Input } from \"./input\"\nimport { Textarea } from \"./textarea\"\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n \"group/input-group relative flex h-8 w-full min-w-0 items-center rounded-lg border border-input transition-colors outline-none in-data-[slot=combobox-content]:focus-within:border-inherit in-data-[slot=combobox-content]:focus-within:ring-0 has-disabled:bg-input/50 has-disabled:opacity-50 has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-3 has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-3 has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>textarea]:h-auto dark:bg-input/30 dark:has-disabled:bg-input/80 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40 has-[>[data-align=block-end]]:[&>input]:pt-3 has-[>[data-align=block-start]]:[&>input]:pb-3 has-[>[data-align=inline-end]]:[&>input]:pr-1.5 has-[>[data-align=inline-start]]:[&>input]:pl-1.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst inputGroupAddonVariants = cva(\n \"flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n align: {\n \"inline-start\":\n \"order-first pl-2 has-[>button]:ml-[-0.3rem] has-[>kbd]:ml-[-0.15rem]\",\n \"inline-end\":\n \"order-last pr-2 has-[>button]:mr-[-0.3rem] has-[>kbd]:mr-[-0.15rem]\",\n \"block-start\":\n \"order-first w-full justify-start px-2.5 pt-2 group-has-[>input]/input-group:pt-2 [.border-b]:pb-2\",\n \"block-end\":\n \"order-last w-full justify-start px-2.5 pb-2 group-has-[>input]/input-group:pb-2 [.border-t]:pt-2\",\n },\n },\n defaultVariants: {\n align: \"inline-start\",\n },\n }\n)\n\nfunction InputGroupAddon({\n className,\n align = \"inline-start\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest(\"button\")) {\n return\n }\n e.currentTarget.parentElement?.querySelector(\"input\")?.focus()\n }}\n {...props}\n />\n )\n}\n\nconst inputGroupButtonVariants = cva(\n \"flex items-center gap-2 text-sm shadow-none\",\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 rounded-[calc(var(--radius)-3px)] px-1.5 [&>svg:not([class*='size-'])]:size-3.5\",\n sm: \"\",\n \"icon-xs\":\n \"size-6 rounded-[calc(var(--radius)-3px)] p-0 has-[>svg]:p-0\",\n \"icon-sm\": \"size-8 p-0 has-[>svg]:p-0\",\n },\n },\n defaultVariants: {\n size: \"xs\",\n },\n }\n)\n\nfunction InputGroupButton({\n className,\n type = \"button\",\n variant = \"ghost\",\n size = \"xs\",\n ...props\n}: Omit<React.ComponentProps<typeof Button>, \"size\" | \"type\"> &\n VariantProps<typeof inputGroupButtonVariants> & {\n type?: \"button\" | \"submit\" | \"reset\"\n }) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n )\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n className={cn(\n \"flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<\"input\">) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 rounded-none border-0 bg-transparent shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<\"textarea\">) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n \"flex-1 resize-none rounded-none border-0 bg-transparent py-2 shadow-none ring-0 focus-visible:ring-0 disabled:bg-transparent aria-invalid:ring-0 dark:bg-transparent dark:disabled:bg-transparent\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Command as CommandPrimitive } from \"cmdk\"\n\nimport { cn } from \"../../lib/utils\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from \"./dialog\"\nimport {\n InputGroup,\n InputGroupAddon,\n} from \"./input-group\"\nimport { SearchIcon, CheckIcon } from \"lucide-react\"\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-lg! border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal-lg\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandDialog({\n title = \"Command Palette\",\n description = \"Search for a command to run...\",\n children,\n className,\n showCloseButton = false,\n ...props\n}: Omit<React.ComponentProps<typeof Dialog>, \"children\"> & {\n title?: string\n description?: string\n className?: string\n showCloseButton?: boolean\n children: React.ReactNode\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn(\n \"top-1/3 translate-y-0 overflow-hidden rounded-lg! p-0\",\n className\n )}\n showCloseButton={showCloseButton}\n >\n {children}\n </DialogContent>\n </Dialog>\n )\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n <InputGroup className=\"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n \"w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n <InputGroupAddon>\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n </InputGroupAddon>\n </InputGroup>\n </div>\n )\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n \"no-scrollbar max-h-72 scroll-py-1 overflow-x-hidden overflow-y-auto outline-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction CommandEmpty({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className={cn(\"py-6 text-center text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\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}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction CommandItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"group/command-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none in-data-[slot=dialog-content]:rounded-lg! data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 data-selected:bg-muted data-selected:text-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-selected:*:[svg]:text-foreground\",\n className\n )}\n {...props}\n >\n {children}\n <CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n </CommandPrimitive.Item>\n )\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-data-selected/command-item:text-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ContextMenu as ContextMenuPrimitive } from \"@base-ui/react/context-menu\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronRightIcon, CheckIcon } from \"lucide-react\"\n\nfunction ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props) {\n return <ContextMenuPrimitive.Root data-slot=\"context-menu\" {...props} />\n}\n\nfunction ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props) {\n return (\n <ContextMenuPrimitive.Portal data-slot=\"context-menu-portal\" {...props} />\n )\n}\n\nfunction ContextMenuTrigger({\n className,\n ...props\n}: ContextMenuPrimitive.Trigger.Props) {\n return (\n <ContextMenuPrimitive.Trigger\n data-slot=\"context-menu-trigger\"\n className={cn(\"select-none\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuContent({\n className,\n align = \"start\",\n alignOffset = 4,\n side = \"right\",\n sideOffset = 0,\n ...props\n}: ContextMenuPrimitive.Popup.Props &\n Pick<\n ContextMenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <ContextMenuPrimitive.Popup\n data-slot=\"context-menu-content\"\n className={cn(\"z-50 max-h-(--available-height) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </ContextMenuPrimitive.Positioner>\n </ContextMenuPrimitive.Portal>\n )\n}\n\nfunction ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props) {\n return (\n <ContextMenuPrimitive.Group data-slot=\"context-menu-group\" {...props} />\n )\n}\n\nfunction ContextMenuLabel({\n className,\n inset,\n ...props\n}: ContextMenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.GroupLabel\n data-slot=\"context-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: ContextMenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <ContextMenuPrimitive.Item\n data-slot=\"context-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/context-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 focus:*:[svg]:text-accent-foreground data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props) {\n return (\n <ContextMenuPrimitive.SubmenuRoot data-slot=\"context-menu-sub\" {...props} />\n )\n}\n\nfunction ContextMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: ContextMenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.SubmenuTrigger\n data-slot=\"context-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </ContextMenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction ContextMenuSubContent({\n ...props\n}: React.ComponentProps<typeof ContextMenuContent>) {\n return (\n <ContextMenuContent\n data-slot=\"context-menu-sub-content\"\n className=\"shadow-lg\"\n side=\"right\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: ContextMenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.CheckboxItem\n data-slot=\"context-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n )\n}\n\nfunction ContextMenuRadioGroup({\n ...props\n}: ContextMenuPrimitive.RadioGroup.Props) {\n return (\n <ContextMenuPrimitive.RadioGroup\n data-slot=\"context-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction ContextMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: ContextMenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <ContextMenuPrimitive.RadioItem\n data-slot=\"context-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute right-2\">\n <ContextMenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </ContextMenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n )\n}\n\nfunction ContextMenuSeparator({\n className,\n ...props\n}: ContextMenuPrimitive.Separator.Props) {\n return (\n <ContextMenuPrimitive.Separator\n data-slot=\"context-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction ContextMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"context-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/context-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\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","\"use client\"\n\nimport * as React from \"react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Drawer({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />\n}\n\nfunction DrawerTrigger({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />\n}\n\nfunction DrawerPortal(props: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal {...props} />\n}\n\nfunction DrawerClose({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/60 data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n \"group/drawer-content fixed z-50 flex h-auto flex-col border-brutal border-foreground bg-background text-sm shadow-brutal-lg data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:rounded-r-lg data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:rounded-l-lg data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=left]:sm:max-w-sm data-[vaul-drawer-direction=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 hidden h-1 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </>\n )\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n \"flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-0.5 md:text-left\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn(\"text-base font-bold text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronRightIcon, CheckIcon } from \"lucide-react\"\n\nfunction DropdownMenu({ ...props }: MenuPrimitive.Root.Props) {\n return <MenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n\nfunction DropdownMenuPortal({ ...props }: MenuPrimitive.Portal.Props) {\n return <MenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n}\n\nfunction DropdownMenuTrigger({ ...props }: MenuPrimitive.Trigger.Props) {\n return <MenuPrimitive.Trigger data-slot=\"dropdown-menu-trigger\" {...props} />\n}\n\nfunction DropdownMenuContent({\n align = \"start\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n className,\n ...props\n}: MenuPrimitive.Popup.Props &\n Pick<\n MenuPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <MenuPrimitive.Portal>\n <MenuPrimitive.Positioner\n className=\"isolate z-50 outline-none\"\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n >\n <MenuPrimitive.Popup\n data-slot=\"dropdown-menu-content\"\n className={cn(\"z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n </MenuPrimitive.Positioner>\n </MenuPrimitive.Portal>\n )\n}\n\nfunction DropdownMenuGroup({ ...props }: MenuPrimitive.Group.Props) {\n return <MenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: MenuPrimitive.GroupLabel.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.GroupLabel\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: MenuPrimitive.Item.Props & {\n inset?: boolean\n variant?: \"default\" | \"destructive\"\n}) {\n return (\n <MenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuSub({ ...props }: MenuPrimitive.SubmenuRoot.Props) {\n return <MenuPrimitive.SubmenuRoot data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: MenuPrimitive.SubmenuTrigger.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.SubmenuTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-popup-open:bg-accent data-popup-open:text-accent-foreground data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto\" />\n </MenuPrimitive.SubmenuTrigger>\n )\n}\n\nfunction DropdownMenuSubContent({\n align = \"start\",\n alignOffset = -3,\n side = \"right\",\n sideOffset = 0,\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\"w-auto min-w-[96px] rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-checkbox-item-indicator\"\n >\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction DropdownMenuRadioGroup({ ...props }: MenuPrimitive.RadioGroup.Props) {\n return (\n <MenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span\n className=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n data-slot=\"dropdown-menu-radio-item-indicator\"\n >\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: MenuPrimitive.Separator.Props) {\n return (\n <MenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/dropdown-menu-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n}\n","\"use client\"\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction HoverCard({ ...props }: PreviewCardPrimitive.Root.Props) {\n return <PreviewCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({ ...props }: PreviewCardPrimitive.Trigger.Props) {\n return (\n <PreviewCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n )\n}\n\nfunction HoverCardContent({\n className,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 4,\n ...props\n}: PreviewCardPrimitive.Popup.Props &\n Pick<\n PreviewCardPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PreviewCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <PreviewCardPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PreviewCardPrimitive.Popup\n data-slot=\"hover-card-content\"\n className={cn(\n \"z-50 w-64 origin-(--transform-origin) rounded-lg border-brutal border-foreground bg-popover p-2.5 text-sm text-popover-foreground shadow-brutal outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PreviewCardPrimitive.Positioner>\n </PreviewCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-bold select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Menu as MenuPrimitive } from \"@base-ui/react/menu\"\nimport { Menubar as MenubarPrimitive } from \"@base-ui/react/menubar\"\n\nimport { cn } from \"../../lib/utils\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"./dropdown-menu\"\nimport { CheckIcon } from \"lucide-react\"\n\nfunction Menubar({ className, ...props }: MenubarPrimitive.Props) {\n return (\n <MenubarPrimitive\n data-slot=\"menubar\"\n className={cn(\n \"flex h-9 items-center gap-0.5 rounded-lg border-brutal border-foreground p-[3px] shadow-brutal-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarMenu({ ...props }: React.ComponentProps<typeof DropdownMenu>) {\n return <DropdownMenu data-slot=\"menubar-menu\" {...props} />\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuGroup>) {\n return <DropdownMenuGroup data-slot=\"menubar-group\" {...props} />\n}\n\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPortal>) {\n return <DropdownMenuPortal data-slot=\"menubar-portal\" {...props} />\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuTrigger>) {\n return (\n <DropdownMenuTrigger\n data-slot=\"menubar-trigger\"\n className={cn(\n \"flex items-center rounded-md px-1.5 py-[2px] text-sm font-bold outline-hidden select-none hover:bg-muted aria-expanded:bg-muted\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarContent({\n className,\n align = \"start\",\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof DropdownMenuContent>) {\n return (\n <DropdownMenuContent\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\"min-w-36 rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95\", className )}\n {...props}\n />\n )\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuItem>) {\n return (\n <DropdownMenuItem\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"group/menubar-item gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive!\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n inset,\n ...props\n}: MenuPrimitive.CheckboxItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.CheckboxItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.CheckboxItemIndicator>\n </span>\n {children}\n </MenuPrimitive.CheckboxItem>\n )\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuRadioGroup>) {\n return <DropdownMenuRadioGroup data-slot=\"menubar-radio-group\" {...props} />\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n inset,\n ...props\n}: MenuPrimitive.RadioItem.Props & {\n inset?: boolean\n}) {\n return (\n <MenuPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n data-inset={inset}\n className={cn(\n \"relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-1.5 pl-7 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-1.5 flex size-4 items-center justify-center [&_svg:not([class*='size-'])]:size-4\">\n <MenuPrimitive.RadioItemIndicator>\n <CheckIcon\n />\n </MenuPrimitive.RadioItemIndicator>\n </span>\n {children}\n </MenuPrimitive.RadioItem>\n )\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuLabel> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuLabel\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n \"px-1.5 py-1 text-sm font-medium data-inset:pl-7\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSeparator>) {\n return (\n <DropdownMenuSeparator\n data-slot=\"menubar-separator\"\n className={cn(\"-mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuShortcut>) {\n return (\n <DropdownMenuShortcut\n data-slot=\"menubar-shortcut\"\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground group-focus/menubar-item:text-accent-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuSub>) {\n return <DropdownMenuSub data-slot=\"menubar-sub\" {...props} />\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubTrigger> & {\n inset?: boolean\n}) {\n return (\n <DropdownMenuSubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"gap-1.5 rounded-md px-1.5 py-1 text-sm focus:bg-accent focus:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuSubContent>) {\n return (\n <DropdownMenuSubContent\n data-slot=\"menubar-sub-content\"\n className={cn(\"min-w-32 rounded-lg border-brutal border-foreground bg-popover p-1 text-popover-foreground shadow-brutal duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n />\n )\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n}\n","import { NavigationMenu as NavigationMenuPrimitive } from \"@base-ui/react/navigation-menu\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronDownIcon } from \"lucide-react\"\n\nfunction NavigationMenu({\n align = \"start\",\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props &\n Pick<NavigationMenuPrimitive.Positioner.Props, \"align\">) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center gap-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-lg bg-background px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-muted/50 data-popup-open:hover:bg-muted data-open:bg-muted/50 data-open:hover:bg-muted data-open:focus:bg-muted\"\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\" aria-hidden=\"true\" />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: NavigationMenuPrimitive.Content.Props) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-1 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 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 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuPositioner({\n className,\n side = \"bottom\",\n sideOffset = 8,\n align = \"start\",\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n \"isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0\",\n className\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n )\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-lg p-2 text-sm transition-all outline-none hover:bg-muted focus:bg-muted focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-muted/50 data-active:hover:bg-muted data-active:focus:bg-muted [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentPropsWithRef<typeof NavigationMenuPrimitive.Icon>) {\n return (\n <NavigationMenuPrimitive.Icon\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in 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.Icon>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuIndicator,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n NavigationMenuPositioner,\n}\n","import * as React from \"react\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from \"lucide-react\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <Button\n variant={isActive ? \"default\" : \"ghost\"}\n size={size}\n className={cn(className)}\n nativeButton={false}\n render={\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n {...props}\n />\n }\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n text = \"Previous\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"pl-1.5!\", className)}\n {...props}\n >\n <ChevronLeftIcon data-icon=\"inline-start\" />\n <span className=\"hidden sm:block\">{text}</span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n text = \"Next\",\n ...props\n}: React.ComponentProps<typeof PaginationLink> & { text?: string }) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"pr-1.5!\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">{text}</span>\n <ChevronRightIcon data-icon=\"inline-end\" />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\n \"flex size-8 items-center justify-center [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <MoreHorizontalIcon\n />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Popover({ ...props }: PopoverPrimitive.Root.Props) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({ ...props }: PopoverPrimitive.Trigger.Props) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n alignOffset = 0,\n side = \"bottom\",\n sideOffset = 4,\n ...props\n}: PopoverPrimitive.Popup.Props &\n Pick<\n PopoverPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <PopoverPrimitive.Popup\n data-slot=\"popover-content\"\n className={cn(\n \"z-50 flex w-72 origin-(--transform-origin) flex-col gap-2.5 rounded-lg border-brutal border-foreground bg-popover p-2.5 text-sm text-popover-foreground shadow-brutal outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Positioner>\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-0.5 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: PopoverPrimitive.Title.Props) {\n return (\n <PopoverPrimitive.Title\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: PopoverPrimitive.Description.Props) {\n return (\n <PopoverPrimitive.Description\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n}\n","\"use client\"\n\nimport { Progress as ProgressPrimitive } from \"@base-ui/react/progress\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Progress({\n className,\n children,\n value,\n ...props\n}: ProgressPrimitive.Root.Props) {\n return (\n <ProgressPrimitive.Root\n value={value}\n data-slot=\"progress\"\n className={cn(\"flex flex-wrap gap-3\", className)}\n {...props}\n >\n {children}\n <ProgressTrack>\n <ProgressIndicator />\n </ProgressTrack>\n </ProgressPrimitive.Root>\n )\n}\n\nfunction ProgressTrack({ className, ...props }: ProgressPrimitive.Track.Props) {\n return (\n <ProgressPrimitive.Track\n className={cn(\n \"relative flex h-3 w-full items-center overflow-x-hidden rounded-full border-brutal border-foreground bg-muted\",\n className\n )}\n data-slot=\"progress-track\"\n {...props}\n />\n )\n}\n\nfunction ProgressIndicator({\n className,\n ...props\n}: ProgressPrimitive.Indicator.Props) {\n return (\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(\"h-full bg-brand transition-all\", className)}\n {...props}\n />\n )\n}\n\nfunction ProgressLabel({ className, ...props }: ProgressPrimitive.Label.Props) {\n return (\n <ProgressPrimitive.Label\n className={cn(\"text-sm font-bold\", className)}\n data-slot=\"progress-label\"\n {...props}\n />\n )\n}\n\nfunction ProgressValue({ className, ...props }: ProgressPrimitive.Value.Props) {\n return (\n <ProgressPrimitive.Value\n className={cn(\n \"ml-auto text-sm text-muted-foreground tabular-nums\",\n className\n )}\n data-slot=\"progress-value\"\n {...props}\n />\n )\n}\n\nexport {\n Progress,\n ProgressTrack,\n ProgressIndicator,\n ProgressLabel,\n ProgressValue,\n}\n","\"use client\"\n\nimport { Radio as RadioPrimitive } from \"@base-ui/react/radio\"\nimport { RadioGroup as RadioGroupPrimitive } from \"@base-ui/react/radio-group\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction RadioGroup({ className, ...props }: RadioGroupPrimitive.Props) {\n return (\n <RadioGroupPrimitive\n data-slot=\"radio-group\"\n className={cn(\"grid w-full gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({ className, ...props }: RadioPrimitive.Root.Props) {\n return (\n <RadioPrimitive.Root\n data-slot=\"radio-group-item\"\n className={cn(\n \"group/radio-group-item peer relative flex aspect-square size-5 shrink-0 rounded-full border-brutal border-foreground outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <RadioPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"flex size-5 items-center justify-center\"\n >\n <span className=\"absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-primary-foreground\" />\n </RadioPrimitive.Indicator>\n </RadioPrimitive.Root>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ScrollArea as ScrollAreaPrimitive } from \"@base-ui/react/scroll-area\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: ScrollAreaPrimitive.Root.Props) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: ScrollAreaPrimitive.Scrollbar.Props) {\n return (\n <ScrollAreaPrimitive.Scrollbar\n data-slot=\"scroll-area-scrollbar\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.Thumb\n data-slot=\"scroll-area-thumb\"\n className=\"relative flex-1 rounded-full bg-foreground/20\"\n />\n </ScrollAreaPrimitive.Scrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Select as SelectPrimitive } from \"@base-ui/react/select\"\n\nimport { cn } from \"../../lib/utils\"\nimport { ChevronDownIcon, CheckIcon, ChevronUpIcon } from \"lucide-react\"\n\nconst Select = SelectPrimitive.Root\n\nfunction SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {\n return (\n <SelectPrimitive.Group\n data-slot=\"select-group\"\n className={cn(\"scroll-my-1 p-1\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {\n return (\n <SelectPrimitive.Value\n data-slot=\"select-value\"\n className={cn(\"flex flex-1 text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: SelectPrimitive.Trigger.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"flex w-fit items-center justify-between gap-1.5 rounded-lg border-brutal border-foreground bg-background py-2 pr-2 pl-2.5 text-sm whitespace-nowrap shadow-brutal-sm transition-all outline-none select-none hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon\n render={\n <ChevronDownIcon className=\"pointer-events-none size-4 text-muted-foreground\" />\n }\n />\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n side = \"bottom\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n alignItemWithTrigger = true,\n ...props\n}: SelectPrimitive.Popup.Props &\n Pick<\n SelectPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\" | \"alignItemWithTrigger\"\n >) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n alignItemWithTrigger={alignItemWithTrigger}\n className=\"isolate z-50\"\n >\n <SelectPrimitive.Popup\n data-slot=\"select-content\"\n data-align-trigger={alignItemWithTrigger}\n className={cn(\"relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg border-brutal border-foreground bg-popover text-popover-foreground shadow-brutal duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\", className )}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.List>{children}</SelectPrimitive.List>\n <SelectScrollDownButton />\n </SelectPrimitive.Popup>\n </SelectPrimitive.Positioner>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: SelectPrimitive.GroupLabel.Props) {\n return (\n <SelectPrimitive.GroupLabel\n data-slot=\"select-label\"\n className={cn(\"px-1.5 py-1 text-xs text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: SelectPrimitive.Item.Props) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <SelectPrimitive.ItemText className=\"flex flex-1 shrink-0 gap-2 whitespace-nowrap\">\n {children}\n </SelectPrimitive.ItemText>\n <SelectPrimitive.ItemIndicator\n render={\n <span className=\"pointer-events-none absolute right-2 flex size-4 items-center justify-center\" />\n }\n >\n <CheckIcon className=\"pointer-events-none\" />\n </SelectPrimitive.ItemIndicator>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: SelectPrimitive.Separator.Props) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"pointer-events-none -mx-1 my-1 h-px bg-border\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpArrow>) {\n return (\n <SelectPrimitive.ScrollUpArrow\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon\n />\n </SelectPrimitive.ScrollUpArrow>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownArrow>) {\n return (\n <SelectPrimitive.ScrollDownArrow\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon\n />\n </SelectPrimitive.ScrollDownArrow>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","\"use client\"\n\nimport { Separator as SeparatorPrimitive } from \"@base-ui/react/separator\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n ...props\n}: SeparatorPrimitive.Props) {\n return (\n <SeparatorPrimitive\n data-slot=\"separator\"\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-foreground data-horizontal:h-0.5 data-horizontal:w-full data-vertical:w-0.5 data-vertical:self-stretch\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\"\n\nimport { cn } from \"../../lib/utils\"\nimport { Button } from \"./button\"\nimport { XIcon } from \"lucide-react\"\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({ ...props }: SheetPrimitive.Portal.Props) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({ className, ...props }: SheetPrimitive.Backdrop.Props) {\n return (\n <SheetPrimitive.Backdrop\n data-slot=\"sheet-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/60 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: SheetPrimitive.Popup.Props & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Popup\n data-slot=\"sheet-content\"\n data-side={side}\n className={cn(\n \"fixed z-50 flex flex-col gap-4 border-brutal border-foreground bg-background bg-clip-padding text-sm shadow-brutal-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close\n data-slot=\"sheet-close\"\n render={\n <Button\n variant=\"ghost\"\n className=\"absolute top-3 right-3\"\n size=\"icon-sm\"\n />\n }\n >\n <XIcon\n />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Popup>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-0.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"text-base font-bold text-foreground\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: SheetPrimitive.Description.Props) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n","import { cn } from \"../../lib/utils\"\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn(\"animate-pulse rounded-lg bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Slider as SliderPrimitive } from \"@base-ui/react/slider\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n return (\n <SliderPrimitive.Root\n className={cn(\"data-horizontal:w-full data-vertical:h-full\", className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-full border-brutal border-foreground bg-muted select-none data-horizontal:h-3 data-horizontal:w-full data-vertical:h-full data-vertical:w-3\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"relative block size-5 shrink-0 rounded-full border-brutal border-foreground bg-white shadow-brutal-sm transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:shadow-brutal focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport { Switch as SwitchPrimitive } from \"@base-ui/react/switch\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer group/switch relative inline-flex shrink-0 items-center rounded-full border-brutal border-foreground transition-all outline-none after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[20px] data-[size=default]:w-[36px] data-[size=sm]:h-[16px] data-[size=sm]:w-[28px] data-checked:bg-primary data-unchecked:bg-input data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full border border-foreground bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","\"use client\"\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-horizontal:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"group/tabs-list inline-flex w-fit items-center justify-center rounded-lg border-brutal border-foreground p-[3px] text-muted-foreground group-data-horizontal/tabs:h-9 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none data-[variant=line]:border-0\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-0.5 text-sm font-bold whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 group-data-[variant=default]/tabs-list:data-active:shadow-brutal-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:bg-brand data-active:text-brand-foreground data-active:border-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 text-sm outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","\"use client\"\n\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils\"\n\nconst toggleVariants = cva(\n \"group/toggle inline-flex items-center justify-center gap-1 rounded-lg text-sm font-medium whitespace-nowrap transition-all outline-none hover:bg-muted hover:text-foreground focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 aria-pressed:border-brutal aria-pressed:border-foreground aria-pressed:bg-muted aria-pressed:shadow-brutal-sm data-[state=on]:border-brutal data-[state=on]:border-foreground data-[state=on]:bg-muted data-[state=on]:shadow-brutal-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-brutal border-foreground bg-transparent shadow-brutal-sm hover:bg-muted\",\n },\n size: {\n default: \"h-8 min-w-8 px-2\",\n sm: \"h-7 min-w-7 rounded-[min(var(--radius-md),12px)] px-1.5 text-[0.8rem]\",\n lg: \"h-9 min-w-9 px-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-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<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[var(--gap)] rounded-lg border-brutal border-foreground data-vertical:flex-col data-vertical:items-stretch\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: TogglePrimitive.Props & VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n","\"use client\"\n\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"../../lib/utils\"\n\nfunction TooltipProvider({\n delay = 0,\n ...props\n}: TooltipPrimitive.Provider.Props) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip({ ...props }: TooltipPrimitive.Root.Props) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n children,\n ...props\n}: TooltipPrimitive.Popup.Props &\n Pick<\n TooltipPrimitive.Positioner.Props,\n \"align\" | \"alignOffset\" | \"side\" | \"sideOffset\"\n >) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className=\"isolate z-50\"\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md border-brutal border-foreground bg-foreground px-3 py-1.5 text-xs font-medium text-background shadow-brutal-sm has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=inline-end]:top-1/2! data-[side=inline-end]:-left-1 data-[side=inline-end]:-translate-y-1/2 data-[side=inline-start]:top-1/2! data-[side=inline-start]:-right-1 data-[side=inline-start]:-translate-y-1/2 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5\" />\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","// Shared animation variants for framer-motion (optional peer dep)\n// These are plain objects — they work even if framer-motion isn't installed\n\nexport const fadeInUp = {\n hidden: { opacity: 0, y: 20 },\n visible: { opacity: 1, y: 0 },\n};\n\nexport const fadeIn = {\n hidden: { opacity: 0 },\n visible: { opacity: 1 },\n};\n\nexport const staggerContainer = {\n hidden: {},\n visible: {\n transition: {\n staggerChildren: 0.08,\n delayChildren: 0.1,\n },\n },\n};\n\nexport const scaleIn = {\n hidden: { opacity: 0, scale: 0.95 },\n visible: { opacity: 1, scale: 1 },\n};\n\nexport const slideInLeft = {\n hidden: { opacity: 0, x: -30 },\n visible: { opacity: 1, x: 0 },\n};\n\nexport const slideInRight = {\n hidden: { opacity: 0, x: 30 },\n visible: { opacity: 1, x: 0 },\n};\n\nexport const defaultTransition = {\n duration: 0.5,\n ease: [0.25, 0.1, 0.25, 1],\n};\n\nexport const springTransition = {\n type: \"spring\" as const,\n stiffness: 300,\n damping: 30,\n};\n","import { cn } from \"../../lib/utils\";\n\nexport type SectionColor =\n | \"white\"\n | \"brand\"\n | \"brand-muted\"\n | \"black\"\n | \"cta\";\n\nexport type SectionPattern =\n | \"dots\"\n | \"stripes\"\n | \"noise\"\n | \"grain\"\n | \"crosshatch\"\n | \"grid-dots\"\n | \"gradient-mesh\"\n | \"none\";\n\ninterface BrutalSectionProps {\n children: React.ReactNode;\n color?: SectionColor;\n className?: string;\n containerSize?: \"sm\" | \"default\" | \"lg\";\n padding?: \"sm\" | \"default\" | \"lg\";\n pattern?: SectionPattern;\n /** @deprecated Use pattern=\"dots\" instead */\n dots?: boolean;\n /** @deprecated Use pattern=\"stripes\" instead */\n stripes?: boolean;\n id?: string;\n}\n\nconst colorMap: Record<SectionColor, string> = {\n white: \"bg-background text-foreground\",\n brand: \"bg-brand\",\n \"brand-muted\": \"bg-brand-muted text-foreground\",\n black: \"bg-foreground text-background\",\n cta: \"bg-cta\",\n};\n\nconst containerMap = {\n sm: \"brutal-container-sm\",\n default: \"brutal-container\",\n lg: \"brutal-container-lg\",\n};\n\nconst paddingMap = {\n sm: \"brutal-section-sm\",\n default: \"brutal-section\",\n lg: \"brutal-section py-28 sm:py-36 md:py-44\",\n};\n\nconst patternMap: Record<SectionPattern, string> = {\n dots: \"brutal-dots\",\n stripes: \"brutal-stripes\",\n noise: \"brutal-noise\",\n grain: \"brutal-grain\",\n crosshatch: \"brutal-crosshatch\",\n \"grid-dots\": \"brutal-grid-dots\",\n \"gradient-mesh\": \"brutal-gradient-mesh\",\n none: \"\",\n};\n\nexport function BrutalSection({\n children,\n color = \"white\",\n className,\n containerSize = \"default\",\n padding = \"default\",\n pattern,\n dots = false,\n stripes = false,\n id,\n}: BrutalSectionProps) {\n const resolvedPattern = pattern\n ?? (dots ? \"dots\" : undefined)\n ?? (stripes ? \"stripes\" : undefined)\n ?? \"none\";\n\n return (\n <section\n id={id}\n className={cn(\n paddingMap[padding],\n colorMap[color],\n patternMap[resolvedPattern],\n className\n )}\n >\n <div className={containerMap[containerSize]}>{children}</div>\n </section>\n );\n}\n","import { cn } from \"../../lib/utils\";\n\ntype DividerVariant =\n | \"wave\"\n | \"jagged\"\n | \"curve\"\n | \"castle\"\n | \"torn-paper\"\n | \"brush-stroke\"\n | \"geometric\"\n | \"blob\"\n | \"diagonal\"\n | \"zigzag\"\n | \"hand-drawn\";\n\ninterface SectionDividerProps {\n from?: string;\n to?: string;\n flip?: boolean;\n className?: string;\n variant?: DividerVariant;\n layers?: boolean;\n}\n\nconst paths: Record<DividerVariant, string> = {\n wave: \"M0,64 C160,128 320,0 480,64 C640,128 800,0 960,64 L960,160 L0,160 Z\",\n jagged: \"M0,80 L80,40 L160,80 L240,20 L320,80 L400,40 L480,80 L560,20 L640,80 L720,40 L800,80 L880,20 L960,80 L960,160 L0,160 Z\",\n curve: \"M0,128 Q480,-32 960,128 L960,160 L0,160 Z\",\n castle: \"M0,80 L0,60 L80,60 L80,80 L120,80 L120,40 L200,40 L200,80 L240,80 L240,60 L320,60 L320,80 L360,80 L360,40 L440,40 L440,80 L480,80 L480,60 L560,60 L560,80 L600,80 L600,40 L680,40 L680,80 L720,80 L720,60 L800,60 L800,80 L840,80 L840,40 L920,40 L920,80 L960,80 L960,160 L0,160 Z\",\n \"torn-paper\": \"M0,70 C30,65 45,85 80,72 C115,59 130,90 170,78 C210,66 225,88 270,75 C315,62 340,92 380,79 C420,66 445,86 490,73 C535,60 560,88 600,76 C640,64 665,90 710,77 C755,64 780,84 830,71 C875,58 900,86 960,80 L960,160 L0,160 Z\",\n \"brush-stroke\": \"M0,90 C80,50 120,100 200,60 C280,20 360,110 480,70 C600,30 640,100 720,80 C800,60 880,100 960,70 L960,160 L0,160 Z\",\n geometric: \"M0,100 L120,60 L240,80 L360,40 L480,90 L600,50 L720,70 L840,30 L960,80 L960,160 L0,160 Z\",\n blob: \"M0,80 C80,120 160,40 280,80 C400,120 440,30 560,70 C680,110 760,40 960,80 L960,160 L0,160 Z\",\n diagonal: \"M0,160 L960,60 L960,160 Z\",\n zigzag: \"M0,80 L60,40 L120,80 L180,40 L240,80 L300,40 L360,80 L420,40 L480,80 L540,40 L600,80 L660,40 L720,80 L780,40 L840,80 L900,40 L960,80 L960,160 L0,160 Z\",\n \"hand-drawn\": \"M0,72 C20,68 35,82 60,75 C85,68 95,84 125,76 C155,68 170,85 200,77 C230,69 245,83 275,75 C305,67 320,86 350,78 C380,70 395,82 425,74 C455,66 470,84 500,76 C530,68 545,83 575,75 C605,67 620,85 650,77 C680,69 695,82 725,74 C755,66 770,84 800,76 C830,68 845,83 875,75 C905,67 920,82 960,74 L960,160 L0,160 Z\",\n};\n\nexport function SectionDivider({\n from = \"hsl(var(--background))\",\n to = \"hsl(var(--background))\",\n flip = false,\n className = \"\",\n variant = \"wave\",\n layers = false,\n}: SectionDividerProps) {\n return (\n <div\n className={cn(\"relative -my-px w-full overflow-hidden\", className)}\n style={{ backgroundColor: from }}\n >\n {layers && (\n <svg\n viewBox=\"0 0 960 160\"\n preserveAspectRatio=\"none\"\n className=\"absolute inset-0 block w-full opacity-30\"\n style={{\n height: \"clamp(40px, 6vw, 80px)\",\n transform: flip ? \"scaleY(-1) translateY(4px)\" : \"translateY(-4px)\",\n }}\n >\n <path d={paths[variant]} fill={to} />\n </svg>\n )}\n <svg\n viewBox=\"0 0 960 160\"\n preserveAspectRatio=\"none\"\n className=\"relative block w-full\"\n style={{\n height: \"clamp(40px, 6vw, 80px)\",\n transform: flip ? \"scaleY(-1)\" : undefined,\n }}\n >\n <path d={paths[variant]} fill={to} />\n </svg>\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { BrutalSection } from \"./section\";\nimport type { SectionPattern } from \"./section\";\n\ntype HeroVariant = \"split\" | \"centered\" | \"overlap\" | \"asymmetric\";\n\ninterface BrutalHeroProps {\n variant?: HeroVariant;\n badge?: string;\n badgePosition?: \"above\" | \"inline\" | \"floating\";\n headline: string;\n description: string;\n ctaText: string;\n ctaHref?: string;\n ctaVariant?: \"cta\" | \"brand\" | \"default\";\n secondaryText?: string;\n secondaryHref?: string;\n visual?: React.ReactNode;\n color?: \"white\" | \"brand\" | \"brand-muted\" | \"black\";\n pattern?: SectionPattern;\n proof?: string;\n className?: string;\n}\n\nexport function BrutalHero({\n variant = \"split\",\n badge,\n badgePosition = \"above\",\n headline,\n description,\n ctaText,\n ctaHref = \"#\",\n ctaVariant = \"cta\",\n secondaryText,\n secondaryHref,\n visual,\n color = \"brand\",\n pattern,\n proof,\n className,\n}: BrutalHeroProps) {\n const badgeElement = badge && (\n <div\n className={cn(\n \"inline-flex w-fit border-brutal border-foreground bg-background px-3 py-1 font-mono text-xs font-bold uppercase tracking-widest text-foreground shadow-brutal-sm\",\n badgePosition === \"floating\" && \"absolute -top-3 left-6 z-10\",\n )}\n >\n {badge}\n </div>\n );\n\n const textContent = (\n <div className={cn(\n \"flex flex-col gap-6\",\n variant === \"centered\" && \"items-center text-center\",\n )}>\n {badgePosition === \"above\" && badgeElement}\n\n <h1 className={cn(\n \"brutal-display text-balance\",\n variant === \"centered\" && \"mx-auto max-w-4xl\",\n )}>\n {badgePosition === \"inline\" && badgeElement}\n {headline}\n </h1>\n\n <p className={cn(\n \"brutal-body-lg max-w-lg opacity-80\",\n variant === \"centered\" && \"mx-auto\",\n )}>\n {description}\n </p>\n\n <div className={cn(\n \"flex flex-col gap-4 sm:flex-row sm:flex-wrap\",\n variant === \"centered\" && \"sm:justify-center\",\n )}>\n <Button variant={ctaVariant} size=\"xl\" className=\"w-full sm:w-auto\" render={<a href={ctaHref} />}>\n {ctaText}\n </Button>\n {secondaryText && (\n <Button variant=\"outline\" size=\"xl\" className=\"w-full sm:w-auto\" render={<a href={secondaryHref || \"#\"} />}>\n {secondaryText}\n </Button>\n )}\n </div>\n\n {proof && (\n <p className=\"flex items-center gap-2 text-sm font-medium opacity-70\">\n <span className=\"inline-flex size-5 items-center justify-center border border-current text-xs\">\n ✓\n </span>\n {proof}\n </p>\n )}\n </div>\n );\n\n const layoutClass = {\n split: \"grid items-center gap-12 lg:grid-cols-2 lg:gap-16\",\n centered: \"flex flex-col items-center gap-12\",\n overlap: \"relative\",\n asymmetric: \"grid items-center gap-12 lg:grid-cols-[3fr_2fr] lg:gap-16\",\n }[variant];\n\n return (\n <BrutalSection color={color} padding=\"lg\" pattern={pattern} className={cn(\"relative\", className)}>\n {badgePosition === \"floating\" && badgeElement}\n\n <div className={layoutClass}>\n {textContent}\n\n {visual && variant === \"overlap\" ? (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center opacity-20\">\n {visual}\n </div>\n ) : visual ? (\n <div className={cn(\n \"flex items-center justify-center\",\n variant === \"asymmetric\" && \"-rotate-2 transform\",\n )}>\n {visual}\n </div>\n ) : null}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport {\n Card,\n CardHeader,\n CardTitle,\n CardDescription,\n CardContent,\n} from \"../ui/card\";\nimport { BrutalSection } from \"./section\";\n\ntype FeatureGridVariant = \"icon-top\" | \"icon-left\" | \"numbered\" | \"bento\";\n\ninterface Feature {\n icon?: React.ReactNode;\n title: string;\n description: string;\n featured?: boolean;\n stat?: string;\n}\n\ninterface BrutalFeatureGridProps {\n variant?: FeatureGridVariant;\n badge?: string;\n headline: string;\n description?: string;\n features: Feature[];\n columns?: 2 | 3 | 4;\n color?: \"white\" | \"brand\" | \"brand-muted\" | \"black\";\n className?: string;\n}\n\nconst colMap = {\n 2: \"sm:grid-cols-2\",\n 3: \"sm:grid-cols-2 lg:grid-cols-3\",\n 4: \"sm:grid-cols-2 lg:grid-cols-4\",\n};\n\nexport function BrutalFeatureGrid({\n variant = \"icon-top\",\n badge,\n headline,\n description,\n features,\n columns = 3,\n color = \"white\",\n className,\n}: BrutalFeatureGridProps) {\n return (\n <BrutalSection color={color} className={className}>\n <div className=\"mb-12 max-w-2xl\">\n {badge && (\n <p className=\"brutal-label mb-4 text-brand\">{badge}</p>\n )}\n <h2 className=\"brutal-h2 mb-4\">{headline}</h2>\n {description && (\n <p className=\"brutal-body text-muted-foreground\">{description}</p>\n )}\n </div>\n\n <div\n className={cn(\n \"grid gap-6\",\n variant === \"bento\" ? \"sm:grid-cols-2 lg:grid-cols-3\" : colMap[columns],\n )}\n >\n {features.map((feature, i) => (\n <FeatureCard\n key={feature.title}\n feature={feature}\n variant={variant}\n index={i}\n />\n ))}\n </div>\n </BrutalSection>\n );\n}\n\nfunction FeatureCard({\n feature,\n variant,\n index,\n}: {\n feature: Feature;\n variant: FeatureGridVariant;\n index: number;\n}) {\n const isBentoFeatured = variant === \"bento\" && feature.featured;\n\n if (variant === \"icon-left\") {\n return (\n <div className=\"flex gap-4 border-brutal border-foreground border-l-4 border-l-brand bg-background p-5 shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\">\n {feature.icon && (\n <div className=\"flex size-12 shrink-0 items-center justify-center border-brutal border-foreground bg-brand-muted text-2xl shadow-brutal-sm\">\n {feature.icon}\n </div>\n )}\n <div>\n {feature.stat && (\n <p className=\"brutal-label mb-1 text-brand\">{feature.stat}</p>\n )}\n <h3 className=\"brutal-h4 mb-1\">{feature.title}</h3>\n <p className=\"text-sm text-muted-foreground\">{feature.description}</p>\n </div>\n </div>\n );\n }\n\n if (variant === \"numbered\") {\n return (\n <Card>\n <CardHeader>\n <span className=\"brutal-display mb-2 block text-brand opacity-20\">\n {String(index + 1).padStart(2, \"0\")}\n </span>\n {feature.stat && (\n <p className=\"brutal-label mb-1 text-brand\">{feature.stat}</p>\n )}\n <CardTitle>{feature.title}</CardTitle>\n </CardHeader>\n <CardContent>\n <CardDescription>{feature.description}</CardDescription>\n </CardContent>\n </Card>\n );\n }\n\n return (\n <Card\n className={cn(\n isBentoFeatured && \"sm:col-span-2 bg-brand-muted\",\n )}\n >\n <CardHeader>\n {feature.icon && (\n <div className=\"mb-2 inline-flex size-12 items-center justify-center border-brutal border-foreground border-b-brand bg-brand-muted text-2xl shadow-brutal-sm\">\n {feature.icon}\n </div>\n )}\n {feature.stat && (\n <p className=\"brutal-label mb-1 text-brand\">{feature.stat}</p>\n )}\n <CardTitle>{feature.title}</CardTitle>\n </CardHeader>\n <CardContent>\n <CardDescription>{feature.description}</CardDescription>\n </CardContent>\n </Card>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\nimport type { SectionColor, SectionPattern } from \"./section\";\n\nexport interface Testimonial {\n name: string;\n handle?: string;\n avatar?: string;\n text: string;\n role?: string;\n company?: string;\n companyLogo?: string;\n rating?: 1 | 2 | 3 | 4 | 5;\n featured?: boolean;\n}\n\ninterface BrutalTestimonialsProps {\n badge?: string;\n headline?: string;\n testimonials: Testimonial[];\n variant?: \"masonry\" | \"featured-grid\" | \"carousel\" | \"wall-of-love\";\n color?: SectionColor;\n pattern?: SectionPattern;\n className?: string;\n}\n\nfunction StarRating({ rating }: { rating: number }) {\n return (\n <div className=\"flex gap-0.5\">\n {Array.from({ length: 5 }, (_, i) => (\n <span\n key={i}\n className={cn(\n \"text-sm\",\n i < rating ? \"text-amber-500\" : \"text-foreground/20\"\n )}\n >\n ★\n </span>\n ))}\n </div>\n );\n}\n\nfunction TestimonialCard({\n t,\n className,\n}: {\n t: Testimonial;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n \"relative break-inside-avoid border-brutal border-foreground bg-background p-5 text-foreground shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\",\n className\n )}\n >\n {/* Decorative quote mark */}\n <span className=\"pointer-events-none absolute top-3 right-4 select-none font-serif text-5xl leading-none text-foreground/[0.06]\">\n “\n </span>\n\n {t.rating && (\n <div className=\"mb-3\">\n <StarRating rating={t.rating} />\n </div>\n )}\n\n <p className=\"relative mb-4 text-sm leading-relaxed\">{t.text}</p>\n\n <div className=\"flex items-center gap-3\">\n {t.avatar ? (\n <img\n src={t.avatar}\n alt={t.name}\n className=\"size-9 border-2 object-cover\"\n style={{ borderColor: \"hsl(var(--brand))\" }}\n />\n ) : (\n <div\n className=\"flex size-9 items-center justify-center border-2 font-bold text-brand-foreground\"\n style={{\n borderColor: \"hsl(var(--brand))\",\n backgroundColor: \"hsl(var(--brand))\",\n }}\n >\n {t.name[0]}\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"text-sm font-bold\">{t.name}</p>\n {(t.role || t.company) && (\n <p className=\"truncate text-xs text-muted-foreground\">\n {t.role}\n {t.role && t.company && \" · \"}\n {t.company}\n </p>\n )}\n {!t.role && !t.company && t.handle && (\n <p className=\"font-mono text-xs text-muted-foreground\">\n {t.handle}\n </p>\n )}\n </div>\n {t.companyLogo && (\n <img\n src={t.companyLogo}\n alt={t.company || \"\"}\n className=\"h-5 object-contain opacity-60\"\n />\n )}\n </div>\n </div>\n );\n}\n\nfunction MasonryLayout({ testimonials }: { testimonials: Testimonial[] }) {\n return (\n <div className=\"columns-1 gap-6 sm:columns-2 lg:columns-3\">\n {testimonials.map((t, i) => (\n <TestimonialCard key={i} t={t} className=\"mb-6\" />\n ))}\n </div>\n );\n}\n\nfunction FeaturedGridLayout({\n testimonials,\n}: {\n testimonials: Testimonial[];\n}) {\n const featured = testimonials.find((t) => t.featured) || testimonials[0];\n const rest = testimonials.filter((t) => t !== featured);\n\n return (\n <div className=\"grid gap-6 lg:grid-cols-2\">\n {/* Large featured card */}\n {featured && (\n <TestimonialCard\n t={featured}\n className=\"flex flex-col justify-between p-8 lg:row-span-2\"\n />\n )}\n {/* Smaller grid */}\n {rest.map((t, i) => (\n <TestimonialCard key={i} t={t} />\n ))}\n </div>\n );\n}\n\nfunction CarouselLayout({ testimonials }: { testimonials: Testimonial[] }) {\n return (\n <div className=\"-mx-6 flex snap-x snap-mandatory gap-6 overflow-x-auto px-6 pb-4\">\n {testimonials.map((t, i) => (\n <TestimonialCard\n key={i}\n t={t}\n className=\"w-80 flex-none snap-center\"\n />\n ))}\n </div>\n );\n}\n\nfunction WallOfLoveLayout({ testimonials }: { testimonials: Testimonial[] }) {\n return (\n <div className=\"relative max-h-[600px] overflow-hidden\">\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {testimonials.map((t, i) => (\n <TestimonialCard key={i} t={t} />\n ))}\n </div>\n {/* Fade overlay at bottom */}\n <div className=\"pointer-events-none absolute inset-x-0 bottom-0 h-32 bg-gradient-to-t from-background to-transparent\" />\n </div>\n );\n}\n\nexport function BrutalTestimonials({\n badge,\n headline,\n testimonials,\n variant = \"masonry\",\n color = \"brand-muted\",\n pattern,\n className,\n}: BrutalTestimonialsProps) {\n return (\n <BrutalSection color={color} pattern={pattern} className={className}>\n {(headline || badge) && (\n <div className=\"mb-12 text-center\">\n {badge && <p className=\"brutal-label mb-4 opacity-70\">{badge}</p>}\n {headline && <h2 className=\"brutal-h2\">{headline}</h2>}\n </div>\n )}\n\n {variant === \"masonry\" && <MasonryLayout testimonials={testimonials} />}\n {variant === \"featured-grid\" && (\n <FeaturedGridLayout testimonials={testimonials} />\n )}\n {variant === \"carousel\" && (\n <CarouselLayout testimonials={testimonials} />\n )}\n {variant === \"wall-of-love\" && (\n <WallOfLoveLayout testimonials={testimonials} />\n )}\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\n\ninterface Integration {\n icon: React.ReactNode;\n name: string;\n href?: string;\n}\n\ninterface BrutalIntegrationGridProps {\n badge?: string;\n headline: string;\n description?: string;\n integrations: Integration[];\n color?: \"white\" | \"brand\" | \"black\";\n className?: string;\n}\n\nexport function BrutalIntegrationGrid({\n badge,\n headline,\n description,\n integrations,\n color = \"brand\",\n className,\n}: BrutalIntegrationGridProps) {\n return (\n <BrutalSection color={color} className={className}>\n <div className=\"mb-12 text-center\">\n {badge && <p className=\"brutal-label mb-4 opacity-70\">{badge}</p>}\n <h2 className=\"brutal-h2 mb-4\">{headline}</h2>\n {description && (\n <p className=\"brutal-body mx-auto max-w-lg text-muted-foreground\">\n {description}\n </p>\n )}\n </div>\n\n <div className=\"flex flex-wrap items-center justify-center gap-6\">\n {integrations.map((item) => {\n const inner = (\n <>\n <div className=\"mb-2 flex size-14 items-center justify-center text-3xl\">\n {item.icon}\n </div>\n <p className=\"text-sm font-bold\">{item.name}</p>\n </>\n );\n\n return item.href ? (\n <a\n key={item.name}\n href={item.href}\n className=\"flex w-28 flex-col items-center border-brutal border-foreground bg-background p-4 text-foreground shadow-brutal transition-all duration-150 hover:-translate-x-0.5 hover:-translate-y-0.5 hover:shadow-brutal-lg\"\n >\n {inner}\n </a>\n ) : (\n <div\n key={item.name}\n className=\"flex w-28 flex-col items-center border-brutal border-foreground bg-background p-4 text-foreground shadow-brutal\"\n >\n {inner}\n </div>\n );\n })}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { BrutalSection } from \"./section\";\nimport type { SectionColor, SectionPattern } from \"./section\";\n\ninterface BrutalCTAProps {\n headline: string;\n description?: string;\n ctaText: string;\n ctaHref?: string;\n ctaVariant?: \"cta\" | \"brand\" | \"default\" | \"outline\";\n secondaryText?: string;\n secondaryHref?: string;\n color?: SectionColor;\n pattern?: SectionPattern;\n className?: string;\n variant?: \"centered\" | \"split\" | \"with-visual\" | \"floating-card\";\n visual?: React.ReactNode;\n stats?: string;\n}\n\nfunction CTAButtons({\n ctaText,\n ctaHref = \"#\",\n ctaVariant = \"cta\",\n secondaryText,\n secondaryHref,\n}: Pick<\n BrutalCTAProps,\n \"ctaText\" | \"ctaHref\" | \"ctaVariant\" | \"secondaryText\" | \"secondaryHref\"\n>) {\n return (\n <div className=\"flex flex-col gap-4 sm:flex-row sm:flex-wrap sm:items-center sm:justify-center\">\n <Button\n variant={ctaVariant}\n size=\"xl\"\n className=\"w-full sm:w-auto\"\n render={<a href={ctaHref} />}\n >\n {ctaText}\n </Button>\n {secondaryText && (\n <Button\n variant=\"outline\"\n size=\"xl\"\n className=\"w-full sm:w-auto\"\n render={<a href={secondaryHref || \"#\"} />}\n >\n {secondaryText}\n </Button>\n )}\n </div>\n );\n}\n\nfunction CenteredCTA(props: BrutalCTAProps) {\n return (\n <div className=\"mx-auto max-w-2xl text-center\">\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <CTAButtons\n ctaText={props.ctaText}\n ctaHref={props.ctaHref}\n ctaVariant={props.ctaVariant}\n secondaryText={props.secondaryText}\n secondaryHref={props.secondaryHref}\n />\n </div>\n );\n}\n\nfunction SplitCTA(props: BrutalCTAProps) {\n return (\n <div className=\"grid items-center gap-12 lg:grid-cols-2\">\n <div>\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <div className=\"flex flex-col gap-4 sm:flex-row sm:flex-wrap\">\n <Button\n variant={props.ctaVariant || \"cta\"}\n size=\"xl\"\n className=\"w-full sm:w-auto\"\n render={<a href={props.ctaHref || \"#\"} />}\n >\n {props.ctaText}\n </Button>\n {props.secondaryText && (\n <Button\n variant=\"outline\"\n size=\"xl\"\n className=\"w-full sm:w-auto\"\n render={<a href={props.secondaryHref || \"#\"} />}\n >\n {props.secondaryText}\n </Button>\n )}\n </div>\n </div>\n {props.visual && <div>{props.visual}</div>}\n </div>\n );\n}\n\nfunction WithVisualCTA(props: BrutalCTAProps) {\n return (\n <div className=\"relative\">\n {props.visual && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center opacity-10\">\n {props.visual}\n </div>\n )}\n <div className=\"relative mx-auto max-w-2xl text-center\">\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <CTAButtons\n ctaText={props.ctaText}\n ctaHref={props.ctaHref}\n ctaVariant={props.ctaVariant}\n secondaryText={props.secondaryText}\n secondaryHref={props.secondaryHref}\n />\n </div>\n </div>\n );\n}\n\nfunction FloatingCardCTA(props: BrutalCTAProps) {\n return (\n <div className=\"relative z-10 -mt-16\">\n <div className=\"mx-auto max-w-2xl border-brutal border-foreground bg-background p-8 text-center text-foreground shadow-brutal-lg\">\n <h2 className=\"brutal-h1 mb-6\">{props.headline}</h2>\n {props.description && (\n <p className=\"brutal-body mb-4 opacity-80\">{props.description}</p>\n )}\n {props.stats && (\n <p className=\"brutal-label mb-8 opacity-60\">{props.stats}</p>\n )}\n <CTAButtons\n ctaText={props.ctaText}\n ctaHref={props.ctaHref}\n ctaVariant={props.ctaVariant}\n secondaryText={props.secondaryText}\n secondaryHref={props.secondaryHref}\n />\n </div>\n </div>\n );\n}\n\nexport function BrutalCTA({\n variant = \"centered\",\n color = \"black\",\n className,\n pattern,\n ...props\n}: BrutalCTAProps) {\n // floating-card variant doesn't wrap in a section — it floats above the previous section\n if (variant === \"floating-card\") {\n return (\n <div className={cn(\"brutal-container px-6\", className)}>\n <FloatingCardCTA {...props} variant={variant} color={color} />\n </div>\n );\n }\n\n return (\n <BrutalSection color={color} pattern={pattern} className={className}>\n {variant === \"centered\" && <CenteredCTA {...props} variant={variant} color={color} />}\n {variant === \"split\" && <SplitCTA {...props} variant={variant} color={color} />}\n {variant === \"with-visual\" && <WithVisualCTA {...props} variant={variant} color={color} />}\n </BrutalSection>\n );\n}\n","\"use client\";\n\nimport { useState, useEffect } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport {\n Sheet,\n SheetContent,\n SheetTrigger,\n SheetTitle,\n} from \"../ui/sheet\";\nimport { Menu } from \"lucide-react\";\n\ninterface NavLink {\n label: string;\n href: string;\n badge?: string;\n active?: boolean;\n}\n\ninterface BrutalNavProps {\n logo: React.ReactNode;\n links: NavLink[];\n ctaText?: string;\n ctaHref?: string;\n variant?: \"solid\" | \"transparent\" | \"floating-pill\";\n className?: string;\n}\n\nexport function BrutalNav({\n logo,\n links,\n ctaText = \"Sign In\",\n ctaHref = \"/admin\",\n variant = \"solid\",\n className,\n}: BrutalNavProps) {\n const [mobileOpen, setMobileOpen] = useState(false);\n const [isScrolled, setIsScrolled] = useState(false);\n\n useEffect(() => {\n if (variant !== \"transparent\") return;\n const onScroll = () => setIsScrolled(window.scrollY > 20);\n onScroll(); // check on mount\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => window.removeEventListener(\"scroll\", onScroll);\n }, [variant]);\n\n const variantStyles = {\n solid: \"sticky top-0 z-50 w-full border-b-brutal border-foreground bg-brand\",\n transparent: cn(\n \"fixed top-0 left-0 right-0 z-50 w-full transition-all duration-200\",\n isScrolled\n ? \"bg-background/80 text-foreground backdrop-blur-md border-b border-foreground/10\"\n : \"bg-transparent text-white\"\n ),\n \"floating-pill\":\n \"fixed top-0 left-0 right-0 z-50 mx-4 mt-4 rounded-full border-brutal border-foreground bg-background shadow-brutal\",\n };\n\n return (\n <header className={cn(variantStyles[variant], className)}>\n <div\n className={cn(\n \"flex h-14 items-center justify-between px-6\",\n variant === \"floating-pill\" ? \"mx-auto max-w-7xl\" : \"brutal-container\"\n )}\n >\n {/* Logo */}\n <a href=\"/\" className=\"flex items-center gap-2 text-lg font-black\">\n {logo}\n </a>\n\n {/* Center links (desktop) */}\n <nav className=\"hidden items-center gap-1 md:flex\">\n {links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className={cn(\n \"relative rounded-md px-3 py-1.5 text-sm font-bold transition-colors hover:opacity-70\",\n link.active && \"bg-foreground/10\"\n )}\n >\n {link.label}\n {link.badge && (\n <span className=\"absolute -top-1 -right-1 border border-foreground bg-background px-1 font-mono text-[9px] font-bold uppercase text-foreground\">\n {link.badge}\n </span>\n )}\n </a>\n ))}\n </nav>\n\n {/* Right side: CTA + Hamburger */}\n <div className=\"flex items-center gap-2\">\n <Button\n variant=\"nav\"\n size=\"sm\"\n render={<a href={ctaHref} />}\n className=\"hidden md:inline-flex\"\n >\n {ctaText}\n </Button>\n\n {/* Mobile hamburger */}\n <Sheet open={mobileOpen} onOpenChange={setMobileOpen}>\n <SheetTrigger\n render={\n <Button variant=\"ghost\" size=\"icon-sm\" className=\"md:hidden\" />\n }\n >\n <Menu className=\"size-5\" />\n <span className=\"sr-only\">Menu</span>\n </SheetTrigger>\n <SheetContent side=\"right\" showCloseButton>\n <SheetTitle>Navigation</SheetTitle>\n <nav className=\"flex flex-col gap-1 px-2 pt-4\">\n {links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n onClick={() => setMobileOpen(false)}\n className={cn(\n \"flex items-center gap-2 rounded-md px-3 py-2.5 text-sm font-bold transition-colors hover:bg-foreground/5\",\n link.active && \"bg-foreground/10\"\n )}\n >\n {link.label}\n {link.badge && (\n <span className=\"border border-foreground bg-background px-1 font-mono text-[9px] font-bold uppercase text-foreground\">\n {link.badge}\n </span>\n )}\n </a>\n ))}\n <div className=\"mt-4 border-t border-foreground/10 pt-4\">\n <Button\n variant=\"default\"\n size=\"default\"\n render={<a href={ctaHref} />}\n className=\"w-full\"\n >\n {ctaText}\n </Button>\n </div>\n </nav>\n </SheetContent>\n </Sheet>\n </div>\n </div>\n </header>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\n\ninterface FooterColumn {\n title: string;\n links: { label: string; href: string }[];\n}\n\ninterface BrutalFooterProps {\n logo: React.ReactNode;\n tagline?: string;\n columns: FooterColumn[];\n bottomLeft?: string;\n bottomRight?: string;\n variant?: \"mega\" | \"minimal\" | \"newsletter\";\n socials?: {\n twitter?: string;\n github?: string;\n linkedin?: string;\n discord?: string;\n };\n newsletter?: {\n headline?: string;\n description?: string;\n placeholder?: string;\n buttonText?: string;\n };\n className?: string;\n}\n\nfunction SocialsRow({\n socials,\n}: {\n socials: NonNullable<BrutalFooterProps[\"socials\"]>;\n}) {\n const items = [\n { key: \"twitter\", label: \"Twitter\", url: socials.twitter },\n { key: \"github\", label: \"GitHub\", url: socials.github },\n { key: \"linkedin\", label: \"LinkedIn\", url: socials.linkedin },\n { key: \"discord\", label: \"Discord\", url: socials.discord },\n ].filter((s) => s.url);\n\n if (items.length === 0) return null;\n\n return (\n <div className=\"flex items-center gap-4\">\n {items.map((s) => (\n <a\n key={s.key}\n href={s.url!}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-sm font-bold transition-colors hover:text-muted-foreground\"\n >\n {s.label}\n </a>\n ))}\n </div>\n );\n}\n\nfunction NewsletterSection({\n newsletter,\n}: {\n newsletter: NonNullable<BrutalFooterProps[\"newsletter\"]>;\n}) {\n return (\n <div className=\"mb-10 border-b-brutal border-foreground pb-10\">\n <div className=\"mx-auto max-w-lg text-center\">\n <h3 className=\"brutal-h4 mb-2\">\n {newsletter.headline || \"Stay in the loop\"}\n </h3>\n {newsletter.description && (\n <p className=\"brutal-caption mb-4\">{newsletter.description}</p>\n )}\n <form\n onSubmit={(e) => e.preventDefault()}\n className=\"flex gap-2\"\n >\n <Input\n type=\"email\"\n placeholder={newsletter.placeholder || \"you@email.com\"}\n className=\"flex-1\"\n />\n <Button variant=\"default\" size=\"default\" type=\"submit\">\n {newsletter.buttonText || \"Subscribe\"}\n </Button>\n </form>\n </div>\n </div>\n );\n}\n\nfunction MegaContent({\n logo,\n tagline,\n columns,\n socials,\n}: Pick<BrutalFooterProps, \"logo\" | \"tagline\" | \"columns\" | \"socials\">) {\n return (\n <div className=\"mb-10 flex flex-col gap-8 sm:flex-row sm:items-start sm:justify-between\">\n {/* Logo + tagline */}\n <div className=\"max-w-xs\">\n <div className=\"mb-2 text-xl font-black\">{logo}</div>\n {tagline && (\n <p className=\"mb-4 text-sm text-muted-foreground\">{tagline}</p>\n )}\n {socials && <SocialsRow socials={socials} />}\n </div>\n\n {/* Link columns */}\n <div className=\"grid grid-cols-2 gap-8 sm:grid-cols-3 md:gap-12\">\n {columns.map((col) => (\n <div key={col.title}>\n <h3 className=\"brutal-label mb-3 text-muted-foreground\">\n {col.title}\n </h3>\n <ul className=\"flex flex-col gap-2\">\n {col.links.map((link) => (\n <li key={link.href}>\n <a\n href={link.href}\n className=\"text-sm font-medium transition-colors hover:text-muted-foreground\"\n >\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n );\n}\n\nfunction MinimalContent({\n logo,\n columns,\n socials,\n}: Pick<BrutalFooterProps, \"logo\" | \"columns\" | \"socials\">) {\n const allLinks = columns.flatMap((col) => col.links);\n\n return (\n <div className=\"mb-6 flex flex-col items-center gap-4 sm:flex-row sm:justify-between\">\n <div className=\"text-xl font-black\">{logo}</div>\n <nav className=\"flex flex-wrap items-center justify-center gap-x-6 gap-y-2\">\n {allLinks.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className=\"text-sm font-medium transition-colors hover:text-muted-foreground\"\n >\n {link.label}\n </a>\n ))}\n </nav>\n {socials && <SocialsRow socials={socials} />}\n </div>\n );\n}\n\nexport function BrutalFooter({\n logo,\n tagline,\n columns,\n bottomLeft,\n bottomRight,\n variant = \"mega\",\n socials,\n newsletter,\n className,\n}: BrutalFooterProps) {\n return (\n <footer\n className={cn(\n \"w-full border-t-4 bg-background px-6 py-12 text-foreground\",\n className\n )}\n style={{ borderTopColor: \"hsl(var(--brand))\" }}\n >\n <div className=\"brutal-container\">\n {/* Newsletter section (only for newsletter variant) */}\n {variant === \"newsletter\" && newsletter && (\n <NewsletterSection newsletter={newsletter} />\n )}\n\n {/* Main content */}\n {variant === \"minimal\" ? (\n <MinimalContent logo={logo} columns={columns} socials={socials} />\n ) : (\n <MegaContent\n logo={logo}\n tagline={tagline}\n columns={columns}\n socials={socials}\n />\n )}\n\n {/* Bottom bar */}\n <div className=\"flex items-center justify-between border-t-brutal border-foreground pt-6 font-mono text-xs uppercase tracking-widest text-muted-foreground\">\n <span>{bottomLeft || \"Built with care\"}</span>\n <span>{bottomRight || new Date().getFullYear()}</span>\n </div>\n </div>\n </footer>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\nimport { Badge } from \"../ui/badge\";\nimport { BrutalSection } from \"./section\";\nimport { useState } from \"react\";\n\ninterface PricingTier {\n name: string;\n description?: string;\n price: { monthly: number | string; annual: number | string };\n features: string[];\n ctaText: string;\n ctaHref?: string;\n ctaVariant?: \"cta\" | \"brand\" | \"default\" | \"outline\";\n}\n\ninterface PricingTableProps {\n badge?: string;\n headline?: string;\n description?: string;\n tiers: PricingTier[];\n popularIndex?: number;\n billingToggle?: boolean;\n color?: \"white\" | \"black\";\n className?: string;\n}\n\nexport function PricingTable({\n badge,\n headline,\n description,\n tiers,\n popularIndex,\n billingToggle = true,\n color = \"white\",\n className,\n}: PricingTableProps) {\n const [annual, setAnnual] = useState(false);\n\n return (\n <BrutalSection color={color} className={className}>\n {(headline || badge) && (\n <div className=\"mb-8 text-center\">\n {badge && <p className=\"brutal-label mb-4 text-muted-foreground\">{badge}</p>}\n {headline && <h2 className=\"brutal-h2 mb-4\">{headline}</h2>}\n {description && <p className=\"brutal-body mx-auto max-w-lg text-muted-foreground\">{description}</p>}\n </div>\n )}\n\n {billingToggle && (\n <div className=\"mb-10 flex items-center justify-center gap-3\">\n <span className={cn(\"text-sm font-bold\", !annual && \"text-brand\")}>Monthly</span>\n <button\n onClick={() => setAnnual(!annual)}\n className={cn(\n \"relative h-8 w-14 border-brutal border-foreground transition-colors\",\n annual ? \"bg-brand\" : \"bg-secondary\",\n )}\n >\n <span\n className={cn(\n \"absolute top-1 size-6 border border-foreground bg-background transition-transform\",\n annual ? \"left-7\" : \"left-1\",\n )}\n />\n </button>\n <span className={cn(\"text-sm font-bold\", annual && \"text-brand\")}>Annual</span>\n {annual && <Badge variant=\"cta\">Save 20%</Badge>}\n </div>\n )}\n\n <div className={cn(\n \"grid gap-6\",\n tiers.length === 2 && \"mx-auto max-w-2xl sm:grid-cols-2\",\n tiers.length === 3 && \"lg:grid-cols-3\",\n tiers.length >= 4 && \"sm:grid-cols-2 lg:grid-cols-4\",\n )}>\n {tiers.map((tier, i) => {\n const isPopular = i === popularIndex;\n const price = annual ? tier.price.annual : tier.price.monthly;\n\n return (\n <div\n key={tier.name}\n className={cn(\n \"relative flex flex-col border-brutal border-foreground bg-background p-6 shadow-brutal\",\n isPopular && \"border-brand shadow-brutal-lg ring-2 ring-brand z-10 scale-105\",\n )}\n >\n {isPopular && (\n <Badge variant=\"brand\" className=\"absolute -top-3 left-1/2 -translate-x-1/2\">\n Popular\n </Badge>\n )}\n <h3 className=\"brutal-h4 mb-1\">{tier.name}</h3>\n {tier.description && <p className=\"mb-4 text-sm text-muted-foreground\">{tier.description}</p>}\n <div className=\"mb-6\">\n <span className=\"brutal-h1\">{typeof price === \"number\" ? `$${price}` : price}</span>\n {typeof price === \"number\" && <span className=\"text-sm text-muted-foreground\">/mo</span>}\n </div>\n <ul className=\"mb-8 flex flex-1 flex-col gap-2\">\n {tier.features.map((feature) => (\n <li key={feature} className=\"flex items-start gap-2 text-sm\">\n <span className=\"mt-0.5 text-brand\">✓</span>\n {feature}\n </li>\n ))}\n </ul>\n <Button\n variant={tier.ctaVariant || (isPopular ? \"cta\" : \"outline\")}\n size=\"lg\"\n className=\"w-full\"\n render={tier.ctaHref ? <a href={tier.ctaHref} /> : undefined}\n >\n {tier.ctaText}\n </Button>\n </div>\n );\n })}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\n\ninterface Logo {\n src: string;\n alt: string;\n href?: string;\n}\n\ninterface LogoCloudProps {\n title?: string;\n logos: Logo[];\n marquee?: boolean;\n color?: \"white\" | \"brand\" | \"black\";\n className?: string;\n}\n\nexport function LogoCloud({\n title,\n logos,\n marquee = false,\n color = \"white\",\n className,\n}: LogoCloudProps) {\n const logoElements = logos.map((logo) => {\n const img = (\n <img\n key={logo.alt}\n src={logo.src}\n alt={logo.alt}\n className=\"h-8 max-w-[120px] object-contain opacity-50 grayscale transition-all duration-200 hover:opacity-100 hover:grayscale-0\"\n />\n );\n\n return logo.href ? (\n <a key={logo.alt} href={logo.href} className=\"flex items-center px-6\">\n {img}\n </a>\n ) : (\n <div key={logo.alt} className=\"flex items-center px-6\">\n {img}\n </div>\n );\n });\n\n return (\n <BrutalSection color={color} padding=\"sm\" className={className}>\n {title && (\n <p className=\"brutal-label mb-6 text-center text-muted-foreground\">{title}</p>\n )}\n {marquee ? (\n <div className=\"relative overflow-hidden\">\n <div className=\"flex animate-marquee\">\n {logoElements}\n {logoElements}\n </div>\n </div>\n ) : (\n <div className=\"flex flex-wrap items-center justify-center gap-8\">\n {logoElements}\n </div>\n )}\n </BrutalSection>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { BrutalSection } from \"./section\";\nimport { useEffect, useRef, useState } from \"react\";\n\ninterface Stat {\n value: number;\n label: string;\n prefix?: string;\n suffix?: string;\n}\n\ninterface StatsBarProps {\n stats: Stat[];\n color?: \"white\" | \"brand\" | \"black\";\n className?: string;\n}\n\nfunction useCountUp(target: number, inView: boolean) {\n const [count, setCount] = useState(0);\n\n useEffect(() => {\n if (!inView) return;\n let frame: number;\n const duration = 1500;\n const start = performance.now();\n\n function animate(now: number) {\n const elapsed = now - start;\n const progress = Math.min(elapsed / duration, 1);\n const eased = 1 - Math.pow(1 - progress, 3);\n setCount(Math.round(eased * target));\n if (progress < 1) frame = requestAnimationFrame(animate);\n }\n\n frame = requestAnimationFrame(animate);\n return () => cancelAnimationFrame(frame);\n }, [target, inView]);\n\n return count;\n}\n\nfunction StatItem({ stat, inView }: { stat: Stat; inView: boolean }) {\n const count = useCountUp(stat.value, inView);\n\n return (\n <div className=\"text-center\">\n <p className=\"brutal-display\">\n {stat.prefix}{count.toLocaleString()}{stat.suffix}\n </p>\n <p className=\"brutal-label mt-2 text-muted-foreground\">{stat.label}</p>\n </div>\n );\n}\n\nexport function StatsBar({ stats, color = \"white\", className }: StatsBarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const [inView, setInView] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n setInView(true);\n observer.disconnect();\n }\n },\n { threshold: 0.3 }\n );\n observer.observe(ref.current);\n return () => observer.disconnect();\n }, []);\n\n return (\n <BrutalSection color={color} padding=\"sm\" className={className}>\n <div\n ref={ref}\n className={cn(\n \"grid gap-8\",\n stats.length === 2 && \"grid-cols-2\",\n stats.length === 3 && \"grid-cols-3\",\n stats.length >= 4 && \"grid-cols-2 sm:grid-cols-4\",\n )}\n >\n {stats.map((stat) => (\n <StatItem key={stat.label} stat={stat} inView={inView} />\n ))}\n </div>\n </BrutalSection>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from \"../ui/accordion\";\nimport { BrutalSection } from \"./section\";\n\ninterface FAQItem {\n question: string;\n answer: string;\n}\n\ninterface FAQProps {\n badge?: string;\n headline?: string;\n items: FAQItem[];\n color?: \"white\" | \"black\";\n className?: string;\n}\n\nexport function FAQ({\n badge,\n headline,\n items,\n color = \"white\",\n className,\n}: FAQProps) {\n return (\n <BrutalSection color={color} className={className}>\n {(headline || badge) && (\n <div className=\"mb-10 mx-auto max-w-2xl\">\n {badge && <p className=\"brutal-label mb-4 text-brand\">{badge}</p>}\n {headline && <h2 className=\"brutal-h2\">{headline}</h2>}\n </div>\n )}\n <Accordion className=\"mx-auto max-w-2xl\">\n {items.map((item, i) => (\n <AccordionItem\n key={i}\n value={`faq-${i}`}\n className={cn(\n \"border-brutal border-foreground mb-3 px-5\",\n i % 2 === 0 ? \"bg-background\" : \"bg-secondary\",\n )}\n >\n <AccordionTrigger className=\"brutal-h4 py-4 text-left\">\n {item.question}\n </AccordionTrigger>\n <AccordionContent className=\"brutal-body pb-4 text-muted-foreground\">\n {item.answer}\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n </BrutalSection>\n );\n}\n","import { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\nimport { BrutalSection } from \"./section\";\n\ninterface NewsletterProps {\n headline?: string;\n description?: string;\n placeholder?: string;\n buttonText?: string;\n onSubmit?: (email: string) => void;\n color?: \"white\" | \"brand\" | \"black\";\n className?: string;\n}\n\nexport function Newsletter({\n headline = \"Stay in the loop\",\n description,\n placeholder = \"you@example.com\",\n buttonText = \"Subscribe\",\n onSubmit,\n color = \"white\",\n className,\n}: NewsletterProps) {\n return (\n <BrutalSection color={color} padding=\"sm\" className={className}>\n <div className=\"mx-auto max-w-md border-brutal border-foreground bg-background p-8 text-foreground shadow-brutal-lg\">\n <h3 className=\"brutal-h3 mb-2\">{headline}</h3>\n {description && (\n <p className=\"brutal-body mb-6 text-muted-foreground\">{description}</p>\n )}\n <form\n onSubmit={(e) => {\n e.preventDefault();\n const form = e.target as HTMLFormElement;\n const email = new FormData(form).get(\"email\") as string;\n onSubmit?.(email);\n }}\n className=\"flex gap-3\"\n >\n <Input type=\"email\" name=\"email\" placeholder={placeholder} required className=\"flex-1\" />\n <Button type=\"submit\" variant=\"cta\">{buttonText}</Button>\n </form>\n </div>\n </BrutalSection>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState, createContext, useContext } from \"react\";\nimport { Sheet, SheetContent, SheetTitle } from \"../ui/sheet\";\nimport { Button } from \"../ui/button\";\n\ninterface AppShellContextValue {\n collapsed: boolean;\n setCollapsed: (v: boolean) => void;\n mobileOpen: boolean;\n setMobileOpen: (v: boolean) => void;\n}\n\nconst AppShellContext = createContext<AppShellContextValue>({\n collapsed: false,\n setCollapsed: () => {},\n mobileOpen: false,\n setMobileOpen: () => {},\n});\n\nexport const useAppShell = () => useContext(AppShellContext);\n\ninterface AppShellProps {\n sidebar: React.ReactNode;\n header?: React.ReactNode;\n children: React.ReactNode;\n defaultCollapsed?: boolean;\n className?: string;\n}\n\nexport function AppShell({\n sidebar,\n header,\n children,\n defaultCollapsed = false,\n className,\n}: AppShellProps) {\n const [collapsed, setCollapsed] = useState(defaultCollapsed);\n const [mobileOpen, setMobileOpen] = useState(false);\n\n return (\n <AppShellContext.Provider\n value={{ collapsed, setCollapsed, mobileOpen, setMobileOpen }}\n >\n <div className={cn(\"flex h-screen bg-background\", className)}>\n <aside\n className={cn(\n \"hidden border-r-brutal border-foreground bg-background transition-all duration-200 md:block\",\n collapsed ? \"w-16\" : \"w-64\"\n )}\n >\n {sidebar}\n </aside>\n <Sheet open={mobileOpen} onOpenChange={setMobileOpen}>\n <SheetContent side=\"left\" className=\"w-64 p-0 md:hidden\">\n <SheetTitle className=\"sr-only\">Navigation</SheetTitle>\n {sidebar}\n </SheetContent>\n </Sheet>\n <div className=\"flex flex-1 flex-col overflow-hidden\">\n {header && (\n <header className=\"flex h-14 items-center gap-4 border-b-brutal border-foreground px-6\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"md:hidden\"\n onClick={() => setMobileOpen(true)}\n >\n ☰\n </Button>\n {header}\n </header>\n )}\n <main className=\"flex-1 overflow-auto p-6\">{children}</main>\n </div>\n </div>\n </AppShellContext.Provider>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useAppShell } from \"./app-shell\";\n\ninterface SidebarLink {\n icon: React.ReactNode;\n label: string;\n href: string;\n active?: boolean;\n badge?: string | number;\n}\n\ninterface SidebarGroup {\n title?: string;\n links: SidebarLink[];\n}\n\ninterface SidebarProps {\n logo: React.ReactNode;\n logoCollapsed?: React.ReactNode;\n groups: SidebarGroup[];\n footer?: React.ReactNode;\n className?: string;\n}\n\nexport function Sidebar({\n logo,\n logoCollapsed,\n groups,\n footer,\n className,\n}: SidebarProps) {\n const { collapsed, setCollapsed } = useAppShell();\n\n return (\n <div className={cn(\"flex h-full flex-col\", className)}>\n <div className=\"flex h-14 items-center justify-between border-b-brutal border-foreground px-4\">\n <div className=\"font-black\">\n {collapsed ? logoCollapsed || logo : logo}\n </div>\n <button\n onClick={() => setCollapsed(!collapsed)}\n className=\"hidden text-xs text-muted-foreground hover:text-foreground md:block\"\n >\n {collapsed ? \"→\" : \"←\"}\n </button>\n </div>\n <nav className=\"flex-1 overflow-auto p-2\">\n {groups.map((group, gi) => (\n <div key={gi} className=\"mb-4\">\n {group.title && !collapsed && (\n <p className=\"brutal-label mb-2 px-2 text-muted-foreground\">\n {group.title}\n </p>\n )}\n <div className=\"flex flex-col gap-0.5\">\n {group.links.map((link) => (\n <a\n key={link.href}\n href={link.href}\n className={cn(\n \"flex items-center gap-3 rounded-sm px-3 py-2 text-sm font-medium transition-colors\",\n link.active\n ? \"bg-brand text-brand-foreground\"\n : \"hover:bg-secondary\",\n collapsed && \"justify-center\"\n )}\n title={collapsed ? link.label : undefined}\n >\n <span className=\"size-5 shrink-0\">{link.icon}</span>\n {!collapsed && (\n <>\n <span className=\"flex-1\">{link.label}</span>\n {link.badge !== undefined && (\n <span className=\"border border-foreground bg-brand-muted px-1.5 font-mono text-[10px] font-bold\">\n {link.badge}\n </span>\n )}\n </>\n )}\n </a>\n ))}\n </div>\n </div>\n ))}\n </nav>\n {footer && (\n <div className=\"border-t-brutal border-foreground p-3\">{footer}</div>\n )}\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\n\ninterface StatCardProps {\n label: string;\n value: string | number;\n change?: number;\n changeLabel?: string;\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport function StatCard({\n label,\n value,\n change,\n changeLabel,\n icon,\n className,\n}: StatCardProps) {\n return (\n <div\n className={cn(\n \"border-brutal border-foreground bg-background p-5 shadow-brutal\",\n className\n )}\n >\n <div className=\"mb-3 flex items-center justify-between\">\n <p className=\"brutal-label text-muted-foreground\">{label}</p>\n {icon && <span className=\"text-muted-foreground\">{icon}</span>}\n </div>\n <p className=\"brutal-h1 mb-1\">{value}</p>\n {change !== undefined && (\n <p\n className={cn(\n \"flex items-center gap-1 font-mono text-xs font-bold\",\n change >= 0 ? \"text-cta\" : \"text-destructive\"\n )}\n >\n <span>{change >= 0 ? \"↑\" : \"↓\"}</span>\n <span>{Math.abs(change)}%</span>\n {changeLabel && (\n <span className=\"font-normal text-muted-foreground\">\n {changeLabel}\n </span>\n )}\n </p>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { ToggleGroup, ToggleGroupItem } from \"../ui/toggle-group\";\n\ntype ViewMode = \"table\" | \"kanban\" | \"grid\" | \"calendar\" | \"list\";\n\ninterface ViewSwitcherProps {\n value: ViewMode;\n onChange: (value: ViewMode) => void;\n views?: ViewMode[];\n className?: string;\n}\n\nconst viewLabels: Record<ViewMode, string> = {\n table: \"Table\",\n kanban: \"Board\",\n grid: \"Grid\",\n calendar: \"Calendar\",\n list: \"List\",\n};\n\nexport function ViewSwitcher({\n value,\n onChange,\n views = [\"table\", \"kanban\", \"grid\", \"calendar\", \"list\"],\n className,\n}: ViewSwitcherProps) {\n return (\n <ToggleGroup\n value={[value]}\n onValueChange={(vals: string[]) => {\n if (vals.length > 0) {\n onChange(vals[0] as ViewMode);\n }\n }}\n className={className}\n >\n {views.map((view) => (\n <ToggleGroupItem key={view} value={view} className=\"brutal-label text-xs\">\n {viewLabels[view]}\n </ToggleGroupItem>\n ))}\n </ToggleGroup>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Input } from \"../ui/input\";\n\ninterface SearchBarProps {\n placeholder?: string;\n shortcut?: string;\n value?: string;\n onChange?: (value: string) => void;\n className?: string;\n}\n\nexport function SearchBar({\n placeholder = \"Search...\",\n shortcut = \"⌘K\",\n value,\n onChange,\n className,\n}: SearchBarProps) {\n return (\n <div className={cn(\"relative\", className)}>\n <Input\n type=\"search\"\n placeholder={placeholder}\n value={value}\n onChange={(e) => onChange?.(e.target.value)}\n className=\"pr-12\"\n />\n {shortcut && (\n <span className=\"absolute right-2 top-1/2 -translate-y-1/2 border border-foreground bg-secondary px-1.5 font-mono text-[10px] text-muted-foreground\">\n {shortcut}\n </span>\n )}\n </div>\n );\n}\n","import {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuLabel,\n DropdownMenuGroup,\n} from \"../ui/dropdown-menu\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../ui/avatar\";\n\ninterface UserMenuProps {\n name: string;\n email?: string;\n avatar?: string;\n items?: { label: string; href?: string; onClick?: () => void }[];\n onSignOut?: () => void;\n}\n\nexport function UserMenu({ name, email, avatar, items, onSignOut }: UserMenuProps) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n className=\"inline-flex shrink-0 cursor-pointer items-center gap-2 rounded-lg px-3 py-1.5 text-sm font-medium outline-none hover:bg-secondary\"\n >\n <Avatar className=\"size-7\">\n {avatar && <AvatarImage src={avatar} alt={name} />}\n <AvatarFallback>{name[0]}</AvatarFallback>\n </Avatar>\n <span className=\"hidden text-sm font-medium sm:inline\">{name}</span>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-48\">\n <DropdownMenuLabel>\n <p className=\"text-sm font-bold\">{name}</p>\n {email && <p className=\"text-xs text-muted-foreground\">{email}</p>}\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n {items && (\n <DropdownMenuGroup>\n {items.map((item) => (\n <DropdownMenuItem key={item.label} onClick={item.onClick}>\n {item.href ? <a href={item.href}>{item.label}</a> : item.label}\n </DropdownMenuItem>\n ))}\n </DropdownMenuGroup>\n )}\n {onSignOut && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={onSignOut}>Sign out</DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Button } from \"../ui/button\";\n\ninterface EmptyStateProps {\n icon?: React.ReactNode;\n headline: string;\n description?: string;\n ctaText?: string;\n ctaHref?: string;\n onAction?: () => void;\n className?: string;\n}\n\nexport function EmptyState({\n icon,\n headline,\n description,\n ctaText,\n ctaHref,\n onAction,\n className,\n}: EmptyStateProps) {\n return (\n <div\n className={cn(\n \"flex flex-col items-center justify-center py-16 text-center\",\n className\n )}\n >\n {icon && (\n <div className=\"mb-4 flex size-16 items-center justify-center border-brutal border-foreground bg-secondary text-3xl shadow-brutal-sm\">\n {icon}\n </div>\n )}\n <h3 className=\"brutal-h3 mb-2\">{headline}</h3>\n {description && (\n <p className=\"brutal-body mb-6 max-w-sm text-muted-foreground\">\n {description}\n </p>\n )}\n {ctaText &&\n (ctaHref ? (\n <Button variant=\"cta\" render={<a href={ctaHref} />}>\n {ctaText}\n </Button>\n ) : (\n <Button variant=\"cta\" onClick={onAction}>\n {ctaText}\n </Button>\n ))}\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../ui/avatar\";\n\ninterface ActivityEntry {\n id: string;\n avatar?: string;\n name: string;\n action: string;\n timestamp: Date | string;\n metadata?: React.ReactNode;\n}\n\ninterface ActivityFeedProps {\n entries: ActivityEntry[];\n groupByDate?: boolean;\n className?: string;\n}\n\nfunction formatDate(d: Date | string) {\n const date = typeof d === \"string\" ? new Date(d) : d;\n return date.toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\" });\n}\n\nfunction formatTime(d: Date | string) {\n const date = typeof d === \"string\" ? new Date(d) : d;\n return date.toLocaleTimeString(\"en-US\", {\n hour: \"numeric\",\n minute: \"2-digit\",\n });\n}\n\nexport function ActivityFeed({\n entries,\n groupByDate = true,\n className,\n}: ActivityFeedProps) {\n const grouped = groupByDate\n ? entries.reduce<Record<string, ActivityEntry[]>>((acc, entry) => {\n const key = formatDate(entry.timestamp);\n (acc[key] ??= []).push(entry);\n return acc;\n }, {})\n : { \"\": entries };\n\n return (\n <div className={cn(\"flex flex-col gap-6\", className)}>\n {Object.entries(grouped).map(([date, items]) => (\n <div key={date}>\n {date && (\n <p className=\"brutal-label mb-3 text-muted-foreground\">{date}</p>\n )}\n <div className=\"relative flex flex-col gap-0 pl-6\">\n <div className=\"absolute bottom-2 left-2 top-2 w-px bg-foreground/10\" />\n {items.map((entry) => (\n <div key={entry.id} className=\"relative flex items-start gap-3 py-2\">\n <div className=\"absolute left-[-18px] top-3 size-2 border border-foreground bg-brand\" />\n <Avatar className=\"size-7 shrink-0\">\n {entry.avatar && (\n <AvatarImage src={entry.avatar} alt={entry.name} />\n )}\n <AvatarFallback className=\"text-[10px]\">\n {entry.name[0]}\n </AvatarFallback>\n </Avatar>\n <div className=\"min-w-0 flex-1\">\n <p className=\"text-sm\">\n <span className=\"font-bold\">{entry.name}</span>{\" \"}\n {entry.action}\n </p>\n <p className=\"font-mono text-xs text-muted-foreground\">\n {formatTime(entry.timestamp)}\n </p>\n {entry.metadata}\n </div>\n </div>\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState, useCallback } from \"react\";\n\ninterface FileUploadProps {\n onFiles: (files: File[]) => void;\n accept?: string;\n maxFiles?: number;\n maxSize?: number;\n className?: string;\n}\n\nexport function FileUpload({\n onFiles,\n accept,\n maxFiles = 10,\n maxSize,\n className,\n}: FileUploadProps) {\n const [isDragging, setIsDragging] = useState(false);\n const [files, setFiles] = useState<File[]>([]);\n\n const handleFiles = useCallback(\n (newFiles: FileList | File[]) => {\n const arr = Array.from(newFiles).slice(0, maxFiles);\n setFiles(arr);\n onFiles(arr);\n },\n [maxFiles, onFiles]\n );\n\n return (\n <div className={cn(\"flex flex-col gap-4\", className)}>\n <div\n onDragOver={(e) => {\n e.preventDefault();\n setIsDragging(true);\n }}\n onDragLeave={() => setIsDragging(false)}\n onDrop={(e) => {\n e.preventDefault();\n setIsDragging(false);\n handleFiles(e.dataTransfer.files);\n }}\n className={cn(\n \"flex cursor-pointer flex-col items-center justify-center border-2 border-dashed border-foreground p-8 text-center transition-colors\",\n isDragging && \"border-brand bg-brand-muted\"\n )}\n onClick={() => {\n const input = document.createElement(\"input\");\n input.type = \"file\";\n input.multiple = maxFiles > 1;\n if (accept) input.accept = accept;\n input.onchange = (e) => {\n const target = e.target as HTMLInputElement;\n if (target.files) handleFiles(target.files);\n };\n input.click();\n }}\n >\n <p className=\"brutal-h4 mb-1\">Drop files here</p>\n <p className=\"text-sm text-muted-foreground\">or click to browse</p>\n {maxSize && (\n <p className=\"mt-2 font-mono text-xs text-muted-foreground\">\n Max {Math.round(maxSize / 1024 / 1024)}MB\n </p>\n )}\n </div>\n\n {files.length > 0 && (\n <div className=\"flex flex-col gap-2\">\n {files.map((file, i) => (\n <div\n key={i}\n className=\"flex items-center justify-between border border-foreground bg-secondary px-3 py-2 text-sm\"\n >\n <span className=\"truncate\">{file.name}</span>\n <span className=\"font-mono text-xs text-muted-foreground\">\n {(file.size / 1024).toFixed(0)}KB\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState } from \"react\";\nimport {\n useReactTable,\n getCoreRowModel,\n getSortedRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n flexRender,\n type ColumnDef,\n type SortingState,\n} from \"@tanstack/react-table\";\nimport { Button } from \"../ui/button\";\nimport { Input } from \"../ui/input\";\n\ninterface DataTableProps<TData> {\n columns: ColumnDef<TData, any>[];\n data: TData[];\n searchColumn?: string;\n searchPlaceholder?: string;\n pageSize?: number;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function DataTable<TData>({\n columns,\n data,\n searchColumn,\n searchPlaceholder = \"Search...\",\n pageSize = 10,\n emptyMessage = \"No data\",\n className,\n}: DataTableProps<TData>) {\n const [sorting, setSorting] = useState<SortingState>([]);\n const [globalFilter, setGlobalFilter] = useState(\"\");\n\n const table = useReactTable({\n data,\n columns,\n state: { sorting, globalFilter },\n onSortingChange: setSorting,\n onGlobalFilterChange: setGlobalFilter,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n initialState: { pagination: { pageSize } },\n });\n\n return (\n <div className={cn(\"flex flex-col gap-4\", className)}>\n {searchColumn !== undefined && (\n <Input\n placeholder={searchPlaceholder}\n value={globalFilter}\n onChange={(e) => setGlobalFilter(e.target.value)}\n className=\"max-w-sm\"\n />\n )}\n\n <div className=\"overflow-auto border-brutal border-foreground shadow-brutal\">\n <table className=\"w-full text-sm\">\n <thead>\n {table.getHeaderGroups().map((headerGroup) => (\n <tr\n key={headerGroup.id}\n className=\"border-b-brutal border-foreground bg-secondary\"\n >\n {headerGroup.headers.map((header) => (\n <th\n key={header.id}\n className={cn(\n \"brutal-label px-4 py-3 text-left\",\n header.column.getCanSort() &&\n \"cursor-pointer select-none\"\n )}\n onClick={header.column.getToggleSortingHandler()}\n >\n {flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n {{\n asc: \" ↑\",\n desc: \" ↓\",\n }[header.column.getIsSorted() as string] ?? \"\"}\n </th>\n ))}\n </tr>\n ))}\n </thead>\n <tbody>\n {table.getRowModel().rows.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n className=\"px-4 py-8 text-center text-muted-foreground\"\n >\n {emptyMessage}\n </td>\n </tr>\n ) : (\n table.getRowModel().rows.map((row, i) => (\n <tr\n key={row.id}\n className={cn(\n \"border-b border-foreground/10 transition-colors hover:bg-brand-muted\",\n i % 2 === 1 && \"bg-secondary/30\"\n )}\n >\n {row.getVisibleCells().map((cell) => (\n <td key={cell.id} className=\"px-4 py-3\">\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </td>\n ))}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm text-muted-foreground\">\n Page {table.getState().pagination.pageIndex + 1} of{\" \"}\n {table.getPageCount()}\n </p>\n <div className=\"flex gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n Next\n </Button>\n </div>\n </div>\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useEffect, useRef, useState, useCallback } from \"react\";\nimport {\n draggable,\n dropTargetForElements,\n} from \"@atlaskit/pragmatic-drag-and-drop/element/adapter\";\nimport { combine } from \"@atlaskit/pragmatic-drag-and-drop/combine\";\nimport { Input } from \"../ui/input\";\n\ninterface KanbanColumn<TCard> {\n id: string;\n title: string;\n cards: TCard[];\n}\n\ninterface KanbanBoardProps<TCard extends { id: string }> {\n columns: KanbanColumn<TCard>[];\n renderCard: (card: TCard) => React.ReactNode;\n onCardMove?: (\n cardId: string,\n fromColumn: string,\n toColumn: string,\n index: number\n ) => void;\n onCardAdd?: (columnId: string, title: string) => void;\n className?: string;\n}\n\nexport function KanbanBoard<TCard extends { id: string }>({\n columns,\n renderCard,\n onCardMove,\n onCardAdd,\n className,\n}: KanbanBoardProps<TCard>) {\n return (\n <div className={cn(\"flex gap-4 overflow-x-auto pb-4\", className)}>\n {columns.map((column) => (\n <KanbanColumnComponent\n key={column.id}\n column={column}\n renderCard={renderCard}\n onCardMove={onCardMove}\n onCardAdd={onCardAdd}\n />\n ))}\n </div>\n );\n}\n\nfunction KanbanColumnComponent<TCard extends { id: string }>({\n column,\n renderCard,\n onCardMove,\n onCardAdd,\n}: {\n column: KanbanColumn<TCard>;\n renderCard: (card: TCard) => React.ReactNode;\n onCardMove?: (\n cardId: string,\n fromColumn: string,\n toColumn: string,\n index: number\n ) => void;\n onCardAdd?: (columnId: string, title: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const [isDragOver, setIsDragOver] = useState(false);\n const [addText, setAddText] = useState(\"\");\n\n useEffect(() => {\n if (!ref.current) return;\n return dropTargetForElements({\n element: ref.current,\n getData: () => ({ columnId: column.id }),\n onDragEnter: () => setIsDragOver(true),\n onDragLeave: () => setIsDragOver(false),\n onDrop: ({ source }) => {\n setIsDragOver(false);\n const data = source.data as { cardId: string; columnId: string };\n if (data.columnId !== column.id) {\n onCardMove?.(\n data.cardId as string,\n data.columnId as string,\n column.id,\n column.cards.length\n );\n }\n },\n });\n }, [column.id, column.cards.length, onCardMove]);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"flex min-w-[280px] flex-col border-brutal border-foreground bg-secondary/30 p-3\",\n isDragOver && \"ring-2 ring-brand\"\n )}\n >\n <div className=\"brutal-label mb-3 flex items-center justify-between\">\n <span>{column.title}</span>\n <span className=\"bg-foreground px-1.5 font-mono text-xs text-background\">\n {column.cards.length}\n </span>\n </div>\n <div className=\"flex flex-1 flex-col gap-2\">\n {column.cards.map((card) => (\n <KanbanCard\n key={card.id}\n card={card}\n columnId={column.id}\n renderCard={renderCard}\n />\n ))}\n </div>\n {onCardAdd && (\n <form\n className=\"mt-3\"\n onSubmit={(e) => {\n e.preventDefault();\n if (addText.trim()) {\n onCardAdd(column.id, addText.trim());\n setAddText(\"\");\n }\n }}\n >\n <Input\n value={addText}\n onChange={(e) => setAddText(e.target.value)}\n placeholder=\"+ Add card...\"\n className=\"text-sm\"\n />\n </form>\n )}\n </div>\n );\n}\n\nfunction KanbanCard<TCard extends { id: string }>({\n card,\n columnId,\n renderCard,\n}: {\n card: TCard;\n columnId: string;\n renderCard: (card: TCard) => React.ReactNode;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const [isDragging, setIsDragging] = useState(false);\n\n useEffect(() => {\n if (!ref.current) return;\n return draggable({\n element: ref.current,\n getInitialData: () => ({ cardId: card.id, columnId }),\n onDragStart: () => setIsDragging(true),\n onDrop: () => setIsDragging(false),\n });\n }, [card.id, columnId]);\n\n return (\n <div\n ref={ref}\n className={cn(\n \"cursor-grab border-brutal border-foreground bg-background p-3 shadow-brutal-sm transition-opacity active:cursor-grabbing\",\n isDragging && \"opacity-50\"\n )}\n >\n {renderCard(card)}\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\n\ninterface GridViewProps {\n children: React.ReactNode;\n columns?: number;\n gap?: number;\n className?: string;\n}\n\nexport function GridView({\n children,\n columns = 3,\n gap = 6,\n className,\n}: GridViewProps) {\n return (\n <div\n className={cn(\"grid\", className)}\n style={{\n gridTemplateColumns: `repeat(auto-fill, minmax(${Math.floor(100 / columns) - 2}%, 1fr))`,\n gap: `${gap * 4}px`,\n }}\n >\n {children}\n </div>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../lib/utils\";\nimport { useState } from \"react\";\nimport { Button } from \"../ui/button\";\n\ninterface CalendarEvent {\n id: string;\n title: string;\n date: Date | string;\n color?: string;\n}\n\ninterface CalendarViewProps {\n events?: CalendarEvent[];\n onEventClick?: (event: CalendarEvent) => void;\n onDateClick?: (date: Date) => void;\n className?: string;\n}\n\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\nfunction getDaysInMonth(year: number, month: number) {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number) {\n return new Date(year, month, 1).getDay();\n}\n\nexport function CalendarView({\n events = [],\n onEventClick,\n onDateClick,\n className,\n}: CalendarViewProps) {\n const [currentDate, setCurrentDate] = useState(new Date());\n const year = currentDate.getFullYear();\n const month = currentDate.getMonth();\n const daysInMonth = getDaysInMonth(year, month);\n const firstDay = getFirstDayOfMonth(year, month);\n const monthName = currentDate.toLocaleDateString(\"en-US\", {\n month: \"long\",\n year: \"numeric\",\n });\n\n const cells: (number | null)[] = [];\n for (let i = 0; i < firstDay; i++) cells.push(null);\n for (let d = 1; d <= daysInMonth; d++) cells.push(d);\n\n const getEventsForDay = (day: number) =>\n events.filter((e) => {\n const d = typeof e.date === \"string\" ? new Date(e.date) : e.date;\n return (\n d.getFullYear() === year &&\n d.getMonth() === month &&\n d.getDate() === day\n );\n });\n\n const today = new Date();\n const isToday = (day: number) =>\n day === today.getDate() &&\n month === today.getMonth() &&\n year === today.getFullYear();\n\n return (\n <div className={cn(\"flex flex-col gap-4\", className)}>\n <div className=\"flex items-center justify-between\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setCurrentDate(new Date(year, month - 1))}\n >\n ←\n </Button>\n <h3 className=\"brutal-h4\">{monthName}</h3>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => setCurrentDate(new Date(year, month + 1))}\n >\n →\n </Button>\n </div>\n <div className=\"grid grid-cols-7 border-brutal border-foreground\">\n {DAYS.map((day) => (\n <div\n key={day}\n className=\"brutal-label border-b-brutal border-foreground bg-secondary px-2 py-2 text-center text-xs\"\n >\n {day}\n </div>\n ))}\n {cells.map((day, i) => {\n const dayEvents = day ? getEventsForDay(day) : [];\n return (\n <div\n key={i}\n className={cn(\n \"min-h-[80px] border-b border-r border-foreground/10 p-1\",\n day && onDateClick && \"cursor-pointer hover:bg-secondary/50\",\n isToday(day ?? 0) && \"bg-brand-muted\"\n )}\n onClick={() => day && onDateClick?.(new Date(year, month, day))}\n >\n {day && (\n <>\n <span\n className={cn(\n \"text-xs font-bold\",\n isToday(day) && \"text-brand\"\n )}\n >\n {day}\n </span>\n <div className=\"mt-1 flex flex-col gap-0.5\">\n {dayEvents.slice(0, 3).map((event) => (\n <div\n key={event.id}\n onClick={(e) => {\n e.stopPropagation();\n onEventClick?.(event);\n }}\n className=\"cursor-pointer truncate border border-foreground/20 bg-brand-muted px-1 text-[10px] font-medium hover:bg-brand\"\n style={\n event.color\n ? { borderLeftColor: event.color, borderLeftWidth: 2 }\n : undefined\n }\n >\n {event.title}\n </div>\n ))}\n {dayEvents.length > 3 && (\n <span className=\"text-[10px] text-muted-foreground\">\n +{dayEvents.length - 3}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import { cn } from \"../../lib/utils\";\nimport { Avatar, AvatarImage, AvatarFallback } from \"../ui/avatar\";\n\ninterface ListItem {\n id: string;\n title: string;\n subtitle?: string;\n avatar?: string;\n metadata?: React.ReactNode;\n actions?: React.ReactNode;\n}\n\ninterface ListViewProps {\n items: ListItem[];\n onItemClick?: (item: ListItem) => void;\n emptyMessage?: string;\n className?: string;\n}\n\nexport function ListView({\n items,\n onItemClick,\n emptyMessage = \"No items\",\n className,\n}: ListViewProps) {\n if (items.length === 0) {\n return (\n <p className=\"py-8 text-center text-muted-foreground\">{emptyMessage}</p>\n );\n }\n\n return (\n <div className={cn(\"border-brutal border-foreground shadow-brutal\", className)}>\n {items.map((item, i) => (\n <div\n key={item.id}\n onClick={() => onItemClick?.(item)}\n className={cn(\n \"flex items-center gap-4 px-4 py-3 transition-colors\",\n onItemClick && \"cursor-pointer\",\n \"hover:bg-secondary/50\",\n i < items.length - 1 && \"border-b border-foreground/10\"\n )}\n >\n {item.avatar && (\n <Avatar className=\"size-8\">\n <AvatarImage src={item.avatar} alt={item.title} />\n <AvatarFallback>{item.title[0]}</AvatarFallback>\n </Avatar>\n )}\n <div className=\"min-w-0 flex-1\">\n <p className=\"text-sm font-bold\">{item.title}</p>\n {item.subtitle && (\n <p className=\"truncate text-xs text-muted-foreground\">\n {item.subtitle}\n </p>\n )}\n </div>\n {item.metadata && (\n <div className=\"text-sm text-muted-foreground\">{item.metadata}</div>\n )}\n {item.actions && <div>{item.actions}</div>}\n </div>\n ))}\n </div>\n );\n}\n","import { BrutalNav } from \"../components/brutal/nav\";\nimport { BrutalHero } from \"../components/brutal/hero\";\nimport { SectionDivider } from \"../components/brutal/section-divider\";\nimport { LogoCloud } from \"../components/brutal/logo-cloud\";\nimport { BrutalFeatureGrid } from \"../components/brutal/feature-grid\";\nimport { StatsBar } from \"../components/brutal/stats-bar\";\nimport { BrutalTestimonials } from \"../components/brutal/testimonials\";\nimport { PricingTable } from \"../components/brutal/pricing-table\";\nimport { FAQ } from \"../components/brutal/faq\";\nimport { BrutalCTA } from \"../components/brutal/cta-section\";\nimport { BrutalFooter } from \"../components/brutal/footer\";\n\ninterface SaaSLaunchProps {\n brand: string;\n logo: React.ReactNode;\n nav: {\n links: { label: string; href: string; badge?: string; active?: boolean }[];\n ctaText?: string;\n ctaHref?: string;\n };\n hero: {\n badge?: string;\n headline: string;\n description: string;\n ctaText: string;\n ctaHref?: string;\n secondaryText?: string;\n secondaryHref?: string;\n visual?: React.ReactNode;\n proof?: string;\n };\n logos?: { src: string; alt: string; href?: string }[];\n features: {\n badge?: string;\n headline: string;\n description?: string;\n items: { icon?: React.ReactNode; title: string; description: string; featured?: boolean; stat?: string }[];\n };\n stats?: { value: number; label: string; prefix?: string; suffix?: string }[];\n testimonials: {\n badge?: string;\n headline?: string;\n items: { name: string; handle?: string; avatar?: string; text: string; role?: string; company?: string; rating?: 1 | 2 | 3 | 4 | 5; featured?: boolean }[];\n };\n pricing?: {\n badge?: string;\n headline?: string;\n description?: string;\n tiers: { name: string; description?: string; price: { monthly: number | string; annual: number | string }; features: string[]; ctaText: string; ctaHref?: string; ctaVariant?: \"cta\" | \"brand\" | \"default\" | \"outline\" }[];\n popularIndex?: number;\n };\n faq?: { question: string; answer: string }[];\n cta: {\n headline: string;\n description?: string;\n ctaText: string;\n ctaHref?: string;\n secondaryText?: string;\n secondaryHref?: string;\n };\n footer: {\n tagline?: string;\n columns: { title: string; links: { label: string; href: string }[] }[];\n socials?: { twitter?: string; github?: string; linkedin?: string; discord?: string };\n };\n}\n\nexport function SaaSLaunchTemplate({\n brand,\n logo,\n nav,\n hero,\n logos,\n features,\n stats,\n testimonials,\n pricing,\n faq,\n cta,\n footer,\n}: SaaSLaunchProps) {\n return (\n <div>\n <BrutalNav logo={logo} links={nav.links} ctaText={nav.ctaText} ctaHref={nav.ctaHref} variant=\"solid\" />\n\n <BrutalHero\n variant=\"split\"\n badge={hero.badge}\n headline={hero.headline}\n description={hero.description}\n ctaText={hero.ctaText}\n ctaHref={hero.ctaHref}\n secondaryText={hero.secondaryText}\n secondaryHref={hero.secondaryHref}\n visual={hero.visual}\n proof={hero.proof}\n color=\"brand\"\n pattern=\"noise\"\n />\n\n <SectionDivider from=\"hsl(var(--brand))\" to=\"hsl(var(--background))\" variant=\"wave\" />\n\n {logos && logos.length > 0 && (\n <LogoCloud logos={logos} marquee title=\"Trusted by teams everywhere\" />\n )}\n\n <BrutalFeatureGrid\n variant=\"bento\"\n badge={features.badge}\n headline={features.headline}\n description={features.description}\n features={features.items}\n color=\"white\"\n />\n\n {stats && stats.length > 0 && (\n <StatsBar stats={stats} color=\"brand\" />\n )}\n\n <SectionDivider from=\"hsl(var(--brand))\" to=\"hsl(var(--brand-muted))\" variant=\"torn-paper\" />\n\n <BrutalTestimonials\n variant=\"wall-of-love\"\n badge={testimonials.badge}\n headline={testimonials.headline}\n testimonials={testimonials.items}\n color=\"brand-muted\"\n />\n\n <SectionDivider from=\"hsl(var(--brand-muted))\" to=\"hsl(var(--background))\" variant=\"wave\" />\n\n {pricing && (\n <PricingTable\n badge={pricing.badge}\n headline={pricing.headline}\n description={pricing.description}\n tiers={pricing.tiers}\n popularIndex={pricing.popularIndex}\n color=\"white\"\n />\n )}\n\n {faq && faq.length > 0 && (\n <FAQ badge=\"FAQ\" headline=\"Common Questions\" items={faq} color=\"white\" />\n )}\n\n <BrutalCTA\n variant=\"with-visual\"\n headline={cta.headline}\n description={cta.description}\n ctaText={cta.ctaText}\n ctaHref={cta.ctaHref}\n secondaryText={cta.secondaryText}\n secondaryHref={cta.secondaryHref}\n color=\"black\"\n pattern=\"gradient-mesh\"\n />\n\n <BrutalFooter\n variant=\"mega\"\n logo={logo}\n tagline={footer.tagline}\n columns={footer.columns}\n socials={footer.socials}\n />\n </div>\n );\n}\n","import { BrutalNav } from \"../components/brutal/nav\";\nimport { BrutalHero } from \"../components/brutal/hero\";\nimport { SectionDivider } from \"../components/brutal/section-divider\";\nimport { BrutalFeatureGrid } from \"../components/brutal/feature-grid\";\nimport { BrutalTestimonials } from \"../components/brutal/testimonials\";\nimport { Newsletter } from \"../components/brutal/newsletter\";\nimport { BrutalCTA } from \"../components/brutal/cta-section\";\nimport { BrutalFooter } from \"../components/brutal/footer\";\n\ninterface StudioProps {\n logo: React.ReactNode;\n nav: {\n links: { label: string; href: string; badge?: string; active?: boolean }[];\n ctaText?: string;\n ctaHref?: string;\n };\n hero: {\n badge?: string;\n headline: string;\n description: string;\n ctaText: string;\n ctaHref?: string;\n visual?: React.ReactNode;\n proof?: string;\n };\n features: {\n badge?: string;\n headline: string;\n description?: string;\n items: { icon?: React.ReactNode; title: string; description: string }[];\n };\n testimonials?: {\n badge?: string;\n headline?: string;\n items: { name: string; handle?: string; avatar?: string; text: string; role?: string; company?: string; rating?: 1 | 2 | 3 | 4 | 5; featured?: boolean }[];\n };\n newsletter?: {\n headline?: string;\n description?: string;\n onSubmit?: (email: string) => void;\n };\n cta: {\n headline: string;\n description?: string;\n ctaText: string;\n ctaHref?: string;\n };\n footer: {\n tagline?: string;\n columns: { title: string; links: { label: string; href: string }[] }[];\n };\n}\n\nexport function StudioTemplate({\n logo,\n nav,\n hero,\n features,\n testimonials,\n newsletter,\n cta,\n footer,\n}: StudioProps) {\n return (\n <div>\n <BrutalNav logo={logo} links={nav.links} ctaText={nav.ctaText} ctaHref={nav.ctaHref} variant=\"floating-pill\" />\n\n <BrutalHero\n variant=\"asymmetric\"\n badge={hero.badge}\n headline={hero.headline}\n description={hero.description}\n ctaText={hero.ctaText}\n ctaHref={hero.ctaHref}\n visual={hero.visual}\n proof={hero.proof}\n color=\"brand\"\n pattern=\"grain\"\n />\n\n <SectionDivider from=\"hsl(var(--brand))\" to=\"hsl(var(--background))\" variant=\"brush-stroke\" />\n\n <BrutalFeatureGrid\n variant=\"numbered\"\n badge={features.badge}\n headline={features.headline}\n description={features.description}\n features={features.items}\n color=\"white\"\n />\n\n {testimonials && (\n <>\n <SectionDivider from=\"hsl(var(--background))\" to=\"hsl(var(--brand-muted))\" variant=\"diagonal\" />\n <BrutalTestimonials\n variant=\"featured-grid\"\n badge={testimonials.badge}\n headline={testimonials.headline}\n testimonials={testimonials.items}\n color=\"brand-muted\"\n />\n <SectionDivider from=\"hsl(var(--brand-muted))\" to=\"hsl(var(--background))\" variant=\"diagonal\" flip />\n </>\n )}\n\n {newsletter && (\n <Newsletter\n headline={newsletter.headline}\n description={newsletter.description}\n onSubmit={newsletter.onSubmit}\n />\n )}\n\n <BrutalCTA\n variant=\"floating-card\"\n headline={cta.headline}\n description={cta.description}\n ctaText={cta.ctaText}\n ctaHref={cta.ctaHref}\n color=\"brand\"\n />\n\n <BrutalFooter\n variant=\"minimal\"\n logo={logo}\n tagline={footer.tagline}\n columns={footer.columns}\n />\n </div>\n );\n}\n","\"use client\";\n\nimport { AppShell } from \"../components/dashboard/app-shell\";\nimport { Sidebar } from \"../components/dashboard/sidebar\";\nimport { SearchBar } from \"../components/dashboard/search-bar\";\nimport { UserMenu } from \"../components/dashboard/user-menu\";\nimport { StatCard } from \"../components/dashboard/stat-card\";\nimport { ViewSwitcher } from \"../components/dashboard/view-switcher\";\nimport { useState } from \"react\";\n\ninterface DashboardProps {\n logo: React.ReactNode;\n logoCollapsed?: React.ReactNode;\n sidebarGroups: { title?: string; links: { icon: React.ReactNode; label: string; href: string; active?: boolean; badge?: string | number }[] }[];\n user: { name: string; email?: string; avatar?: string };\n userMenuItems?: { label: string; href?: string; onClick?: () => void }[];\n onSignOut?: () => void;\n stats?: { label: string; value: string | number; change?: number; changeLabel?: string; icon?: React.ReactNode }[];\n views?: (\"table\" | \"kanban\" | \"grid\" | \"calendar\" | \"list\")[];\n children: React.ReactNode;\n sidebarFooter?: React.ReactNode;\n}\n\nexport function DashboardTemplate({\n logo,\n logoCollapsed,\n sidebarGroups,\n user,\n userMenuItems,\n onSignOut,\n stats,\n views,\n children,\n sidebarFooter,\n}: DashboardProps) {\n const [view, setView] = useState<\"table\" | \"kanban\" | \"grid\" | \"calendar\" | \"list\">(\"table\");\n\n return (\n <AppShell\n sidebar={\n <Sidebar\n logo={logo}\n logoCollapsed={logoCollapsed}\n groups={sidebarGroups}\n footer={sidebarFooter}\n />\n }\n header={\n <>\n <SearchBar className=\"flex-1 max-w-sm\" />\n <div className=\"ml-auto\">\n <UserMenu\n name={user.name}\n email={user.email}\n avatar={user.avatar}\n items={userMenuItems}\n onSignOut={onSignOut}\n />\n </div>\n </>\n }\n >\n {stats && stats.length > 0 && (\n <div className=\"mb-6 grid gap-4 sm:grid-cols-2 lg:grid-cols-4\">\n {stats.map((stat) => (\n <StatCard key={stat.label} {...stat} />\n ))}\n </div>\n )}\n\n {views && views.length > 1 && (\n <div className=\"mb-4\">\n <ViewSwitcher value={view} onChange={setView} views={views} />\n </div>\n )}\n\n {children}\n </AppShell>\n );\n}\n"]}
|