@inf-monkeys-tech/monkeys-design 1.0.49 → 1.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/agent-workbench/index.js +492 -192
- package/dist/components/agent-workbench/index.js.map +1 -1
- package/dist/components/agent-workbench/index.mjs +452 -152
- package/dist/components/agent-workbench/index.mjs.map +1 -1
- package/dist/components/primitives/index.d.mts +2 -2
- package/dist/components/primitives/index.d.ts +2 -2
- package/dist/components/primitives/index.js +183 -183
- package/dist/components/primitives/index.js.map +1 -1
- package/dist/components/primitives/index.mjs +171 -171
- package/dist/components/primitives/index.mjs.map +1 -1
- package/dist/index.js +714 -538
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +292 -116
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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/primitives/Calendar.tsx","../../../src/components/primitives/Card.tsx","../../../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/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/primitives/Skeleton.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/SkeletonImage.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":["twMerge","React","jsx","AvatarPrimitive","React2","useImperativeHandle","cva","React3","React4","React5","SeparatorPrimitive","Slot","DayPicker","ChevronLeft","ChevronRight","React6","AccordionPrimitive","React7","jsxs","ChevronDown","CheckboxPrimitive","Check","PopoverPrimitive","ScrollAreaPrimitive","SwitchPrimitive","TabsPrimitive","TooltipPrimitive","React8","useEmblaCarousel","ArrowLeft","ArrowRight","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","React9","React10","useFloating","floatingOffset","flip","shift","autoUpdate","useClick","useDismiss","useRole","useInteractions","FloatingFocusManager","FloatingPortal","useRef","useCallback","useEffect","Fragment","Indicator","forwardRef","HoverCardPrimitive","React12","React13","OTPInput","OTPInputContext","Dot","DropdownMenuPrimitive","React14","Circle","SelectPrimitive","ChevronUp","React15","DialogPrimitive","React16","X","AlertDialogPrimitive","React17","React18","ProgressPrimitive","ResizablePrimitive","GripVertical","React19","Label","React20","LabelPrimitive","DialogPrimitive2","React21","React22","SliderPrimitive","React23","sizeMap","_","React24","React25","React26","ToggleGroupPrimitive","useState","useMemo","AccordionPrimitive2","ChevronDownIcon","Icon"],"mappings":"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","file":"index.js","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 * 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 * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\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 { cn } from \"../base/utils\";\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 [&_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 const Popover = PopoverPrimitive.Root;\nexport const PopoverTrigger = PopoverPrimitive.Trigger;\nexport const PopoverAnchor = PopoverPrimitive.Anchor;\nexport const PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-lg border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = \"PopoverContent\";\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 <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\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 { cn } from '../base/utils';\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 if (!context.open) return null;\n const content = (\n <FloatingFocusManager context={context.context} modal={false} returnFocus={false}>\n <div\n {...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 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n className,\n ),\n style: { ...context.floatingStyles, ...style },\n tabIndex: -1,\n ...props,\n })}\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 { cn } from '../base/utils';\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 <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 origin-[--radix-hover-card-content-transform-origin] rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n));\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport { HoverCard, 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\nfunction InputGroupInput({ className, ...props }: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent',\n className,\n )}\n {...props}\n />\n );\n}\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 { cn } from '../base/utils';\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 rounded-md border bg-menu-surface p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2';\n\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) => <DropdownMenuPrimitive.SubContent ref={ref} className={cn(menuContentClassName, className)} {...props} />,\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) => <DropdownMenuPrimitive.Portal><DropdownMenuPrimitive.Content ref={ref} sideOffset={sideOffset} className={cn(menuContentClassName, className)} {...props} /></DropdownMenuPrimitive.Portal>,\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 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 <SelectPrimitive.Portal><SelectPrimitive.Content ref={ref} position={position} 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)} {...props}>\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);\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 { cn } from '../base/utils';\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 <DialogPrimitive.Overlay\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-overlay\n {...props}\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\nexport const DialogContent = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, DialogContentProps>(\n ({ className, children, showCloseButton = true, closeLabel = 'Close', overlayClassName, overlayStyle, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay className={overlayClassName} style={overlayStyle} />\n <DialogPrimitive.Content\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 rounded-lg border bg-dialog-surface p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', className)}\n data-monkeys-dialog-content\n {...props}\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 </DialogPrimitive.Content>\n </DialogPortal>\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 <AlertDialogPrimitive.Overlay 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-overlay style={{ pointerEvents: 'auto', ...style }} {...props} />\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 <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content 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 rounded-lg border bg-dialog-surface p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', className)} data-monkeys-dialog-content style={{ pointerEvents: 'auto', ...style }} {...props} />\n </AlertDialogPortal>\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 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 { cn } from '../base/utils';\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 <DialogPrimitive.Overlay\n ref={ref}\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 {...props}\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 <SheetPortal>\n <SheetOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg 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 sideClassNames[side],\n className,\n )}\n {...props}\n >\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background 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));\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 * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n tone?: 'muted' | 'accent';\n animate?: boolean;\n}\nexport const Skeleton = ({ className, tone = 'muted', animate = true, style, ...props }: SkeletonProps) => (\n <div className={cn(animate && 'animate-pulse', 'rounded-md', tone === 'accent' ? 'bg-accent' : 'bg-muted', className)} style={style} {...props} />\n);\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonAvatarProps extends React.HTMLAttributes<HTMLDivElement> {\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({ className, size = 'md', shape = 'circle', ...props }: SkeletonAvatarProps) {\n return (\n <Skeleton className={cn(sizeMap[size], shape === 'circle' ? 'rounded-full' : 'rounded-md', className)} {...props} />\n );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonButtonProps extends React.HTMLAttributes<HTMLDivElement> {\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({ className, size = 'md', rounded = false, ...props }: SkeletonButtonProps) {\n return <Skeleton className={cn(sizeMap[size], rounded ? 'rounded-full' : 'rounded-md', className)} {...props} />;\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\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 lines = 1,\n lastLineWidth = 100,\n size = 'md',\n spacing = 2,\n ...props\n}: SkeletonTextProps) {\n return (\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 );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\nimport { SkeletonText } from './SkeletonText';\n\nexport interface SkeletonCardProps extends React.HTMLAttributes<HTMLDivElement> {\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 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 <div className={cn('rounded-lg border bg-card p-4', className)} {...props}>\n {/* 图片区域 */}\n {showImage && <Skeleton className=\"mb-4 w-full rounded-md\" style={{ height: imageHeight }} />}\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 );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonFormFieldProps {\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 /**\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 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 <Skeleton className=\"w-full rounded-md\" style={{ height: textareaRows * 24 + 16 }} />;\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 <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 );\n }\n\n return (\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 rounded\" style={{ width: labelWidth }} />\n {renderInput()}\n </div>\n );\n}\n\n/**\n * 表单骨架屏组件\n */\nexport function SkeletonForm({\n className,\n fields = 4,\n fieldConfigs,\n layout = 'vertical',\n labelWidth = 100,\n showSubmitButton = true,\n spacing = 4,\n ...props\n}: SkeletonFormProps) {\n return (\n <div className={cn(`space-y-${spacing}`, className)} {...props}>\n {Array.from({ length: fields }).map((_, index) => {\n const config = fieldConfigs?.[index] || {};\n return (\n <SkeletonFormField\n key={index}\n layout={layout}\n labelWidth={config.labelWidth ?? labelWidth}\n type={config.type}\n textareaRows={config.textareaRows}\n />\n );\n })}\n\n {showSubmitButton && (\n <div className={cn('pt-2', layout === 'horizontal' && `pl-[${labelWidth + 16}px]`)}>\n <Skeleton className=\"h-9 w-24 rounded-md\" />\n </div>\n )}\n </div>\n );\n}\n\nexport { SkeletonFormField };\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonImageProps extends React.HTMLAttributes<HTMLDivElement> {\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 { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\nimport { SkeletonText } from './SkeletonText';\n\nexport interface SkeletonListProps extends React.HTMLAttributes<HTMLDivElement> {\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 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 <div className={cn('w-full', className)} {...props}>\n {Array.from({ length: count }).map((_, index) => (\n <div\n key={index}\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 className={cn('size-10 shrink-0', avatarShape === 'circle' ? 'rounded-full' : 'rounded-md')} />\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 ))}\n </div>\n );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonTableProps extends React.HTMLAttributes<HTMLDivElement> {\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 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 <div className={cn('w-full overflow-hidden rounded-md border', className)} {...props}>\n {/* 表头 */}\n {showHeader && (\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 )}\n\n {/* 表体 */}\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <div key={rowIndex} 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 className=\"h-4 rounded\" style={{ width: `${60 + Math.random() * 30}%` }} />\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\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"]}
|
|
1
|
+
{"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/primitives/Calendar.tsx","../../../src/components/primitives/Card.tsx","../../../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/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/primitives/Skeleton.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/SkeletonImage.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":["twMerge","React","jsx","AvatarPrimitive","React2","useImperativeHandle","cva","React3","React4","React5","SeparatorPrimitive","Slot","DayPicker","ChevronLeft","ChevronRight","React6","AccordionPrimitive","React7","jsxs","ChevronDown","CheckboxPrimitive","Check","PopoverPrimitive","ScrollAreaPrimitive","SwitchPrimitive","TabsPrimitive","TooltipPrimitive","React8","useEmblaCarousel","ArrowLeft","ArrowRight","CollapsiblePrimitive","CollapsibleTrigger","CollapsibleContent","React9","React10","useFloating","floatingOffset","flip","shift","autoUpdate","useClick","useDismiss","useRole","useInteractions","FloatingFocusManager","FloatingPortal","useRef","useCallback","useEffect","Fragment","Indicator","forwardRef","HoverCardPrimitive","React12","React13","OTPInput","OTPInputContext","Dot","React14","DropdownMenuPrimitive","React15","Circle","SelectPrimitive","ChevronUp","React16","DialogPrimitive","React17","X","AlertDialogPrimitive","React18","React19","ProgressPrimitive","ResizablePrimitive","GripVertical","React20","Label","React21","LabelPrimitive","DialogPrimitive2","React22","React23","SliderPrimitive","React24","sizeMap","_","React25","React26","React27","ToggleGroupPrimitive","useState","useMemo","AccordionPrimitive2","ChevronDownIcon","Icon"],"mappings":"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","file":"index.js","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 * 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 * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\";\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\";\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 { cn } from \"../base/utils\";\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 [&_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 const Popover = PopoverPrimitive.Root;\nexport const PopoverTrigger = PopoverPrimitive.Trigger;\nexport const PopoverAnchor = PopoverPrimitive.Anchor;\nexport const PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-lg border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n));\nPopoverContent.displayName = \"PopoverContent\";\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 <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className,\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\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 { cn } from '../base/utils';\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 if (!context.open) return null;\n const content = (\n <FloatingFocusManager context={context.context} modal={false} returnFocus={false}>\n <div\n {...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 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none',\n className,\n ),\n style: { ...context.floatingStyles, ...style },\n tabIndex: -1,\n ...props,\n })}\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 { cn } from '../base/utils';\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 <HoverCardPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-64 origin-[--radix-hover-card-content-transform-origin] rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',\n className,\n )}\n {...props}\n />\n));\nHoverCardContent.displayName = HoverCardPrimitive.Content.displayName;\n\nexport { HoverCard, 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 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 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 { cn } from '../base/utils';\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 rounded-md border bg-menu-surface p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2';\n\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) => <DropdownMenuPrimitive.SubContent ref={ref} className={cn(menuContentClassName, className)} {...props} />,\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) => <DropdownMenuPrimitive.Portal><DropdownMenuPrimitive.Content ref={ref} sideOffset={sideOffset} className={cn(menuContentClassName, className)} {...props} /></DropdownMenuPrimitive.Portal>,\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 <SelectPrimitive.Portal><SelectPrimitive.Content ref={ref} position={position} 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)} {...props}>\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);\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 { cn } from '../base/utils';\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 <DialogPrimitive.Overlay\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-overlay\n {...props}\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\nexport const DialogContent = React.forwardRef<React.ElementRef<typeof DialogPrimitive.Content>, DialogContentProps>(\n ({ className, children, showCloseButton = true, closeLabel = 'Close', overlayClassName, overlayStyle, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay className={overlayClassName} style={overlayStyle} />\n <DialogPrimitive.Content\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 rounded-lg border bg-dialog-surface p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', className)}\n data-monkeys-dialog-content\n {...props}\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 </DialogPrimitive.Content>\n </DialogPortal>\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 <AlertDialogPrimitive.Overlay 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-overlay style={{ pointerEvents: 'auto', ...style }} {...props} />\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 <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content 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 rounded-lg border bg-dialog-surface p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95', className)} data-monkeys-dialog-content style={{ pointerEvents: 'auto', ...style }} {...props} />\n </AlertDialogPortal>\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 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 { cn } from '../base/utils';\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 <DialogPrimitive.Overlay\n ref={ref}\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 {...props}\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 <SheetPortal>\n <SheetOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'fixed z-50 gap-4 bg-background p-6 shadow-lg 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 sideClassNames[side],\n className,\n )}\n {...props}\n >\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background 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));\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 * as React from 'react';\n\nimport { cn } from '../base/utils';\n\nexport interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {\n tone?: 'muted' | 'accent';\n animate?: boolean;\n}\nexport const Skeleton = ({ className, tone = 'muted', animate = true, style, ...props }: SkeletonProps) => (\n <div className={cn(animate && 'animate-pulse', 'rounded-md', tone === 'accent' ? 'bg-accent' : 'bg-muted', className)} style={style} {...props} />\n);\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonAvatarProps extends React.HTMLAttributes<HTMLDivElement> {\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({ className, size = 'md', shape = 'circle', ...props }: SkeletonAvatarProps) {\n return (\n <Skeleton className={cn(sizeMap[size], shape === 'circle' ? 'rounded-full' : 'rounded-md', className)} {...props} />\n );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonButtonProps extends React.HTMLAttributes<HTMLDivElement> {\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({ className, size = 'md', rounded = false, ...props }: SkeletonButtonProps) {\n return <Skeleton className={cn(sizeMap[size], rounded ? 'rounded-full' : 'rounded-md', className)} {...props} />;\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {\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 lines = 1,\n lastLineWidth = 100,\n size = 'md',\n spacing = 2,\n ...props\n}: SkeletonTextProps) {\n return (\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 );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\nimport { SkeletonText } from './SkeletonText';\n\nexport interface SkeletonCardProps extends React.HTMLAttributes<HTMLDivElement> {\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 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 <div className={cn('rounded-lg border bg-card p-4', className)} {...props}>\n {/* 图片区域 */}\n {showImage && <Skeleton className=\"mb-4 w-full rounded-md\" style={{ height: imageHeight }} />}\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 );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonFormFieldProps {\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 /**\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 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 <Skeleton className=\"w-full rounded-md\" style={{ height: textareaRows * 24 + 16 }} />;\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 <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 );\n }\n\n return (\n <div className=\"space-y-2\">\n <Skeleton className=\"h-4 rounded\" style={{ width: labelWidth }} />\n {renderInput()}\n </div>\n );\n}\n\n/**\n * 表单骨架屏组件\n */\nexport function SkeletonForm({\n className,\n fields = 4,\n fieldConfigs,\n layout = 'vertical',\n labelWidth = 100,\n showSubmitButton = true,\n spacing = 4,\n ...props\n}: SkeletonFormProps) {\n return (\n <div className={cn(`space-y-${spacing}`, className)} {...props}>\n {Array.from({ length: fields }).map((_, index) => {\n const config = fieldConfigs?.[index] || {};\n return (\n <SkeletonFormField\n key={index}\n layout={layout}\n labelWidth={config.labelWidth ?? labelWidth}\n type={config.type}\n textareaRows={config.textareaRows}\n />\n );\n })}\n\n {showSubmitButton && (\n <div className={cn('pt-2', layout === 'horizontal' && `pl-[${labelWidth + 16}px]`)}>\n <Skeleton className=\"h-9 w-24 rounded-md\" />\n </div>\n )}\n </div>\n );\n}\n\nexport { SkeletonFormField };\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonImageProps extends React.HTMLAttributes<HTMLDivElement> {\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 { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\nimport { SkeletonText } from './SkeletonText';\n\nexport interface SkeletonListProps extends React.HTMLAttributes<HTMLDivElement> {\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 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 <div className={cn('w-full', className)} {...props}>\n {Array.from({ length: count }).map((_, index) => (\n <div\n key={index}\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 className={cn('size-10 shrink-0', avatarShape === 'circle' ? 'rounded-full' : 'rounded-md')} />\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 ))}\n </div>\n );\n}\n","import React from 'react';\n\nimport { cn } from '../../base/utils';\n\nimport { Skeleton } from '../Skeleton';\n\nexport interface SkeletonTableProps extends React.HTMLAttributes<HTMLDivElement> {\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 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 <div className={cn('w-full overflow-hidden rounded-md border', className)} {...props}>\n {/* 表头 */}\n {showHeader && (\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 )}\n\n {/* 表体 */}\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <div key={rowIndex} 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 className=\"h-4 rounded\" style={{ width: `${60 + Math.random() * 30}%` }} />\n )}\n </div>\n ))}\n </div>\n ))}\n </div>\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"]}
|