@epilot/spark-ui 1.0.0-alpha.0 → 1.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -111
- package/dist/index.cjs +1381 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.cts +227 -3
- package/dist/index.d.ts +227 -3
- package/dist/index.js +1315 -52
- package/dist/index.js.map +1 -1
- package/package.json +30 -15
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/cn.ts","../src/components/button/button.tsx","../src/components/card/card.tsx","../src/components/dialog/dialog.tsx","../src/components/display-field/display-field.tsx"],"names":["twMerge","clsx","cva","React","Slot","jsx","React2","jsxs","DialogPrimitive","React3","Fragment","React4"],"mappings":"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","file":"index.cjs","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","import { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst buttonVariants = cva(\n `inline-flex items-center justify-center gap-2 whitespace-nowrap cursor-pointer text-base font-medium transition-colors focus-visible:outline-hidden focus-visible:ring focus-visible:ring-offset-2 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-6 [&_svg]:shrink-0`,\n {\n variants: {\n variant: {\n primary:\n 'bg-spark-10 text-accent-contrast focus-visible:bg-spark-9 disabled:bg-spark-a3 disabled:text-spark-a7 hover:bg-spark-9',\n secondary:\n 'bg-spark-a3 text-spark-a12 focus-visible:bg-spark-a4 disabled:bg-slate-a3 disabled:text-spark-a7 hover:bg-spark-a4',\n tertiary:\n 'bg-transparent text-spark-a11 focus-visible:bg-slate-a3 disabled:bg-transparent disabled:text-spark-a7 hover:bg-slate-a3',\n bare: 'rounded-none! text-gray outline-hidden!',\n icon: 'rounded-md text-spark-a11 focus-visible:bg-slate-a3 hover:bg-slate-a3',\n },\n shape: {\n default: 'rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n },\n size: {\n small: 'min-w-9 px-3 max-sm:h-10 md:h-9',\n default: 'h-11 min-w-10 px-3 max-sm:h-12',\n medium: 'h-12 min-w-12 px-4',\n },\n },\n defaultVariants: {\n shape: 'default',\n variant: 'primary',\n size: 'default',\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp: React.ElementType = asChild ? Slot : 'button'\n\n return (\n <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n )\n }\n) as React.FC<ButtonProps & { ref?: React.Ref<HTMLButtonElement> }>\n\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn('relative flex w-full flex-col gap-1 rounded-2xl bg-slate-a3 p-4', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div className={cn('flex items-center gap-4', className)} ref={ref} {...props} />\n )\n)\n\nCardHeader.displayName = 'CardHeader'\n\nconst CardIcon = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn('flex shrink-0 items-center justify-center text-slate-11', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nCardIcon.displayName = 'CardIcon'\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n className={cn('text-base font-medium leading-5 text-slate-12', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p className={cn('text-sm leading-5 text-slate-11', className)} ref={ref} {...props} />\n))\n\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div className={cn('', className)} ref={ref} {...props} />\n)\n\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn('flex items-center justify-end gap-2 pt-2', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nCardFooter.displayName = 'CardFooter'\n\nconst CardSkeleton = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n 'relative flex w-full items-center gap-4 rounded-2xl bg-slate-a3 p-4 opacity-80',\n className\n )}\n ref={ref}\n {...props}\n >\n <div className=\"size-10 shrink-0 animate-pulse rounded-full bg-slate-a5\" />\n <div className=\"flex flex-1 flex-col gap-y-2\">\n <div className=\"h-5 w-1/3 max-w-32 animate-pulse rounded-md bg-slate-a5\" />\n <div className=\"h-4 w-1/2 max-w-48 animate-pulse rounded-md bg-slate-a5\" />\n </div>\n </div>\n )\n)\n\nCardSkeleton.displayName = 'CardSkeleton'\n\nexport {\n Card,\n CardHeader,\n CardIcon,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardSkeleton,\n}\n","import * as DialogPrimitive from '@radix-ui/react-dialog'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black-a6 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 dark:bg-black-a8',\n className\n )}\n data-overlay=\"true\"\n ref={ref}\n {...props}\n />\n))\n\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst onInteractOutsideHandler = (event: CustomEvent) => {\n const target = event.target as HTMLElement\n const isOverlay = target.dataset.overlay === 'true'\n\n // Our dialogs contain interactive elements that are mounted outside of the drawer\n // Browser extensions like password managers or grammar checkers are also mounted outside\n // We still dismiss on a click/tap outside\n if (!isOverlay) event.preventDefault()\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <>\n <DialogOverlay />\n <DialogPrimitive.Content\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-[90%] min-w-80 max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl bg-slate-2 p-6 text-gray shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-50% data-[state=closed]:slide-out-to-top-48% data-[state=open]:slide-in-from-top-48% dark:bg-gray-2 sm:w-1/2',\n className\n )}\n onInteractOutside={onInteractOutsideHandler}\n ref={ref}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </>\n))\n\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('', className)} {...props} />\n)\n\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\n\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n className={cn('text-lg font-bold text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n className={cn('text-md text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\n/**\n * DisplayField - Root container for displaying read-only label-value pairs\n *\n * @example\n * <DisplayField>\n * <DisplayFieldLabel>Email</DisplayFieldLabel>\n * <DisplayFieldValue>john@example.com</DisplayFieldValue>\n * </DisplayField>\n */\nconst DisplayField = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n 'relative flex min-h-12 w-full flex-col gap-y-2 rounded-2xl bg-slate-a3 p-4',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nDisplayField.displayName = 'DisplayField'\n\n/**\n * DisplayFieldLabel - Label/title for the field (maps to \"Title\" pattern)\n */\nconst DisplayFieldLabel = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, ...props }, ref) => (\n <span\n className={cn(\n 'text-sm font-medium leading-5 text-slate-11 [overflow-wrap:break-word]',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nDisplayFieldLabel.displayName = 'DisplayFieldLabel'\n\n/**\n * DisplayFieldValue - Primary value display (maps to \"Description\" pattern)\n */\nconst DisplayFieldValue = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, ...props }, ref) => (\n <span\n className={cn(\n 'min-h-5 w-full whitespace-pre-wrap text-base tabular-nums leading-5 text-slate-12',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nDisplayFieldValue.displayName = 'DisplayFieldValue'\n\n/**\n * DisplayFieldContent - Container for custom content within the field\n */\nconst DisplayFieldContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div className={cn('', className)} ref={ref} {...props} />\n)\n\nDisplayFieldContent.displayName = 'DisplayFieldContent'\n\n/**\n * DisplayFieldSkeleton - Loading placeholder with animated skeleton\n */\nconst DisplayFieldSkeleton = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n 'relative flex h-20 w-full flex-col gap-y-2 rounded-2xl bg-slate-a3 p-4 opacity-80',\n className\n )}\n ref={ref}\n {...props}\n >\n <div className=\"h-5 w-1/2 max-w-52 animate-pulse rounded-md bg-slate-a5\" />\n <div className=\"h-5 w-3/4 max-w-72 animate-pulse rounded-md bg-slate-a5\" />\n </div>\n )\n)\n\nDisplayFieldSkeleton.displayName = 'DisplayFieldSkeleton'\n\nexport {\n DisplayField,\n DisplayFieldLabel,\n DisplayFieldValue,\n DisplayFieldContent,\n DisplayFieldSkeleton,\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/cn.ts","../src/components/accordion/accordion.tsx","../src/components/badge/badge.tsx","../src/components/button/button.tsx","../src/components/callout/callout.tsx","../src/components/card/card.tsx","../src/components/checkbox/checkbox.tsx","../src/components/dialog/dialog.tsx","../src/components/display-field/display-field.tsx","../src/components/drawer/drawer.tsx","../src/components/energy-flow/energy-flow.tsx","../src/components/input/input.tsx","../src/components/label/label.tsx","../src/components/line-chart/line-chart.tsx","../src/components/popover/popover.tsx","../src/components/progress/progress.tsx","../src/components/scroll-area/scroll-area.tsx","../src/components/select/select.tsx","../src/components/separator/separator.tsx","../src/components/sheet/sheet.tsx","../src/components/slider/slider.tsx","../src/components/switch/switch.tsx","../src/components/tabs/tabs.tsx"],"names":["twMerge","clsx","jsx","AccordionPrimitive","React","jsxs","React2","cva","React3","Slot","React4","React5","CheckboxPrimitive","DialogPrimitive","React6","Fragment","React7","DrawerPrimitive","React8","Icon","useMemo","React9","React10","curveMonotoneX","curveStep","curveStepAfter","curveStepBefore","curveLinear","bisector","useTooltip","scaleTime","extent","scaleLinear","useCallback","event","localPoint","Group","LinePath","Tooltip","PopoverPrimitive","React11","React12","React13","ScrollAreaPrimitive","SelectPrimitive","React14","Separator","React15","SheetPrimitive","React16","React17","SliderPrimitive","CheckIcon","React18","SwitchPrimitives","TabsPrimitive","React19"],"mappings":"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","file":"index.cjs","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","import * as AccordionPrimitive from '@radix-ui/react-accordion'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst ChevronDown = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n fill=\"none\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M8 7.19992L4.93333 10.2666L4 9.33325L8 5.33325L12 9.33325L11.0667 10.2666L8 7.19992Z\"\n fill=\"currentColor\"\n fillOpacity=\"0.934\"\n />\n </svg>\n)\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Item\n className={cn('border-b border-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n className={cn(\n 'flex flex-1 items-center justify-between rounded-md py-4 font-medium underline-offset-4 transition-all hover:underline focus-visible:ring [&[data-state=open]>svg]:rotate-180',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n <ChevronDown\n className=\"h-4 w-4 shrink-0 transition-transform duration-200\"\n role=\"presentation\"\n />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\n\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <AccordionPrimitive.Content\n className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n ref={ref}\n {...props}\n >\n <div className={cn(className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\ninterface BadgeProps extends React.HTMLAttributes<HTMLSpanElement> {\n children?: React.ReactNode\n}\n\nconst Badge = React.forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, children, ...props }, ref) => (\n <span\n className={cn(\n 'inline-flex h-5 min-w-5 items-center justify-center rounded-md bg-base-gray-soft px-1.5 text-center text-xs font-normal tabular-nums text-gray',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </span>\n )\n)\n\nBadge.displayName = 'Badge'\n\nexport { Badge }\nexport type { BadgeProps }\n","import { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst buttonVariants = cva(\n `inline-flex items-center justify-center gap-2 whitespace-nowrap cursor-pointer text-base font-medium transition-colors focus-visible:outline-hidden focus-visible:ring focus-visible:ring-offset-2 disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:size-6 [&_svg]:shrink-0`,\n {\n variants: {\n variant: {\n primary:\n 'bg-spark-10 text-accent-contrast focus-visible:bg-spark-9 disabled:bg-spark-a3 disabled:text-spark-a7 hover:bg-spark-9',\n secondary:\n 'bg-spark-a3 text-spark-a12 focus-visible:bg-spark-a4 disabled:bg-slate-a3 disabled:text-spark-a7 hover:bg-spark-a4',\n tertiary:\n 'bg-transparent text-spark-a11 focus-visible:bg-slate-a3 disabled:bg-transparent disabled:text-spark-a7 hover:bg-slate-a3',\n bare: 'rounded-none! text-gray outline-hidden!',\n icon: 'rounded-md text-spark-a11 focus-visible:bg-slate-a3 hover:bg-slate-a3',\n },\n shape: {\n default: 'rounded-[max(var(--spark-rounded-md),var(--spark-rounded-full))]',\n },\n size: {\n small: 'min-w-9 px-3 max-sm:h-10 md:h-9',\n default: 'h-11 min-w-10 px-3 max-sm:h-12',\n medium: 'h-12 min-w-12 px-4',\n },\n },\n defaultVariants: {\n shape: 'default',\n variant: 'primary',\n size: 'default',\n },\n }\n)\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\n asChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp: React.ElementType = asChild ? Slot : 'button'\n\n return (\n <Comp className={cn(buttonVariants({ variant, size, className }))} ref={ref} {...props} />\n )\n }\n) as React.FC<ButtonProps & { ref?: React.Ref<HTMLButtonElement> }>\n\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst InfoIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n fill=\"none\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M11 17H13V11H11V17ZM12 9C12.2833 9 12.5208 8.90417 12.7125 8.7125C12.9042 8.52083 13 8.28333 13 8C13 7.71667 12.9042 7.47917 12.7125 7.2875C12.5208 7.09583 12.2833 7 12 7C11.7167 7 11.4792 7.09583 11.2875 7.2875C11.0958 7.47917 11 7.71667 11 8C11 8.28333 11.0958 8.52083 11.2875 8.7125C11.4792 8.90417 11.7167 9 12 9ZM12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst PendingIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n fill=\"none\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M12 22C10.6167 22 9.31667 21.7375 8.1 21.2125C6.88333 20.6875 5.825 19.975 4.925 19.075C4.025 18.175 3.3125 17.1167 2.7875 15.9C2.2625 14.6833 2 13.3833 2 12C2 10.6167 2.2625 9.31667 2.7875 8.1C3.3125 6.88333 4.025 5.825 4.925 4.925C5.825 4.025 6.88333 3.3125 8.1 2.7875C9.31667 2.2625 10.6167 2 12 2C13.3833 2 14.6833 2.2625 15.9 2.7875C17.1167 3.3125 18.175 4.025 19.075 4.925C19.975 5.825 20.6875 6.88333 21.2125 8.1C21.7375 9.31667 22 10.6167 22 12C22 13.3833 21.7375 14.6833 21.2125 15.9C20.6875 17.1167 19.975 18.175 19.075 19.075C18.175 19.975 17.1167 20.6875 15.9 21.2125C14.6833 21.7375 13.3833 22 12 22ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.875 17.675 6.325C16.125 4.775 14.2333 4 12 4C9.76667 4 7.875 4.775 6.325 6.325C4.775 7.875 4 9.76667 4 12C4 14.2333 4.775 16.125 6.325 17.675C7.875 19.225 9.76667 20 12 20ZM12.5 7V12.25L16.5 14.65L15.75 15.85L11 13V7H12.5Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst WarningIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n fill=\"none\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M1 21L12 2L23 21H1ZM4.45 19H19.55L12 6L4.45 19ZM12 18C12.2833 18 12.5208 17.9042 12.7125 17.7125C12.9042 17.5208 13 17.2833 13 17C13 16.7167 12.9042 16.4792 12.7125 16.2875C12.5208 16.0958 12.2833 16 12 16C11.7167 16 11.4792 16.0958 11.2875 16.2875C11.0958 16.4792 11 16.7167 11 17C11 17.2833 11.0958 17.5208 11.2875 17.7125C11.4792 17.9042 11.7167 18 12 18ZM11 15H13V10H11V15Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\ntype CalloutType = 'error' | 'info' | 'pending' | 'success' | 'warning'\n\ninterface CalloutProps {\n text: string\n type?: CalloutType\n title?: string\n role?: 'alert' | 'status'\n className?: string\n}\n\nconst getIcon = (type: CalloutType) => {\n switch (type) {\n case 'pending':\n return <PendingIcon className=\"shrink-0 text-info-light\" role=\"presentation\" />\n case 'success':\n return <InfoIcon className=\"shrink-0 text-info-light\" role=\"presentation\" />\n case 'warning':\n return <WarningIcon className=\"shrink-0 text-orange-11\" role=\"presentation\" />\n case 'info':\n return <InfoIcon className=\"shrink-0 text-info-light\" role=\"presentation\" />\n default:\n return null\n }\n}\n\nconst getContainerClasses = (type: CalloutType) => {\n const baseClasses = 'flex items-center gap-3 rounded-2xl p-4 text-sm transition-colors duration-500'\n\n switch (type) {\n case 'error':\n return `${baseClasses} bg-base-error-soft text-error`\n case 'pending':\n case 'success':\n return `${baseClasses} bg-base-info-soft text-info`\n case 'warning':\n return `${baseClasses} bg-orange-a3 text-orange-12`\n case 'info':\n default:\n return `${baseClasses} bg-base-info-soft text-info`\n }\n}\n\nconst Callout = ({ text, type = 'info', title, role, className }: CalloutProps) => {\n const icon = getIcon(type)\n\n return (\n <div className={cn(getContainerClasses(type), className)} role={role}>\n {icon}\n <div className=\"flex flex-col gap-1\">\n {title && <span className=\"text-base font-bold\">{title}</span>}\n {text}\n </div>\n </div>\n )\n}\n\nCallout.displayName = 'Callout'\n\nexport { Callout }\nexport type { CalloutProps, CalloutType }\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n 'relative flex w-full flex-col gap-1 rounded-2xl bg-base-gray-soft p-4',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div className={cn('flex items-center gap-4', className)} ref={ref} {...props} />\n )\n)\n\nCardHeader.displayName = 'CardHeader'\n\nconst CardIcon = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn('flex shrink-0 items-center justify-center text-accent-active', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nCardIcon.displayName = 'CardIcon'\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, React.HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n className={cn('text-base font-medium leading-5 text-gray', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => (\n <p className={cn('text-sm leading-5 text-gray-light', className)} ref={ref} {...props} />\n))\n\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div className={cn('', className)} ref={ref} {...props} />\n)\n\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn('flex items-center text-gray justify-end gap-2 pt-2', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nCardFooter.displayName = 'CardFooter'\n\nconst CardSkeleton = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n 'relative flex w-full items-center gap-4 rounded-2xl bg-spark-a3 p-4 opacity-80',\n className\n )}\n ref={ref}\n {...props}\n >\n <div className=\"size-10 shrink-0 animate-pulse rounded-full bg-base-gray-soft\" />\n <div className=\"flex flex-1 flex-col gap-y-2\">\n <div className=\"h-5 w-1/3 max-w-32 animate-pulse rounded-md bg-base-gray-soft\" />\n <div className=\"h-4 w-1/2 max-w-48 animate-pulse rounded-md bg-base-gray-soft\" />\n </div>\n </div>\n )\n)\n\nCardSkeleton.displayName = 'CardSkeleton'\n\nexport {\n Card,\n CardHeader,\n CardIcon,\n CardTitle,\n CardDescription,\n CardContent,\n CardFooter,\n CardSkeleton,\n}\n","import * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n fill=\"none\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n width=\"12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M4.77498 7.575L9.01248 3.3375C9.11248 3.2375 9.22915 3.1875 9.36248 3.1875C9.49582 3.1875 9.61248 3.2375 9.71248 3.3375C9.81248 3.4375 9.86248 3.55625 9.86248 3.69375C9.86248 3.83125 9.81248 3.95 9.71248 4.05L5.12498 8.65C5.02498 8.75 4.90832 8.8 4.77498 8.8C4.64165 8.8 4.52498 8.75 4.42498 8.65L2.27498 6.5C2.17498 6.4 2.12706 6.28125 2.13123 6.14375C2.1354 6.00625 2.18748 5.8875 2.28748 5.7875C2.38748 5.6875 2.50623 5.6375 2.64373 5.6375C2.78123 5.6375 2.89998 5.6875 2.99998 5.7875L4.77498 7.575Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\ntype CheckboxProps = React.ComponentProps<typeof CheckboxPrimitive.Root> & {\n size?: 'default' | 'large'\n bordered?: boolean\n}\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\n>(({ className, size = 'default', bordered = false, ...props }, ref) => (\n <CheckboxPrimitive.Root\n className={cn(\n 'peer inline-flex shrink-0 cursor-pointer items-center justify-center rounded-sm transition-colors focus-visible:outline-hidden focus-visible:ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-base-accent-solid data-[state=unchecked]:bg-base-accent-soft',\n size === 'default' && 'h-4 w-4',\n size === 'large' && 'h-6 w-6',\n bordered ? 'border-2 border-accent-ui' : 'border-2 border-transparent',\n className\n )}\n ref={ref}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"inline-flex items-center justify-center text-accent-contrast transition-none\">\n <CheckIcon className={cn(size === 'large' ? 'size-4' : 'size-3.5')} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\n\nCheckbox.displayName = 'Checkbox'\n\nexport { Checkbox }\nexport type { CheckboxProps }\n","import * as DialogPrimitive from '@radix-ui/react-dialog'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black-a6 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 dark:bg-black-a8',\n className\n )}\n data-overlay=\"true\"\n ref={ref}\n {...props}\n />\n))\n\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst onInteractOutsideHandler = (event: CustomEvent) => {\n const target = event.target as HTMLElement\n const isOverlay = target.dataset.overlay === 'true'\n\n // Our dialogs contain interactive elements that are mounted outside of the drawer\n // Browser extensions like password managers or grammar checkers are also mounted outside\n // We still dismiss on a click/tap outside\n if (!isOverlay) event.preventDefault()\n}\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <>\n <DialogOverlay />\n <DialogPrimitive.Content\n className={cn(\n 'fixed left-[50%] top-[50%] z-50 grid w-[90%] min-w-80 max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 rounded-2xl bg-slate-2 p-6 text-gray shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-50% data-[state=closed]:slide-out-to-top-48% data-[state=open]:slide-in-from-top-48% dark:bg-gray-2 sm:w-1/2',\n className\n )}\n onInteractOutside={onInteractOutsideHandler}\n ref={ref}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </>\n))\n\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('', className)} {...props} />\n)\n\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\n\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n className={cn('text-lg font-bold text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n className={cn('text-md text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\n/**\n * DisplayField - Root container for displaying read-only label-value pairs\n *\n * @example\n * <DisplayField>\n * <DisplayFieldLabel>Email</DisplayFieldLabel>\n * <DisplayFieldValue>john@example.com</DisplayFieldValue>\n * </DisplayField>\n */\nconst DisplayField = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n 'relative flex min-h-12 w-full justify-between gap-2 rounded-2xl bg-base-gray-soft p-4',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nDisplayField.displayName = 'DisplayField'\n\n/**\n * DisplayFieldLabel - Label/title for the field (maps to \"Title\" pattern)\n */\nconst DisplayFieldLabel = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, ...props }, ref) => (\n <span\n className={cn('text-sm font-medium leading-5 text-gray-light wrap-break-word', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nDisplayFieldLabel.displayName = 'DisplayFieldLabel'\n\n/**\n * DisplayFieldValue - Primary value display (maps to \"Description\" pattern)\n */\nconst DisplayFieldValue = React.forwardRef<HTMLSpanElement, React.HTMLAttributes<HTMLSpanElement>>(\n ({ className, ...props }, ref) => (\n <span\n className={cn(\n 'min-h-5 w-full whitespace-pre-wrap text-base tabular-nums leading-5 text-gray',\n className\n )}\n ref={ref}\n {...props}\n />\n )\n)\n\nDisplayFieldValue.displayName = 'DisplayFieldValue'\n\n/**\n * DisplayFieldContent - Container for custom content within the field\n */\nconst DisplayFieldContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => <div className={cn('', className)} ref={ref} {...props} />\n)\n\nDisplayFieldContent.displayName = 'DisplayFieldContent'\n\n/**\n * DisplayFieldSkeleton - Loading placeholder with animated skeleton\n */\nconst DisplayFieldSkeleton = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n className={cn(\n 'relative flex h-20 w-full flex-col gap-y-2 rounded-2xl bg-base-gray-soft p-4 opacity-80',\n className\n )}\n ref={ref}\n {...props}\n >\n <div className=\"h-5 w-1/2 max-w-52 animate-pulse rounded-md bg-base-gray-soft\" />\n <div className=\"h-5 w-3/4 max-w-72 animate-pulse rounded-md bg-base-gray-soft\" />\n </div>\n )\n)\n\nDisplayFieldSkeleton.displayName = 'DisplayFieldSkeleton'\n\nexport {\n DisplayField,\n DisplayFieldLabel,\n DisplayFieldValue,\n DisplayFieldContent,\n DisplayFieldSkeleton,\n}\n","import * as React from 'react'\nimport { Drawer as DrawerPrimitive } from 'vaul'\n\nimport { cn } from '../../utils/cn'\n\nconst Drawer = ({\n shouldScaleBackground = true,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) => (\n <DrawerPrimitive.Root shouldScaleBackground={shouldScaleBackground} {...props} />\n)\n\nDrawer.displayName = 'Drawer'\n\nconst DrawerTrigger = DrawerPrimitive.Trigger\n\nconst DrawerPortal = DrawerPrimitive.Portal\n\nconst DrawerClose = DrawerPrimitive.Close\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n className={cn('fixed inset-0 z-50 bg-black-a6 dark:bg-black-a8', className)}\n data-overlay=\"true\"\n ref={ref}\n {...props}\n />\n))\n\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName\n\nconst DrawerPill = ({ className }: { className?: string }) => (\n <div\n className={cn(\n 'mx-auto mt-2.5 h-1.5 w-16 shrink-0 rounded-[24px] bg-base-gray-soft',\n className\n )}\n />\n)\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content> & {\n pillClassName?: string\n }\n>(({ className, pillClassName, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n className={cn(\n 'fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col gap-4 rounded-t-2xl bg-slate-2 text-gray dark:bg-gray-2',\n className\n )}\n ref={ref}\n {...props}\n >\n <DrawerPill className={pillClassName} />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n))\n\nDrawerContent.displayName = 'DrawerContent'\n\nconst DrawerHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col gap-1 px-6 py-3', className)} {...props} />\n)\n\nDrawerHeader.displayName = 'DrawerHeader'\n\nconst DrawerFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('mt-auto flex flex-col gap-2 text-gray', className)} {...props} />\n)\n\nDrawerFooter.displayName = 'DrawerFooter'\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n className={cn('text-lg font-bold text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n className={cn('text-sm text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n}\n","import * as React from 'react'\nimport { useMemo } from 'react'\n\nimport { cn } from '../../utils/cn'\n\n/* -------------------------------------------------------------------------- */\n/* Types */\n/* -------------------------------------------------------------------------- */\n\nexport type EnergyNodeType = 'solar' | 'battery' | 'grid' | 'home' | 'ev' | 'heat-pump'\n\nexport interface EnergyFlowNode {\n type: EnergyNodeType\n /** Current power in kW */\n power: number\n /** Override the default label */\n label?: string\n /** Battery charge percentage 0–100 (battery nodes only) */\n batteryLevel?: number\n}\n\nexport interface EnergyFlowConnection {\n from: EnergyNodeType\n to: EnergyNodeType\n /** Power being transferred in kW */\n power: number\n}\n\nexport interface EnergyFlowChartProps {\n nodes: EnergyFlowNode[]\n flows?: EnergyFlowConnection[]\n className?: string\n formatPower?: (power: number) => string\n}\n\n/* -------------------------------------------------------------------------- */\n/* Constants */\n/* -------------------------------------------------------------------------- */\n\nconst POSITIONS: Record<EnergyNodeType, { x: number; y: number }> = {\n solar: { x: 120, y: 70 },\n grid: { x: 360, y: 70 },\n home: { x: 240, y: 190 },\n battery: { x: 100, y: 330 },\n 'heat-pump': { x: 240, y: 355 },\n ev: { x: 380, y: 330 },\n}\n\nconst NODE_RADIUS = 32\nconst HOME_RADIUS = 38\n\ninterface NodeStyle {\n label: string\n bg: string\n icon: string\n flow: string\n}\n\nconst STYLES: Record<EnergyNodeType, NodeStyle> = {\n solar: { label: 'Solar', bg: 'var(--orange-3)', icon: 'var(--orange-11)', flow: 'var(--orange-9)' },\n battery: { label: 'Battery', bg: 'var(--green-3)', icon: 'var(--green-11)', flow: 'var(--green-9)' },\n grid: { label: 'Grid', bg: 'var(--mauve-3)', icon: 'var(--mauve-11)', flow: 'var(--mauve-9)' },\n home: { label: 'Home', bg: 'var(--slate-3)', icon: 'var(--slate-11)', flow: 'var(--slate-9)' },\n ev: { label: 'EV Charger', bg: 'var(--blue-3)', icon: 'var(--blue-11)', flow: 'var(--blue-9)' },\n 'heat-pump': { label: 'Heat Pump', bg: 'var(--red-3)', icon: 'var(--red-11)', flow: 'var(--red-9)' },\n}\n\nconst defaultFormatPower = (power: number) => {\n const abs = Math.abs(power)\n if (abs >= 1) return `${abs.toFixed(1)} kW`\n return `${(abs * 1000).toFixed(0)} W`\n}\n\n/* -------------------------------------------------------------------------- */\n/* Helpers */\n/* -------------------------------------------------------------------------- */\n\nfunction getFlowPath(from: { x: number; y: number }, to: { x: number; y: number }) {\n const mx = (from.x + to.x) / 2\n return `M ${from.x} ${from.y} C ${mx} ${from.y}, ${mx} ${to.y}, ${to.x} ${to.y}`\n}\n\nfunction getAnimDuration(power: number) {\n const clamped = Math.max(0.1, Math.min(10, Math.abs(power)))\n return Math.max(1, 4 - clamped * 0.3)\n}\n\n/* -------------------------------------------------------------------------- */\n/* Node Icons */\n/* -------------------------------------------------------------------------- */\n\nfunction SolarIcon({ color }: { color: string }) {\n return (\n <g style={{ color }}>\n <rect fill=\"none\" height=\"18\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.8\" width=\"18\" x=\"-9\" y=\"-9\" />\n <line stroke=\"currentColor\" strokeWidth=\"1\" x1=\"-9\" x2=\"9\" y1=\"-3\" y2=\"-3\" />\n <line stroke=\"currentColor\" strokeWidth=\"1\" x1=\"-9\" x2=\"9\" y1=\"3\" y2=\"3\" />\n <line stroke=\"currentColor\" strokeWidth=\"1\" x1=\"-3\" x2=\"-3\" y1=\"-9\" y2=\"9\" />\n <line stroke=\"currentColor\" strokeWidth=\"1\" x1=\"3\" x2=\"3\" y1=\"-9\" y2=\"9\" />\n </g>\n )\n}\n\nfunction BatteryIcon({ color, level = 50 }: { color: string; level?: number }) {\n const h = Math.max(1, (Math.min(100, level) / 100) * 16)\n return (\n <g style={{ color }}>\n <rect fill=\"currentColor\" height=\"3\" rx=\"1\" width=\"6\" x=\"-3\" y=\"-13\" />\n <rect fill=\"none\" height=\"20\" rx=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.8\" width=\"14\" x=\"-7\" y=\"-10\" />\n <rect fill=\"currentColor\" height={h} opacity={0.5} rx=\"1\" width=\"9\" x=\"-4.5\" y={10 - h} />\n </g>\n )\n}\n\nfunction GridIcon({ color }: { color: string }) {\n return (\n <g style={{ color }}>\n <path d=\"M0 -12 L0 12 M-9 -5 L9 -5 M-7 1 L7 1 M-5 7 L5 7\" fill=\"none\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeWidth=\"2\" />\n </g>\n )\n}\n\nfunction HomeIcon({ color }: { color: string }) {\n return (\n <g style={{ color }}>\n <path d=\"M-12 2 L0 -11 L12 2\" fill=\"none\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"2.2\" />\n <rect fill=\"none\" height=\"12\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.8\" width=\"18\" x=\"-9\" y=\"2\" />\n <rect fill=\"currentColor\" height=\"7\" opacity={0.35} rx=\"1\" width=\"6\" x=\"-3\" y=\"7\" />\n </g>\n )\n}\n\nfunction EvIcon({ color }: { color: string }) {\n return (\n <g style={{ color }}>\n <path d=\"M-11 3 L-9 -3 L-3 -8 L7 -8 L11 -1 L11 3 Z\" fill=\"none\" stroke=\"currentColor\" strokeLinejoin=\"round\" strokeWidth=\"1.8\" />\n <circle cx=\"-5\" cy=\"5\" fill=\"none\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <circle cx=\"7\" cy=\"5\" fill=\"none\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M1 -5 L-1 0 L2 0 L0 4\" fill=\"none\" stroke=\"currentColor\" strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth=\"1.2\" />\n </g>\n )\n}\n\nfunction HeatPumpIcon({ color }: { color: string }) {\n return (\n <g style={{ color }}>\n <rect fill=\"none\" height=\"16\" rx=\"3\" stroke=\"currentColor\" strokeWidth=\"1.8\" width=\"22\" x=\"-11\" y=\"-8\" />\n <circle cx=\"0\" cy=\"0\" fill=\"none\" r=\"5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M0 -4 C2 -2 2 2 0 4 C-2 2 -2 -2 0 -4\" fill=\"currentColor\" opacity={0.3} />\n <path d=\"M-4 0 C-2 -2 2 -2 4 0 C2 2 -2 2 -4 0\" fill=\"currentColor\" opacity={0.3} />\n </g>\n )\n}\n\nconst NODE_ICONS: Record<EnergyNodeType, React.FC<{ color: string; level?: number }>> = {\n solar: SolarIcon,\n battery: BatteryIcon,\n grid: GridIcon,\n home: HomeIcon,\n ev: EvIcon,\n 'heat-pump': HeatPumpIcon,\n}\n\n/* -------------------------------------------------------------------------- */\n/* Flow Connection */\n/* -------------------------------------------------------------------------- */\n\nfunction FlowConnection({\n from,\n to,\n color,\n power,\n}: {\n from: { x: number; y: number }\n to: { x: number; y: number }\n color: string\n power: number\n}) {\n const d = getFlowPath(from, to)\n const dur = getAnimDuration(power)\n const dots = 3\n\n return (\n <g>\n <path d={d} fill=\"none\" opacity={0.15} stroke={color} strokeWidth={2} />\n {Array.from({ length: dots }, (_, i) => (\n <circle fill={color} key={i} opacity={0.85} r={3.5}>\n <animateMotion begin={`${(i * dur) / dots}s`} dur={`${dur}s`} path={d} repeatCount=\"indefinite\" />\n </circle>\n ))}\n </g>\n )\n}\n\n/* -------------------------------------------------------------------------- */\n/* Flow Node */\n/* -------------------------------------------------------------------------- */\n\nfunction FlowNode({\n node,\n formatPower,\n}: {\n node: EnergyFlowNode\n formatPower: (power: number) => string\n}) {\n const pos = POSITIONS[node.type]\n const style = STYLES[node.type]\n const radius = node.type === 'home' ? HOME_RADIUS : NODE_RADIUS\n const Icon = NODE_ICONS[node.type]\n const label = node.label ?? style.label\n const inactive = node.power === 0\n\n return (\n <g transform={`translate(${pos.x}, ${pos.y})`}>\n <circle\n fill={style.bg}\n opacity={inactive ? 0.5 : 1}\n r={radius}\n stroke={style.flow}\n strokeWidth={2}\n />\n <g transform=\"translate(0, -2)\">\n <Icon color={style.icon} level={node.batteryLevel} />\n </g>\n <text\n fill={style.icon}\n fontSize=\"11\"\n fontWeight=\"600\"\n textAnchor=\"middle\"\n y={radius + 16}\n >\n {label}\n </text>\n <text\n fill={style.icon}\n fontSize=\"12\"\n fontWeight=\"500\"\n opacity={0.75}\n textAnchor=\"middle\"\n y={radius + 30}\n >\n {formatPower(node.power)}\n </text>\n {node.type === 'battery' && node.batteryLevel != null && (\n <>\n <rect\n fill={style.flow}\n height=\"16\"\n rx=\"8\"\n width=\"24\"\n x={radius - 24}\n y={-radius + 2}\n />\n <text\n fill=\"white\"\n fontSize=\"9\"\n fontWeight=\"700\"\n textAnchor=\"middle\"\n x={radius - 12}\n y={-radius + 13}\n >\n {Math.round(node.batteryLevel)}%\n </text>\n </>\n )}\n </g>\n )\n}\n\n/* -------------------------------------------------------------------------- */\n/* Main Component */\n/* -------------------------------------------------------------------------- */\n\nfunction EnergyFlowChart({\n nodes,\n flows = [],\n className,\n formatPower = defaultFormatPower,\n}: EnergyFlowChartProps) {\n const nodeMap = useMemo(() => new Map(nodes.map((n) => [n.type, n])), [nodes])\n\n const validFlows = useMemo(\n () => flows.filter((f) => nodeMap.has(f.from) && nodeMap.has(f.to) && f.power > 0),\n [flows, nodeMap]\n )\n\n return (\n <div className={cn('w-full', className)}>\n <svg\n aria-label=\"Energy flow diagram\"\n className=\"block h-auto w-full\"\n role=\"img\"\n viewBox=\"0 0 480 420\"\n >\n {validFlows.map((f, i) => (\n <FlowConnection\n color={STYLES[f.from].flow}\n from={POSITIONS[f.from]}\n key={`${f.from}-${f.to}-${i}`}\n power={f.power}\n to={POSITIONS[f.to]}\n />\n ))}\n {nodes.map((node) => (\n <FlowNode formatPower={formatPower} key={node.type} node={node} />\n ))}\n </svg>\n </div>\n )\n}\n\nEnergyFlowChart.displayName = 'EnergyFlowChart'\n\nexport { EnergyFlowChart }\n","import * as React from 'react'\nimport { useMemo } from 'react'\n\nimport { cn } from '../../utils/cn'\n\nlet hintIdCounter = 0\n\ninterface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n containerClassName?: string\n label?: string\n hint?: React.ReactNode\n icon?: React.ReactNode\n}\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ containerClassName, label, value, className, onChange, readOnly, hint, icon, ...props }, ref) => {\n const hintId = useMemo(() => {\n if (!hint) return undefined\n\n return `input-hint-${++hintIdCounter}`\n }, [hint])\n\n const customClassName = {\n 'border-transparent': !label?.length,\n 'border-input-active':\n props['aria-invalid'] !== true &&\n (typeof value === 'string'\n ? value.length > 0\n : typeof value === 'number'\n ? true\n : false),\n 'text-error! !focus-visible:border-input-invalid border-input-invalid!':\n props['aria-invalid'] === true,\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full flex-col gap-y-1 rounded-2xl bg-input-base px-4 py-3',\n containerClassName\n )}\n >\n {label && (\n <label className=\"text-sm font-normal leading-5 text-gray-light\" htmlFor={label}>\n {label}\n </label>\n )}\n\n <div className=\"relative flex items-center justify-between gap-2\">\n <input\n aria-describedby={hintId}\n className={cn(\n 'flex h-10 w-full rounded-none border-b-2 border-input bg-transparent py-2 text-base leading-5 text-gray outline-hidden transition-colors duration-100 placeholder:text-gray-disabled focus:border-input-active read-only:focus:border-transparent focus-visible:border-input-active read-only:focus-visible:border-transparent disabled:cursor-not-allowed disabled:border-input-disabled disabled:text-gray-disabled [&:user-invalid]:border-input-invalid [&:user-invalid]:text-error [&:user-invalid]:focus-visible:border-input-invalid [&:user-valid]:border-input-active',\n customClassName,\n className\n )}\n id={label}\n onChange={onChange}\n readOnly={readOnly}\n ref={ref}\n value={value}\n {...props}\n />\n {icon ? icon : null}\n </div>\n {hint ? <div id={hintId}>{hint}</div> : null}\n </div>\n )\n }\n)\n\nInput.displayName = 'Input'\n\nexport { Input }\nexport type { InputProps }\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\ninterface LabelProps extends React.LabelHTMLAttributes<HTMLLabelElement> {}\n\nconst Label = React.forwardRef<HTMLLabelElement, LabelProps>(\n ({ className, ...props }, ref) => (\n <label\n className={cn('text-base font-normal leading-5 text-gray-light', className)}\n ref={ref}\n {...props}\n />\n )\n)\n\nLabel.displayName = 'Label'\n\nexport { Label }\nexport type { LabelProps }\n","import {\n curveLinear,\n curveMonotoneX,\n curveStep,\n curveStepAfter,\n curveStepBefore,\n} from '@visx/curve'\nimport { localPoint } from '@visx/event'\nimport { Group } from '@visx/group'\nimport { scaleLinear, scaleTime } from '@visx/scale'\nimport { LinePath } from '@visx/shape'\nimport { Tooltip, useTooltip } from '@visx/tooltip'\nimport { bisector, extent } from '@visx/vendor/d3-array'\nimport * as React from 'react'\nimport { useCallback, useMemo } from 'react'\n\nimport { cn } from '../../utils/cn'\n\nexport interface LineChartDatum {\n date: Date\n value: number\n}\n\nexport type LineChartCurve = 'monotone' | 'step' | 'step-after' | 'step-before' | 'linear'\n\nexport interface LineChartSeries {\n id: string\n data: LineChartDatum[]\n className?: string\n /** Curve interpolation type. Default: inherits from LineChartProps.curve */\n curve?: LineChartCurve\n /** Render as a dashed line */\n dashed?: boolean\n /** Custom dash pattern (e.g. \"8,4\" or \"4,2,1,2\"). Only applies when dashed is true. */\n dashPattern?: string\n}\n\nexport interface LineChartProps {\n series: LineChartSeries[]\n width: number\n height: number\n margin?: { top: number; right: number; bottom: number; left: number }\n /** Default curve for all series. Default: 'monotone' */\n curve?: LineChartCurve\n showGrid?: boolean\n showTooltip?: boolean\n className?: string\n xTickCount?: number\n yTickCount?: number\n formatDate?: (date: Date) => string\n formatValue?: (value: number) => string\n}\n\nconst DEFAULT_MARGIN = { top: 16, right: 16, bottom: 40, left: 48 }\n\nconst CURVE_MAP = {\n monotone: curveMonotoneX,\n step: curveStep,\n 'step-after': curveStepAfter,\n 'step-before': curveStepBefore,\n linear: curveLinear,\n} as const\n\nconst resolveCurve = (type: LineChartCurve) => CURVE_MAP[type]\n\nconst bisectDate = bisector<LineChartDatum, Date>((d) => d.date).left\n\nconst defaultFormatDate = (date: Date) =>\n date.toLocaleDateString(undefined, { month: 'short', day: 'numeric' })\n\nconst defaultFormatValue = (value: number) => value.toLocaleString()\n\nconst LINE_COLORS = [\n 'stroke-spark-9',\n 'stroke-green-9',\n 'stroke-blue-9',\n 'stroke-orange-9',\n 'stroke-red-9',\n]\n\nconst DOT_COLORS = ['fill-spark-9', 'fill-green-9', 'fill-blue-9', 'fill-orange-9', 'fill-red-9']\n\nconst TEXT_COLORS = [\n 'text-spark-a11',\n 'text-success-light',\n 'text-info-light',\n 'text-warning-light',\n 'text-error-light',\n]\n\nfunction LineChart({\n series,\n width,\n height,\n margin = DEFAULT_MARGIN,\n curve: defaultCurve = 'monotone',\n showGrid = true,\n showTooltip: enableTooltip = true,\n className,\n xTickCount = 5,\n yTickCount = 4,\n formatDate = defaultFormatDate,\n formatValue = defaultFormatValue,\n}: LineChartProps) {\n const { showTooltip, hideTooltip, tooltipData, tooltipLeft, tooltipTop, tooltipOpen } =\n useTooltip<{ datum: LineChartDatum; seriesIndex: number }>()\n\n const innerWidth = Math.max(0, width - margin.left - margin.right)\n const innerHeight = Math.max(0, height - margin.top - margin.bottom)\n\n const allData = useMemo(() => series.flatMap((s) => s.data), [series])\n\n const xScale = useMemo(\n () =>\n scaleTime({\n range: [0, innerWidth],\n domain: extent(allData, (d) => d.date) as [Date, Date],\n }),\n [allData, innerWidth]\n )\n\n const yScale = useMemo(\n () =>\n scaleLinear({\n range: [innerHeight, 0],\n domain: [0, Math.max(...allData.map((d) => d.value)) * 1.1],\n nice: true,\n }),\n [allData, innerHeight]\n )\n\n const xTicks = xScale.ticks(xTickCount)\n const yTicks = yScale.ticks(yTickCount)\n\n const handleTooltip = useCallback(\n (event: React.TouchEvent<SVGRectElement> | React.MouseEvent<SVGRectElement>) => {\n if (!enableTooltip) return\n\n const point = localPoint(event)\n if (!point) return\n\n const x0 = xScale.invert(point.x - margin.left)\n\n for (let i = 0; i < series.length; i++) {\n const s = series[i]\n if (!s) continue\n const index = bisectDate(s.data, x0, 1)\n const d0 = s.data[index - 1]\n const d1 = s.data[index]\n\n if (!d0) continue\n\n const d =\n d1 && x0.valueOf() - d0.date.valueOf() > d1.date.valueOf() - x0.valueOf() ? d1 : d0\n\n showTooltip({\n tooltipData: { datum: d, seriesIndex: i },\n tooltipLeft: xScale(d.date) + margin.left,\n tooltipTop: yScale(d.value) + margin.top,\n })\n break\n }\n },\n [enableTooltip, margin, series, showTooltip, xScale, yScale]\n )\n\n if (width < 10 || height < 10) return null\n\n return (\n <div className={cn('relative', className)}>\n <svg className=\"block\" height={height} width={width}>\n <Group left={margin.left} top={margin.top}>\n {/* Grid lines */}\n {showGrid &&\n yTicks.map((tick) => (\n <line\n className=\"stroke-slate-a4\"\n key={`grid-y-${tick}`}\n strokeDasharray=\"4,4\"\n x1={0}\n x2={innerWidth}\n y1={yScale(tick)}\n y2={yScale(tick)}\n />\n ))}\n\n {/* X axis */}\n <line\n className=\"stroke-slate-a6\"\n x1={0}\n x2={innerWidth}\n y1={innerHeight}\n y2={innerHeight}\n />\n\n {/* X axis labels */}\n {xTicks.map((tick) => (\n <text\n className=\"fill-slate-a11 text-xs\"\n dy=\"1em\"\n key={`x-${tick.valueOf()}`}\n textAnchor=\"middle\"\n x={xScale(tick)}\n y={innerHeight + 8}\n >\n {formatDate(tick)}\n </text>\n ))}\n\n {/* Y axis labels */}\n {yTicks.map((tick) => (\n <text\n className=\"fill-slate-a11 text-xs\"\n dx=\"-0.5em\"\n dy=\"0.32em\"\n key={`y-${tick}`}\n textAnchor=\"end\"\n x={-4}\n y={yScale(tick)}\n >\n {formatValue(tick)}\n </text>\n ))}\n\n {/* Lines */}\n {series.map((s, i) => (\n <LinePath\n className={cn(LINE_COLORS[i % LINE_COLORS.length], s.className)}\n curve={resolveCurve(s.curve ?? defaultCurve)}\n data={s.data}\n fill=\"none\"\n key={s.id}\n strokeDasharray={s.dashed ? (s.dashPattern ?? '6,4') : undefined}\n strokeWidth={2}\n x={(d) => xScale(d.date)}\n y={(d) => yScale(d.value)}\n />\n ))}\n\n {/* Tooltip hover target */}\n {enableTooltip && (\n <rect\n fill=\"transparent\"\n height={innerHeight}\n onMouseLeave={hideTooltip}\n onMouseMove={handleTooltip}\n onTouchEnd={hideTooltip}\n onTouchMove={handleTooltip}\n width={innerWidth}\n x={0}\n y={0}\n />\n )}\n\n {/* Tooltip dot */}\n {tooltipOpen && tooltipData && (\n <>\n <line\n className=\"stroke-slate-a6\"\n pointerEvents=\"none\"\n strokeDasharray=\"4,4\"\n x1={xScale(tooltipData.datum.date)}\n x2={xScale(tooltipData.datum.date)}\n y1={0}\n y2={innerHeight}\n />\n <circle\n className={cn(DOT_COLORS[tooltipData.seriesIndex % DOT_COLORS.length])}\n cx={xScale(tooltipData.datum.date)}\n cy={yScale(tooltipData.datum.value)}\n pointerEvents=\"none\"\n r={4}\n stroke=\"white\"\n strokeWidth={2}\n />\n </>\n )}\n </Group>\n </svg>\n\n {tooltipOpen && !!tooltipData && (\n <Tooltip\n left={tooltipLeft}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n background: 'transparent',\n border: 'none',\n boxShadow: 'none',\n padding: 0,\n }}\n top={tooltipTop}\n >\n <div className=\"rounded-lg bg-slate-2 px-3 py-2 text-sm shadow-md dark:bg-gray-2\">\n <div className=\"text-xs text-gray-light\">{formatDate(tooltipData.datum.date)}</div>\n <div\n className={cn(\n 'font-medium',\n TEXT_COLORS[tooltipData.seriesIndex % TEXT_COLORS.length]\n )}\n >\n {formatValue(tooltipData.datum.value)}\n </div>\n </div>\n </Tooltip>\n )}\n </div>\n )\n}\n\nLineChart.displayName = 'LineChart'\n\nexport { LineChart }\n","import * as PopoverPrimitive from '@radix-ui/react-popover'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align={align}\n className={cn(\n 'z-50 w-72 rounded-xl border bg-slate-2 p-4 shadow-xs outline-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-(--radix-popover-content-transform-origin)',\n className\n )}\n ref={ref}\n sideOffset={sideOffset}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\n\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent }\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nexport interface ProgressProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Current value */\n value: number\n /** Maximum value. Default: 100 */\n max?: number\n /** Height variant */\n size?: 'sm' | 'default' | 'lg'\n}\n\nconst sizeClasses = {\n sm: 'h-1',\n default: 'h-2',\n lg: 'h-3',\n} as const\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, max = 100, size = 'default', ...props }, ref) => {\n const percentage = Math.min(100, Math.max(0, (value / max) * 100))\n\n return (\n <div\n aria-valuemax={max}\n aria-valuemin={0}\n aria-valuenow={value}\n className={cn(\n 'w-full overflow-hidden rounded-full bg-slate-a4',\n sizeClasses[size],\n className\n )}\n ref={ref}\n role=\"progressbar\"\n {...props}\n >\n <div\n className=\"h-full rounded-full bg-spark-9 transition-all duration-300\"\n style={{ width: `${percentage}%` }}\n />\n </div>\n )\n }\n)\n\nProgress.displayName = 'Progress'\n\nexport { Progress }\n","import * as ScrollAreaPrimitive from '@radix-ui/react-scroll-area'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\ntype ScrollAreaProps = React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root> & {\n direction?: 'vertical' | 'horizontal' | 'both'\n}\n\nconst ScrollArea = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n ScrollAreaProps\n>(({ className, children, direction = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n className={cn('relative overflow-hidden', className)}\n ref={ref}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"size-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n {direction !== 'horizontal' && <ScrollBar orientation=\"vertical\" />}\n {direction !== 'vertical' && <ScrollBar orientation=\"horizontal\" />}\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\n\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = 'vertical', ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n className={cn(\n 'flex touch-none select-none transition-colors',\n orientation === 'vertical' && 'h-full w-2.5 border-l border-l-transparent p-px',\n orientation === 'horizontal' &&\n 'h-2.5 flex-col border-t border-t-transparent p-px empty:hidden',\n className\n )}\n orientation={orientation}\n ref={ref}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-[24px] bg-gray-8\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\n\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n","import * as SelectPrimitive from '@radix-ui/react-select'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst ChevronDownIcon = (props: React.ComponentProps<'svg'>) => (\n <svg\n fill=\"none\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M12 14.975C11.8667 14.975 11.7417 14.9542 11.625 14.9125C11.5083 14.8708 11.4 14.8 11.3 14.7L6.7 10.1C6.51667 9.91667 6.425 9.68334 6.425 9.4C6.425 9.11667 6.51667 8.88334 6.7 8.7C6.88334 8.51667 7.11667 8.425 7.4 8.425C7.68334 8.425 7.91667 8.51667 8.1 8.7L12 12.6L15.9 8.7C16.0833 8.51667 16.3167 8.425 16.6 8.425C16.8833 8.425 17.1167 8.51667 17.3 8.7C17.4833 8.88334 17.575 9.11667 17.575 9.4C17.575 9.68334 17.4833 9.91667 17.3 10.1L12.7 14.7C12.6 14.8 12.4917 14.8708 12.375 14.9125C12.2583 14.9542 12.1333 14.975 12 14.975Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n className={cn(\n 'flex w-full items-center justify-between focus:outline-hidden focus:ring-2 focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1',\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </SelectPrimitive.Trigger>\n))\n\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectTriggerIcon = () => (\n <SelectPrimitive.Icon\n asChild\n className=\"not-sr-only in-data-[state=open]:rotate-180\"\n role=\"presentation\"\n >\n <ChevronDownIcon className=\"size-6 shrink-0 text-spark-a11\" />\n </SelectPrimitive.Icon>\n)\n\nSelectTriggerIcon.displayName = 'SelectTriggerIcon'\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n className={cn(\n 'absolute left-0 right-0 top-0 z-1 flex w-full cursor-default items-center justify-center py-1 transition-all max-sm:pointer-events-none',\n className\n )}\n ref={ref}\n {...props}\n >\n <ChevronDownIcon className=\"size-6 shrink-0 rotate-180\" />\n </SelectPrimitive.ScrollUpButton>\n))\n\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n className={cn(\n 'absolute bottom-0 left-0 right-0 z-1 flex w-full cursor-default items-center justify-center py-1 transition-all max-sm:pointer-events-none',\n className\n )}\n ref={ref}\n {...props}\n >\n <ChevronDownIcon className=\"size-6 shrink-0\" />\n </SelectPrimitive.ScrollDownButton>\n))\n\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n className={cn('py-1.5 pl-8 pr-2 text-sm font-semibold', className)}\n ref={ref}\n {...props}\n />\n))\n\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n className={cn(\n 'relative flex w-full cursor-default select-none items-center outline-hidden data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n ref={ref}\n {...props}\n >\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\n\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n className={cn('-mx-1 my-1 h-px', className)}\n ref={ref}\n {...props}\n />\n))\n\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = 'popper', ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n className={cn(\n 'duration-250 relative z-50 max-h-96 w-[var(--radix-select-trigger-width)] min-w-[8rem] overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-100 data-[state=open]:zoom-in-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 origin-(--radix-select-content-transform-origin)',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-0 data-[side=left]:-translate-x-0 data-[side=right]:translate-x-0 data-[side=top]:-translate-y-0',\n className\n )}\n position={position}\n ref={ref}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n 'p-0',\n position === 'popper' &&\n 'h-[var(--radix-select-trigger-height)] w-[var(--radix-select-trigger-width)]'\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\n\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectTriggerIcon,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","import * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\ninterface SeparatorProps extends React.HTMLAttributes<HTMLDivElement> {\n orientation?: 'horizontal' | 'vertical'\n decorative?: boolean\n}\n\nconst Separator = React.forwardRef<HTMLDivElement, SeparatorProps>(\n ({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n <div\n className={cn(\n 'shrink-0 bg-gray',\n orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n className\n )}\n data-orientation={orientation}\n ref={ref}\n role={decorative ? 'none' : 'separator'}\n {...props}\n />\n )\n)\n\nSeparator.displayName = 'Separator'\n\nexport { Separator }\nexport type { SeparatorProps }\n","import * as SheetPrimitive from '@radix-ui/react-dialog'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst XIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n className=\"size-6\"\n fill=\"none\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M12 13.4L7.1 18.3C6.91667 18.4833 6.68333 18.575 6.4 18.575C6.11667 18.575 5.88333 18.4833 5.7 18.3C5.51667 18.1167 5.425 17.8833 5.425 17.6C5.425 17.3167 5.51667 17.0833 5.7 16.9L10.6 12L5.7 7.09999C5.51667 6.91665 5.425 6.68332 5.425 6.39999C5.425 6.11665 5.51667 5.88332 5.7 5.69999C5.88333 5.51665 6.11667 5.42499 6.4 5.42499C6.68333 5.42499 6.91667 5.51665 7.1 5.69999L12 10.6L16.9 5.69999C17.0833 5.51665 17.3167 5.42499 17.6 5.42499C17.8833 5.42499 18.1167 5.51665 18.3 5.69999C18.4833 5.88332 18.575 6.11665 18.575 6.39999C18.575 6.68332 18.4833 6.91665 18.3 7.09999L13.4 12L18.3 16.9C18.4833 17.0833 18.575 17.3167 18.575 17.6C18.575 17.8833 18.4833 18.1167 18.3 18.3C18.1167 18.4833 17.8833 18.575 17.6 18.575C17.3167 18.575 17.0833 18.4833 16.9 18.3L12 13.4Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst Sheet = SheetPrimitive.Root\n\nconst SheetTrigger = SheetPrimitive.Trigger\n\nconst SheetClose = SheetPrimitive.Close\n\nconst SheetPortal = SheetPrimitive.Portal\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\n className={cn(\n 'fixed inset-0 z-50 bg-black-a6 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className\n )}\n ref={ref}\n {...props}\n />\n))\n\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName\n\nconst sheetVariants = cva(\n 'fixed z-50 gap-4 bg-slate-2 shadow-lg transition ease-in-out p-safe-offset-6 data-[state=closed]:duration-300 data-[state=open]:duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out',\n {\n variants: {\n side: {\n top: 'inset-x-0 top-0 data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n bottom:\n 'inset-x-0 bottom-0 data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n left: 'inset-y-0 left-0 h-full w-3/4 data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n right:\n 'inset-y-0 right-0 h-full w-3/4 data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n },\n },\n defaultVariants: {\n side: 'right',\n },\n }\n)\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {\n closeLabel?: string\n closeClassName?: string\n}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = 'right', className, children, closeLabel, closeClassName, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n className={cn('text-gray', sheetVariants({ side }), className)}\n ref={ref}\n {...props}\n >\n {closeLabel ? (\n <SheetPrimitive.Close\n className={cn(\n 'inline-flex w-fit items-center gap-1 rounded-sm p-1 text-sm font-bold text-spark-a11 transition-colors focus:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-0 disabled:pointer-events-none hover:text-spark-a12',\n closeClassName\n )}\n >\n <XIcon />\n <span>{closeLabel}</span>\n </SheetPrimitive.Close>\n ) : (\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 transition-opacity focus:outline-hidden focus:ring focus-visible:ring disabled:pointer-events-none data-[state=open]:bg-base-gray-soft hover:opacity-100\">\n <XIcon />\n </SheetPrimitive.Close>\n )}\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n))\n\nSheetContent.displayName = SheetPrimitive.Content.displayName\n\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n)\n\nSheetHeader.displayName = 'SheetHeader'\n\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)}\n {...props}\n />\n)\n\nSheetFooter.displayName = 'SheetFooter'\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n className={cn('text-lg font-semibold text-gray', className)}\n ref={ref}\n {...props}\n />\n))\n\nSheetTitle.displayName = SheetPrimitive.Title.displayName\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n className={cn('text-sm text-gray-light', className)}\n ref={ref}\n {...props}\n />\n))\n\nSheetDescription.displayName = SheetPrimitive.Description.displayName\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n sheetVariants,\n}\n","import * as SliderPrimitive from '@radix-ui/react-slider'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\ninterface SliderProps extends Omit<React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>, 'onChange'> {\n hint?: string\n}\n\nconst Slider = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderProps>(\n ({ className, hint, min = 0, max = 100, ...props }, ref) => (\n <div className=\"flex flex-row items-center gap-2\">\n <span className=\"inline-flex gap-0.75 pr-2 text-sm text-gray-light\">\n {min}\n {hint ? <span>{hint}</span> : null}\n </span>\n <div className=\"flex-1\">\n <SliderPrimitive.Root\n className={cn('relative flex h-5 touch-none select-none items-center', className)}\n max={max}\n min={min}\n ref={ref}\n {...props}\n >\n <SliderPrimitive.Track className=\"relative h-[5px] w-full grow rounded-md bg-slate-a7\">\n <SliderPrimitive.Range className=\"absolute h-full rounded-md bg-base-accent-solid outline-hidden focus:outline-hidden\" />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb className=\"block size-4 rounded-circle bg-base-accent-solid outline-hidden ring-4 ring-spark-a8 ring-offset-2 ring-offset-spark-3 focus:outline-hidden dark:ring-offset-white-contrast\" />\n </SliderPrimitive.Root>\n </div>\n <span className=\"inline-flex gap-0.75 pl-2 text-sm text-gray-light\">\n {max}\n {hint ? <span>{hint}</span> : null}\n </span>\n </div>\n )\n)\n\nSlider.displayName = 'Slider'\n\nexport { Slider }\nexport type { SliderProps }\n","import * as SwitchPrimitives from '@radix-ui/react-switch'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst CloseIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n fill=\"none\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n width=\"12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <g opacity=\"0.6\">\n <path\n d=\"M6.00003 6.6999L3.55002 9.1499C3.45836 9.24157 3.34169 9.2874 3.20002 9.2874C3.05836 9.2874 2.94169 9.24157 2.85002 9.1499C2.75836 9.05824 2.71252 8.94157 2.71252 8.7999C2.71252 8.65824 2.75836 8.54157 2.85002 8.4499L5.30002 5.9999L2.85002 3.5499C2.75836 3.45824 2.71252 3.34157 2.71252 3.1999C2.71252 3.05824 2.75836 2.94157 2.85002 2.8499C2.94169 2.75824 3.05836 2.7124 3.20002 2.7124C3.34169 2.7124 3.45836 2.75824 3.55002 2.8499L6.00003 5.2999L8.45003 2.8499C8.54169 2.75824 8.65836 2.7124 8.80003 2.7124C8.94169 2.7124 9.05836 2.75824 9.15003 2.8499C9.24169 2.94157 9.28753 3.05824 9.28753 3.1999C9.28753 3.34157 9.24169 3.45824 9.15003 3.5499L6.70002 5.9999L9.15003 8.4499C9.24169 8.54157 9.28753 8.65824 9.28753 8.7999C9.28753 8.94157 9.24169 9.05824 9.15003 9.1499C9.05836 9.24157 8.94169 9.2874 8.80003 9.2874C8.65836 9.2874 8.54169 9.24157 8.45003 9.1499L6.00003 6.6999Z\"\n fill=\"currentColor\"\n />\n </g>\n </svg>\n)\n\nconst CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n fill=\"none\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n width=\"12\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M4.77498 7.575L9.01248 3.3375C9.11248 3.2375 9.22915 3.1875 9.36248 3.1875C9.49582 3.1875 9.61248 3.2375 9.71248 3.3375C9.81248 3.4375 9.86248 3.55625 9.86248 3.69375C9.86248 3.83125 9.81248 3.95 9.71248 4.05L5.12498 8.65C5.02498 8.75 4.90832 8.8 4.77498 8.8C4.64165 8.8 4.52498 8.75 4.42498 8.65L2.27498 6.5C2.17498 6.4 2.12706 6.28125 2.13123 6.14375C2.1354 6.00625 2.18748 5.8875 2.28748 5.7875C2.38748 5.6875 2.50623 5.6375 2.64373 5.6375C2.78123 5.6375 2.89998 5.6875 2.99998 5.7875L4.77498 7.575Z\"\n fill=\"currentColor\"\n />\n </svg>\n)\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n 'peer inline-flex h-6 w-10 shrink-0 cursor-pointer items-center rounded-circle border-2 border-transparent transition-colors focus-visible:outline-hidden focus-visible:ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-base-accent-solid data-[state=unchecked]:bg-base-accent-soft',\n className\n )}\n ref={ref}\n {...props}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n 'pointer-events-none inline-flex h-5 w-5 items-center justify-center rounded-circle bg-white-contrast shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0'\n )}\n >\n {props.checked ? (\n <CheckIcon className=\"text-accent-active dark:text-spark-8\" role=\"presentation\" />\n ) : (\n <CloseIcon className=\"text-gray-light dark:text-slate-8\" role=\"presentation\" />\n )}\n </SwitchPrimitives.Thumb>\n </SwitchPrimitives.Root>\n))\n\nSwitch.displayName = 'Switch'\n\nexport { Switch }\n","import * as TabsPrimitive from '@radix-ui/react-tabs'\nimport * as React from 'react'\n\nimport { cn } from '../../utils/cn'\n\nconst Tabs = TabsPrimitive.Root\n\n/* -------------------------------------------------------------------------- */\n/* TabsList */\n/* -------------------------------------------------------------------------- */\n\nexport interface TabsListProps\n extends React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> {\n /** Visual variant. Default: \"default\" */\n variant?: 'default' | 'underline' | 'pill'\n}\n\nconst tabsListVariants: Record<string, string> = {\n default: 'inline-flex h-10 items-center justify-center gap-1',\n underline: 'inline-flex h-10 items-center gap-4 border-b border-gray',\n pill: 'inline-flex h-10 items-center gap-0 rounded-lg bg-slate-a3 p-1',\n}\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n TabsListProps\n>(({ className, variant = 'default', ...props }, ref) => (\n <TabsPrimitive.List\n className={cn(tabsListVariants[variant], className)}\n data-variant={variant}\n ref={ref}\n {...props}\n />\n))\n\nTabsList.displayName = TabsPrimitive.List.displayName\n\n/* -------------------------------------------------------------------------- */\n/* TabsTrigger */\n/* -------------------------------------------------------------------------- */\n\nconst tabsTriggerBase =\n 'inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-all duration-200 focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-0 disabled:pointer-events-none disabled:opacity-50'\n\nconst tabsTriggerVariants: Record<string, string> = {\n default:\n 'rounded-sm px-3 py-1.5 text-gray-light data-[state=active]:text-accent-active',\n underline:\n 'relative px-1 pb-2.5 text-gray-light data-[state=active]:text-accent-active after:absolute after:bottom-0 after:left-0 after:h-0.5 after:w-full after:scale-x-0 after:bg-base-accent-solid after:transition-transform data-[state=active]:after:scale-x-100',\n pill:\n 'rounded-md px-4 py-1.5 text-gray-light data-[state=active]:bg-slate-1 data-[state=active]:text-accent-active data-[state=active]:shadow-sm',\n}\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n className={cn(\n tabsTriggerBase,\n // Auto-detect variant from parent via CSS — fallback to default styling.\n // The variant-specific classes are applied via group selectors.\n 'group-data-[variant=underline]:relative group-data-[variant=underline]:px-1 group-data-[variant=underline]:pb-2.5',\n tabsTriggerVariants.default,\n className\n )}\n ref={ref}\n {...props}\n >\n {props.children}\n </TabsPrimitive.Trigger>\n))\n\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName\n\n/* -------------------------------------------------------------------------- */\n/* TabsTriggerItem */\n/* -------------------------------------------------------------------------- */\n\n/** Variant-aware trigger — reads variant from the closest TabsList[data-variant]. */\nconst TabsTriggerUnderline = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n className={cn(tabsTriggerBase, tabsTriggerVariants.underline, className)}\n ref={ref}\n {...props}\n />\n))\n\nTabsTriggerUnderline.displayName = 'TabsTriggerUnderline'\n\nconst TabsTriggerPill = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n className={cn(tabsTriggerBase, tabsTriggerVariants.pill, className)}\n ref={ref}\n {...props}\n />\n))\n\nTabsTriggerPill.displayName = 'TabsTriggerPill'\n\n/* -------------------------------------------------------------------------- */\n/* TabsContent */\n/* -------------------------------------------------------------------------- */\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n className={cn(\n 'focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-offset-0',\n className\n )}\n ref={ref}\n {...props}\n />\n))\n\nTabsContent.displayName = TabsPrimitive.Content.displayName\n\nexport { Tabs, TabsList, TabsTrigger, TabsTriggerUnderline, TabsTriggerPill, TabsContent }\n"]}
|