@raptortrade/ui 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/components/accordion/accordion.tsx","../src/components/badge/badge.tsx","../src/components/button/button.tsx","../src/components/card/card.tsx","../src/components/chip/chip.tsx","../src/components/chip-group/chip-group.tsx","../src/components/code-block/code-block.tsx","../src/components/copy-button/copy-button.tsx","../src/components/dialog/dialog.tsx","../src/components/empty-state/empty-state.tsx","../src/components/input/input.tsx","../src/components/kbd/kbd.tsx","../src/components/loading/loading.tsx","../src/components/modal/modal.tsx","../src/components/nav-tabs/nav-tabs.tsx","../src/components/section-header/section-header.tsx","../src/components/select/select.tsx","../src/components/side-panel/side-panel.tsx","../src/components/separator/separator.tsx","../src/components/skeleton/skeleton.tsx","../src/components/skeleton-table/skeleton-table.tsx","../src/components/sparkline/sparkline.tsx","../src/components/spinner/spinner.tsx","../src/components/status-bar/status-bar.tsx","../src/components/table/table.tsx","../src/components/tabs/tabs.tsx","../src/components/toggle/toggle.tsx"],"sourcesContent":["export { Accordion, AccordionItem, AccordionTrigger, AccordionContent } from \"./components/accordion/index.js\";\nexport type { AccordionProps, AccordionItemProps, AccordionTriggerProps, AccordionContentProps } from \"./components/accordion/index.js\";\nexport { Badge } from \"./components/badge/index.js\";\nexport type { BadgeProps } from \"./components/badge/index.js\";\nexport { Button } from \"./components/button/index.js\";\nexport type { ButtonProps } from \"./components/button/index.js\";\nexport { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter } from \"./components/card/index.js\";\nexport type { CardProps } from \"./components/card/index.js\";\nexport { Chip } from \"./components/chip/index.js\";\nexport type { ChipProps } from \"./components/chip/index.js\";\nexport { ChipGroup } from \"./components/chip-group/index.js\";\nexport type { ChipGroupProps, ChipGroupOption } from \"./components/chip-group/index.js\";\nexport { CodeBlock } from \"./components/code-block/index.js\";\nexport type { CodeBlockProps } from \"./components/code-block/index.js\";\nexport { CopyButton } from \"./components/copy-button/index.js\";\nexport type { CopyButtonProps } from \"./components/copy-button/index.js\";\nexport { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogClose, DialogFooter } from \"./components/dialog/index.js\";\nexport type { DialogProps, DialogContentProps } from \"./components/dialog/index.js\";\nexport { EmptyState } from \"./components/empty-state/index.js\";\nexport type { EmptyStateProps } from \"./components/empty-state/index.js\";\nexport { Input } from \"./components/input/index.js\";\nexport type { InputProps } from \"./components/input/index.js\";\nexport { Kbd } from \"./components/kbd/index.js\";\nexport type { KbdProps } from \"./components/kbd/index.js\";\nexport { Loading } from \"./components/loading/index.js\";\nexport type { LoadingProps } from \"./components/loading/index.js\";\nexport { Modal } from \"./components/modal/index.js\";\nexport type { ModalProps } from \"./components/modal/index.js\";\nexport { NavTabs } from \"./components/nav-tabs/index.js\";\nexport type { NavTabsProps, NavTabItem } from \"./components/nav-tabs/index.js\";\nexport { SectionHeader } from \"./components/section-header/index.js\";\nexport type { SectionHeaderProps } from \"./components/section-header/index.js\";\nexport { Select } from \"./components/select/index.js\";\nexport type { SelectProps, SelectOption } from \"./components/select/index.js\";\nexport { SidePanel } from \"./components/side-panel/index.js\";\nexport type { SidePanelProps } from \"./components/side-panel/index.js\";\nexport { Separator } from \"./components/separator/index.js\";\nexport type { SeparatorProps } from \"./components/separator/index.js\";\nexport { Skeleton } from \"./components/skeleton/index.js\";\nexport type { SkeletonProps } from \"./components/skeleton/index.js\";\nexport { SkeletonTable } from \"./components/skeleton-table/index.js\";\nexport type { SkeletonTableProps } from \"./components/skeleton-table/index.js\";\nexport { Sparkline } from \"./components/sparkline/index.js\";\nexport type { SparklineProps } from \"./components/sparkline/index.js\";\nexport { Spinner } from \"./components/spinner/index.js\";\nexport type { SpinnerProps } from \"./components/spinner/index.js\";\nexport { StatusBar } from \"./components/status-bar/index.js\";\nexport type { StatusBarProps, StatusBarItem } from \"./components/status-bar/index.js\";\nexport { Table, TableHead, TableHeader, TableBody, TableRow, TableCell } from \"./components/table/index.js\";\nexport type { TableProps, TableHeaderProps, TableRowProps } from \"./components/table/index.js\";\nexport { Tabs } from \"./components/tabs/index.js\";\nexport type { TabsProps, Tab } from \"./components/tabs/index.js\";\nexport { Toggle } from \"./components/toggle/index.js\";\nexport type { ToggleProps } from \"./components/toggle/index.js\";\n","import * as React from \"react\";\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\";\n\nconst Accordion = AccordionPrimitive.Root;\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className = \"\", ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={`border-b border-border-1 ${className}`}\n {...props}\n />\n));\nAccordionItem.displayName = \"AccordionItem\";\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className = \"\", children, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={`flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180 ${className}`}\n {...props}\n >\n {children}\n <svg\n className=\"h-4 w-4 shrink-0 transition-transform duration-200\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n));\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className = \"\", children, ...props }, ref) => (\n <AccordionPrimitive.Content\n 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={`pb-4 pt-0 ${className}`}>{children}</div>\n </AccordionPrimitive.Content>\n));\nAccordionContent.displayName = \"AccordionContent\";\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n\nexport type AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;\nexport type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>;\nexport type AccordionTriggerProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>;\nexport type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>;\n","import type { ReactNode } from \"react\";\n\ntype BadgeVariant = \"active\" | \"inactive\" | \"coming-soon\" | \"default\" | \"signal\" | \"success\" | \"danger\" | \"warning\" | \"error\" | \"outline\";\n\nconst variantStyles: Record<BadgeVariant, string> = {\n active: \"bg-primary-500 text-white\",\n inactive: \"bg-bg-2 text-text-2\",\n \"coming-soon\": \"bg-bg-2 text-text-2\",\n default: \"bg-bg-2 text-text-1\",\n signal: \"bg-primary-500 text-white\",\n success: \"bg-success/15 text-success border-success/30\",\n danger: \"bg-danger/15 text-danger border-danger/30\",\n warning: \"bg-warning/15 text-warning border-warning/30\",\n error: \"bg-danger/15 text-danger border-danger/30\",\n outline: \"bg-bg-1 text-text-1 border-border-1\",\n};\n\nexport interface BadgeProps {\n variant?: BadgeVariant;\n children: ReactNode;\n className?: string;\n onClick?: () => void;\n}\n\nexport function Badge({ variant = \"default\", children, className = \"\", onClick }: BadgeProps) {\n return (\n <span\n className={`inline-flex items-center rounded-full border border-border-1 px-2.5 py-0.5 text-[11px] font-medium ${variantStyles[variant]} ${className}`}\n onClick={onClick}\n >\n {children}\n </span>\n );\n}\n","import { type ButtonHTMLAttributes, forwardRef } from \"react\";\n\ntype ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\" | \"destructive\" | \"link\";\ntype ButtonSize = \"sm\" | \"md\" | \"lg\" | \"icon\";\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary:\n \"bg-accent-500 text-[var(--accent-text,#111111)] font-semibold border-accent-500 hover:brightness-110 hover:shadow-[0_0_16px_rgba(255,255,255,0.1)]\",\n secondary:\n \"bg-bg-2 text-text-1 border-border-1 font-medium hover:bg-bg-3 hover:border-border-1\",\n ghost:\n \"text-text-2 border-transparent hover:bg-bg-2 hover:text-text-1\",\n danger:\n \"bg-danger/10 text-danger border-danger/30 hover:bg-danger/20\",\n destructive:\n \"bg-danger text-white font-semibold border-danger hover:bg-danger/90\",\n link:\n \"text-primary-500 border-transparent underline-offset-4 hover:underline\",\n};\n\nconst sizeStyles: Record<ButtonSize, string> = {\n sm: \"h-8 px-3 text-xs gap-1.5\",\n md: \"h-9 px-4 text-sm gap-2\",\n lg: \"h-11 px-6 text-sm gap-2\",\n icon: \"h-9 w-9 p-0\",\n};\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n}\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ variant = \"primary\", size = \"md\", className = \"\", children, disabled, ...props }, ref) => {\n return (\n <button\n ref={ref}\n className={`inline-flex items-center justify-center font-medium transition-all duration-200\n rounded-lg border\n focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-ring\n disabled:pointer-events-none disabled:opacity-50\n ${variantStyles[variant]} ${sizeStyles[size]} ${className}`}\n disabled={disabled}\n {...props}\n >\n {children}\n </button>\n );\n },\n);\n\nButton.displayName = \"Button\";\n","import type { ReactNode } from \"react\";\n\nexport interface CardProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function Card({ children, className = \"\" }: CardProps) {\n return (\n <div className={`card-modern p-6 ${className}`}>\n {children}\n </div>\n );\n}\n\nexport function CardHeader({ children, className = \"\" }: CardProps) {\n return <div className={`mb-4 ${className}`}>{children}</div>;\n}\n\nexport function CardTitle({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <h3 className={`text-sm font-medium text-text-1 ${className}`}>{children}</h3>;\n}\n\nexport function CardDescription({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <p className={`mt-1 text-xs text-text-3 ${className}`}>{children}</p>;\n}\n\nexport function CardContent({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <div className={`pt-4 ${className}`}>{children}</div>;\n}\n\nexport function CardFooter({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <div className={`pt-4 mt-4 border-t border-border-1 ${className}`}>{children}</div>;\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ChipProps {\n active: boolean;\n onClick: () => void;\n children: ReactNode;\n className?: string;\n}\n\nexport function Chip({ active, onClick, children, className = \"\" }: ChipProps) {\n return (\n <button\n onClick={onClick}\n className={`text-xs font-medium px-3 py-1 rounded-lg border cursor-pointer whitespace-nowrap transition-all ${\n active\n ? \"text-primary-500 border-primary-500/30 bg-primary-500/10\"\n : \"text-text-2 bg-bg-2 border-border-1 hover:text-text-1\"\n } ${className}`}\n >\n {children}\n </button>\n );\n}\n","import { Chip } from \"../chip/chip.js\";\n\nexport interface ChipGroupOption {\n value: string;\n label: string;\n}\n\ninterface ChipGroupBaseProps {\n options: ChipGroupOption[];\n className?: string;\n}\n\ninterface ChipGroupSingleProps extends ChipGroupBaseProps {\n multiple?: false;\n value: string;\n onChange: (value: string) => void;\n}\n\ninterface ChipGroupMultipleProps extends ChipGroupBaseProps {\n multiple: true;\n value: string[];\n onChange: (value: string[]) => void;\n}\n\nexport type ChipGroupProps = ChipGroupSingleProps | ChipGroupMultipleProps;\n\nexport function ChipGroup(props: ChipGroupProps) {\n const { options, className = \"\" } = props;\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n {options.map((option) => {\n const isActive = props.multiple\n ? props.value.includes(option.value)\n : props.value === option.value;\n\n const handleClick = () => {\n if (props.multiple) {\n const next = props.value.includes(option.value)\n ? props.value.filter((v) => v !== option.value)\n : [...props.value, option.value];\n props.onChange(next);\n } else {\n props.onChange(option.value);\n }\n };\n\n return (\n <Chip key={option.value} active={isActive} onClick={handleClick}>\n {option.label}\n </Chip>\n );\n })}\n </div>\n );\n}\n","import { useMemo } from \"react\";\nimport Prism from \"prismjs\";\nimport \"prismjs/components/prism-json\";\nimport \"prismjs/components/prism-bash\";\nimport \"prismjs/components/prism-python\";\nimport \"prismjs/components/prism-javascript\";\nimport \"prismjs/components/prism-typescript\";\nimport \"prismjs/components/prism-rust\";\nimport { CopyButton } from \"../copy-button/copy-button.js\";\n\nexport interface CodeBlockProps {\n code: string;\n language?: string;\n showCopy?: boolean;\n className?: string;\n}\n\nexport function CodeBlock({ code, language = \"bash\", showCopy = true, className = \"\" }: CodeBlockProps) {\n const highlightedHtml = useMemo(() => {\n if (code.length >= 50_000 || !Prism.languages[language]) return null;\n return Prism.highlight(code, Prism.languages[language], language);\n }, [code, language]);\n\n return (\n <div className={`group relative bg-code-bg ${className}`}>\n {showCopy && (\n <div className=\"absolute right-2 top-2 opacity-0 transition-opacity group-hover:opacity-100\">\n <CopyButton text={code} />\n </div>\n )}\n <pre className={`language-${language} !bg-code-bg !m-0`}>\n {highlightedHtml != null ? (\n <code className={`language-${language}`} dangerouslySetInnerHTML={{ __html: highlightedHtml }} />\n ) : (\n <code className={`language-${language}`}>{code}</code>\n )}\n </pre>\n </div>\n );\n}\n","import { useState, useCallback } from \"react\";\n\nexport interface CopyButtonProps {\n text: string;\n className?: string;\n label?: string;\n onCopy?: () => void;\n}\n\nexport function CopyButton({ text, className = \"\", label, onCopy }: CopyButtonProps) {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(async () => {\n await navigator.clipboard.writeText(text);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n onCopy?.();\n }, [text, onCopy]);\n\n return (\n <button\n onClick={handleCopy}\n className={`inline-flex items-center gap-1.5 px-2 py-1 text-xs text-text-3\n rounded-sm border border-border-1 transition-colors duration-75 hover:bg-bg-2 hover:text-text-1 ${className}`}\n >\n {copied ? (\n <>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M3 8.5l3 3 7-7\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n {label ? \"Copied!\" : null}\n </>\n ) : (\n <>\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 16 16\" fill=\"none\">\n <rect x=\"5\" y=\"5\" width=\"8\" height=\"8\" rx=\"1.5\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M3 11V3.5A.5.5 0 013.5 3H11\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n {label ?? null}\n </>\n )}\n </button>\n );\n}\n","import { useEffect, forwardRef, type ReactNode, type ButtonHTMLAttributes } from \"react\";\n\nexport interface DialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n children: ReactNode;\n}\n\nexport function Dialog({ open, onOpenChange, children }: DialogProps) {\n useEffect(() => {\n if (open) {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"unset\";\n }\n return () => {\n document.body.style.overflow = \"unset\";\n };\n }, [open]);\n\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onOpenChange(false);\n };\n if (open) {\n document.addEventListener(\"keydown\", handleEscape);\n }\n return () => {\n document.removeEventListener(\"keydown\", handleEscape);\n };\n }, [open, onOpenChange]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div className=\"fixed inset-0 bg-black/60\" onClick={() => onOpenChange(false)} />\n <div className=\"relative z-50\">{children}</div>\n </div>\n );\n}\n\nexport interface DialogContentProps {\n className?: string;\n children: ReactNode;\n}\n\nexport const DialogContent = forwardRef<HTMLDivElement, DialogContentProps>(\n ({ className = \"\", children }, ref) => (\n <div\n ref={ref}\n className={`relative w-full max-w-lg mx-4 bg-bg-1 border border-border-1 rounded-lg shadow-xl ${className}`}\n onClick={(e) => e.stopPropagation()}\n >\n {children}\n </div>\n ),\n);\nDialogContent.displayName = \"DialogContent\";\n\nexport function DialogHeader({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return (\n <div className={`flex flex-col gap-1.5 p-6 border-b border-border-1 ${className}`}>\n {children}\n </div>\n );\n}\n\nexport const DialogTitle = forwardRef<HTMLHeadingElement, { children: ReactNode; className?: string }>(\n ({ children, className = \"\" }, ref) => (\n <h2 ref={ref} className={`text-base font-semibold text-text-1 ${className}`}>\n {children}\n </h2>\n ),\n);\nDialogTitle.displayName = \"DialogTitle\";\n\nexport const DialogDescription = forwardRef<HTMLParagraphElement, { children: ReactNode; className?: string }>(\n ({ children, className = \"\" }, ref) => (\n <p ref={ref} className={`text-sm text-text-3 ${className}`}>\n {children}\n </p>\n ),\n);\nDialogDescription.displayName = \"DialogDescription\";\n\nexport const DialogClose = forwardRef<HTMLButtonElement, ButtonHTMLAttributes<HTMLButtonElement>>(\n ({ className = \"\", ...props }, ref) => (\n <button\n ref={ref}\n className={`absolute right-4 top-4 h-6 w-6 flex items-center justify-center text-text-3 hover:text-text-1 transition-colors ${className}`}\n aria-label=\"Close\"\n {...props}\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n </button>\n ),\n);\nDialogClose.displayName = \"DialogClose\";\n\nexport function DialogFooter({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return (\n <div className={`flex justify-end gap-3 p-6 border-t border-border-1 ${className}`}>\n {children}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface EmptyStateProps {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({ icon, title, description, action }: EmptyStateProps) {\n return (\n <div className=\"flex flex-col items-center justify-center py-12 text-center\">\n {icon && <div className=\"mb-4 text-text-3\">{icon}</div>}\n <h3 className=\"text-sm font-medium text-text-1\">{title}</h3>\n {description && <p className=\"mt-1 text-sm text-text-3\">{description}</p>}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","import { type InputHTMLAttributes, forwardRef } from \"react\";\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n error?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n ({ label, error, className = \"\", id, ...props }, ref) => {\n const inputId = id || label?.toLowerCase().replace(/\\s+/g, \"-\");\n return (\n <div className=\"flex flex-col gap-1.5\">\n {label && (\n <label htmlFor={inputId} className=\"text-sm font-medium text-text-2\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={`h-9 rounded-lg border border-border-1 bg-bg-1 px-3 text-sm text-text-1\n placeholder:text-text-4\n focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-ring\n disabled:cursor-not-allowed disabled:opacity-50\n ${error ? \"border-danger\" : \"\"} ${className}`}\n {...props}\n />\n {error && <p className=\"text-xs text-danger\">{error}</p>}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","import type { ReactNode } from \"react\";\n\nexport interface KbdProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function Kbd({ children, className = \"\" }: KbdProps) {\n return (\n <kbd\n className={`inline-flex h-5 min-w-5 items-center justify-center rounded border border-border-1\n bg-bg-2 px-1.5 font-mono text-[10px] font-medium text-text-3 ${className}`}\n >\n {children}\n </kbd>\n );\n}\n","export interface LoadingProps {\n text?: string;\n className?: string;\n}\n\nexport function Loading({ text = \"Loading\", className = \"\" }: LoadingProps) {\n return (\n <div className={`flex items-center gap-1 text-text-3 text-sm font-mono ${className}`}>\n <span>{text}</span>\n <span className=\"flex gap-0.5\">\n <span className=\"animate-pulse\" style={{ animationDelay: \"0ms\" }}>.</span>\n <span className=\"animate-pulse\" style={{ animationDelay: \"200ms\" }}>.</span>\n <span className=\"animate-pulse\" style={{ animationDelay: \"400ms\" }}>.</span>\n </span>\n </div>\n );\n}\n","import { useEffect, useCallback, type ReactNode } from \"react\";\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n title: string;\n children: ReactNode;\n className?: string;\n}\n\nexport function Modal({ open, onClose, title, children, className = \"\" }: ModalProps) {\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n },\n [onClose],\n );\n\n useEffect(() => {\n if (open) {\n document.addEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"hidden\";\n }\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"\";\n };\n }, [open, handleKeyDown]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div className=\"absolute inset-0 bg-black/60\" onClick={onClose} />\n <div\n className={`relative w-full max-w-md rounded-xl border border-border-1 bg-bg-1 p-6 shadow-xl ${className}`}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"text-base font-semibold text-text-1\">{title}</h2>\n <button\n onClick={onClose}\n className=\"p-1 text-text-3 transition-colors rounded-sm hover:bg-bg-2\"\n aria-label=\"Close\"\n >\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n </button>\n </div>\n {children}\n </div>\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface NavTabItem {\n label: string;\n href: string;\n isActive?: boolean;\n}\n\nexport interface NavTabsProps {\n items: NavTabItem[];\n variant?: \"underline\" | \"pill\";\n className?: string;\n renderLink?: (props: { href: string; className: string; children: ReactNode }) => ReactNode;\n}\n\nconst variantStyles = {\n underline: {\n container: \"flex border-b border-border-2 bg-bg-1\",\n item: \"px-5 py-2.5 font-mono text-xs uppercase tracking-wider transition-colors border-b-2\",\n active: \"border-primary-500 font-bold text-text-1\",\n inactive: \"border-transparent text-text-3 hover:text-text-1\",\n },\n pill: {\n container: \"flex items-center gap-1\",\n item: \"px-3 py-2 text-sm font-medium transition-colors rounded-lg\",\n active: \"bg-bg-2 text-text-1\",\n inactive: \"text-text-3 hover:bg-bg-2/50 hover:text-text-1\",\n },\n};\n\nexport function NavTabs({ items, variant = \"underline\", className = \"\", renderLink }: NavTabsProps) {\n const styles = variantStyles[variant];\n\n return (\n <nav className={`${styles.container} ${className}`}>\n {items.map((item) => {\n const itemClassName = `${styles.item} ${item.isActive ? styles.active : styles.inactive}`;\n\n if (renderLink) {\n return (\n <span key={item.href}>\n {renderLink({ href: item.href, className: itemClassName, children: item.label })}\n </span>\n );\n }\n\n return (\n <a key={item.href} href={item.href} className={itemClassName}>\n {item.label}\n </a>\n );\n })}\n </nav>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface SectionHeaderProps {\n title: string;\n badge?: ReactNode;\n className?: string;\n}\n\nexport function SectionHeader({ title, badge, className = \"\" }: SectionHeaderProps) {\n return (\n <div className={`flex items-center justify-between bg-bg-2 px-3 py-2.5 rounded-t-xl ${className}`}>\n <span className=\"text-xs font-semibold text-text-2\">{title}</span>\n {badge}\n </div>\n );\n}\n","import { type SelectHTMLAttributes, forwardRef } from \"react\";\n\nexport interface SelectOption {\n value: string;\n label: string;\n}\n\nexport interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {\n label?: string;\n options: SelectOption[];\n}\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n ({ label, options, className = \"\", id, ...props }, ref) => {\n const selectId = id || label?.toLowerCase().replace(/\\s+/g, \"-\");\n return (\n <div className=\"flex flex-col gap-1.5\">\n {label && (\n <label htmlFor={selectId} className=\"text-sm font-medium text-text-2\">\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n className={`h-9 rounded-lg border border-border-1 bg-bg-1 px-3 text-sm text-text-1\n focus:border-primary-500 focus:outline-none focus:ring-2 focus:ring-primary-ring\n disabled:cursor-not-allowed disabled:opacity-50\n ${className}`}\n {...props}\n >\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n );\n },\n);\n\nSelect.displayName = \"Select\";\n","import { useEffect, useCallback, type ReactNode } from \"react\";\nimport { Button } from \"../button/button.js\";\n\nexport interface SidePanelProps {\n open: boolean;\n onClose: () => void;\n title: string;\n subtitle?: string;\n children: ReactNode;\n className?: string;\n}\n\nexport function SidePanel({ open, onClose, title, subtitle, children, className = \"\" }: SidePanelProps) {\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n },\n [onClose],\n );\n\n useEffect(() => {\n if (open) {\n document.addEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"hidden\";\n }\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n document.body.style.overflow = \"\";\n };\n }, [open, handleKeyDown]);\n\n if (!open) return null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\" onClick={onClose}>\n {/* Backdrop */}\n <div className=\"absolute inset-0 bg-black/50\" />\n\n {/* Panel */}\n <div\n className={`relative bg-bg-1 rounded-lg shadow-xl flex flex-col w-[900px] h-[600px] ${className}`}\n onClick={(e) => e.stopPropagation()}\n >\n <div className=\"flex items-center justify-between px-4 py-3 bg-bg-2 rounded-t-lg flex-shrink-0\">\n <div className=\"min-w-0\">\n <h3 className=\"font-semibold text-base truncate\">{title}</h3>\n {subtitle && <p className=\"text-xs text-text-3\">{subtitle}</p>}\n </div>\n <Button variant=\"ghost\" size=\"sm\" onClick={onClose} className=\"flex-shrink-0\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path d=\"M4 4l8 8M12 4l-8 8\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n </Button>\n </div>\n\n <div className=\"flex-1 overflow-hidden\">\n {children}\n </div>\n </div>\n </div>\n );\n}\n","export interface SeparatorProps {\n className?: string;\n}\n\nexport function Separator({ className = \"\" }: SeparatorProps) {\n return <div className={`mx-1 h-5 w-px shrink-0 bg-border-1 ${className}`} />;\n}\n","export interface SkeletonProps {\n className?: string;\n}\n\nexport function Skeleton({ className = \"\" }: SkeletonProps) {\n return (\n <div\n className={`rounded-lg bg-bg-2 animate-pulse ${className}`}\n />\n );\n}\n","import { Skeleton } from \"../skeleton/skeleton.js\";\n\nexport interface SkeletonTableProps {\n className?: string;\n rows?: number;\n cols?: number;\n}\n\nexport function SkeletonTable({ className = \"\", rows = 5, cols = 4 }: SkeletonTableProps) {\n return (\n <div className={`w-full ${className}`}>\n <div className=\"flex gap-4 mb-4 pb-4 border-b border-border-1\">\n {Array.from({ length: cols }).map((_, i) => (\n <Skeleton key={i} className=\"h-4 flex-1 rounded\" />\n ))}\n </div>\n <div className=\"space-y-3\">\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} className=\"flex gap-4\">\n {Array.from({ length: cols }).map((_, j) => (\n <Skeleton key={j} className=\"h-4 flex-1 rounded\" />\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n}\n","export interface SparklineProps {\n trend: number[];\n className?: string;\n}\n\nexport function Sparkline({ trend, className = \"\" }: SparklineProps) {\n const max = Math.max(...trend);\n return (\n <div className={`flex items-end gap-px h-4 ${className}`}>\n {trend.map((v, i) => {\n const h = Math.max(2, Math.round((v / max) * 14));\n const col = v >= 10 ? \"bg-danger\" : v >= 7 ? \"bg-warning\" : \"bg-text-3\";\n return <div key={i} className={`w-[3px] rounded-full ${col}`} style={{ height: `${h}px` }} />;\n })}\n </div>\n );\n}\n","export interface SpinnerProps {\n size?: \"sm\" | \"md\" | \"lg\";\n className?: string;\n}\n\nconst sizeMap = { sm: \"h-4 w-4\", md: \"h-5 w-5\", lg: \"h-6 w-6\" };\n\nexport function Spinner({ size = \"md\", className = \"\" }: SpinnerProps) {\n return (\n <svg\n className={`animate-spin text-text-3 ${sizeMap[size]} ${className}`}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n role=\"status\"\n aria-label=\"Loading\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" strokeWidth=\"2.5\" opacity=\"0.2\" />\n <path\n d=\"M12 2a10 10 0 019.95 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n","import type { ReactNode } from \"react\";\n\ntype StatusDot = \"success\" | \"warning\" | \"danger\" | \"idle\";\n\nexport interface StatusBarItem {\n dot?: StatusDot;\n label: string;\n}\n\nexport interface StatusBarProps {\n items: StatusBarItem[];\n trailing?: ReactNode;\n className?: string;\n}\n\nconst dotColors: Record<StatusDot, string> = {\n success: \"bg-success\",\n warning: \"bg-warning\",\n danger: \"bg-danger\",\n idle: \"bg-text-4\",\n};\n\nexport function StatusBar({ items, trailing, className = \"\" }: StatusBarProps) {\n return (\n <div className={`flex h-7 shrink-0 items-center gap-4 border-t border-border-1 bg-bg-0 px-4 ${className}`}>\n {items.map((item, i) => (\n <div key={i} className=\"flex items-center gap-1.5 text-xs text-text-3\">\n {item.dot && (\n <span className={`inline-block h-1.5 w-1.5 rounded-full ${dotColors[item.dot]}`} />\n )}\n {item.label}\n </div>\n ))}\n {trailing && <div className=\"ml-auto text-xs text-text-3\">{trailing}</div>}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface TableProps {\n children: ReactNode;\n className?: string;\n}\n\nexport function Table({ children, className = \"\" }: TableProps) {\n return (\n <div className=\"w-full overflow-x-auto rounded-xl\">\n <table className={`w-full text-sm ${className}`}>{children}</table>\n </div>\n );\n}\n\nexport function TableHead({ children }: { children: ReactNode }) {\n return (\n <thead className=\"border-b border-border-1\">\n <tr>{children}</tr>\n </thead>\n );\n}\n\nexport interface TableHeaderProps {\n children?: ReactNode;\n className?: string;\n onClick?: () => void;\n}\n\nexport function TableHeader({ children, className = \"\", onClick }: TableHeaderProps) {\n return (\n <th\n className={`px-4 py-3 text-left text-xs font-medium text-text-3 ${onClick ? \"cursor-pointer select-none hover:text-text-1\" : \"\"} ${className}`}\n onClick={onClick}\n >\n {children}\n </th>\n );\n}\n\nexport function TableBody({ children }: { children: ReactNode }) {\n return <tbody className=\"divide-y divide-border-2\">{children}</tbody>;\n}\n\nexport interface TableRowProps {\n children: ReactNode;\n className?: string;\n onClick?: () => void;\n}\n\nexport function TableRow({ children, className = \"\", onClick }: TableRowProps) {\n return (\n <tr className={`hover:bg-bg-2/50 transition-colors ${onClick ? \"cursor-pointer\" : \"\"} ${className}`} onClick={onClick}>\n {children}\n </tr>\n );\n}\n\nexport function TableCell({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <td className={`px-4 py-3.5 text-text-2 ${className}`}>{children}</td>;\n}\n","export interface Tab {\n value: string;\n label: string;\n}\n\nexport interface TabsProps {\n tabs: Tab[];\n value: string;\n onChange: (value: string) => void;\n className?: string;\n}\n\nexport function Tabs({ tabs, value, onChange, className = \"\" }: TabsProps) {\n return (\n <div className={`flex gap-1 rounded-lg border border-border-1 bg-bg-1 p-1 ${className}`}>\n {tabs.map((tab) => (\n <button\n key={tab.value}\n onClick={() => onChange(tab.value)}\n className={`px-3 py-1.5 text-sm font-medium transition-all rounded-md\n ${\n value === tab.value\n ? \"bg-bg-3 text-text-1\"\n : \"text-text-3 hover:bg-bg-2 hover:text-text-1\"\n }`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","export interface ToggleProps {\n options: [string, string];\n value: string;\n onChange: (value: string) => void;\n className?: string;\n}\n\nexport function Toggle({ options, value, onChange, className = \"\" }: ToggleProps) {\n const [left, right] = options;\n\n return (\n <div className={`inline-flex items-center gap-2 text-sm ${className}`}>\n <span\n className={`cursor-pointer transition-colors ${value === left ? \"text-text-1\" : \"text-text-3\"}`}\n onClick={() => onChange(left)}\n >\n {left}\n </span>\n <button\n onClick={() => onChange(value === left ? right : left)}\n className={`relative w-10 h-5 rounded-none transition-colors border-2 border-border-1 ${\n value === right ? \"bg-primary-500\" : \"bg-bg-1\"\n }`}\n >\n <span\n className={`absolute top-0.5 w-4 h-4 rounded-none transition-transform bg-text-1 ${\n value === right ? \"translate-x-5\" : \"translate-x-0.5\"\n }`}\n />\n </button>\n <span\n className={`cursor-pointer transition-colors ${value === right ? \"text-text-1\" : \"text-text-3\"}`}\n onClick={() => onChange(right)}\n >\n {right}\n </span>\n </div>\n );\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime","variantStyles","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_jsx_runtime","Prism","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","variantStyles","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","_","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
@@ -0,0 +1,298 @@
1
+ import * as React from 'react';
2
+ import { ReactNode, ButtonHTMLAttributes, InputHTMLAttributes, SelectHTMLAttributes } from 'react';
3
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+
6
+ declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
7
+ declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
9
+ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+
11
+ type AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>;
12
+ type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>;
13
+ type AccordionTriggerProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>;
14
+ type AccordionContentProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>;
15
+
16
+ type BadgeVariant = "active" | "inactive" | "coming-soon" | "default" | "signal" | "success" | "danger" | "warning" | "error" | "outline";
17
+ interface BadgeProps {
18
+ variant?: BadgeVariant;
19
+ children: ReactNode;
20
+ className?: string;
21
+ onClick?: () => void;
22
+ }
23
+ declare function Badge({ variant, children, className, onClick }: BadgeProps): react_jsx_runtime.JSX.Element;
24
+
25
+ type ButtonVariant = "primary" | "secondary" | "ghost" | "danger" | "destructive" | "link";
26
+ type ButtonSize = "sm" | "md" | "lg" | "icon";
27
+ interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
28
+ variant?: ButtonVariant;
29
+ size?: ButtonSize;
30
+ }
31
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
32
+
33
+ interface CardProps {
34
+ children: ReactNode;
35
+ className?: string;
36
+ }
37
+ declare function Card({ children, className }: CardProps): react_jsx_runtime.JSX.Element;
38
+ declare function CardHeader({ children, className }: CardProps): react_jsx_runtime.JSX.Element;
39
+ declare function CardTitle({ children, className }: {
40
+ children: ReactNode;
41
+ className?: string;
42
+ }): react_jsx_runtime.JSX.Element;
43
+ declare function CardDescription({ children, className }: {
44
+ children: ReactNode;
45
+ className?: string;
46
+ }): react_jsx_runtime.JSX.Element;
47
+ declare function CardContent({ children, className }: {
48
+ children: ReactNode;
49
+ className?: string;
50
+ }): react_jsx_runtime.JSX.Element;
51
+ declare function CardFooter({ children, className }: {
52
+ children: ReactNode;
53
+ className?: string;
54
+ }): react_jsx_runtime.JSX.Element;
55
+
56
+ interface ChipProps {
57
+ active: boolean;
58
+ onClick: () => void;
59
+ children: ReactNode;
60
+ className?: string;
61
+ }
62
+ declare function Chip({ active, onClick, children, className }: ChipProps): react_jsx_runtime.JSX.Element;
63
+
64
+ interface ChipGroupOption {
65
+ value: string;
66
+ label: string;
67
+ }
68
+ interface ChipGroupBaseProps {
69
+ options: ChipGroupOption[];
70
+ className?: string;
71
+ }
72
+ interface ChipGroupSingleProps extends ChipGroupBaseProps {
73
+ multiple?: false;
74
+ value: string;
75
+ onChange: (value: string) => void;
76
+ }
77
+ interface ChipGroupMultipleProps extends ChipGroupBaseProps {
78
+ multiple: true;
79
+ value: string[];
80
+ onChange: (value: string[]) => void;
81
+ }
82
+ type ChipGroupProps = ChipGroupSingleProps | ChipGroupMultipleProps;
83
+ declare function ChipGroup(props: ChipGroupProps): react_jsx_runtime.JSX.Element;
84
+
85
+ interface CodeBlockProps {
86
+ code: string;
87
+ language?: string;
88
+ showCopy?: boolean;
89
+ className?: string;
90
+ }
91
+ declare function CodeBlock({ code, language, showCopy, className }: CodeBlockProps): react_jsx_runtime.JSX.Element;
92
+
93
+ interface CopyButtonProps {
94
+ text: string;
95
+ className?: string;
96
+ label?: string;
97
+ onCopy?: () => void;
98
+ }
99
+ declare function CopyButton({ text, className, label, onCopy }: CopyButtonProps): react_jsx_runtime.JSX.Element;
100
+
101
+ interface DialogProps {
102
+ open: boolean;
103
+ onOpenChange: (open: boolean) => void;
104
+ children: ReactNode;
105
+ }
106
+ declare function Dialog({ open, onOpenChange, children }: DialogProps): react_jsx_runtime.JSX.Element | null;
107
+ interface DialogContentProps {
108
+ className?: string;
109
+ children: ReactNode;
110
+ }
111
+ declare const DialogContent: React.ForwardRefExoticComponent<DialogContentProps & React.RefAttributes<HTMLDivElement>>;
112
+ declare function DialogHeader({ children, className }: {
113
+ children: ReactNode;
114
+ className?: string;
115
+ }): react_jsx_runtime.JSX.Element;
116
+ declare const DialogTitle: React.ForwardRefExoticComponent<{
117
+ children: ReactNode;
118
+ className?: string;
119
+ } & React.RefAttributes<HTMLHeadingElement>>;
120
+ declare const DialogDescription: React.ForwardRefExoticComponent<{
121
+ children: ReactNode;
122
+ className?: string;
123
+ } & React.RefAttributes<HTMLParagraphElement>>;
124
+ declare const DialogClose: React.ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
125
+ declare function DialogFooter({ children, className }: {
126
+ children: ReactNode;
127
+ className?: string;
128
+ }): react_jsx_runtime.JSX.Element;
129
+
130
+ interface EmptyStateProps {
131
+ icon?: ReactNode;
132
+ title: string;
133
+ description?: string;
134
+ action?: ReactNode;
135
+ }
136
+ declare function EmptyState({ icon, title, description, action }: EmptyStateProps): react_jsx_runtime.JSX.Element;
137
+
138
+ interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
139
+ label?: string;
140
+ error?: string;
141
+ }
142
+ declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
143
+
144
+ interface KbdProps {
145
+ children: ReactNode;
146
+ className?: string;
147
+ }
148
+ declare function Kbd({ children, className }: KbdProps): react_jsx_runtime.JSX.Element;
149
+
150
+ interface LoadingProps {
151
+ text?: string;
152
+ className?: string;
153
+ }
154
+ declare function Loading({ text, className }: LoadingProps): react_jsx_runtime.JSX.Element;
155
+
156
+ interface ModalProps {
157
+ open: boolean;
158
+ onClose: () => void;
159
+ title: string;
160
+ children: ReactNode;
161
+ className?: string;
162
+ }
163
+ declare function Modal({ open, onClose, title, children, className }: ModalProps): react_jsx_runtime.JSX.Element | null;
164
+
165
+ interface NavTabItem {
166
+ label: string;
167
+ href: string;
168
+ isActive?: boolean;
169
+ }
170
+ interface NavTabsProps {
171
+ items: NavTabItem[];
172
+ variant?: "underline" | "pill";
173
+ className?: string;
174
+ renderLink?: (props: {
175
+ href: string;
176
+ className: string;
177
+ children: ReactNode;
178
+ }) => ReactNode;
179
+ }
180
+ declare function NavTabs({ items, variant, className, renderLink }: NavTabsProps): react_jsx_runtime.JSX.Element;
181
+
182
+ interface SectionHeaderProps {
183
+ title: string;
184
+ badge?: ReactNode;
185
+ className?: string;
186
+ }
187
+ declare function SectionHeader({ title, badge, className }: SectionHeaderProps): react_jsx_runtime.JSX.Element;
188
+
189
+ interface SelectOption {
190
+ value: string;
191
+ label: string;
192
+ }
193
+ interface SelectProps extends SelectHTMLAttributes<HTMLSelectElement> {
194
+ label?: string;
195
+ options: SelectOption[];
196
+ }
197
+ declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLSelectElement>>;
198
+
199
+ interface SidePanelProps {
200
+ open: boolean;
201
+ onClose: () => void;
202
+ title: string;
203
+ subtitle?: string;
204
+ children: ReactNode;
205
+ className?: string;
206
+ }
207
+ declare function SidePanel({ open, onClose, title, subtitle, children, className }: SidePanelProps): react_jsx_runtime.JSX.Element | null;
208
+
209
+ interface SeparatorProps {
210
+ className?: string;
211
+ }
212
+ declare function Separator({ className }: SeparatorProps): react_jsx_runtime.JSX.Element;
213
+
214
+ interface SkeletonProps {
215
+ className?: string;
216
+ }
217
+ declare function Skeleton({ className }: SkeletonProps): react_jsx_runtime.JSX.Element;
218
+
219
+ interface SkeletonTableProps {
220
+ className?: string;
221
+ rows?: number;
222
+ cols?: number;
223
+ }
224
+ declare function SkeletonTable({ className, rows, cols }: SkeletonTableProps): react_jsx_runtime.JSX.Element;
225
+
226
+ interface SparklineProps {
227
+ trend: number[];
228
+ className?: string;
229
+ }
230
+ declare function Sparkline({ trend, className }: SparklineProps): react_jsx_runtime.JSX.Element;
231
+
232
+ interface SpinnerProps {
233
+ size?: "sm" | "md" | "lg";
234
+ className?: string;
235
+ }
236
+ declare function Spinner({ size, className }: SpinnerProps): react_jsx_runtime.JSX.Element;
237
+
238
+ type StatusDot = "success" | "warning" | "danger" | "idle";
239
+ interface StatusBarItem {
240
+ dot?: StatusDot;
241
+ label: string;
242
+ }
243
+ interface StatusBarProps {
244
+ items: StatusBarItem[];
245
+ trailing?: ReactNode;
246
+ className?: string;
247
+ }
248
+ declare function StatusBar({ items, trailing, className }: StatusBarProps): react_jsx_runtime.JSX.Element;
249
+
250
+ interface TableProps {
251
+ children: ReactNode;
252
+ className?: string;
253
+ }
254
+ declare function Table({ children, className }: TableProps): react_jsx_runtime.JSX.Element;
255
+ declare function TableHead({ children }: {
256
+ children: ReactNode;
257
+ }): react_jsx_runtime.JSX.Element;
258
+ interface TableHeaderProps {
259
+ children?: ReactNode;
260
+ className?: string;
261
+ onClick?: () => void;
262
+ }
263
+ declare function TableHeader({ children, className, onClick }: TableHeaderProps): react_jsx_runtime.JSX.Element;
264
+ declare function TableBody({ children }: {
265
+ children: ReactNode;
266
+ }): react_jsx_runtime.JSX.Element;
267
+ interface TableRowProps {
268
+ children: ReactNode;
269
+ className?: string;
270
+ onClick?: () => void;
271
+ }
272
+ declare function TableRow({ children, className, onClick }: TableRowProps): react_jsx_runtime.JSX.Element;
273
+ declare function TableCell({ children, className }: {
274
+ children: ReactNode;
275
+ className?: string;
276
+ }): react_jsx_runtime.JSX.Element;
277
+
278
+ interface Tab {
279
+ value: string;
280
+ label: string;
281
+ }
282
+ interface TabsProps {
283
+ tabs: Tab[];
284
+ value: string;
285
+ onChange: (value: string) => void;
286
+ className?: string;
287
+ }
288
+ declare function Tabs({ tabs, value, onChange, className }: TabsProps): react_jsx_runtime.JSX.Element;
289
+
290
+ interface ToggleProps {
291
+ options: [string, string];
292
+ value: string;
293
+ onChange: (value: string) => void;
294
+ className?: string;
295
+ }
296
+ declare function Toggle({ options, value, onChange, className }: ToggleProps): react_jsx_runtime.JSX.Element;
297
+
298
+ export { Accordion, AccordionContent, type AccordionContentProps, AccordionItem, type AccordionItemProps, type AccordionProps, AccordionTrigger, type AccordionTriggerProps, Badge, type BadgeProps, Button, type ButtonProps, Card, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Chip, ChipGroup, type ChipGroupOption, type ChipGroupProps, type ChipProps, CodeBlock, type CodeBlockProps, CopyButton, type CopyButtonProps, Dialog, DialogClose, DialogContent, type DialogContentProps, DialogDescription, DialogFooter, DialogHeader, type DialogProps, DialogTitle, EmptyState, type EmptyStateProps, Input, type InputProps, Kbd, type KbdProps, Loading, type LoadingProps, Modal, type ModalProps, type NavTabItem, NavTabs, type NavTabsProps, SectionHeader, type SectionHeaderProps, Select, type SelectOption, type SelectProps, Separator, type SeparatorProps, SidePanel, type SidePanelProps, Skeleton, type SkeletonProps, SkeletonTable, type SkeletonTableProps, Sparkline, type SparklineProps, Spinner, type SpinnerProps, StatusBar, type StatusBarItem, type StatusBarProps, type Tab, Table, TableBody, TableCell, TableHead, TableHeader, type TableHeaderProps, type TableProps, TableRow, type TableRowProps, Tabs, type TabsProps, Toggle, type ToggleProps };