{"version":3,"sources":["../../../src/components/base/utils.ts","../../../src/components/primitives/Avatar.tsx","../../../src/components/primitives/AutosizeTextarea.tsx","../../../src/components/primitives/Alert.tsx","../../../src/components/primitives/Badge.tsx","../../../src/components/primitives/Separator.tsx","../../../src/components/primitives/ButtonGroup.tsx","../../../src/components/base/theme.ts","../../../src/components/base/BasePanel.tsx","../../../src/components/primitives/BentoPanel.tsx","../../../src/components/primitives/Calendar.tsx","../../../src/components/primitives/Card.tsx","../../../src/locale/en-US.ts","../../../src/locale/resolve-locale.ts","../../../src/provider/context.ts","../../../src/components/primitives/internal/overlaySurface.ts","../../../src/components/primitives/InteractiveControls.tsx","../../../src/components/primitives/Carousel.tsx","../../../src/components/primitives/Collapsible.tsx","../../../src/components/primitives/FormControls.tsx","../../../src/components/primitives/FloatingPopover.tsx","../../../src/components/primitives/InfiniteScroll.tsx","../../../src/components/primitives/Indicator.tsx","../../../src/components/primitives/HoverCard.tsx","../../../src/components/primitives/InputOtp.tsx","../../../src/components/primitives/InputGroup.tsx","../../../src/components/primitives/Menus.tsx","../../../src/components/primitives/MediaPreview.tsx","../../../src/components/primitives/Overlays.tsx","../../../src/components/primitives/Popover.tsx","../../../src/components/primitives/PillInput.tsx","../../../src/components/primitives/Progress.tsx","../../../src/components/primitives/Resizable.tsx","../../../src/components/primitives/Sidebar.tsx","../../../src/components/primitives/Label.tsx","../../../src/components/primitives/Sheet.tsx","../../../src/components/primitives/Slider.tsx","../../../src/components/primitives/StatusState.tsx","../../../src/components/skeleton/motion.tsx","../../../src/components/primitives/Skeleton.tsx","../../../src/components/primitives/SkeletonGroup.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonImage.tsx","../../../src/components/primitives/ImageCard.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonAvatar.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonButton.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonText.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonCard.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonForm.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonList.tsx","../../../src/components/primitives/skeleton-patterns/SkeletonTable.tsx","../../../src/components/primitives/Table.tsx","../../../src/components/primitives/Toggle.tsx","../../../src/components/primitives/ToggleGroup.tsx","../../../src/components/primitives/Tree.tsx"],"names":["React","React2","jsx","React3","React4","React5","cva","jsxs","React6","Slot","React7","React8","CollapsibleTrigger","CollapsibleContent","React9","React10","offset","floatingOffset","useRef","useCallback","useEffect","Fragment","Indicator","forwardRef","React12","React13","React14","ChevronRight","Check","ChevronDown","React16","React17","React18","PopoverContent","React19","X","React20","React21","Label","React22","DialogPrimitive2","React23","React24","React25","createContext","useMemo","useContext","useState","React26","Skeleton","SkeletonGroup","sizeMap","_","React27","React28","React29","AccordionPrimitive2","Icon"],"mappings":"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","file":"index.mjs","sourcesContent":["import type { ReactNode } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...parts: Array<string | false | null | undefined>) {\n  return twMerge(parts.filter(Boolean).join(' '));\n}\n\nexport function hasRenderableNode(node: ReactNode) {\n  return node !== undefined && node !== null && typeof node !== 'boolean';\n}\n\nexport function hasNonEmptyRenderableNode(node: ReactNode) {\n  if (typeof node === 'string') return node.trim().length > 0;\n  return hasRenderableNode(node);\n}\n","import * as AvatarPrimitive from '@radix-ui/react-avatar';\nimport * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport const Avatar = React.forwardRef<\n  React.ElementRef<typeof AvatarPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <AvatarPrimitive.Root\n    ref={ref}\n    className={cn('relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full', className)}\n    {...props}\n  />\n));\nAvatar.displayName = AvatarPrimitive.Root.displayName;\n\nexport const AvatarImage = React.forwardRef<\n  React.ElementRef<typeof AvatarPrimitive.Image>,\n  React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n  <AvatarPrimitive.Image ref={ref} className={cn('aspect-square h-full w-full', className)} {...props} />\n));\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\n\nexport const AvatarFallback = React.forwardRef<\n  React.ElementRef<typeof AvatarPrimitive.Fallback>,\n  React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n  <AvatarPrimitive.Fallback\n    ref={ref}\n    className={cn('flex h-full w-full items-center justify-center rounded-full bg-muted', className)}\n    {...props}\n  />\n));\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\n","'use client';\nimport * as React from 'react';\nimport { useImperativeHandle } from 'react';\n\nimport { cn } from '../base/utils';\n\ninterface UseAutosizeTextAreaProps {\n  textAreaRef: HTMLTextAreaElement | null;\n  minHeight?: number;\n  maxHeight?: number;\n  triggerAutoSize: string;\n}\n\nexport const useAutosizeTextArea = ({\n  textAreaRef,\n  triggerAutoSize,\n  maxHeight = Number.MAX_SAFE_INTEGER,\n  minHeight = 0,\n}: UseAutosizeTextAreaProps) => {\n  const [init, setInit] = React.useState(true);\n  React.useEffect(() => {\n    // We need to reset the height momentarily to get the correct scrollHeight for the textarea\n    const offsetBorder = 2;\n    if (textAreaRef) {\n      if (init) {\n        textAreaRef.style.minHeight = `${minHeight + offsetBorder}px`;\n        if (maxHeight > minHeight) {\n          textAreaRef.style.maxHeight = `${maxHeight}px`;\n        }\n        setInit(false);\n      }\n      textAreaRef.style.height = `${minHeight + offsetBorder}px`;\n      const scrollHeight = textAreaRef.scrollHeight;\n      // We then set the height directly, outside the render loop\n      // Trying to set this with state or a ref will product an incorrect value.\n      if (scrollHeight > maxHeight) {\n        textAreaRef.style.height = `${maxHeight}px`;\n      } else {\n        textAreaRef.style.height = `${scrollHeight + offsetBorder}px`;\n      }\n    }\n  }, [textAreaRef, triggerAutoSize]);\n};\n\nexport type AutosizeTextAreaRef = {\n  textArea: HTMLTextAreaElement;\n  maxHeight: number;\n  minHeight: number;\n  focus: () => void;\n};\n\ntype AutosizeTextAreaProps = {\n  maxHeight?: number;\n  minHeight?: number;\n  onSubmit?: (e: React.FormEvent<HTMLTextAreaElement>) => void;\n} & React.TextareaHTMLAttributes<HTMLTextAreaElement>;\n\nexport const AutosizeTextarea = React.forwardRef<AutosizeTextAreaRef, AutosizeTextAreaProps>(\n  (\n    {\n      maxHeight = Number.MAX_SAFE_INTEGER,\n      minHeight = 52,\n      className,\n      onChange,\n      value,\n      onKeyDown,\n      onSubmit,\n      onCompositionStart: propsOnCompositionStart,\n      onCompositionEnd: propsOnCompositionEnd,\n      ...props\n    }: AutosizeTextAreaProps,\n    ref: React.Ref<AutosizeTextAreaRef>,\n  ) => {\n    const textAreaRef = React.useRef<HTMLTextAreaElement | null>(null);\n    const [triggerAutoSize, setTriggerAutoSize] = React.useState('');\n\n    // IME 组合输入（中文拼音等）：在 composition 期间用本地状态展示，避免受控 value 覆盖导致输入法中断、拼音残留\n    const [isComposing, setIsComposing] = React.useState(false);\n    const [compositionValue, setCompositionValue] = React.useState('');\n\n    useAutosizeTextArea({\n      textAreaRef: textAreaRef.current,\n      triggerAutoSize: triggerAutoSize,\n      maxHeight,\n      minHeight,\n    });\n\n    useImperativeHandle(ref, () => ({\n      textArea: textAreaRef.current as HTMLTextAreaElement,\n      focus: () => textAreaRef.current?.focus(),\n      maxHeight,\n      minHeight,\n    }));\n\n    React.useEffect(() => {\n      setTriggerAutoSize(value as string);\n    }, [props?.defaultValue, value]);\n\n    const handleKeyDown = React.useCallback((e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n      // if ArrowUp and no userInput, fill with last input\n      if (e.key === 'ArrowUp' && triggerAutoSize.length <= 0 && !(e.metaKey || e.altKey || e.ctrlKey)) {\n        e.preventDefault();\n        return;\n      }\n      if (onSubmit) {\n        const shouldSubmit = e.key === 'Enter' && e.keyCode !== 229 && !e.nativeEvent.isComposing && !isComposing && !e.altKey && !e.ctrlKey && !e.shiftKey && !e.metaKey;\n        if (shouldSubmit) {\n          e.preventDefault();\n          onSubmit(e);\n        }\n      }\n\n      onKeyDown?.(e);\n    }, [isComposing, onKeyDown, onSubmit, triggerAutoSize.length]);\n\n    return (\n      <textarea\n        {...props}\n        onKeyDown={handleKeyDown}\n        value={typeof value !== 'undefined' ? (isComposing ? compositionValue : value ?? '') : undefined}\n        ref={textAreaRef}\n        className={cn(\n          'flex w-full resize-y rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n          className,\n        )}\n        onCompositionStart={(e) => {\n          setIsComposing(true);\n          setCompositionValue(e.currentTarget.value);\n          propsOnCompositionStart?.(e);\n        }}\n        onCompositionEnd={(e) => {\n          setIsComposing(false);\n          // 组合结束时，立即同步最终值到父组件\n          const finalValue = e.currentTarget.value;\n          setCompositionValue(finalValue);\n          setTriggerAutoSize(finalValue);\n          onChange?.(e as unknown as React.ChangeEvent<HTMLTextAreaElement>);\n          propsOnCompositionEnd?.(e);\n        }}\n        onChange={(e) => {\n          if ((e.nativeEvent as InputEvent).isComposing) {\n            setCompositionValue(e.target.value);\n            setTriggerAutoSize(e.target.value);\n            return;\n          }\n          // 如果不在组合状态，正常更新\n          setTriggerAutoSize(e.target.value);\n          onChange?.(e);\n        }}\n      />\n    );\n  },\n);\nAutosizeTextarea.displayName = 'AutosizeTextarea';\n","import * as React from 'react';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../base/utils';\n\nconst alertVariants = cva(\n  'relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground',\n  {\n    variants: {\n      variant: {\n        default: 'bg-background text-foreground',\n        destructive: 'border-destructive/50 text-destructive-text dark:border-destructive [&>svg]:text-destructive-text',\n      },\n    },\n    defaultVariants: {\n      variant: 'default',\n    },\n  },\n);\n\nconst Alert = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof alertVariants>\n>(({ className, variant, ...props }, ref) => (\n  <div ref={ref} role=\"alert\" className={cn(alertVariants({ variant }), className)} {...props} />\n));\nAlert.displayName = 'Alert';\n\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n  ({ className, ...props }, ref) => (\n    <h5 ref={ref} className={cn('mb-1 font-medium leading-none tracking-tight', className)} {...props} />\n  ),\n);\nAlertTitle.displayName = 'AlertTitle';\n\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n  ({ className, ...props }, ref) => (\n    <div ref={ref} className={cn('text-sm [&_p]:leading-relaxed', className)} {...props} />\n  ),\n);\nAlertDescription.displayName = 'AlertDescription';\n\nexport { Alert, AlertDescription, AlertTitle, alertVariants };\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning';\nexport type BadgeShape = 'pill' | 'rounded';\n\nexport const badgeVariants = ({\n  variant = 'default',\n  shape = 'pill',\n  className,\n}: { variant?: BadgeVariant | null; shape?: BadgeShape; className?: string } = {}) => cn(\n  'inline-flex items-center border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n  shape === 'pill' ? 'rounded-full' : 'rounded-md',\n  variant === 'secondary' && 'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n  variant === 'destructive' && 'border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80',\n  variant === 'outline' && 'text-foreground',\n  variant === 'success' && 'border-transparent bg-success/15 text-success',\n  variant === 'warning' && 'border-transparent bg-warning/15 text-warning-foreground',\n  (!variant || variant === 'default') && 'border-transparent bg-primary text-primary-foreground hover:bg-primary/80',\n  className,\n);\n\nexport interface BadgeProps extends React.HTMLAttributes<HTMLDivElement> {\n  variant?: BadgeVariant;\n  shape?: BadgeShape;\n}\n\nexport const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(({ className, variant, shape, ...props }, ref) => (\n  <div ref={ref} className={badgeVariants({ variant, shape, className })} {...props} />\n));\nBadge.displayName = 'Badge';\n\nexport const RoundedBadge = React.forwardRef<HTMLDivElement, Omit<BadgeProps, 'shape'>>((props, ref) => (\n  <Badge ref={ref} shape=\"rounded\" {...props} />\n));\nRoundedBadge.displayName = 'RoundedBadge';\n","import * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport const Separator = React.forwardRef<\n  React.ElementRef<typeof SeparatorPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(({ className, orientation = 'horizontal', decorative = true, ...props }, ref) => (\n  <SeparatorPrimitive.Root\n    ref={ref}\n    decorative={decorative}\n    orientation={orientation}\n    className={cn(\n      'shrink-0 bg-border',\n      orientation === 'horizontal' ? 'h-px w-full' : 'h-full w-px',\n      className,\n    )}\n    {...props}\n  />\n));\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n","import { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { Separator } from './Separator';\nimport { cn } from '../base/utils';\n\nconst buttonGroupVariants = cva(\n  \"flex w-fit items-stretch has-[>[data-slot=button-group]]:gap-2 [&>*]:focus-visible:relative [&>*]:focus-visible:z-10 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n  {\n    variants: {\n      orientation: {\n        horizontal:\n          '[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none',\n        vertical:\n          'flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none',\n      },\n    },\n    defaultVariants: {\n      orientation: 'horizontal',\n    },\n  },\n);\n\nfunction ButtonGroup({\n  className,\n  orientation,\n  ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof buttonGroupVariants>) {\n  return (\n    <div\n      role=\"group\"\n      data-slot=\"button-group\"\n      data-orientation={orientation}\n      className={cn(buttonGroupVariants({ orientation }), className)}\n      {...props}\n    />\n  );\n}\n\nfunction ButtonGroupText({\n  className,\n  asChild = false,\n  ...props\n}: React.ComponentProps<'div'> & {\n  asChild?: boolean;\n}) {\n  const Comp = asChild ? Slot : 'div';\n\n  return (\n    <Comp\n      className={cn(\n        \"shadow-xs flex items-center gap-2 rounded-md border bg-muted px-4 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction ButtonGroupSeparator({\n  className,\n  orientation = 'vertical',\n  ...props\n}: React.ComponentProps<typeof Separator>) {\n  return (\n    <Separator\n      data-slot=\"button-group-separator\"\n      orientation={orientation}\n      className={cn('relative !m-0 self-stretch bg-input data-[orientation=vertical]:h-auto', className)}\n      {...props}\n    />\n  );\n}\n\nexport { ButtonGroup, ButtonGroupSeparator, ButtonGroupText, buttonGroupVariants };\n","import type {\n  BaseAppearance,\n  BaseBackground,\n  BaseBorder,\n  BaseControlTone,\n  BaseDensity,\n  BaseHeadingSize,\n  BaseLayoutAlign,\n  BaseLayoutJustify,\n  BaseLayoutLength,\n  BaseListMarker,\n  BaseListSpacing,\n  BaseRadius,\n  BaseResolvedTheme,\n  BaseThemePresetId,\n  BaseThemeSlots,\n  BaseThemeStyles,\n  BaseTypographySize,\n  BaseTypographyTone,\n} from './types';\nimport { cn } from './utils';\n\ntype ResolvedSlots = Required<BaseThemeSlots>;\n\nconst emptyStyles: BaseThemeStyles = {};\n\nconst motionBase =\n  'motion-safe:transition motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionInteractive =\n  'motion-safe:transition-all motion-safe:duration-300 motion-safe:ease-out';\n\nconst motionTransform =\n  'motion-safe:transition-transform motion-safe:duration-300 motion-safe:ease-out';\nconst tableScrollbarChrome = cn(\n  '[scrollbar-width:thin]',\n  '[scrollbar-color:hsl(var(--muted-foreground)/0.45)_transparent]',\n  '[&::-webkit-scrollbar]:h-2 [&::-webkit-scrollbar]:w-2',\n  '[&::-webkit-scrollbar-button]:hidden [&::-webkit-scrollbar-button]:h-0 [&::-webkit-scrollbar-button]:w-0 [&::-webkit-scrollbar-button]:bg-transparent',\n  '[&::-webkit-scrollbar-button:single-button]:hidden [&::-webkit-scrollbar-button:single-button]:h-0 [&::-webkit-scrollbar-button:single-button]:w-0',\n  '[&::-webkit-scrollbar-button:double-button]:hidden [&::-webkit-scrollbar-button:double-button]:h-0 [&::-webkit-scrollbar-button:double-button]:w-0',\n  '[&::-webkit-scrollbar-corner]:bg-transparent',\n  '[&::-webkit-scrollbar-track]:bg-transparent',\n  '[&:has(thead.sticky)::-webkit-scrollbar-track]:mt-[var(--base-table-header-height)]',\n  '[&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-muted-foreground/40',\n  'hover:[&::-webkit-scrollbar-thumb]:bg-muted-foreground/55',\n);\nconst tableStickyHeaderCells = cn(\n  '[&.sticky_th]:sticky [&.sticky_th]:top-0 [&.sticky_th]:z-[2]',\n  '[&.sticky_th]:bg-[var(--base-table-sticky-header-bg)]',\n  '[&.sticky_th]:shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n);\n\nconst baseSlots: ResolvedSlots = {\n  buttonBase:\n    cn(\n      'group/button inline-flex min-w-0 items-center justify-center gap-2 rounded-md border px-3 text-sm font-medium focus-visible:outline-none',\n      'cursor-pointer disabled:!cursor-not-allowed',\n      motionInteractive,\n    ),\n  buttonDefault:\n    'border-border bg-background text-foreground hover:bg-accent/60',\n  buttonPrimary:\n    'border-primary/20 bg-primary/10 text-primary hover:bg-primary/15',\n  buttonSuccess:\n    'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))] hover:bg-[hsl(var(--success,142_72%_29%)_/_0.15)]',\n  buttonWarning:\n    'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))] hover:bg-[hsl(var(--warning,45_93%_47%)_/_0.15)]',\n  buttonDanger:\n    'border-destructive/20 bg-destructive/10 text-destructive-text hover:bg-destructive/15',\n  buttonMuted:\n    'border-border/60 bg-muted/45 text-muted-foreground hover:bg-muted/70 hover:text-foreground',\n  buttonActive: 'border-primary/35 bg-primary/10 text-primary',\n  buttonDisabled: '!cursor-not-allowed opacity-60',\n  buttonIconOnly: 'w-9 px-0',\n  buttonIcon:\n    'inline-flex h-4 w-4 shrink-0 items-center justify-center text-[inherit] [&_*]:!text-[inherit] [&_svg]:!stroke-current [&_svg_*]:!stroke-current',\n  buttonLabel: 'min-w-0 truncate',\n  badgeBase:\n    cn(\n      'inline-flex max-w-full items-center gap-1.5 rounded-full border px-2 py-0.5 text-xs font-medium',\n      motionBase,\n    ),\n  badgeDefault: 'border-border/60 bg-background text-foreground',\n  badgePrimary: 'border-primary/30 bg-primary/10 text-primary',\n  badgeSuccess: 'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-[hsl(var(--success,142_72%_29%))]',\n  badgeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n  badgeDanger: 'border-destructive/30 bg-destructive/10 text-destructive-text',\n  badgeMuted: 'border-border/60 bg-muted text-muted-foreground',\n  badgeIcon: 'inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center',\n  badgeLabel: 'min-w-0 truncate',\n  textRoot: 'min-w-0 break-words leading-6',\n  textSizeXs: 'text-xs',\n  textSizeSm: 'text-sm',\n  textSizeMd: 'text-base',\n  textSizeLg: 'text-lg',\n  textSizeXl: 'text-xl',\n  typographyToneDefault: 'text-foreground',\n  typographyToneMuted: 'text-muted-foreground',\n  typographyTonePrimary: 'text-primary',\n  typographyToneSuccess: 'text-emerald-700 dark:text-emerald-400',\n  typographyToneWarning: 'text-amber-700 dark:text-amber-400',\n  typographyToneDanger: 'text-destructive-text',\n  typographyToneInherit: 'text-inherit',\n  headingRoot: 'min-w-0 break-words font-semibold tracking-tight',\n  headingSizeXs: 'text-sm leading-5',\n  headingSizeSm: 'text-base leading-6',\n  headingSizeMd: 'text-lg leading-7',\n  headingSizeLg: 'text-xl leading-7',\n  headingSizeXl: 'text-2xl leading-8',\n  headingSize2xl: 'text-3xl leading-9',\n  linkRoot:\n    'inline break-words underline decoration-current/40 underline-offset-4 hover:decoration-current focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n  codeInline:\n    'rounded border border-border/70 bg-muted/60 px-1.5 py-0.5 font-mono text-[0.875em] leading-[1.45] text-foreground',\n  codeBlock:\n    'm-0 max-w-full overflow-x-auto rounded-md border border-border/70 bg-muted/60 p-4 text-foreground',\n  codeContent: 'font-mono text-sm leading-6',\n  kbdRoot:\n    'inline-flex min-h-5 items-center rounded border border-border bg-muted/70 px-1.5 font-mono text-[0.75em] font-medium leading-5 text-foreground shadow-[inset_0_-1px_0_hsl(var(--monkeys-color-border))]',\n  listRoot: 'm-0 min-w-0 list-outside break-words ps-5 text-foreground',\n  listSpacingCompact: '[&>li+li]:mt-1',\n  listSpacingDefault: '[&>li+li]:mt-2',\n  listSpacingRelaxed: '[&>li+li]:mt-3',\n  listMarkerNone: 'list-none ps-0',\n  listMarkerDisc: 'list-disc',\n  listMarkerCircle: 'list-[circle]',\n  listMarkerSquare: 'list-[square]',\n  listMarkerDecimal: 'list-decimal',\n  listMarkerLowerAlpha: 'list-[lower-alpha]',\n  listMarkerUpperAlpha: 'list-[upper-alpha]',\n  listItem: 'min-w-0 ps-1 leading-6 marker:text-muted-foreground',\n  stackRoot: 'flex min-w-0 flex-col',\n  inlineRoot: 'flex min-w-0 flex-row',\n  gridRoot: 'grid min-w-0',\n  containerRoot: 'mx-auto w-full min-w-0',\n  aspectRatioRoot:\n    'relative min-w-0 overflow-hidden [&>*]:h-full [&>*]:w-full',\n  spinnerRoot:\n    'inline-flex shrink-0 items-center justify-center text-current align-middle',\n  spinnerIndicator:\n    'h-5 w-5 rounded-full border-2 border-current border-r-transparent motion-safe:animate-spin motion-reduce:animate-none',\n  visuallyHiddenRoot: 'sr-only',\n  visuallyHiddenFocusable:\n    'focus:not-sr-only focus:fixed focus:left-4 focus:top-4 focus:z-[1000] focus:rounded-md focus:bg-background focus:px-4 focus:py-2 focus:text-foreground focus:shadow-lg focus:outline-none focus:ring-2 focus:ring-ring focus-within:not-sr-only focus-within:fixed focus-within:left-4 focus-within:top-4 focus-within:z-[1000] focus-within:rounded-md focus-within:bg-background focus-within:px-4 focus-within:py-2 focus-within:text-foreground focus-within:shadow-lg focus-within:ring-2 focus-within:ring-ring',\n  fieldsetRoot: 'min-w-0 border-0 p-0 text-foreground',\n  fieldsetLegend: 'min-w-0 text-sm font-semibold leading-6 text-foreground',\n  fieldsetDescription: 'mt-1 text-sm leading-5 text-muted-foreground',\n  fieldsetError: 'mt-1 text-sm leading-5 text-destructive-text',\n  fieldsetContent: 'mt-3 grid min-w-0 gap-3',\n  stepsRoot: 'm-0 min-w-0 list-none p-0 text-foreground',\n  stepsHorizontal:\n    'flex w-full max-w-full items-start overflow-x-auto pb-2',\n  stepsVertical: 'grid',\n  stepsItem: 'relative min-w-0',\n  stepsItemHorizontal: 'flex min-w-52 flex-1 items-start',\n  stepsItemVertical: 'pb-6 last:pb-0',\n  stepsTrigger:\n    'flex min-w-0 flex-1 items-start gap-3 rounded-md border-0 bg-transparent p-1 text-start text-inherit',\n  stepsTriggerInteractive:\n    'cursor-pointer hover:bg-accent/50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  stepsTriggerDisabled: '!cursor-not-allowed opacity-60',\n  stepsIndicator:\n    'relative z-[1] inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border text-xs font-semibold',\n  stepsIndicatorPending: 'border-border bg-background text-muted-foreground',\n  stepsIndicatorCurrent: 'border-primary/50 bg-primary/10 text-primary',\n  stepsIndicatorCompleted:\n    'border-primary bg-primary text-primary-foreground',\n  stepsIndicatorError:\n    'border-destructive bg-destructive text-destructive-foreground',\n  stepsContent: 'grid min-w-0 gap-1 pt-0.5',\n  stepsLabel: 'min-w-0 break-words text-sm font-medium leading-5',\n  stepsDescription:\n    'min-w-0 break-words text-sm leading-5 text-muted-foreground',\n  stepsStatus: 'sr-only',\n  stepsConnector: 'shrink-0 bg-border',\n  stepsConnectorHorizontal: 'mt-3.5 h-px w-8',\n  stepsConnectorVertical:\n    'absolute bottom-0 top-8 start-3.5 w-px -translate-x-1/2',\n  stepsConnectorCompleted: 'bg-primary/60',\n  stepsConnectorError: 'bg-destructive/60',\n  scrollAreaViewport: 'min-h-0 min-w-0',\n  numberInputControl: 'tabular-nums',\n  numberInputStepControls:\n    'me-1 flex shrink-0 self-stretch overflow-hidden border-s border-border',\n  numberInputStepButton:\n    'flex min-h-6 w-7 cursor-pointer items-center justify-center border-0 bg-transparent px-1 text-xs leading-none text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:z-[1] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n  passwordInputControl: 'pe-2',\n  passwordInputToggle:\n    'me-1 inline-flex min-h-7 shrink-0 cursor-pointer items-center justify-center rounded px-2 text-xs font-medium text-muted-foreground hover:bg-accent hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-40',\n  inputGroupRoot:\n    cn(\n      'relative flex min-w-0 items-stretch overflow-hidden rounded-md border border-border bg-background text-foreground focus-within:border-primary/50 focus-within:ring-2 focus-within:ring-ring/30',\n      motionBase,\n    ),\n  inputGroupInvalid:\n    'border-destructive/55 focus-within:border-destructive/70 focus-within:ring-destructive/25',\n  inputGroupDisabled: '!cursor-not-allowed bg-muted/35',\n  inputGroupContent:\n    'flex min-w-0 flex-1 items-stretch [&>*]:min-w-0',\n  inputGroupStartElement:\n    'inline-flex shrink-0 items-center justify-center ps-3 pe-1 text-foreground/75',\n  inputGroupEndElement:\n    'inline-flex shrink-0 items-center justify-center ps-1 pe-3 text-foreground/75',\n  inputGroupStartAddon:\n    'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-e border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n  inputGroupEndAddon:\n    'inline-flex max-w-[min(40%,16rem)] shrink-0 items-center overflow-hidden border-s border-border bg-muted/60 px-3 text-sm text-foreground/75 text-ellipsis whitespace-nowrap [&>*]:min-w-0',\n  panelRoot:\n    cn(\n      'group relative flex min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background',\n      motionInteractive,\n    ),\n  panelInteractive:\n    'cursor-pointer hover:shadow-md',\n  panelSelected: 'border-primary/45 bg-primary/5',\n  panelDisabled: '!cursor-not-allowed opacity-60',\n  panelMedia:\n    'shrink-0 overflow-hidden',\n  panelHeader: 'min-w-0 p-4',\n  panelTitle: 'min-w-0 truncate text-sm font-semibold leading-none text-foreground',\n  panelDescription: 'mt-1 text-sm leading-5 text-foreground/75',\n  panelBody: 'min-w-0 px-4 pb-4 text-sm text-foreground',\n  panelBodyStandalone: 'pt-4',\n  panelFooter: 'shrink-0 border-t border-border/60 px-4 py-3',\n  stateRoot:\n    cn(\n      'flex min-h-48 flex-col items-center justify-center rounded-lg border border-border/70 bg-background px-6 py-10 text-center',\n      motionBase,\n    ),\n  stateIcon:\n    'mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-muted text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n  stateTitle: 'text-sm font-semibold text-foreground',\n  stateDescription: 'mt-2 max-w-md text-sm leading-6 text-muted-foreground',\n  stateActions: 'mt-5 flex flex-wrap items-center justify-center gap-2',\n  loadingSpinner:\n    'h-5 w-5 motion-safe:animate-spin motion-reduce:animate-none',\n  fieldRoot: 'grid min-w-0 gap-2',\n  fieldLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n  fieldLabel: 'min-w-0 text-sm font-medium leading-none text-foreground',\n  fieldRequired: 'text-destructive-text',\n  fieldDescription: 'text-sm leading-5 text-muted-foreground',\n  fieldMessage: 'text-sm leading-5 text-muted-foreground',\n  fieldControl: 'min-w-0',\n  controlWrapper:\n    cn(\n      'relative flex min-w-0 items-center rounded-md border border-border bg-background text-foreground focus-within:border-primary/35',\n      motionBase,\n    ),\n  controlBase:\n    'min-w-0 flex-1 bg-transparent px-3 text-sm text-foreground outline-none placeholder:text-muted-foreground disabled:!cursor-not-allowed',\n  controlInput: 'h-9',\n  controlTextarea: 'min-h-24 resize-y py-2 leading-6',\n  controlSelect: 'h-9 cursor-pointer appearance-none pr-9 disabled:!cursor-not-allowed',\n  controlIcon:\n    'pointer-events-none ml-3 inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n  controlTrailing:\n    'mr-3 inline-flex shrink-0 items-center justify-center text-muted-foreground',\n  controlInvalid:\n    'border-destructive/45 focus-within:border-destructive/60',\n  controlDisabled: '!cursor-not-allowed opacity-60',\n  controlReadOnly: 'bg-muted/35',\n  selectChevron:\n    cn(\n      'pointer-events-none absolute right-3 top-1/2 h-2 w-2 -translate-y-1/2 rotate-45 border-b border-r border-current text-muted-foreground',\n      motionTransform,\n    ),\n  selectMenu:\n    'absolute left-0 right-0 top-[calc(100%+0.375rem)] z-50 max-h-60 origin-top overflow-auto rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  selectOption:\n    cn(\n      'flex min-h-8 w-full min-w-0 cursor-pointer items-center rounded-sm px-2.5 py-1.5 text-left text-sm text-foreground',\n      motionInteractive,\n    ),\n  selectOptionActive: 'bg-accent text-accent-foreground',\n  selectOptionSelected: 'bg-primary/10 text-primary',\n  selectOptionDisabled: '!cursor-not-allowed opacity-50',\n  selectPlaceholder: 'text-muted-foreground',\n  selectNative: 'sr-only',\n  switchRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n  switchInput: 'sr-only',\n  switchTrack:\n    cn(\n      'relative mt-0.5 inline-flex h-6 w-10 shrink-0 items-center rounded-full border border-border bg-muted focus-within:border-primary/35',\n      motionBase,\n    ),\n  switchThumb:\n    cn(\n      'h-4 w-4 translate-x-1 rounded-full bg-background shadow-sm',\n      motionTransform,\n    ),\n  switchChecked: 'border-primary/40 bg-primary/80 text-primary-foreground',\n  switchDisabled: '!cursor-not-allowed opacity-60',\n  switchContent: 'grid min-w-0 gap-1',\n  switchLabel: 'text-sm font-medium leading-none text-foreground',\n  switchDescription: 'text-sm leading-5 text-muted-foreground',\n  checkboxRoot: 'inline-flex min-w-0 cursor-pointer items-start gap-3',\n  checkboxInput: 'sr-only',\n  checkboxBox:\n    cn(\n      'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded border border-border bg-background text-primary focus-within:border-primary/40',\n      motionBase,\n    ),\n  checkboxBoxChecked: 'border-primary/45 bg-primary text-primary-foreground',\n  checkboxBoxInvalid: 'border-destructive/50',\n  checkboxIndicator: 'text-[11px] font-bold leading-none',\n  checkboxDisabled: '!cursor-not-allowed opacity-60',\n  checkboxContent: 'grid min-w-0 gap-1',\n  checkboxLabel: 'text-sm font-medium leading-none text-foreground',\n  checkboxDescription: 'text-sm leading-5 text-muted-foreground',\n  radioGroupRoot: 'grid min-w-0 gap-2',\n  radioOption:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-start gap-3 rounded-md border border-border/60 bg-background px-3 py-2 text-sm',\n      motionInteractive,\n      'hover:bg-muted/35',\n    ),\n  radioInput: 'sr-only',\n  radioMarker:\n    cn(\n      'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center rounded-full border border-border bg-background text-primary focus-within:border-primary/40',\n      motionBase,\n    ),\n  radioMarkerChecked: 'border-primary/50 bg-primary/10',\n  radioIndicator: 'h-2 w-2 rounded-full bg-primary',\n  radioOptionDisabled: '!cursor-not-allowed opacity-60 hover:bg-background',\n  radioContent: 'grid min-w-0 gap-1',\n  radioLabel: 'text-sm font-medium leading-none text-foreground',\n  radioDescription: 'text-sm leading-5 text-muted-foreground',\n  dialogRoot: 'relative',\n  dialogTrigger: '',\n  dialogTriggerDisabled: '!cursor-not-allowed opacity-60',\n  dialogOverlay:\n    'fixed inset-0 z-50 bg-background/70 backdrop-blur-sm motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  dialogContent:\n    'pointer-events-none fixed inset-0 z-50 flex min-h-0 items-center justify-center p-4',\n  dialogPanel:\n    cn(\n      'pointer-events-auto relative flex max-h-[min(85vh,720px)] w-full max-w-lg min-w-0 flex-col overflow-hidden rounded-lg border border-border/70 bg-background text-foreground shadow-xl',\n      'motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n    ),\n  dialogHeader: 'grid min-w-0 gap-1 border-b border-border/60 px-5 py-4',\n  dialogTitle: 'min-w-0 pr-8 text-base font-semibold leading-6 text-foreground',\n  dialogDescription: 'text-sm leading-6 text-muted-foreground',\n  dialogBody: 'min-h-0 min-w-0 overflow-auto px-5 py-4 text-sm text-foreground',\n  dialogFooter:\n    'flex shrink-0 flex-wrap items-center justify-end gap-2 border-t border-border/60 px-5 py-4',\n  dialogClose:\n    cn(\n      'absolute right-3 top-3 inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-md text-muted-foreground hover:bg-muted/60 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n      motionInteractive,\n    ),\n  dropdownRoot: 'relative inline-flex min-w-0',\n  dropdownTrigger: '',\n  dropdownTriggerDisabled: '!cursor-not-allowed opacity-60',\n  dropdownMenu:\n    'z-50 min-w-48 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  dropdownMenuTop: 'bottom-[calc(100%+0.375rem)] top-auto',\n  dropdownMenuEnd: 'left-auto right-0',\n  dropdownLabel:\n    'px-2.5 py-1.5 text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground',\n  dropdownSeparator: 'my-1 h-px bg-border/70',\n  dropdownItem:\n    cn(\n      'flex min-w-0 cursor-pointer items-center gap-2 rounded-sm px-2.5 py-2 text-left text-sm text-foreground hover:bg-accent/60 focus:bg-accent/60 data-[highlighted]:bg-accent/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n      motionInteractive,\n    ),\n  dropdownItemDanger:\n    'text-destructive-text hover:bg-destructive/10 focus:bg-destructive/10 data-[highlighted]:bg-destructive/10',\n  dropdownItemDisabled:\n    '!cursor-not-allowed opacity-50 hover:bg-transparent focus:bg-transparent data-[highlighted]:bg-transparent',\n  dropdownItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n  dropdownItemContent: 'grid min-w-0 flex-1 gap-0.5',\n  dropdownItemLabel: 'min-w-0 truncate',\n  dropdownItemDescription:\n    'min-w-0 truncate text-xs leading-4 text-muted-foreground',\n  dropdownItemShortcut:\n    'ml-3 shrink-0 text-xs font-medium text-muted-foreground',\n  tooltipRoot: 'relative inline-flex min-w-0',\n  tooltipTrigger: 'inline-flex min-w-0',\n  tooltipContent:\n    'pointer-events-none z-50 max-w-xs rounded-md border border-border bg-popover px-2.5 py-1.5 text-xs leading-5 text-popover-foreground shadow-lg motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  noticeBase:\n    cn(\n      'flex min-w-0 gap-3 rounded-lg border px-4 py-3 text-sm',\n      motionBase,\n      'motion-safe:animate-in motion-safe:fade-in',\n    ),\n  noticeDefault: 'border-border bg-background text-foreground',\n  noticePrimary: 'border-primary/25 bg-primary/10 text-primary',\n  noticeSuccess:\n    'border-[hsl(var(--success,142_72%_29%)_/_0.30)] bg-[hsl(var(--success,142_72%_29%)_/_0.10)] text-foreground',\n  noticeWarning: 'border-[hsl(var(--warning,45_93%_47%)_/_0.30)] bg-[hsl(var(--warning,45_93%_47%)_/_0.10)] text-[hsl(var(--warning-foreground,28_73%_26%))]',\n  noticeDanger:\n    'border-destructive/30 bg-destructive/10 text-destructive-text',\n  noticeMuted: 'border-border/60 bg-muted/35 text-muted-foreground',\n  noticeIcon:\n    'mt-0.5 inline-flex h-4 w-4 shrink-0 items-center justify-center motion-safe:animate-in motion-safe:fade-in',\n  noticeTitle: 'font-semibold leading-5',\n  noticeDescription: 'leading-6',\n  noticeActions: 'mt-3 flex flex-wrap items-center gap-2',\n  dividerRoot: cn('shrink-0 border-border/70', motionBase),\n  dividerLabel:\n    'mx-3 shrink-0 text-xs font-medium uppercase tracking-[0.12em] text-muted-foreground motion-safe:animate-in motion-safe:fade-in',\n  sectionHeaderRoot:\n    'flex min-w-0 flex-wrap items-start justify-between gap-3 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out',\n  sectionHeaderContent: 'grid min-w-0 gap-1',\n  sectionHeaderEyebrow:\n    'text-xs font-semibold uppercase tracking-[0.14em] text-muted-foreground',\n  sectionHeaderTitle: 'text-base font-semibold leading-6 text-foreground',\n  sectionHeaderDescription: 'max-w-2xl text-sm leading-6 text-muted-foreground',\n  sectionHeaderActions: 'flex shrink-0 flex-wrap items-center gap-2',\n  tabsRoot: 'grid min-w-0 gap-3',\n  tabsList:\n    cn(\n      'inline-flex min-w-0 flex-wrap items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n      motionBase,\n    ),\n  tabsTrigger:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 focus-visible:ring-offset-1 motion-reduce:transition-none',\n      motionInteractive,\n    ),\n  tabsTriggerActive:\n    'bg-background text-foreground shadow-sm',\n  tabsTriggerDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n  tabsPanel:\n    'min-w-0 rounded-lg border border-border/70 bg-background p-4 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n  segmentedRoot:\n    cn(\n      'inline-flex min-w-0 items-center gap-1 rounded-lg border border-border/70 bg-muted/30 p-1',\n      motionBase,\n    ),\n  segmentedItem:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-center justify-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium text-muted-foreground hover:bg-background/70 hover:text-foreground focus-visible:outline-none',\n      motionInteractive,\n    ),\n  segmentedItemActive:\n    'bg-background text-foreground shadow-sm',\n  segmentedItemDisabled: '!cursor-not-allowed opacity-50 hover:bg-transparent',\n  progressRoot: 'grid min-w-0 gap-2',\n  progressTrack:\n    'h-2 w-full overflow-hidden rounded-full bg-muted',\n  progressIndicator:\n    'h-full rounded-full bg-primary motion-safe:transition-[width] motion-safe:duration-500 motion-safe:ease-out',\n  progressLabelRow: 'flex min-w-0 items-center justify-between gap-3',\n  progressLabel: 'min-w-0 truncate text-sm font-medium text-foreground',\n  progressValue: 'shrink-0 text-xs font-medium text-muted-foreground',\n  skeletonRoot:\n    'relative overflow-hidden rounded-md bg-muted/70',\n  avatarRoot:\n    'relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full border border-border bg-muted text-sm font-semibold text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  avatarImage:\n    'h-full w-full object-cover',\n  avatarFallback:\n    'flex h-full w-full items-center justify-center bg-muted text-foreground',\n  avatarStatus:\n    'absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-muted-foreground motion-safe:animate-pulse',\n  avatarText: 'min-w-0 truncate text-sm font-medium text-foreground',\n  toolbarRoot:\n    cn(\n      'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-background px-4 py-3',\n      motionBase,\n    ),\n  toolbarLeading: 'flex min-w-0 items-center gap-3',\n  toolbarTitle: 'min-w-0 truncate text-sm font-semibold text-foreground',\n  toolbarDescription: 'mt-0.5 text-sm leading-5 text-muted-foreground',\n  toolbarContent: 'min-w-0 flex-1',\n  toolbarActions: 'flex shrink-0 flex-wrap items-center gap-2',\n  breadcrumbRoot: 'min-w-0 text-sm text-muted-foreground',\n  breadcrumbList: 'flex min-w-0 flex-wrap items-center gap-1.5',\n  breadcrumbItem: 'inline-flex min-w-0 items-center gap-1.5',\n  breadcrumbLink:\n    'min-w-0 cursor-pointer truncate text-muted-foreground hover:text-foreground disabled:!cursor-not-allowed disabled:opacity-50 aria-disabled:!cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:text-muted-foreground motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  breadcrumbCurrent: 'min-w-0 truncate font-medium text-foreground',\n  breadcrumbSeparator: 'shrink-0 text-muted-foreground/70',\n  paginationRoot:\n    'flex min-w-0 flex-wrap items-center justify-between gap-3 text-sm',\n  paginationInfo: 'min-w-0 text-muted-foreground',\n  paginationControls: 'flex min-w-0 flex-wrap items-center justify-end gap-1.5',\n  paginationButton:\n    'inline-flex h-8 min-w-8 cursor-pointer items-center justify-center whitespace-nowrap rounded-md border border-border bg-background px-2.5 text-sm font-medium text-foreground hover:bg-accent/60 disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out',\n  paginationButtonDisabled: '!cursor-not-allowed opacity-50',\n  paginationPage:\n    'inline-flex h-8 min-w-8 cursor-default items-center justify-center rounded-md bg-muted/50 px-2.5 text-sm font-medium text-foreground hover:bg-muted/50',\n  paginationEllipsis:\n    'inline-flex h-8 min-w-6 items-center justify-center px-1 text-sm text-muted-foreground',\n  descriptionListRoot:\n    'grid min-w-0 gap-3 text-sm',\n  descriptionListItem:\n    'grid min-w-0 gap-1 rounded-md border border-border/60 bg-background px-3 py-2 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out hover:shadow-sm',\n  descriptionListTerm:\n    'min-w-0 truncate text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground',\n  descriptionListValue: 'min-w-0 text-sm leading-6 text-foreground',\n  accordionRoot: 'grid min-w-0 gap-2',\n  accordionItem:\n    'overflow-hidden rounded-lg border border-border/70 bg-background motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n  accordionTrigger:\n    'flex w-full min-w-0 cursor-pointer items-center justify-between gap-3 px-4 py-3 text-start text-sm font-medium text-foreground hover:bg-muted/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring disabled:!cursor-not-allowed disabled:opacity-50 motion-safe:transition motion-safe:duration-300 motion-safe:ease-out motion-reduce:transition-none',\n  accordionTriggerIcon:\n    cn(\n      'h-2 w-2 shrink-0 rotate-45 border-b border-r border-current text-muted-foreground',\n      motionTransform,\n      'motion-reduce:transition-none',\n    ),\n  accordionPanel:\n    'border-t border-border/60 px-4 py-3 text-sm leading-6 text-muted-foreground motion-safe:animate-in motion-safe:fade-in motion-safe:duration-300 motion-safe:ease-out motion-reduce:animate-none',\n  menuTrigger: 'inline-flex min-w-0',\n  menuContent:\n    'z-50 min-w-44 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n  menuLabel: 'px-2 py-1.5 text-xs font-medium text-muted-foreground',\n  menuSeparator: '-mx-1 my-1 h-px bg-border',\n  menuItem:\n    cn(\n      'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground',\n      motionInteractive,\n    ),\n  menuItemDefault: 'text-foreground',\n  menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n  menuItemSuccess:\n    'text-[hsl(var(--success,142_72%_29%))] focus:text-[hsl(var(--success,142_72%_29%))] data-[highlighted]:text-[hsl(var(--success,142_72%_29%))]',\n  menuItemWarning:\n    'text-[hsl(var(--warning-foreground,28_73%_26%))] focus:text-[hsl(var(--warning-foreground,28_73%_26%))] data-[highlighted]:text-[hsl(var(--warning-foreground,28_73%_26%))]',\n  menuItemDanger:\n    'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n  menuItemMuted:\n    'text-muted-foreground focus:text-foreground data-[highlighted]:text-foreground',\n  menuItemDisabled:\n    '!cursor-not-allowed opacity-50 data-[disabled]:pointer-events-none',\n  menuItemIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center',\n  menuItemLabel: 'min-w-0 flex-1 truncate',\n  menuItemShortcut:\n    'ml-4 shrink-0 text-xs font-medium text-muted-foreground',\n  menuCheckboxIndicator:\n    'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n  menuRadioIndicator:\n    'absolute left-2 inline-flex h-4 w-4 items-center justify-center text-current',\n  menuSubTrigger:\n    cn(\n      'relative flex min-h-8 min-w-0 cursor-pointer select-none items-center gap-2 rounded-sm px-2.5 py-1.5 text-sm text-foreground outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:!cursor-not-allowed data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',\n      motionInteractive,\n    ),\n  menuSubTriggerIcon:\n    'ml-auto inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n  menuSubContent:\n    'z-50 min-w-40 overflow-hidden rounded-md border border-border bg-background p-1 text-sm text-foreground shadow-lg outline-none motion-safe:animate-in motion-safe:fade-in motion-safe:zoom-in-95 motion-safe:duration-300 motion-safe:ease-out',\n  tableContainer:\n    cn(\n      'relative isolate min-w-0 overflow-auto rounded-lg border border-border/70 bg-background/95 bg-clip-padding [scrollbar-gutter:stable]',\n      '[--base-table-header-height:2.75rem] [--base-table-split-scrollbar-gutter:0.75rem]',\n      '[--base-table-sticky-header-bg:hsl(var(--background))] [--base-table-header-separator:hsl(var(--border)_/_0.7)]',\n      tableScrollbarChrome,\n      motionBase,\n    ),\n  tableContainerFooterAttached: '!rounded-b-none !shadow-none',\n  tableRoot: 'w-full caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n  tableCaption: 'mt-3 text-sm text-muted-foreground',\n  tableHeader:\n    cn(\n      'relative z-[2] bg-transparent [&_tr]:bg-transparent',\n      tableStickyHeaderCells,\n    ),\n  tableBody: '[&_tr:last-child>*]:border-b-0',\n  tableFooter: 'bg-muted/30 font-medium [&_tr>*]:border-t [&_tr>*]:border-border/70',\n  tableFooterBar:\n    cn(\n      'flex min-w-0 flex-wrap items-center justify-between gap-3 rounded-lg border border-border/70 bg-muted/20 px-4 py-3 text-sm text-foreground shadow-none',\n      motionBase,\n    ),\n  tableFooterBarAttached:\n    '-mt-px rounded-t-none border-t border-border/70 shadow-none',\n  tableFooterBarLeading: 'flex min-w-0 items-center gap-2',\n  tableFooterBarContent: 'min-w-0 flex-1',\n  tableFooterBarActions: 'ms-auto flex shrink-0 flex-wrap items-center gap-2',\n  tableSplitRoot:\n    'grid w-full min-w-0 grid-cols-[minmax(0,1fr)] grid-rows-[auto_minmax(0,1fr)_auto] caption-bottom border-separate border-spacing-0 text-sm text-foreground',\n  tableSplitHeader:\n    'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden bg-transparent',\n  tableSplitBody:\n    cn(\n      'block min-h-0 w-full min-w-0 max-w-full justify-self-stretch overflow-auto [scrollbar-gutter:stable]',\n      tableScrollbarChrome,\n    ),\n  tableSplitFooter:\n    'block w-full min-w-0 shrink-0 overflow-x-hidden overflow-y-hidden',\n  tableSplitRow:\n    'grid w-max min-w-full [grid-template-columns:var(--base-table-column-template)]',\n  tableSplitHead: 'flex min-w-0 overflow-hidden',\n  tableSplitCell: 'block min-w-0 overflow-hidden [overflow-wrap:anywhere]',\n  tableRow:\n    cn(\n      '[&>*]:border-b [&>*]:border-border/60 data-[state=selected]:bg-primary/5 data-[state=selected]:[&>*]:bg-primary/5',\n      motionBase,\n    ),\n  tableRowInteractive:\n    'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)] hover:bg-[var(--base-table-row-hover-bg)] hover:[&>*]:bg-[var(--base-table-row-hover-bg)]',\n  tableRowSelected: 'bg-primary/5 [&>*]:bg-primary/5',\n  tableRowDisabled: '!cursor-not-allowed opacity-60',\n  tableHead:\n    'relative h-11 whitespace-nowrap px-3 py-2 text-left align-middle text-xs font-semibold text-muted-foreground shadow-[inset_0_-1px_0_var(--base-table-header-separator)]',\n  tableHeadContent: 'flex min-w-0 items-center justify-between gap-2',\n  tableHeadMain: 'flex min-w-0 items-center gap-2',\n  tableHeadIcon: 'inline-flex h-4 w-4 shrink-0 items-center justify-center text-muted-foreground',\n  tableHeadText: 'grid min-w-0 gap-0.5',\n  tableHeadLabel: 'min-w-0 truncate text-xs font-semibold leading-4 text-foreground',\n  tableHeadDescription: 'min-w-0 truncate text-[11px] font-normal leading-4 text-muted-foreground',\n  tableHeadMeta: 'shrink-0 text-[11px] font-medium text-muted-foreground',\n  tableHeadActions: 'flex shrink-0 items-center gap-1',\n  tableHeadSortButton:\n    cn(\n      'inline-flex min-w-0 cursor-pointer items-center gap-1 rounded-sm text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-60',\n      motionBase,\n    ),\n  tableHeadSortIcon:\n    cn(\n      'inline-flex h-3 w-3 shrink-0 items-center justify-center text-muted-foreground',\n      motionTransform,\n    ),\n  tableHeadDragHandle:\n    cn(\n      'inline-flex h-5 w-4 shrink-0 cursor-grab items-center justify-center rounded-sm text-muted-foreground hover:bg-muted active:cursor-grabbing focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n      motionBase,\n    ),\n  tableHeadResizeHandle:\n    cn(\n      'absolute end-0 top-1/2 h-7 w-2 -translate-y-1/2 cursor-col-resize touch-none rounded-sm after:absolute after:start-1/2 after:top-1/2 after:h-5 after:w-px after:-translate-x-1/2 after:-translate-y-1/2 after:bg-border hover:after:bg-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30 disabled:!cursor-not-allowed disabled:opacity-50',\n      motionBase,\n    ),\n  tableCell: 'min-w-0 px-3 py-2 align-middle text-sm text-foreground [overflow-wrap:anywhere]',\n  tableCellAlignCenter: 'text-center',\n  tableCellAlignRight: 'text-right',\n  tableEmptyRow: '[&>*]:border-b [&>*]:border-border/60',\n  tableEmptyCell: 'px-4 py-10 text-center',\n  tableEmptyContent: 'mx-auto flex max-w-md flex-col items-center justify-center text-center',\n  tableEmptyIcon:\n    'mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-muted text-muted-foreground',\n  tableEmptyTitle: 'text-sm font-semibold text-foreground',\n  tableEmptyDescription: 'mt-1 text-sm leading-6 text-muted-foreground',\n  tableEmptyActions: 'mt-4 flex flex-wrap items-center justify-center gap-2',\n  tableLoadingRow: '[&>*]:border-b [&>*]:border-border/60',\n  tableLoadingCell: 'px-3 py-2',\n  tableLoadingSkeleton: 'h-4 w-full rounded-md bg-muted/70',\n  layoutRoot:\n    cn(\n      'grid min-w-0 overflow-hidden grid-rows-[auto_minmax(0,1fr)_auto] gap-3 rounded-lg border border-border/70 bg-background p-3 text-foreground',\n      motionBase,\n    ),\n  layoutRootFull: 'h-full min-h-0',\n  layoutHeader: 'min-w-0',\n  layoutBody: 'grid min-h-0 min-w-0 overflow-hidden gap-3',\n  layoutSidebar: 'min-h-0 min-w-0 overflow-hidden',\n  layoutMain: 'min-h-0 min-w-0 overflow-hidden',\n  layoutAside: 'min-h-0 min-w-0 overflow-hidden',\n  layoutFooter: 'min-w-0',\n  layoutPane:\n    cn(\n      'h-full max-h-full min-h-0 min-w-0 overflow-hidden rounded-lg bg-background text-foreground',\n      motionBase,\n    ),\n  layoutPaneScrollable: 'overflow-auto',\n  layoutPaneBordered: 'border border-border/70',\n  layoutPaneMuted: 'bg-muted/25',\n  layoutPaneSoft: 'bg-background/95 shadow-sm',\n  layoutPaneTransparent: 'bg-transparent shadow-none',\n  layoutSplitRoot: 'grid min-h-0 min-w-0 overflow-hidden',\n  layoutSplitHorizontal: 'grid-flow-col',\n  layoutSplitVertical: 'grid-flow-row',\n  layoutSplitPane: 'min-h-0 min-w-0 overflow-hidden',\n  layoutSplitPrimary: '',\n  layoutSplitSecondary: '',\n  layoutResizeHandle:\n    cn(\n      'group/resize relative z-10 flex shrink-0 items-center justify-center bg-transparent text-muted-foreground hover:bg-border/60 active:bg-border/70 focus-visible:bg-border/60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/30',\n      motionInteractive,\n    ),\n  layoutResizeHandleHorizontal: 'w-2 cursor-col-resize',\n  layoutResizeHandleVertical: 'h-2 cursor-row-resize',\n  layoutResizeHandleDisabled: 'cursor-default opacity-60',\n  layoutResizeHandleIndicator:\n    'rounded-full bg-muted-foreground/45 group-hover/resize:bg-primary/70',\n};\n\nconst densitySlots: Record<BaseDensity, Partial<BaseThemeSlots>> = {\n  compact: {\n    buttonBase: 'h-8 px-2.5 text-xs',\n    buttonIconOnly: 'h-8 w-8 px-0',\n    badgeBase: 'px-1.5 py-0 text-[11px]',\n    panelHeader: 'p-3',\n    panelBody: 'px-3 pb-3 text-xs',\n    panelBodyStandalone: 'pt-3',\n    panelFooter: 'px-3 py-2',\n    stateRoot: 'min-h-36 px-4 py-7',\n    stateIcon: 'mb-3 h-10 w-10',\n    fieldRoot: 'gap-1.5',\n    fieldLabel: 'text-xs',\n    fieldDescription: 'text-xs leading-5',\n    fieldMessage: 'text-xs leading-5',\n    controlInput: 'h-8 text-xs',\n    controlTextarea: 'min-h-20 text-xs',\n    controlSelect: 'h-8 text-xs',\n    selectMenu: 'text-xs',\n    selectOption: 'min-h-7 px-2 py-1 text-xs',\n    switchTrack: 'h-5 w-9',\n    switchThumb: 'h-3.5 w-3.5',\n    checkboxBox: 'h-3.5 w-3.5',\n    checkboxLabel: 'text-xs',\n    checkboxDescription: 'text-xs leading-5',\n    radioOption: 'px-2 py-1.5 text-xs',\n    radioMarker: 'h-3.5 w-3.5',\n    radioIndicator: 'h-1.5 w-1.5',\n    radioLabel: 'text-xs',\n    radioDescription: 'text-xs leading-5',\n    dialogPanel: 'max-w-md',\n    dialogHeader: 'px-4 py-3',\n    dialogTitle: 'text-sm leading-5',\n    dialogDescription: 'text-xs leading-5',\n    dialogBody: 'px-4 py-3 text-xs',\n    dialogFooter: 'px-4 py-3',\n    dropdownMenu: 'min-w-44 text-xs',\n    dropdownItem: 'px-2 py-1.5 text-xs',\n    tooltipContent: 'text-[11px] leading-4',\n    noticeBase: 'px-3 py-2 text-xs',\n    dividerLabel: 'text-[11px]',\n    sectionHeaderRoot: 'gap-2',\n    sectionHeaderTitle: 'text-sm leading-5',\n    sectionHeaderDescription: 'text-xs leading-5',\n    tabsList: 'gap-0.5 p-0.5',\n    tabsTrigger: 'px-2 py-1 text-xs',\n    tabsPanel: 'p-3 text-xs',\n    segmentedRoot: 'gap-0.5 p-0.5',\n    segmentedItem: 'px-2 py-1 text-xs',\n    progressTrack: 'h-1.5',\n    avatarRoot: 'text-xs',\n    toolbarRoot: 'gap-2 px-3 py-2',\n    toolbarTitle: 'text-xs',\n    toolbarDescription: 'text-xs leading-5',\n    paginationButton: 'h-7 min-w-7 px-2 text-xs',\n    paginationPage: 'h-7 min-w-7 px-2 text-xs',\n    descriptionListRoot: 'gap-2 text-xs',\n    descriptionListItem: 'px-2 py-1.5',\n    descriptionListTerm: 'text-[11px]',\n    descriptionListValue: 'text-xs leading-5',\n    accordionTrigger: 'px-3 py-2 text-xs',\n    accordionPanel: 'px-3 py-2 text-xs leading-5',\n    menuContent: 'min-w-40 p-0.5 text-xs',\n    menuSubContent: 'min-w-36 p-0.5 text-xs',\n    menuLabel: 'px-2 py-1 text-[11px]',\n    menuItem: 'min-h-7 px-2 py-1 text-xs',\n    menuSubTrigger: 'min-h-7 px-2 py-1 text-xs',\n    menuItemShortcut: 'text-[11px]',\n    tableContainer: '[--base-table-header-height:2.25rem]',\n    tableHead: 'h-9 px-2 py-1.5 text-[11px]',\n    tableCell: 'px-2 py-1.5 text-xs',\n    tableHeadLabel: 'text-[11px]',\n    tableHeadDescription: 'text-[10px] leading-3',\n    tableLoadingCell: 'px-2 py-1.5',\n    layoutRoot: 'gap-2 p-2',\n    layoutBody: 'gap-2',\n    layoutPane: 'rounded-md text-xs',\n    layoutResizeHandleHorizontal: 'w-1.5',\n    layoutResizeHandleVertical: 'h-1.5',\n  },\n  default: {\n    buttonBase: 'h-9',\n  },\n  comfortable: {\n    buttonBase: 'h-10 px-3.5',\n    buttonIconOnly: 'h-10 w-10 px-0',\n    badgeBase: 'px-2.5 py-1',\n    panelHeader: 'p-5',\n    panelBody: 'px-5 pb-5',\n    panelBodyStandalone: 'pt-5',\n    panelFooter: 'px-5 py-3.5',\n    stateRoot: 'min-h-56 px-8 py-12',\n    stateIcon: 'mb-5 h-14 w-14',\n    fieldRoot: 'gap-2.5',\n    controlInput: 'h-10',\n    controlTextarea: 'min-h-28',\n    controlSelect: 'h-10',\n    selectMenu: 'p-1.5',\n    selectOption: 'min-h-9 px-3 py-2',\n    switchTrack: 'h-7 w-12',\n    switchThumb: 'h-5 w-5',\n    checkboxBox: 'h-5 w-5',\n    radioOption: 'px-4 py-3',\n    radioMarker: 'h-5 w-5',\n    radioIndicator: 'h-2.5 w-2.5',\n    dialogPanel: 'max-w-xl',\n    dialogHeader: 'px-6 py-5',\n    dialogBody: 'px-6 py-5',\n    dialogFooter: 'px-6 py-5',\n    dropdownMenu: 'min-w-56',\n    dropdownItem: 'px-3 py-2.5',\n    noticeBase: 'px-5 py-4',\n    sectionHeaderTitle: 'text-lg leading-7',\n    tabsTrigger: 'px-3.5 py-2',\n    tabsPanel: 'p-5',\n    segmentedItem: 'px-3.5 py-2',\n    progressTrack: 'h-2.5',\n    toolbarRoot: 'px-5 py-4',\n    paginationButton: 'h-9 min-w-9 px-3',\n    paginationPage: 'h-9 min-w-9 px-3',\n    descriptionListItem: 'px-4 py-3',\n    accordionTrigger: 'px-5 py-4',\n    accordionPanel: 'px-5 py-4',\n    menuContent: 'min-w-48 p-1.5',\n    menuSubContent: 'min-w-44 p-1.5',\n    menuItem: 'min-h-9 px-3 py-2',\n    menuSubTrigger: 'min-h-9 px-3 py-2',\n    tableContainer: '[--base-table-header-height:3rem]',\n    tableHead: 'h-12 px-4 py-3',\n    tableCell: 'px-4 py-3',\n    tableLoadingCell: 'px-4 py-3',\n    layoutRoot: 'gap-4 p-4',\n    layoutBody: 'gap-4',\n    layoutPane: 'rounded-xl',\n    layoutResizeHandleHorizontal: 'w-2.5',\n    layoutResizeHandleVertical: 'h-2.5',\n  },\n};\n\nconst radiusSlots: Record<BaseRadius, Partial<BaseThemeSlots>> = {\n  none: {\n    buttonBase: 'rounded-none',\n    badgeBase: 'rounded-none',\n    panelRoot: 'rounded-none',\n    stateRoot: 'rounded-none',\n    stateIcon: 'rounded-none',\n    controlWrapper: 'rounded-none',\n    selectMenu: 'rounded-none',\n    selectOption: 'rounded-none',\n    switchTrack: 'rounded-none',\n    switchThumb: 'rounded-none',\n    checkboxBox: 'rounded-none',\n    radioOption: 'rounded-none',\n    dialogPanel: 'rounded-none',\n    dialogClose: 'rounded-none',\n    dropdownMenu: 'rounded-none',\n    dropdownItem: 'rounded-none',\n    tooltipContent: 'rounded-none',\n    noticeBase: 'rounded-none',\n    tabsList: 'rounded-none',\n    tabsTrigger: 'rounded-none',\n    tabsPanel: 'rounded-none',\n    segmentedRoot: 'rounded-none',\n    segmentedItem: 'rounded-none',\n    progressTrack: 'rounded-none',\n    progressIndicator: 'rounded-none',\n    skeletonRoot: 'rounded-none',\n    avatarRoot: 'rounded-none',\n    avatarStatus: 'rounded-none',\n    toolbarRoot: 'rounded-none',\n    paginationButton: 'rounded-none',\n    paginationPage: 'rounded-none',\n    descriptionListItem: 'rounded-none',\n    accordionItem: 'rounded-none',\n    menuContent: 'rounded-none',\n    menuItem: 'rounded-none',\n    menuSubTrigger: 'rounded-none',\n    menuSubContent: 'rounded-none',\n    tableContainer: 'rounded-none',\n    tableEmptyIcon: 'rounded-none',\n    tableLoadingSkeleton: 'rounded-none',\n    layoutRoot: 'rounded-none',\n    layoutPane: 'rounded-none',\n  },\n  sm: {\n    buttonBase: 'rounded-sm',\n    badgeBase: 'rounded-sm',\n    panelRoot: 'rounded-sm',\n    stateRoot: 'rounded-sm',\n    stateIcon: 'rounded-sm',\n    controlWrapper: 'rounded-sm',\n    selectMenu: 'rounded-sm',\n    selectOption: 'rounded-sm',\n    switchTrack: 'rounded-sm',\n    switchThumb: 'rounded-sm',\n    checkboxBox: 'rounded-sm',\n    radioOption: 'rounded-sm',\n    dialogPanel: 'rounded-sm',\n    dialogClose: 'rounded-sm',\n    dropdownMenu: 'rounded-sm',\n    dropdownItem: 'rounded-sm',\n    tooltipContent: 'rounded-sm',\n    noticeBase: 'rounded-sm',\n    tabsList: 'rounded-sm',\n    tabsTrigger: 'rounded-sm',\n    tabsPanel: 'rounded-sm',\n    segmentedRoot: 'rounded-sm',\n    segmentedItem: 'rounded-sm',\n    progressTrack: 'rounded-sm',\n    progressIndicator: 'rounded-sm',\n    skeletonRoot: 'rounded-sm',\n    avatarRoot: 'rounded-sm',\n    avatarStatus: 'rounded-sm',\n    toolbarRoot: 'rounded-sm',\n    paginationButton: 'rounded-sm',\n    paginationPage: 'rounded-sm',\n    descriptionListItem: 'rounded-sm',\n    accordionItem: 'rounded-sm',\n    menuContent: 'rounded-sm',\n    menuItem: 'rounded-sm',\n    menuSubTrigger: 'rounded-sm',\n    menuSubContent: 'rounded-sm',\n    tableContainer: 'rounded-sm',\n    tableEmptyIcon: 'rounded-sm',\n    tableLoadingSkeleton: 'rounded-sm',\n    layoutRoot: 'rounded-sm',\n    layoutPane: 'rounded-sm',\n  },\n  md: {},\n  lg: {\n    buttonBase: 'rounded-lg',\n    badgeBase: 'rounded-lg',\n    panelRoot: 'rounded-xl',\n    stateRoot: 'rounded-xl',\n    stateIcon: 'rounded-xl',\n    controlWrapper: 'rounded-lg',\n    selectMenu: 'rounded-lg',\n    selectOption: 'rounded-md',\n    switchTrack: 'rounded-full',\n    switchThumb: 'rounded-full',\n    checkboxBox: 'rounded-md',\n    radioOption: 'rounded-xl',\n    dialogPanel: 'rounded-xl',\n    dialogClose: 'rounded-lg',\n    dropdownMenu: 'rounded-lg',\n    dropdownItem: 'rounded-md',\n    tooltipContent: 'rounded-md',\n    noticeBase: 'rounded-xl',\n    tabsList: 'rounded-xl',\n    tabsTrigger: 'rounded-lg',\n    tabsPanel: 'rounded-xl',\n    segmentedRoot: 'rounded-xl',\n    segmentedItem: 'rounded-lg',\n    skeletonRoot: 'rounded-lg',\n    toolbarRoot: 'rounded-xl',\n    descriptionListItem: 'rounded-lg',\n    accordionItem: 'rounded-xl',\n    menuContent: 'rounded-lg',\n    menuItem: 'rounded-md',\n    menuSubTrigger: 'rounded-md',\n    menuSubContent: 'rounded-lg',\n    tableContainer: 'rounded-xl',\n    tableEmptyIcon: 'rounded-xl',\n    tableLoadingSkeleton: 'rounded-lg',\n    layoutRoot: 'rounded-xl',\n    layoutPane: 'rounded-xl',\n  },\n  xl: {\n    buttonBase: 'rounded-xl',\n    badgeBase: 'rounded-xl',\n    panelRoot: 'rounded-2xl',\n    stateRoot: 'rounded-2xl',\n    stateIcon: 'rounded-2xl',\n    controlWrapper: 'rounded-xl',\n    selectMenu: 'rounded-xl',\n    selectOption: 'rounded-lg',\n    switchTrack: 'rounded-full',\n    switchThumb: 'rounded-full',\n    checkboxBox: 'rounded-lg',\n    radioOption: 'rounded-2xl',\n    dialogPanel: 'rounded-2xl',\n    dialogClose: 'rounded-xl',\n    dropdownMenu: 'rounded-xl',\n    dropdownItem: 'rounded-lg',\n    tooltipContent: 'rounded-lg',\n    noticeBase: 'rounded-2xl',\n    tabsList: 'rounded-2xl',\n    tabsTrigger: 'rounded-xl',\n    tabsPanel: 'rounded-2xl',\n    segmentedRoot: 'rounded-2xl',\n    segmentedItem: 'rounded-xl',\n    skeletonRoot: 'rounded-xl',\n    toolbarRoot: 'rounded-2xl',\n    paginationButton: 'rounded-xl',\n    paginationPage: 'rounded-xl',\n    descriptionListItem: 'rounded-xl',\n    accordionItem: 'rounded-2xl',\n    menuContent: 'rounded-xl',\n    menuItem: 'rounded-lg',\n    menuSubTrigger: 'rounded-lg',\n    menuSubContent: 'rounded-xl',\n    tableContainer: 'rounded-2xl',\n    tableEmptyIcon: 'rounded-2xl',\n    tableLoadingSkeleton: 'rounded-xl',\n    layoutRoot: 'rounded-2xl',\n    layoutPane: 'rounded-2xl',\n  },\n  full: {\n    buttonBase: 'rounded-full',\n    badgeBase: 'rounded-full',\n    panelRoot: 'rounded-2xl',\n    stateRoot: 'rounded-2xl',\n    stateIcon: 'rounded-full',\n    controlWrapper: 'rounded-full',\n    selectMenu: 'rounded-2xl',\n    selectOption: 'rounded-full',\n    switchTrack: 'rounded-full',\n    switchThumb: 'rounded-full',\n    checkboxBox: 'rounded-full',\n    radioOption: 'rounded-2xl',\n    dialogPanel: 'rounded-2xl',\n    dialogClose: 'rounded-full',\n    dropdownMenu: 'rounded-2xl',\n    dropdownItem: 'rounded-full',\n    tooltipContent: 'rounded-full',\n    noticeBase: 'rounded-2xl',\n    tabsList: 'rounded-full',\n    tabsTrigger: 'rounded-full',\n    tabsPanel: 'rounded-2xl',\n    segmentedRoot: 'rounded-full',\n    segmentedItem: 'rounded-full',\n    progressTrack: 'rounded-full',\n    progressIndicator: 'rounded-full',\n    skeletonRoot: 'rounded-full',\n    avatarRoot: 'rounded-full',\n    avatarStatus: 'rounded-full',\n    toolbarRoot: 'rounded-2xl',\n    paginationButton: 'rounded-full',\n    paginationPage: 'rounded-full',\n    descriptionListItem: 'rounded-2xl',\n    accordionItem: 'rounded-2xl',\n    menuContent: 'rounded-2xl',\n    menuItem: 'rounded-full',\n    menuSubTrigger: 'rounded-full',\n    menuSubContent: 'rounded-2xl',\n    tableContainer: 'rounded-2xl',\n    tableEmptyIcon: 'rounded-full',\n    tableLoadingSkeleton: 'rounded-full',\n    layoutRoot: 'rounded-2xl',\n    layoutPane: 'rounded-2xl',\n  },\n};\n\nconst borderSlots: Record<BaseBorder, Partial<BaseThemeSlots>> = {\n  none: {\n    buttonBase: 'border-transparent',\n    badgeBase: 'border-transparent',\n    panelRoot: 'border-transparent',\n    panelFooter: 'border-transparent',\n    stateRoot: 'border-transparent',\n    controlWrapper: 'border-transparent',\n    selectMenu: 'border-transparent',\n    switchTrack: 'border-transparent',\n    checkboxBox: 'border-transparent',\n    radioOption: 'border-transparent',\n    radioMarker: 'border-transparent',\n    dialogPanel: 'border-transparent',\n    dialogHeader: 'border-transparent',\n    dialogFooter: 'border-transparent',\n    dropdownMenu: 'border-transparent',\n    tooltipContent: 'border-transparent',\n    noticeBase: 'border-transparent',\n    dividerRoot: 'border-transparent',\n    tabsList: 'border-transparent',\n    tabsPanel: 'border-transparent',\n    segmentedRoot: 'border-transparent',\n    avatarRoot: 'border-transparent',\n    toolbarRoot: 'border-transparent',\n    paginationButton: 'border-transparent',\n    descriptionListItem: 'border-transparent',\n    accordionItem: 'border-transparent',\n    accordionPanel: 'border-transparent',\n    menuContent: 'border-transparent',\n    menuSeparator: 'bg-transparent',\n    menuSubContent: 'border-transparent',\n    tableContainer: 'border-transparent [--base-table-header-separator:transparent]',\n    tableHeader: 'border-transparent',\n    tableFooter: '[&_tr>*]:border-transparent',\n    tableFooterBar: 'border-transparent',\n    tableFooterBarAttached: 'border-t border-transparent',\n    tableRow: '[&>*]:border-transparent',\n    tableEmptyRow: '[&>*]:border-transparent',\n    tableLoadingRow: '[&>*]:border-transparent',\n    layoutRoot: 'border-transparent',\n    layoutPaneBordered: 'border-transparent',\n    layoutResizeHandle: 'bg-transparent hover:bg-transparent active:bg-transparent focus-visible:bg-transparent',\n  },\n  subtle: {\n    buttonDefault: 'border-border/60',\n    badgeDefault: 'border-border/60',\n    panelRoot: 'border-border/60',\n    panelFooter: 'border-border/60',\n    stateRoot: 'border-border/60',\n    controlWrapper: 'border-border/60',\n    selectMenu: 'border-border/60',\n    switchTrack: 'border-border/60',\n    checkboxBox: 'border-border/60',\n    radioOption: 'border-border/60',\n    radioMarker: 'border-border/60',\n    dialogPanel: 'border-border/60',\n    dialogHeader: 'border-border/60',\n    dialogFooter: 'border-border/60',\n    dropdownMenu: 'border-border/60',\n    tooltipContent: 'border-border/60',\n    noticeDefault: 'border-border/60',\n    dividerRoot: 'border-border/60',\n    tabsList: 'border-border/60',\n    tabsPanel: 'border-border/60',\n    segmentedRoot: 'border-border/60',\n    avatarRoot: 'border-border/60',\n    toolbarRoot: 'border-border/60',\n    paginationButton: 'border-border/60',\n    descriptionListItem: 'border-border/60',\n    accordionItem: 'border-border/60',\n    accordionPanel: 'border-border/60',\n    menuContent: 'border-border/60',\n    menuSeparator: 'bg-border/60',\n    menuSubContent: 'border-border/60',\n    tableContainer: 'border-border/60 [--base-table-header-separator:hsl(var(--border)_/_0.6)]',\n    tableHeader: 'border-border/60',\n    tableFooter: '[&_tr>*]:border-border/60',\n    tableFooterBar: 'border-border/60',\n    tableFooterBarAttached: 'border-t border-border/60',\n    tableRow: '[&>*]:border-border/50',\n    tableEmptyRow: '[&>*]:border-border/50',\n    tableLoadingRow: '[&>*]:border-border/50',\n    layoutRoot: 'border-border/60',\n    layoutPaneBordered: 'border-border/60',\n  },\n  solid: {},\n  strong: {\n    buttonDefault: 'border-foreground/20',\n    badgeDefault: 'border-foreground/20',\n    panelRoot: 'border-foreground/20',\n    panelFooter: 'border-foreground/20',\n    stateRoot: 'border-foreground/20',\n    controlWrapper: 'border-foreground/20',\n    selectMenu: 'border-foreground/20',\n    switchTrack: 'border-foreground/20',\n    checkboxBox: 'border-foreground/20',\n    radioOption: 'border-foreground/20',\n    radioMarker: 'border-foreground/20',\n    dialogPanel: 'border-foreground/20',\n    dialogHeader: 'border-foreground/15',\n    dialogFooter: 'border-foreground/15',\n    dropdownMenu: 'border-foreground/20',\n    tooltipContent: 'border-foreground/20',\n    noticeDefault: 'border-foreground/20',\n    dividerRoot: 'border-foreground/20',\n    tabsList: 'border-foreground/20',\n    tabsPanel: 'border-foreground/20',\n    segmentedRoot: 'border-foreground/20',\n    avatarRoot: 'border-foreground/20',\n    toolbarRoot: 'border-foreground/20',\n    paginationButton: 'border-foreground/20',\n    descriptionListItem: 'border-foreground/20',\n    accordionItem: 'border-foreground/20',\n    accordionPanel: 'border-foreground/20',\n    menuContent: 'border-foreground/20',\n    menuSeparator: 'bg-foreground/15',\n    menuSubContent: 'border-foreground/20',\n    tableContainer:\n      'border-foreground/20 [--base-table-header-separator:hsl(var(--foreground)_/_0.15)]',\n    tableHeader: 'border-foreground/20',\n    tableFooter: '[&_tr>*]:border-foreground/20',\n    tableFooterBar: 'border-foreground/20',\n    tableFooterBarAttached: 'border-t border-foreground/20',\n    tableRow: '[&>*]:border-foreground/15',\n    tableEmptyRow: '[&>*]:border-foreground/15',\n    tableLoadingRow: '[&>*]:border-foreground/15',\n    layoutRoot: 'border-foreground/20',\n    layoutPaneBordered: 'border-foreground/20',\n    layoutResizeHandle: 'hover:bg-foreground/15 active:bg-foreground/20 focus-visible:bg-foreground/15',\n  },\n};\n\nconst backgroundSlots: Record<BaseBackground, Partial<BaseThemeSlots>> = {\n  plain: {},\n  muted: {\n    buttonDefault: 'bg-muted/20 hover:bg-muted/45',\n    panelRoot: 'bg-card',\n    panelFooter: 'bg-muted/20',\n    stateRoot: 'bg-muted/20',\n    controlWrapper: 'bg-background',\n    selectMenu: 'bg-background',\n    selectOptionActive: 'bg-muted/70 text-foreground',\n    checkboxBox: 'bg-background',\n    radioOption: 'bg-card hover:bg-muted/45',\n    radioMarker: 'bg-background',\n    dialogPanel: 'bg-card',\n    dropdownMenu: 'bg-background',\n    dropdownItem: 'hover:bg-muted/60',\n    tooltipContent: 'bg-popover',\n    noticeDefault: 'bg-muted/20',\n    tabsList: 'bg-muted/35',\n    tabsTriggerActive: 'bg-background',\n    tabsPanel: 'bg-card',\n    segmentedRoot: 'bg-muted/35',\n    segmentedItemActive: 'bg-background',\n    progressTrack: 'bg-muted/60',\n    skeletonRoot: 'bg-muted',\n    toolbarRoot: 'bg-card',\n    paginationButton: 'bg-background hover:bg-muted/60',\n    paginationPage: 'bg-muted/60',\n    descriptionListItem: 'bg-card',\n    accordionItem: 'bg-card',\n    menuContent: 'bg-background',\n    menuItem: 'focus:bg-muted/70 data-[highlighted]:bg-muted/70',\n    menuSubTrigger:\n      'focus:bg-muted/70 data-[highlighted]:bg-muted/70 data-[state=open]:bg-muted/70',\n    menuSubContent: 'bg-background',\n    tableContainer: 'bg-background/95 [scrollbar-gutter:stable]',\n    tableFooter: 'bg-muted/35',\n    tableFooterBar: 'bg-muted/30 shadow-none',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.45)]',\n    tableLoadingSkeleton: 'bg-muted',\n    layoutRoot: 'bg-card',\n    layoutPane: 'bg-card',\n    layoutPaneMuted: 'bg-muted/35',\n    layoutResizeHandle: 'hover:bg-border/70 active:bg-border/80 focus-visible:bg-border/70',\n  },\n  soft: {\n    buttonDefault: 'bg-muted/30 hover:bg-muted/55',\n    panelRoot: 'bg-background/95 shadow-sm',\n    stateRoot: 'bg-background/95 shadow-sm',\n    controlWrapper: 'bg-background/95',\n    selectMenu: 'bg-background/95 shadow-xl',\n    selectOptionActive: 'bg-muted/60 text-foreground',\n    checkboxBox: 'bg-background/95',\n    radioOption: 'bg-background/95 shadow-sm hover:bg-muted/35',\n    radioMarker: 'bg-background/95',\n    dialogPanel: 'bg-background/95 shadow-xl',\n    dropdownMenu: 'bg-background/95 shadow-xl',\n    dropdownItem: 'hover:bg-muted/55',\n    tooltipContent: 'bg-popover shadow-xl',\n    noticeDefault: 'bg-background/95 shadow-sm',\n    tabsList: 'bg-background/60 shadow-sm',\n    tabsTriggerActive: 'bg-background',\n    tabsPanel: 'bg-background/95 shadow-sm',\n    segmentedRoot: 'bg-background/60 shadow-sm',\n    segmentedItemActive: 'bg-background',\n    skeletonRoot: 'bg-background/80',\n    toolbarRoot: 'bg-background/95 shadow-sm',\n    paginationButton: 'bg-background/95 hover:bg-muted/55',\n    descriptionListItem: 'bg-background/95 shadow-sm',\n    accordionItem: 'bg-background/95 shadow-sm',\n    menuContent: 'bg-background/95 shadow-xl',\n    menuItem: 'focus:bg-muted/60 data-[highlighted]:bg-muted/60',\n    menuSubTrigger:\n      'focus:bg-muted/60 data-[highlighted]:bg-muted/60 data-[state=open]:bg-muted/60',\n    menuSubContent: 'bg-background/95 shadow-xl',\n    tableContainer:\n      'bg-background/95 shadow-sm [scrollbar-gutter:stable]',\n    tableFooter: 'bg-muted/25',\n    tableFooterBar: 'bg-muted/25 shadow-none',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--muted)_/_0.35)]',\n    tableLoadingSkeleton: 'bg-muted/65',\n    layoutRoot: 'bg-background/95 shadow-sm',\n    layoutPane: 'bg-background/95 shadow-sm',\n    layoutPaneSoft: 'bg-background/95 shadow-md',\n  },\n  glass: {\n    buttonBase: 'backdrop-blur-md',\n    buttonDefault:\n      'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n    badgeDefault: 'border-white/10 bg-white/[0.08] text-foreground',\n    panelRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    panelFooter: 'border-white/10 bg-white/[0.05]',\n    stateRoot: 'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    stateIcon: 'bg-white/10 text-foreground',\n    controlWrapper:\n      'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n    selectMenu:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    selectOption: 'text-foreground',\n    selectOptionActive: 'bg-white/[0.14] text-foreground',\n    selectOptionSelected: 'bg-white/[0.18] text-foreground',\n    switchTrack: 'border-white/10 bg-white/[0.12] backdrop-blur-md',\n    checkboxBox: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    checkboxBoxChecked: 'border-white/20 bg-white/[0.22] text-foreground',\n    radioOption: 'border-white/10 bg-white/[0.06] backdrop-blur-md hover:bg-white/[0.10]',\n    radioMarker: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    radioMarkerChecked: 'border-white/25 bg-white/[0.16]',\n    dialogOverlay: 'bg-background/45 backdrop-blur-md',\n    dialogPanel: 'border-white/10 bg-white/[0.08] shadow-2xl backdrop-blur-md',\n    dialogHeader: 'border-white/10',\n    dialogFooter: 'border-white/10',\n    dropdownMenu:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    dropdownItem: 'text-foreground hover:bg-white/[0.14]',\n    tooltipContent:\n      'border-foreground/10 bg-background/15 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    noticeDefault:\n      'border-white/10 bg-white/[0.08] text-foreground backdrop-blur-md',\n    dividerRoot: 'border-white/15',\n    tabsList: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    tabsTrigger: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n    tabsTriggerActive: 'bg-white/[0.16] text-foreground shadow-none',\n    tabsPanel:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    segmentedRoot: 'border-white/10 bg-white/[0.08] backdrop-blur-md',\n    segmentedItem: 'text-muted-foreground hover:bg-white/[0.12] hover:text-foreground',\n    segmentedItemActive: 'bg-white/[0.16] text-foreground shadow-none',\n    progressTrack: 'bg-white/[0.12]',\n    skeletonRoot: 'bg-white/[0.16]',\n    avatarRoot: 'border-white/10 bg-white/[0.12] text-foreground',\n    avatarFallback: 'bg-white/[0.12] text-foreground',\n    avatarStatus: 'border-background',\n    toolbarRoot:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    paginationButton:\n      'border-white/10 bg-white/[0.08] text-foreground hover:bg-white/[0.14]',\n    paginationPage: 'bg-white/[0.12] text-foreground',\n    descriptionListItem:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    accordionItem:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    accordionPanel: 'border-white/10',\n    menuContent:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    menuSeparator: 'bg-white/10',\n    menuItem:\n      'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground',\n    menuSubTrigger:\n      'text-foreground focus:bg-white/[0.14] focus:text-foreground data-[highlighted]:bg-white/[0.14] data-[highlighted]:text-foreground data-[state=open]:bg-white/[0.16]',\n    menuSubContent:\n      'border-foreground/10 bg-background/10 text-foreground shadow-[0_18px_60px_hsl(var(--foreground)/0.18)] backdrop-blur-md',\n    tableContainer:\n      'border-foreground/10 bg-background/[0.06] shadow-none backdrop-blur-md [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.94)] [--base-table-header-separator:hsl(var(--foreground)/0.24)]',\n    tableHeader: 'border-white/10',\n    tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n    tableFooterBar:\n      'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n    tableFooterBarAttached: 'border-t border-white/10',\n    tableRow: '[&>*]:border-white/10',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.08)]',\n    tableHeadLabel: 'text-foreground',\n    tableLoadingSkeleton: 'bg-white/[0.16]',\n    layoutRoot:\n      'border-white/10 bg-white/[0.05] shadow-none backdrop-blur-md',\n    layoutPane:\n      'border-white/10 bg-white/[0.06] shadow-none backdrop-blur-md',\n    layoutPaneMuted: 'bg-white/[0.08]',\n    layoutPaneSoft: 'bg-white/[0.10] shadow-none backdrop-blur-md',\n    layoutResizeHandle: 'text-foreground/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n    layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n  },\n  dark: {\n    buttonBase:\n      'border-white/15 text-white shadow-lg backdrop-blur',\n    buttonDefault: 'bg-black/30 hover:bg-black/[0.45]',\n    buttonPrimary: 'border-white/25 bg-white/20 text-white hover:bg-white/25',\n    buttonMuted:\n      'border-white/10 bg-black/20 text-white/70 hover:bg-black/[0.35] hover:text-white',\n    badgeDefault: 'border-white/10 bg-white/[0.08] text-white',\n    badgeMuted: 'border-white/10 bg-black/20 text-white/70',\n    panelRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n    panelTitle: 'text-white',\n    panelDescription: 'text-white/65',\n    panelBody: 'text-white/85',\n    panelFooter: 'border-white/10 bg-white/[0.04]',\n    stateRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n    stateIcon: 'bg-white/10 text-white/75',\n    stateTitle: 'text-white',\n    stateDescription: 'text-white/65',\n    fieldLabel: 'text-white',\n    fieldDescription: 'text-white/65',\n    fieldMessage: 'text-white/65',\n    controlWrapper:\n      'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur focus-within:border-white/35',\n    controlBase: 'text-white placeholder:text-white/45',\n    selectChevron: 'text-white/65',\n    selectMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n    selectOption: 'text-white',\n    selectOptionActive: 'bg-white/[0.12] text-white',\n    selectOptionSelected: 'bg-white/[0.16] text-white',\n    selectPlaceholder: 'text-white/45',\n    switchTrack: 'border-white/15 bg-black/30 shadow-lg backdrop-blur',\n    switchChecked: 'border-white/25 bg-white/25 text-white',\n    switchLabel: 'text-white',\n    switchDescription: 'text-white/65',\n    checkboxBox: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n    checkboxBoxChecked: 'border-white/25 bg-white/25 text-white',\n    checkboxLabel: 'text-white',\n    checkboxDescription: 'text-white/65',\n    radioOption: 'border-white/10 bg-white/[0.06] text-white hover:bg-white/[0.08]',\n    radioMarker: 'border-white/15 bg-black/30 text-white shadow-lg backdrop-blur',\n    radioMarkerChecked: 'border-white/25 bg-white/25',\n    radioIndicator: 'bg-white',\n    radioLabel: 'text-white',\n    radioDescription: 'text-white/65',\n    dialogOverlay: 'bg-slate-950/75',\n    dialogPanel: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n    dialogHeader: 'border-white/10',\n    dialogTitle: 'text-white',\n    dialogDescription: 'text-white/65',\n    dialogBody: 'text-white/85',\n    dialogFooter: 'border-white/10',\n    dialogClose: 'text-white/65 hover:bg-white/[0.08] hover:text-white',\n    dropdownMenu: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n    dropdownLabel: 'text-white/55',\n    dropdownSeparator: 'bg-white/15',\n    dropdownItem: 'text-white hover:bg-white/[0.10]',\n    dropdownItemDescription: 'text-white/55',\n    dropdownItemShortcut: 'text-white/55',\n    tooltipContent: 'border-white/15 bg-slate-950 text-white shadow-2xl',\n    noticeDefault: 'border-white/10 bg-white/[0.08] text-white',\n    noticeMuted: 'border-white/10 bg-black/20 text-white/70',\n    dividerRoot: 'border-white/15',\n    dividerLabel: 'text-white/55',\n    sectionHeaderEyebrow: 'text-white/55',\n    sectionHeaderTitle: 'text-white',\n    sectionHeaderDescription: 'text-white/65',\n    tabsList: 'border-white/10 bg-white/[0.08]',\n    tabsTrigger: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n    tabsTriggerActive: 'bg-white/[0.16] text-white shadow-none',\n    tabsPanel: 'border-white/10 bg-white/[0.06] text-white',\n    segmentedRoot: 'border-white/10 bg-white/[0.08]',\n    segmentedItem: 'text-white/65 hover:bg-white/[0.12] hover:text-white',\n    segmentedItemActive: 'bg-white/[0.16] text-white shadow-none',\n    progressTrack: 'bg-white/[0.12]',\n    progressLabel: 'text-white',\n    progressValue: 'text-white/65',\n    skeletonRoot: 'bg-white/[0.14]',\n    avatarRoot: 'border-white/15 bg-white/[0.10] text-white',\n    avatarFallback: 'bg-white/[0.10] text-white/75',\n    avatarText: 'text-white',\n    avatarStatus: 'border-slate-950',\n    toolbarRoot: 'border-white/10 bg-white/[0.06] text-white',\n    toolbarTitle: 'text-white',\n    toolbarDescription: 'text-white/65',\n    breadcrumbLink: 'text-white/65 hover:text-white',\n    breadcrumbCurrent: 'text-white',\n    breadcrumbSeparator: 'text-white/45',\n    paginationInfo: 'text-white/65',\n    paginationButton: 'border-white/10 bg-white/[0.08] text-white hover:bg-white/[0.14]',\n    paginationPage: 'bg-white/[0.14] text-white',\n    descriptionListItem: 'border-white/10 bg-white/[0.06]',\n    descriptionListTerm: 'text-white/55',\n    descriptionListValue: 'text-white',\n    accordionItem: 'border-white/10 bg-white/[0.06]',\n    accordionTrigger: 'text-white hover:bg-white/[0.08]',\n    accordionPanel: 'border-white/10 text-white/70',\n    tableContainer:\n      'border-foreground/10 bg-background text-foreground shadow-none [scrollbar-gutter:stable] [--base-table-sticky-header-bg:hsl(var(--background)/0.98)] [--base-table-header-separator:hsl(var(--foreground)/0.16)]',\n    tableRoot: 'text-white',\n    tableHeader: 'border-white/10',\n    tableFooter: 'bg-white/[0.05] [&_tr>*]:border-white/10',\n    tableFooterBar: 'border-white/10 bg-white/[0.05] text-white/65',\n    tableFooterBarAttached: 'border-t border-white/10',\n    tableRow: '[&>*]:border-white/10',\n    tableRowInteractive: 'cursor-pointer [--base-table-row-hover-bg:hsl(var(--foreground)/0.06)]',\n    tableHead: 'text-white/65',\n    tableHeadLabel: 'text-white',\n    tableHeadDescription: 'text-white/55',\n    tableHeadMeta: 'text-white/55',\n    tableHeadIcon: 'text-white/55',\n    tableHeadSortIcon: 'text-white/55',\n    tableHeadDragHandle: 'text-white/55 hover:bg-white/[0.08]',\n    tableHeadResizeHandle: 'after:bg-white/20 hover:after:bg-white/60',\n    tableCell: 'text-white/85',\n    tableEmptyIcon: 'bg-white/10 text-white/65',\n    tableEmptyTitle: 'text-white',\n    tableEmptyDescription: 'text-white/60',\n    menuContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n    menuLabel: 'text-white/55',\n    menuSeparator: 'bg-white/10',\n    menuItem:\n      'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white',\n    menuItemDefault: 'text-white',\n    menuItemPrimary: 'text-primary focus:text-primary data-[highlighted]:text-primary',\n    menuItemSuccess:\n      'text-[hsl(var(--success,142_69%_58%))] focus:text-[hsl(var(--success,142_69%_58%))] data-[highlighted]:text-[hsl(var(--success,142_69%_58%))]',\n    menuItemWarning:\n      'text-[hsl(var(--warning-foreground,53_98%_77%))] focus:text-[hsl(var(--warning-foreground,53_98%_77%))] data-[highlighted]:text-[hsl(var(--warning-foreground,53_98%_77%))]',\n    menuItemDanger:\n      'text-destructive-text focus:text-destructive-text data-[highlighted]:text-destructive-text',\n    menuItemMuted:\n      'text-white/65 focus:text-white data-[highlighted]:text-white',\n    menuItemShortcut: 'text-white/45',\n    menuSubTrigger:\n      'text-white focus:bg-white/[0.10] focus:text-white data-[highlighted]:bg-white/[0.10] data-[highlighted]:text-white data-[state=open]:bg-white/[0.12]',\n    menuSubTriggerIcon: 'text-white/55',\n    menuSubContent: 'border-white/10 bg-slate-950 text-white shadow-2xl',\n    tableLoadingSkeleton: 'bg-white/[0.14]',\n    layoutRoot: 'border-white/10 bg-slate-950 text-white shadow-none',\n    layoutPane: 'border-white/10 bg-slate-950 text-white shadow-none',\n    layoutPaneMuted: 'bg-white/[0.06]',\n    layoutPaneSoft: 'bg-white/[0.08] shadow-none',\n    layoutResizeHandle: 'text-white/65 hover:bg-white/10 active:bg-white/15 focus-visible:bg-white/10',\n    layoutResizeHandleIndicator: 'bg-white/45 group-hover/resize:bg-white/75',\n  },\n};\n\nconst presetDefaults: Record<\n  BaseThemePresetId,\n  Pick<BaseAppearance, 'density' | 'radius' | 'border' | 'background'>\n> = {\n  default: {\n    density: 'default',\n    radius: 'md',\n    border: 'solid',\n    background: 'plain',\n  },\n  soft: {\n    density: 'default',\n    radius: 'lg',\n    border: 'subtle',\n    background: 'soft',\n  },\n  compact: {\n    density: 'compact',\n    radius: 'md',\n    border: 'subtle',\n    background: 'muted',\n  },\n  'tinted-glass': {\n    density: 'default',\n    radius: 'lg',\n    border: 'subtle',\n    background: 'glass',\n  },\n  glass: {\n    density: 'default',\n    radius: 'xl',\n    border: 'subtle',\n    background: 'glass',\n  },\n  'hard-edge': {\n    density: 'compact',\n    radius: 'none',\n    border: 'strong',\n    background: 'plain',\n  },\n};\n\nconst presetSlots: Record<string, Partial<BaseThemeSlots>> = {\n  soft: {\n    buttonBase: 'font-medium',\n    panelRoot: 'border-border/70',\n    controlWrapper: 'font-medium',\n    tabsTrigger: 'font-medium',\n    segmentedItem: 'font-medium',\n    toolbarRoot: 'border-border/70',\n    tableContainer: 'border-border/70',\n    tableFooterBar: 'border-border/70',\n    tableHeadLabel: 'font-semibold',\n    menuItemLabel: 'font-medium',\n  },\n  compact: {\n    buttonBase: 'text-xs',\n    badgeBase: 'text-[11px]',\n    fieldLabel: 'text-xs',\n    controlBase: 'text-xs',\n    selectOption: 'text-xs',\n    menuItem: 'text-xs',\n    menuSubTrigger: 'text-xs',\n    noticeBase: 'text-xs',\n    sectionHeaderTitle: 'text-sm',\n    tabsTrigger: 'text-xs',\n    segmentedItem: 'text-xs',\n    toolbarTitle: 'text-xs',\n    paginationRoot: 'text-xs',\n  },\n  'tinted-glass': {\n    buttonPrimary: 'border-primary/25 bg-primary/15 text-primary-foreground hover:bg-primary/20',\n    badgePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n    noticePrimary: 'border-primary/25 bg-primary/15 text-primary-foreground',\n    progressIndicator: 'bg-primary',\n    avatarStatus: 'border-background',\n  },\n  glass: {\n    panelRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n    stateRoot: 'shadow-[0_24px_80px_hsl(var(--foreground)/0.12)]',\n    noticeBase: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n    tabsPanel: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n    toolbarRoot: 'shadow-[0_18px_60px_hsl(var(--foreground)/0.10)]',\n    descriptionListItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n    accordionItem: 'shadow-[0_12px_40px_hsl(var(--foreground)/0.08)]',\n  },\n  'hard-edge': {\n    buttonBase: 'shadow-none',\n    panelRoot: 'shadow-none',\n    stateRoot: 'shadow-none',\n    controlWrapper: 'shadow-none',\n    selectMenu: 'shadow-none',\n    menuContent: 'shadow-none',\n    menuSubContent: 'shadow-none',\n    noticeBase: 'shadow-none',\n    tabsList: 'shadow-none',\n    tabsTriggerActive: 'shadow-none',\n    tabsPanel: 'shadow-none',\n    segmentedRoot: 'shadow-none',\n    segmentedItemActive: 'shadow-none',\n    toolbarRoot: 'shadow-none',\n    descriptionListItem: 'shadow-none',\n    accordionItem: 'shadow-none',\n  },\n};\n\nfunction getPresetDefaults(preset: BaseThemePresetId) {\n  return (\n    presetDefaults[preset as keyof typeof presetDefaults] ?? presetDefaults.default\n  );\n}\n\nconst slotKeys = Object.keys(baseSlots) as Array<keyof BaseThemeSlots>;\n\nfunction mergeSlots(\n  ...sources: Array<Partial<BaseThemeSlots> | undefined>\n): ResolvedSlots {\n  return slotKeys.reduce((resolved, key) => {\n    resolved[key] = cn(...sources.map((source) => source?.[key]));\n    return resolved;\n  }, {} as ResolvedSlots);\n}\n\nfunction mergeStyles(...styleSets: Array<BaseThemeStyles | undefined>) {\n  return Object.assign({}, ...styleSets.filter(Boolean));\n}\n\nexport function resolveBaseAppearance(\n  appearance?: BaseAppearance,\n): BaseResolvedTheme {\n  const preset = appearance?.preset ?? 'default';\n  const variant = appearance?.variant ?? 'default';\n  const defaults = getPresetDefaults(preset);\n  const density = appearance?.density ?? defaults.density ?? 'default';\n  const state = appearance?.state ?? 'idle';\n  const radius = appearance?.radius ?? defaults.radius ?? 'md';\n  const border = appearance?.border ?? defaults.border ?? 'solid';\n  const background = appearance?.background ?? defaults.background ?? 'plain';\n\n  return {\n    preset,\n    variant,\n    density,\n    state,\n    radius,\n    border,\n    background,\n    styles: mergeStyles(emptyStyles, appearance?.styles),\n    slots: mergeSlots(\n      baseSlots,\n      presetSlots[preset],\n      densitySlots[density],\n      radiusSlots[radius],\n      borderSlots[border],\n      backgroundSlots[background],\n      appearance?.slots,\n    ),\n  };\n}\n\nexport function getBaseButtonToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n  active = false,\n) {\n  return cn(\n    tone === 'default' && theme.slots.buttonDefault,\n    tone === 'primary' && theme.slots.buttonPrimary,\n    tone === 'success' && theme.slots.buttonSuccess,\n    tone === 'warning' && theme.slots.buttonWarning,\n    tone === 'danger' && theme.slots.buttonDanger,\n    tone === 'muted' && theme.slots.buttonMuted,\n    active && theme.slots.buttonActive,\n  );\n}\n\nexport function getBaseBadgeToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.badgeDefault,\n    tone === 'primary' && theme.slots.badgePrimary,\n    tone === 'success' && theme.slots.badgeSuccess,\n    tone === 'warning' && theme.slots.badgeWarning,\n    tone === 'danger' && theme.slots.badgeDanger,\n    tone === 'muted' && theme.slots.badgeMuted,\n  );\n}\n\nexport function getBaseNoticeToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.noticeDefault,\n    tone === 'primary' && theme.slots.noticePrimary,\n    tone === 'success' && theme.slots.noticeSuccess,\n    tone === 'warning' && theme.slots.noticeWarning,\n    tone === 'danger' && theme.slots.noticeDanger,\n    tone === 'muted' && theme.slots.noticeMuted,\n  );\n}\n\nexport function getBaseMenuItemToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseControlTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.menuItemDefault,\n    tone === 'primary' && theme.slots.menuItemPrimary,\n    tone === 'success' && theme.slots.menuItemSuccess,\n    tone === 'warning' && theme.slots.menuItemWarning,\n    tone === 'danger' && theme.slots.menuItemDanger,\n    tone === 'muted' && theme.slots.menuItemMuted,\n  );\n}\n\nexport function getBaseTypographyToneClassName(\n  theme: BaseResolvedTheme,\n  tone: BaseTypographyTone = 'default',\n) {\n  return cn(\n    tone === 'default' && theme.slots.typographyToneDefault,\n    tone === 'muted' && theme.slots.typographyToneMuted,\n    tone === 'primary' && theme.slots.typographyTonePrimary,\n    tone === 'success' && theme.slots.typographyToneSuccess,\n    tone === 'warning' && theme.slots.typographyToneWarning,\n    tone === 'danger' && theme.slots.typographyToneDanger,\n    tone === 'inherit' && theme.slots.typographyToneInherit,\n  );\n}\n\nexport function getBaseTextSizeClassName(\n  theme: BaseResolvedTheme,\n  size: BaseTypographySize = 'md',\n) {\n  return cn(\n    size === 'xs' && theme.slots.textSizeXs,\n    size === 'sm' && theme.slots.textSizeSm,\n    size === 'md' && theme.slots.textSizeMd,\n    size === 'lg' && theme.slots.textSizeLg,\n    size === 'xl' && theme.slots.textSizeXl,\n  );\n}\n\nexport function getBaseHeadingSizeClassName(\n  theme: BaseResolvedTheme,\n  size: BaseHeadingSize = 'lg',\n) {\n  return cn(\n    size === 'xs' && theme.slots.headingSizeXs,\n    size === 'sm' && theme.slots.headingSizeSm,\n    size === 'md' && theme.slots.headingSizeMd,\n    size === 'lg' && theme.slots.headingSizeLg,\n    size === 'xl' && theme.slots.headingSizeXl,\n    size === '2xl' && theme.slots.headingSize2xl,\n  );\n}\n\nexport function getBaseListSpacingClassName(\n  theme: BaseResolvedTheme,\n  spacing: BaseListSpacing = 'default',\n) {\n  return cn(\n    spacing === 'compact' && theme.slots.listSpacingCompact,\n    spacing === 'default' && theme.slots.listSpacingDefault,\n    spacing === 'relaxed' && theme.slots.listSpacingRelaxed,\n  );\n}\n\nexport function getBaseListMarkerClassName(\n  theme: BaseResolvedTheme,\n  marker: Exclude<BaseListMarker, 'auto'>,\n) {\n  return cn(\n    marker === 'none' && theme.slots.listMarkerNone,\n    marker === 'disc' && theme.slots.listMarkerDisc,\n    marker === 'circle' && theme.slots.listMarkerCircle,\n    marker === 'square' && theme.slots.listMarkerSquare,\n    marker === 'decimal' && theme.slots.listMarkerDecimal,\n    marker === 'lower-alpha' && theme.slots.listMarkerLowerAlpha,\n    marker === 'upper-alpha' && theme.slots.listMarkerUpperAlpha,\n  );\n}\n\nconst cssLengthPattern = /^(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))$/i;\nconst cssLengthFunctions = new Set(['calc', 'clamp', 'max', 'min', 'var']);\nconst unsafeCssValuePattern = /[;{}<>\"'\\\\\\u0000-\\u001f\\u007f]/;\nconst gridTemplateTokenPattern = /(?:\\b(?:auto|fit-content|max-content|min-content|subgrid)\\b|(?:calc|clamp|max|min|minmax|repeat|var)\\s*\\(|(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|fr|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)\\]]))/i;\n\nfunction hasBalancedDelimiters(value: string) {\n  const pairs: Record<string, string> = { ')': '(', ']': '[' };\n  const stack: string[] = [];\n\n  for (const character of value) {\n    if (character === '(' || character === '[') {\n      stack.push(character);\n    } else if (character === ')' || character === ']') {\n      if (stack.pop() !== pairs[character]) return false;\n    }\n  }\n\n  return stack.length === 0;\n}\n\nfunction isSupportedCssLengthFunction(value: string) {\n  const match = /^([a-z]+)\\(([\\s\\S]+)\\)$/i.exec(value);\n  if (!match || !cssLengthFunctions.has(match[1].toLowerCase())) return false;\n  if (!match[2].trim() || !hasBalancedDelimiters(value)) return false;\n\n  if (match[1].toLowerCase() === 'var') {\n    return /^\\s*--[a-z0-9_-]+(?:\\s*,[\\s\\S]+)?\\s*$/i.test(match[2]);\n  }\n\n  return cssLengthPattern.test(match[2].trim()) || /\\b(?:calc|clamp|max|min|var)\\s*\\(/i.test(match[2]) || /(?:^|[\\s,(])(?:0+(?:\\.0+)?|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:%|cap|ch|cm|dvb|dvh|dvi|dvw|em|ex|ic|in|lh|lvb|lvh|lvi|lvw|mm|pc|pt|px|q|rem|rlh|svb|svh|svi|svw|vb|vh|vi|vmax|vmin|vw))(?:$|[\\s,)])/i.test(match[2]);\n}\n\nexport function resolveBaseLayoutLength(\n  componentName: string,\n  propName: string,\n  value: BaseLayoutLength,\n) {\n  if (typeof value === 'number') {\n    if (!Number.isFinite(value) || value < 0) {\n      throw new RangeError(\n        `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n      );\n    }\n    return `${value}px`;\n  }\n\n  if (typeof value !== 'string') {\n    throw new TypeError(\n      `${componentName} ${propName} must be a finite, non-negative number or a supported CSS length string.`,\n    );\n  }\n\n  const normalized = value.trim();\n  if (\n    !normalized ||\n    unsafeCssValuePattern.test(normalized) ||\n    (!cssLengthPattern.test(normalized) &&\n      !isSupportedCssLengthFunction(normalized))\n  ) {\n    throw new TypeError(\n      `${componentName} ${propName} must be a non-empty, non-negative CSS length (for example 12px, 1rem, 5%, or var(--space)).`,\n    );\n  }\n\n  return normalized;\n}\n\nexport function resolveBaseGridColumns(value: number | string) {\n  if (typeof value === 'number') {\n    if (!Number.isInteger(value) || value <= 0) {\n      throw new RangeError(\n        'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n      );\n    }\n    return `repeat(${value}, minmax(0, 1fr))`;\n  }\n\n  if (typeof value !== 'string') {\n    throw new TypeError(\n      'BaseGrid columns must be a positive integer or a supported CSS grid-template-columns string.',\n    );\n  }\n\n  const normalized = value.trim();\n  if (\n    !normalized ||\n    unsafeCssValuePattern.test(normalized) ||\n    /\\burl\\s*\\(/i.test(normalized) ||\n    !hasBalancedDelimiters(normalized) ||\n    !gridTemplateTokenPattern.test(normalized)\n  ) {\n    throw new TypeError(\n      'BaseGrid columns must be a non-empty CSS grid-template-columns value such as \"12rem minmax(0, 1fr)\" or \"repeat(3, minmax(0, 1fr))\".',\n    );\n  }\n\n  return normalized;\n}\n\ntype BaseLayoutAlignValue =\n  | 'flex-start'\n  | 'center'\n  | 'flex-end'\n  | 'stretch'\n  | 'baseline';\n\ntype BaseLayoutJustifyValue =\n  | 'flex-start'\n  | 'center'\n  | 'flex-end'\n  | 'space-between'\n  | 'space-around'\n  | 'space-evenly';\n\nconst layoutAlignValues: Record<BaseLayoutAlign, BaseLayoutAlignValue> = {\n  start: 'flex-start',\n  center: 'center',\n  end: 'flex-end',\n  stretch: 'stretch',\n  baseline: 'baseline',\n};\n\nconst layoutJustifyValues: Record<\n  BaseLayoutJustify,\n  BaseLayoutJustifyValue\n> = {\n  start: 'flex-start',\n  center: 'center',\n  end: 'flex-end',\n  between: 'space-between',\n  around: 'space-around',\n  evenly: 'space-evenly',\n};\n\nexport function resolveBaseLayoutAlign(\n  componentName: string,\n  value: BaseLayoutAlign,\n): BaseLayoutAlignValue {\n  if (!Object.prototype.hasOwnProperty.call(layoutAlignValues, value)) {\n    throw new TypeError(\n      `${componentName} align must be one of: start, center, end, stretch, baseline.`,\n    );\n  }\n  return layoutAlignValues[value];\n}\n\nexport function resolveBaseLayoutJustify(\n  componentName: string,\n  value: BaseLayoutJustify,\n): BaseLayoutJustifyValue {\n  if (!Object.prototype.hasOwnProperty.call(layoutJustifyValues, value)) {\n    throw new TypeError(\n      `${componentName} justify must be one of: start, center, end, between, around, evenly.`,\n    );\n  }\n  return layoutJustifyValues[value];\n}\n","import type { ElementType } from 'react';\n\nimport type { BasePanelProps } from './types';\nimport { resolveBaseAppearance } from './theme';\nimport { cn, hasRenderableNode } from './utils';\n\nexport function BasePanel({\n  as = 'article',\n  title,\n  description,\n  media,\n  header,\n  footer,\n  children,\n  interactive,\n  selected,\n  disabled,\n  appearance,\n  variant,\n  density,\n  state,\n  className,\n  classNames,\n  style,\n  ...panelProps\n}: BasePanelProps) {\n  const theme = resolveBaseAppearance({ ...appearance, variant, density, state });\n  const Component = as as ElementType;\n  const hasHeader =\n    header !== undefined\n      ? hasRenderableNode(header)\n      : hasRenderableNode(title) || hasRenderableNode(description);\n  const hasMedia = media !== undefined && media !== null;\n  const bodyIsStandalone = !hasHeader && !hasMedia;\n\n  return (\n    <Component\n      {...panelProps}\n      aria-disabled={disabled || undefined}\n      data-variant={theme.variant}\n      data-density={theme.density}\n      data-state={state ?? (disabled ? 'disabled' : selected ? 'selected' : 'idle')}\n      data-monkeys-component=\"panel\"\n      data-slot=\"root\"\n      data-interactive={interactive || undefined}\n      data-selected={selected || undefined}\n      data-disabled={disabled || undefined}\n      className={cn(\n        theme.slots.panelRoot,\n        interactive && !disabled && theme.slots.panelInteractive,\n        selected && theme.slots.panelSelected,\n        disabled && theme.slots.panelDisabled,\n        classNames?.root,\n        className,\n      )}\n      style={{\n        ...theme.styles.panel,\n        ...style,\n      }}\n    >\n      {hasMedia ? (\n        <div\n          data-slot=\"media\"\n          className={cn(theme.slots.panelMedia, classNames?.media)}\n        >\n          {media}\n        </div>\n      ) : null}\n\n      {hasHeader ? (\n        <div\n          data-slot=\"header\"\n          className={cn(theme.slots.panelHeader, classNames?.header)}\n          style={theme.styles.panelHeader}\n        >\n          {header !== undefined ? (\n            header\n          ) : (\n            <>\n              {hasRenderableNode(title) ? (\n                <div\n                  data-slot=\"title\"\n                  className={cn(theme.slots.panelTitle, classNames?.title)}\n                >\n                  {title}\n                </div>\n              ) : null}\n              {hasRenderableNode(description) ? (\n                <div\n                  data-slot=\"description\"\n                  className={cn(\n                    theme.slots.panelDescription,\n                    classNames?.description,\n                  )}\n                >\n                  {description}\n                </div>\n              ) : null}\n            </>\n          )}\n        </div>\n      ) : null}\n\n      {children !== undefined && children !== null ? (\n        <div\n          data-slot=\"body\"\n          className={cn(\n            theme.slots.panelBody,\n            bodyIsStandalone && theme.slots.panelBodyStandalone,\n            classNames?.body,\n          )}\n          style={theme.styles.panelBody}\n        >\n          {children}\n        </div>\n      ) : null}\n\n      {footer !== undefined && footer !== null ? (\n        <div\n          data-slot=\"footer\"\n          className={cn(theme.slots.panelFooter, classNames?.footer)}\n          style={theme.styles.panelFooter}\n        >\n          {footer}\n        </div>\n      ) : null}\n    </Component>\n  );\n}\n","import type { ComponentType, ReactNode } from 'react';\n\nimport { BasePanel } from '../base/BasePanel';\nimport type { BaseAppearance, BasePanelClassNames, BasePanelProps } from '../base/types';\nimport { cn } from '../base/utils';\n\nexport interface BentoPanelProps\n  extends Omit<BasePanelProps, 'children' | 'className' | 'classNames' | 'header' | 'title'> {\n  children?: ReactNode;\n  className?: string;\n  contentClassName?: string;\n  title?: ReactNode;\n  titleIcon?: ComponentType<{ className?: string; color?: string; stroke?: string }>;\n  action?: ReactNode;\n  classNames?: Omit<BasePanelClassNames, 'header' | 'body'> & {\n    header?: string;\n    body?: string;\n  };\n}\n\nconst defaultAppearance: BaseAppearance = {\n  preset: 'soft',\n  radius: 'lg',\n  border: 'subtle',\n  background: 'muted',\n};\n\nexport function BentoPanel({\n  children,\n  className,\n  contentClassName,\n  title,\n  titleIcon: TitleIcon,\n  action,\n  appearance,\n  classNames,\n  ...props\n}: BentoPanelProps) {\n  return (\n    <BasePanel\n      as=\"section\"\n      appearance={{\n        ...defaultAppearance,\n        ...appearance,\n        slots: {\n          ...appearance?.slots,\n          // BasePanel's lg preset enlarges panels; Bento uses the theme baseline.\n          panelRoot: cn(appearance?.radius === undefined && 'rounded-lg', appearance?.slots?.panelRoot),\n        },\n      }}\n      classNames={{\n        ...classNames,\n        root: cn('min-h-0', classNames?.root, className),\n        header: cn(\n          'flex min-w-0 items-center gap-3 border-b border-border px-4 py-3',\n          classNames?.header,\n        ),\n        body: cn('min-h-0 p-0', classNames?.body, contentClassName),\n      }}\n      header={\n        title ? (\n          <div className=\"flex min-w-0 flex-1 items-center justify-between gap-3\">\n            <div className=\"flex min-w-0 flex-1 items-center gap-2.5\">\n              {TitleIcon ? (\n                <span className=\"inline-flex size-8 shrink-0 items-center justify-center rounded-md border border-primary/30 bg-primary/10 text-primary\">\n                  <TitleIcon className=\"size-4 text-primary\" color=\"currentColor\" stroke=\"currentColor\" />\n                </span>\n              ) : null}\n              <h2 className=\"min-w-0 truncate text-[15px] font-semibold leading-5 text-foreground\">{title}</h2>\n            </div>\n            {action ? <div className=\"shrink-0\">{action}</div> : null}\n          </div>\n        ) : undefined\n      }\n      {...props}\n    >\n      {children}\n    </BasePanel>\n  );\n}\n","import * as React from 'react';\n\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '../base/utils';\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\n/** Product-neutral calendar. Locale and date policy are supplied by the product. */\nexport function Calendar({ className, classNames, components, showOutsideDays = true, ...props }: CalendarProps) {\n  return (\n    <DayPicker\n      showOutsideDays={showOutsideDays}\n      className={cn('p-3', className)}\n      classNames={{\n        months: 'flex flex-col space-y-4 sm:flex-row sm:space-x-4 sm:space-y-0',\n        month: 'space-y-4',\n        caption: 'relative flex items-center justify-center pt-1',\n        caption_label: 'text-sm font-medium',\n        nav: 'flex items-center space-x-1',\n        nav_button:\n          'inline-flex h-7 w-7 items-center justify-center rounded-md border border-input bg-transparent p-0 text-foreground opacity-100 shadow-sm transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n        nav_icon: 'size-4 stroke-current',\n        nav_button_previous: 'absolute left-1',\n        nav_button_next: 'absolute right-1',\n        table: 'w-full border-collapse space-y-1',\n        head_row: 'flex',\n        head_cell: 'w-9 rounded-md text-[0.8rem] font-normal text-muted-foreground',\n        row: 'mt-2 flex w-full',\n        cell:\n          'relative h-9 w-9 p-0 text-center text-sm [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20',\n        day: 'inline-flex h-9 w-9 items-center justify-center rounded-md p-0 font-normal transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring aria-selected:opacity-100 disabled:pointer-events-none disabled:opacity-50',\n        day_range_end: 'day-range-end',\n        day_selected:\n          'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n        day_today: 'bg-accent text-accent-foreground',\n        day_outside:\n          'day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30',\n        day_disabled: 'text-muted-foreground opacity-50',\n        day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n        day_hidden: 'invisible',\n        ...classNames,\n      }}\n      components={{\n        IconLeft: ({ className: iconClassName, ...iconProps }) => (\n          <ChevronLeft aria-hidden=\"true\" className={cn('size-4 stroke-current', iconClassName)} {...iconProps} />\n        ),\n        IconRight: ({ className: iconClassName, ...iconProps }) => (\n          <ChevronRight aria-hidden=\"true\" className={cn('size-4 stroke-current', iconClassName)} {...iconProps} />\n        ),\n        ...components,\n      }}\n      {...props}\n    />\n  );\n}\nCalendar.displayName = 'Calendar';\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport type CardAppearance = 'standard' | 'elevated';\nexport interface CardProps extends React.HTMLAttributes<HTMLDivElement> {\n  appearance?: CardAppearance;\n}\n\nexport const Card = React.forwardRef<HTMLDivElement, CardProps>(({ className, appearance = 'standard', ...props }, ref) => (\n  <div\n    ref={ref}\n    className={cn(\n      'border bg-card text-card-foreground',\n      appearance === 'elevated' ? 'rounded-xl shadow' : 'rounded-lg shadow-sm',\n      className,\n    )}\n    {...props}\n  />\n));\nCard.displayName = 'Card';\n\nexport const CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n));\nCardHeader.displayName = 'CardHeader';\nexport const CardAction = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn('ml-auto flex items-center gap-2', className)} {...props} />\n));\nCardAction.displayName = 'CardAction';\nexport const CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn('text-2xl font-semibold leading-none tracking-tight', className)} {...props} />\n));\nCardTitle.displayName = 'CardTitle';\nexport const CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nCardDescription.displayName = 'CardDescription';\nexport const CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n));\nCardContent.displayName = 'CardContent';\nexport const CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(({ className, ...props }, ref) => (\n  <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n));\nCardFooter.displayName = 'CardFooter';\n","import type { MonkeysLocale } from \"./types\";\n\nexport const enUS = {\n  locale: \"en-US\",\n  messages: {\n    pagination: {\n      navigation: \"Pagination\",\n      first: \"First\",\n      previous: \"Previous\",\n      next: \"Next\",\n      last: \"Last\",\n      page: ({ page, pageCount }) => `Page ${page} of ${pageCount}`,\n      currentPage: ({ page, pageCount }) =>\n        `Page ${page} of ${pageCount}, current page`,\n      emptyResults: \"0 results\",\n      range: ({ start, end, total }) => `${start}-${end} of ${total}`,\n      selected: ({ count }) => `${count} selected`,\n      pageSize: \"Items per page\",\n      perLoad: \"Items per load\",\n      jumpToPage: \"Jump to page\",\n      pages: \"pages\",\n      clickToJump: \"Click to jump to a page\",\n    },\n    dialog: {\n      close: \"Close dialog\",\n    },\n    dropdownMenu: {\n      actions: \"Actions\",\n    },\n    loading: {\n      spinner: \"Loading\",\n    },\n    layout: {\n      resizePanels: \"Resize panels\",\n    },\n    steps: {\n      label: \"Progress\",\n      current: \"Current\",\n      completed: \"Completed\",\n      error: \"Error\",\n      disabled: \"Disabled\",\n    },\n    numberInput: {\n      increment: \"Increase value\",\n      decrement: \"Decrease value\",\n    },\n    passwordInput: {\n      showPassword: \"Show password\",\n      hidePassword: \"Hide password\",\n    },\n    multiSelect: {\n      placeholder: \"Select options\",\n      empty: \"No options\",\n      removeOption: ({ value }) => `Remove ${value}`,\n    },\n    table: {\n      dragColumn: ({ columnId }) => `Drag column ${columnId}`,\n      resizeColumn: ({ columnId }) => `Resize column ${columnId}`,\n      sortColumn: ({ columnId }) =>\n        columnId ? `Sort column ${columnId}` : \"Sort column\",\n      loadingRow: \"Loading table row\",\n    },\n    toolbar: {\n      theme: {\n        label: \"Appearance\",\n        toggle: \"Toggle theme\",\n        auto: \"Auto\",\n        light: \"Light\",\n        dark: \"Dark\",\n      },\n      language: {\n        label: \"Language\",\n        switch: \"Switch language\",\n      },\n    },\n    toast: {\n      errorTitle: \"Error\",\n      warningTitle: \"Warning\",\n      defaultErrorDescription: \"Something went wrong.\",\n      defaultWarningDescription: \"Please check and try again.\",\n    },\n    dataExplorer: {\n      viewTree: {\n        actions: \"More actions\",\n        expand: \"Expand\",\n        collapse: \"Collapse\",\n        loading: \"Loading...\",\n        empty: \"No views\",\n        error: \"Unable to load views\",\n      },\n    },\n    workbench: {\n      collection: {\n        label: \"Collection\",\n        loading: \"Loading items\",\n        empty: \"No items\",\n        loadError: \"Unable to load items\",\n        refreshError: \"Unable to refresh items\",\n        retry: \"Retry\",\n        loadingMore: \"Loading more items\",\n        permission: \"You do not have permission to view this content\",\n        offline: \"You appear to be offline\",\n        requestAccess: \"Request access\",\n      },\n      interactiveTable: {\n        columnActions: \"Column actions\",\n        freezeColumn: \"Freeze to left\",\n        freezeEndColumn: \"Freeze to right\",\n        unfreezeColumn: \"Unfreeze from left\",\n        unfreezeEndColumn: \"Unfreeze from right\",\n        unfreezeAllColumns: \"Unfreeze all columns\",\n        resetColumnWidth: \"Reset column width\",\n        frozenColumnTitle: \"Frozen column\",\n      },\n    },\n    agentWorkbench: {\n      label: \"Session activity\",\n      reasoning: \"Reasoning\",\n      plan: \"Plan\",\n      taskNoDetail: \"No additional details\",\n      modes: { chat: \"Chat\", work: \"Work\" },\n      composer: {\n        send: \"Send message\",\n        stop: \"Stop generating\",\n        queue: \"Queue message\",\n        attach: \"Add photos or files\",\n        voice: \"Start voice input\",\n        webSearch: \"Web search\",\n        chatMode: \"Chat mode\",\n        model: \"Model\",\n        reasoning: \"Reasoning effort\",\n        permissions: \"Permissions\",\n        removeAttachment: \"Remove attachment\",\n        editQueued: \"Edit queued message\",\n        deleteQueued: \"Delete queued message\",\n        moveUp: \"Move message up\",\n        moveDown: \"Move message down\",\n        queued: \"Queued messages\",\n        uploading: \"Uploading\",\n        uploadFailed: \"Upload failed\",\n        retryAttachment: \"Retry attachment upload\",\n        noModels: \"No models available\",\n        message: \"Message\",\n        attachmentOnly: \"Attachment\",\n        reasoningOptions: {\n          low: \"Low\",\n          medium: \"Medium\",\n          high: \"High\",\n          xhigh: \"Extra high\",\n        },\n        permissionOptions: {\n          \"approval-required\": \"Approval required\",\n          \"auto-approve\": \"Auto approve\",\n          \"full-access\": \"Full access\",\n        },\n      },\n      quickStart: {\n        label: \"Quick start\",\n        back: \"Back\",\n        addFile: \"Add file\",\n      },\n      tool: {\n        input: \"Input\",\n        output: \"Output\",\n        status: {\n          pending: \"Pending\",\n          running: \"Running\",\n          completed: \"Completed\",\n          failed: \"Error\",\n          denied: \"Denied\",\n        },\n      },\n      approval: {\n        approve: \"Approve\",\n        reject: \"Reject\",\n        approved: \"Approved\",\n        rejected: \"Rejected\",\n      },\n      artifact: {\n        pending: \"Preparing\",\n        ready: \"Ready\",\n        failed: \"Failed\",\n        open: ({ name }) => `Open ${name}`,\n      },\n      run: {\n        stopping: \"Stopping...\",\n        stoppedAfter: ({ duration }) => `You stopped after ${duration}`,\n      },\n      process: {\n        running: \"Working\",\n        queued: \"Queued\",\n        waitingApproval: \"Waiting for approval\",\n        failed: \"Failed\",\n        stopped: \"Stopped\",\n        processed: \"Processed\",\n        processedFor: ({ duration }) => `Worked for ${duration}`,\n        completedCount: ({ completed, total }) =>\n          `${completed}/${total} completed`,\n      },\n      artifactWorkspace: {\n        outputs: \"Outputs\",\n        sources: \"Sources\",\n        viewAll: \"View all\",\n        toggleSummary: \"Toggle files\",\n        tabs: \"Open files\",\n        closeTab: ({ name }) => `Close ${name}`,\n        closeWorkspace: \"Close workspace\",\n        download: ({ name }) => `Download ${name}`,\n        openExternal: ({ name }) => `Open ${name} in a new window`,\n        loading: \"Loading preview...\",\n        failed: \"Preview unavailable\",\n        retry: \"Try again\",\n      },\n      usage: {\n        label: \"Context usage\",\n        context: ({ used, total }) => `${used} / ${total} tokens`,\n      },\n      navigation: {\n        search: \"Search agents and sessions\",\n        searchSessions: \"Search sessions\",\n        searchShortcut: \"Focus search\",\n        clearSearch: \"Clear search\",\n        tabsLabel: \"Agent workbench navigation\",\n        agents: \"Agents\",\n        sessions: \"Sessions\",\n        newAgent: \"New Agent\",\n        newSession: \"New Session\",\n        capabilities: \"Capabilities & Extensions\",\n        settings: \"Agent Settings\",\n        allAgents: \"All Agents\",\n        recentSessions: \"Recent Sessions\",\n        chat: \"Chat\",\n        work: \"Work\",\n        chats: \"Chats\",\n        builtIn: \"Built-in\",\n        noDescription: \"No description\",\n        loading: \"Loading...\",\n        emptyAgents: \"No agents yet\",\n        emptySessions: \"No sessions yet\",\n        noResults: \"No matching results\",\n        retry: \"Retry\",\n        pin: \"Pin\",\n        unpin: \"Unpin\",\n        rename: \"Rename\",\n        delete: \"Delete\",\n        actions: \"Actions\",\n        save: \"Save\",\n        cancel: \"Cancel\",\n        running: \"Running\",\n        completed: \"Completed\",\n        failed: \"Failed\",\n        contextUsage: ({ percent }) => `${percent}% context used`,\n      },\n      details: {\n        title: \"Task details\",\n        description: \"Summary and workspace activity\",\n        duration: \"Duration\",\n        updated: \"Updated\",\n        model: \"Model\",\n        mode: \"Mode\",\n        permissions: \"Permissions\",\n        tokenUsage: \"Token usage\",\n        summary: \"Summary\",\n        summaryEmpty: \"No summary is available yet.\",\n        summaryFailed: \"The summary could not be generated.\",\n        highlights: \"Highlights\",\n        pendingItems: \"Pending items\",\n        tabs: {\n          label: \"Task detail views\",\n          summary: \"Summary\",\n          workspace: \"Workspace\",\n        },\n        status: {\n          queued: \"Queued\",\n          running: \"Running\",\n          waiting_approval: \"Waiting for approval\",\n          stopping: \"Stopping\",\n          stopped: \"Stopped\",\n          completed: \"Completed\",\n          failed: \"Failed\",\n        },\n        state: {\n          loading: {\n            title: \"Loading task details\",\n            description: \"Restoring the latest session activity.\",\n          },\n          empty: {\n            title: \"No task selected\",\n            description: \"Select a task to inspect its details.\",\n          },\n          error: {\n            title: \"Unable to load task details\",\n            description: \"Try again after the session is available.\",\n          },\n        },\n        actions: {\n          close: \"Close task details\",\n          copySummary: \"Copy summary\",\n          retry: \"Retry\",\n          retrySummary: \"Retry summary\",\n          resume: \"Resume\",\n          continueInNewTask: \"Continue in new task\",\n          editAndRerun: \"Edit and rerun\",\n          export: \"Export\",\n        },\n        workspace: {\n          diffs: \"Code changes\",\n          files: \"Files\",\n          terminals: \"Terminals\",\n          tests: \"Tests\",\n          artifacts: \"Artifacts\",\n          exitCode: ({ code }) => `Exit code ${code}`,\n          diffStatus: {\n            added: \"Added\",\n            modified: \"Modified\",\n            deleted: \"Deleted\",\n            renamed: \"Renamed\",\n          },\n          fileOperation: { upsert: \"Updated\", delete: \"Deleted\" },\n        },\n      },\n    },\n  },\n} satisfies MonkeysLocale;\n","import { enUS } from './en-US';\nimport type {\n  MonkeysBuiltInLocaleId,\n  MonkeysLocale,\n  MonkeysLocaleInput,\n  MonkeysLocaleMessages,\n  MonkeysLocaleMessagesOverride,\n  MonkeysResolvedLocale,\n} from './types';\nimport { zhCN } from './zh-CN';\n\nconst BUILT_IN_LOCALES: Record<MonkeysBuiltInLocaleId, MonkeysLocale> = {\n  'en-US': enUS,\n  'zh-CN': zhCN,\n};\n\nfunction normalizeLocaleId(locale: unknown): string {\n  if (typeof locale !== 'string' || !locale.trim()) {\n    throw new TypeError('Monkeys locale must be a non-empty BCP 47 string.');\n  }\n\n  try {\n    return Intl.getCanonicalLocales(locale)[0];\n  } catch {\n    throw new RangeError(\n      `Monkeys locale \"${locale}\" is not a valid BCP 47 identifier.`,\n    );\n  }\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n  return Boolean(value) && typeof value === 'object' && !Array.isArray(value);\n}\n\nfunction validateMessageOverride(\n  value: unknown,\n  schema: unknown,\n  path: string,\n) {\n  if (!isRecord(value) || !isRecord(schema)) {\n    throw new TypeError(`${path} must be an object.`);\n  }\n\n  for (const [key, candidate] of Object.entries(value)) {\n    if (candidate === undefined) continue;\n    if (!(key in schema)) {\n      throw new TypeError(`${path}.${key} is not a supported Monkeys message.`);\n    }\n\n    const expected = schema[key];\n    const candidatePath = `${path}.${key}`;\n    if (typeof expected === 'function') {\n      if (typeof candidate !== 'function') {\n        throw new TypeError(`${candidatePath} must be a function.`);\n      }\n    } else if (typeof expected === 'string') {\n      if (typeof candidate !== 'string') {\n        throw new TypeError(`${candidatePath} must be a string.`);\n      }\n    } else {\n      validateMessageOverride(candidate, expected, candidatePath);\n    }\n  }\n}\n\nfunction assertMessagesOverride(\n  value: unknown,\n  path: string,\n): asserts value is MonkeysLocaleMessagesOverride {\n  validateMessageOverride(value, enUS.messages, path);\n}\n\nfunction isBuiltInLocale(locale: string): locale is MonkeysBuiltInLocaleId {\n  return locale === 'en-US' || locale === 'zh-CN';\n}\n\nfunction normalizeLocaleInput(input: MonkeysLocaleInput | undefined): {\n  locale: string | undefined;\n  messages: MonkeysLocaleMessagesOverride | undefined;\n  hasExplicitLocale: boolean;\n} {\n  if (input === undefined) {\n    return {\n      locale: undefined,\n      messages: undefined,\n      hasExplicitLocale: false,\n    };\n  }\n\n  if (typeof input === 'string') {\n    const locale = normalizeLocaleId(input);\n    if (!isBuiltInLocale(locale)) {\n      throw new RangeError(\n        `Unsupported built-in Monkeys locale \"${locale}\". Provide a locale pack object for custom locales.`,\n      );\n    }\n    return { locale, messages: undefined, hasExplicitLocale: true };\n  }\n\n  if (!input || typeof input !== 'object' || Array.isArray(input)) {\n    throw new TypeError('Monkeys locale must be a locale id or locale pack object.');\n  }\n\n  const locale = normalizeLocaleId(input.locale);\n  assertMessagesOverride(input.messages, 'Monkeys locale messages');\n\n  return {\n    locale,\n    messages: input.messages,\n    hasExplicitLocale: true,\n  };\n}\n\nexport function mergeMonkeysLocaleMessages(\n  base: MonkeysLocaleMessages,\n  override?: MonkeysLocaleMessagesOverride,\n): MonkeysLocaleMessages {\n  if (!override) return base;\n\n  return {\n    pagination: { ...base.pagination, ...override.pagination },\n    dialog: { ...base.dialog, ...override.dialog },\n    dropdownMenu: { ...base.dropdownMenu, ...override.dropdownMenu },\n    loading: { ...base.loading, ...override.loading },\n    layout: { ...base.layout, ...override.layout },\n    steps: { ...base.steps, ...override.steps },\n    numberInput: { ...base.numberInput, ...override.numberInput },\n    passwordInput: { ...base.passwordInput, ...override.passwordInput },\n    multiSelect: { ...base.multiSelect, ...override.multiSelect },\n    table: { ...base.table, ...override.table },\n    toolbar: {\n      theme: { ...base.toolbar.theme, ...override.toolbar?.theme },\n      language: { ...base.toolbar.language, ...override.toolbar?.language },\n    },\n    toast: { ...base.toast, ...override.toast },\n    dataExplorer: {\n      viewTree: {\n        ...base.dataExplorer.viewTree,\n        ...override.dataExplorer?.viewTree,\n      },\n    },\n    workbench: {\n      collection: {\n        ...base.workbench.collection,\n        ...override.workbench?.collection,\n      },\n      interactiveTable: {\n        ...base.workbench.interactiveTable,\n        ...override.workbench?.interactiveTable,\n      },\n    },\n    agentWorkbench: {\n      ...base.agentWorkbench,\n      ...override.agentWorkbench,\n      modes: {\n        ...base.agentWorkbench.modes,\n        ...override.agentWorkbench?.modes,\n      },\n      composer: {\n        ...base.agentWorkbench.composer,\n        ...override.agentWorkbench?.composer,\n      },\n      quickStart: {\n        ...base.agentWorkbench.quickStart,\n        ...override.agentWorkbench?.quickStart,\n      },\n      tool: {\n        ...base.agentWorkbench.tool,\n        ...override.agentWorkbench?.tool,\n        status: {\n          ...base.agentWorkbench.tool.status,\n          ...override.agentWorkbench?.tool?.status,\n        },\n      },\n      approval: {\n        ...base.agentWorkbench.approval,\n        ...override.agentWorkbench?.approval,\n      },\n      artifact: {\n        ...base.agentWorkbench.artifact,\n        ...override.agentWorkbench?.artifact,\n      },\n      run: {\n        ...base.agentWorkbench.run,\n        ...override.agentWorkbench?.run,\n      },\n      process: {\n        ...base.agentWorkbench.process,\n        ...override.agentWorkbench?.process,\n      },\n      artifactWorkspace: {\n        ...base.agentWorkbench.artifactWorkspace,\n        ...override.agentWorkbench?.artifactWorkspace,\n      },\n      usage: {\n        ...base.agentWorkbench.usage,\n        ...override.agentWorkbench?.usage,\n      },\n      navigation: {\n        ...base.agentWorkbench.navigation,\n        ...override.agentWorkbench?.navigation,\n      },\n      details: {\n        ...base.agentWorkbench.details,\n        ...override.agentWorkbench?.details,\n        tabs: {\n          ...base.agentWorkbench.details.tabs,\n          ...override.agentWorkbench?.details?.tabs,\n        },\n        status: {\n          ...base.agentWorkbench.details.status,\n          ...override.agentWorkbench?.details?.status,\n        },\n        state: {\n          loading: {\n            ...base.agentWorkbench.details.state.loading,\n            ...override.agentWorkbench?.details?.state?.loading,\n          },\n          empty: {\n            ...base.agentWorkbench.details.state.empty,\n            ...override.agentWorkbench?.details?.state?.empty,\n          },\n          error: {\n            ...base.agentWorkbench.details.state.error,\n            ...override.agentWorkbench?.details?.state?.error,\n          },\n        },\n        actions: {\n          ...base.agentWorkbench.details.actions,\n          ...override.agentWorkbench?.details?.actions,\n        },\n        workspace: {\n          ...base.agentWorkbench.details.workspace,\n          ...override.agentWorkbench?.details?.workspace,\n          diffStatus: {\n            ...base.agentWorkbench.details.workspace.diffStatus,\n            ...override.agentWorkbench?.details?.workspace?.diffStatus,\n          },\n          fileOperation: {\n            ...base.agentWorkbench.details.workspace.fileOperation,\n            ...override.agentWorkbench?.details?.workspace?.fileOperation,\n          },\n        },\n      },\n    },\n  };\n}\n\nexport const defaultMonkeysLocale: MonkeysResolvedLocale = {\n  locale: enUS.locale,\n  messages: mergeMonkeysLocaleMessages(\n    enUS.messages as MonkeysLocaleMessages,\n  ),\n};\n\nexport function resolveMonkeysLocale(\n  input?: MonkeysLocaleInput,\n  override?: MonkeysLocaleMessagesOverride,\n  parent?: MonkeysResolvedLocale,\n): MonkeysResolvedLocale {\n  if (override !== undefined) {\n    assertMessagesOverride(override, 'MonkeysProvider messages');\n  }\n  const normalized = normalizeLocaleInput(input);\n  const locale = normalized.locale ?? parent?.locale ?? enUS.locale;\n  const builtInMessages = isBuiltInLocale(locale)\n    ? BUILT_IN_LOCALES[locale].messages\n    : undefined;\n  let messages = mergeMonkeysLocaleMessages(\n    enUS.messages as MonkeysLocaleMessages,\n    builtInMessages,\n  );\n\n  if (parent && (!normalized.hasExplicitLocale || parent.locale === locale)) {\n    messages = mergeMonkeysLocaleMessages(messages, parent.messages);\n  }\n\n  messages = mergeMonkeysLocaleMessages(messages, normalized.messages);\n  messages = mergeMonkeysLocaleMessages(messages, override);\n\n  return { locale, messages };\n}\n","import {\n  createContext,\n  useContext,\n  useMemo,\n  type Context,\n} from 'react';\n\nimport type { AssetIconResolver, AssetImageResolver } from '../components/base/BaseAssetIcon';\nimport type { BaseAppearance } from '../components/base/types';\nimport type { DataExplorerAppearance } from '../components/data-explorer/types';\nimport {\n  defaultMonkeysLocale,\n  type MonkeysLocaleMessages,\n  type MonkeysResolvedLocale,\n} from '../locale';\nimport type { CompiledThemeTokens } from '../theme-system';\n\nexport type MonkeysDirection = 'ltr' | 'rtl';\n\nexport interface MonkeysEnvironment {\n  getDocument?: () => Document | null;\n  getWindow?: () => Window | null;\n}\n\nexport type MonkeysPortalContainer =\n  | Element\n  | null\n  | (() => Element | null);\n\nexport interface MonkeysPortalOptions {\n  container?: MonkeysPortalContainer;\n  disabled?: boolean;\n}\n\nexport type MonkeysLoadingStateVariant = 'spinner' | 'skeleton';\nexport type MonkeysEmptyStateVariant = 'default' | 'compact';\nexport type MonkeysStatusStateDensity = 'compact' | 'default' | 'comfortable';\n\nexport type MonkeysListFooterPaginationMode = 'auto' | 'pages' | 'compact';\nexport type MonkeysListFooterAlignment = 'start' | 'end' | 'space-between';\n\nexport interface MonkeysListFooterConfig {\n  showTotal?: boolean;\n  showPageSize?: boolean;\n  pageSizeOptions?: number[];\n  paginationMode?: MonkeysListFooterPaginationMode;\n  alignment?: MonkeysListFooterAlignment;\n  density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysStatusStatesConfig {\n  loading?: { variant?: MonkeysLoadingStateVariant };\n  empty?: { variant?: MonkeysEmptyStateVariant };\n  error?: { showRetry?: boolean };\n  permission?: { showRequestAccess?: boolean };\n  density?: MonkeysStatusStateDensity;\n}\n\nexport interface MonkeysComponentAttributes {\n  dir?: MonkeysDirection;\n  'data-monkeys-direction'?: MonkeysDirection;\n  'data-monkeys-locale'?: string;\n  'data-monkeys-theme'?: string;\n  'data-monkeys-theme-mode'?: string;\n}\n\ninterface MonkeysLocaleContextValue extends MonkeysResolvedLocale {\n  provided: boolean;\n}\n\ninterface MonkeysThemeContextValue {\n  provided: boolean;\n  resolvedTheme?: CompiledThemeTokens;\n  themeId?: string;\n  baseAppearance?: BaseAppearance;\n  dataExplorerAppearance?: DataExplorerAppearance;\n  statusStates?: MonkeysStatusStatesConfig;\n  listFooter?: MonkeysListFooterConfig;\n}\n\ninterface MonkeysDirectionContextValue {\n  provided: boolean;\n  direction?: MonkeysDirection;\n}\n\ninterface MonkeysEnvironmentContextValue {\n  provided: boolean;\n  environment: MonkeysEnvironment;\n  portal: MonkeysPortalOptions;\n  iconResolver?: AssetIconResolver;\n  imageResolver?: AssetImageResolver;\n}\n\nconst EMPTY_ENVIRONMENT = Object.freeze({}) satisfies MonkeysEnvironment;\nconst EMPTY_PORTAL = Object.freeze({}) satisfies MonkeysPortalOptions;\n\ninterface MonkeysProviderContexts {\n  locale: Context<MonkeysLocaleContextValue>;\n  theme: Context<MonkeysThemeContextValue>;\n  direction: Context<MonkeysDirectionContextValue>;\n  environment: Context<MonkeysEnvironmentContextValue>;\n}\n\n// Every bundled public entry contains this module. Keep only the Context\n// identities in a realm-wide registry so root, provider, and component\n// subpaths interoperate in both CJS and ESM builds. Provider values remain in\n// React trees, so SSR requests are isolated. Bump the contract key only when\n// these Context value shapes become intentionally incompatible.\nconst MONKEYS_PROVIDER_CONTEXTS_KEY = Symbol.for(\n  '@inf-monkeys-tech/monkeys-design/provider-context@1',\n);\n\ntype MonkeysProviderContextHost = typeof globalThis & {\n  [MONKEYS_PROVIDER_CONTEXTS_KEY]?: MonkeysProviderContexts;\n};\n\nfunction createMonkeysProviderContexts(): MonkeysProviderContexts {\n  return Object.freeze({\n    locale: createContext<MonkeysLocaleContextValue>({\n      ...defaultMonkeysLocale,\n      provided: false,\n    }),\n    theme: createContext<MonkeysThemeContextValue>({\n      provided: false,\n    }),\n    direction: createContext<MonkeysDirectionContextValue>({\n      provided: false,\n    }),\n    environment: createContext<MonkeysEnvironmentContextValue>({\n      provided: false,\n      environment: EMPTY_ENVIRONMENT,\n      portal: EMPTY_PORTAL,\n    }),\n  });\n}\n\nfunction getMonkeysProviderContexts(): MonkeysProviderContexts {\n  const host = globalThis as MonkeysProviderContextHost;\n  const existing = host[MONKEYS_PROVIDER_CONTEXTS_KEY];\n  if (existing) return existing;\n\n  const contexts = createMonkeysProviderContexts();\n  Object.defineProperty(host, MONKEYS_PROVIDER_CONTEXTS_KEY, {\n    value: contexts,\n    enumerable: false,\n    configurable: false,\n    writable: false,\n  });\n  return contexts;\n}\n\nconst providerContexts = getMonkeysProviderContexts();\n\nexport const MonkeysLocaleContext = providerContexts.locale;\n\nexport const MonkeysThemeContext = providerContexts.theme;\n\nexport const MonkeysDirectionContext = providerContexts.direction;\n\nexport const MonkeysEnvironmentContext = providerContexts.environment;\n\nfunction mergeAppearance<T extends { slots?: object; styles?: object }>(\n  inherited: T | undefined,\n  explicit: T | undefined,\n): T | undefined {\n  if (explicit === undefined) return inherited;\n  if (inherited === undefined) return explicit;\n\n  return {\n    ...inherited,\n    ...explicit,\n    slots:\n      inherited.slots || explicit.slots\n        ? { ...inherited.slots, ...explicit.slots }\n        : undefined,\n    styles:\n      inherited.styles || explicit.styles\n        ? { ...inherited.styles, ...explicit.styles }\n        : undefined,\n  };\n}\n\nexport function useMonkeysLocale() {\n  try {\n    const context = useContext(MonkeysLocaleContext);\n    return context ?? { ...defaultMonkeysLocale, provided: false };\n  } catch {\n    return { ...defaultMonkeysLocale, provided: false };\n  }\n}\n\nexport function useMonkeysLocaleMessages(): MonkeysLocaleMessages {\n  return useContext(MonkeysLocaleContext).messages;\n}\n\nexport function useMonkeysResolvedTheme() {\n  return useContext(MonkeysThemeContext).resolvedTheme;\n}\n\nexport function useMonkeysBaseAppearance(\n  explicit?: BaseAppearance,\n): BaseAppearance | undefined {\n  const inherited = useContext(MonkeysThemeContext).baseAppearance;\n  return useMemo(\n    () => mergeAppearance(inherited, explicit),\n    [explicit, inherited],\n  );\n}\n\nexport function useMonkeysDataExplorerAppearance(\n  explicit?: DataExplorerAppearance,\n): DataExplorerAppearance | undefined {\n  const inherited = useContext(MonkeysThemeContext).dataExplorerAppearance;\n  return useMemo(\n    () => mergeAppearance(inherited, explicit),\n    [explicit, inherited],\n  );\n}\n\nexport function useMonkeysStatusStates(): MonkeysStatusStatesConfig {\n  return useContext(MonkeysThemeContext).statusStates ?? {};\n}\n\nexport function useMonkeysListFooter(): MonkeysListFooterConfig {\n  return useContext(MonkeysThemeContext).listFooter ?? {};\n}\n\nexport function useMonkeysDirection() {\n  return useContext(MonkeysDirectionContext).direction;\n}\n\nexport function useMonkeysEnvironment() {\n  return useContext(MonkeysEnvironmentContext).environment;\n}\n\nexport function useMonkeysPortalOptions() {\n  return useContext(MonkeysEnvironmentContext).portal;\n}\n\nexport function useMonkeysComponentAttributes(): MonkeysComponentAttributes {\n  const locale = useContext(MonkeysLocaleContext);\n  const theme = useContext(MonkeysThemeContext);\n  const direction = useContext(MonkeysDirectionContext);\n  const providerActive = locale.provided || theme.provided || direction.provided;\n\n  return useMemo(\n    () =>\n      providerActive\n        ? {\n            dir: direction.direction,\n            'data-monkeys-direction': direction.direction,\n            'data-monkeys-locale': locale.locale,\n            'data-monkeys-theme': theme.themeId,\n            'data-monkeys-theme-mode': theme.resolvedTheme?.colorMode,\n          }\n        : {},\n    [\n      direction.direction,\n      locale.locale,\n      providerActive,\n      theme.resolvedTheme?.colorMode,\n      theme.themeId,\n    ],\n  );\n}\n\nexport function useMonkeysAssetIconResolver(): AssetIconResolver | undefined {\n  return useContext(MonkeysEnvironmentContext).iconResolver;\n}\nexport function useMonkeysAssetImageResolver(): AssetImageResolver | undefined {\n  return useContext(MonkeysEnvironmentContext).imageResolver;\n}\n","export type OverlaySurfaceRole = 'menu' | 'dialog';\n\nconst overlaySurfaceRoleClassNames: Record<OverlaySurfaceRole, string> = {\n  // Keep the public utilities in the built stylesheet and tailwind-merge graph.\n  menu: 'monkeys-overlay-surface--menu bg-menu-surface text-popover-foreground',\n  dialog: 'monkeys-overlay-surface--dialog bg-dialog-surface text-foreground',\n};\n\nexport function getOverlaySurfaceClassName(\n  role: OverlaySurfaceRole,\n  options: { rounded?: boolean } = {},\n) {\n  return [\n    'monkeys-overlay-surface',\n    overlaySurfaceRoleClassNames[role],\n    options.rounded === false ? undefined : 'monkeys-overlay-surface--rounded',\n  ]\n    .filter(Boolean)\n    .join(' ');\n}\n","import * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Check, ChevronDown } from \"lucide-react\";\n\nimport { useMonkeysComponentAttributes } from \"../../provider/context\";\nimport { cn } from \"../base/utils\";\nimport { getOverlaySurfaceClassName } from \"./internal/overlaySurface\";\n\n/** Design-owned polymorphic slot for product compositions that need `asChild`. */\nexport const PolymorphicSlot = Slot;\n\nexport const Accordion = AccordionPrimitive.Root;\n\nexport const AccordionItem = React.forwardRef<\n  React.ElementRef<typeof AccordionPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, style, ...props }, ref) => (\n  <AccordionPrimitive.Item\n    ref={ref}\n    className={cn(\"border-b\", className)}\n    style={{\n      borderColor:\n        \"var(--monkeys-component-accordion-item-border-color, hsl(var(--border)))\",\n      ...style,\n    }}\n    {...props}\n  />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nexport const AccordionTrigger = React.forwardRef<\n  React.ElementRef<typeof AccordionPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n  <AccordionPrimitive.Header className=\"flex\">\n    <AccordionPrimitive.Trigger\n      ref={ref}\n      className={cn(\n        \"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\n        className,\n      )}\n      {...props}\n    >\n      {children}\n      <ChevronDown\n        aria-hidden=\"true\"\n        className=\"h-4 w-4 shrink-0 transition-transform duration-200\"\n      />\n    </AccordionPrimitive.Trigger>\n  </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nexport const AccordionContent = React.forwardRef<\n  React.ElementRef<typeof AccordionPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n  <AccordionPrimitive.Content\n    ref={ref}\n    className=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n    {...props}\n  >\n    <div className={cn(\"pb-4 pt-0\", className)}>{children}</div>\n  </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = \"AccordionContent\";\n\nexport const Checkbox = React.forwardRef<\n  React.ElementRef<typeof CheckboxPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <CheckboxPrimitive.Root\n    ref={ref}\n    className={cn(\n      \"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n      className,\n    )}\n    {...props}\n  >\n    <CheckboxPrimitive.Indicator className=\"flex items-center justify-center text-current\">\n      <Check aria-hidden=\"true\" className=\"h-4 w-4\" />\n    </CheckboxPrimitive.Indicator>\n  </CheckboxPrimitive.Root>\n));\nCheckbox.displayName = \"Checkbox\";\n\nexport const buttonVariants = cva(\n  \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_[data-slot=icon]]:text-[inherit] [&_[data-slot=icon]_*]:!text-[inherit] [&_[data-slot=icon]_svg]:!stroke-current [&_[data-slot=icon]_svg_*]:!stroke-current [&_[data-slot=end-icon]]:text-[inherit] [&_[data-slot=end-icon]_*]:!text-[inherit] [&_[data-slot=end-icon]_svg]:!stroke-current [&_[data-slot=end-icon]_svg_*]:!stroke-current [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90\",\n        destructive:\n          \"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90\",\n        outline:\n          \"border border-input bg-control-surface shadow-sm ring-offset-control-surface hover:bg-accent hover:text-accent-foreground\",\n        secondary:\n          \"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80\",\n        ghost: \"hover:bg-accent hover:text-accent-foreground\",\n        link: \"text-primary underline-offset-4 hover:underline\",\n      },\n      size: {\n        default: \"h-10 px-4 py-2\",\n        sm: \"h-9 rounded-sm px-3\",\n        lg: \"h-11 rounded-md px-8\",\n        icon: \"h-10 w-10\",\n      },\n    },\n    defaultVariants: { variant: \"default\", size: \"default\" },\n  },\n);\n\nexport interface ButtonProps\n  extends\n    React.ButtonHTMLAttributes<HTMLButtonElement>,\n    VariantProps<typeof buttonVariants> {\n  asChild?: boolean;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant, size, asChild = false, ...props }, ref) => {\n    const Component = asChild ? Slot : \"button\";\n    return (\n      <Component\n        ref={ref}\n        className={buttonVariants({ variant, size, className })}\n        {...props}\n      />\n    );\n  },\n);\nButton.displayName = \"Button\";\n\nexport interface ScrollAreaProps extends React.ComponentPropsWithoutRef<\n  typeof ScrollAreaPrimitive.Root\n> {\n  viewportClassName?: string;\n  viewportRef?: React.Ref<HTMLDivElement>;\n  onViewportScroll?: React.UIEventHandler<HTMLDivElement>;\n  scrollbar?: boolean;\n  scrollbarOrientation?: \"vertical\" | \"horizontal\";\n  scrollBarDisabled?: boolean;\n}\n\nexport const ScrollArea = React.forwardRef<\n  React.ElementRef<typeof ScrollAreaPrimitive.Root>,\n  ScrollAreaProps\n>(\n  (\n    {\n      className,\n      children,\n      viewportClassName,\n      viewportRef,\n      onViewportScroll,\n      scrollbar = true,\n      scrollbarOrientation = \"vertical\",\n      scrollBarDisabled = false,\n      ...props\n    },\n    ref,\n  ) => (\n    <ScrollAreaPrimitive.Root\n      ref={ref}\n      className={cn(\n        \"group relative overflow-hidden\",\n        scrollBarDisabled && \"no-scrollbar\",\n        className,\n      )}\n      {...props}\n    >\n      <ScrollAreaPrimitive.Viewport\n        ref={viewportRef}\n        onScroll={onViewportScroll}\n        className={cn(\"h-full w-full rounded-[inherit]\", viewportClassName)}\n      >\n        {children}\n      </ScrollAreaPrimitive.Viewport>\n      {scrollbar ? (\n        <ScrollBar\n          orientation={scrollbarOrientation}\n          className={cn(scrollBarDisabled && \"size-0 p-0\")}\n        />\n      ) : null}\n      <ScrollAreaPrimitive.Corner />\n    </ScrollAreaPrimitive.Root>\n  ),\n);\nScrollArea.displayName = \"ScrollArea\";\n\nexport const ScrollBar = React.forwardRef<\n  React.ElementRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n  React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n  <ScrollAreaPrimitive.ScrollAreaScrollbar\n    ref={ref}\n    orientation={orientation}\n    className={cn(\n      \"flex touch-none select-none opacity-0 transition-opacity group-hover:opacity-100 group-focus-within:opacity-100 data-[state=visible]:opacity-100\",\n      orientation === \"vertical\" &&\n        \"h-full w-2.5 border-l border-l-transparent p-px\",\n      orientation === \"horizontal\" &&\n        \"h-2.5 flex-col border-t border-t-transparent p-px\",\n      className,\n    )}\n    {...props}\n  >\n    <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-border\" />\n  </ScrollAreaPrimitive.ScrollAreaScrollbar>\n));\nScrollBar.displayName = \"ScrollBar\";\n\nexport const Switch = React.forwardRef<\n  React.ElementRef<typeof SwitchPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof SwitchPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <SwitchPrimitive.Root\n    ref={ref}\n    className={cn(\n      \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n      className,\n    )}\n    {...props}\n  >\n    <SwitchPrimitive.Thumb className=\"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\" />\n  </SwitchPrimitive.Root>\n));\nSwitch.displayName = \"Switch\";\n\nexport type TabsVariant = \"default\" | \"ghost\" | \"rounded\";\nexport type TabsProps = React.ComponentPropsWithoutRef<\n  typeof TabsPrimitive.Root\n> & { variant?: TabsVariant };\nexport const Tabs = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.Root>,\n  TabsProps\n>(({ variant = \"default\", ...props }, ref) => (\n  <TabsPrimitive.Root ref={ref} data-variant={variant} {...props} />\n));\nTabs.displayName = \"Tabs\";\nexport const TabsList = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.List>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.List> & {\n    gap?: string | number;\n  }\n>(({ className, gap, style, ...props }, ref) => (\n  <TabsPrimitive.List\n    ref={ref}\n    className={cn(\n      \"inline-flex h-10 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n      className,\n    )}\n    style={{ gap, ...style }}\n    {...props}\n  />\n));\nTabsList.displayName = \"TabsList\";\nexport const TabsTrigger = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.Trigger>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.Trigger\n    ref={ref}\n    className={cn(\n      \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n      className,\n    )}\n    {...props}\n  />\n));\nTabsTrigger.displayName = \"TabsTrigger\";\nexport const TabsContent = React.forwardRef<\n  React.ElementRef<typeof TabsPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n  <TabsPrimitive.Content\n    ref={ref}\n    className={cn(\n      \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n      className,\n    )}\n    {...props}\n  />\n));\nTabsContent.displayName = \"TabsContent\";\n\nexport const TooltipProvider = TooltipPrimitive.Provider;\nexport const Tooltip = TooltipPrimitive.Root;\nexport const TooltipTrigger = TooltipPrimitive.Trigger;\nexport const TooltipContent = React.forwardRef<\n  React.ElementRef<typeof TooltipPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return (\n    <TooltipPrimitive.Portal>\n      <TooltipPrimitive.Content\n        {...componentAttributes}\n        {...props}\n        ref={ref}\n        sideOffset={sideOffset}\n        data-monkeys-component=\"tooltip\"\n        data-slot=\"content\"\n        data-surface=\"menu\"\n        className={cn(\n          \"z-50 overflow-hidden border px-3 py-1.5 text-xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n          getOverlaySurfaceClassName(\"menu\"),\n          className,\n        )}\n      />\n    </TooltipPrimitive.Portal>\n  );\n});\nTooltipContent.displayName = \"TooltipContent\";\n","import * as React from 'react';\n\nimport useEmblaCarousel, { type UseEmblaCarouselType } from 'embla-carousel-react';\nimport { ArrowLeft, ArrowRight } from 'lucide-react';\n\nimport { cn } from '../base/utils';\nimport { Button, type ButtonProps } from './InteractiveControls';\n\nexport type CarouselApi = UseEmblaCarouselType[1];\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>;\nexport type CarouselOptions = UseCarouselParameters[0];\nexport type CarouselPlugin = UseCarouselParameters[1];\n\nexport interface CarouselProps {\n  opts?: CarouselOptions;\n  plugins?: CarouselPlugin;\n  orientation?: 'horizontal' | 'vertical';\n  setApi?: (api: CarouselApi) => void;\n  previousLabel?: string;\n  nextLabel?: string;\n}\n\ninterface CarouselContextValue extends CarouselProps {\n  carouselRef: ReturnType<typeof useEmblaCarousel>[0];\n  api: ReturnType<typeof useEmblaCarousel>[1];\n  scrollPrev: () => void;\n  scrollNext: () => void;\n  canScrollPrev: boolean;\n  canScrollNext: boolean;\n}\n\nconst CarouselContext = React.createContext<CarouselContextValue | null>(null);\n\nexport function useCarousel() {\n  const context = React.useContext(CarouselContext);\n  if (!context) throw new Error('useCarousel must be used within a <Carousel />');\n  return context;\n}\n\nexport const Carousel = React.forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement> & CarouselProps\n>(\n  (\n    {\n      orientation = 'horizontal',\n      opts,\n      setApi,\n      plugins,\n      previousLabel = 'Previous slide',\n      nextLabel = 'Next slide',\n      className,\n      children,\n      ...props\n    },\n    ref,\n  ) => {\n    const [carouselRef, api] = useEmblaCarousel(\n      { ...opts, axis: orientation === 'horizontal' ? 'x' : 'y' },\n      plugins,\n    );\n    const [canScrollPrev, setCanScrollPrev] = React.useState(false);\n    const [canScrollNext, setCanScrollNext] = React.useState(false);\n    const onSelect = React.useCallback((currentApi: CarouselApi) => {\n      if (!currentApi) return;\n      setCanScrollPrev(currentApi.canScrollPrev());\n      setCanScrollNext(currentApi.canScrollNext());\n    }, []);\n    const scrollPrev = React.useCallback(() => api?.scrollPrev(), [api]);\n    const scrollNext = React.useCallback(() => api?.scrollNext(), [api]);\n\n    React.useEffect(() => { if (api && setApi) setApi(api); }, [api, setApi]);\n    React.useEffect(() => {\n      if (!api) return;\n      onSelect(api);\n      api.on('reInit', onSelect);\n      api.on('select', onSelect);\n      return () => {\n        api.off('reInit', onSelect);\n        api.off('select', onSelect);\n      };\n    }, [api, onSelect]);\n\n    return (\n      <CarouselContext.Provider\n        value={{\n          carouselRef,\n          api,\n          opts,\n          plugins,\n          orientation,\n          setApi,\n          previousLabel,\n          nextLabel,\n          scrollPrev,\n          scrollNext,\n          canScrollPrev,\n          canScrollNext,\n        }}\n      >\n        <div\n          ref={ref}\n          onKeyDownCapture={(event) => {\n            if (event.key === 'ArrowLeft') { event.preventDefault(); scrollPrev(); }\n            else if (event.key === 'ArrowRight') { event.preventDefault(); scrollNext(); }\n          }}\n          className={cn('relative', className)}\n          role=\"region\"\n          aria-roledescription=\"carousel\"\n          {...props}\n        >\n          {children}\n        </div>\n      </CarouselContext.Provider>\n    );\n  },\n);\nCarousel.displayName = 'Carousel';\n\nexport const CarouselContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => {\n    const { carouselRef, orientation } = useCarousel();\n    return (\n      <div ref={carouselRef} className=\"overflow-hidden\">\n        <div\n          ref={ref}\n          className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)}\n          {...props}\n        />\n      </div>\n    );\n  },\n);\nCarouselContent.displayName = 'CarouselContent';\n\nexport const CarouselItem = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => {\n    const { orientation } = useCarousel();\n    return (\n      <div\n        ref={ref}\n        role=\"group\"\n        aria-roledescription=\"slide\"\n        className={cn(\n          'min-w-0 shrink-0 grow-0 basis-full',\n          orientation === 'horizontal' ? 'pl-4' : 'pt-4',\n          className,\n        )}\n        {...props}\n      />\n    );\n  },\n);\nCarouselItem.displayName = 'CarouselItem';\n\nexport const CarouselPrevious = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n    const { orientation, scrollPrev, canScrollPrev, previousLabel } = useCarousel();\n    return (\n      <Button\n        ref={ref}\n        variant={variant}\n        size={size}\n        className={cn(\n          'absolute h-8 w-8 rounded-full',\n          orientation === 'horizontal'\n            ? '-left-12 top-1/2 -translate-y-1/2'\n            : '-top-12 left-1/2 -translate-x-1/2 rotate-90',\n          className,\n        )}\n        disabled={!canScrollPrev}\n        onClick={scrollPrev}\n        {...props}\n      >\n        <ArrowLeft aria-hidden=\"true\" className=\"h-4 w-4\" />\n        <span className=\"sr-only\">{previousLabel}</span>\n      </Button>\n    );\n  },\n);\nCarouselPrevious.displayName = 'CarouselPrevious';\n\nexport const CarouselNext = React.forwardRef<HTMLButtonElement, ButtonProps>(\n  ({ className, variant = 'outline', size = 'icon', ...props }, ref) => {\n    const { orientation, scrollNext, canScrollNext, nextLabel } = useCarousel();\n    return (\n      <Button\n        ref={ref}\n        variant={variant}\n        size={size}\n        className={cn(\n          'absolute h-8 w-8 rounded-full',\n          orientation === 'horizontal'\n            ? '-right-12 top-1/2 -translate-y-1/2'\n            : '-bottom-12 left-1/2 -translate-x-1/2 rotate-90',\n          className,\n        )}\n        disabled={!canScrollNext}\n        onClick={scrollNext}\n        {...props}\n      >\n        <ArrowRight aria-hidden=\"true\" className=\"h-4 w-4\" />\n        <span className=\"sr-only\">{nextLabel}</span>\n      </Button>\n    );\n  },\n);\nCarouselNext.displayName = 'CarouselNext';\n","import * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nexport const Collapsible = CollapsiblePrimitive.Root;\n\nexport const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nexport const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport type ControlAppearance = 'standard' | 'compact' | 'shadow';\n\nexport interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {\n  appearance?: ControlAppearance;\n}\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(({ className, appearance = 'standard', type, ...props }, ref) => (\n  <input\n    ref={ref}\n    type={type}\n    className={cn(\n      'flex w-full border border-input bg-control-surface px-3 text-foreground ring-offset-control-surface transition-[border-color,background-color,color,box-shadow] file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n      appearance === 'compact' ? 'h-9 rounded-md py-1 text-sm shadow-sm' : 'h-10 rounded-md py-2 text-sm shadow-sm',\n      appearance === 'shadow' && 'rounded-lg shadow-sm shadow-black/[0.02] dark:border-white/10 dark:bg-white/[0.04] dark:shadow-none',\n      className,\n    )}\n    {...props}\n  />\n));\nInput.displayName = 'Input';\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n  appearance?: ControlAppearance;\n}\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(({ className, appearance = 'standard', ...props }, ref) => (\n  <textarea\n    ref={ref}\n    className={cn(\n      'flex w-full border border-input bg-control-surface px-3 py-2 text-foreground ring-offset-control-surface placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n      appearance === 'compact' ? 'min-h-[60px] rounded-md text-sm shadow-sm' : 'min-h-[80px] rounded-md text-sm',\n      appearance === 'shadow' && 'shadow-sm shadow-black/[0.02] dark:border-white/10 dark:bg-white/[0.04] dark:shadow-none',\n      className,\n    )}\n    {...props}\n  />\n));\nTextarea.displayName = 'Textarea';\n","import * as React from 'react';\n\nimport {\n  autoUpdate,\n  flip,\n  FloatingFocusManager,\n  FloatingPortal,\n  offset as floatingOffset,\n  type Placement,\n  shift,\n  useClick,\n  useDismiss,\n  useFloating,\n  useInteractions,\n  useRole,\n} from '@floating-ui/react';\nimport { Slot } from '@radix-ui/react-slot';\n\nimport { useMonkeysComponentAttributes } from '../../provider/context';\nimport { cn } from '../base/utils';\nimport { getOverlaySurfaceClassName } from './internal/overlaySurface';\n\ninterface FloatingPopoverContextValue {\n  open: boolean;\n  floatingStyles: React.CSSProperties;\n  getReferenceProps: ReturnType<typeof useInteractions>['getReferenceProps'];\n  getFloatingProps: ReturnType<typeof useInteractions>['getFloatingProps'];\n  context: ReturnType<typeof useFloating>['context'];\n  refs: ReturnType<typeof useFloating>['refs'];\n}\n\nconst FloatingPopoverContext = React.createContext<FloatingPopoverContextValue | null>(null);\n\nexport interface FloatingPopoverProps {\n  open?: boolean;\n  defaultOpen?: boolean;\n  onOpenChange?: (open: boolean) => void;\n  placement?: Placement;\n  offset?: number;\n  children: React.ReactNode;\n}\n\nexport function FloatingPopover({\n  open: controlledOpen,\n  defaultOpen = false,\n  onOpenChange,\n  placement = 'bottom-start',\n  offset = 8,\n  children,\n}: FloatingPopoverProps) {\n  const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n  const open = controlledOpen ?? uncontrolledOpen;\n  const setOpen = React.useCallback((next: boolean) => {\n    onOpenChange?.(next);\n    if (controlledOpen === undefined) setUncontrolledOpen(next);\n  }, [controlledOpen, onOpenChange]);\n  const { refs, floatingStyles, context } = useFloating({\n    placement,\n    open,\n    onOpenChange: setOpen,\n    middleware: [floatingOffset(offset), flip({ padding: 8 }), shift({ padding: 8 })],\n    whileElementsMounted: autoUpdate,\n  });\n  const click = useClick(context);\n  const dismiss = useDismiss(context, { outsidePressEvent: 'pointerdown' });\n  const role = useRole(context, { role: 'dialog' });\n  const { getReferenceProps, getFloatingProps } = useInteractions([click, dismiss, role]);\n  const value = React.useMemo(\n    () => ({ open, floatingStyles, getReferenceProps, getFloatingProps, context, refs }),\n    [context, floatingStyles, getFloatingProps, getReferenceProps, open, refs],\n  );\n  return <FloatingPopoverContext.Provider value={value}>{children}</FloatingPopoverContext.Provider>;\n}\n\nfunction useFloatingPopoverContext() {\n  const context = React.useContext(FloatingPopoverContext);\n  if (!context) throw new Error('FloatingPopover components must be used within <FloatingPopover>');\n  return context;\n}\n\nexport interface FloatingPopoverTriggerProps extends React.HTMLAttributes<HTMLElement> {\n  asChild?: boolean;\n}\n\nexport const FloatingPopoverTrigger = React.forwardRef<HTMLElement, FloatingPopoverTriggerProps>(\n  ({ asChild, ...props }, forwardedRef) => {\n    const context = useFloatingPopoverContext();\n    const Component: React.ElementType = asChild ? Slot : 'button';\n    return (\n      <Component\n        {...context.getReferenceProps({\n          ref: (node: HTMLElement | null) => {\n            context.refs.setReference(node);\n            if (typeof forwardedRef === 'function') forwardedRef(node);\n            else if (forwardedRef) forwardedRef.current = node;\n          },\n          type: asChild ? undefined : 'button',\n          ...props,\n        })}\n      />\n    );\n  },\n);\nFloatingPopoverTrigger.displayName = 'FloatingPopoverTrigger';\n\nexport interface FloatingPopoverContentProps extends React.HTMLAttributes<HTMLDivElement> {\n  portal?: boolean;\n}\n\nexport const FloatingPopoverContent = React.forwardRef<HTMLDivElement, FloatingPopoverContentProps>(\n  ({ className, style, portal = true, ...props }, forwardedRef) => {\n    const context = useFloatingPopoverContext();\n    const componentAttributes = useMonkeysComponentAttributes();\n    if (!context.open) return null;\n    const floatingProps = context.getFloatingProps({\n      ref: (node: HTMLDivElement | null) => {\n        context.refs.setFloating(node);\n        if (typeof forwardedRef === 'function') forwardedRef(node);\n        else if (forwardedRef) forwardedRef.current = node;\n      },\n      className: cn(\n        'z-50 w-72 border p-4 outline-none',\n        getOverlaySurfaceClassName('menu'),\n        className,\n      ),\n      style: { ...context.floatingStyles, ...style },\n      tabIndex: -1,\n      ...props,\n    });\n    const content = (\n      <FloatingFocusManager context={context.context} modal={false} returnFocus={false}>\n        <div\n          {...floatingProps}\n          {...componentAttributes}\n          data-monkeys-component=\"floating-popover\"\n          data-slot=\"content\"\n          data-surface=\"menu\"\n        />\n      </FloatingFocusManager>\n    );\n    return portal ? <FloatingPortal>{content}</FloatingPortal> : content;\n  },\n);\nFloatingPopoverContent.displayName = 'FloatingPopoverContent';\n","import { useCallback, useEffect, useRef } from 'react';\nimport type { ReactNode } from 'react';\n\nexport interface InfiniteScrollProps {\n  /**\n   * 是否正在加载数据\n   */\n  isLoading: boolean;\n  /**\n   * 是否还有更多数据\n   */\n  hasMore: boolean;\n  /**\n   * 加载下一页的回调函数\n   */\n  next: () => unknown;\n  /**\n   * IntersectionObserver 的阈值，范围 0-1\n   * @default 1\n   */\n  threshold?: number;\n  /**\n   * IntersectionObserver 的 root 元素\n   * @default null\n   */\n  root?: Element | Document | null;\n  /**\n   * IntersectionObserver 的 rootMargin\n   * @default '0px'\n   */\n  rootMargin?: string;\n  /**\n   * 是否反向观察（观察第一个元素而不是最后一个）\n   * @default false\n   */\n  reverse?: boolean;\n  /**\n   * 子元素\n   */\n  children?: ReactNode;\n}\n\nexport function InfiniteScroll({\n  isLoading,\n  hasMore,\n  next,\n  threshold = 1,\n  root = null,\n  rootMargin = '0px',\n  reverse = false,\n  children,\n}: InfiniteScrollProps) {\n  const observerRef = useRef<IntersectionObserver | null>(null);\n\n  const observerCallback = useCallback(\n    (node: HTMLElement | null) => {\n      if (isLoading) return;\n\n      // 断开之前的观察\n      if (observerRef.current) {\n        observerRef.current.disconnect();\n      }\n\n      // 创建新的 IntersectionObserver\n      observerRef.current = new IntersectionObserver(\n        (entries) => {\n          if (entries[0].isIntersecting && hasMore && !isLoading) {\n            next();\n          }\n        },\n        { threshold, root, rootMargin },\n      );\n\n      // 观察新节点\n      if (node) {\n        observerRef.current.observe(node);\n      }\n    },\n    [hasMore, isLoading, next, threshold, root, rootMargin],\n  );\n\n  useEffect(() => {\n    // 验证 threshold 值\n    if (threshold < 0 || threshold > 1) {\n      console.warn('InfiniteScroll: threshold should be between 0 and 1');\n    }\n\n    return () => {\n      // 清理观察器\n      if (observerRef.current) {\n        observerRef.current.disconnect();\n      }\n    };\n  }, [threshold]);\n\n  // 如果没有子元素，直接返回 null\n  if (!children) return null;\n\n  // 将 children 转换为数组\n  const childArray = Array.isArray(children) ? children : [children];\n\n  // 找到需要附加 ref 的元素索引\n  const targetIndex = reverse ? 0 : childArray.length - 1;\n\n  return (\n    <>\n      {childArray.map((child, index) => {\n        // 如果是目标元素且有更多数据，附加 ref\n        if (index === targetIndex && hasMore) {\n          return (\n            <div key={index} ref={observerCallback}>\n              {child}\n            </div>\n          );\n        }\n        return <div key={index}>{child}</div>;\n      })}\n    </>\n  );\n}\n","import React, { forwardRef } from 'react';\n\nimport { cn } from '../base/utils';\n\ninterface IIndicatorProps extends React.ComponentPropsWithoutRef<'div'> {\n  dot?: boolean;\n}\n\nexport const Indicator = forwardRef<HTMLDivElement, IIndicatorProps>(\n  ({ children, className, dot = true, ...props }, ref) => {\n    return (\n      <div ref={ref} className={cn('relative inline-flex', className)} {...props}>\n        {children}\n        {dot && (\n          <span className=\"absolute right-0 top-0 -mr-1 -mt-1 flex size-2\">\n            <span className=\"absolute inline-flex h-full w-full animate-ping rounded-full bg-primary/75 opacity-75\"></span>\n            <span className=\"relative inline-flex size-2 rounded-full bg-primary\"></span>\n          </span>\n        )}\n      </div>\n    );\n  },\n);\n\nIndicator.displayName = 'Indicator';\n","'use client';\n\nimport * as React from 'react';\n\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card';\n\nimport { useMonkeysComponentAttributes } from '../../provider/context';\nimport { cn } from '../base/utils';\nimport { getOverlaySurfaceClassName } from './internal/overlaySurface';\n\nconst HoverCard = HoverCardPrimitive.Root;\n\nconst HoverCardPortal = HoverCardPrimitive.Portal;\n\nconst HoverCardTrigger = HoverCardPrimitive.Trigger;\n\nconst HoverCardContent = React.forwardRef<\n  React.ElementRef<typeof HoverCardPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof HoverCardPrimitive.Content>\n>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return (\n    <HoverCardPrimitive.Content\n      {...componentAttributes}\n      {...props}\n      ref={ref}\n      align={align}\n      sideOffset={sideOffset}\n      data-monkeys-component=\"hover-card\"\n      data-slot=\"content\"\n      data-surface=\"menu\"\n      className={cn(\n        'z-50 w-64 origin-[--radix-hover-card-content-transform-origin] border p-4 outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n        getOverlaySurfaceClassName('menu'),\n        className,\n      )}\n    />\n  );\n});\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport { HoverCard, HoverCardContent, HoverCardPortal, HoverCardTrigger };\n","'use client';\n\nimport * as React from 'react';\n\nimport { OTPInput, OTPInputContext } from 'input-otp';\nimport { Dot } from 'lucide-react';\n\nimport { cn } from '../base/utils';\n\nconst InputOTP = React.forwardRef<React.ElementRef<typeof OTPInput>, React.ComponentPropsWithoutRef<typeof OTPInput>>(\n  ({ className, containerClassName, ...props }, ref) => (\n    <OTPInput\n      ref={ref}\n      containerClassName={cn('flex items-center gap-2 has-[:disabled]:opacity-50', containerClassName)}\n      className={cn('disabled:cursor-not-allowed', className)}\n      {...props}\n    />\n  ),\n);\nInputOTP.displayName = 'InputOTP';\n\nconst InputOTPGroup = React.forwardRef<React.ElementRef<'div'>, React.ComponentPropsWithoutRef<'div'>>(\n  ({ className, ...props }, ref) => <div ref={ref} className={cn('flex items-center', className)} {...props} />,\n);\nInputOTPGroup.displayName = 'InputOTPGroup';\n\nconst InputOTPSlot = React.forwardRef<\n  React.ElementRef<'div'>,\n  React.ComponentPropsWithoutRef<'div'> & { index: number }\n>(({ index, className, ...props }, ref) => {\n  const inputOTPContext = React.useContext(OTPInputContext);\n  const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index];\n\n  return (\n    <div\n      ref={ref}\n      className={cn(\n        'relative flex size-8 items-center justify-center border-y border-r border-input text-sm shadow-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md',\n        isActive && 'z-10 ring-1 ring-monkeys-500',\n        className,\n      )}\n      {...props}\n    >\n      {char}\n      {hasFakeCaret && (\n        <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n          <div className=\"animate-caret-blink h-4 w-px bg-foreground duration-1000\" />\n        </div>\n      )}\n    </div>\n  );\n});\nInputOTPSlot.displayName = 'InputOTPSlot';\n\nconst InputOTPSeparator = React.forwardRef<React.ElementRef<'div'>, React.ComponentPropsWithoutRef<'div'>>(\n  ({ ...props }, ref) => (\n    <div ref={ref} role=\"separator\" {...props}>\n      <Dot />\n    </div>\n  ),\n);\nInputOTPSeparator.displayName = 'InputOTPSeparator';\n\nexport { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };\n","import * as React from 'react';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { Input, Textarea } from './FormControls';\nimport { Button } from './InteractiveControls';\nimport { cn } from '../base/utils';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n  return (\n    <div\n      data-slot=\"input-group\"\n      role=\"group\"\n      className={cn(\n        'group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30',\n        'h-9 has-[>textarea]:h-auto',\n\n        // Variants based on alignment.\n        'has-[>[data-align=inline-start]]:[&>input]:pl-2',\n        'has-[>[data-align=inline-end]]:[&>input]:pr-2',\n        'has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3',\n        'has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3',\n\n        // Focus state.\n        'has-[[data-slot=input-group-control]:focus-visible]:ring-1 has-[[data-slot=input-group-control]:focus-visible]:ring-ring',\n\n        // Error state.\n        'has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40',\n\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nconst inputGroupAddonVariants = cva(\n  \"text-muted-foreground flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4\",\n  {\n    variants: {\n      align: {\n        'inline-start': 'order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]',\n        'inline-end': 'order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]',\n        'block-start':\n          '[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5',\n        'block-end': '[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5',\n      },\n    },\n    defaultVariants: {\n      align: 'inline-start',\n    },\n  },\n);\n\nfunction InputGroupAddon({\n  className,\n  align = 'inline-start',\n  ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n  return (\n    <div\n      role=\"group\"\n      data-slot=\"input-group-addon\"\n      data-align={align}\n      className={cn(inputGroupAddonVariants({ align }), className)}\n      onClick={(e) => {\n        if ((e.target as HTMLElement).closest('button')) {\n          return;\n        }\n        e.currentTarget.parentElement?.querySelector('input')?.focus();\n      }}\n      {...props}\n    />\n  );\n}\n\nconst inputGroupButtonVariants = cva('flex items-center gap-2 text-sm shadow-none', {\n  variants: {\n    size: {\n      xs: \"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5\",\n      sm: 'h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5',\n      'icon-xs': 'size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0',\n      'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n    },\n  },\n  defaultVariants: {\n    size: 'xs',\n  },\n});\n\nfunction InputGroupButton({\n  className,\n  type = 'button',\n  variant = 'ghost',\n  size = 'xs',\n  ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size'> & VariantProps<typeof inputGroupButtonVariants>) {\n  return (\n    <Button\n      type={type}\n      data-size={size}\n      variant={variant}\n      className={cn(inputGroupButtonVariants({ size }), className)}\n      {...props}\n    />\n  );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n  return (\n    <span\n      className={cn(\n        \"flex items-center gap-2 text-sm text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nconst InputGroupInput = React.forwardRef<\n  HTMLInputElement,\n  React.ComponentPropsWithoutRef<'input'>\n>(({ className, ...props }, ref) => (\n  <Input\n    ref={ref}\n    data-slot=\"input-group-control\"\n    className={cn(\n      'flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent',\n      className,\n    )}\n    {...props}\n  />\n));\nInputGroupInput.displayName = 'InputGroupInput';\n\nconst InputGroupTextarea = React.forwardRef<\n  HTMLTextAreaElement,\n  React.ComponentPropsWithoutRef<'textarea'>\n>(({ className, ...props }, ref) => (\n  <Textarea\n    ref={ref}\n    data-slot=\"input-group-control\"\n    className={cn(\n      'flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 focus-visible:ring-offset-0 dark:bg-transparent',\n      className,\n    )}\n    {...props}\n  />\n));\nInputGroupTextarea.displayName = 'InputGroupTextarea';\n\nexport { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea };\n","import * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport * as SelectPrimitive from '@radix-ui/react-select';\nimport { Check, ChevronDown, ChevronRight, ChevronUp, Circle } from 'lucide-react';\n\nimport { useMonkeysComponentAttributes } from '../../provider/context';\nimport { cn } from '../base/utils';\nimport { getOverlaySurfaceClassName } from './internal/overlaySurface';\n\nconst menuItemClassName = 'relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0';\nconst menuContentClassName = `z-50 min-w-[8rem] overflow-hidden border p-1 ${getOverlaySurfaceClassName('menu')} data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`;\n\nexport const DropdownMenu = DropdownMenuPrimitive.Root;\nexport const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\nexport const DropdownMenuGroup = DropdownMenuPrimitive.Group;\nexport const DropdownMenuPortal = DropdownMenuPrimitive.Portal;\nexport const DropdownMenuSub = DropdownMenuPrimitive.Sub;\nexport const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\nexport const DropdownMenuSubTrigger = React.forwardRef<\n  React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n  React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & { inset?: boolean }\n>(({ className, inset, children, ...props }, ref) => (\n  <DropdownMenuPrimitive.SubTrigger ref={ref} className={cn(menuItemClassName, 'data-[state=open]:bg-accent', inset && 'pl-8', className)} {...props}>\n    {children}<ChevronRight aria-hidden=\"true\" className=\"ml-auto\" />\n  </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = 'DropdownMenuSubTrigger';\nexport const DropdownMenuSubContent = React.forwardRef<React.ElementRef<typeof DropdownMenuPrimitive.SubContent>, React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>>(\n  ({ className, ...props }, ref) => {\n    const componentAttributes = useMonkeysComponentAttributes();\n    return <DropdownMenuPrimitive.SubContent {...componentAttributes} {...props} ref={ref} data-monkeys-component=\"dropdown-menu\" data-slot=\"content\" data-surface=\"menu\" className={cn(menuContentClassName, className)} />;\n  },\n);\nDropdownMenuSubContent.displayName = 'DropdownMenuSubContent';\nexport const DropdownMenuContent = React.forwardRef<React.ElementRef<typeof DropdownMenuPrimitive.Content>, React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>>(\n  ({ className, sideOffset = 4, ...props }, ref) => {\n    const componentAttributes = useMonkeysComponentAttributes();\n    return <DropdownMenuPrimitive.Portal><DropdownMenuPrimitive.Content {...componentAttributes} {...props} ref={ref} sideOffset={sideOffset} data-monkeys-component=\"dropdown-menu\" data-slot=\"content\" data-surface=\"menu\" className={cn(menuContentClassName, className)} /></DropdownMenuPrimitive.Portal>;\n  },\n);\nDropdownMenuContent.displayName = 'DropdownMenuContent';\nexport const DropdownMenuItem = React.forwardRef<React.ElementRef<typeof DropdownMenuPrimitive.Item>, React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & { inset?: boolean }>(\n  ({ className, inset, ...props }, ref) => <DropdownMenuPrimitive.Item ref={ref} className={cn(menuItemClassName, inset && 'pl-8', className)} {...props} />,\n);\nDropdownMenuItem.displayName = 'DropdownMenuItem';\nexport const DropdownMenuCheckboxItem = React.forwardRef<React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>, React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>>(\n  ({ className, children, checked, ...props }, ref) => (\n    <DropdownMenuPrimitive.CheckboxItem ref={ref} className={cn(menuItemClassName, 'pl-8', className)} checked={checked} {...props}>\n      <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\"><DropdownMenuPrimitive.ItemIndicator><Check aria-hidden=\"true\" className=\"h-4 w-4\" /></DropdownMenuPrimitive.ItemIndicator></span>{children}\n    </DropdownMenuPrimitive.CheckboxItem>\n  ),\n);\nDropdownMenuCheckboxItem.displayName = 'DropdownMenuCheckboxItem';\nexport const DropdownMenuRadioItem = React.forwardRef<React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>, React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>>(\n  ({ className, children, ...props }, ref) => (\n    <DropdownMenuPrimitive.RadioItem ref={ref} className={cn(menuItemClassName, 'pl-8', className)} {...props}>\n      <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\"><DropdownMenuPrimitive.ItemIndicator><Circle aria-hidden=\"true\" className=\"h-2 w-2 fill-current\" /></DropdownMenuPrimitive.ItemIndicator></span>{children}\n    </DropdownMenuPrimitive.RadioItem>\n  ),\n);\nDropdownMenuRadioItem.displayName = 'DropdownMenuRadioItem';\nexport const DropdownMenuLabel = React.forwardRef<React.ElementRef<typeof DropdownMenuPrimitive.Label>, React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & { inset?: boolean }>(\n  ({ className, inset, ...props }, ref) => <DropdownMenuPrimitive.Label ref={ref} className={cn('px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)} {...props} />,\n);\nDropdownMenuLabel.displayName = 'DropdownMenuLabel';\nexport const DropdownMenuSeparator = React.forwardRef<React.ElementRef<typeof DropdownMenuPrimitive.Separator>, React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>>(\n  ({ className, ...props }, ref) => <DropdownMenuPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />,\n);\nDropdownMenuSeparator.displayName = 'DropdownMenuSeparator';\nexport const DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => <span className={cn('ml-auto text-xs tracking-widest opacity-60', className)} {...props} />;\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\n\nexport const Select = SelectPrimitive.Root;\nexport const SelectGroup = SelectPrimitive.Group;\nexport const SelectValue = SelectPrimitive.Value;\nexport interface SelectTriggerProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {\n  iconClassName?: string;\n  size?: 'default' | 'sm';\n}\nexport const SelectTrigger = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Trigger>, SelectTriggerProps>(\n  ({ className, children, iconClassName, size = 'default', ...props }, ref) => (\n    <SelectPrimitive.Trigger ref={ref} className={cn('flex h-10 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-control-surface px-3 py-2 text-left text-sm text-foreground shadow-sm ring-offset-control-surface data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 [&>span]:min-w-0 [&>span]:flex-1 [&>span]:text-left', size === 'sm' && 'h-8 px-2 py-1 text-xs', className)} {...props}>\n      {children}<SelectPrimitive.Icon asChild><ChevronDown aria-hidden=\"true\" className={cn('h-4 w-4 opacity-50', iconClassName)} /></SelectPrimitive.Icon>\n    </SelectPrimitive.Trigger>\n  ),\n);\nSelectTrigger.displayName = 'SelectTrigger';\nexport const SelectScrollUpButton = React.forwardRef<React.ElementRef<typeof SelectPrimitive.ScrollUpButton>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>>(\n  ({ className, ...props }, ref) => <SelectPrimitive.ScrollUpButton ref={ref} className={cn('flex cursor-default items-center justify-center py-1', className)} {...props}><ChevronUp aria-hidden=\"true\" className=\"h-4 w-4\" /></SelectPrimitive.ScrollUpButton>,\n);\nSelectScrollUpButton.displayName = 'SelectScrollUpButton';\nexport const SelectScrollDownButton = React.forwardRef<React.ElementRef<typeof SelectPrimitive.ScrollDownButton>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>>(\n  ({ className, ...props }, ref) => <SelectPrimitive.ScrollDownButton ref={ref} className={cn('flex cursor-default items-center justify-center py-1', className)} {...props}><ChevronDown aria-hidden=\"true\" className=\"h-4 w-4\" /></SelectPrimitive.ScrollDownButton>,\n);\nSelectScrollDownButton.displayName = 'SelectScrollDownButton';\nexport interface SelectContentProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {\n  viewportClassName?: string;\n  disableTriggerViewportSizing?: boolean;\n}\nexport const SelectContent = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Content>, SelectContentProps>(\n  ({ className, children, position = 'popper', viewportClassName, disableTriggerViewportSizing = false, ...props }, ref) => {\n    const componentAttributes = useMonkeysComponentAttributes();\n    return (\n      <SelectPrimitive.Portal><SelectPrimitive.Content {...componentAttributes} {...props} ref={ref} position={position} data-monkeys-component=\"select\" data-slot=\"content\" data-surface=\"menu\" className={cn(menuContentClassName, 'relative max-h-[var(--radix-select-content-available-height)] overflow-y-auto overflow-x-hidden', position === 'popper' && 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1', className)}>\n        <SelectScrollUpButton /><SelectPrimitive.Viewport className={cn('p-1', position === 'popper' && 'w-full min-w-[var(--radix-select-trigger-width)]', position === 'popper' && !disableTriggerViewportSizing && 'h-[var(--radix-select-trigger-height)]', viewportClassName)}>{children}</SelectPrimitive.Viewport><SelectScrollDownButton />\n      </SelectPrimitive.Content></SelectPrimitive.Portal>\n    );\n  },\n);\nSelectContent.displayName = 'SelectContent';\nexport const SelectLabel = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Label>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>>(\n  ({ className, ...props }, ref) => <SelectPrimitive.Label ref={ref} className={cn('px-2 py-1.5 text-sm font-semibold', className)} {...props} />,\n);\nSelectLabel.displayName = 'SelectLabel';\nexport interface SelectItemProps extends React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item> {\n  indicatorClassName?: string;\n  itemText?: React.ReactNode;\n  hideIndicator?: boolean;\n}\nexport const SelectItem = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Item>, SelectItemProps>(\n  ({ className, children, indicatorClassName, itemText, hideIndicator = false, ...props }, ref) => (\n    <SelectPrimitive.Item ref={ref} className={cn(menuItemClassName, 'w-full', hideIndicator ? 'px-2' : 'pl-8 pr-2', className)} {...props}>\n      {!hideIndicator ? <span className={cn('absolute left-2 flex h-3.5 w-3.5 items-center justify-center', indicatorClassName)}><SelectPrimitive.ItemIndicator><Check aria-hidden=\"true\" className=\"h-4 w-4\" /></SelectPrimitive.ItemIndicator></span> : null}\n      {itemText ? <><SelectPrimitive.ItemText asChild><span className=\"sr-only\">{itemText}</span></SelectPrimitive.ItemText>{children}</> : <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>}\n    </SelectPrimitive.Item>\n  ),\n);\nSelectItem.displayName = 'SelectItem';\nexport const SelectSeparator = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Separator>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>>(\n  ({ className, ...props }, ref) => <SelectPrimitive.Separator ref={ref} className={cn('-mx-1 my-1 h-px bg-muted', className)} {...props} />,\n);\nSelectSeparator.displayName = 'SelectSeparator';\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport const MEDIA_PREVIEW_ASPECT_RATIOS = ['1:1', '4:3', '3:4', '16:9', '9:16'] as const;\n\nexport type MediaPreviewRatio = (typeof MEDIA_PREVIEW_ASPECT_RATIOS)[number];\nexport type MediaPreviewAspectRatio = 'square' | 'video' | 'auto' | MediaPreviewRatio;\nexport type MediaPreviewFit = 'contain' | 'cover';\n\nexport const resolveMediaPreviewAspectRatioValue = (aspectRatio: MediaPreviewRatio = '1:1'): number => {\n  const [width, height] = aspectRatio.split(':').map(Number);\n  return width / height;\n};\n\nexport const mediaPreviewFrameClassName = ({\n  aspectRatio = 'square',\n  maxSquareHeight = true,\n  className,\n}: {\n  aspectRatio?: MediaPreviewAspectRatio;\n  maxSquareHeight?: boolean;\n  className?: string;\n} = {}) => cn(\n  'w-full overflow-hidden bg-muted',\n  (aspectRatio === 'square' || aspectRatio === '1:1') && 'aspect-square',\n  (aspectRatio === 'square' || aspectRatio === '1:1') && maxSquareHeight && 'max-h-[300px]',\n  aspectRatio === '4:3' && 'aspect-[4/3]',\n  aspectRatio === '3:4' && 'aspect-[3/4]',\n  (aspectRatio === 'video' || aspectRatio === '16:9') && 'aspect-video',\n  aspectRatio === '9:16' && 'aspect-[9/16]',\n  className,\n);\n\nexport interface MediaPreviewFrameProps extends React.HTMLAttributes<HTMLDivElement> {\n  aspectRatio?: MediaPreviewAspectRatio;\n  maxSquareHeight?: boolean;\n}\n\nexport const MediaPreviewFrame = React.forwardRef<HTMLDivElement, MediaPreviewFrameProps>(\n  ({ aspectRatio = 'square', maxSquareHeight = true, className, ...props }, ref) => (\n    <div ref={ref} className={mediaPreviewFrameClassName({ aspectRatio, maxSquareHeight, className })} {...props} />\n  ),\n);\nMediaPreviewFrame.displayName = 'MediaPreviewFrame';\n\nexport interface MediaPreviewImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n  fit?: MediaPreviewFit;\n}\n\nexport const MediaPreviewImage = React.forwardRef<HTMLImageElement, MediaPreviewImageProps>(\n  ({ fit = 'contain', className, ...props }, ref) => (\n    <img\n      ref={ref}\n      className={cn('block size-full', fit === 'contain' ? 'object-contain' : 'object-cover', className)}\n      {...props}\n    />\n  ),\n);\nMediaPreviewImage.displayName = 'MediaPreviewImage';\n","import * as React from 'react';\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { X } from 'lucide-react';\n\nimport { useMonkeysComponentAttributes } from '../../provider/context';\nimport { cn } from '../base/utils';\nimport { getOverlaySurfaceClassName } from './internal/overlaySurface';\nimport { buttonVariants } from './InteractiveControls';\n\nexport const Dialog = DialogPrimitive.Root;\nexport const DialogTrigger = DialogPrimitive.Trigger;\nexport const DialogPortal = DialogPrimitive.Portal;\nexport const DialogClose = DialogPrimitive.Close;\n\nexport const DialogOverlay = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return (\n    <DialogPrimitive.Overlay\n      {...componentAttributes}\n      {...props}\n      ref={ref}\n      className={cn('theme-overlay-backdrop fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className)}\n      data-monkeys-component=\"dialog\"\n      data-slot=\"overlay\"\n      data-monkeys-overlay\n    />\n  );\n});\nDialogOverlay.displayName = 'DialogOverlay';\n\nexport interface DialogContentProps extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n  showCloseButton?: boolean;\n  closeLabel?: React.ReactNode;\n  overlayClassName?: string;\n  overlayStyle?: React.CSSProperties;\n}\n\nconst DialogSurfaceContent = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return (\n    <DialogPrimitive.Content\n      {...componentAttributes}\n      {...props}\n      ref={ref}\n      className={className}\n      data-monkeys-component=\"dialog\"\n      data-slot=\"content\"\n      data-surface=\"dialog\"\n      data-monkeys-dialog-content\n    />\n  );\n});\nDialogSurfaceContent.displayName = 'DialogSurfaceContent';\n\nexport const DialogContent = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, DialogContentProps>(\n  ({ className, children, showCloseButton = true, closeLabel = 'Close', overlayClassName, overlayStyle, ...props }, ref) => {\n    return (\n      <DialogPortal>\n        <DialogOverlay className={overlayClassName} style={overlayStyle} />\n        <DialogSurfaceContent\n          {...props}\n          ref={ref}\n          className={cn('fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', getOverlaySurfaceClassName('dialog'), className)}\n        >\n          {children}\n          {showCloseButton ? (\n            <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-dialog-surface transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none\">\n              <X aria-hidden=\"true\" className=\"h-4 w-4\" />\n              <span className=\"sr-only\">{closeLabel}</span>\n            </DialogPrimitive.Close>\n          ) : null}\n        </DialogSurfaceContent>\n      </DialogPortal>\n    );\n  },\n);\nDialogContent.displayName = 'DialogContent';\n\nexport const DialogContentNoAnimation = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, DialogContentProps>(\n  ({ className, ...props }, ref) => <DialogContent ref={ref} className={cn('duration-0 data-[state=open]:animate-none data-[state=closed]:animate-none', className)} {...props} />,\n);\nDialogContentNoAnimation.displayName = 'DialogContentNoAnimation';\n\nexport const DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn('flex flex-col space-y-1.5 text-center sm:text-left', className)} {...props} />\n);\nDialogHeader.displayName = 'DialogHeader';\nexport const DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\n);\nDialogFooter.displayName = 'DialogFooter';\nexport const DialogTitle = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => <DialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold leading-none tracking-tight', className)} {...props} />);\nDialogTitle.displayName = 'DialogTitle';\nexport const DialogDescription = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => <DialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />);\nDialogDescription.displayName = 'DialogDescription';\n\nexport const AlertDialog: React.FC<React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Root>> = ({ onOpenChange, open, ...props }) => {\n  React.useEffect(() => {\n    if (open !== false || typeof document === 'undefined') return undefined;\n    const cleanup = () => {\n      if (!document.querySelector('[data-state=\"open\"][role=\"dialog\"], [data-state=\"open\"][role=\"alertdialog\"]')) {\n        document.body.style.pointerEvents = '';\n      }\n    };\n    requestAnimationFrame(cleanup);\n    const timer = window.setTimeout(cleanup, 300);\n    return () => window.clearTimeout(timer);\n  }, [open]);\n  const handleOpenChange = React.useCallback((next: boolean) => {\n    onOpenChange?.(next);\n    if (!next && typeof document !== 'undefined') requestAnimationFrame(() => {\n      if (!document.querySelector('[data-state=\"open\"][role=\"dialog\"], [data-state=\"open\"][role=\"alertdialog\"]')) document.body.style.pointerEvents = '';\n    });\n  }, [onOpenChange]);\n  return <AlertDialogPrimitive.Root open={open} onOpenChange={handleOpenChange} {...props} />;\n};\nexport const AlertDialogTrigger = AlertDialogPrimitive.Trigger;\nexport const AlertDialogPortal = AlertDialogPrimitive.Portal;\nexport const AlertDialogOverlay = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, style, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return <AlertDialogPrimitive.Overlay {...componentAttributes} {...props} ref={ref} className={cn('fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0', className)} data-monkeys-component=\"alert-dialog\" data-slot=\"overlay\" data-monkeys-overlay style={{ pointerEvents: 'auto', ...style }} />;\n});\nAlertDialogOverlay.displayName = 'AlertDialogOverlay';\nexport const AlertDialogContent = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, style, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return (\n    <AlertDialogPortal>\n      <AlertDialogOverlay />\n      <AlertDialogPrimitive.Content {...componentAttributes} {...props} ref={ref} className={cn('fixed left-1/2 top-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', getOverlaySurfaceClassName('dialog'), className)} data-monkeys-component=\"alert-dialog\" data-slot=\"content\" data-surface=\"dialog\" data-monkeys-dialog-content style={{ pointerEvents: 'auto', ...style }} />\n    </AlertDialogPortal>\n  );\n});\nAlertDialogContent.displayName = 'AlertDialogContent';\nexport const AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />;\nexport const AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => <div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />;\nexport const AlertDialogTitle = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Title>, React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>>(({ className, ...props }, ref) => <AlertDialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold', className)} {...props} />);\nexport const AlertDialogDescription = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Description>, React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>>(({ className, ...props }, ref) => <AlertDialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />);\nexport const AlertDialogAction = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Action>, React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>>(({ className, ...props }, ref) => <AlertDialogPrimitive.Action ref={ref} className={cn(buttonVariants(), className)} {...props} />);\nexport const AlertDialogDangerAction = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Action>, React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>>(({ className, ...props }, ref) => <AlertDialogPrimitive.Action ref={ref} className={cn(buttonVariants({ variant: 'destructive' }), className)} {...props} />);\nexport const AlertDialogCancel = React.forwardRef<React.ElementRef<typeof AlertDialogPrimitive.Cancel>, React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>>(({ className, ...props }, ref) => <AlertDialogPrimitive.Cancel ref={ref} className={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)} {...props} />);\n\nAlertDialogHeader.displayName = 'AlertDialogHeader';\nAlertDialogFooter.displayName = 'AlertDialogFooter';\nAlertDialogTitle.displayName = 'AlertDialogTitle';\nAlertDialogDescription.displayName = 'AlertDialogDescription';\nAlertDialogAction.displayName = 'AlertDialogAction';\nAlertDialogDangerAction.displayName = 'AlertDialogDangerAction';\nAlertDialogCancel.displayName = 'AlertDialogCancel';\n","import * as PopoverPrimitive from '@radix-ui/react-popover';\nimport * as React from 'react';\n\nimport { cn } from '../base/utils';\nimport { useMonkeysComponentAttributes } from '../../provider/context';\nimport { getOverlaySurfaceClassName } from './internal/overlaySurface';\n\nexport const Popover = PopoverPrimitive.Root;\nexport const PopoverTrigger = PopoverPrimitive.Trigger;\nexport const PopoverAnchor = PopoverPrimitive.Anchor;\nexport const PopoverClose = PopoverPrimitive.Close;\n\nexport interface PopoverContentProps\n  extends React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content> {\n  /** Optional portal container, useful when a popover is opened inside a dialog. */\n  container?: HTMLElement | null;\n}\n\nexport const PopoverContent = React.forwardRef<\n  React.ElementRef<typeof PopoverPrimitive.Content>,\n  PopoverContentProps\n>(function PopoverContent(\n  { align = 'center', sideOffset = 4, container, className, style, ...props },\n  ref,\n) {\n  const componentAttributes = useMonkeysComponentAttributes();\n  const fallbackContainer =\n    typeof document !== 'undefined'\n      ? (() => {\n          const active = document.activeElement as HTMLElement | null;\n          const activeDialog = active?.closest('[data-monkeys-dialog-content]');\n          if (activeDialog) return activeDialog as HTMLElement;\n          const openDialogs = Array.from(\n            document.querySelectorAll<HTMLElement>(\n              '[data-monkeys-dialog-content][data-state=\"open\"]',\n            ),\n          );\n          return openDialogs.at(-1);\n        })()\n      : undefined;\n\n  return (\n    <PopoverPrimitive.Portal container={container ?? fallbackContainer}>\n      <PopoverPrimitive.Content\n        {...componentAttributes}\n        {...props}\n        ref={ref}\n        align={align}\n        sideOffset={sideOffset}\n        data-monkeys-component=\"popover\"\n        data-slot=\"content\"\n        data-surface=\"menu\"\n        className={cn(\n          'z-50 w-72 border p-4 outline-none',\n          getOverlaySurfaceClassName('menu'),\n          'data-[state=open]:animate-in data-[state=closed]:animate-out',\n          'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n          'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n          'data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2',\n          'data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n          className,\n        )}\n        style={{ pointerEvents: 'auto', ...style }}\n      />\n    </PopoverPrimitive.Portal>\n  );\n});\nPopoverContent.displayName = PopoverPrimitive.Content.displayName;\n","import * as React from 'react';\n\nimport { X } from 'lucide-react';\n\nimport { cn } from '../base/utils';\nimport { Badge } from './Badge';\nimport { Input } from './FormControls';\n\nexport type PillValue = string | number | boolean;\nexport type PillFieldType = 'string' | 'number' | 'boolean';\n\nexport interface PillInputMessages {\n  stringPlaceholder: string;\n  numberPlaceholder: string;\n  booleanPlaceholder: string;\n  removeValue: (value: PillValue) => string;\n}\n\nconst defaultMessages: PillInputMessages = {\n  stringPlaceholder: 'Enter a value and press Enter',\n  numberPlaceholder: 'Enter a number and press Enter',\n  booleanPlaceholder: 'Enter true or false and press Enter',\n  removeValue: (value) => `Remove ${String(value)}`,\n};\n\nexport interface PillInputProps {\n  value?: PillValue[];\n  onChange: (values: PillValue[]) => void;\n  placeholder?: string;\n  fieldType?: PillFieldType;\n  disabled?: boolean;\n  className?: string;\n  messages?: Partial<PillInputMessages>;\n}\n\nexport const convertPillValue = (value: string, type: PillFieldType): PillValue => {\n  if (type === 'number') {\n    const number = Number(value);\n    return Number.isNaN(number) ? value : number;\n  }\n  if (type === 'boolean') return ['true', 'yes', '是', '1'].includes(value.toLowerCase().trim());\n  return value;\n};\n\nexport const isValidPillValue = (value: string, type: PillFieldType): boolean => {\n  if (!value.trim()) return false;\n  if (type === 'number') return !Number.isNaN(Number(value));\n  if (type === 'boolean') {\n    return ['true', 'false', 'yes', 'no', '是', '否', '1', '0'].includes(value.toLowerCase().trim());\n  }\n  return true;\n};\n\nexport const PillInput = React.forwardRef<HTMLInputElement, PillInputProps>(\n  (\n    {\n      value = [],\n      onChange,\n      placeholder,\n      fieldType = 'string',\n      disabled = false,\n      className,\n      messages: messageOverrides,\n    },\n    forwardedRef,\n  ) => {\n    const messages = { ...defaultMessages, ...messageOverrides };\n    const [inputValue, setInputValue] = React.useState('');\n    const localRef = React.useRef<HTMLInputElement | null>(null);\n    const setInputRef = React.useCallback(\n      (node: HTMLInputElement | null) => {\n        localRef.current = node;\n        if (typeof forwardedRef === 'function') forwardedRef(node);\n        else if (forwardedRef) forwardedRef.current = node;\n      },\n      [forwardedRef],\n    );\n\n    const removePill = React.useCallback(\n      (index: number) => {\n        if (!disabled) onChange(value.filter((_, currentIndex) => currentIndex !== index));\n      },\n      [disabled, onChange, value],\n    );\n\n    const addPill = React.useCallback(\n      (candidate: string) => {\n        const trimmed = candidate.trim();\n        if (!isValidPillValue(trimmed, fieldType)) return;\n        const converted = convertPillValue(trimmed, fieldType);\n        if (value.some((current) => current === converted)) return;\n        onChange([...value, converted]);\n        setInputValue('');\n      },\n      [fieldType, onChange, value],\n    );\n\n    const resolvedPlaceholder = placeholder ?? (\n      fieldType === 'number'\n        ? messages.numberPlaceholder\n        : fieldType === 'boolean'\n          ? messages.booleanPlaceholder\n          : messages.stringPlaceholder\n    );\n\n    return (\n      <div\n        className={cn(\n          'flex min-h-10 w-full flex-wrap items-center gap-1.5 rounded-md border border-input bg-background px-3 py-2 text-sm',\n          disabled && 'cursor-not-allowed opacity-50',\n          className,\n        )}\n        onClick={() => { if (!disabled) localRef.current?.focus(); }}\n      >\n        {value\n          .filter((pill) => pill !== undefined && pill !== null && pill !== '')\n          .map((pill, index) => (\n            <Badge key={`${typeof pill}:${String(pill)}:${index}`} variant=\"secondary\" className=\"flex items-center gap-1 py-1 text-xs\">\n              <span>{String(pill)}</span>\n              {!disabled ? (\n                <button\n                  type=\"button\"\n                  className=\"rounded-sm hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\"\n                  aria-label={messages.removeValue(pill)}\n                  onClick={(event) => { event.stopPropagation(); removePill(index); }}\n                >\n                  <X aria-hidden=\"true\" className=\"size-3\" />\n                </button>\n              ) : null}\n            </Badge>\n          ))}\n        <Input\n          ref={setInputRef}\n          value={inputValue}\n          onChange={(event) => setInputValue(event.currentTarget.value)}\n          onKeyDown={(event) => {\n            if (event.key === 'Enter') { event.preventDefault(); addPill(inputValue); }\n            else if (event.key === 'Backspace' && !inputValue && value.length > 0) removePill(value.length - 1);\n            else if (event.key === 'Escape') localRef.current?.blur();\n          }}\n          placeholder={value.length === 0 ? resolvedPlaceholder : ''}\n          disabled={disabled}\n          className=\"h-auto min-w-20 flex-1 border-0 bg-transparent p-0 shadow-none focus-visible:ring-0 focus-visible:ring-offset-0\"\n        />\n      </div>\n    );\n  },\n);\nPillInput.displayName = 'PillInput';\n","import * as React from 'react';\n\nimport * as ProgressPrimitive from '@radix-ui/react-progress';\n\nimport { cn } from '../base/utils';\n\nconst Progress = React.forwardRef<\n  React.ElementRef<typeof ProgressPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof ProgressPrimitive.Root>\n>(({ className, value, ...props }, ref) => (\n  <ProgressPrimitive.Root\n    ref={ref}\n    className={cn('relative h-4 w-full overflow-hidden rounded-full bg-secondary', className)}\n    {...props}\n  >\n    <ProgressPrimitive.Indicator\n      className=\"h-full w-full flex-1 bg-primary transition-all\"\n      style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n    />\n  </ProgressPrimitive.Root>\n));\nProgress.displayName = ProgressPrimitive.Root.displayName;\n\nexport { Progress };\n","import React from 'react';\n\nimport { GripVertical } from 'lucide-react';\nimport * as ResizablePrimitive from 'react-resizable-panels';\n\nimport { cn } from '../base/utils';\n\nconst ResizablePanelGroup = ({ className, ...props }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => (\n  <ResizablePrimitive.PanelGroup\n    className={cn('flex h-full w-full data-[panel-group-direction=vertical]:flex-col', className)}\n    {...props}\n  />\n);\n\nconst ResizablePanel = ResizablePrimitive.Panel;\n\nconst ResizableHandle = ({\n  withHandle,\n  className,\n  ...props\n}: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {\n  withHandle?: boolean;\n}) => (\n  <ResizablePrimitive.PanelResizeHandle\n    className={cn(\n      'relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-monkeys-500 focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90',\n      className,\n    )}\n    {...props}\n  >\n    {withHandle && (\n      <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border\">\n        <GripVertical className=\"h-2.5 w-2.5\" />\n      </div>\n    )}\n  </ResizablePrimitive.PanelResizeHandle>\n);\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup };\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport const Sidebar = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => (\n    <aside ref={ref} className={cn('flex h-full min-h-0 flex-col rounded-xl border bg-card text-card-foreground shadow', className)} {...props} />\n  ),\n);\nSidebar.displayName = 'Sidebar';\n\nexport const SidebarHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => <div ref={ref} className={cn('flex shrink-0 flex-col gap-3 p-4', className)} {...props} />,\n);\nSidebarHeader.displayName = 'SidebarHeader';\n\nexport const SidebarContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => <div ref={ref} className={cn('min-h-0 flex-1 p-2 pt-0', className)} {...props} />,\n);\nSidebarContent.displayName = 'SidebarContent';\n\nexport const SidebarFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => <div ref={ref} className={cn('shrink-0 p-4 pt-2', className)} {...props} />,\n);\nSidebarFooter.displayName = 'SidebarFooter';\n\nexport const SidebarGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => <div ref={ref} className={cn('flex flex-col gap-2', className)} {...props} />,\n);\nSidebarGroup.displayName = 'SidebarGroup';\n\nexport const SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n  ({ className, ...props }, ref) => <div ref={ref} className={cn('px-2 text-xs font-medium text-muted-foreground', className)} {...props} />,\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nexport const SidebarMenu = React.forwardRef<HTMLUListElement, React.HTMLAttributes<HTMLUListElement>>(\n  ({ className, ...props }, ref) => <ul ref={ref} className={cn('flex flex-col gap-1', className)} {...props} />,\n);\nSidebarMenu.displayName = 'SidebarMenu';\n\nexport const SidebarMenuItem = React.forwardRef<HTMLLIElement, React.LiHTMLAttributes<HTMLLIElement>>(\n  ({ className, ...props }, ref) => <li ref={ref} className={cn('min-w-0', className)} {...props} />,\n);\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nexport interface SidebarMenuButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  isActive?: boolean;\n}\n\nexport const SidebarMenuButton = React.forwardRef<HTMLButtonElement, SidebarMenuButtonProps>(\n  ({ className, isActive, type = 'button', ...props }, ref) => (\n    <button\n      ref={ref}\n      type={type}\n      data-active={isActive ? 'true' : undefined}\n      className={cn(\n        'flex w-full items-start gap-3 rounded-md px-3 py-3 text-left text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',\n        isActive ? 'bg-accent text-accent-foreground' : 'text-muted-foreground',\n        className,\n      )}\n      {...props}\n    />\n  ),\n);\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n","import * as LabelPrimitive from '@radix-ui/react-label';\nimport * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport const Label = React.forwardRef<\n  React.ElementRef<typeof LabelPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => (\n  <LabelPrimitive.Root\n    ref={ref}\n    className={cn('text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70', className)}\n    {...props}\n  />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n","import * as DialogPrimitive from '@radix-ui/react-dialog';\nimport * as React from 'react';\n\nimport { useMonkeysComponentAttributes } from '../../provider/context';\nimport { cn } from '../base/utils';\nimport { getOverlaySurfaceClassName } from './internal/overlaySurface';\n\nexport const Sheet = DialogPrimitive.Root;\nexport const SheetTrigger = DialogPrimitive.Trigger;\nexport const SheetClose = DialogPrimitive.Close;\nexport const SheetPortal = DialogPrimitive.Portal;\n\nexport const SheetOverlay = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return (\n    <DialogPrimitive.Overlay\n      {...componentAttributes}\n      {...props}\n      ref={ref}\n      data-monkeys-component=\"sheet\"\n      data-slot=\"overlay\"\n      data-monkeys-overlay\n      className={cn(\n        'theme-overlay-backdrop fixed inset-0 z-50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n        className,\n      )}\n    />\n  );\n});\nSheetOverlay.displayName = 'SheetOverlay';\n\nexport type SheetSide = 'top' | 'right' | 'bottom' | 'left';\nexport interface SheetContentProps\n  extends React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> {\n  side?: SheetSide;\n}\n\nconst sideClassNames: Record<SheetSide, string> = {\n  top: 'inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top',\n  right: 'inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm',\n  bottom: 'inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom',\n  left: 'inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm',\n};\n\nexport const SheetContent = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Content>,\n  SheetContentProps\n>(({ side = 'right', className, children, ...props }, ref) => {\n  const componentAttributes = useMonkeysComponentAttributes();\n  return (\n    <SheetPortal>\n      <SheetOverlay />\n      <DialogPrimitive.Content\n        {...componentAttributes}\n        {...props}\n        ref={ref}\n        data-monkeys-component=\"sheet\"\n        data-slot=\"content\"\n        data-surface=\"dialog\"\n        data-monkeys-dialog-content\n        className={cn(\n          'fixed z-50 gap-4 p-6 transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out',\n          getOverlaySurfaceClassName('dialog', { rounded: false }),\n          sideClassNames[side],\n          className,\n        )}\n      >\n        <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-dialog-surface transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\n          <svg aria-hidden=\"true\" className=\"h-4 w-4\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\">\n            <path d=\"M18 6 6 18M6 6l12 12\" />\n          </svg>\n          <span className=\"sr-only\">Close</span>\n        </DialogPrimitive.Close>\n        {children}\n      </DialogPrimitive.Content>\n    </SheetPortal>\n  );\n});\nSheetContent.displayName = 'SheetContent';\n\nexport const SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn('flex flex-col space-y-2 text-center sm:text-left', className)} {...props} />\n);\nexport const SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn('flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2', className)} {...props} />\n);\n\nexport const SheetTitle = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Title ref={ref} className={cn('text-lg font-semibold text-foreground', className)} {...props} />\n));\nSheetTitle.displayName = 'SheetTitle';\n\nexport const SheetDescription = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Description ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n));\nSheetDescription.displayName = 'SheetDescription';\n","import * as React from 'react';\n\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { Input } from './FormControls';\nimport { cn } from '../base/utils';\n\nconst isFiniteNumber = (value: unknown): value is number => typeof value === 'number' && Number.isFinite(value);\n\nconst getStepPrecision = (step: number) => {\n  const stepText = step.toString().toLowerCase();\n\n  if (stepText.includes('e-')) {\n    const [base, exponentPart] = stepText.split('e-');\n    const exponent = Number(exponentPart);\n    const decimals = (base.split('.')[1] || '').length;\n    return exponent + decimals;\n  }\n\n  return (stepText.split('.')[1] || '').length;\n};\n\nexport const normalizeSliderNumber = (value: number, options: { min?: number; max?: number; step?: number }) => {\n  const { min, max, step } = options;\n\n  let nextValue = value;\n\n  if (isFiniteNumber(min)) nextValue = Math.max(nextValue, min);\n  if (isFiniteNumber(max)) nextValue = Math.min(nextValue, max);\n\n  if (isFiniteNumber(step) && step > 0) {\n    const base = isFiniteNumber(min) ? min : 0;\n    const precision = getStepPrecision(step);\n    nextValue = Number((base + Math.round((nextValue - base) / step) * step).toFixed(precision));\n  }\n\n  if (isFiniteNumber(min)) nextValue = Math.max(nextValue, min);\n  if (isFiniteNumber(max)) nextValue = Math.min(nextValue, max);\n\n  return nextValue;\n};\n\nexport const formatSliderNumber = (value?: number) => (isFiniteNumber(value) ? `${value}` : 'NaN');\n\nexport interface SliderProps extends Omit<React.ComponentPropsWithoutRef<typeof SliderPrimitive.Root>, 'onChange'> {\n  // onChange?: (value: number) => void;\n  label?: string;\n  disabledLabel?: boolean;\n  editableValue?: boolean;\n  showRangeLabels?: boolean;\n  valueFormatter?: (value: number | undefined) => string;\n  rangeLabelFormatter?: (value: number) => string;\n  onEditableValueCommit?: (value: number) => void;\n}\n\nconst Slider = React.forwardRef<React.ElementRef<typeof SliderPrimitive.Root>, SliderProps>(\n  (\n    {\n      className,\n      value,\n      min,\n      max,\n      step,\n      disabledLabel,\n      editableValue,\n      showRangeLabels,\n      valueFormatter = formatSliderNumber,\n      rangeLabelFormatter = formatSliderNumber,\n      onEditableValueCommit,\n      ...props\n    },\n    ref,\n  ) => {\n    const inputRef = React.useRef<HTMLInputElement>(null);\n    const currentValue = value?.[0];\n    const hasCurrentValue = isFiniteNumber(currentValue);\n    const hasRange = isFiniteNumber(min) && isFiniteNumber(max);\n    const useEnhancedLayout = Boolean(editableValue || showRangeLabels);\n\n    const [isEditingValue, setIsEditingValue] = React.useState(false);\n    const [draftValue, setDraftValue] = React.useState(hasCurrentValue ? String(currentValue) : '');\n    const showEditingLayout = useEnhancedLayout && isEditingValue;\n\n    React.useEffect(() => {\n      if (isEditingValue) return;\n      setDraftValue(hasCurrentValue ? String(currentValue) : '');\n    }, [currentValue, hasCurrentValue, isEditingValue]);\n\n    React.useEffect(() => {\n      if (!isEditingValue) return;\n\n      const rafId = window.requestAnimationFrame(() => {\n        inputRef.current?.focus();\n        inputRef.current?.select();\n      });\n\n      return () => window.cancelAnimationFrame(rafId);\n    }, [isEditingValue]);\n\n    const cancelEditingValue = React.useCallback(() => {\n      setDraftValue(hasCurrentValue ? String(currentValue) : '');\n      setIsEditingValue(false);\n    }, [currentValue, hasCurrentValue]);\n\n    const commitEditingValue = React.useCallback(() => {\n      if (!editableValue || !onEditableValueCommit) {\n        setIsEditingValue(false);\n        return;\n      }\n\n      const trimmedValue = draftValue.trim();\n      if (!trimmedValue) {\n        cancelEditingValue();\n        return;\n      }\n\n      const parsedValue = Number(trimmedValue);\n      if (!Number.isFinite(parsedValue)) {\n        cancelEditingValue();\n        return;\n      }\n\n      const normalizedValue = normalizeSliderNumber(parsedValue, { min, max, step });\n      onEditableValueCommit(normalizedValue);\n      setDraftValue(String(normalizedValue));\n      setIsEditingValue(false);\n    }, [cancelEditingValue, draftValue, editableValue, max, min, onEditableValueCommit, step]);\n\n    if (!showEditingLayout) {\n      return (\n        <div className={cn('flex items-center gap-2 [&_span]:flex', className)}>\n          <div className=\"flex min-h-6 flex-1\">\n            <SliderPrimitive.Root\n              ref={ref}\n              className={cn('relative flex w-full touch-none select-none items-center')}\n              value={value}\n              min={min}\n              max={max}\n              step={step}\n              {...props}\n            >\n              <SliderPrimitive.Track className=\"relative h-2 w-full grow overflow-hidden rounded-md bg-muted\">\n                <SliderPrimitive.Range className=\"absolute h-full bg-muted-foreground\" />\n              </SliderPrimitive.Track>\n              <SliderPrimitive.Thumb className=\"block h-5 w-2 cursor-grab rounded-sm border-0 bg-muted-foreground ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 \" />\n            </SliderPrimitive.Root>\n          </div>\n          {!disabledLabel &&\n            (editableValue && onEditableValueCommit ? (\n              <button\n                type=\"button\"\n                className=\"border-0 bg-transparent p-0 text-sm font-medium text-foreground\"\n                onClick={() => setIsEditingValue(true)}\n              >\n                {valueFormatter(currentValue)}\n              </button>\n            ) : (\n              <span className=\"text-sm font-medium text-foreground\">{valueFormatter(currentValue)}</span>\n            ))}\n        </div>\n      );\n    }\n\n    return (\n      <div className={cn('grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-2 gap-y-1 [&_span]:flex', className)}>\n        <div className=\"col-start-1 row-start-1 flex min-h-8 min-w-0 items-center\">\n          <SliderPrimitive.Root\n            ref={ref}\n            className={cn('relative flex h-5 w-full touch-none select-none items-center')}\n            value={value}\n            min={min}\n            max={max}\n            step={step}\n            {...props}\n          >\n            <SliderPrimitive.Track className=\"relative flex h-2 w-full grow overflow-hidden rounded-md bg-muted\">\n              <SliderPrimitive.Range className=\"absolute h-full bg-muted-foreground\" />\n            </SliderPrimitive.Track>\n            <SliderPrimitive.Thumb className=\"z-10 block h-5 w-2.5 shrink-0 cursor-grab rounded-sm border-0 bg-muted-foreground ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 \" />\n          </SliderPrimitive.Root>\n        </div>\n\n        {!disabledLabel && (\n          <div className=\"col-start-2 row-start-1 flex min-h-8 items-center\">\n            {editableValue && onEditableValueCommit ? (\n              isEditingValue ? (\n                <Input\n                  ref={inputRef}\n                  type=\"number\"\n                  inputMode=\"decimal\"\n                  value={draftValue}\n                  min={min}\n                  max={max}\n                  step={step}\n                  className=\"h-7 w-[66px] px-2 py-1 text-right text-sm tabular-nums\"\n                  onChange={(event) => setDraftValue(event.target.value)}\n                  onBlur={commitEditingValue}\n                  onKeyDown={(event) => {\n                    if (event.key === 'Enter') {\n                      event.preventDefault();\n                      event.stopPropagation();\n                      commitEditingValue();\n                      return;\n                    }\n\n                    if (event.key === 'Escape') {\n                      event.preventDefault();\n                      event.stopPropagation();\n                      cancelEditingValue();\n                    }\n                  }}\n                />\n              ) : (\n                <button\n                  type=\"button\"\n                  className=\"inline-flex h-7 w-[66px] items-center justify-end rounded-md border border-transparent bg-transparent px-2 py-1 text-right text-sm font-medium tabular-nums text-foreground transition-colors hover:border-input hover:bg-accent/40\"\n                  onClick={() => setIsEditingValue(true)}\n                >\n                  {valueFormatter(currentValue)}\n                </button>\n              )\n            ) : (\n              <span className=\"inline-flex h-7 w-[66px] items-center justify-end px-2 text-right text-sm font-medium tabular-nums text-foreground\">\n                {valueFormatter(currentValue)}\n              </span>\n            )}\n          </div>\n        )}\n\n        {showRangeLabels && hasRange && (\n          <div className=\"col-start-1 row-start-2 flex items-center justify-between px-0.5 text-xs text-muted-foreground\">\n            <span>{rangeLabelFormatter(min)}</span>\n            <span>{rangeLabelFormatter(max)}</span>\n          </div>\n        )}\n      </div>\n    );\n  },\n);\nSlider.displayName = SliderPrimitive.Root.displayName;\n\nexport { Slider };\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport interface StatusStateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'title'> {\n  title: React.ReactNode;\n  description?: React.ReactNode;\n  presentation?: 'page' | 'panel';\n}\n\n/** Product-neutral empty, unavailable and permission state presentation. */\nexport const StatusState = React.forwardRef<HTMLDivElement, StatusStateProps>(\n  ({ title, description, presentation = 'panel', className, ...props }, ref) => (\n    <div\n      ref={ref}\n      className={cn(\n        presentation === 'page'\n          ? 'flex h-full min-h-0 items-center justify-center p-6'\n          : 'rounded-lg border p-8 text-center',\n        className,\n      )}\n      {...props}\n    >\n      <div className=\"text-center\">\n        {presentation === 'page'\n          ? <div className=\"text-5xl font-semibold tracking-tight\">{title}</div>\n          : <h1 className=\"text-xl font-semibold\">{title}</h1>}\n        {description ? <p className=\"mt-3 text-sm text-muted-foreground\">{description}</p> : null}\n      </div>\n    </div>\n  ),\n);\nStatusState.displayName = 'StatusState';\n","import {\n  createContext,\n  useContext,\n  useEffect,\n  useMemo,\n  useState,\n  type CSSProperties,\n  type ReactNode,\n  type Ref,\n  type RefObject,\n} from 'react';\n\nexport const skeletonAnimations = [\n  'pulse',\n  'shimmer',\n  'shimmer-soft',\n  'shimmer-diagonal',\n  'shimmer-vertical',\n  'drift',\n  'outline',\n  'none',\n] as const;\nexport type SkeletonAnimation = (typeof skeletonAnimations)[number];\nexport type SkeletonGroupAnimation = SkeletonAnimation | 'shimmer-shared' | 'shimmer-stagger';\n\nexport function validateSkeletonAnimation(value: unknown, grouped = false): void {\n  if (value === undefined || skeletonAnimations.includes(value as SkeletonAnimation)) return;\n  if (grouped && (value === 'shimmer-shared' || value === 'shimmer-stagger')) return;\n  throw new TypeError(\n    `Skeleton animation must be ${skeletonAnimations.join(', ')}${grouped ? ', shimmer-shared, or shimmer-stagger' : ''}.`,\n  );\n}\n\ntype Registration = { item?: number };\ntype Registry = {\n  nodes: Map<HTMLElement, Registration>;\n  update: () => void;\n};\ntype MotionContextValue = {\n  animation: SkeletonGroupAnimation;\n  disabled: boolean;\n  registry: Registry;\n};\nconst MotionContext = createContext<MotionContextValue | null>(null);\nconst ItemContext = createContext<number | undefined>(undefined);\n\nfunction clearGeometry(node: HTMLElement) {\n  delete node.dataset.skeletonReady;\n  for (const name of ['width', 'offset', 'delay'])\n    node.style.removeProperty(`--monkeys-skeleton-${name}`);\n}\n\nfunction useGroupRegistry(\n  animation: SkeletonGroupAnimation,\n  disabled: boolean,\n  enabled: boolean,\n  containerRef?: RefObject<HTMLElement>,\n) {\n  const registry = useMemo<Registry>(() => ({ nodes: new Map(), update: () => {} }), []);\n  useEffect(() => {\n    if (!enabled || disabled || (animation !== 'shimmer-shared' && animation !== 'shimmer-stagger'))\n      return;\n    const query = window.matchMedia('(prefers-reduced-motion: reduce)');\n    let observer: ResizeObserver | undefined;\n    let frame: number | undefined;\n    let active = false;\n    const observed = new Set<HTMLElement>();\n    const measure = () => {\n      frame = undefined;\n      if (!active) return;\n      const nodes = [...registry.nodes.keys()].filter((node) => node.isConnected);\n      nodes.sort((a, b) => (a.compareDocumentPosition(b) & 2 ? 1 : -1));\n      if (animation === 'shimmer-stagger') {\n        nodes.forEach((node, index) => {\n          const item = registry.nodes.get(node)?.item ?? index;\n          node.style.setProperty('--monkeys-skeleton-delay', `${Math.min(item * 80, 400)}ms`);\n        });\n        return;\n      }\n      // Container-only resizing can move fixed-size shapes (for example space-between).\n      let container = containerRef?.current ?? nodes[0]?.parentElement;\n      for (const node of nodes)\n        while (container && !container.contains(node)) container = container.parentElement;\n      const targets = new Set<HTMLElement>(nodes);\n      for (const node of nodes) {\n        for (let ancestor = node.parentElement; ancestor; ancestor = ancestor.parentElement) {\n          targets.add(ancestor);\n          if (ancestor === container) break;\n        }\n      }\n      if (container) targets.add(container);\n      for (const node of observed)\n        if (!targets.has(node)) {\n          observer?.unobserve(node);\n          observed.delete(node);\n        }\n      for (const node of targets)\n        if (!observed.has(node)) {\n          observer?.observe(node);\n          observed.add(node);\n        }\n      // Read every box before writing offsets. The union also works for native table rows without a wrapper.\n      const boxes = nodes.map((node) => node.getBoundingClientRect());\n      const scales = nodes.map((node, index) => {\n        const style = getComputedStyle(node);\n        const extras =\n          style.boxSizing === 'border-box'\n            ? 0\n            : parseFloat(style.paddingLeft) +\n              parseFloat(style.paddingRight) +\n              parseFloat(style.borderLeftWidth) +\n              parseFloat(style.borderRightWidth);\n        const width = parseFloat(style.width) + extras;\n        const scale = width ? boxes[index].width / width : 1;\n        // CSSOM serializes fractional widths with less precision than DOMRect.\n        return Math.abs(scale - 1) < 0.0001 ? 1 : scale;\n      });\n      const left = Math.min(...boxes.map((box) => box.left));\n      const right = Math.max(...boxes.map((box) => box.right));\n      nodes.forEach((node, index) => {\n        const box = boxes[index];\n        if (!box.width || !box.height) {\n          clearGeometry(node);\n          return;\n        }\n        const scale = scales[index];\n        node.style.setProperty('--monkeys-skeleton-width', `${(right - left) / scale}px`);\n        node.style.setProperty('--monkeys-skeleton-offset', `${(left - box.left) / scale}px`);\n        if (!node.dataset.skeletonReady) {\n          // Newly mounted shapes join the same CSS phase; geometry updates never restart it.\n          node.style.setProperty('--monkeys-skeleton-delay', `${-(performance.now() % 2600)}ms`);\n          node.dataset.skeletonReady = 'true';\n        }\n      });\n    };\n    const schedule = () => {\n      if (active && frame === undefined) frame = window.requestAnimationFrame(measure);\n    };\n    const stop = () => {\n      active = false;\n      observer?.disconnect();\n      observer = undefined;\n      observed.clear();\n      if (frame !== undefined) window.cancelAnimationFrame(frame);\n      frame = undefined;\n      window.removeEventListener('resize', schedule);\n      window.removeEventListener('scroll', schedule, true);\n      registry.nodes.forEach((_, node) => clearGeometry(node));\n    };\n    const start = () => {\n      stop();\n      if (\n        query.matches ||\n        (animation === 'shimmer-shared' && typeof ResizeObserver === 'undefined')\n      )\n        return;\n      active = true;\n      if (animation === 'shimmer-shared') {\n        observer = new ResizeObserver(schedule);\n        window.addEventListener('resize', schedule);\n        window.addEventListener('scroll', schedule, { capture: true, passive: true });\n      }\n      schedule();\n    };\n    registry.update = schedule;\n    start();\n    query.addEventListener('change', start);\n    return () => {\n      stop();\n      query.removeEventListener('change', start);\n      registry.update = () => {};\n    };\n  }, [animation, disabled, enabled, registry, containerRef]);\n  // Reordering existing registered items can change their geometry without changing size.\n  useEffect(() => {\n    registry.update();\n  });\n  return registry;\n}\n\n/** A DOM-free boundary: composites retain their existing layout and measured roots. */\nexport function SkeletonScope({\n  animation,\n  animated,\n  children,\n  independent = false,\n  containerRef,\n}: {\n  animation?: SkeletonGroupAnimation;\n  animated?: boolean;\n  children?: ReactNode;\n  independent?: boolean;\n  containerRef?: RefObject<HTMLElement>;\n}) {\n  validateSkeletonAnimation(animation, true);\n  if (animated !== undefined && typeof animated !== 'boolean')\n    throw new TypeError('SkeletonGroup animated must be a boolean.');\n  const parent = useContext(MotionContext);\n  const inheritedItem = useContext(ItemContext);\n  const ownsGroup = independent || animation !== undefined || !parent;\n  const mode = animation ?? parent?.animation ?? 'pulse';\n  const disabled = !!parent?.disabled || animated === false || mode === 'none';\n  const registry = useGroupRegistry(mode, disabled, ownsGroup, containerRef);\n  const value = useMemo(\n    () => ({ animation: mode, disabled, registry: ownsGroup ? registry : parent!.registry }),\n    [mode, disabled, ownsGroup, registry, parent],\n  );\n  const content = <MotionContext.Provider value={value}>{children}</MotionContext.Provider>;\n  return (\n    <ItemContext.Provider value={ownsGroup ? undefined : inheritedItem}>\n      {content}\n    </ItemContext.Provider>\n  );\n}\n\nexport function SkeletonItem({ index, children }: { index: number; children?: ReactNode }) {\n  const parent = useContext(ItemContext);\n  return <ItemContext.Provider value={parent ?? index}>{children}</ItemContext.Provider>;\n}\n\n/** Preserve callback-ref cleanup (React 19) as well as the React 18 null callback. */\nexport function useSkeletonRef<T>(receive: (element: T | null) => void, forwardedRef?: Ref<T>) {\n  return useMemo(() => {\n    let cleanup: (() => void) | undefined;\n    return (element: T | null) => {\n      receive(element);\n      if (typeof forwardedRef === 'function') {\n        if (cleanup) {\n          cleanup();\n          cleanup = undefined;\n        } else if (element === null) {\n          forwardedRef(null);\n          return;\n        }\n        if (element !== null) {\n          const result = forwardedRef(element) as unknown;\n          if (typeof result === 'function') cleanup = result as () => void;\n        }\n      } else if (forwardedRef) (forwardedRef as { current: T | null }).current = element;\n    };\n  }, [receive, forwardedRef]);\n}\n\nexport function useSkeletonMotion(\n  animation?: SkeletonAnimation,\n  animated = true,\n  forwardedRef?: Ref<HTMLDivElement>,\n) {\n  validateSkeletonAnimation(animation);\n  const group = useContext(MotionContext);\n  const item = useContext(ItemContext);\n  const mode = !animated || group?.disabled ? 'none' : animation ?? group?.animation ?? 'pulse';\n  const [node, setNode] = useState<HTMLDivElement | null>(null);\n  const ref = useSkeletonRef(setNode, forwardedRef);\n  const registry =\n    animation === undefined && (mode === 'shimmer-shared' || mode === 'shimmer-stagger')\n      ? group?.registry\n      : undefined;\n  useEffect(() => {\n    if (!node || !registry) return;\n    registry.nodes.set(node, { item });\n    registry.update();\n    return () => {\n      registry.nodes.delete(node);\n      clearGeometry(node);\n      registry.update();\n    };\n  }, [node, registry, item, mode]);\n  return {\n    ref,\n    mode,\n    style:\n      mode === 'shimmer-stagger' && item !== undefined\n        ? ({ '--monkeys-skeleton-delay': `${Math.min(item * 80, 400)}ms` } as CSSProperties)\n        : undefined,\n  };\n}\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\nimport { useSkeletonMotion, type SkeletonAnimation } from '../skeleton/motion';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n  tone?: 'muted' | 'accent';\n  animate?: boolean;\n  animation?: SkeletonAnimation;\n}\nexport const Skeleton = React.forwardRef<HTMLDivElement, SkeletonProps>(function Skeleton(\n  { className, tone = 'muted', animate = true, animation, style, ...props },\n  ref,\n) {\n  const motion = useSkeletonMotion(animation, animate, ref);\n  return (\n    <div\n      {...props}\n      ref={motion.ref}\n      data-skeleton-animation={motion.mode}\n      className={cn(\n        motion.mode === 'pulse' && 'animate-pulse motion-reduce:animate-none',\n        'rounded-md',\n        tone === 'accent' ? 'bg-accent' : 'bg-muted',\n        className,\n      )}\n      style={{ ...motion.style, ...style }}\n    />\n  );\n});\n","import { forwardRef, useCallback, useRef, type HTMLAttributes } from 'react';\n\nimport { SkeletonScope, useSkeletonRef, type SkeletonGroupAnimation } from '../skeleton/motion';\n\nexport interface SkeletonGroupProps extends HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonGroupAnimation;\n  animated?: boolean;\n}\n\nexport const SkeletonGroup = forwardRef<HTMLDivElement, SkeletonGroupProps>(function SkeletonGroup(\n  { animation, animated, children, ...props },\n  ref,\n) {\n  const containerRef = useRef<HTMLDivElement | null>(null);\n  const receive = useCallback((element: HTMLDivElement | null) => {\n    containerRef.current = element;\n  }, []);\n  const mergedRef = useSkeletonRef(receive, ref);\n  return (\n    <SkeletonScope\n      animation={animation}\n      animated={animated}\n      independent\n      containerRef={containerRef}\n    >\n      <div {...props} ref={mergedRef}>\n        {children}\n      </div>\n    </SkeletonScope>\n  );\n});\n\nexport type { SkeletonAnimation, SkeletonGroupAnimation } from '../skeleton/motion';\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport type { SkeletonAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonImageProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonAnimation;\n  /**\n   * 宽度\n   */\n  width?: number | string;\n  /**\n   * 高度\n   */\n  height?: number | string;\n  /**\n   * 宽高比（当只设置宽度时使用）\n   * @default '16/9'\n   */\n  aspectRatio?: string;\n  /**\n   * 圆角\n   * @default 'md'\n   */\n  rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n}\n\nconst roundedMap = {\n  none: 'rounded-none',\n  sm: 'rounded-sm',\n  md: 'rounded-md',\n  lg: 'rounded-lg',\n  full: 'rounded-full',\n};\n\n/**\n * 图片骨架屏组件\n */\nexport function SkeletonImage({\n  className,\n  width,\n  height,\n  aspectRatio = '16/9',\n  rounded = 'md',\n  style,\n  ...props\n}: SkeletonImageProps) {\n  return (\n    <Skeleton\n      className={cn(roundedMap[rounded], className)}\n      style={{\n        width: width,\n        height: height,\n        aspectRatio: !height ? aspectRatio : undefined,\n        ...style,\n      }}\n      {...props}\n    />\n  );\n}\n","import React from \"react\";\n\nimport { SkeletonImage } from \"./skeleton-patterns/SkeletonImage\";\n\nexport interface ImageCardProps extends React.HTMLAttributes<HTMLDivElement> {\n  status: \"loading\" | \"ready\" | \"error\";\n  aspectRatio?: string;\n  loadingLabel?: string;\n  errorContent?: React.ReactNode;\n}\n\n/** Presentation only: fetching, retrying and URL authorization belong to the consumer. */\nexport function ImageCard({\n  status,\n  aspectRatio = \"1\",\n  loadingLabel = \"Loading image\",\n  errorContent = \"Image unavailable\",\n  children,\n  style,\n  ...props\n}: ImageCardProps) {\n  return (\n    <div\n      {...props}\n      aria-busy={status === \"loading\"}\n      style={{\n        position: \"relative\",\n        overflow: \"hidden\",\n        width: \"100%\",\n        aspectRatio,\n        ...style,\n      }}\n    >\n      {status === \"loading\" ? (\n        <SkeletonImage width=\"100%\" height=\"100%\" aria-label={loadingLabel} />\n      ) : status === \"error\" ? (\n        <div\n          role=\"status\"\n          style={{ display: \"grid\", placeItems: \"center\", height: \"100%\" }}\n        >\n          {errorContent}\n        </div>\n      ) : (\n        children\n      )}\n    </div>\n  );\n}\n\nexport interface ImageGalleryProps\n  extends React.HTMLAttributes<HTMLDivElement> {\n  minCardWidth?: number;\n  gap?: number;\n}\n\nexport function ImageGallery({\n  minCardWidth = 180,\n  gap = 12,\n  style,\n  ...props\n}: ImageGalleryProps) {\n  return (\n    <div\n      {...props}\n      style={{\n        display: \"grid\",\n        gridTemplateColumns: `repeat(auto-fit,minmax(min(100%,${minCardWidth}px),1fr))`,\n        gap,\n        ...style,\n      }}\n    />\n  );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport type { SkeletonAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonAvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonAnimation;\n  /**\n   * 头像大小\n   * @default 'md'\n   */\n  size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n  /**\n   * 形状\n   * @default 'circle'\n   */\n  shape?: 'circle' | 'square';\n}\n\nconst sizeMap = {\n  xs: 'size-6',\n  sm: 'size-8',\n  md: 'size-10',\n  lg: 'size-12',\n  xl: 'size-16',\n};\n\n/**\n * 头像骨架屏组件\n */\nexport function SkeletonAvatar({\n  className,\n  size = 'md',\n  shape = 'circle',\n  ...props\n}: SkeletonAvatarProps) {\n  return (\n    <Skeleton\n      className={cn(sizeMap[size], shape === 'circle' ? 'rounded-full' : 'rounded-md', className)}\n      {...props}\n    />\n  );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport type { SkeletonAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonButtonProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonAnimation;\n  /**\n   * 按钮大小\n   * @default 'md'\n   */\n  size?: 'sm' | 'md' | 'lg' | 'icon';\n  /**\n   * 是否圆角\n   * @default false\n   */\n  rounded?: boolean;\n}\n\nconst sizeMap = {\n  sm: 'h-8 w-20',\n  md: 'h-9 w-24',\n  lg: 'h-10 w-28',\n  icon: 'size-9',\n};\n\n/**\n * 按钮骨架屏组件\n */\nexport function SkeletonButton({\n  className,\n  size = 'md',\n  rounded = false,\n  ...props\n}: SkeletonButtonProps) {\n  return (\n    <Skeleton\n      className={cn(sizeMap[size], rounded ? 'rounded-full' : 'rounded-md', className)}\n      {...props}\n    />\n  );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { SkeletonScope, type SkeletonGroupAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonGroupAnimation;\n  /**\n   * 文本行数\n   * @default 1\n   */\n  lines?: number;\n  /**\n   * 最后一行宽度百分比\n   * @default 100\n   */\n  lastLineWidth?: number;\n  /**\n   * 行高\n   * @default 'md'\n   */\n  size?: 'sm' | 'md' | 'lg';\n  /**\n   * 行间距\n   * @default 2\n   */\n  spacing?: number;\n}\n\nconst sizeMap = {\n  sm: 'h-3',\n  md: 'h-4',\n  lg: 'h-5',\n};\n\n/**\n * 文本骨架屏组件\n * 用于文本内容的占位显示\n */\nexport function SkeletonText({\n  className,\n  animation,\n  lines = 1,\n  lastLineWidth = 100,\n  size = 'md',\n  spacing = 2,\n  ...props\n}: SkeletonTextProps) {\n  return (\n    <SkeletonScope animation={animation}>\n      <div className={cn('flex flex-col', `gap-${spacing}`, className)} {...props}>\n        {Array.from({ length: lines }).map((_, index) => (\n          <Skeleton\n            key={index}\n            className={cn(sizeMap[size], 'w-full')}\n            style={{\n              width: index === lines - 1 && lastLineWidth !== 100 ? `${lastLineWidth}%` : undefined,\n            }}\n          />\n        ))}\n      </div>\n    </SkeletonScope>\n  );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { SkeletonScope, type SkeletonGroupAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\nimport { SkeletonText } from './SkeletonText';\n\nexport interface SkeletonCardProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonGroupAnimation;\n  /**\n   * 是否显示图片\n   * @default false\n   */\n  showImage?: boolean;\n  /**\n   * 图片高度\n   * @default 120\n   */\n  imageHeight?: number;\n  /**\n   * 是否显示头像\n   * @default false\n   */\n  showAvatar?: boolean;\n  /**\n   * 标题行数\n   * @default 1\n   */\n  titleLines?: number;\n  /**\n   * 描述行数\n   * @default 2\n   */\n  descriptionLines?: number;\n  /**\n   * 是否显示操作按钮\n   * @default false\n   */\n  showActions?: boolean;\n  /**\n   * 操作按钮数量\n   * @default 2\n   */\n  actionsCount?: number;\n}\n\n/**\n * 卡片骨架屏组件\n */\nexport function SkeletonCard({\n  className,\n  animation,\n  showImage = false,\n  imageHeight = 120,\n  showAvatar = false,\n  titleLines = 1,\n  descriptionLines = 2,\n  showActions = false,\n  actionsCount = 2,\n  ...props\n}: SkeletonCardProps) {\n  return (\n    <SkeletonScope animation={animation}>\n      <div className={cn('rounded-lg border bg-card p-4', className)} {...props}>\n        {/* 图片区域 */}\n        {showImage && (\n          <Skeleton className=\"mb-4 w-full rounded-md\" style={{ height: imageHeight }} />\n        )}\n\n        {/* 头部：头像 + 标题 */}\n        <div className=\"flex items-start gap-3\">\n          {showAvatar && <Skeleton className=\"size-10 shrink-0 rounded-full\" />}\n          <div className=\"flex-1 space-y-2\">\n            <SkeletonText lines={titleLines} size=\"md\" lastLineWidth={titleLines > 1 ? 60 : 80} />\n          </div>\n        </div>\n\n        {/* 描述区域 */}\n        {descriptionLines > 0 && (\n          <div className=\"mt-3\">\n            <SkeletonText lines={descriptionLines} size=\"sm\" lastLineWidth={70} />\n          </div>\n        )}\n\n        {/* 操作按钮区域 */}\n        {showActions && (\n          <div className=\"mt-4 flex gap-2\">\n            {Array.from({ length: actionsCount }).map((_, index) => (\n              <Skeleton key={index} className=\"h-8 w-20 rounded-md\" />\n            ))}\n          </div>\n        )}\n      </div>\n    </SkeletonScope>\n  );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { SkeletonScope, SkeletonItem, type SkeletonGroupAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonFormFieldProps {\n  animation?: SkeletonGroupAnimation;\n  /**\n   * 标签宽度\n   * @default 80\n   */\n  labelWidth?: number | string;\n  /**\n   * 输入框类型\n   * @default 'input'\n   */\n  type?: 'input' | 'textarea' | 'select' | 'checkbox' | 'radio';\n  /**\n   * 文本域行数（仅 textarea 生效）\n   * @default 3\n   */\n  textareaRows?: number;\n}\n\nexport interface SkeletonFormProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonGroupAnimation;\n  /**\n   * 表单字段数量\n   * @default 4\n   */\n  fields?: number;\n  /**\n   * 字段配置\n   */\n  fieldConfigs?: SkeletonFormFieldProps[];\n  /**\n   * 布局方式\n   * @default 'vertical'\n   */\n  layout?: 'vertical' | 'horizontal';\n  /**\n   * 标签宽度（水平布局时生效）\n   * @default 100\n   */\n  labelWidth?: number;\n  /**\n   * 是否显示提交按钮\n   * @default true\n   */\n  showSubmitButton?: boolean;\n  /**\n   * 字段间距\n   * @default 4\n   */\n  spacing?: number;\n}\n\n/**\n * 表单字段骨架屏\n */\nfunction SkeletonFormField({\n  animation,\n  labelWidth = 80,\n  type = 'input',\n  textareaRows = 3,\n  layout = 'vertical',\n}: SkeletonFormFieldProps & { layout?: 'vertical' | 'horizontal' }) {\n  const renderInput = () => {\n    switch (type) {\n      case 'textarea':\n        return (\n          <Skeleton className=\"w-full rounded-md\" style={{ height: textareaRows * 24 + 16 }} />\n        );\n      case 'select':\n        return <Skeleton className=\"h-9 w-full rounded-md\" />;\n      case 'checkbox':\n      case 'radio':\n        return (\n          <div className=\"flex items-center gap-2\">\n            <Skeleton className=\"size-4 rounded\" />\n            <Skeleton className=\"h-4 w-24 rounded\" />\n          </div>\n        );\n      default:\n        return <Skeleton className=\"h-9 w-full rounded-md\" />;\n    }\n  };\n\n  if (layout === 'horizontal') {\n    return (\n      <SkeletonScope animation={animation}>\n        <div className=\"flex items-start gap-4\">\n          <Skeleton className=\"h-4 shrink-0 rounded\" style={{ width: labelWidth }} />\n          <div className=\"flex-1\">{renderInput()}</div>\n        </div>\n      </SkeletonScope>\n    );\n  }\n\n  return (\n    <SkeletonScope animation={animation}>\n      <div className=\"space-y-2\">\n        <Skeleton className=\"h-4 rounded\" style={{ width: labelWidth }} />\n        {renderInput()}\n      </div>\n    </SkeletonScope>\n  );\n}\n\n/**\n * 表单骨架屏组件\n */\nexport function SkeletonForm({\n  className,\n  animation,\n  fields = 4,\n  fieldConfigs,\n  layout = 'vertical',\n  labelWidth = 100,\n  showSubmitButton = true,\n  spacing = 4,\n  ...props\n}: SkeletonFormProps) {\n  return (\n    <SkeletonScope animation={animation}>\n      <div className={cn(`space-y-${spacing}`, className)} {...props}>\n        {Array.from({ length: fields }).map((_, index) => {\n          const config = fieldConfigs?.[index] || {};\n          return (\n            <SkeletonItem key={index} index={index}>\n              <SkeletonFormField\n                animation={config.animation}\n                layout={layout}\n                labelWidth={config.labelWidth ?? labelWidth}\n                type={config.type}\n                textareaRows={config.textareaRows}\n              />\n            </SkeletonItem>\n          );\n        })}\n\n        {showSubmitButton && (\n          <SkeletonItem index={fields}>\n            <div className={cn('pt-2', layout === 'horizontal' && `pl-[${labelWidth + 16}px]`)}>\n              <Skeleton className=\"h-9 w-24 rounded-md\" />\n            </div>\n          </SkeletonItem>\n        )}\n      </div>\n    </SkeletonScope>\n  );\n}\n\nexport { SkeletonFormField };\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { SkeletonScope, SkeletonItem, type SkeletonGroupAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\nimport { SkeletonText } from './SkeletonText';\n\nexport interface SkeletonListProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonGroupAnimation;\n  /**\n   * 列表项数量\n   * @default 5\n   */\n  count?: number;\n  /**\n   * 是否显示头像/图标\n   * @default false\n   */\n  showAvatar?: boolean;\n  /**\n   * 头像形状\n   * @default 'circle'\n   */\n  avatarShape?: 'circle' | 'square';\n  /**\n   * 是否显示副标题\n   * @default false\n   */\n  showSubtitle?: boolean;\n  /**\n   * 是否显示右侧操作\n   * @default false\n   */\n  showAction?: boolean;\n  /**\n   * 列表项间距\n   * @default 'md'\n   */\n  spacing?: 'sm' | 'md' | 'lg';\n  /**\n   * 是否显示分割线\n   * @default false\n   */\n  showDivider?: boolean;\n}\n\nconst spacingMap = {\n  sm: 'py-2',\n  md: 'py-3',\n  lg: 'py-4',\n};\n\n/**\n * 列表骨架屏组件\n */\nexport function SkeletonList({\n  className,\n  animation,\n  count = 5,\n  showAvatar = false,\n  avatarShape = 'circle',\n  showSubtitle = false,\n  showAction = false,\n  spacing = 'md',\n  showDivider = false,\n  ...props\n}: SkeletonListProps) {\n  return (\n    <SkeletonScope animation={animation}>\n      <div className={cn('w-full', className)} {...props}>\n        {Array.from({ length: count }).map((_, index) => (\n          <SkeletonItem key={index} index={index}>\n            <div\n              className={cn(\n                'flex items-center gap-3',\n                spacingMap[spacing],\n                showDivider && index !== count - 1 && 'border-b',\n              )}\n            >\n              {/* 头像/图标 */}\n              {showAvatar && (\n                <Skeleton\n                  className={cn(\n                    'size-10 shrink-0',\n                    avatarShape === 'circle' ? 'rounded-full' : 'rounded-md',\n                  )}\n                />\n              )}\n\n              {/* 内容区域 */}\n              <div className=\"min-w-0 flex-1\">\n                <SkeletonText lines={1} size=\"md\" lastLineWidth={50 + Math.random() * 30} />\n                {showSubtitle && (\n                  <div className=\"mt-1\">\n                    <SkeletonText lines={1} size=\"sm\" lastLineWidth={30 + Math.random() * 40} />\n                  </div>\n                )}\n              </div>\n\n              {/* 右侧操作 */}\n              {showAction && <Skeleton className=\"h-8 w-16 shrink-0 rounded-md\" />}\n            </div>\n          </SkeletonItem>\n        ))}\n      </div>\n    </SkeletonScope>\n  );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { SkeletonScope, SkeletonItem, type SkeletonGroupAnimation } from '../../skeleton/motion';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonTableProps extends React.HTMLAttributes<HTMLDivElement> {\n  animation?: SkeletonGroupAnimation;\n  /**\n   * 列数\n   * @default 4\n   */\n  columns?: number;\n  /**\n   * 行数\n   * @default 5\n   */\n  rows?: number;\n  /**\n   * 是否显示表头\n   * @default true\n   */\n  showHeader?: boolean;\n  /**\n   * 是否显示复选框列\n   * @default false\n   */\n  showCheckbox?: boolean;\n  /**\n   * 列宽度配置（百分比数组）\n   */\n  columnWidths?: number[];\n}\n\n/**\n * 表格骨架屏组件\n */\nexport function SkeletonTable({\n  className,\n  animation,\n  columns = 4,\n  rows = 5,\n  showHeader = true,\n  showCheckbox = false,\n  columnWidths,\n  ...props\n}: SkeletonTableProps) {\n  const actualColumns = showCheckbox ? columns + 1 : columns;\n  const defaultWidth = 100 / actualColumns;\n\n  const getColumnWidth = (index: number) => {\n    if (showCheckbox && index === 0) return '40px';\n    const colIndex = showCheckbox ? index - 1 : index;\n    if (columnWidths && columnWidths[colIndex]) {\n      return `${columnWidths[colIndex]}%`;\n    }\n    return `${defaultWidth}%`;\n  };\n\n  return (\n    <SkeletonScope animation={animation}>\n      <div className={cn('w-full overflow-hidden rounded-md border', className)} {...props}>\n        {/* 表头 */}\n        {showHeader && (\n          <SkeletonItem index={0}>\n            <div className=\"flex border-b bg-muted/50 px-4 py-3\">\n              {Array.from({ length: actualColumns }).map((_, index) => (\n                <div key={index} className=\"px-2\" style={{ width: getColumnWidth(index) }}>\n                  {showCheckbox && index === 0 ? (\n                    <Skeleton className=\"size-4 rounded\" />\n                  ) : (\n                    <Skeleton className=\"h-4 w-3/4 rounded\" />\n                  )}\n                </div>\n              ))}\n            </div>\n          </SkeletonItem>\n        )}\n\n        {/* 表体 */}\n        {Array.from({ length: rows }).map((_, rowIndex) => (\n          <SkeletonItem key={rowIndex} index={rowIndex + (showHeader ? 1 : 0)}>\n            <div className={cn('flex px-4 py-3', rowIndex !== rows - 1 && 'border-b')}>\n              {Array.from({ length: actualColumns }).map((_, colIndex) => (\n                <div key={colIndex} className=\"px-2\" style={{ width: getColumnWidth(colIndex) }}>\n                  {showCheckbox && colIndex === 0 ? (\n                    <Skeleton className=\"size-4 rounded\" />\n                  ) : (\n                    <Skeleton\n                      className=\"h-4 rounded\"\n                      style={{ width: `${60 + Math.random() * 30}%` }}\n                    />\n                  )}\n                </div>\n              ))}\n            </div>\n          </SkeletonItem>\n        ))}\n      </div>\n    </SkeletonScope>\n  );\n}\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport interface TableProps extends React.HTMLAttributes<HTMLTableElement> {\n  container?: boolean;\n  containerClassName?: string;\n  containerProps?: React.HTMLAttributes<HTMLDivElement>;\n  density?: 'compact' | 'comfortable';\n}\nexport const Table = React.forwardRef<HTMLTableElement, TableProps>(({ className, container = true, containerClassName, containerProps, density = 'compact', ...props }, ref) => {\n  const table = <table ref={ref} data-density={density} className={cn('w-full caption-bottom text-sm', className)} {...props} />;\n  if (!container) return table;\n  const { className: nestedClassName, ...rest } = containerProps ?? {};\n  return <div className={cn('relative w-full overflow-auto', containerClassName, nestedClassName)} {...rest}>{table}</div>;\n});\nTable.displayName = 'Table';\nexport const TableHeader = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => <thead ref={ref} className={cn('[&_tr]:border-b', className)} {...props} />);\nTableHeader.displayName = 'TableHeader';\nexport const TableBody = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => <tbody ref={ref} className={cn('[&_tr:last-child]:border-0', className)} {...props} />);\nTableBody.displayName = 'TableBody';\nexport const TableFooter = React.forwardRef<HTMLTableSectionElement, React.HTMLAttributes<HTMLTableSectionElement>>(({ className, ...props }, ref) => <tfoot ref={ref} className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)} {...props} />);\nTableFooter.displayName = 'TableFooter';\nexport const TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(({ className, ...props }, ref) => <tr ref={ref} className={cn('border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted', className)} {...props} />);\nTableRow.displayName = 'TableRow';\nexport const TableHead = React.forwardRef<HTMLTableCellElement, React.ThHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => <th ref={ref} className={cn('h-10 px-2 text-left align-middle font-medium text-muted-foreground [[data-density=comfortable]_&]:h-12 [[data-density=comfortable]_&]:px-4 [&:has([role=checkbox])]:pr-0', className)} {...props} />);\nTableHead.displayName = 'TableHead';\nexport const TableCell = React.forwardRef<HTMLTableCellElement, React.TdHTMLAttributes<HTMLTableCellElement>>(({ className, ...props }, ref) => <td ref={ref} className={cn('p-2 align-middle [[data-density=comfortable]_&]:p-4 [&:has([role=checkbox])]:pr-0', className)} {...props} />);\nTableCell.displayName = 'TableCell';\nexport const TableCaption = React.forwardRef<HTMLTableCaptionElement, React.HTMLAttributes<HTMLTableCaptionElement>>(({ className, ...props }, ref) => <caption ref={ref} className={cn('mt-4 text-sm text-muted-foreground', className)} {...props} />);\nTableCaption.displayName = 'TableCaption';\n","import * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport type ToggleVariant = 'default' | 'outline';\nexport type ToggleSize = 'default' | 'sm' | 'lg';\n\nexport const toggleClassName = (input: {\n  variant?: ToggleVariant;\n  size?: ToggleSize;\n  className?: string;\n} = {}) => cn(\n  'inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n  input.variant === 'outline'\n    ? 'border border-input bg-transparent shadow-sm hover:bg-accent hover:text-accent-foreground'\n    : 'bg-transparent',\n  input.size === 'sm' ? 'h-8 min-w-8 px-1.5' : input.size === 'lg' ? 'h-10 min-w-10 px-2.5' : 'h-9 min-w-9 px-2',\n  input.className,\n);\n\nexport const toggleVariants = toggleClassName;\n\nexport interface ToggleProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'onChange'> {\n  pressed?: boolean;\n  defaultPressed?: boolean;\n  onPressedChange?: (pressed: boolean) => void;\n  variant?: ToggleVariant;\n  size?: ToggleSize;\n}\n\nexport const Toggle = React.forwardRef<HTMLButtonElement, ToggleProps>(({\n  pressed,\n  defaultPressed = false,\n  onPressedChange,\n  variant = 'default',\n  size = 'default',\n  className,\n  disabled,\n  onClick,\n  type = 'button',\n  ...props\n}, ref) => {\n  const [uncontrolledPressed, setUncontrolledPressed] = React.useState(defaultPressed);\n  const resolvedPressed = pressed ?? uncontrolledPressed;\n  return (\n    <button\n      ref={ref}\n      type={type}\n      aria-pressed={resolvedPressed}\n      data-state={resolvedPressed ? 'on' : 'off'}\n      disabled={disabled}\n      className={toggleClassName({ variant, size, className })}\n      onClick={(event) => {\n        onClick?.(event);\n        if (event.defaultPrevented || disabled) return;\n        const next = !resolvedPressed;\n        if (pressed === undefined) setUncontrolledPressed(next);\n        onPressedChange?.(next);\n      }}\n      {...props}\n    />\n  );\n});\nToggle.displayName = 'Toggle';\n","import * as React from 'react';\n\nimport * as ToggleGroupPrimitive from '@radix-ui/react-toggle-group';\nimport { VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../base/utils';\nimport { toggleVariants } from './Toggle';\n\nconst ToggleGroupContext = React.createContext<VariantProps<typeof toggleVariants>>({\n  size: 'default',\n  variant: 'default',\n});\n\nconst ToggleGroup = React.forwardRef<\n  React.ElementRef<typeof ToggleGroupPrimitive.Root>,\n  React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> & VariantProps<typeof toggleVariants>\n>(({ className, variant, size, children, ...props }, ref) => (\n  <ToggleGroupPrimitive.Root ref={ref} className={cn('flex items-center justify-center gap-1', className)} {...props}>\n    <ToggleGroupContext.Provider value={{ variant, size }}>{children}</ToggleGroupContext.Provider>\n  </ToggleGroupPrimitive.Root>\n));\n\nToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;\n\nconst ToggleGroupItem = React.forwardRef<\n  React.ElementRef<typeof ToggleGroupPrimitive.Item>,\n  React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Item> & VariantProps<typeof toggleVariants>\n>(({ className, children, variant, size, ...props }, ref) => {\n  const context = React.useContext(ToggleGroupContext);\n\n  return (\n    <ToggleGroupPrimitive.Item\n      ref={ref}\n      className={cn(\n        toggleVariants({\n          variant: context.variant || variant,\n          size: context.size || size,\n        }),\n        className,\n      )}\n      {...props}\n    >\n      {children}\n    </ToggleGroupPrimitive.Item>\n  );\n});\n\nToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;\n\nexport { ToggleGroup, ToggleGroupItem };\n","import React, { forwardRef, useCallback, useMemo, useState } from 'react';\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { ChevronDownIcon, type LucideIcon } from 'lucide-react';\n\nimport { AccordionContent, AccordionTrigger, ScrollArea } from './InteractiveControls';\nimport { cn } from '../base/utils';\n\ninterface TreeDataItem<T = unknown> {\n  id: string;\n  label: string;\n  value?: T;\n  icon?: LucideIcon;\n  children?: TreeDataItem[];\n}\n\ntype TreeProps<R = unknown> = React.HTMLAttributes<HTMLDivElement> & {\n  data: TreeDataItem<R>[] | TreeDataItem<R>;\n  initialSelectedItemId?: string;\n  onSelectChange?: (item: R | TreeDataItem | undefined) => void;\n  expandAll?: boolean;\n  folderIcon?: LucideIcon;\n  itemIcon?: LucideIcon;\n  labelRenderer?: (item: any, onExpand: () => void) => React.ReactNode;\n  leafRenderer?: (item: any) => React.ReactNode;\n};\n\nconst Tree = forwardRef<HTMLDivElement, TreeProps>(\n  ({ data, initialSelectedItemId, onSelectChange, expandAll, folderIcon, itemIcon, className, ...props }, ref) => {\n    const [selectedItemId, setSelectedItemId] = useState<string | undefined>(initialSelectedItemId);\n\n    const handleSelectChange = useCallback(\n      (item: TreeDataItem | undefined) => {\n        setSelectedItemId(item?.id);\n        onSelectChange?.(item?.value ?? item);\n      },\n      [onSelectChange],\n    );\n\n    const expandedItemIds = useMemo(() => {\n      const ids: string[] = [];\n\n      function walkTreeItems(items: TreeDataItem[] | TreeDataItem, targetId?: string) {\n        if (items instanceof Array) {\n          for (let i = 0; i < items.length; i++) {\n            ids.push(items[i]!.id);\n            if (walkTreeItems(items[i]!, targetId) && !expandAll) {\n              return true;\n            }\n            if (!expandAll) ids.pop();\n          }\n        } else if (!expandAll && items.id === targetId) {\n          return true;\n        } else if (items.children) {\n          return walkTreeItems(items.children, targetId);\n        }\n      }\n\n      walkTreeItems(data, initialSelectedItemId);\n      return ids;\n    }, [data, initialSelectedItemId]);\n\n    return (\n      <ScrollArea className={cn('overflow-hidden', className)}>\n        <div className=\"relative p-2\">\n          <TreeItem\n            data={data}\n            ref={ref}\n            selectedItemId={selectedItemId}\n            handleSelectChange={handleSelectChange}\n            expandedItemIds={expandedItemIds}\n            FolderIcon={folderIcon}\n            ItemIcon={itemIcon}\n            {...props}\n          />\n        </div>\n      </ScrollArea>\n    );\n  },\n);\n\nTree.displayName = 'Tree';\n\ntype TreeItemProps = TreeProps & {\n  selectedItemId?: string;\n  handleSelectChange: (item: TreeDataItem | undefined) => void;\n  expandedItemIds: string[];\n  FolderIcon?: LucideIcon;\n  ItemIcon?: LucideIcon;\n};\n\nconst TreeItem = forwardRef<HTMLDivElement, TreeItemProps>(\n  (\n    {\n      className,\n      data,\n      selectedItemId,\n      handleSelectChange,\n      expandedItemIds,\n      FolderIcon,\n      ItemIcon,\n      labelRenderer,\n      leafRenderer,\n      ...props\n    },\n    ref,\n  ) => {\n    return (\n      <div ref={ref} role=\"tree\" className={className} {...props}>\n        <ul className=\"flex flex-col gap-1\">\n          {data instanceof Array ? (\n            data.map((item, i) => (\n              <li key={item.id + i}>\n                {item.children?.length ? (\n                  <AccordionPrimitive.Root type=\"multiple\" defaultValue={expandedItemIds}>\n                    <AccordionPrimitive.Item value={item.id}>\n                      <AccordionTrigger\n                        className={cn(\n                          'flex items-center rounded-md border border-transparent bg-background p-2 transition-colors hover:border-input hover:bg-accent hover:text-accent-foreground [&[data-state=open]>svg]:rotate-180',\n                          selectedItemId === item.id &&\n                            'border-input shadow-sm hover:bg-accent hover:text-accent-foreground',\n                          labelRenderer && 'p-0 pr-2',\n                        )}\n                        onClick={() => !labelRenderer && handleSelectChange(item)}\n                      >\n                        {item.icon && (\n                          <item.icon className=\"mr-2 h-4 w-4 shrink-0 text-accent-foreground/50\" aria-hidden=\"true\" />\n                        )}\n                        {!item.icon && FolderIcon && (\n                          <FolderIcon className=\"mr-2 h-4 w-4 shrink-0 text-accent-foreground/50\" aria-hidden=\"true\" />\n                        )}\n                        {labelRenderer ? (\n                          labelRenderer(item, () => handleSelectChange(item))\n                        ) : (\n                          <span className=\"truncate text-sm\">{item.label}</span>\n                        )}\n                        <ChevronDownIcon className=\"h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200\" />\n                      </AccordionTrigger>\n                      <AccordionContent className=\"mt-1 pl-6\">\n                        <TreeItem\n                          data={item.children ? item.children : item}\n                          selectedItemId={selectedItemId}\n                          handleSelectChange={handleSelectChange}\n                          expandedItemIds={expandedItemIds}\n                          FolderIcon={FolderIcon}\n                          ItemIcon={ItemIcon}\n                          labelRenderer={labelRenderer}\n                          leafRenderer={leafRenderer}\n                        />\n                      </AccordionContent>\n                    </AccordionPrimitive.Item>\n                  </AccordionPrimitive.Root>\n                ) : (\n                  <Leaf\n                    item={item}\n                    isSelected={selectedItemId === item.id}\n                    onClick={() => handleSelectChange(item)}\n                    Icon={ItemIcon}\n                  >\n                    {leafRenderer?.(item)}\n                  </Leaf>\n                )}\n              </li>\n            ))\n          ) : (\n            <li>\n              <Leaf\n                item={data}\n                isSelected={selectedItemId === data.id}\n                onClick={() => handleSelectChange(data)}\n                Icon={ItemIcon}\n              >\n                {leafRenderer?.(data)}\n              </Leaf>\n            </li>\n          )}\n        </ul>\n      </div>\n    );\n  },\n);\n\nTreeItem.displayName = 'TreeItem';\n\nconst Leaf = forwardRef<\n  HTMLDivElement,\n  React.HTMLAttributes<HTMLDivElement> & {\n    item: TreeDataItem;\n    isSelected?: boolean;\n    Icon?: LucideIcon;\n  }\n>(({ className, item, isSelected, Icon, children, ...props }, ref) => {\n  return (\n    <div\n      ref={ref}\n      className={cn(\n        'flex cursor-pointer items-center rounded-md border border-transparent bg-background p-2 transition-colors hover:border-input hover:bg-accent hover:text-accent-foreground',\n        className,\n        Boolean(children) && 'p-0',\n        isSelected && 'border-input shadow-sm',\n      )}\n      {...props}\n    >\n      {item.icon && <item.icon className=\"mr-2 h-4 w-4 shrink-0 text-accent-foreground/50\" aria-hidden=\"true\" />}\n      {!item.icon && Icon && <Icon className=\"mr-2 h-4 w-4 shrink-0 text-accent-foreground/50\" aria-hidden=\"true\" />}\n      {children ? children : <span className=\"truncate text-sm\">{item.label}</span>}\n    </div>\n  );\n});\n\nLeaf.displayName = 'Leaf';\n\nexport { Tree, type TreeDataItem, type TreeProps };\n"]}