@bloomkit/react 0.2.7 → 0.2.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/cn.ts","../src/utils/motion-presets.ts","../src/hooks/use-reduced-motion.ts","../src/hooks/use-breathing.ts","../src/components/button/button.tsx","../src/components/button/button.variants.ts","../src/components/card/card.tsx","../src/components/card/card.variants.ts","../src/components/input/input.tsx","../src/components/input/input.variants.ts","../src/components/toggle/toggle.tsx","../src/components/badge/badge.tsx","../src/components/badge/badge.variants.ts","../src/components/alert/alert.tsx","../src/components/alert/alert.variants.ts","../src/components/avatar/avatar.tsx","../src/components/avatar/avatar.variants.ts","../src/components/tooltip/tooltip.tsx","../src/components/progress/progress.tsx","../src/components/progress/progress.variants.ts","../src/components/slider/slider.tsx","../src/components/modal/modal.tsx","../src/components/dropdown/dropdown.tsx","../src/components/tabs/tabs.tsx","../src/components/tabs/tabs.variants.ts","../src/components/date-picker/date-picker.tsx","../src/components/toast/toast.tsx","../src/components/toast/toast.variants.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/skeleton.variants.ts","../src/components/checkbox/checkbox.tsx","../src/components/radio-group/radio-group.tsx","../src/components/select/select.tsx","../src/components/theme/theme.tsx","../src/palettes/built-in.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import type { Transition, Variants } from \"motion/react\";\n\nexport const bloomTransition: Transition = {\n duration: 0.5,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionSlow: Transition = {\n duration: 0.8,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionFast: Transition = {\n duration: 0.3,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomSpring: Transition = {\n type: \"spring\",\n stiffness: 200,\n damping: 20,\n};\n\nexport const hoverLift: Variants = {\n initial: { y: 0, scale: 1 },\n hover: { y: -2, scale: 1 },\n tap: { y: 0, scale: 0.98 },\n};\n\nexport const cardHoverLift: Variants = {\n initial: { y: 0 },\n hover: { y: -4 },\n};\n\nexport const fadeIn: Variants = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n};\n\nexport const slideUp: Variants = {\n initial: { opacity: 0, y: 12 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 12 },\n};\n","import { useState, useEffect } from \"react\";\n\nexport function useReducedMotion(): boolean {\n const [reduced, setReduced] = useState(() => {\n if (typeof window === \"undefined\") return false;\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n return mq.matches || hasClass;\n });\n\n useEffect(() => {\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n const handleChange = () => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n };\n\n mq.addEventListener(\"change\", handleChange);\n\n const observer = new MutationObserver(() => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n });\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n });\n\n return () => {\n mq.removeEventListener(\"change\", handleChange);\n observer.disconnect();\n };\n }, []);\n\n return reduced;\n}\n","import { useMemo } from \"react\";\n\ninterface UseBreathingOptions {\n duration?: number;\n animation?: string;\n}\n\ninterface BreathingStyle {\n animationName: string;\n animationDuration: string;\n animationDelay: string;\n animationTimingFunction: string;\n animationIterationCount: string;\n}\n\nexport function useBreathing(options?: UseBreathingOptions): BreathingStyle {\n const { duration = 6, animation = \"bloom-breathe\" } = options ?? {};\n\n return useMemo(() => {\n const delay = Math.random() * duration;\n return {\n animationName: animation,\n animationDuration: `${duration}s`,\n animationDelay: `${delay.toFixed(2)}s`,\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n };\n }, [duration, animation]);\n}\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"../../utils/cn\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants & {\n asChild?: boolean;\n children: ReactNode;\n };\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, asChild = false, children, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant }), className)}\n ref={ref}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import { cva } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n \"font-[family-name:var(--bloom-font)] text-[14px] font-normal\",\n \"h-[44px] px-[28px]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"relative overflow-hidden cursor-pointer\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--bloom-accent1-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n secondary: [\n \"bg-[var(--bloom-surface)] color-[var(--bloom-text)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n ghost: [\n \"bg-transparent color-[var(--bloom-text)]\",\n \"hover:bg-[var(--bloom-surface)]\",\n \"active:scale-[0.98]\",\n ],\n accent: [\n \"bg-[var(--bloom-accent3-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n danger: [\n \"bg-[var(--bloom-accent4-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n warning: [\n \"bg-[var(--bloom-accent2-deep)] text-white\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n success: [\n \"bg-[var(--bloom-accent1)] color-[var(--bloom-accent1-deep)]\",\n \"hover:-translate-y-[2px] hover:shadow-[var(--bloom-shadow-hover)]\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n }\n);\n\nexport type ButtonVariants = Parameters<typeof buttonVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { cardVariants, type CardVariants } from \"./card.variants\";\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & CardVariants;\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} className={cn(cardVariants({ variant }), className)} {...props} />\n )\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)] pb-0\", className)} {...props} />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"font-[family-name:var(--bloom-font-display)] text-[18px] font-medium color-[var(--bloom-text)] leading-[var(--bloom-leading-heading)]\",\n className\n )}\n {...props}\n />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-[length:var(--bloom-text-caption)] color-[var(--bloom-text-secondary)] mt-[var(--space-xs)]\", className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)]\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport const CardFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-[var(--space-xl)] pt-0 flex items-center\", className)} {...props} />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n","import { cva } from \"class-variance-authority\";\n\nexport const cardVariants = cva(\n [\n \"rounded-[var(--bloom-radius-lg)] bg-[var(--bloom-surface)]\",\n \"shadow-[var(--bloom-shadow)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"relative overflow-hidden\",\n ],\n {\n variants: {\n variant: {\n default: \"\",\n interactive: [\n \"cursor-pointer\",\n \"border border-transparent\",\n \"hover:border-[var(--bloom-surface2)]\",\n \"hover:-translate-y-[4px] hover:shadow-[var(--bloom-shadow-hover)]\",\n ],\n featured: [\n \"border border-[var(--bloom-accent1)]/30\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type CardVariants = Parameters<typeof cardVariants>[0];\n","import { forwardRef, type InputHTMLAttributes, type TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { inputVariants } from \"./input.variants\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, type = \"text\", ...props }, ref) => (\n <input\n ref={ref}\n type={type}\n className={cn(inputVariants(), \"h-[44px]\", className)}\n {...props}\n />\n )\n);\nInput.displayName = \"Input\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(inputVariants(), \"min-h-[100px] resize-y\", className)}\n {...props}\n />\n )\n);\nTextarea.displayName = \"Textarea\";\n","import { cva } from \"class-variance-authority\";\n\nexport const inputVariants = cva([\n \"w-full\",\n \"rounded-[var(--bloom-radius)] bg-[var(--bloom-surface)]\",\n \"color-[var(--bloom-text)] text-[length:var(--bloom-text-body)]\",\n \"font-[family-name:var(--bloom-font)]\",\n \"px-[var(--space-lg)] py-[var(--space-md)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"placeholder:color-[var(--bloom-text-secondary)]/60\",\n \"focus:outline-none focus:ring-[4px] focus:ring-[var(--bloom-accent1)]/20 focus:border-[var(--bloom-accent1-deep)]\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ToggleProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {\n label?: string;\n}\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n ({ className, label, ...props }, ref) => (\n <label className=\"inline-flex items-center gap-[var(--space-md)]\">\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-[28px] w-[50px] shrink-0 cursor-pointer items-center\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"border border-transparent\",\n \"bg-[var(--bloom-surface2)]\",\n \"transition-colors duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-[var(--bloom-accent1-deep)]\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n \"pointer-events-none block h-[22px] w-[22px] rounded-full bg-white\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"data-[state=unchecked]:translate-x-[3px]\",\n \"data-[state=checked]:translate-x-[25px]\"\n )}\n />\n </SwitchPrimitive.Root>\n {label && (\n <span className=\"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\">\n {label}\n </span>\n )}\n </label>\n )\n);\nToggle.displayName = \"Toggle\";\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { badgeVariants, type BadgeVariants } from \"./badge.variants\";\n\nconst dotColorMap = {\n sage: \"bg-[var(--bloom-accent1-deep)]\",\n sand: \"bg-[var(--bloom-accent2-deep)]\",\n lavender: \"bg-[var(--bloom-accent3-deep)]\",\n rose: \"bg-[var(--bloom-accent4-deep)]\",\n} as const;\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeVariants & {\n dot?: boolean;\n };\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = \"sage\", dot = false, children, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props}>\n {dot && (\n <span\n data-bloom-dot=\"\"\n className={cn(\n \"h-[6px] w-[6px] rounded-full\",\n \"animate-[bloom-breathe_5s_ease-in-out_infinite]\",\n dotColorMap[variant ?? \"sage\"]\n )}\n />\n )}\n {children}\n </span>\n )\n);\nBadge.displayName = \"Badge\";\n","import { cva } from \"class-variance-authority\";\n\nexport const badgeVariants = cva(\n [\n \"inline-flex items-center gap-[var(--space-xs)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"px-[var(--space-md)] py-[var(--space-xs)]\",\n \"text-[length:var(--bloom-text-micro)] font-medium font-[family-name:var(--bloom-font)]\",\n \"tracking-[var(--bloom-letter-wide)] uppercase\",\n ],\n {\n variants: {\n variant: {\n sage: \"bg-[var(--bloom-accent1)]/20 color-[var(--bloom-accent1-deep)]\",\n sand: \"bg-[var(--bloom-accent2)]/20 color-[var(--bloom-accent2-deep)]\",\n lavender: \"bg-[var(--bloom-accent3)]/20 color-[var(--bloom-accent3-deep)]\",\n rose: \"bg-[var(--bloom-accent4)]/20 color-[var(--bloom-accent4-deep)]\",\n },\n },\n defaultVariants: {\n variant: \"sage\",\n },\n }\n);\n\nexport type BadgeVariants = Parameters<typeof badgeVariants>[0];\n","import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { alertVariants, alertIconColors, type AlertVariants } from \"./alert.variants\";\n\nexport type AlertProps = HTMLAttributes<HTMLDivElement> & AlertVariants;\n\nconst variantIcons: Record<string, ReactNode> = {\n success: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M6.5 10.5L8.5 12.5L13.5 7.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ),\n error: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.5 7.5L12.5 12.5M12.5 7.5L7.5 12.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n warning: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d=\"M10 3L18 17H2L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M10 8.5V12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"14.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n info: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 9V14\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"6.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n};\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", children, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props}>\n <div className={cn(\"shrink-0 mt-px\", alertIconColors[variant ?? \"info\"])}>\n {variantIcons[variant ?? \"info\"]}\n </div>\n <div className=\"flex-1 min-w-0\">\n {children}\n </div>\n </div>\n )\n);\nAlert.displayName = \"Alert\";\n\nexport const AlertTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\n \"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-body)] font-medium color-[var(--bloom-text)]\",\n className\n )}\n {...props}\n />\n )\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nexport const AlertDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-[length:var(--bloom-text-caption)] color-[var(--bloom-text-secondary)] mt-[var(--space-xs)]\", className)}\n {...props}\n />\n )\n);\nAlertDescription.displayName = \"AlertDescription\";\n","import { cva } from \"class-variance-authority\";\n\nexport const alertVariants = cva(\n [\n \"relative flex gap-[var(--space-md)] items-start\",\n \"rounded-[var(--bloom-radius-lg)] p-[var(--space-lg)]\",\n \"font-[family-name:var(--bloom-font)]\",\n \"border\",\n ],\n {\n variants: {\n variant: {\n info: \"bg-[var(--bloom-accent3)]/10 border-[var(--bloom-accent3)]/20\",\n success: \"bg-[var(--bloom-accent1)]/10 border-[var(--bloom-accent1)]/20\",\n warning: \"bg-[var(--bloom-accent2)]/10 border-[var(--bloom-accent2)]/20\",\n error: \"bg-[var(--bloom-accent4)]/10 border-[var(--bloom-accent4)]/20\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport const alertIconColors = {\n info: \"color-[var(--bloom-accent3-deep)]\",\n success: \"color-[var(--bloom-accent1-deep)]\",\n warning: \"color-[var(--bloom-accent2-deep)]\",\n error: \"color-[var(--bloom-accent4-deep)]\",\n} as const;\n\nexport type AlertVariants = Parameters<typeof alertVariants>[0];\n","import { forwardRef, useState, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\n\nexport type AvatarProps = HTMLAttributes<HTMLDivElement> &\n AvatarVariants & {\n initials?: string;\n src?: string;\n alt?: string;\n };\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, size, initials, src, alt, ...props }, ref) => {\n const [imgError, setImgError] = useState(false);\n const showImage = src && !imgError;\n\n return (\n <div ref={ref} className={cn(avatarVariants({ size }), className)} {...props}>\n <span aria-hidden={showImage || undefined}>{initials}</span>\n {showImage && (\n <img\n src={src}\n alt={alt ?? initials ?? \"\"}\n onError={() => setImgError(true)}\n className=\"absolute inset-0 h-full w-full object-cover\"\n />\n )}\n </div>\n );\n }\n);\nAvatar.displayName = \"Avatar\";\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex -space-x-2\", className)}\n {...props}\n />\n )\n);\nAvatarGroup.displayName = \"AvatarGroup\";\n","import { cva } from \"class-variance-authority\";\n\nexport const avatarVariants = cva(\n [\n \"relative inline-flex items-center justify-center\",\n \"rounded-full overflow-hidden\",\n \"bg-[var(--bloom-accent1)]/20 color-[var(--bloom-accent1-deep)]\",\n \"font-[family-name:var(--bloom-font)] font-medium\",\n \"select-none shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[32px] w-[32px] text-[length:var(--bloom-text-micro)]\",\n md: \"h-[40px] w-[40px] text-[length:var(--bloom-text-caption)]\",\n lg: \"h-[56px] w-[56px] text-[length:var(--bloom-text-body)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport type AvatarVariants = Parameters<typeof avatarVariants>[0];\n","import { type ReactNode } from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../utils/cn\";\n\nexport const TooltipProvider = TooltipPrimitive.Provider;\n\nexport interface TooltipProps {\n content: ReactNode;\n children: ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n className?: string;\n}\n\nexport function Tooltip({ content, children, side = \"top\", className }: TooltipProps) {\n return (\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n sideOffset={8}\n className={cn(\n \"bloom z-50 rounded-[var(--bloom-radius)]\",\n \"bg-[var(--bloom-surface)] color-[var(--bloom-text)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"px-[var(--space-md)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-caption)] font-[family-name:var(--bloom-font)]\",\n \"shadow-[var(--bloom-shadow)]\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n}\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { progressTrackVariants, progressFillVariants } from \"./progress.variants\";\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(progressTrackVariants(), className)}\n {...props}\n >\n <div\n className={progressFillVariants()}\n style={{ width: `${clampedValue}%` }}\n >\n {/* Animated glow sweep */}\n <div\n className=\"absolute inset-0 rounded-[var(--bloom-radius-pill)] overflow-hidden\"\n >\n <div\n className=\"absolute inset-y-0 w-[60%] bg-gradient-to-r from-transparent via-white/25 to-transparent animate-[bloom-sweep_2.5s_ease-in-out_infinite]\"\n />\n </div>\n </div>\n </div>\n );\n }\n);\nProgress.displayName = \"Progress\";\n\nexport interface ProgressCircularProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n size?: number;\n strokeWidth?: number;\n}\n\nexport const ProgressCircular = forwardRef<HTMLDivElement, ProgressCircularProps>(\n ({ className, value = 0, size = 48, strokeWidth = 4, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - (clampedValue / 100) * circumference;\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\"inline-flex\", className)}\n {...props}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <defs>\n <linearGradient id={`bloom-sweep-grad-${size}`} gradientUnits=\"userSpaceOnUse\"\n x1={size / 2} y1=\"0\" x2={size / 2} y2={size}>\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"0\" />\n <stop offset=\"50%\" stopColor=\"white\" stopOpacity=\"0.3\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n <animateTransform\n attributeName=\"gradientTransform\"\n type=\"rotate\"\n values={`0 ${size / 2} ${size / 2};360 ${size / 2} ${size / 2}`}\n dur=\"2.5s\"\n repeatCount=\"indefinite\"\n />\n </linearGradient>\n <mask id={`bloom-sweep-mask-${size}`}>\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"white\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n />\n </mask>\n </defs>\n {/* Track */}\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-surface2)\"\n strokeWidth={strokeWidth}\n />\n {/* Fill */}\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-accent1-deep)\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n style={{\n transition: `stroke-dashoffset var(--bloom-duration-slow) var(--bloom-ease)`,\n }}\n />\n {/* Sweep glow */}\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke={`url(#bloom-sweep-grad-${size})`}\n strokeWidth={strokeWidth}\n mask={`url(#bloom-sweep-mask-${size})`}\n />\n </svg>\n </div>\n );\n }\n);\nProgressCircular.displayName = \"ProgressCircular\";\n","import { cva } from \"class-variance-authority\";\n\nexport const progressTrackVariants = cva([\n \"relative w-full overflow-hidden\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"bg-[var(--bloom-surface2)]\",\n \"h-[8px]\",\n]);\n\nexport const progressFillVariants = cva([\n \"h-full rounded-[var(--bloom-radius-pill)]\",\n \"transition-[width] duration-[var(--bloom-duration-slow)] ease-[var(--bloom-ease)]\",\n \"bg-[var(--bloom-accent1-deep)]\",\n \"relative\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface SliderProps extends ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {}\n\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(\n ({ className, disabled, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n disabled={disabled}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(\n \"relative h-[6px] w-full grow overflow-hidden\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"bg-[var(--bloom-surface2)]\"\n )}\n >\n <SliderPrimitive.Range\n className={cn(\n \"absolute h-full\",\n \"bg-[var(--bloom-accent1-deep)]\",\n \"rounded-[var(--bloom-radius-pill)]\"\n )}\n />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb\n aria-disabled={disabled ? true : undefined}\n className={cn(\n \"block h-[24px] w-[24px] rounded-full\",\n \"bg-white border-[2px] border-[var(--bloom-accent1-deep)]\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"hover:scale-110\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"cursor-grab active:cursor-grabbing\"\n )}\n />\n </SliderPrimitive.Root>\n )\n);\nSlider.displayName = \"Slider\";\n","import { type ReactNode } from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: string;\n description?: string;\n children: ReactNode;\n className?: string;\n}\n\nexport function Modal({ open, onOpenChange, title, description, children, className }: ModalProps) {\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0\"\n )}\n />\n <DialogPrimitive.Content\n className={cn(\n \"bloom fixed left-1/2 top-1/2 z-50\",\n \"-translate-x-1/2 -translate-y-1/2\",\n \"w-full max-w-[480px]\",\n \"rounded-[var(--bloom-radius-lg)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-xl)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"focus:outline-none\",\n className\n )}\n >\n {title && (\n <DialogPrimitive.Title\n className=\"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-heading)] font-medium color-[var(--bloom-text)] mb-[var(--space-sm)]\"\n >\n {title}\n </DialogPrimitive.Title>\n )}\n {description && (\n <DialogPrimitive.Description\n className=\"text-[length:var(--bloom-text-body)] color-[var(--bloom-text-secondary)] mb-[var(--space-lg)]\"\n >\n {description}\n </DialogPrimitive.Description>\n )}\n {children}\n <DialogPrimitive.Close\n className={cn(\n \"absolute top-[var(--space-lg)] right-[var(--space-lg)]\",\n \"inline-flex items-center justify-center\",\n \"h-[32px] w-[32px] rounded-full\",\n \"color-[var(--bloom-text-secondary)] hover:color-[var(--bloom-text)]\",\n \"hover:bg-[var(--bloom-surface2)]\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\"\n )}\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n","import { type ReactNode, type ComponentPropsWithoutRef } from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DropdownProps {\n trigger: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function Dropdown({ trigger, children, className }: DropdownProps) {\n return (\n <DropdownMenuPrimitive.Root>\n <DropdownMenuPrimitive.Trigger asChild>{trigger}</DropdownMenuPrimitive.Trigger>\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 min-w-[180px] overflow-hidden\",\n \"rounded-[var(--bloom-radius)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-xs)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n );\n}\n\nexport interface DropdownItemProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {}\n\nexport function DropdownItem({ className, ...props }: DropdownItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n className={cn(\n \"relative flex items-center\",\n \"rounded-[var(--bloom-radius-sm)]\",\n \"px-[var(--space-md)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"cursor-pointer select-none outline-none\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"data-[highlighted]:bg-[var(--bloom-surface2)]\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport interface DropdownSeparatorProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> {}\n\nexport function DropdownSeparator({ className, ...props }: DropdownSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n className={cn(\"h-px my-[var(--space-xs)] bg-[var(--bloom-surface2)]\", className)}\n {...props}\n />\n );\n}\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../../utils/cn\";\nimport { tabsListVariants, type TabsListVariants } from \"./tabs.variants\";\n\nexport const Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\n TabsListVariants;\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, variant, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n);\nTabsList.displayName = \"TabsList\";\n\nexport const TabsTrigger = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap\",\n \"px-[var(--space-lg)] py-[var(--space-sm)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)]\",\n \"color-[var(--bloom-text-secondary)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"hover:color-[var(--bloom-text)]\",\n \"data-[state=active]:color-[var(--bloom-text)]\",\n \"data-[state=active]:bg-[var(--bloom-surface2)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport const TabsContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-[var(--space-lg)]\",\n \"focus-visible:outline-none\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = \"TabsContent\";\n","import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\n [\n \"inline-flex items-center gap-[var(--space-xs)]\",\n \"font-[family-name:var(--bloom-font)]\",\n ],\n {\n variants: {\n variant: {\n default: \"border-b border-[var(--bloom-surface2)]\",\n pill: [\n \"bg-[var(--bloom-surface)] p-[var(--space-xs)]\",\n \"rounded-[var(--bloom-radius-pill)]\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type TabsListVariants = Parameters<typeof tabsListVariants>[0];\n","import { useState, useMemo } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n className?: string;\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nconst MONTH_NAMES = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\",\n];\n\nconst DAY_NAMES = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"];\n\nexport function DatePicker({ value, onChange, placeholder = \"Select date\", className }: DatePickerProps) {\n const [open, setOpen] = useState(false);\n const [viewDate, setViewDate] = useState(() => value ?? new Date());\n const viewYear = viewDate.getFullYear();\n const viewMonth = viewDate.getMonth();\n\n const days = useMemo(() => {\n const daysInMonth = getDaysInMonth(viewYear, viewMonth);\n const firstDay = getFirstDayOfMonth(viewYear, viewMonth);\n const cells: Array<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 return cells;\n }, [viewYear, viewMonth]);\n\n const isSelected = (day: number) => {\n if (!value) return false;\n return value.getFullYear() === viewYear && value.getMonth() === viewMonth && value.getDate() === day;\n };\n\n const prevMonth = () => setViewDate(new Date(viewYear, viewMonth - 1, 1));\n const nextMonth = () => setViewDate(new Date(viewYear, viewMonth + 1, 1));\n\n const selectDay = (day: number) => {\n const selected = new Date(viewYear, viewMonth, day);\n onChange?.(selected);\n setOpen(false);\n };\n\n const formattedValue = value\n ? value.toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\", year: \"numeric\" })\n : null;\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <button\n className={cn(\n \"inline-flex items-center gap-[var(--space-sm)]\",\n \"h-[44px] px-[var(--space-lg)]\",\n \"rounded-[var(--bloom-radius)] bg-[var(--bloom-surface)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/20\",\n !formattedValue && \"color-[var(--bloom-text-secondary)]\",\n className\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2 6h12\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 1v3M11 1v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n {formattedValue ?? placeholder}\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 w-[280px]\",\n \"rounded-[var(--bloom-radius-lg)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-lg)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n )}\n >\n <div className=\"flex items-center justify-between mb-[var(--space-md)]\">\n <button\n onClick={prevMonth}\n className=\"p-[var(--space-xs)] rounded-full hover:bg-[var(--bloom-surface2)] transition-colors\"\n aria-label=\"Previous month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M10 4l-4 4 4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <span className=\"font-[family-name:var(--bloom-font-display)] text-[length:var(--bloom-text-body)] font-medium color-[var(--bloom-text)]\">\n {MONTH_NAMES[viewMonth]} {viewYear}\n </span>\n <button\n onClick={nextMonth}\n className=\"p-[var(--space-xs)] rounded-full hover:bg-[var(--bloom-surface2)] transition-colors\"\n aria-label=\"Next month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px] mb-[var(--space-xs)]\">\n {DAY_NAMES.map((d) => (\n <div key={d} className=\"text-center text-[length:var(--bloom-text-micro)] color-[var(--bloom-text-secondary)] font-medium py-[var(--space-xs)]\">\n {d}\n </div>\n ))}\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px]\">\n {days.map((day, i) =>\n day === null ? (\n <div key={`empty-${i}`} />\n ) : (\n <button\n key={day}\n onClick={() => selectDay(day)}\n className={cn(\n \"h-[36px] w-[36px] rounded-full\",\n \"flex items-center justify-center\",\n \"text-[length:var(--bloom-text-caption)] font-[family-name:var(--bloom-font)]\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"hover:bg-[var(--bloom-accent1)]/20\",\n isSelected(day)\n ? \"bg-[var(--bloom-accent1-deep)] color-white\"\n : \"color-[var(--bloom-text)]\"\n )}\n >\n {day}\n </button>\n )\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n","import {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { toastVariants, toastIconColors } from \"./toast.variants\";\n\ninterface ToastData {\n id: string;\n title: string;\n description?: string;\n duration?: number;\n variant?: \"info\" | \"success\" | \"warning\" | \"error\" | null;\n}\n\ninterface ToastContextValue {\n toast: (data: Omit<ToastData, \"id\">) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within <ToastProvider>\");\n return ctx;\n}\n\nlet toastId = 0;\n\nexport function ToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<ToastData[]>([]);\n\n const toast = useCallback((data: Omit<ToastData, \"id\">) => {\n const id = String(++toastId);\n setToasts((prev) => [...prev, { ...data, id }]);\n }, []);\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast }}>\n {children}\n <div className=\"bloom fixed bottom-[var(--space-xl)] right-[var(--space-xl)] z-[100] flex flex-col gap-[var(--space-md)]\">\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} onDismiss={dismiss} />\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n\nconst variantIcons: Record<string, ReactNode> = {\n success: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M6.5 10.5L8.5 12.5L13.5 7.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ),\n error: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.5 7.5L12.5 12.5M12.5 7.5L7.5 12.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n warning: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d=\"M10 3L18 17H2L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M10 8.5V12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"14.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n info: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 9V14\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"6.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n};\n\nfunction ToastItem({ toast: t, onDismiss }: { toast: ToastData; onDismiss: (id: string) => void }) {\n const duration = t.duration ?? 4000;\n const variant = t.variant ?? \"info\";\n\n useEffect(() => {\n const timer = setTimeout(() => onDismiss(t.id), duration);\n return () => clearTimeout(timer);\n }, [t.id, duration, onDismiss]);\n\n return (\n <div className={cn(toastVariants({ variant: t.variant }))}>\n <div className={cn(\"shrink-0 mt-[1px]\", toastIconColors[variant])}>\n {variantIcons[variant]}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-[length:var(--bloom-text-body)] font-medium color-[var(--bloom-text)]\">\n {t.title}\n </p>\n {t.description && (\n <p className=\"text-[length:var(--bloom-text-caption)] color-[var(--bloom-text-secondary)] mt-[var(--space-xs)]\">\n {t.description}\n </p>\n )}\n </div>\n <button\n onClick={() => onDismiss(t.id)}\n className=\"color-[var(--bloom-text-secondary)] hover:color-[var(--bloom-text)] transition-colors shrink-0 rounded-full h-[28px] w-[28px] inline-flex items-center justify-center hover:bg-[var(--bloom-surface2)]\"\n aria-label=\"Dismiss\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n );\n}\n","import { cva } from \"class-variance-authority\";\n\nexport const toastVariants = cva(\n [\n \"relative flex items-center gap-[var(--space-md)]\",\n \"w-full max-w-[380px]\",\n \"rounded-[var(--bloom-radius-lg)]\",\n \"p-[var(--space-lg)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border\",\n \"font-[family-name:var(--bloom-font)]\",\n \"overflow-hidden\",\n \"animate-in fade-in-0 slide-in-from-bottom-4\",\n ],\n {\n variants: {\n variant: {\n info: \"bg-[var(--bloom-surface)] border-[var(--bloom-surface2)]\",\n success: \"bg-[var(--bloom-accent1)]/10 border-[var(--bloom-accent1)]/20\",\n warning: \"bg-[var(--bloom-accent2)]/10 border-[var(--bloom-accent2)]/20\",\n error: \"bg-[var(--bloom-accent4)]/10 border-[var(--bloom-accent4)]/20\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport type ToastVariants = Parameters<typeof toastVariants>[0];\n\nexport const toastIconColors = {\n info: \"color-[var(--bloom-accent3-deep)]\",\n success: \"color-[var(--bloom-accent1-deep)]\",\n warning: \"color-[var(--bloom-accent2-deep)]\",\n error: \"color-[var(--bloom-accent4-deep)]\",\n} as const;\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { skeletonVariants, type SkeletonVariants } from \"./skeleton.variants\";\n\nexport type SkeletonProps = HTMLAttributes<HTMLDivElement> & SkeletonVariants;\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n aria-hidden=\"true\"\n {...props}\n />\n )\n);\nSkeleton.displayName = \"Skeleton\";\n","import { cva } from \"class-variance-authority\";\n\nexport const skeletonVariants = cva(\n [\n \"bg-[var(--bloom-surface2)]\",\n \"animate-[bloom-breathe_3s_ease-in-out_infinite]\",\n ],\n {\n variants: {\n variant: {\n text: \"h-[16px] w-full rounded-[var(--bloom-radius-sm)]\",\n card: \"h-[200px] w-full rounded-[var(--bloom-radius-lg)]\",\n avatar: \"h-[40px] w-[40px] rounded-full\",\n custom: \"\",\n },\n },\n defaultVariants: {\n variant: \"text\",\n },\n }\n);\n\nexport type SkeletonVariants = Parameters<typeof skeletonVariants>[0];\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { cn } from \"../../utils/cn\";\n\nexport type CheckboxProps = ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> & {\n label?: string;\n};\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ className, label, ...props }, ref) => {\n const checkbox = (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-[20px] w-[20px] shrink-0 cursor-pointer\",\n \"rounded-[4px]\",\n \"border border-[var(--bloom-surface2)]\",\n \"bg-[var(--bloom-surface)]\",\n \"transition-all duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-[var(--bloom-accent1-deep)] data-[state=checked]:border-[var(--bloom-accent1-deep)]\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center\">\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M2.5 6l2.5 2.5 4.5-5\" />\n </svg>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n\n if (!label) return checkbox;\n\n return (\n <label className=\"inline-flex items-center gap-[var(--space-sm)] cursor-pointer\">\n {checkbox}\n <span className=\"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\">\n {label}\n </span>\n </label>\n );\n }\n);\nCheckbox.displayName = \"Checkbox\";\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { cn } from \"../../utils/cn\";\n\nexport type RadioGroupProps = ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>;\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n ({ className, ...props }, ref) => (\n <RadioGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex flex-col gap-[var(--space-sm)]\", className)}\n {...props}\n />\n )\n);\nRadioGroup.displayName = \"RadioGroup\";\n\nexport type RadioGroupItemProps = ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> & {\n label?: string;\n};\n\nexport const RadioGroupItem = forwardRef<HTMLButtonElement, RadioGroupItemProps>(\n ({ className, label, ...props }, ref) => {\n const item = (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"h-[20px] w-[20px] shrink-0 cursor-pointer\",\n \"rounded-full\",\n \"border border-[var(--bloom-surface2)]\",\n \"bg-[var(--bloom-surface)]\",\n \"transition-all duration-[var(--bloom-duration-fast)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:border-[var(--bloom-accent1-deep)]\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center w-full h-full\">\n <span className=\"block h-[8px] w-[8px] rounded-full bg-[var(--bloom-accent1-deep)]\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n\n if (!label) return item;\n\n return (\n <label className=\"inline-flex items-center gap-[var(--space-sm)] cursor-pointer\">\n {item}\n <span className=\"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\">\n {label}\n </span>\n </label>\n );\n }\n);\nRadioGroupItem.displayName = \"RadioGroupItem\";\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cn } from \"../../utils/cn\";\n\nexport type SelectProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Root> & {\n placeholder?: string;\n className?: string;\n};\n\nexport const Select = SelectPrimitive.Root;\n\nexport type SelectTriggerProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>;\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-between gap-[var(--space-sm)]\",\n \"h-[44px] w-full px-[var(--space-lg)]\",\n \"rounded-[var(--bloom-radius)] bg-[var(--bloom-surface)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"transition-all duration-[var(--bloom-duration)] ease-[var(--bloom-ease)]\",\n \"focus-visible:outline-none focus-visible:ring-[4px] focus-visible:ring-[var(--bloom-accent1)]/20 focus-visible:border-[var(--bloom-accent1-deep)]\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[placeholder]:color-[var(--bloom-text-secondary)]\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n);\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport const SelectValue = SelectPrimitive.Value;\n\nexport type SelectContentProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Content>;\n\nexport const SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(\n ({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n position={position}\n sideOffset={8}\n className={cn(\n \"bloom z-50 min-w-[var(--radix-select-trigger-width)] overflow-hidden\",\n \"rounded-[var(--bloom-radius)]\",\n \"bg-[var(--bloom-surface)] p-[var(--space-xs)]\",\n \"shadow-[var(--bloom-shadow-hover)]\",\n \"border border-[var(--bloom-surface2)]\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n {...props}\n >\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" && \"w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n);\nSelectContent.displayName = \"SelectContent\";\n\nexport type SelectItemProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Item>;\n\nexport const SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(\n ({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex items-center\",\n \"rounded-[var(--bloom-radius-sm)]\",\n \"px-[var(--space-md)] py-[var(--space-sm)] pl-[var(--space-2xl)]\",\n \"text-[length:var(--bloom-text-body)] font-[family-name:var(--bloom-font)] color-[var(--bloom-text)]\",\n \"cursor-pointer select-none outline-none\",\n \"transition-colors duration-[var(--bloom-duration-fast)]\",\n \"data-[highlighted]:bg-[var(--bloom-surface2)]\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-[var(--space-sm)] flex h-[16px] w-[16px] items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M2.5 6l2.5 2.5 4.5-5\" />\n </svg>\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n);\nSelectItem.displayName = \"SelectItem\";\n\nexport type SelectSeparatorProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>;\n\nexport const SelectSeparator = forwardRef<HTMLDivElement, SelectSeparatorProps>(\n ({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"h-px my-[var(--space-xs)] bg-[var(--bloom-surface2)]\", className)}\n {...props}\n />\n )\n);\nSelectSeparator.displayName = \"SelectSeparator\";\n","import {\n createContext,\n useContext,\n useState,\n useEffect,\n useCallback,\n useRef,\n type ReactNode,\n} from \"react\";\n\ntype ColorMode = \"light\" | \"dark\" | \"system\";\n\nexport interface BloomPalette {\n name: string;\n light?: Record<string, string>;\n dark?: Record<string, string>;\n}\n\ninterface ThemeContextValue {\n colorMode: ColorMode;\n resolvedMode: \"light\" | \"dark\";\n setColorMode: (mode: ColorMode) => void;\n toggleColorMode: () => void;\n palette: string;\n setPalette: (name: string) => void;\n palettes: string[];\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport function useTheme(): ThemeContextValue {\n const ctx = useContext(ThemeContext);\n if (!ctx) throw new Error(\"useTheme must be used within <ThemeProvider>\");\n return ctx;\n}\n\nfunction getSystemPreference(): \"light\" | \"dark\" {\n if (typeof window === \"undefined\") return \"light\";\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\n\nfunction resolveMode(mode: ColorMode): \"light\" | \"dark\" {\n if (mode === \"system\") return getSystemPreference();\n return mode;\n}\n\nexport interface ThemeProviderProps {\n children: ReactNode;\n defaultColorMode?: ColorMode;\n defaultPalette?: string;\n palettes?: BloomPalette[];\n storageKey?: string;\n}\n\nexport function ThemeProvider({\n children,\n defaultColorMode = \"system\",\n defaultPalette = \"bloom\",\n palettes = [],\n storageKey = \"bloom-theme\",\n}: ThemeProviderProps) {\n const paletteMap = useRef(\n new Map<string, BloomPalette>([\n [\"bloom\", { name: \"bloom\" }],\n ...palettes.map((p) => [p.name, p] as const),\n ])\n );\n\n const [colorMode, setColorModeState] = useState<ColorMode>(() => {\n if (typeof window === \"undefined\") return defaultColorMode;\n const stored = localStorage.getItem(`${storageKey}-mode`);\n if (stored === \"light\" || stored === \"dark\" || stored === \"system\") return stored;\n return defaultColorMode;\n });\n\n const [palette, setPaletteState] = useState<string>(() => {\n if (typeof window === \"undefined\") return defaultPalette;\n const stored = localStorage.getItem(`${storageKey}-palette`);\n if (stored && paletteMap.current.has(stored)) return stored;\n return defaultPalette;\n });\n\n const [resolvedMode, setResolvedMode] = useState<\"light\" | \"dark\">(() =>\n resolveMode(colorMode)\n );\n\n const setColorMode = useCallback(\n (mode: ColorMode) => {\n setColorModeState(mode);\n localStorage.setItem(`${storageKey}-mode`, mode);\n },\n [storageKey]\n );\n\n const setPalette = useCallback(\n (name: string) => {\n if (!paletteMap.current.has(name)) return;\n setPaletteState(name);\n localStorage.setItem(`${storageKey}-palette`, name);\n },\n [storageKey]\n );\n\n const toggleColorMode = useCallback(() => {\n setColorMode(resolvedMode === \"light\" ? \"dark\" : \"light\");\n }, [resolvedMode, setColorMode]);\n\n // Apply color mode class + palette vars\n useEffect(() => {\n const root = document.documentElement;\n const resolved = resolveMode(colorMode);\n setResolvedMode(resolved);\n\n // Set dark/light class\n root.classList.remove(\"light\", \"dark\");\n root.classList.add(resolved);\n\n // Collect all var keys from all palettes to clear\n const allKeys = new Set<string>();\n paletteMap.current.forEach((p) => {\n if (p.light) Object.keys(p.light).forEach((k) => allKeys.add(k));\n if (p.dark) Object.keys(p.dark).forEach((k) => allKeys.add(k));\n });\n allKeys.forEach((key) => root.style.removeProperty(key));\n\n // Apply current palette vars for resolved mode\n const currentPalette = paletteMap.current.get(palette);\n if (currentPalette) {\n const vars = resolved === \"dark\" ? currentPalette.dark : currentPalette.light;\n if (vars) {\n Object.entries(vars).forEach(([key, value]) => {\n root.style.setProperty(key, value);\n });\n }\n }\n }, [colorMode, palette]);\n\n // Listen for OS theme changes when in system mode\n useEffect(() => {\n if (colorMode !== \"system\") return;\n\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = () => {\n const resolved = resolveMode(\"system\");\n setResolvedMode(resolved);\n const root = document.documentElement;\n root.classList.remove(\"light\", \"dark\");\n root.classList.add(resolved);\n\n // Re-apply palette for new mode\n const allKeys = new Set<string>();\n paletteMap.current.forEach((p) => {\n if (p.light) Object.keys(p.light).forEach((k) => allKeys.add(k));\n if (p.dark) Object.keys(p.dark).forEach((k) => allKeys.add(k));\n });\n allKeys.forEach((key) => root.style.removeProperty(key));\n\n const currentPalette = paletteMap.current.get(palette);\n if (currentPalette) {\n const vars = resolved === \"dark\" ? currentPalette.dark : currentPalette.light;\n if (vars) {\n Object.entries(vars).forEach(([key, value]) => {\n root.style.setProperty(key, value);\n });\n }\n }\n };\n\n mq.addEventListener(\"change\", handler);\n return () => mq.removeEventListener(\"change\", handler);\n }, [colorMode, palette]);\n\n const paletteNames = Array.from(paletteMap.current.keys());\n\n return (\n <ThemeContext.Provider\n value={{\n colorMode,\n resolvedMode,\n setColorMode,\n toggleColorMode,\n palette,\n setPalette,\n palettes: paletteNames,\n }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n","import type { BloomPalette } from \"../components/theme/theme\";\n\nexport const midnightGarden: BloomPalette = {\n name: \"midnight\",\n light: {\n \"--bloom-font\": \"'Cormorant Garamond', serif\",\n \"--bloom-font-display\": \"'Playfair Display', serif\",\n \"--bloom-bg\": \"#F5F3F8\",\n \"--bloom-surface\": \"#EAE6F0\",\n \"--bloom-surface2\": \"#DBD5E4\",\n \"--bloom-text\": \"#1E1A28\",\n \"--bloom-text-secondary\": \"#6B6580\",\n \"--bloom-accent1\": \"#5E8C6A\",\n \"--bloom-accent1-deep\": \"#3D6B4A\",\n \"--bloom-accent2\": \"#6A7EC8\",\n \"--bloom-accent2-deep\": \"#4A5EA8\",\n \"--bloom-accent3\": \"#8B6AAE\",\n \"--bloom-accent3-deep\": \"#6A4A8E\",\n \"--bloom-accent4\": \"#C86A7E\",\n \"--bloom-accent4-deep\": \"#A84A5E\",\n \"--bloom-shadow\": \"0 2px 24px rgba(30,26,40,0.08)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(30,26,40,0.14)\",\n \"--bloom-radius-sm\": \"8px\",\n \"--bloom-radius\": \"12px\",\n \"--bloom-radius-lg\": \"16px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n dark: {\n \"--bloom-font\": \"'Cormorant Garamond', serif\",\n \"--bloom-font-display\": \"'Playfair Display', serif\",\n \"--bloom-bg\": \"#0F1117\",\n \"--bloom-surface\": \"#1A1D27\",\n \"--bloom-surface2\": \"#252A36\",\n \"--bloom-text\": \"#E2E0EC\",\n \"--bloom-text-secondary\": \"#8B87A0\",\n \"--bloom-accent1\": \"#5E8C6A\",\n \"--bloom-accent1-deep\": \"#3D6B4A\",\n \"--bloom-accent2\": \"#6A7EC8\",\n \"--bloom-accent2-deep\": \"#4A5EA8\",\n \"--bloom-accent3\": \"#8B6AAE\",\n \"--bloom-accent3-deep\": \"#6A4A8E\",\n \"--bloom-accent4\": \"#C86A7E\",\n \"--bloom-accent4-deep\": \"#A84A5E\",\n \"--bloom-shadow\": \"0 2px 24px rgba(0,0,0,0.3)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(0,0,0,0.4)\",\n \"--bloom-radius-sm\": \"8px\",\n \"--bloom-radius\": \"12px\",\n \"--bloom-radius-lg\": \"16px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n};\n\nexport const desertRose: BloomPalette = {\n name: \"desert\",\n light: {\n \"--bloom-font\": \"'Karla', sans-serif\",\n \"--bloom-font-display\": \"'Lora', serif\",\n \"--bloom-bg\": \"#FBF5EE\",\n \"--bloom-surface\": \"#F2E8DA\",\n \"--bloom-surface2\": \"#E6D8C4\",\n \"--bloom-text\": \"#3D2E1E\",\n \"--bloom-text-secondary\": \"#8C7A66\",\n \"--bloom-accent1\": \"#B8A080\",\n \"--bloom-accent1-deep\": \"#96795A\",\n \"--bloom-accent2\": \"#D4956A\",\n \"--bloom-accent2-deep\": \"#B87040\",\n \"--bloom-accent3\": \"#C4887C\",\n \"--bloom-accent3-deep\": \"#A8685C\",\n \"--bloom-accent4\": \"#CC6B5E\",\n \"--bloom-accent4-deep\": \"#A84A3E\",\n \"--bloom-shadow\": \"0 2px 24px rgba(61,46,30,0.08)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(61,46,30,0.14)\",\n \"--bloom-radius-sm\": \"16px\",\n \"--bloom-radius\": \"20px\",\n \"--bloom-radius-lg\": \"28px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n dark: {\n \"--bloom-font\": \"'Karla', sans-serif\",\n \"--bloom-font-display\": \"'Lora', serif\",\n \"--bloom-bg\": \"#1C1610\",\n \"--bloom-surface\": \"#28201A\",\n \"--bloom-surface2\": \"#362C22\",\n \"--bloom-text\": \"#E8DED0\",\n \"--bloom-text-secondary\": \"#9A8A76\",\n \"--bloom-accent1\": \"#A08868\",\n \"--bloom-accent1-deep\": \"#7E6848\",\n \"--bloom-accent2\": \"#C48050\",\n \"--bloom-accent2-deep\": \"#A06030\",\n \"--bloom-accent3\": \"#B07868\",\n \"--bloom-accent3-deep\": \"#905848\",\n \"--bloom-accent4\": \"#B85848\",\n \"--bloom-accent4-deep\": \"#983828\",\n \"--bloom-shadow\": \"0 2px 24px rgba(0,0,0,0.3)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(0,0,0,0.4)\",\n \"--bloom-radius-sm\": \"16px\",\n \"--bloom-radius\": \"20px\",\n \"--bloom-radius-lg\": \"28px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n};\n\nexport const oceanMist: BloomPalette = {\n name: \"ocean\",\n light: {\n \"--bloom-font\": \"'Nunito', sans-serif\",\n \"--bloom-font-display\": \"'Space Grotesk', sans-serif\",\n \"--bloom-bg\": \"#F4F8FA\",\n \"--bloom-surface\": \"#E8F0F4\",\n \"--bloom-surface2\": \"#D4E2EA\",\n \"--bloom-text\": \"#1A2E3A\",\n \"--bloom-text-secondary\": \"#5E7A8C\",\n \"--bloom-accent1\": \"#6AB8C4\",\n \"--bloom-accent1-deep\": \"#3A96A8\",\n \"--bloom-accent2\": \"#E0A860\",\n \"--bloom-accent2-deep\": \"#C08840\",\n \"--bloom-accent3\": \"#7CA0D4\",\n \"--bloom-accent3-deep\": \"#5A80B8\",\n \"--bloom-accent4\": \"#D47A7A\",\n \"--bloom-accent4-deep\": \"#B85A5A\",\n \"--bloom-shadow\": \"0 2px 24px rgba(26,46,58,0.06)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(26,46,58,0.1)\",\n \"--bloom-radius-sm\": \"6px\",\n \"--bloom-radius\": \"10px\",\n \"--bloom-radius-lg\": \"14px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n dark: {\n \"--bloom-font\": \"'Nunito', sans-serif\",\n \"--bloom-font-display\": \"'Space Grotesk', sans-serif\",\n \"--bloom-bg\": \"#0E1A20\",\n \"--bloom-surface\": \"#162228\",\n \"--bloom-surface2\": \"#1E2E36\",\n \"--bloom-text\": \"#D8E8EE\",\n \"--bloom-text-secondary\": \"#7A9AAC\",\n \"--bloom-accent1\": \"#4A9AAC\",\n \"--bloom-accent1-deep\": \"#2A7A8C\",\n \"--bloom-accent2\": \"#C89048\",\n \"--bloom-accent2-deep\": \"#A87030\",\n \"--bloom-accent3\": \"#5A80B8\",\n \"--bloom-accent3-deep\": \"#3A60A0\",\n \"--bloom-accent4\": \"#B85A5A\",\n \"--bloom-accent4-deep\": \"#983A3A\",\n \"--bloom-shadow\": \"0 2px 24px rgba(0,0,0,0.3)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(0,0,0,0.4)\",\n \"--bloom-radius-sm\": \"6px\",\n \"--bloom-radius\": \"10px\",\n \"--bloom-radius-lg\": \"14px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n};\n\nexport const builtInPalettes: BloomPalette[] = [midnightGarden, desertRose, oceanMist];\n"],"mappings":"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","names":["forwardRef","cva","jsx","forwardRef","forwardRef","cva","jsx","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","useState","cva","jsx","jsxs","forwardRef","useState","jsx","jsxs","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsxs","forwardRef","cva","jsx","forwardRef","useState","useMemo","jsx","jsxs","useState","useMemo","useState","useEffect","cva","jsx","jsxs","useState","variantIcons","useEffect","forwardRef","cva","jsx","forwardRef","forwardRef","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","createContext","useContext","useState","useEffect","useCallback","jsx"]}
1
+ {"version":3,"sources":["../src/utils/cn.ts","../src/utils/motion-presets.ts","../src/hooks/use-reduced-motion.ts","../src/hooks/use-breathing.ts","../src/components/button/button.tsx","../src/components/button/button.variants.ts","../src/components/card/card.tsx","../src/components/card/card.variants.ts","../src/components/input/input.tsx","../src/components/input/input.variants.ts","../src/components/toggle/toggle.tsx","../src/components/badge/badge.tsx","../src/components/badge/badge.variants.ts","../src/components/alert/alert.tsx","../src/components/alert/alert.variants.ts","../src/components/avatar/avatar.tsx","../src/components/avatar/avatar.variants.ts","../src/components/tooltip/tooltip.tsx","../src/components/progress/progress.tsx","../src/components/progress/progress.variants.ts","../src/components/slider/slider.tsx","../src/components/modal/modal.tsx","../src/components/dropdown/dropdown.tsx","../src/components/tabs/tabs.tsx","../src/components/tabs/tabs.variants.ts","../src/components/date-picker/date-picker.tsx","../src/components/toast/toast.tsx","../src/components/toast/toast.variants.ts","../src/components/skeleton/skeleton.tsx","../src/components/skeleton/skeleton.variants.ts","../src/components/checkbox/checkbox.tsx","../src/components/radio-group/radio-group.tsx","../src/components/select/select.tsx","../src/components/theme/theme.tsx","../src/palettes/built-in.ts"],"sourcesContent":["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import type { Transition, Variants } from \"motion/react\";\n\nexport const bloomTransition: Transition = {\n duration: 0.5,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionSlow: Transition = {\n duration: 0.8,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomTransitionFast: Transition = {\n duration: 0.3,\n ease: [0.4, 0, 0.2, 1],\n};\n\nexport const bloomSpring: Transition = {\n type: \"spring\",\n stiffness: 200,\n damping: 20,\n};\n\nexport const hoverLift: Variants = {\n initial: { y: 0, scale: 1 },\n hover: { y: -2, scale: 1 },\n tap: { y: 0, scale: 0.98 },\n};\n\nexport const cardHoverLift: Variants = {\n initial: { y: 0 },\n hover: { y: -4 },\n};\n\nexport const fadeIn: Variants = {\n initial: { opacity: 0 },\n animate: { opacity: 1 },\n exit: { opacity: 0 },\n};\n\nexport const slideUp: Variants = {\n initial: { opacity: 0, y: 12 },\n animate: { opacity: 1, y: 0 },\n exit: { opacity: 0, y: 12 },\n};\n","import { useState, useEffect } from \"react\";\n\nexport function useReducedMotion(): boolean {\n const [reduced, setReduced] = useState(() => {\n if (typeof window === \"undefined\") return false;\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n return mq.matches || hasClass;\n });\n\n useEffect(() => {\n const mq = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n\n const handleChange = () => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n };\n\n mq.addEventListener(\"change\", handleChange);\n\n const observer = new MutationObserver(() => {\n const hasClass = document.documentElement.classList.contains(\"bloom-reduced-motion\");\n setReduced(mq.matches || hasClass);\n });\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [\"class\"],\n });\n\n return () => {\n mq.removeEventListener(\"change\", handleChange);\n observer.disconnect();\n };\n }, []);\n\n return reduced;\n}\n","import { useMemo } from \"react\";\n\ninterface UseBreathingOptions {\n duration?: number;\n animation?: string;\n}\n\ninterface BreathingStyle {\n animationName: string;\n animationDuration: string;\n animationDelay: string;\n animationTimingFunction: string;\n animationIterationCount: string;\n}\n\nexport function useBreathing(options?: UseBreathingOptions): BreathingStyle {\n const { duration = 6, animation = \"bloom-breathe\" } = options ?? {};\n\n return useMemo(() => {\n const delay = Math.random() * duration;\n return {\n animationName: animation,\n animationDuration: `${duration}s`,\n animationDelay: `${delay.toFixed(2)}s`,\n animationTimingFunction: \"ease-in-out\",\n animationIterationCount: \"infinite\",\n };\n }, [duration, animation]);\n}\n","import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cn } from \"../../utils/cn\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\n\nexport type ButtonProps = ButtonHTMLAttributes<HTMLButtonElement> &\n ButtonVariants & {\n asChild?: boolean;\n children: ReactNode;\n };\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, asChild = false, children, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant }), className)}\n ref={ref}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import { cva } from \"class-variance-authority\";\n\nexport const buttonVariants = cva(\n [\n \"inline-flex items-center justify-center\",\n \"font-(family-name:--bloom-font) text-[14px] font-normal\",\n \"h-[44px] px-[28px]\",\n \"rounded-(--bloom-radius-pill)\",\n \"transition-all duration-(--bloom-duration) ease-(--bloom-ease)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n \"relative overflow-hidden cursor-pointer\",\n ],\n {\n variants: {\n variant: {\n primary: [\n \"bg-(--bloom-accent1-deep) text-white\",\n \"hover:-translate-y-[2px] hover:shadow-(--bloom-shadow-hover)\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n secondary: [\n \"bg-(--bloom-surface) color-(--bloom-text)\",\n \"border border-(--bloom-surface2)\",\n \"hover:-translate-y-[2px] hover:shadow-(--bloom-shadow-hover)\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n ghost: [\n \"bg-transparent color-(--bloom-text)\",\n \"hover:bg-(--bloom-surface)\",\n \"active:scale-[0.98]\",\n ],\n accent: [\n \"bg-(--bloom-accent3-deep) text-white\",\n \"hover:-translate-y-[2px] hover:shadow-(--bloom-shadow-hover)\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n danger: [\n \"bg-(--bloom-accent4-deep) text-white\",\n \"hover:-translate-y-[2px] hover:shadow-(--bloom-shadow-hover)\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n warning: [\n \"bg-(--bloom-accent2-deep) text-white\",\n \"hover:-translate-y-[2px] hover:shadow-(--bloom-shadow-hover)\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n success: [\n \"bg-(--bloom-accent1) color-(--bloom-accent1-deep)\",\n \"hover:-translate-y-[2px] hover:shadow-(--bloom-shadow-hover)\",\n \"active:translate-y-0 active:scale-[0.98]\",\n ],\n },\n },\n defaultVariants: {\n variant: \"primary\",\n },\n }\n);\n\nexport type ButtonVariants = Parameters<typeof buttonVariants>[0];\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { cardVariants, type CardVariants } from \"./card.variants\";\n\nexport type CardProps = HTMLAttributes<HTMLDivElement> & CardVariants;\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant, ...props }, ref) => (\n <div ref={ref} className={cn(cardVariants({ variant }), className)} {...props} />\n )\n);\nCard.displayName = \"Card\";\n\nexport const CardHeader = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-(--space-xl) pb-0\", className)} {...props} />\n )\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\n \"font-(family-name:--bloom-font-display) text-[18px] font-medium color-(--bloom-text) leading-(--bloom-leading-heading)\",\n className\n )}\n {...props}\n />\n )\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-(length:--bloom-text-caption) color-(--bloom-text-secondary) mt-(--space-xs)\", className)}\n {...props}\n />\n )\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-(--space-xl)\", className)} {...props} />\n )\n);\nCardContent.displayName = \"CardContent\";\n\nexport const CardFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-(--space-xl) pt-0 flex items-center\", className)} {...props} />\n )\n);\nCardFooter.displayName = \"CardFooter\";\n","import { cva } from \"class-variance-authority\";\n\nexport const cardVariants = cva(\n [\n \"rounded-(--bloom-radius-lg) bg-(--bloom-surface)\",\n \"shadow-(--bloom-shadow)\",\n \"transition-all duration-(--bloom-duration) ease-(--bloom-ease)\",\n \"relative overflow-hidden\",\n ],\n {\n variants: {\n variant: {\n default: \"\",\n interactive: [\n \"cursor-pointer\",\n \"border border-transparent\",\n \"hover:border-(--bloom-surface2)\",\n \"hover:-translate-y-[4px] hover:shadow-(--bloom-shadow-hover)\",\n ],\n featured: [\n \"border border-(--bloom-accent1)/30\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type CardVariants = Parameters<typeof cardVariants>[0];\n","import { forwardRef, type InputHTMLAttributes, type TextareaHTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { inputVariants } from \"./input.variants\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ className, type = \"text\", ...props }, ref) => (\n <input\n ref={ref}\n type={type}\n className={cn(inputVariants(), \"h-[44px]\", className)}\n {...props}\n />\n )\n);\nInput.displayName = \"Input\";\n\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nexport const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(\n ({ className, ...props }, ref) => (\n <textarea\n ref={ref}\n className={cn(inputVariants(), \"min-h-[100px] resize-y\", className)}\n {...props}\n />\n )\n);\nTextarea.displayName = \"Textarea\";\n","import { cva } from \"class-variance-authority\";\n\nexport const inputVariants = cva([\n \"w-full\",\n \"rounded-(--bloom-radius) bg-(--bloom-surface)\",\n \"color-(--bloom-text) text-(length:--bloom-text-body)\",\n \"font-(family-name:--bloom-font)\",\n \"px-(--space-lg) py-(--space-md)\",\n \"border border-(--bloom-surface2)\",\n \"transition-all duration-(--bloom-duration) ease-(--bloom-ease)\",\n \"placeholder:color-(--bloom-text-secondary)/60\",\n \"focus:outline-none focus:ring-4 focus:ring-(--bloom-accent1)/20 focus:border-(--bloom-accent1-deep)\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ToggleProps extends ComponentPropsWithoutRef<typeof SwitchPrimitive.Root> {\n label?: string;\n}\n\nexport const Toggle = forwardRef<HTMLButtonElement, ToggleProps>(\n ({ className, label, ...props }, ref) => (\n <label className=\"inline-flex items-center gap-(--space-md)\">\n <SwitchPrimitive.Root\n ref={ref}\n className={cn(\n \"peer inline-flex h-[28px] w-[50px] shrink-0 cursor-pointer items-center\",\n \"rounded-(--bloom-radius-pill)\",\n \"border border-transparent\",\n \"bg-(--bloom-surface2)\",\n \"transition-colors duration-(--bloom-duration) ease-(--bloom-ease)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-(--bloom-accent1-deep)\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n className={cn(\n \"pointer-events-none block h-[22px] w-[22px] rounded-full bg-white\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-(--bloom-duration-fast) ease-(--bloom-ease)\",\n \"data-[state=unchecked]:translate-x-[3px]\",\n \"data-[state=checked]:translate-x-[25px]\"\n )}\n />\n </SwitchPrimitive.Root>\n {label && (\n <span className=\"text-(length:--bloom-text-body) font-(family-name:--bloom-font) color-(--bloom-text)\">\n {label}\n </span>\n )}\n </label>\n )\n);\nToggle.displayName = \"Toggle\";\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { badgeVariants, type BadgeVariants } from \"./badge.variants\";\n\nconst dotColorMap = {\n sage: \"bg-(--bloom-accent1-deep)\",\n sand: \"bg-(--bloom-accent2-deep)\",\n lavender: \"bg-(--bloom-accent3-deep)\",\n rose: \"bg-(--bloom-accent4-deep)\",\n} as const;\n\nexport type BadgeProps = HTMLAttributes<HTMLSpanElement> &\n BadgeVariants & {\n dot?: boolean;\n };\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n ({ className, variant = \"sage\", dot = false, children, ...props }, ref) => (\n <span ref={ref} className={cn(badgeVariants({ variant }), className)} {...props}>\n {dot && (\n <span\n data-bloom-dot=\"\"\n className={cn(\n \"h-[6px] w-[6px] rounded-full\",\n \"animate-[bloom-breathe_5s_ease-in-out_infinite]\",\n dotColorMap[variant ?? \"sage\"]\n )}\n />\n )}\n {children}\n </span>\n )\n);\nBadge.displayName = \"Badge\";\n","import { cva } from \"class-variance-authority\";\n\nexport const badgeVariants = cva(\n [\n \"inline-flex items-center gap-(--space-xs)\",\n \"rounded-(--bloom-radius-pill)\",\n \"px-(--space-md) py-(--space-xs)\",\n \"text-(length:--bloom-text-micro) font-medium font-(family-name:--bloom-font)\",\n \"tracking-(--bloom-letter-wide) uppercase\",\n ],\n {\n variants: {\n variant: {\n sage: \"bg-(--bloom-accent1)/20 color-(--bloom-accent1-deep)\",\n sand: \"bg-(--bloom-accent2)/20 color-(--bloom-accent2-deep)\",\n lavender: \"bg-(--bloom-accent3)/20 color-(--bloom-accent3-deep)\",\n rose: \"bg-(--bloom-accent4)/20 color-(--bloom-accent4-deep)\",\n },\n },\n defaultVariants: {\n variant: \"sage\",\n },\n }\n);\n\nexport type BadgeVariants = Parameters<typeof badgeVariants>[0];\n","import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { alertVariants, alertIconColors, type AlertVariants } from \"./alert.variants\";\n\nexport type AlertProps = HTMLAttributes<HTMLDivElement> & AlertVariants;\n\nconst variantIcons: Record<string, ReactNode> = {\n success: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M6.5 10.5L8.5 12.5L13.5 7.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ),\n error: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.5 7.5L12.5 12.5M12.5 7.5L7.5 12.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n warning: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d=\"M10 3L18 17H2L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M10 8.5V12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"14.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n info: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 9V14\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"6.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n};\n\nexport const Alert = forwardRef<HTMLDivElement, AlertProps>(\n ({ className, variant = \"info\", children, ...props }, ref) => (\n <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props}>\n <div className={cn(\"shrink-0 mt-px\", alertIconColors[variant ?? \"info\"])}>\n {variantIcons[variant ?? \"info\"]}\n </div>\n <div className=\"flex-1 min-w-0\">\n {children}\n </div>\n </div>\n )\n);\nAlert.displayName = \"Alert\";\n\nexport const AlertTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h5\n ref={ref}\n className={cn(\n \"font-(family-name:--bloom-font-display) text-(length:--bloom-text-body) font-medium color-(--bloom-text)\",\n className\n )}\n {...props}\n />\n )\n);\nAlertTitle.displayName = \"AlertTitle\";\n\nexport const AlertDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p\n ref={ref}\n className={cn(\"text-(length:--bloom-text-caption) color-(--bloom-text-secondary) mt-(--space-xs)\", className)}\n {...props}\n />\n )\n);\nAlertDescription.displayName = \"AlertDescription\";\n","import { cva } from \"class-variance-authority\";\n\nexport const alertVariants = cva(\n [\n \"relative flex gap-(--space-md) items-start\",\n \"rounded-(--bloom-radius-lg) p-(--space-lg)\",\n \"font-(family-name:--bloom-font)\",\n \"border\",\n ],\n {\n variants: {\n variant: {\n info: \"bg-(--bloom-accent3)/10 border-(--bloom-accent3)/20\",\n success: \"bg-(--bloom-accent1)/10 border-(--bloom-accent1)/20\",\n warning: \"bg-(--bloom-accent2)/10 border-(--bloom-accent2)/20\",\n error: \"bg-(--bloom-accent4)/10 border-(--bloom-accent4)/20\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport const alertIconColors = {\n info: \"color-(--bloom-accent3-deep)\",\n success: \"color-(--bloom-accent1-deep)\",\n warning: \"color-(--bloom-accent2-deep)\",\n error: \"color-(--bloom-accent4-deep)\",\n} as const;\n\nexport type AlertVariants = Parameters<typeof alertVariants>[0];\n","import { forwardRef, useState, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\n\nexport type AvatarProps = HTMLAttributes<HTMLDivElement> &\n AvatarVariants & {\n initials?: string;\n src?: string;\n alt?: string;\n };\n\nexport const Avatar = forwardRef<HTMLDivElement, AvatarProps>(\n ({ className, size, initials, src, alt, ...props }, ref) => {\n const [imgError, setImgError] = useState(false);\n const showImage = src && !imgError;\n\n return (\n <div ref={ref} className={cn(avatarVariants({ size }), className)} {...props}>\n <span aria-hidden={showImage || undefined}>{initials}</span>\n {showImage && (\n <img\n src={src}\n alt={alt ?? initials ?? \"\"}\n onError={() => setImgError(true)}\n className=\"absolute inset-0 h-full w-full object-cover\"\n />\n )}\n </div>\n );\n }\n);\nAvatar.displayName = \"Avatar\";\n\nexport interface AvatarGroupProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const AvatarGroup = forwardRef<HTMLDivElement, AvatarGroupProps>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\"flex -space-x-2\", className)}\n {...props}\n />\n )\n);\nAvatarGroup.displayName = \"AvatarGroup\";\n","import { cva } from \"class-variance-authority\";\n\nexport const avatarVariants = cva(\n [\n \"relative inline-flex items-center justify-center\",\n \"rounded-full overflow-hidden\",\n \"bg-(--bloom-accent1)/20 color-(--bloom-accent1-deep)\",\n \"font-(family-name:--bloom-font) font-medium\",\n \"select-none shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[32px] w-[32px] text-(length:--bloom-text-micro)\",\n md: \"h-[40px] w-[40px] text-(length:--bloom-text-caption)\",\n lg: \"h-[56px] w-[56px] text-(length:--bloom-text-body)\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport type AvatarVariants = Parameters<typeof avatarVariants>[0];\n","import { type ReactNode } from \"react\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cn } from \"../../utils/cn\";\n\nexport const TooltipProvider = TooltipPrimitive.Provider;\n\nexport interface TooltipProps {\n content: ReactNode;\n children: ReactNode;\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n className?: string;\n}\n\nexport function Tooltip({ content, children, side = \"top\", className }: TooltipProps) {\n return (\n <TooltipPrimitive.Root>\n <TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n side={side}\n sideOffset={8}\n className={cn(\n \"bloom z-50 rounded-(--bloom-radius)\",\n \"bg-(--bloom-surface) color-(--bloom-text)\",\n \"border border-(--bloom-surface2)\",\n \"px-(--space-md) py-(--space-sm)\",\n \"text-(length:--bloom-text-caption) font-(family-name:--bloom-font)\",\n \"shadow-(--bloom-shadow)\",\n \"animate-in fade-in-0 zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {content}\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n}\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { progressTrackVariants, progressFillVariants } from \"./progress.variants\";\n\nexport interface ProgressProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n}\n\nexport const Progress = forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value = 0, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(progressTrackVariants(), className)}\n {...props}\n >\n <div\n className={progressFillVariants()}\n style={{ width: `${clampedValue}%` }}\n >\n {/* Animated glow sweep */}\n <div\n className=\"absolute inset-0 rounded-(--bloom-radius-pill) overflow-hidden\"\n >\n <div\n className=\"absolute inset-y-0 w-[60%] bg-gradient-to-r from-transparent via-white/25 to-transparent animate-[bloom-sweep_2.5s_ease-in-out_infinite]\"\n />\n </div>\n </div>\n </div>\n );\n }\n);\nProgress.displayName = \"Progress\";\n\nexport interface ProgressCircularProps extends HTMLAttributes<HTMLDivElement> {\n value?: number;\n size?: number;\n strokeWidth?: number;\n}\n\nexport const ProgressCircular = forwardRef<HTMLDivElement, ProgressCircularProps>(\n ({ className, value = 0, size = 48, strokeWidth = 4, ...props }, ref) => {\n const clampedValue = Math.min(100, Math.max(0, value));\n const radius = (size - strokeWidth) / 2;\n const circumference = 2 * Math.PI * radius;\n const offset = circumference - (clampedValue / 100) * circumference;\n\n return (\n <div\n ref={ref}\n role=\"progressbar\"\n aria-valuenow={clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\"inline-flex\", className)}\n {...props}\n >\n <svg width={size} height={size} viewBox={`0 0 ${size} ${size}`}>\n <defs>\n <linearGradient id={`bloom-sweep-grad-${size}`} gradientUnits=\"userSpaceOnUse\"\n x1={size / 2} y1=\"0\" x2={size / 2} y2={size}>\n <stop offset=\"0%\" stopColor=\"white\" stopOpacity=\"0\" />\n <stop offset=\"50%\" stopColor=\"white\" stopOpacity=\"0.3\" />\n <stop offset=\"100%\" stopColor=\"white\" stopOpacity=\"0\" />\n <animateTransform\n attributeName=\"gradientTransform\"\n type=\"rotate\"\n values={`0 ${size / 2} ${size / 2};360 ${size / 2} ${size / 2}`}\n dur=\"2.5s\"\n repeatCount=\"indefinite\"\n />\n </linearGradient>\n <mask id={`bloom-sweep-mask-${size}`}>\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"white\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n />\n </mask>\n </defs>\n {/* Track */}\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-surface2)\"\n strokeWidth={strokeWidth}\n />\n {/* Fill */}\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke=\"var(--bloom-accent1-deep)\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n transform={`rotate(-90 ${size / 2} ${size / 2})`}\n style={{\n transition: `stroke-dashoffset var(--bloom-duration-slow) var(--bloom-ease)`,\n }}\n />\n {/* Sweep glow */}\n <circle\n cx={size / 2}\n cy={size / 2}\n r={radius}\n fill=\"none\"\n stroke={`url(#bloom-sweep-grad-${size})`}\n strokeWidth={strokeWidth}\n mask={`url(#bloom-sweep-mask-${size})`}\n />\n </svg>\n </div>\n );\n }\n);\nProgressCircular.displayName = \"ProgressCircular\";\n","import { cva } from \"class-variance-authority\";\n\nexport const progressTrackVariants = cva([\n \"relative w-full overflow-hidden\",\n \"rounded-(--bloom-radius-pill)\",\n \"bg-(--bloom-surface2)\",\n \"h-[8px]\",\n]);\n\nexport const progressFillVariants = cva([\n \"h-full rounded-(--bloom-radius-pill)\",\n \"transition-[width] duration-(--bloom-duration-slow) ease-(--bloom-ease)\",\n \"bg-(--bloom-accent1-deep)\",\n \"relative\",\n]);\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SliderPrimitive from \"@radix-ui/react-slider\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface SliderProps extends ComponentPropsWithoutRef<typeof SliderPrimitive.Root> {}\n\nexport const Slider = forwardRef<HTMLSpanElement, SliderProps>(\n ({ className, disabled, ...props }, ref) => (\n <SliderPrimitive.Root\n ref={ref}\n disabled={disabled}\n className={cn(\n \"relative flex w-full touch-none select-none items-center\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n className={cn(\n \"relative h-[6px] w-full grow overflow-hidden\",\n \"rounded-(--bloom-radius-pill)\",\n \"bg-(--bloom-surface2)\"\n )}\n >\n <SliderPrimitive.Range\n className={cn(\n \"absolute h-full\",\n \"bg-(--bloom-accent1-deep)\",\n \"rounded-(--bloom-radius-pill)\"\n )}\n />\n </SliderPrimitive.Track>\n <SliderPrimitive.Thumb\n aria-disabled={disabled ? true : undefined}\n className={cn(\n \"block h-[24px] w-[24px] rounded-full\",\n \"bg-white border-[2px] border-(--bloom-accent1-deep)\",\n \"shadow-[0_1px_4px_rgba(0,0,0,0.1)]\",\n \"transition-transform duration-(--bloom-duration-fast) ease-(--bloom-ease)\",\n \"hover:scale-110\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/30\",\n \"cursor-grab active:cursor-grabbing\"\n )}\n />\n </SliderPrimitive.Root>\n )\n);\nSlider.displayName = \"Slider\";\n","import { type ReactNode } from \"react\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ModalProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n title?: string;\n description?: string;\n children: ReactNode;\n className?: string;\n}\n\nexport function Modal({ open, onOpenChange, title, description, children, className }: ModalProps) {\n return (\n <DialogPrimitive.Root open={open} onOpenChange={onOpenChange}>\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className={cn(\n \"fixed inset-0 z-50 bg-black/40 backdrop-blur-sm\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0\"\n )}\n />\n <DialogPrimitive.Content\n className={cn(\n \"bloom fixed left-1/2 top-1/2 z-50\",\n \"-translate-x-1/2 -translate-y-1/2\",\n \"w-full max-w-[480px]\",\n \"rounded-(--bloom-radius-lg)\",\n \"bg-(--bloom-surface) p-(--space-xl)\",\n \"shadow-(--bloom-shadow-hover)\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n \"focus:outline-none\",\n className\n )}\n >\n {title && (\n <DialogPrimitive.Title\n className=\"font-(family-name:--bloom-font-display) text-(length:--bloom-text-heading) font-medium color-(--bloom-text) mb-(--space-sm)\"\n >\n {title}\n </DialogPrimitive.Title>\n )}\n {description && (\n <DialogPrimitive.Description\n className=\"text-(length:--bloom-text-body) color-(--bloom-text-secondary) mb-(--space-lg)\"\n >\n {description}\n </DialogPrimitive.Description>\n )}\n {children}\n <DialogPrimitive.Close\n className={cn(\n \"absolute top-(--space-lg) right-(--space-lg)\",\n \"inline-flex items-center justify-center\",\n \"h-[32px] w-[32px] rounded-full\",\n \"color-(--bloom-text-secondary) hover:color-(--bloom-text)\",\n \"hover:bg-(--bloom-surface2)\",\n \"transition-colors duration-(--bloom-duration-fast)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/30\"\n )}\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n </DialogPrimitive.Root>\n );\n}\n","import { type ReactNode, type ComponentPropsWithoutRef } from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DropdownProps {\n trigger: ReactNode;\n children: ReactNode;\n className?: string;\n}\n\nexport function Dropdown({ trigger, children, className }: DropdownProps) {\n return (\n <DropdownMenuPrimitive.Root>\n <DropdownMenuPrimitive.Trigger asChild>{trigger}</DropdownMenuPrimitive.Trigger>\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 min-w-[180px] overflow-hidden\",\n \"rounded-(--bloom-radius)\",\n \"bg-(--bloom-surface) p-(--space-xs)\",\n \"shadow-(--bloom-shadow-hover)\",\n \"border border-(--bloom-surface2)\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n >\n {children}\n </DropdownMenuPrimitive.Content>\n </DropdownMenuPrimitive.Portal>\n </DropdownMenuPrimitive.Root>\n );\n}\n\nexport interface DropdownItemProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> {}\n\nexport function DropdownItem({ className, ...props }: DropdownItemProps) {\n return (\n <DropdownMenuPrimitive.Item\n className={cn(\n \"relative flex items-center\",\n \"rounded-(--bloom-radius-sm)\",\n \"px-(--space-md) py-(--space-sm)\",\n \"text-(length:--bloom-text-body) font-(family-name:--bloom-font) color-(--bloom-text)\",\n \"cursor-pointer select-none outline-none\",\n \"transition-colors duration-(--bloom-duration-fast)\",\n \"data-[highlighted]:bg-(--bloom-surface2)\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport interface DropdownSeparatorProps extends ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> {}\n\nexport function DropdownSeparator({ className, ...props }: DropdownSeparatorProps) {\n return (\n <DropdownMenuPrimitive.Separator\n className={cn(\"h-px my-(--space-xs) bg-(--bloom-surface2)\", className)}\n {...props}\n />\n );\n}\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport { cn } from \"../../utils/cn\";\nimport { tabsListVariants, type TabsListVariants } from \"./tabs.variants\";\n\nexport const Tabs = TabsPrimitive.Root;\n\nexport type TabsListProps = ComponentPropsWithoutRef<typeof TabsPrimitive.List> &\n TabsListVariants;\n\nexport const TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n ({ className, variant, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n);\nTabsList.displayName = \"TabsList\";\n\nexport const TabsTrigger = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap\",\n \"px-(--space-lg) py-(--space-sm)\",\n \"text-(length:--bloom-text-body) font-(family-name:--bloom-font)\",\n \"color-(--bloom-text-secondary)\",\n \"rounded-(--bloom-radius-pill)\",\n \"transition-all duration-(--bloom-duration) ease-(--bloom-ease)\",\n \"hover:color-(--bloom-text)\",\n \"data-[state=active]:color-(--bloom-text)\",\n \"data-[state=active]:bg-(--bloom-surface2)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/30\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport const TabsContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-(--space-lg)\",\n \"focus-visible:outline-none\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = \"TabsContent\";\n","import { cva } from \"class-variance-authority\";\n\nexport const tabsListVariants = cva(\n [\n \"inline-flex items-center gap-(--space-xs)\",\n \"font-(family-name:--bloom-font)\",\n ],\n {\n variants: {\n variant: {\n default: \"border-b border-(--bloom-surface2)\",\n pill: [\n \"bg-(--bloom-surface) p-(--space-xs)\",\n \"rounded-(--bloom-radius-pill)\",\n ],\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nexport type TabsListVariants = Parameters<typeof tabsListVariants>[0];\n","import { useState, useMemo } from \"react\";\nimport * as Popover from \"@radix-ui/react-popover\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface DatePickerProps {\n value?: Date;\n onChange?: (date: Date) => void;\n placeholder?: string;\n className?: string;\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfMonth(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nconst MONTH_NAMES = [\n \"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n \"July\", \"August\", \"September\", \"October\", \"November\", \"December\",\n];\n\nconst DAY_NAMES = [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"];\n\nexport function DatePicker({ value, onChange, placeholder = \"Select date\", className }: DatePickerProps) {\n const [open, setOpen] = useState(false);\n const [viewDate, setViewDate] = useState(() => value ?? new Date());\n const viewYear = viewDate.getFullYear();\n const viewMonth = viewDate.getMonth();\n\n const days = useMemo(() => {\n const daysInMonth = getDaysInMonth(viewYear, viewMonth);\n const firstDay = getFirstDayOfMonth(viewYear, viewMonth);\n const cells: Array<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 return cells;\n }, [viewYear, viewMonth]);\n\n const isSelected = (day: number) => {\n if (!value) return false;\n return value.getFullYear() === viewYear && value.getMonth() === viewMonth && value.getDate() === day;\n };\n\n const prevMonth = () => setViewDate(new Date(viewYear, viewMonth - 1, 1));\n const nextMonth = () => setViewDate(new Date(viewYear, viewMonth + 1, 1));\n\n const selectDay = (day: number) => {\n const selected = new Date(viewYear, viewMonth, day);\n onChange?.(selected);\n setOpen(false);\n };\n\n const formattedValue = value\n ? value.toLocaleDateString(\"en-US\", { month: \"short\", day: \"numeric\", year: \"numeric\" })\n : null;\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <button\n className={cn(\n \"inline-flex items-center gap-(--space-sm)\",\n \"h-[44px] px-(--space-lg)\",\n \"rounded-(--bloom-radius) bg-(--bloom-surface)\",\n \"border border-(--bloom-surface2)\",\n \"text-(length:--bloom-text-body) font-(family-name:--bloom-font) color-(--bloom-text)\",\n \"transition-all duration-(--bloom-duration) ease-(--bloom-ease)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/20\",\n !formattedValue && \"color-(--bloom-text-secondary)\",\n className\n )}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <rect x=\"2\" y=\"3\" width=\"12\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M2 6h12\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M5 1v3M11 1v3\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n {formattedValue ?? placeholder}\n </button>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content\n sideOffset={8}\n className={cn(\n \"bloom z-50 w-[280px]\",\n \"rounded-(--bloom-radius-lg)\",\n \"bg-(--bloom-surface) p-(--space-lg)\",\n \"shadow-(--bloom-shadow-hover)\",\n \"border border-(--bloom-surface2)\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n )}\n >\n <div className=\"flex items-center justify-between mb-(--space-md)\">\n <button\n onClick={prevMonth}\n className=\"p-(--space-xs) rounded-full hover:bg-(--bloom-surface2) transition-colors\"\n aria-label=\"Previous month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M10 4l-4 4 4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n <span className=\"font-(family-name:--bloom-font-display) text-(length:--bloom-text-body) font-medium color-(--bloom-text)\">\n {MONTH_NAMES[viewMonth]} {viewYear}\n </span>\n <button\n onClick={nextMonth}\n className=\"p-(--space-xs) rounded-full hover:bg-(--bloom-surface2) transition-colors\"\n aria-label=\"Next month\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M6 4l4 4-4 4\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n </button>\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px] mb-(--space-xs)\">\n {DAY_NAMES.map((d) => (\n <div key={d} className=\"text-center text-(length:--bloom-text-micro) color-(--bloom-text-secondary) font-medium py-(--space-xs)\">\n {d}\n </div>\n ))}\n </div>\n\n <div className=\"grid grid-cols-7 gap-[2px]\">\n {days.map((day, i) =>\n day === null ? (\n <div key={`empty-${i}`} />\n ) : (\n <button\n key={day}\n onClick={() => selectDay(day)}\n className={cn(\n \"h-[36px] w-[36px] rounded-full\",\n \"flex items-center justify-center\",\n \"text-(length:--bloom-text-caption) font-(family-name:--bloom-font)\",\n \"transition-colors duration-(--bloom-duration-fast)\",\n \"hover:bg-(--bloom-accent1)/20\",\n isSelected(day)\n ? \"bg-(--bloom-accent1-deep) color-white\"\n : \"color-(--bloom-text)\"\n )}\n >\n {day}\n </button>\n )\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n","import {\n createContext,\n useContext,\n useState,\n useCallback,\n useEffect,\n type ReactNode,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { toastVariants, toastIconColors } from \"./toast.variants\";\n\ninterface ToastData {\n id: string;\n title: string;\n description?: string;\n duration?: number;\n variant?: \"info\" | \"success\" | \"warning\" | \"error\" | null;\n}\n\ninterface ToastContextValue {\n toast: (data: Omit<ToastData, \"id\">) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within <ToastProvider>\");\n return ctx;\n}\n\nlet toastId = 0;\n\nexport function ToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<ToastData[]>([]);\n\n const toast = useCallback((data: Omit<ToastData, \"id\">) => {\n const id = String(++toastId);\n setToasts((prev) => [...prev, { ...data, id }]);\n }, []);\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n return (\n <ToastContext.Provider value={{ toast }}>\n {children}\n <div className=\"bloom fixed bottom-(--space-xl) right-(--space-xl) z-[100] flex flex-col gap-(--space-md)\">\n {toasts.map((t) => (\n <ToastItem key={t.id} toast={t} onDismiss={dismiss} />\n ))}\n </div>\n </ToastContext.Provider>\n );\n}\n\nconst variantIcons: Record<string, ReactNode> = {\n success: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M6.5 10.5L8.5 12.5L13.5 7.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n ),\n error: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M7.5 7.5L12.5 12.5M12.5 7.5L7.5 12.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n ),\n warning: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <path d=\"M10 3L18 17H2L10 3Z\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinejoin=\"round\" />\n <path d=\"M10 8.5V12\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"14.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n info: (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 9V14\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n <circle cx=\"10\" cy=\"6.5\" r=\"0.75\" fill=\"currentColor\" />\n </svg>\n ),\n};\n\nfunction ToastItem({ toast: t, onDismiss }: { toast: ToastData; onDismiss: (id: string) => void }) {\n const duration = t.duration ?? 4000;\n const variant = t.variant ?? \"info\";\n\n useEffect(() => {\n const timer = setTimeout(() => onDismiss(t.id), duration);\n return () => clearTimeout(timer);\n }, [t.id, duration, onDismiss]);\n\n return (\n <div className={cn(toastVariants({ variant: t.variant }))}>\n <div className={cn(\"shrink-0 mt-[1px]\", toastIconColors[variant])}>\n {variantIcons[variant]}\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-(length:--bloom-text-body) font-medium color-(--bloom-text)\">\n {t.title}\n </p>\n {t.description && (\n <p className=\"text-(length:--bloom-text-caption) color-(--bloom-text-secondary) mt-(--space-xs)\">\n {t.description}\n </p>\n )}\n </div>\n <button\n onClick={() => onDismiss(t.id)}\n className=\"color-(--bloom-text-secondary) hover:color-(--bloom-text) transition-colors shrink-0 rounded-full h-[28px] w-[28px] inline-flex items-center justify-center hover:bg-(--bloom-surface2)\"\n aria-label=\"Dismiss\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M12 4L4 12M4 4l8 8\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n );\n}\n","import { cva } from \"class-variance-authority\";\n\nexport const toastVariants = cva(\n [\n \"relative flex items-center gap-(--space-md)\",\n \"w-full max-w-[380px]\",\n \"rounded-(--bloom-radius-lg)\",\n \"p-(--space-lg)\",\n \"shadow-(--bloom-shadow-hover)\",\n \"border\",\n \"font-(family-name:--bloom-font)\",\n \"overflow-hidden\",\n \"animate-in fade-in-0 slide-in-from-bottom-4\",\n ],\n {\n variants: {\n variant: {\n info: \"bg-(--bloom-surface) border-(--bloom-surface2)\",\n success: \"bg-(--bloom-accent1)/10 border-(--bloom-accent1)/20\",\n warning: \"bg-(--bloom-accent2)/10 border-(--bloom-accent2)/20\",\n error: \"bg-(--bloom-accent4)/10 border-(--bloom-accent4)/20\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport type ToastVariants = Parameters<typeof toastVariants>[0];\n\nexport const toastIconColors = {\n info: \"color-(--bloom-accent3-deep)\",\n success: \"color-(--bloom-accent1-deep)\",\n warning: \"color-(--bloom-accent2-deep)\",\n error: \"color-(--bloom-accent4-deep)\",\n} as const;\n","import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { skeletonVariants, type SkeletonVariants } from \"./skeleton.variants\";\n\nexport type SkeletonProps = HTMLAttributes<HTMLDivElement> & SkeletonVariants;\n\nexport const Skeleton = forwardRef<HTMLDivElement, SkeletonProps>(\n ({ className, variant, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(skeletonVariants({ variant }), className)}\n aria-hidden=\"true\"\n {...props}\n />\n )\n);\nSkeleton.displayName = \"Skeleton\";\n","import { cva } from \"class-variance-authority\";\n\nexport const skeletonVariants = cva(\n [\n \"bg-(--bloom-surface2)\",\n \"animate-[bloom-breathe_3s_ease-in-out_infinite]\",\n ],\n {\n variants: {\n variant: {\n text: \"h-[16px] w-full rounded-(--bloom-radius-sm)\",\n card: \"h-[200px] w-full rounded-(--bloom-radius-lg)\",\n avatar: \"h-[40px] w-[40px] rounded-full\",\n custom: \"\",\n },\n },\n defaultVariants: {\n variant: \"text\",\n },\n }\n);\n\nexport type SkeletonVariants = Parameters<typeof skeletonVariants>[0];\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport { cn } from \"../../utils/cn\";\n\nexport type CheckboxProps = ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root> & {\n label?: string;\n};\n\nexport const Checkbox = forwardRef<HTMLButtonElement, CheckboxProps>(\n ({ className, label, ...props }, ref) => {\n const checkbox = (\n <CheckboxPrimitive.Root\n ref={ref}\n style={{ borderRadius: \"var(--bloom-radius-checkbox)\" }}\n className={cn(\n \"peer h-[20px] w-[20px] shrink-0 cursor-pointer\",\n \"border border-(--bloom-surface2)\",\n \"bg-(--bloom-surface)\",\n \"transition-all duration-(--bloom-duration-fast) ease-(--bloom-ease)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:bg-(--bloom-accent1-deep) data-[state=checked]:border-(--bloom-accent1-deep)\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator className=\"flex items-center justify-center\">\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M2.5 6l2.5 2.5 4.5-5\" />\n </svg>\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n\n if (!label) return checkbox;\n\n return (\n <label className=\"inline-flex items-center gap-(--space-sm) cursor-pointer\">\n {checkbox}\n <span className=\"text-(length:--bloom-text-body) font-(family-name:--bloom-font) color-(--bloom-text)\">\n {label}\n </span>\n </label>\n );\n }\n);\nCheckbox.displayName = \"Checkbox\";\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\";\nimport { cn } from \"../../utils/cn\";\n\nexport type RadioGroupProps = ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root>;\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n ({ className, ...props }, ref) => (\n <RadioGroupPrimitive.Root\n ref={ref}\n className={cn(\"flex flex-col gap-(--space-sm)\", className)}\n {...props}\n />\n )\n);\nRadioGroup.displayName = \"RadioGroup\";\n\nexport type RadioGroupItemProps = ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Item> & {\n label?: string;\n};\n\nexport const RadioGroupItem = forwardRef<HTMLButtonElement, RadioGroupItemProps>(\n ({ className, label, ...props }, ref) => {\n const item = (\n <RadioGroupPrimitive.Item\n ref={ref}\n className={cn(\n \"h-[20px] w-[20px] shrink-0 cursor-pointer\",\n \"rounded-full\",\n \"border border-(--bloom-surface2)\",\n \"bg-(--bloom-surface)\",\n \"transition-all duration-(--bloom-duration-fast) ease-(--bloom-ease)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/30\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[state=checked]:border-(--bloom-accent1-deep)\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator className=\"flex items-center justify-center w-full h-full\">\n <span style={{ display: \"block\", width: 8, height: 8, borderRadius: \"50%\", backgroundColor: \"var(--bloom-accent1-deep)\" }} />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n\n if (!label) return item;\n\n return (\n <label className=\"inline-flex items-center gap-(--space-sm) cursor-pointer\">\n {item}\n <span className=\"text-(length:--bloom-text-body) font-(family-name:--bloom-font) color-(--bloom-text)\">\n {label}\n </span>\n </label>\n );\n }\n);\nRadioGroupItem.displayName = \"RadioGroupItem\";\n","import { forwardRef, type ComponentPropsWithoutRef } from \"react\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { cn } from \"../../utils/cn\";\n\nexport type SelectProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Root> & {\n placeholder?: string;\n className?: string;\n};\n\nexport const Select = SelectPrimitive.Root;\n\nexport type SelectTriggerProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>;\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n ({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-between gap-(--space-sm)\",\n \"h-[44px] w-full px-(--space-lg)\",\n \"rounded-(--bloom-radius) bg-(--bloom-surface)\",\n \"border border-(--bloom-surface2)\",\n \"text-(length:--bloom-text-body) font-(family-name:--bloom-font) color-(--bloom-text)\",\n \"transition-all duration-(--bloom-duration) ease-(--bloom-ease)\",\n \"focus-visible:outline-none focus-visible:ring-4 focus-visible:ring-(--bloom-accent1)/20 focus-visible:border-(--bloom-accent1-deep)\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"data-[placeholder]:color-(--bloom-text-secondary)\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M4 6l4 4 4-4\" />\n </svg>\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n);\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport const SelectValue = SelectPrimitive.Value;\n\nexport type SelectContentProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Content>;\n\nexport const SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(\n ({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n position={position}\n sideOffset={8}\n className={cn(\n \"bloom z-50 min-w-(--radix-select-trigger-width) overflow-hidden\",\n \"rounded-(--bloom-radius)\",\n \"bg-(--bloom-surface) p-(--space-xs)\",\n \"shadow-(--bloom-shadow-hover)\",\n \"border border-(--bloom-surface2)\",\n \"data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n \"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n {...props}\n >\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" && \"w-full min-w-(--radix-select-trigger-width)\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n);\nSelectContent.displayName = \"SelectContent\";\n\nexport type SelectItemProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Item>;\n\nexport const SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(\n ({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex items-center\",\n \"rounded-(--bloom-radius-sm)\",\n \"px-(--space-md) py-(--space-sm) pl-(--space-2xl)\",\n \"text-(length:--bloom-text-body) font-(family-name:--bloom-font) color-(--bloom-text)\",\n \"cursor-pointer select-none outline-none\",\n \"transition-colors duration-(--bloom-duration-fast)\",\n \"data-[highlighted]:bg-(--bloom-surface2)\",\n \"data-[disabled]:opacity-50 data-[disabled]:pointer-events-none\",\n className\n )}\n {...props}\n >\n <span className=\"absolute left-(--space-sm) flex h-[16px] w-[16px] items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M2.5 6l2.5 2.5 4.5-5\" />\n </svg>\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n);\nSelectItem.displayName = \"SelectItem\";\n\nexport type SelectSeparatorProps = ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>;\n\nexport const SelectSeparator = forwardRef<HTMLDivElement, SelectSeparatorProps>(\n ({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"h-px my-(--space-xs) bg-(--bloom-surface2)\", className)}\n {...props}\n />\n )\n);\nSelectSeparator.displayName = \"SelectSeparator\";\n","import {\n createContext,\n useContext,\n useState,\n useEffect,\n useCallback,\n useRef,\n type ReactNode,\n} from \"react\";\n\ntype ColorMode = \"light\" | \"dark\" | \"system\";\n\nexport interface BloomPalette {\n name: string;\n light?: Record<string, string>;\n dark?: Record<string, string>;\n}\n\ninterface ThemeContextValue {\n colorMode: ColorMode;\n resolvedMode: \"light\" | \"dark\";\n setColorMode: (mode: ColorMode) => void;\n toggleColorMode: () => void;\n palette: string;\n setPalette: (name: string) => void;\n palettes: string[];\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport function useTheme(): ThemeContextValue {\n const ctx = useContext(ThemeContext);\n if (!ctx) throw new Error(\"useTheme must be used within <ThemeProvider>\");\n return ctx;\n}\n\nfunction getSystemPreference(): \"light\" | \"dark\" {\n if (typeof window === \"undefined\") return \"light\";\n return window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n}\n\nfunction resolveMode(mode: ColorMode): \"light\" | \"dark\" {\n if (mode === \"system\") return getSystemPreference();\n return mode;\n}\n\nexport interface ThemeProviderProps {\n children: ReactNode;\n defaultColorMode?: ColorMode;\n defaultPalette?: string;\n palettes?: BloomPalette[];\n storageKey?: string;\n}\n\nexport function ThemeProvider({\n children,\n defaultColorMode = \"system\",\n defaultPalette = \"bloom\",\n palettes = [],\n storageKey = \"bloom-theme\",\n}: ThemeProviderProps) {\n const paletteMap = useRef(\n new Map<string, BloomPalette>([\n [\"bloom\", { name: \"bloom\" }],\n ...palettes.map((p) => [p.name, p] as const),\n ])\n );\n\n const [colorMode, setColorModeState] = useState<ColorMode>(() => {\n if (typeof window === \"undefined\") return defaultColorMode;\n const stored = localStorage.getItem(`${storageKey}-mode`);\n if (stored === \"light\" || stored === \"dark\" || stored === \"system\") return stored;\n return defaultColorMode;\n });\n\n const [palette, setPaletteState] = useState<string>(() => {\n if (typeof window === \"undefined\") return defaultPalette;\n const stored = localStorage.getItem(`${storageKey}-palette`);\n if (stored && paletteMap.current.has(stored)) return stored;\n return defaultPalette;\n });\n\n const [resolvedMode, setResolvedMode] = useState<\"light\" | \"dark\">(() =>\n resolveMode(colorMode)\n );\n\n const setColorMode = useCallback(\n (mode: ColorMode) => {\n setColorModeState(mode);\n localStorage.setItem(`${storageKey}-mode`, mode);\n },\n [storageKey]\n );\n\n const setPalette = useCallback(\n (name: string) => {\n if (!paletteMap.current.has(name)) return;\n setPaletteState(name);\n localStorage.setItem(`${storageKey}-palette`, name);\n },\n [storageKey]\n );\n\n const toggleColorMode = useCallback(() => {\n setColorMode(resolvedMode === \"light\" ? \"dark\" : \"light\");\n }, [resolvedMode, setColorMode]);\n\n // Apply color mode class + palette vars\n useEffect(() => {\n const root = document.documentElement;\n const resolved = resolveMode(colorMode);\n setResolvedMode(resolved);\n\n // Set dark/light class\n root.classList.remove(\"light\", \"dark\");\n root.classList.add(resolved);\n\n // Collect all var keys from all palettes to clear\n const allKeys = new Set<string>();\n paletteMap.current.forEach((p) => {\n if (p.light) Object.keys(p.light).forEach((k) => allKeys.add(k));\n if (p.dark) Object.keys(p.dark).forEach((k) => allKeys.add(k));\n });\n allKeys.forEach((key) => root.style.removeProperty(key));\n\n // Apply current palette vars for resolved mode\n const currentPalette = paletteMap.current.get(palette);\n if (currentPalette) {\n const vars = resolved === \"dark\" ? currentPalette.dark : currentPalette.light;\n if (vars) {\n Object.entries(vars).forEach(([key, value]) => {\n root.style.setProperty(key, value);\n });\n }\n }\n }, [colorMode, palette]);\n\n // Listen for OS theme changes when in system mode\n useEffect(() => {\n if (colorMode !== \"system\") return;\n\n const mq = window.matchMedia(\"(prefers-color-scheme: dark)\");\n const handler = () => {\n const resolved = resolveMode(\"system\");\n setResolvedMode(resolved);\n const root = document.documentElement;\n root.classList.remove(\"light\", \"dark\");\n root.classList.add(resolved);\n\n // Re-apply palette for new mode\n const allKeys = new Set<string>();\n paletteMap.current.forEach((p) => {\n if (p.light) Object.keys(p.light).forEach((k) => allKeys.add(k));\n if (p.dark) Object.keys(p.dark).forEach((k) => allKeys.add(k));\n });\n allKeys.forEach((key) => root.style.removeProperty(key));\n\n const currentPalette = paletteMap.current.get(palette);\n if (currentPalette) {\n const vars = resolved === \"dark\" ? currentPalette.dark : currentPalette.light;\n if (vars) {\n Object.entries(vars).forEach(([key, value]) => {\n root.style.setProperty(key, value);\n });\n }\n }\n };\n\n mq.addEventListener(\"change\", handler);\n return () => mq.removeEventListener(\"change\", handler);\n }, [colorMode, palette]);\n\n const paletteNames = Array.from(paletteMap.current.keys());\n\n return (\n <ThemeContext.Provider\n value={{\n colorMode,\n resolvedMode,\n setColorMode,\n toggleColorMode,\n palette,\n setPalette,\n palettes: paletteNames,\n }}\n >\n {children}\n </ThemeContext.Provider>\n );\n}\n","import type { BloomPalette } from \"../components/theme/theme\";\n\nexport const midnightGarden: BloomPalette = {\n name: \"midnight\",\n light: {\n \"--bloom-font\": \"'Cormorant Garamond', serif\",\n \"--bloom-font-display\": \"'Playfair Display', serif\",\n \"--bloom-bg\": \"#F5F3F8\",\n \"--bloom-surface\": \"#EAE6F0\",\n \"--bloom-surface2\": \"#DBD5E4\",\n \"--bloom-text\": \"#1E1A28\",\n \"--bloom-text-secondary\": \"#6B6580\",\n \"--bloom-accent1\": \"#5E8C6A\",\n \"--bloom-accent1-deep\": \"#3D6B4A\",\n \"--bloom-accent2\": \"#6A7EC8\",\n \"--bloom-accent2-deep\": \"#4A5EA8\",\n \"--bloom-accent3\": \"#8B6AAE\",\n \"--bloom-accent3-deep\": \"#6A4A8E\",\n \"--bloom-accent4\": \"#C86A7E\",\n \"--bloom-accent4-deep\": \"#A84A5E\",\n \"--bloom-shadow\": \"0 2px 24px rgba(30,26,40,0.08)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(30,26,40,0.14)\",\n \"--bloom-radius-sm\": \"8px\",\n \"--bloom-radius\": \"12px\",\n \"--bloom-radius-lg\": \"16px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n dark: {\n \"--bloom-font\": \"'Cormorant Garamond', serif\",\n \"--bloom-font-display\": \"'Playfair Display', serif\",\n \"--bloom-bg\": \"#0F1117\",\n \"--bloom-surface\": \"#1A1D27\",\n \"--bloom-surface2\": \"#252A36\",\n \"--bloom-text\": \"#E2E0EC\",\n \"--bloom-text-secondary\": \"#8B87A0\",\n \"--bloom-accent1\": \"#5E8C6A\",\n \"--bloom-accent1-deep\": \"#3D6B4A\",\n \"--bloom-accent2\": \"#6A7EC8\",\n \"--bloom-accent2-deep\": \"#4A5EA8\",\n \"--bloom-accent3\": \"#8B6AAE\",\n \"--bloom-accent3-deep\": \"#6A4A8E\",\n \"--bloom-accent4\": \"#C86A7E\",\n \"--bloom-accent4-deep\": \"#A84A5E\",\n \"--bloom-shadow\": \"0 2px 24px rgba(0,0,0,0.3)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(0,0,0,0.4)\",\n \"--bloom-radius-sm\": \"8px\",\n \"--bloom-radius\": \"12px\",\n \"--bloom-radius-lg\": \"16px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n};\n\nexport const desertRose: BloomPalette = {\n name: \"desert\",\n light: {\n \"--bloom-font\": \"'Karla', sans-serif\",\n \"--bloom-font-display\": \"'Lora', serif\",\n \"--bloom-bg\": \"#FBF5EE\",\n \"--bloom-surface\": \"#F2E8DA\",\n \"--bloom-surface2\": \"#E6D8C4\",\n \"--bloom-text\": \"#3D2E1E\",\n \"--bloom-text-secondary\": \"#8C7A66\",\n \"--bloom-accent1\": \"#B8A080\",\n \"--bloom-accent1-deep\": \"#96795A\",\n \"--bloom-accent2\": \"#D4956A\",\n \"--bloom-accent2-deep\": \"#B87040\",\n \"--bloom-accent3\": \"#C4887C\",\n \"--bloom-accent3-deep\": \"#A8685C\",\n \"--bloom-accent4\": \"#CC6B5E\",\n \"--bloom-accent4-deep\": \"#A84A3E\",\n \"--bloom-shadow\": \"0 2px 24px rgba(61,46,30,0.08)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(61,46,30,0.14)\",\n \"--bloom-radius-sm\": \"16px\",\n \"--bloom-radius\": \"20px\",\n \"--bloom-radius-lg\": \"28px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n dark: {\n \"--bloom-font\": \"'Karla', sans-serif\",\n \"--bloom-font-display\": \"'Lora', serif\",\n \"--bloom-bg\": \"#1C1610\",\n \"--bloom-surface\": \"#28201A\",\n \"--bloom-surface2\": \"#362C22\",\n \"--bloom-text\": \"#E8DED0\",\n \"--bloom-text-secondary\": \"#9A8A76\",\n \"--bloom-accent1\": \"#A08868\",\n \"--bloom-accent1-deep\": \"#7E6848\",\n \"--bloom-accent2\": \"#C48050\",\n \"--bloom-accent2-deep\": \"#A06030\",\n \"--bloom-accent3\": \"#B07868\",\n \"--bloom-accent3-deep\": \"#905848\",\n \"--bloom-accent4\": \"#B85848\",\n \"--bloom-accent4-deep\": \"#983828\",\n \"--bloom-shadow\": \"0 2px 24px rgba(0,0,0,0.3)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(0,0,0,0.4)\",\n \"--bloom-radius-sm\": \"16px\",\n \"--bloom-radius\": \"20px\",\n \"--bloom-radius-lg\": \"28px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n};\n\nexport const oceanMist: BloomPalette = {\n name: \"ocean\",\n light: {\n \"--bloom-font\": \"'Nunito', sans-serif\",\n \"--bloom-font-display\": \"'Space Grotesk', sans-serif\",\n \"--bloom-bg\": \"#F4F8FA\",\n \"--bloom-surface\": \"#E8F0F4\",\n \"--bloom-surface2\": \"#D4E2EA\",\n \"--bloom-text\": \"#1A2E3A\",\n \"--bloom-text-secondary\": \"#5E7A8C\",\n \"--bloom-accent1\": \"#6AB8C4\",\n \"--bloom-accent1-deep\": \"#3A96A8\",\n \"--bloom-accent2\": \"#E0A860\",\n \"--bloom-accent2-deep\": \"#C08840\",\n \"--bloom-accent3\": \"#7CA0D4\",\n \"--bloom-accent3-deep\": \"#5A80B8\",\n \"--bloom-accent4\": \"#D47A7A\",\n \"--bloom-accent4-deep\": \"#B85A5A\",\n \"--bloom-shadow\": \"0 2px 24px rgba(26,46,58,0.06)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(26,46,58,0.1)\",\n \"--bloom-radius-sm\": \"6px\",\n \"--bloom-radius\": \"10px\",\n \"--bloom-radius-lg\": \"14px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n dark: {\n \"--bloom-font\": \"'Nunito', sans-serif\",\n \"--bloom-font-display\": \"'Space Grotesk', sans-serif\",\n \"--bloom-bg\": \"#0E1A20\",\n \"--bloom-surface\": \"#162228\",\n \"--bloom-surface2\": \"#1E2E36\",\n \"--bloom-text\": \"#D8E8EE\",\n \"--bloom-text-secondary\": \"#7A9AAC\",\n \"--bloom-accent1\": \"#4A9AAC\",\n \"--bloom-accent1-deep\": \"#2A7A8C\",\n \"--bloom-accent2\": \"#C89048\",\n \"--bloom-accent2-deep\": \"#A87030\",\n \"--bloom-accent3\": \"#5A80B8\",\n \"--bloom-accent3-deep\": \"#3A60A0\",\n \"--bloom-accent4\": \"#B85A5A\",\n \"--bloom-accent4-deep\": \"#983A3A\",\n \"--bloom-shadow\": \"0 2px 24px rgba(0,0,0,0.3)\",\n \"--bloom-shadow-hover\": \"0 8px 40px rgba(0,0,0,0.4)\",\n \"--bloom-radius-sm\": \"6px\",\n \"--bloom-radius\": \"10px\",\n \"--bloom-radius-lg\": \"14px\",\n \"--bloom-radius-pill\": \"999px\",\n },\n};\n\nexport const builtInPalettes: BloomPalette[] = [midnightGarden, desertRose, oceanMist];\n"],"mappings":";;;AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAA8B;AAClD,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACHO,IAAM,kBAA8B;AAAA,EACzC,UAAU;AAAA,EACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;AAEO,IAAM,sBAAkC;AAAA,EAC7C,UAAU;AAAA,EACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;AAEO,IAAM,sBAAkC;AAAA,EAC7C,UAAU;AAAA,EACV,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACvB;AAEO,IAAM,cAA0B;AAAA,EACrC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX;AAEO,IAAM,YAAsB;AAAA,EACjC,SAAS,EAAE,GAAG,GAAG,OAAO,EAAE;AAAA,EAC1B,OAAO,EAAE,GAAG,IAAI,OAAO,EAAE;AAAA,EACzB,KAAK,EAAE,GAAG,GAAG,OAAO,KAAK;AAC3B;AAEO,IAAM,gBAA0B;AAAA,EACrC,SAAS,EAAE,GAAG,EAAE;AAAA,EAChB,OAAO,EAAE,GAAG,GAAG;AACjB;AAEO,IAAM,SAAmB;AAAA,EAC9B,SAAS,EAAE,SAAS,EAAE;AAAA,EACtB,SAAS,EAAE,SAAS,EAAE;AAAA,EACtB,MAAM,EAAE,SAAS,EAAE;AACrB;AAEO,IAAM,UAAoB;AAAA,EAC/B,SAAS,EAAE,SAAS,GAAG,GAAG,GAAG;AAAA,EAC7B,SAAS,EAAE,SAAS,GAAG,GAAG,EAAE;AAAA,EAC5B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG;AAC5B;;;AC5CA,SAAS,UAAU,iBAAiB;AAE7B,SAAS,mBAA4B;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,MAAM;AAC3C,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,UAAM,KAAK,OAAO,WAAW,kCAAkC;AAC/D,UAAM,WAAW,SAAS,gBAAgB,UAAU,SAAS,sBAAsB;AACnF,WAAO,GAAG,WAAW;AAAA,EACvB,CAAC;AAED,YAAU,MAAM;AACd,UAAM,KAAK,OAAO,WAAW,kCAAkC;AAE/D,UAAM,eAAe,MAAM;AACzB,YAAM,WAAW,SAAS,gBAAgB,UAAU,SAAS,sBAAsB;AACnF,iBAAW,GAAG,WAAW,QAAQ;AAAA,IACnC;AAEA,OAAG,iBAAiB,UAAU,YAAY;AAE1C,UAAM,WAAW,IAAI,iBAAiB,MAAM;AAC1C,YAAM,WAAW,SAAS,gBAAgB,UAAU,SAAS,sBAAsB;AACnF,iBAAW,GAAG,WAAW,QAAQ;AAAA,IACnC,CAAC;AACD,aAAS,QAAQ,SAAS,iBAAiB;AAAA,MACzC,YAAY;AAAA,MACZ,iBAAiB,CAAC,OAAO;AAAA,IAC3B,CAAC;AAED,WAAO,MAAM;AACX,SAAG,oBAAoB,UAAU,YAAY;AAC7C,eAAS,WAAW;AAAA,IACtB;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AACT;;;ACpCA,SAAS,eAAe;AAejB,SAAS,aAAa,SAA+C;AAC1E,QAAM,EAAE,WAAW,GAAG,YAAY,gBAAgB,IAAI,WAAW,CAAC;AAElE,SAAO,QAAQ,MAAM;AACnB,UAAM,QAAQ,KAAK,OAAO,IAAI;AAC9B,WAAO;AAAA,MACL,eAAe;AAAA,MACf,mBAAmB,GAAG,QAAQ;AAAA,MAC9B,gBAAgB,GAAG,MAAM,QAAQ,CAAC,CAAC;AAAA,MACnC,yBAAyB;AAAA,MACzB,yBAAyB;AAAA,IAC3B;AAAA,EACF,GAAG,CAAC,UAAU,SAAS,CAAC;AAC1B;;;AC5BA,SAAS,kBAA6D;AACtE,SAAS,YAAY;;;ACDrB,SAAS,WAAW;AAEb,IAAM,iBAAiB;AAAA,EAC5B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,OAAO;AAAA,UACL;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,QAAQ;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,QAAQ;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;AD3CM;AAJC,IAAM,SAAS;AAAA,EACpB,CAAC,EAAE,WAAW,SAAS,UAAU,OAAO,UAAU,GAAG,MAAM,GAAG,QAAQ;AACpE,UAAM,OAAO,UAAU,OAAO;AAC9B,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,GAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,QACpD;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;;;AE1BrB,SAAS,cAAAA,mBAAuC;;;ACAhD,SAAS,OAAAC,YAAW;AAEb,IAAM,eAAeA;AAAA,EAC1B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,aAAa;AAAA,UACX;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,UAAU;AAAA,UACR;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADpBI,gBAAAC,YAAA;AAFG,IAAM,OAAOC;AAAA,EAClB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,aAAa,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OAAO;AAEnF;AACA,KAAK,cAAc;AAEZ,IAAM,aAAaC;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,uBAAuB,SAAS,GAAI,GAAG,OAAO;AAE/E;AACA,WAAW,cAAc;AAElB,IAAM,YAAYC;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,UAAU,cAAc;AAEjB,IAAM,kBAAkBC;AAAA,EAC7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,qFAAqF,SAAS;AAAA,MAC3G,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;AAEvB,IAAM,cAAcC;AAAA,EACzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,kBAAkB,SAAS,GAAI,GAAG,OAAO;AAE1E;AACA,YAAY,cAAc;AAEnB,IAAM,aAAaC;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD,KAAC,SAAI,KAAU,WAAW,GAAG,yCAAyC,SAAS,GAAI,GAAG,OAAO;AAEjG;AACA,WAAW,cAAc;;;AEzDzB,SAAS,cAAAE,mBAAyE;;;ACAlF,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA,KAAI;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;ADLG,gBAAAC,YAAA;AAFG,IAAM,QAAQC;AAAA,EACnB,CAAC,EAAE,WAAW,OAAO,QAAQ,GAAG,MAAM,GAAG,QACvC,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW,GAAG,cAAc,GAAG,YAAY,SAAS;AAAA,MACnD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,MAAM,cAAc;AAIb,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,cAAc,GAAG,0BAA0B,SAAS;AAAA,MACjE,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;;;AE7BvB,SAAS,cAAAE,mBAAiD;AAC1D,YAAY,qBAAqB;AAS7B,SAgBI,OAAAC,MAhBJ;AAFG,IAAM,SAASC;AAAA,EACpB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QAC/B,qBAAC,WAAM,WAAU,6CACf;AAAA,oBAAAD;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ,0BAAAA;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IACC,SACC,gBAAAA,KAAC,UAAK,WAAU,wFACb,iBACH;AAAA,KAEJ;AAEJ;AACA,OAAO,cAAc;;;AC5CrB,SAAS,cAAAE,mBAAuC;;;ACAhD,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,QACV,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADLI,SAEI,OAAAC,MAFJ,QAAAC,aAAA;AAdJ,IAAM,cAAc;AAAA,EAClB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AACR;AAOO,IAAM,QAAQC;AAAA,EACnB,CAAC,EAAE,WAAW,UAAU,QAAQ,MAAM,OAAO,UAAU,GAAG,MAAM,GAAG,QACjE,gBAAAD,MAAC,UAAK,KAAU,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OACvE;AAAA,WACC,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,kBAAe;AAAA,QACf,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA,YAAY,WAAW,MAAM;AAAA,QAC/B;AAAA;AAAA,IACF;AAAA,IAED;AAAA,KACH;AAEJ;AACA,MAAM,cAAc;;;AEjCpB,SAAS,cAAAG,mBAAuD;;;ACAhE,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAEO,IAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;;;ADrBI,SACE,OAAAC,MADF,QAAAC,aAAA;AAFJ,IAAM,eAA0C;AAAA,EAC9C,SACE,gBAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,KAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,IACtE,gBAAAA,KAAC,UAAK,GAAE,+BAA8B,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ;AAAA,KAC7H;AAAA,EAEF,OACE,gBAAAC,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,KAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,IACtE,gBAAAA,KAAC,UAAK,GAAE,wCAAuC,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,KAC/G;AAAA,EAEF,SACE,gBAAAC,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,KAAC,UAAK,GAAE,uBAAsB,QAAO,gBAAe,aAAY,OAAM,gBAAe,SAAQ;AAAA,IAC7F,gBAAAA,KAAC,UAAK,GAAE,cAAa,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,IACnF,gBAAAA,KAAC,YAAO,IAAG,MAAK,IAAG,QAAO,GAAE,QAAO,MAAK,gBAAe;AAAA,KACzD;AAAA,EAEF,MACE,gBAAAC,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,KAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,IACtE,gBAAAA,KAAC,UAAK,GAAE,YAAW,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,IACjF,gBAAAA,KAAC,YAAO,IAAG,MAAK,IAAG,OAAM,GAAE,QAAO,MAAK,gBAAe;AAAA,KACxD;AAEJ;AAEO,IAAM,QAAQE;AAAA,EACnB,CAAC,EAAE,WAAW,UAAU,QAAQ,UAAU,GAAG,MAAM,GAAG,QACpD,gBAAAD,MAAC,SAAI,KAAU,MAAK,SAAQ,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS,GAAI,GAAG,OACpF;AAAA,oBAAAD,KAAC,SAAI,WAAW,GAAG,kBAAkB,gBAAgB,WAAW,MAAM,CAAC,GACpE,uBAAa,WAAW,MAAM,GACjC;AAAA,IACA,gBAAAA,KAAC,SAAI,WAAU,kBACZ,UACH;AAAA,KACF;AAEJ;AACA,MAAM,cAAc;AAEb,IAAM,aAAaE;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,WAAW,cAAc;AAElB,IAAM,mBAAmBE;AAAA,EAC9B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,qFAAqF,SAAS;AAAA,MAC3G,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,iBAAiB,cAAc;;;AExE/B,SAAS,cAAAG,aAAY,YAAAC,iBAAqC;;;ACA1D,SAAS,OAAAC,YAAW;AAEb,IAAM,iBAAiBA;AAAA,EAC5B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,IACR;AAAA,EACF;AACF;;;ADLM,SACE,OAAAC,MADF,QAAAC,aAAA;AANC,IAAM,SAASC;AAAA,EACpB,CAAC,EAAE,WAAW,MAAM,UAAU,KAAK,KAAK,GAAG,MAAM,GAAG,QAAQ;AAC1D,UAAM,CAAC,UAAU,WAAW,IAAIC,UAAS,KAAK;AAC9C,UAAM,YAAY,OAAO,CAAC;AAE1B,WACE,gBAAAF,MAAC,SAAI,KAAU,WAAW,GAAG,eAAe,EAAE,KAAK,CAAC,GAAG,SAAS,GAAI,GAAG,OACrE;AAAA,sBAAAD,KAAC,UAAK,eAAa,aAAa,QAAY,oBAAS;AAAA,MACpD,aACC,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,KAAK,OAAO,YAAY;AAAA,UACxB,SAAS,MAAM,YAAY,IAAI;AAAA,UAC/B,WAAU;AAAA;AAAA,MACZ;AAAA,OAEJ;AAAA,EAEJ;AACF;AACA,OAAO,cAAc;AAId,IAAM,cAAcE;AAAA,EACzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,mBAAmB,SAAS;AAAA,MACzC,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,YAAY,cAAc;;;AE3C1B,YAAY,sBAAsB;AAc9B,SACE,OAAAI,MADF,QAAAC,aAAA;AAXG,IAAM,kBAAmC;AASzC,SAAS,QAAQ,EAAE,SAAS,UAAU,OAAO,OAAO,UAAU,GAAiB;AACpF,SACE,gBAAAA,MAAkB,uBAAjB,EACC;AAAA,oBAAAD,KAAkB,0BAAjB,EAAyB,SAAO,MAAE,UAAS;AAAA,IAC5C,gBAAAA,KAAkB,yBAAjB,EACC,0BAAAA;AAAA,MAAkB;AAAA,MAAjB;AAAA,QACC;AAAA,QACA,YAAY;AAAA,QACZ,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC;AAAA;AAAA,IACH,GACF;AAAA,KACF;AAEJ;;;ACtCA,SAAS,cAAAE,mBAAuC;;;ACAhD,SAAS,OAAAC,YAAW;AAEb,IAAM,wBAAwBA,KAAI;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,uBAAuBA,KAAI;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;ADeW,gBAAAC,MAoCA,QAAAC,aApCA;AArBL,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,QAAQ,GAAG,GAAG,MAAM,GAAG,QAAQ;AAC3C,UAAM,eAAe,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC;AACrD,WACE,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,WAAW,GAAG,sBAAsB,GAAG,SAAS;AAAA,QAC/C,GAAG;AAAA,QAEJ,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,qBAAqB;AAAA,YAChC,OAAO,EAAE,OAAO,GAAG,YAAY,IAAI;AAAA,YAGnC,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAU;AAAA,gBAEV,0BAAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAU;AAAA;AAAA,gBACZ;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;AAQhB,IAAM,mBAAmBE;AAAA,EAC9B,CAAC,EAAE,WAAW,QAAQ,GAAG,OAAO,IAAI,cAAc,GAAG,GAAG,MAAM,GAAG,QAAQ;AACvE,UAAM,eAAe,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC;AACrD,UAAM,UAAU,OAAO,eAAe;AACtC,UAAM,gBAAgB,IAAI,KAAK,KAAK;AACpC,UAAM,SAAS,gBAAiB,eAAe,MAAO;AAEtD,WACE,gBAAAF;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,MAAK;AAAA,QACL,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,iBAAe;AAAA,QACf,WAAW,GAAG,eAAe,SAAS;AAAA,QACrC,GAAG;AAAA,QAEJ,0BAAAC,MAAC,SAAI,OAAO,MAAM,QAAQ,MAAM,SAAS,OAAO,IAAI,IAAI,IAAI,IAC1D;AAAA,0BAAAA,MAAC,UACC;AAAA,4BAAAA;AAAA,cAAC;AAAA;AAAA,gBAAe,IAAI,oBAAoB,IAAI;AAAA,gBAAI,eAAc;AAAA,gBAC5D,IAAI,OAAO;AAAA,gBAAG,IAAG;AAAA,gBAAI,IAAI,OAAO;AAAA,gBAAG,IAAI;AAAA,gBACvC;AAAA,kCAAAD,KAAC,UAAK,QAAO,MAAK,WAAU,SAAQ,aAAY,KAAI;AAAA,kBACpD,gBAAAA,KAAC,UAAK,QAAO,OAAM,WAAU,SAAQ,aAAY,OAAM;AAAA,kBACvD,gBAAAA,KAAC,UAAK,QAAO,QAAO,WAAU,SAAQ,aAAY,KAAI;AAAA,kBACtD,gBAAAA;AAAA,oBAAC;AAAA;AAAA,sBACC,eAAc;AAAA,sBACd,MAAK;AAAA,sBACL,QAAQ,KAAK,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,sBAC7D,KAAI;AAAA,sBACJ,aAAY;AAAA;AAAA,kBACd;AAAA;AAAA;AAAA,YACF;AAAA,YACA,gBAAAA,KAAC,UAAK,IAAI,oBAAoB,IAAI,IAChC,0BAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,IAAI,OAAO;AAAA,gBACX,IAAI,OAAO;AAAA,gBACX,GAAG;AAAA,gBACH,MAAK;AAAA,gBACL,QAAO;AAAA,gBACP;AAAA,gBACA,eAAc;AAAA,gBACd,iBAAiB;AAAA,gBACjB,kBAAkB;AAAA,gBAClB,WAAW,cAAc,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA;AAAA,YAC/C,GACF;AAAA,aACF;AAAA,UAEA,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,OAAO;AAAA,cACX,IAAI,OAAO;AAAA,cACX,GAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP;AAAA;AAAA,UACF;AAAA,UAEA,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,OAAO;AAAA,cACX,IAAI,OAAO;AAAA,cACX,GAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAO;AAAA,cACP;AAAA,cACA,eAAc;AAAA,cACd,iBAAiB;AAAA,cACjB,kBAAkB;AAAA,cAClB,WAAW,cAAc,OAAO,CAAC,IAAI,OAAO,CAAC;AAAA,cAC7C,OAAO;AAAA,gBACL,YAAY;AAAA,cACd;AAAA;AAAA,UACF;AAAA,UAEA,gBAAAA;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,OAAO;AAAA,cACX,IAAI,OAAO;AAAA,cACX,GAAG;AAAA,cACH,MAAK;AAAA,cACL,QAAQ,yBAAyB,IAAI;AAAA,cACrC;AAAA,cACA,MAAM,yBAAyB,IAAI;AAAA;AAAA,UACrC;AAAA,WACF;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AACA,iBAAiB,cAAc;;;AErI/B,SAAS,cAAAG,mBAAiD;AAC1D,YAAY,qBAAqB;AAO7B,SAiBI,OAAAC,OAjBJ,QAAAC,aAAA;AAFG,IAAM,SAASC;AAAA,EACpB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAClC,gBAAAD;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA,YAEA,0BAAAA;AAAA,cAAiB;AAAA,cAAhB;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA;AAAA,kBACA;AAAA,gBACF;AAAA;AAAA,YACF;AAAA;AAAA,QACF;AAAA,QACA,gBAAAA;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,iBAAe,WAAW,OAAO;AAAA,YACjC,WAAW;AAAA,cACT;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,YACF;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AACA,OAAO,cAAc;;;AC/CrB,YAAY,qBAAqB;AAgBzB,gBAAAG,OAOA,QAAAC,aAPA;AAJD,SAAS,MAAM,EAAE,MAAM,cAAc,OAAO,aAAa,UAAU,UAAU,GAAe;AACjG,SACE,gBAAAD,MAAiB,sBAAhB,EAAqB,MAAY,cAChC,0BAAAC,MAAiB,wBAAhB,EACC;AAAA,oBAAAD;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IACA,gBAAAC;AAAA,MAAiB;AAAA,MAAhB;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC;AAAA,mBACC,gBAAAD;AAAA,YAAiB;AAAA,YAAhB;AAAA,cACC,WAAU;AAAA,cAET;AAAA;AAAA,UACH;AAAA,UAED,eACC,gBAAAA;AAAA,YAAiB;AAAA,YAAhB;AAAA,cACC,WAAU;AAAA,cAET;AAAA;AAAA,UACH;AAAA,UAED;AAAA,UACD,gBAAAA;AAAA,YAAiB;AAAA,YAAhB;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,cACA,cAAW;AAAA,cAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,sBAAqB,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,GAC3F;AAAA;AAAA,UACF;AAAA;AAAA;AAAA,IACF;AAAA,KACF,GACF;AAEJ;;;ACxEA,YAAY,2BAA2B;AAWnC,SACE,OAAAE,OADF,QAAAC,aAAA;AAFG,SAAS,SAAS,EAAE,SAAS,UAAU,UAAU,GAAkB;AACxE,SACE,gBAAAA,MAAuB,4BAAtB,EACC;AAAA,oBAAAD,MAAuB,+BAAtB,EAA8B,SAAO,MAAE,mBAAQ;AAAA,IAChD,gBAAAA,MAAuB,8BAAtB,EACC,0BAAAA;AAAA,MAAuB;AAAA,MAAtB;AAAA,QACC,YAAY;AAAA,QACZ,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEC;AAAA;AAAA,IACH,GACF;AAAA,KACF;AAEJ;AAIO,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAsB;AACvE,SACE,gBAAAA;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAIO,SAAS,kBAAkB,EAAE,WAAW,GAAG,MAAM,GAA2B;AACjF,SACE,gBAAAA;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,WAAW,GAAG,8CAA8C,SAAS;AAAA,MACpE,GAAG;AAAA;AAAA,EACN;AAEJ;;;ACjEA,SAAS,cAAAE,oBAAiD;AAC1D,YAAY,mBAAmB;;;ACD/B,SAAS,OAAAC,YAAW;AAEb,IAAM,mBAAmBA;AAAA,EAC9B;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,UACJ;AAAA,UACA;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADTI,gBAAAC,aAAA;AAPG,IAAM,OAAqB;AAK3B,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAD;AAAA,IAAe;AAAA,IAAd;AAAA,MACC;AAAA,MACA,WAAW,GAAG,iBAAiB,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MACrD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;AAEhB,IAAM,cAAcC,aAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAe;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAAc;AAEnB,IAAM,cAAcC,aAGzB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B,gBAAAD;AAAA,EAAe;AAAA,EAAd;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAAc;;;AE5D1B,SAAS,YAAAE,WAAU,WAAAC,gBAAe;AAClC,YAAY,aAAa;AA0Ef,SACE,OAAAC,OADF,QAAAC,cAAA;AAhEV,SAAS,eAAe,MAAc,OAAuB;AAC3D,SAAO,IAAI,KAAK,MAAM,QAAQ,GAAG,CAAC,EAAE,QAAQ;AAC9C;AAEA,SAAS,mBAAmB,MAAc,OAAuB;AAC/D,SAAO,IAAI,KAAK,MAAM,OAAO,CAAC,EAAE,OAAO;AACzC;AAEA,IAAM,cAAc;AAAA,EAClB;AAAA,EAAW;AAAA,EAAY;AAAA,EAAS;AAAA,EAAS;AAAA,EAAO;AAAA,EAChD;AAAA,EAAQ;AAAA,EAAU;AAAA,EAAa;AAAA,EAAW;AAAA,EAAY;AACxD;AAEA,IAAM,YAAY,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI;AAEpD,SAAS,WAAW,EAAE,OAAO,UAAU,cAAc,eAAe,UAAU,GAAoB;AACvG,QAAM,CAAC,MAAM,OAAO,IAAIC,UAAS,KAAK;AACtC,QAAM,CAAC,UAAU,WAAW,IAAIA,UAAS,MAAM,SAAS,oBAAI,KAAK,CAAC;AAClE,QAAM,WAAW,SAAS,YAAY;AACtC,QAAM,YAAY,SAAS,SAAS;AAEpC,QAAM,OAAOC,SAAQ,MAAM;AACzB,UAAM,cAAc,eAAe,UAAU,SAAS;AACtD,UAAM,WAAW,mBAAmB,UAAU,SAAS;AACvD,UAAM,QAA8B,CAAC;AACrC,aAAS,IAAI,GAAG,IAAI,UAAU,IAAK,OAAM,KAAK,IAAI;AAClD,aAAS,IAAI,GAAG,KAAK,aAAa,IAAK,OAAM,KAAK,CAAC;AACnD,WAAO;AAAA,EACT,GAAG,CAAC,UAAU,SAAS,CAAC;AAExB,QAAM,aAAa,CAAC,QAAgB;AAClC,QAAI,CAAC,MAAO,QAAO;AACnB,WAAO,MAAM,YAAY,MAAM,YAAY,MAAM,SAAS,MAAM,aAAa,MAAM,QAAQ,MAAM;AAAA,EACnG;AAEA,QAAM,YAAY,MAAM,YAAY,IAAI,KAAK,UAAU,YAAY,GAAG,CAAC,CAAC;AACxE,QAAM,YAAY,MAAM,YAAY,IAAI,KAAK,UAAU,YAAY,GAAG,CAAC,CAAC;AAExE,QAAM,YAAY,CAAC,QAAgB;AACjC,UAAM,WAAW,IAAI,KAAK,UAAU,WAAW,GAAG;AAClD,eAAW,QAAQ;AACnB,YAAQ,KAAK;AAAA,EACf;AAEA,QAAM,iBAAiB,QACnB,MAAM,mBAAmB,SAAS,EAAE,OAAO,SAAS,KAAK,WAAW,MAAM,UAAU,CAAC,IACrF;AAEJ,SACE,gBAAAF,OAAS,cAAR,EAAa,MAAY,cAAc,SACtC;AAAA,oBAAAD,MAAS,iBAAR,EAAgB,SAAO,MACtB,0BAAAC;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA,CAAC,kBAAkB;AAAA,UACnB;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAA,OAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,4BAAAD,MAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,MAAK,QAAO,MAAK,IAAG,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,YACxF,gBAAAA,MAAC,UAAK,GAAE,WAAU,QAAO,gBAAe,aAAY,OAAM;AAAA,YAC1D,gBAAAA,MAAC,UAAK,GAAE,iBAAgB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,aACxF;AAAA,UACC,kBAAkB;AAAA;AAAA;AAAA,IACrB,GACF;AAAA,IACA,gBAAAA,MAAS,gBAAR,EACC,0BAAAC;AAAA,MAAS;AAAA,MAAR;AAAA,QACC,YAAY;AAAA,QACZ,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAEA;AAAA,0BAAAA,OAAC,SAAI,WAAU,qDACb;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS;AAAA,gBACT,WAAU;AAAA,gBACV,cAAW;AAAA,gBAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,kBAAiB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,GAChH;AAAA;AAAA,YACF;AAAA,YACA,gBAAAC,OAAC,UAAK,WAAU,4GACb;AAAA,0BAAY,SAAS;AAAA,cAAE;AAAA,cAAE;AAAA,eAC5B;AAAA,YACA,gBAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS;AAAA,gBACT,WAAU;AAAA,gBACV,cAAW;AAAA,gBAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,gBAAe,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,GAC9G;AAAA;AAAA,YACF;AAAA,aACF;AAAA,UAEA,gBAAAA,MAAC,SAAI,WAAU,8CACZ,oBAAU,IAAI,CAAC,MACd,gBAAAA,MAAC,SAAY,WAAU,2GACpB,eADO,CAEV,CACD,GACH;AAAA,UAEA,gBAAAA,MAAC,SAAI,WAAU,8BACZ,eAAK;AAAA,YAAI,CAAC,KAAK,MACd,QAAQ,OACN,gBAAAA,MAAC,WAAS,SAAS,CAAC,EAAI,IAExB,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBAEC,SAAS,MAAM,UAAU,GAAG;AAAA,gBAC5B,WAAW;AAAA,kBACT;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA;AAAA,kBACA,WAAW,GAAG,IACV,0CACA;AAAA,gBACN;AAAA,gBAEC;AAAA;AAAA,cAbI;AAAA,YAcP;AAAA,UAEJ,GACF;AAAA;AAAA;AAAA,IACF,GACF;AAAA,KACF;AAEJ;;;AC5JA;AAAA,EACE;AAAA,EACA;AAAA,EACA,YAAAI;AAAA,EACA;AAAA,EACA,aAAAC;AAAA,OAEK;;;ACPP,SAAS,OAAAC,YAAW;AAEb,IAAM,gBAAgBA;AAAA,EAC3B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;AAIO,IAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,SAAS;AAAA,EACT,SAAS;AAAA,EACT,OAAO;AACT;;;ADUI,SAIM,OAAAC,OAJN,QAAAC,cAAA;AAvBJ,IAAM,eAAe,cAAwC,IAAI;AAE1D,SAAS,WAA8B;AAC5C,QAAM,MAAM,WAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;AAEA,IAAI,UAAU;AAEP,SAAS,cAAc,EAAE,SAAS,GAA4B;AACnE,QAAM,CAAC,QAAQ,SAAS,IAAIC,UAAsB,CAAC,CAAC;AAEpD,QAAM,QAAQ,YAAY,CAAC,SAAgC;AACzD,UAAM,KAAK,OAAO,EAAE,OAAO;AAC3B,cAAU,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,CAAC;AAAA,EAChD,GAAG,CAAC,CAAC;AAEL,QAAM,UAAU,YAAY,CAAC,OAAe;AAC1C,cAAU,CAAC,SAAS,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAAA,EACrD,GAAG,CAAC,CAAC;AAEL,SACE,gBAAAD,OAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,MAAM,GACnC;AAAA;AAAA,IACD,gBAAAD,MAAC,SAAI,WAAU,6FACZ,iBAAO,IAAI,CAAC,MACX,gBAAAA,MAAC,aAAqB,OAAO,GAAG,WAAW,WAA3B,EAAE,EAAkC,CACrD,GACH;AAAA,KACF;AAEJ;AAEA,IAAMG,gBAA0C;AAAA,EAC9C,SACE,gBAAAF,OAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,IACtE,gBAAAA,MAAC,UAAK,GAAE,+BAA8B,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ;AAAA,KAC7H;AAAA,EAEF,OACE,gBAAAC,OAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,IACtE,gBAAAA,MAAC,UAAK,GAAE,wCAAuC,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,KAC/G;AAAA,EAEF,SACE,gBAAAC,OAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,MAAC,UAAK,GAAE,uBAAsB,QAAO,gBAAe,aAAY,OAAM,gBAAe,SAAQ;AAAA,IAC7F,gBAAAA,MAAC,UAAK,GAAE,cAAa,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,IACnF,gBAAAA,MAAC,YAAO,IAAG,MAAK,IAAG,QAAO,GAAE,QAAO,MAAK,gBAAe;AAAA,KACzD;AAAA,EAEF,MACE,gBAAAC,OAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,oBAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,KAAI,QAAO,gBAAe,aAAY,OAAM;AAAA,IACtE,gBAAAA,MAAC,UAAK,GAAE,YAAW,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,IACjF,gBAAAA,MAAC,YAAO,IAAG,MAAK,IAAG,OAAM,GAAE,QAAO,MAAK,gBAAe;AAAA,KACxD;AAEJ;AAEA,SAAS,UAAU,EAAE,OAAO,GAAG,UAAU,GAA0D;AACjG,QAAM,WAAW,EAAE,YAAY;AAC/B,QAAM,UAAU,EAAE,WAAW;AAE7B,EAAAI,WAAU,MAAM;AACd,UAAM,QAAQ,WAAW,MAAM,UAAU,EAAE,EAAE,GAAG,QAAQ;AACxD,WAAO,MAAM,aAAa,KAAK;AAAA,EACjC,GAAG,CAAC,EAAE,IAAI,UAAU,SAAS,CAAC;AAE9B,SACE,gBAAAH,OAAC,SAAI,WAAW,GAAG,cAAc,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,GACtD;AAAA,oBAAAD,MAAC,SAAI,WAAW,GAAG,qBAAqB,gBAAgB,OAAO,CAAC,GAC7D,UAAAG,cAAa,OAAO,GACvB;AAAA,IACA,gBAAAF,OAAC,SAAI,WAAU,kBACb;AAAA,sBAAAD,MAAC,OAAE,WAAU,oEACV,YAAE,OACL;AAAA,MACC,EAAE,eACD,gBAAAA,MAAC,OAAE,WAAU,qFACV,YAAE,aACL;AAAA,OAEJ;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,UAAU,EAAE,EAAE;AAAA,QAC7B,WAAU;AAAA,QACV,cAAW;AAAA,QAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,sBAAqB,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,GAC3F;AAAA;AAAA,IACF;AAAA,KACF;AAEJ;;;AEzHA,SAAS,cAAAK,oBAAuC;;;ACAhD,SAAS,OAAAC,aAAW;AAEb,IAAM,mBAAmBA;AAAA,EAC9B;AAAA,IACE;AAAA,IACA;AAAA,EACF;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,MAAM;AAAA,QACN,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,MACV;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF;;;ADZI,gBAAAC,aAAA;AAFG,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,SAAS,GAAG,MAAM,GAAG,QACjC,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,iBAAiB,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,MACtD,eAAY;AAAA,MACX,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;;;AEhBvB,SAAS,cAAAE,oBAAiD;AAC1D,YAAY,uBAAuB;AAoCvB,gBAAAC,OASN,QAAAC,cATM;AA7BL,IAAM,WAAWC;AAAA,EACtB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QAAQ;AACvC,UAAM,WACJ,gBAAAF;AAAA,MAAmB;AAAA,MAAlB;AAAA,QACC;AAAA,QACA,OAAO,EAAE,cAAc,+BAA+B;AAAA,QACtD,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ,0BAAAA,MAAmB,6BAAlB,EAA4B,WAAU,oCACrC,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAO;AAAA,YACP,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA,YAEf,0BAAAA,MAAC,UAAK,GAAE,wBAAuB;AAAA;AAAA,QACjC,GACF;AAAA;AAAA,IACF;AAGF,QAAI,CAAC,MAAO,QAAO;AAEnB,WACE,gBAAAC,OAAC,WAAM,WAAU,4DACd;AAAA;AAAA,MACD,gBAAAD,MAAC,UAAK,WAAU,wFACb,iBACH;AAAA,OACF;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;;;ACvDvB,SAAS,cAAAG,oBAAiD;AAC1D,YAAY,yBAAyB;AAOjC,gBAAAC,OAwCE,QAAAC,cAxCF;AAFG,IAAM,aAAaC;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAF;AAAA,IAAqB;AAAA,IAApB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,kCAAkC,SAAS;AAAA,MACxD,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,WAAW,cAAc;AAMlB,IAAM,iBAAiBE;AAAA,EAC5B,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,GAAG,QAAQ;AACvC,UAAM,OACJ,gBAAAF;AAAA,MAAqB;AAAA,MAApB;AAAA,QACC;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA,QAEJ,0BAAAA,MAAqB,+BAApB,EAA8B,WAAU,kDACvC,0BAAAA,MAAC,UAAK,OAAO,EAAE,SAAS,SAAS,OAAO,GAAG,QAAQ,GAAG,cAAc,OAAO,iBAAiB,4BAA4B,GAAG,GAC7H;AAAA;AAAA,IACF;AAGF,QAAI,CAAC,MAAO,QAAO;AAEnB,WACE,gBAAAC,OAAC,WAAM,WAAU,4DACd;AAAA;AAAA,MACD,gBAAAD,MAAC,UAAK,WAAU,wFACb,iBACH;AAAA,OACF;AAAA,EAEJ;AACF;AACA,eAAe,cAAc;;;ACzD7B,SAAS,cAAAG,oBAAiD;AAC1D,YAAY,qBAAqB;AAc7B,SA4BM,OAAAC,OA5BN,QAAAC,cAAA;AANG,IAAM,SAAyB;AAI/B,IAAM,gBAAgBC;AAAA,EAC3B,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAClC,gBAAAD;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,gBAAAD,MAAiB,sBAAhB,EACC,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAO;AAAA,YACP,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA,YAEf,0BAAAA,MAAC,UAAK,GAAE,gBAAe;AAAA;AAAA,QACzB,GACF;AAAA;AAAA;AAAA,EACF;AAEJ;AACA,cAAc,cAAc;AAErB,IAAM,cAA8B;AAIpC,IAAM,gBAAgBE;AAAA,EAC3B,CAAC,EAAE,WAAW,UAAU,WAAW,UAAU,GAAG,MAAM,GAAG,QACvD,gBAAAF,MAAiB,wBAAhB,EACC,0BAAAA;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,0BAAAA;AAAA,QAAiB;AAAA,QAAhB;AAAA,UACC,WAAW;AAAA,YACT,aAAa,YAAY;AAAA,UAC3B;AAAA,UAEC;AAAA;AAAA,MACH;AAAA;AAAA,EACF,GACF;AAEJ;AACA,cAAc,cAAc;AAIrB,IAAM,aAAaE;AAAA,EACxB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAClC,gBAAAD;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,wBAAAD,MAAC,UAAK,WAAU,iFACd,0BAAAA,MAAiB,+BAAhB,EACC,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,QAAO;AAAA,YACP,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA,YACd,gBAAe;AAAA,YAEf,0BAAAA,MAAC,UAAK,GAAE,wBAAuB;AAAA;AAAA,QACjC,GACF,GACF;AAAA,QACA,gBAAAA,MAAiB,0BAAhB,EAA0B,UAAS;AAAA;AAAA;AAAA,EACtC;AAEJ;AACA,WAAW,cAAc;AAIlB,IAAM,kBAAkBE;AAAA,EAC7B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QACxB,gBAAAF;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,8CAA8C,SAAS;AAAA,MACpE,GAAG;AAAA;AAAA,EACN;AAEJ;AACA,gBAAgB,cAAc;;;AC3I9B;AAAA,EACE,iBAAAG;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA;AAAA,OAEK;AAuKH,gBAAAC,aAAA;AAnJJ,IAAM,eAAeL,eAAwC,IAAI;AAE1D,SAAS,WAA8B;AAC5C,QAAM,MAAMC,YAAW,YAAY;AACnC,MAAI,CAAC,IAAK,OAAM,IAAI,MAAM,8CAA8C;AACxE,SAAO;AACT;AAEA,SAAS,sBAAwC;AAC/C,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,OAAO,WAAW,8BAA8B,EAAE,UAAU,SAAS;AAC9E;AAEA,SAAS,YAAY,MAAmC;AACtD,MAAI,SAAS,SAAU,QAAO,oBAAoB;AAClD,SAAO;AACT;AAUO,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,WAAW,CAAC;AAAA,EACZ,aAAa;AACf,GAAuB;AACrB,QAAM,aAAa;AAAA,IACjB,IAAI,IAA0B;AAAA,MAC5B,CAAC,SAAS,EAAE,MAAM,QAAQ,CAAC;AAAA,MAC3B,GAAG,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAU;AAAA,IAC7C,CAAC;AAAA,EACH;AAEA,QAAM,CAAC,WAAW,iBAAiB,IAAIC,UAAoB,MAAM;AAC/D,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,UAAM,SAAS,aAAa,QAAQ,GAAG,UAAU,OAAO;AACxD,QAAI,WAAW,WAAW,WAAW,UAAU,WAAW,SAAU,QAAO;AAC3E,WAAO;AAAA,EACT,CAAC;AAED,QAAM,CAAC,SAAS,eAAe,IAAIA,UAAiB,MAAM;AACxD,QAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,UAAM,SAAS,aAAa,QAAQ,GAAG,UAAU,UAAU;AAC3D,QAAI,UAAU,WAAW,QAAQ,IAAI,MAAM,EAAG,QAAO;AACrD,WAAO;AAAA,EACT,CAAC;AAED,QAAM,CAAC,cAAc,eAAe,IAAIA;AAAA,IAA2B,MACjE,YAAY,SAAS;AAAA,EACvB;AAEA,QAAM,eAAeE;AAAA,IACnB,CAAC,SAAoB;AACnB,wBAAkB,IAAI;AACtB,mBAAa,QAAQ,GAAG,UAAU,SAAS,IAAI;AAAA,IACjD;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,aAAaA;AAAA,IACjB,CAAC,SAAiB;AAChB,UAAI,CAAC,WAAW,QAAQ,IAAI,IAAI,EAAG;AACnC,sBAAgB,IAAI;AACpB,mBAAa,QAAQ,GAAG,UAAU,YAAY,IAAI;AAAA,IACpD;AAAA,IACA,CAAC,UAAU;AAAA,EACb;AAEA,QAAM,kBAAkBA,aAAY,MAAM;AACxC,iBAAa,iBAAiB,UAAU,SAAS,OAAO;AAAA,EAC1D,GAAG,CAAC,cAAc,YAAY,CAAC;AAG/B,EAAAD,WAAU,MAAM;AACd,UAAM,OAAO,SAAS;AACtB,UAAM,WAAW,YAAY,SAAS;AACtC,oBAAgB,QAAQ;AAGxB,SAAK,UAAU,OAAO,SAAS,MAAM;AACrC,SAAK,UAAU,IAAI,QAAQ;AAG3B,UAAM,UAAU,oBAAI,IAAY;AAChC,eAAW,QAAQ,QAAQ,CAAC,MAAM;AAChC,UAAI,EAAE,MAAO,QAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,QAAQ,IAAI,CAAC,CAAC;AAC/D,UAAI,EAAE,KAAM,QAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,QAAQ,IAAI,CAAC,CAAC;AAAA,IAC/D,CAAC;AACD,YAAQ,QAAQ,CAAC,QAAQ,KAAK,MAAM,eAAe,GAAG,CAAC;AAGvD,UAAM,iBAAiB,WAAW,QAAQ,IAAI,OAAO;AACrD,QAAI,gBAAgB;AAClB,YAAM,OAAO,aAAa,SAAS,eAAe,OAAO,eAAe;AACxE,UAAI,MAAM;AACR,eAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC7C,eAAK,MAAM,YAAY,KAAK,KAAK;AAAA,QACnC,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF,GAAG,CAAC,WAAW,OAAO,CAAC;AAGvB,EAAAA,WAAU,MAAM;AACd,QAAI,cAAc,SAAU;AAE5B,UAAM,KAAK,OAAO,WAAW,8BAA8B;AAC3D,UAAM,UAAU,MAAM;AACpB,YAAM,WAAW,YAAY,QAAQ;AACrC,sBAAgB,QAAQ;AACxB,YAAM,OAAO,SAAS;AACtB,WAAK,UAAU,OAAO,SAAS,MAAM;AACrC,WAAK,UAAU,IAAI,QAAQ;AAG3B,YAAM,UAAU,oBAAI,IAAY;AAChC,iBAAW,QAAQ,QAAQ,CAAC,MAAM;AAChC,YAAI,EAAE,MAAO,QAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,QAAQ,IAAI,CAAC,CAAC;AAC/D,YAAI,EAAE,KAAM,QAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,QAAQ,IAAI,CAAC,CAAC;AAAA,MAC/D,CAAC;AACD,cAAQ,QAAQ,CAAC,QAAQ,KAAK,MAAM,eAAe,GAAG,CAAC;AAEvD,YAAM,iBAAiB,WAAW,QAAQ,IAAI,OAAO;AACrD,UAAI,gBAAgB;AAClB,cAAM,OAAO,aAAa,SAAS,eAAe,OAAO,eAAe;AACxE,YAAI,MAAM;AACR,iBAAO,QAAQ,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,KAAK,MAAM;AAC7C,iBAAK,MAAM,YAAY,KAAK,KAAK;AAAA,UACnC,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAEA,OAAG,iBAAiB,UAAU,OAAO;AACrC,WAAO,MAAM,GAAG,oBAAoB,UAAU,OAAO;AAAA,EACvD,GAAG,CAAC,WAAW,OAAO,CAAC;AAEvB,QAAM,eAAe,MAAM,KAAK,WAAW,QAAQ,KAAK,CAAC;AAEzD,SACE,gBAAAE;AAAA,IAAC,aAAa;AAAA,IAAb;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,UAAU;AAAA,MACZ;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;;;AC3LO,IAAM,iBAA+B;AAAA,EAC1C,MAAM;AAAA,EACN,OAAO;AAAA,IACL,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,EACzB;AAAA,EACA,MAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,EACzB;AACF;AAEO,IAAM,aAA2B;AAAA,EACtC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,EACzB;AAAA,EACA,MAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,EACzB;AACF;AAEO,IAAM,YAA0B;AAAA,EACrC,MAAM;AAAA,EACN,OAAO;AAAA,IACL,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,EACzB;AAAA,EACA,MAAM;AAAA,IACJ,gBAAgB;AAAA,IAChB,wBAAwB;AAAA,IACxB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,0BAA0B;AAAA,IAC1B,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,mBAAmB;AAAA,IACnB,wBAAwB;AAAA,IACxB,kBAAkB;AAAA,IAClB,wBAAwB;AAAA,IACxB,qBAAqB;AAAA,IACrB,kBAAkB;AAAA,IAClB,qBAAqB;AAAA,IACrB,uBAAuB;AAAA,EACzB;AACF;AAEO,IAAM,kBAAkC,CAAC,gBAAgB,YAAY,SAAS;","names":["forwardRef","cva","jsx","forwardRef","forwardRef","cva","jsx","forwardRef","forwardRef","jsx","forwardRef","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","useState","cva","jsx","jsxs","forwardRef","useState","jsx","jsxs","forwardRef","cva","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsxs","forwardRef","cva","jsx","forwardRef","useState","useMemo","jsx","jsxs","useState","useMemo","useState","useEffect","cva","jsx","jsxs","useState","variantIcons","useEffect","forwardRef","cva","jsx","forwardRef","forwardRef","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","forwardRef","jsx","jsxs","forwardRef","createContext","useContext","useState","useEffect","useCallback","jsx"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bloomkit/react",
3
- "version": "0.2.7",
3
+ "version": "0.2.9",
4
4
  "description": "An ambient, organic UI component library. Components that breathe.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",