@reifydb/ui 0.9.3 → 0.10.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.
package/dist/index.cjs CHANGED
@@ -76,11 +76,11 @@ module.exports = __toCommonJS(index_exports);
76
76
  // src/components/badge/badge.tsx
77
77
  var import_jsx_runtime = require("react/jsx-runtime");
78
78
  var variantStyles = {
79
- active: "font-bold text-primary",
79
+ active: "font-medium text-primary",
80
80
  inactive: "text-text-secondary",
81
81
  "coming-soon": "text-text-secondary",
82
82
  default: "text-text-primary",
83
- signal: "font-bold text-primary",
83
+ signal: "font-medium text-primary",
84
84
  success: "text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-success/15 text-status-success border-status-success/30",
85
85
  danger: "text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30",
86
86
  warning: "text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-warning/15 text-status-warning border-status-warning/30",
@@ -102,12 +102,12 @@ function Badge({ variant = "default", children, className = "", onClick }) {
102
102
  var import_react = require("react");
103
103
  var import_jsx_runtime2 = require("react/jsx-runtime");
104
104
  var variantStyles2 = {
105
- primary: "bg-primary text-white font-bold border-border-default hover:brightness-90",
106
- secondary: "bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated",
105
+ primary: "bg-primary text-text-primary font-semibold border-primary-dark shadow-soft hover:brightness-90",
106
+ secondary: "bg-bg-secondary text-text-primary border-border-light font-semibold hover:bg-bg-elevated",
107
107
  ghost: "text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary",
108
108
  forest: "bg-forest text-white font-semibold border-forest-border hover:brightness-90",
109
109
  danger: "bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20",
110
- destructive: "bg-status-error text-white font-bold border-border-default hover:brightness-90",
110
+ destructive: "bg-status-error text-white font-semibold border-status-error hover:brightness-90",
111
111
  link: "text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark"
112
112
  };
113
113
  var sizeStyles = {
@@ -164,7 +164,7 @@ function Chip({ active, onClick, children, className = "" }) {
164
164
  "button",
165
165
  {
166
166
  onClick,
167
- className: `text-xs font-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-none ${active ? "text-primary border-primary/30 bg-primary/10" : "text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle"} ${className}`,
167
+ className: `text-xs font-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-colors duration-150 ${active ? "text-primary border-primary/30 bg-primary/10" : "text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle"} ${className}`,
168
168
  children
169
169
  }
170
170
  );
@@ -269,7 +269,7 @@ function Dialog({ open, onOpenChange, children }) {
269
269
  }, [open, onOpenChange]);
270
270
  if (!open) return null;
271
271
  return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
272
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "fixed inset-0 bg-black/60", onClick: () => onOpenChange(false) }),
272
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "fixed inset-0 bg-text-primary/40", onClick: () => onOpenChange(false) }),
273
273
  /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "relative z-50", children })
274
274
  ] });
275
275
  }
@@ -399,7 +399,7 @@ function Modal({ open, onClose, title, children, className = "" }) {
399
399
  }, [open, handleKeyDown]);
400
400
  if (!open) return null;
401
401
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
402
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "absolute inset-0 bg-black/60", onClick: onClose }),
402
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "absolute inset-0 bg-text-primary/40", onClick: onClose }),
403
403
  /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
404
404
  "div",
405
405
  {
@@ -429,8 +429,8 @@ var import_jsx_runtime14 = require("react/jsx-runtime");
429
429
  var variantStyles3 = {
430
430
  underline: {
431
431
  container: "flex border-b border-border-light bg-transparent",
432
- item: "px-5 py-2.5 font-mono text-xs uppercase tracking-[1.4px] transition-colors border-b-2",
433
- active: "border-primary font-bold text-text-primary",
432
+ item: "px-5 py-2.5 text-sm font-medium transition-colors border-b-2",
433
+ active: "border-primary font-semibold text-text-primary",
434
434
  inactive: "border-transparent text-text-muted hover:text-text-primary"
435
435
  },
436
436
  pill: {
@@ -455,7 +455,7 @@ function NavTabs({ items, variant = "underline", className = "", renderLink }) {
455
455
  var import_jsx_runtime15 = require("react/jsx-runtime");
456
456
  function SectionHeader({ title, badge, className = "" }) {
457
457
  return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `flex items-center justify-between bg-bg-tertiary px-3 py-2.5 rounded-md ${className}`, children: [
458
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs font-semibold text-text-secondary uppercase tracking-[1.4px]", children: title }),
458
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs font-semibold text-text-secondary", children: title }),
459
459
  badge
460
460
  ] });
461
461
  }
@@ -489,7 +489,7 @@ Select.displayName = "Select";
489
489
  // src/components/separator/separator.tsx
490
490
  var import_jsx_runtime17 = require("react/jsx-runtime");
491
491
  function Separator({ className = "" }) {
492
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: `mx-1 h-5 w-px shrink-0 bg-border-default ${className}` });
492
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: `mx-1 h-5 w-px shrink-0 bg-border-light ${className}` });
493
493
  }
494
494
 
495
495
  // src/components/skeleton/skeleton.tsx
@@ -582,7 +582,7 @@ function TableBody({ children }) {
582
582
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tbody", { className: "divide-y divide-border-light", children });
583
583
  }
584
584
  function TableRow({ children, className = "", onClick }) {
585
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { className: `border-l-2 border-l-transparent even:bg-bg-tertiary/40 hover:border-l-primary hover:bg-bg-tertiary transition-colors ${onClick ? "cursor-pointer" : ""} ${className}`, onClick, children });
585
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { className: `even:bg-bg-tertiary/40 hover:bg-bg-tertiary transition-colors ${onClick ? "cursor-pointer" : ""} ${className}`, onClick, children });
586
586
  }
587
587
  function TableCell({ children, className = "" }) {
588
588
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("td", { className: `px-4 py-3.5 text-text-secondary ${className}`, children });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../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/separator/separator.tsx","../src/components/skeleton/skeleton.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":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\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 { 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 { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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: \"font-bold text-primary\",\n inactive: \"text-text-secondary\",\n \"coming-soon\": \"text-text-secondary\",\n default: \"text-text-primary\",\n signal: \"font-bold text-primary\",\n success: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-success/15 text-status-success border-status-success/30\",\n danger: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n warning: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-warning/15 text-status-warning border-status-warning/30\",\n error: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n outline: \"text-text-muted\",\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 ${variantStyles[variant]} ${className}`}\n onClick={onClick}\n >\n {children}\n </span>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { type ButtonHTMLAttributes, forwardRef } from \"react\";\n\ntype ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"forest\" | \"danger\" | \"destructive\" | \"link\";\ntype ButtonSize = \"sm\" | \"md\" | \"lg\" | \"icon\";\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-white font-bold border-border-default hover:brightness-90\",\n secondary: \"bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated\",\n ghost:\n \"text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary\",\n forest: \"bg-forest text-white font-semibold border-forest-border hover:brightness-90\",\n danger: \"bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20\",\n destructive: \"bg-status-error text-white font-bold border-border-default hover:brightness-90\",\n link:\n \"text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark\",\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-semibold transition-colors duration-150\n rounded-md border\n focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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={`glass-card 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-primary ${className}`}>{children}</h3>;\n}\n\nexport function CardDescription({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <p className={`mt-1 text-xs text-text-muted ${className}`}>{children}</p>;\n}\n\nexport function CardContent({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <div className={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-light ${className}`}>{children}</div>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-none ${\n active\n ? \"text-primary border-primary/30 bg-primary/10\"\n : \"text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle\"\n } ${className}`}\n >\n {children}\n </button>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-muted\n rounded-sm border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary border border-border-light rounded-lg shadow-[var(--shadow-medium)] ${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-light ${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-primary ${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-muted ${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-muted hover:text-text-primary 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-light ${className}`}>\n {children}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-muted\">{icon}</div>}\n <h3 className=\"text-sm font-medium text-text-primary\">{title}</h3>\n {description && <p className=\"mt-1 text-sm text-text-muted\">{description}</p>}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={`h-9 rounded-md border border-border-light bg-bg-primary px-3 text-sm text-text-primary\n placeholder:text-text-muted\n focus:bg-bg-tertiary focus:outline-none focus:ring-2 focus:ring-primary\n disabled:cursor-not-allowed disabled:opacity-50\n ${error ? \"border-status-error\" : \"\"} ${className}`}\n {...props}\n />\n {error && <p className=\"text-xs text-status-error\">{error}</p>}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-sm border border-border-default\n bg-bg-tertiary px-1.5 font-mono text-[10px] font-medium text-text-muted ${className}`}\n >\n {children}\n </kbd>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-lg border border-border-light bg-bg-secondary p-6 shadow-[var(--shadow-medium)] ${className}`}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"text-base font-semibold text-text-primary\">{title}</h2>\n <button\n onClick={onClose}\n className=\"p-1 text-text-muted transition-colors rounded-md hover:bg-bg-tertiary\"\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-light bg-transparent\",\n item: \"px-5 py-2.5 font-mono text-xs uppercase tracking-[1.4px] transition-colors border-b-2\",\n active: \"border-primary font-bold text-text-primary\",\n inactive: \"border-transparent text-text-muted hover:text-text-primary\",\n },\n pill: {\n container: \"flex items-center gap-1\",\n item: \"px-3 py-2 text-sm font-medium transition-colors rounded-[var(--radius-sm)]\",\n active: \"bg-bg-tertiary text-text-primary\",\n inactive: \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\",\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-tertiary px-3 py-2.5 rounded-md ${className}`}>\n <span className=\"text-xs font-semibold text-text-secondary uppercase tracking-[1.4px]\">{title}</span>\n {badge}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n className={`h-9 rounded-md border border-border-light bg-bg-secondary px-3 text-sm text-text-primary\n focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-default ${className}`} />;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport interface SkeletonProps {\n className?: string;\n}\n\nexport function Skeleton({ className = \"\" }: SkeletonProps) {\n return (\n <div\n className={`rounded-[var(--radius-sm)] bg-bg-tertiary animate-pulse ${className}`}\n />\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-status-error\" : v >= 7 ? \"bg-status-warning\" : \"bg-text-muted\";\n return <div key={i} className={`w-[3px] rounded-full ${col}`} style={{ height: `${h}px` }} />;\n })}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-status-success\",\n warning: \"bg-status-warning\",\n danger: \"bg-status-error\",\n idle: \"bg-text-muted\",\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-light bg-bg-secondary px-4 ${className}`}>\n {items.map((item, i) => (\n <div key={i} className=\"flex items-center gap-1.5 text-xs text-text-muted\">\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-muted\">{trailing}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-md\">\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-light\">\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-muted ${onClick ? \"cursor-pointer select-none hover:text-text-primary\" : \"\"} ${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-light\">{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={`border-l-2 border-l-transparent even:bg-bg-tertiary/40 hover:border-l-primary hover:bg-bg-tertiary 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-secondary ${className}`}>{children}</td>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-md border border-border-light bg-bg-secondary 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-sm\n ${\n value === tab.value\n ? \"bg-bg-tertiary text-text-primary\"\n : \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\"\n }`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-primary\" : \"text-text-muted\"}`}\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-full transition-colors border border-border-light ${\n value === right ? \"bg-primary\" : \"bg-bg-tertiary\"\n }`}\n >\n <span\n className={`absolute top-0.5 w-4 h-4 rounded-full transition-transform bg-text-primary ${\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-primary\" : \"text-text-muted\"}`}\n onClick={() => onChange(right)}\n >\n {right}\n </span>\n </div>\n );\n}\n"],"mappings":"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","names":["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_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/index.ts","../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/separator/separator.tsx","../src/components/skeleton/skeleton.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":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\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 { 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 { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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: \"font-medium text-primary\",\n inactive: \"text-text-secondary\",\n \"coming-soon\": \"text-text-secondary\",\n default: \"text-text-primary\",\n signal: \"font-medium text-primary\",\n success: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-success/15 text-status-success border-status-success/30\",\n danger: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n warning: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-warning/15 text-status-warning border-status-warning/30\",\n error: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n outline: \"text-text-muted\",\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 ${variantStyles[variant]} ${className}`}\n onClick={onClick}\n >\n {children}\n </span>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { type ButtonHTMLAttributes, forwardRef } from \"react\";\n\ntype ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"forest\" | \"danger\" | \"destructive\" | \"link\";\ntype ButtonSize = \"sm\" | \"md\" | \"lg\" | \"icon\";\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-text-primary font-semibold border-primary-dark shadow-soft hover:brightness-90\",\n secondary: \"bg-bg-secondary text-text-primary border-border-light font-semibold hover:bg-bg-elevated\",\n ghost:\n \"text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary\",\n forest: \"bg-forest text-white font-semibold border-forest-border hover:brightness-90\",\n danger: \"bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20\",\n destructive: \"bg-status-error text-white font-semibold border-status-error hover:brightness-90\",\n link:\n \"text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark\",\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-semibold transition-colors duration-150\n rounded-md border\n focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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={`glass-card 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-primary ${className}`}>{children}</h3>;\n}\n\nexport function CardDescription({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <p className={`mt-1 text-xs text-text-muted ${className}`}>{children}</p>;\n}\n\nexport function CardContent({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <div className={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-light ${className}`}>{children}</div>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-colors duration-150 ${\n active\n ? \"text-primary border-primary/30 bg-primary/10\"\n : \"text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle\"\n } ${className}`}\n >\n {children}\n </button>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-muted\n rounded-sm border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-text-primary/40\" 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-secondary border border-border-light rounded-lg shadow-[var(--shadow-medium)] ${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-light ${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-primary ${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-muted ${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-muted hover:text-text-primary 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-light ${className}`}>\n {children}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-muted\">{icon}</div>}\n <h3 className=\"text-sm font-medium text-text-primary\">{title}</h3>\n {description && <p className=\"mt-1 text-sm text-text-muted\">{description}</p>}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={`h-9 rounded-md border border-border-light bg-bg-primary px-3 text-sm text-text-primary\n placeholder:text-text-muted\n focus:bg-bg-tertiary focus:outline-none focus:ring-2 focus:ring-primary\n disabled:cursor-not-allowed disabled:opacity-50\n ${error ? \"border-status-error\" : \"\"} ${className}`}\n {...props}\n />\n {error && <p className=\"text-xs text-status-error\">{error}</p>}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-sm border border-border-default\n bg-bg-tertiary px-1.5 font-mono text-[10px] font-medium text-text-muted ${className}`}\n >\n {children}\n </kbd>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-text-primary/40\" onClick={onClose} />\n <div\n className={`relative w-full max-w-md rounded-lg border border-border-light bg-bg-secondary p-6 shadow-[var(--shadow-medium)] ${className}`}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"text-base font-semibold text-text-primary\">{title}</h2>\n <button\n onClick={onClose}\n className=\"p-1 text-text-muted transition-colors rounded-md hover:bg-bg-tertiary\"\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-light bg-transparent\",\n item: \"px-5 py-2.5 text-sm font-medium transition-colors border-b-2\",\n active: \"border-primary font-semibold text-text-primary\",\n inactive: \"border-transparent text-text-muted hover:text-text-primary\",\n },\n pill: {\n container: \"flex items-center gap-1\",\n item: \"px-3 py-2 text-sm font-medium transition-colors rounded-[var(--radius-sm)]\",\n active: \"bg-bg-tertiary text-text-primary\",\n inactive: \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\",\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-tertiary px-3 py-2.5 rounded-md ${className}`}>\n <span className=\"text-xs font-semibold text-text-secondary\">{title}</span>\n {badge}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n className={`h-9 rounded-md border border-border-light bg-bg-secondary px-3 text-sm text-text-primary\n focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-light ${className}`} />;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport interface SkeletonProps {\n className?: string;\n}\n\nexport function Skeleton({ className = \"\" }: SkeletonProps) {\n return (\n <div\n className={`rounded-[var(--radius-sm)] bg-bg-tertiary animate-pulse ${className}`}\n />\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-status-error\" : v >= 7 ? \"bg-status-warning\" : \"bg-text-muted\";\n return <div key={i} className={`w-[3px] rounded-full ${col}`} style={{ height: `${h}px` }} />;\n })}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-status-success\",\n warning: \"bg-status-warning\",\n danger: \"bg-status-error\",\n idle: \"bg-text-muted\",\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-light bg-bg-secondary px-4 ${className}`}>\n {items.map((item, i) => (\n <div key={i} className=\"flex items-center gap-1.5 text-xs text-text-muted\">\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-muted\">{trailing}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-md\">\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-light\">\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-muted ${onClick ? \"cursor-pointer select-none hover:text-text-primary\" : \"\"} ${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-light\">{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={`even:bg-bg-tertiary/40 hover:bg-bg-tertiary 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-secondary ${className}`}>{children}</td>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-md border border-border-light bg-bg-secondary 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-sm\n ${\n value === tab.value\n ? \"bg-bg-tertiary text-text-primary\"\n : \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\"\n }`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-primary\" : \"text-text-muted\"}`}\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-full transition-colors border border-border-light ${\n value === right ? \"bg-primary\" : \"bg-bg-tertiary\"\n }`}\n >\n <span\n className={`absolute top-0.5 w-4 h-4 rounded-full transition-transform bg-text-primary ${\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-primary\" : \"text-text-muted\"}`}\n onClick={() => onChange(right)}\n >\n {right}\n </span>\n </div>\n );\n}\n"],"mappings":"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","names":["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_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
package/dist/index.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  // src/components/badge/badge.tsx
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  var variantStyles = {
4
- active: "font-bold text-primary",
4
+ active: "font-medium text-primary",
5
5
  inactive: "text-text-secondary",
6
6
  "coming-soon": "text-text-secondary",
7
7
  default: "text-text-primary",
8
- signal: "font-bold text-primary",
8
+ signal: "font-medium text-primary",
9
9
  success: "text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-success/15 text-status-success border-status-success/30",
10
10
  danger: "text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30",
11
11
  warning: "text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-warning/15 text-status-warning border-status-warning/30",
@@ -27,12 +27,12 @@ function Badge({ variant = "default", children, className = "", onClick }) {
27
27
  import { forwardRef } from "react";
28
28
  import { jsx as jsx2 } from "react/jsx-runtime";
29
29
  var variantStyles2 = {
30
- primary: "bg-primary text-white font-bold border-border-default hover:brightness-90",
31
- secondary: "bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated",
30
+ primary: "bg-primary text-text-primary font-semibold border-primary-dark shadow-soft hover:brightness-90",
31
+ secondary: "bg-bg-secondary text-text-primary border-border-light font-semibold hover:bg-bg-elevated",
32
32
  ghost: "text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary",
33
33
  forest: "bg-forest text-white font-semibold border-forest-border hover:brightness-90",
34
34
  danger: "bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20",
35
- destructive: "bg-status-error text-white font-bold border-border-default hover:brightness-90",
35
+ destructive: "bg-status-error text-white font-semibold border-status-error hover:brightness-90",
36
36
  link: "text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark"
37
37
  };
38
38
  var sizeStyles = {
@@ -89,7 +89,7 @@ function Chip({ active, onClick, children, className = "" }) {
89
89
  "button",
90
90
  {
91
91
  onClick,
92
- className: `text-xs font-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-none ${active ? "text-primary border-primary/30 bg-primary/10" : "text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle"} ${className}`,
92
+ className: `text-xs font-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-colors duration-150 ${active ? "text-primary border-primary/30 bg-primary/10" : "text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle"} ${className}`,
93
93
  children
94
94
  }
95
95
  );
@@ -194,7 +194,7 @@ function Dialog({ open, onOpenChange, children }) {
194
194
  }, [open, onOpenChange]);
195
195
  if (!open) return null;
196
196
  return /* @__PURE__ */ jsxs3("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
197
- /* @__PURE__ */ jsx8("div", { className: "fixed inset-0 bg-black/60", onClick: () => onOpenChange(false) }),
197
+ /* @__PURE__ */ jsx8("div", { className: "fixed inset-0 bg-text-primary/40", onClick: () => onOpenChange(false) }),
198
198
  /* @__PURE__ */ jsx8("div", { className: "relative z-50", children })
199
199
  ] });
200
200
  }
@@ -324,7 +324,7 @@ function Modal({ open, onClose, title, children, className = "" }) {
324
324
  }, [open, handleKeyDown]);
325
325
  if (!open) return null;
326
326
  return /* @__PURE__ */ jsxs7("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
327
- /* @__PURE__ */ jsx13("div", { className: "absolute inset-0 bg-black/60", onClick: onClose }),
327
+ /* @__PURE__ */ jsx13("div", { className: "absolute inset-0 bg-text-primary/40", onClick: onClose }),
328
328
  /* @__PURE__ */ jsxs7(
329
329
  "div",
330
330
  {
@@ -354,8 +354,8 @@ import { jsx as jsx14 } from "react/jsx-runtime";
354
354
  var variantStyles3 = {
355
355
  underline: {
356
356
  container: "flex border-b border-border-light bg-transparent",
357
- item: "px-5 py-2.5 font-mono text-xs uppercase tracking-[1.4px] transition-colors border-b-2",
358
- active: "border-primary font-bold text-text-primary",
357
+ item: "px-5 py-2.5 text-sm font-medium transition-colors border-b-2",
358
+ active: "border-primary font-semibold text-text-primary",
359
359
  inactive: "border-transparent text-text-muted hover:text-text-primary"
360
360
  },
361
361
  pill: {
@@ -380,7 +380,7 @@ function NavTabs({ items, variant = "underline", className = "", renderLink }) {
380
380
  import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
381
381
  function SectionHeader({ title, badge, className = "" }) {
382
382
  return /* @__PURE__ */ jsxs8("div", { className: `flex items-center justify-between bg-bg-tertiary px-3 py-2.5 rounded-md ${className}`, children: [
383
- /* @__PURE__ */ jsx15("span", { className: "text-xs font-semibold text-text-secondary uppercase tracking-[1.4px]", children: title }),
383
+ /* @__PURE__ */ jsx15("span", { className: "text-xs font-semibold text-text-secondary", children: title }),
384
384
  badge
385
385
  ] });
386
386
  }
@@ -414,7 +414,7 @@ Select.displayName = "Select";
414
414
  // src/components/separator/separator.tsx
415
415
  import { jsx as jsx17 } from "react/jsx-runtime";
416
416
  function Separator({ className = "" }) {
417
- return /* @__PURE__ */ jsx17("div", { className: `mx-1 h-5 w-px shrink-0 bg-border-default ${className}` });
417
+ return /* @__PURE__ */ jsx17("div", { className: `mx-1 h-5 w-px shrink-0 bg-border-light ${className}` });
418
418
  }
419
419
 
420
420
  // src/components/skeleton/skeleton.tsx
@@ -507,7 +507,7 @@ function TableBody({ children }) {
507
507
  return /* @__PURE__ */ jsx22("tbody", { className: "divide-y divide-border-light", children });
508
508
  }
509
509
  function TableRow({ children, className = "", onClick }) {
510
- return /* @__PURE__ */ jsx22("tr", { className: `border-l-2 border-l-transparent even:bg-bg-tertiary/40 hover:border-l-primary hover:bg-bg-tertiary transition-colors ${onClick ? "cursor-pointer" : ""} ${className}`, onClick, children });
510
+ return /* @__PURE__ */ jsx22("tr", { className: `even:bg-bg-tertiary/40 hover:bg-bg-tertiary transition-colors ${onClick ? "cursor-pointer" : ""} ${className}`, onClick, children });
511
511
  }
512
512
  function TableCell({ children, className = "" }) {
513
513
  return /* @__PURE__ */ jsx22("td", { className: `px-4 py-3.5 text-text-secondary ${className}`, children });
@@ -1 +1 @@
1
- {"version":3,"sources":["../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/separator/separator.tsx","../src/components/skeleton/skeleton.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":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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: \"font-bold text-primary\",\n inactive: \"text-text-secondary\",\n \"coming-soon\": \"text-text-secondary\",\n default: \"text-text-primary\",\n signal: \"font-bold text-primary\",\n success: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-success/15 text-status-success border-status-success/30\",\n danger: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n warning: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-warning/15 text-status-warning border-status-warning/30\",\n error: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n outline: \"text-text-muted\",\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 ${variantStyles[variant]} ${className}`}\n onClick={onClick}\n >\n {children}\n </span>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { type ButtonHTMLAttributes, forwardRef } from \"react\";\n\ntype ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"forest\" | \"danger\" | \"destructive\" | \"link\";\ntype ButtonSize = \"sm\" | \"md\" | \"lg\" | \"icon\";\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-white font-bold border-border-default hover:brightness-90\",\n secondary: \"bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated\",\n ghost:\n \"text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary\",\n forest: \"bg-forest text-white font-semibold border-forest-border hover:brightness-90\",\n danger: \"bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20\",\n destructive: \"bg-status-error text-white font-bold border-border-default hover:brightness-90\",\n link:\n \"text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark\",\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-semibold transition-colors duration-150\n rounded-md border\n focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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={`glass-card 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-primary ${className}`}>{children}</h3>;\n}\n\nexport function CardDescription({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <p className={`mt-1 text-xs text-text-muted ${className}`}>{children}</p>;\n}\n\nexport function CardContent({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <div className={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-light ${className}`}>{children}</div>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-none ${\n active\n ? \"text-primary border-primary/30 bg-primary/10\"\n : \"text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle\"\n } ${className}`}\n >\n {children}\n </button>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-muted\n rounded-sm border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary border border-border-light rounded-lg shadow-[var(--shadow-medium)] ${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-light ${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-primary ${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-muted ${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-muted hover:text-text-primary 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-light ${className}`}>\n {children}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-muted\">{icon}</div>}\n <h3 className=\"text-sm font-medium text-text-primary\">{title}</h3>\n {description && <p className=\"mt-1 text-sm text-text-muted\">{description}</p>}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={`h-9 rounded-md border border-border-light bg-bg-primary px-3 text-sm text-text-primary\n placeholder:text-text-muted\n focus:bg-bg-tertiary focus:outline-none focus:ring-2 focus:ring-primary\n disabled:cursor-not-allowed disabled:opacity-50\n ${error ? \"border-status-error\" : \"\"} ${className}`}\n {...props}\n />\n {error && <p className=\"text-xs text-status-error\">{error}</p>}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-sm border border-border-default\n bg-bg-tertiary px-1.5 font-mono text-[10px] font-medium text-text-muted ${className}`}\n >\n {children}\n </kbd>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-lg border border-border-light bg-bg-secondary p-6 shadow-[var(--shadow-medium)] ${className}`}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"text-base font-semibold text-text-primary\">{title}</h2>\n <button\n onClick={onClose}\n className=\"p-1 text-text-muted transition-colors rounded-md hover:bg-bg-tertiary\"\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-light bg-transparent\",\n item: \"px-5 py-2.5 font-mono text-xs uppercase tracking-[1.4px] transition-colors border-b-2\",\n active: \"border-primary font-bold text-text-primary\",\n inactive: \"border-transparent text-text-muted hover:text-text-primary\",\n },\n pill: {\n container: \"flex items-center gap-1\",\n item: \"px-3 py-2 text-sm font-medium transition-colors rounded-[var(--radius-sm)]\",\n active: \"bg-bg-tertiary text-text-primary\",\n inactive: \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\",\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-tertiary px-3 py-2.5 rounded-md ${className}`}>\n <span className=\"text-xs font-semibold text-text-secondary uppercase tracking-[1.4px]\">{title}</span>\n {badge}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n className={`h-9 rounded-md border border-border-light bg-bg-secondary px-3 text-sm text-text-primary\n focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-default ${className}`} />;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport interface SkeletonProps {\n className?: string;\n}\n\nexport function Skeleton({ className = \"\" }: SkeletonProps) {\n return (\n <div\n className={`rounded-[var(--radius-sm)] bg-bg-tertiary animate-pulse ${className}`}\n />\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-status-error\" : v >= 7 ? \"bg-status-warning\" : \"bg-text-muted\";\n return <div key={i} className={`w-[3px] rounded-full ${col}`} style={{ height: `${h}px` }} />;\n })}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-status-success\",\n warning: \"bg-status-warning\",\n danger: \"bg-status-error\",\n idle: \"bg-text-muted\",\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-light bg-bg-secondary px-4 ${className}`}>\n {items.map((item, i) => (\n <div key={i} className=\"flex items-center gap-1.5 text-xs text-text-muted\">\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-muted\">{trailing}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-md\">\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-light\">\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-muted ${onClick ? \"cursor-pointer select-none hover:text-text-primary\" : \"\"} ${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-light\">{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={`border-l-2 border-l-transparent even:bg-bg-tertiary/40 hover:border-l-primary hover:bg-bg-tertiary 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-secondary ${className}`}>{children}</td>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-md border border-border-light bg-bg-secondary 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-sm\n ${\n value === tab.value\n ? \"bg-bg-tertiary text-text-primary\"\n : \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\"\n }`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-primary\" : \"text-text-muted\"}`}\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-full transition-colors border border-border-light ${\n value === right ? \"bg-primary\" : \"bg-bg-tertiary\"\n }`}\n >\n <span\n className={`absolute top-0.5 w-4 h-4 rounded-full transition-transform bg-text-primary ${\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-primary\" : \"text-text-muted\"}`}\n onClick={() => onChange(right)}\n >\n {right}\n </span>\n </div>\n );\n}\n"],"mappings":"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","names":["jsx","variantStyles","jsx","jsx","jsx","jsx","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsx","jsxs","useEffect","useCallback","jsx","jsxs","jsx","variantStyles","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","jsx","jsx","jsxs"]}
1
+ {"version":3,"sources":["../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/separator/separator.tsx","../src/components/skeleton/skeleton.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":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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: \"font-medium text-primary\",\n inactive: \"text-text-secondary\",\n \"coming-soon\": \"text-text-secondary\",\n default: \"text-text-primary\",\n signal: \"font-medium text-primary\",\n success: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-success/15 text-status-success border-status-success/30\",\n danger: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n warning: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-warning/15 text-status-warning border-status-warning/30\",\n error: \"text-[11px] font-medium rounded-full border px-2.5 py-0.5 bg-status-error/15 text-status-error border-status-error/30\",\n outline: \"text-text-muted\",\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 ${variantStyles[variant]} ${className}`}\n onClick={onClick}\n >\n {children}\n </span>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { type ButtonHTMLAttributes, forwardRef } from \"react\";\n\ntype ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"forest\" | \"danger\" | \"destructive\" | \"link\";\ntype ButtonSize = \"sm\" | \"md\" | \"lg\" | \"icon\";\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-text-primary font-semibold border-primary-dark shadow-soft hover:brightness-90\",\n secondary: \"bg-bg-secondary text-text-primary border-border-light font-semibold hover:bg-bg-elevated\",\n ghost:\n \"text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary\",\n forest: \"bg-forest text-white font-semibold border-forest-border hover:brightness-90\",\n danger: \"bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20\",\n destructive: \"bg-status-error text-white font-semibold border-status-error hover:brightness-90\",\n link:\n \"text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark\",\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-semibold transition-colors duration-150\n rounded-md border\n focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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={`glass-card 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-primary ${className}`}>{children}</h3>;\n}\n\nexport function CardDescription({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <p className={`mt-1 text-xs text-text-muted ${className}`}>{children}</p>;\n}\n\nexport function CardContent({ children, className = \"\" }: { children: ReactNode; className?: string }) {\n return <div className={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-light ${className}`}>{children}</div>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-semibold px-3 py-1 rounded-full border cursor-pointer whitespace-nowrap transition-colors duration-150 ${\n active\n ? \"text-primary border-primary/30 bg-primary/10\"\n : \"text-text-secondary bg-bg-tertiary border-border-light hover:text-text-primary hover:border-border-subtle\"\n } ${className}`}\n >\n {children}\n </button>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-muted\n rounded-sm border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-text-primary/40\" 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-secondary border border-border-light rounded-lg shadow-[var(--shadow-medium)] ${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-light ${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-primary ${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-muted ${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-muted hover:text-text-primary 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-light ${className}`}>\n {children}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-muted\">{icon}</div>}\n <h3 className=\"text-sm font-medium text-text-primary\">{title}</h3>\n {description && <p className=\"mt-1 text-sm text-text-muted\">{description}</p>}\n {action && <div className=\"mt-4\">{action}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={`h-9 rounded-md border border-border-light bg-bg-primary px-3 text-sm text-text-primary\n placeholder:text-text-muted\n focus:bg-bg-tertiary focus:outline-none focus:ring-2 focus:ring-primary\n disabled:cursor-not-allowed disabled:opacity-50\n ${error ? \"border-status-error\" : \"\"} ${className}`}\n {...props}\n />\n {error && <p className=\"text-xs text-status-error\">{error}</p>}\n </div>\n );\n },\n);\n\nInput.displayName = \"Input\";\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-sm border border-border-default\n bg-bg-tertiary px-1.5 font-mono text-[10px] font-medium text-text-muted ${className}`}\n >\n {children}\n </kbd>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted 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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-text-primary/40\" onClick={onClose} />\n <div\n className={`relative w-full max-w-md rounded-lg border border-border-light bg-bg-secondary p-6 shadow-[var(--shadow-medium)] ${className}`}\n >\n <div className=\"mb-4 flex items-center justify-between\">\n <h2 className=\"text-base font-semibold text-text-primary\">{title}</h2>\n <button\n onClick={onClose}\n className=\"p-1 text-text-muted transition-colors rounded-md hover:bg-bg-tertiary\"\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-light bg-transparent\",\n item: \"px-5 py-2.5 text-sm font-medium transition-colors border-b-2\",\n active: \"border-primary font-semibold text-text-primary\",\n inactive: \"border-transparent text-text-muted hover:text-text-primary\",\n },\n pill: {\n container: \"flex items-center gap-1\",\n item: \"px-3 py-2 text-sm font-medium transition-colors rounded-[var(--radius-sm)]\",\n active: \"bg-bg-tertiary text-text-primary\",\n inactive: \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\",\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-tertiary px-3 py-2.5 rounded-md ${className}`}>\n <span className=\"text-xs font-semibold text-text-secondary\">{title}</span>\n {badge}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { 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-secondary\">\n {label}\n </label>\n )}\n <select\n ref={ref}\n id={selectId}\n className={`h-9 rounded-md border border-border-light bg-bg-secondary px-3 text-sm text-text-primary\n focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary\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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-light ${className}`} />;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport interface SkeletonProps {\n className?: string;\n}\n\nexport function Skeleton({ className = \"\" }: SkeletonProps) {\n return (\n <div\n className={`rounded-[var(--radius-sm)] bg-bg-tertiary animate-pulse ${className}`}\n />\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-status-error\" : v >= 7 ? \"bg-status-warning\" : \"bg-text-muted\";\n return <div key={i} className={`w-[3px] rounded-full ${col}`} style={{ height: `${h}px` }} />;\n })}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-muted ${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","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-status-success\",\n warning: \"bg-status-warning\",\n danger: \"bg-status-error\",\n idle: \"bg-text-muted\",\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-light bg-bg-secondary px-4 ${className}`}>\n {items.map((item, i) => (\n <div key={i} className=\"flex items-center gap-1.5 text-xs text-text-muted\">\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-muted\">{trailing}</div>}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport 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-md\">\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-light\">\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-muted ${onClick ? \"cursor-pointer select-none hover:text-text-primary\" : \"\"} ${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-light\">{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={`even:bg-bg-tertiary/40 hover:bg-bg-tertiary 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-secondary ${className}`}>{children}</td>;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-md border border-border-light bg-bg-secondary 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-sm\n ${\n value === tab.value\n ? \"bg-bg-tertiary text-text-primary\"\n : \"text-text-muted hover:bg-bg-secondary hover:text-text-primary\"\n }`}\n >\n {tab.label}\n </button>\n ))}\n </div>\n );\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport 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-primary\" : \"text-text-muted\"}`}\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-full transition-colors border border-border-light ${\n value === right ? \"bg-primary\" : \"bg-bg-tertiary\"\n }`}\n >\n <span\n className={`absolute top-0.5 w-4 h-4 rounded-full transition-transform bg-text-primary ${\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-primary\" : \"text-text-muted\"}`}\n onClick={() => onChange(right)}\n >\n {right}\n </span>\n </div>\n );\n}\n"],"mappings":"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","names":["jsx","variantStyles","jsx","jsx","jsx","jsx","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsx","jsxs","useEffect","useCallback","jsx","jsxs","jsx","variantStyles","jsx","jsxs","forwardRef","jsx","jsxs","jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","jsx","jsx","jsxs"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reifydb/ui",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "description": "Shared UI component library for ReifyDB",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -19,8 +19,8 @@
19
19
  outline-offset: 2px;
20
20
  }
21
21
  ::selection {
22
- background: var(--color-primary);
23
- color: #ffffff;
22
+ background: color-mix(in srgb, var(--color-primary) 30%, transparent);
23
+ color: var(--color-text-primary);
24
24
  }
25
25
  input::placeholder,
26
26
  textarea::placeholder {
@@ -29,6 +29,13 @@
29
29
  h1, h2, h3, h4, h5, h6 {
30
30
  font-family: var(--font-display);
31
31
  }
32
+ h1, h2 {
33
+ font-weight: 400;
34
+ letter-spacing: -0.03em;
35
+ }
36
+ h3, h4, h5, h6 {
37
+ font-weight: 600;
38
+ }
32
39
  table, [data-numeric] {
33
40
  font-variant-numeric: tabular-nums;
34
41
  }
@@ -109,7 +116,7 @@
109
116
  bottom: 0;
110
117
  left: 0;
111
118
  width: 0;
112
- height: 3px;
119
+ height: 2px;
113
120
  background: var(--color-primary);
114
121
  transition: width 0.15s ease;
115
122
  }
@@ -120,7 +127,7 @@
120
127
  /* ── Uppercase label ─────────────────────────────────────── */
121
128
  .label-uppercase {
122
129
  text-transform: uppercase;
123
- letter-spacing: 1.4px;
130
+ letter-spacing: 0.06em;
124
131
  font-weight: 600;
125
132
  }
126
133
 
@@ -172,7 +179,7 @@
172
179
  /* ── Scrollbar ───────────────────────────────────────────── */
173
180
  ::-webkit-scrollbar { width: 6px; height: 6px; }
174
181
  ::-webkit-scrollbar-track { background: var(--color-bg-primary); }
175
- ::-webkit-scrollbar-thumb { background: var(--color-border-subtle); border-radius: 0; }
182
+ ::-webkit-scrollbar-thumb { background: var(--color-border-subtle); border-radius: var(--radius-pill); }
176
183
  ::-webkit-scrollbar-thumb:hover { background: var(--color-primary); }
177
184
 
178
185
  /* ── Reduced motion ──────────────────────────────────────── */
@@ -2,16 +2,14 @@
2
2
  /* Copyright (c) 2026 ReifyDB */
3
3
 
4
4
  @theme {
5
- /* Background Colors - Light neutral surfaces */
6
- --color-bg-primary: #f7f7f8;
5
+ --color-bg-primary: #faf8f2;
7
6
  --color-bg-secondary: #ffffff;
8
- --color-bg-tertiary: #f0f0f2;
9
- --color-bg-elevated: #e4e4e7;
7
+ --color-bg-tertiary: #f4f3fb;
8
+ --color-bg-elevated: #e9e7f4;
10
9
 
11
- /* Text Colors - Zinc ramp */
12
- --color-text-primary: #18181b;
13
- --color-text-secondary: #3f3f46;
14
- --color-text-muted: #71717a;
10
+ --color-text-primary: #1b1840;
11
+ --color-text-secondary: #3a3766;
12
+ --color-text-muted: #5d5a80;
15
13
 
16
14
  /* Primary Colors - Indigo-violet accent */
17
15
  --color-primary: #7e85f2;
@@ -22,22 +20,21 @@
22
20
  --color-forest: #166534;
23
21
  --color-forest-border: #14572f;
24
22
 
25
- /* Border Colors - Near-black brutalist border + light hairlines */
26
- --color-border-default: #18181b;
27
- --color-border-light: #e4e4e7;
28
- --color-border-subtle: #d4d4d8;
23
+ --color-border-default: #8a8899;
24
+ --color-border-light: #1b18401f;
25
+ --color-border-subtle: #1b184033;
29
26
  --color-border-ghost: rgba(126, 133, 242, 0.3);
30
27
 
31
28
  /* Form inputs - fields blend into the page */
32
- --color-input-bg: #f7f7f8;
33
- --color-input-bg-focus: #f0f0f2;
29
+ --color-input-bg: #faf8f2;
30
+ --color-input-bg-focus: #f4f3fb;
34
31
 
35
32
  /* Code block colors - light */
36
- --color-code-bg: #f0f0f2;
33
+ --color-code-bg: #f4f3fb;
37
34
  --color-code-bg-elevated: #ffffff;
38
- --color-code-border: #d4d4d8;
39
- --color-code-text: #18181b;
40
- --color-code-text-muted: #71717a;
35
+ --color-code-border: #1b184033;
36
+ --color-code-text: #1b1840;
37
+ --color-code-text-muted: #5d5a80;
41
38
 
42
39
  /* Status colors - functional (real errors/warnings) */
43
40
  --color-status-success: #22C55E;
@@ -45,37 +42,34 @@
45
42
  --color-status-error: #DC2626;
46
43
  --color-status-info: #7e85f2;
47
44
 
48
- /* Shadows - Border-based depth */
49
- --shadow-soft: 0px 1px 3px rgba(0, 0, 0, 0.1);
50
- --shadow-medium: 0px 2px 8px rgba(0, 0, 0, 0.2);
51
- --shadow-large: 0px 4px 16px rgba(0, 0, 0, 0.3);
52
- --shadow-inset: 0px 4px 25px rgba(0, 0, 0, 0.14) inset;
45
+ --shadow-soft: 0 1px 3px rgba(27, 24, 64, 0.08);
46
+ --shadow-medium: 0 8px 20px -10px rgba(46, 57, 223, 0.25);
47
+ --shadow-large: 0 30px 60px -34px rgba(46, 57, 223, 0.35);
48
+ --shadow-inset: 0 4px 25px rgba(27, 24, 64, 0.08) inset;
53
49
 
54
- /* Hard offset shadows - Brutalist blocks (zero blur, near-black) */
55
- --shadow-hard: 4px 4px 0 var(--color-border-default);
56
- --shadow-hard-sm: 2px 2px 0 var(--color-border-default);
57
- --shadow-hard-muted: 4px 4px 0 var(--color-border-subtle);
58
- --shadow-hard-primary: 4px 4px 0 var(--color-primary-dark);
50
+ --shadow-hard: var(--shadow-medium);
51
+ --shadow-hard-sm: var(--shadow-soft);
52
+ --shadow-hard-muted: var(--shadow-medium);
53
+ --shadow-hard-primary: var(--shadow-large);
59
54
 
60
55
  /* Rounded Corners */
61
- --radius-sm: 4px;
62
- --radius-md: 6px;
56
+ --radius-sm: 6px;
57
+ --radius-md: 10px;
63
58
  --radius-lg: 10px;
64
59
  --radius-xl: 14px;
65
60
  --radius-pill: 9999px;
66
61
 
67
- /* Fonts - mono-first, Archivo Black display, Plex Sans body */
68
- --font-display: 'Archivo Black', ui-sans-serif, system-ui, sans-serif;
69
- --font-body: 'IBM Plex Sans Variable', ui-sans-serif, system-ui, sans-serif;
62
+ --font-display: 'Schibsted Grotesk Variable', 'Schibsted Grotesk', ui-sans-serif, system-ui, sans-serif;
63
+ --font-body: 'Schibsted Grotesk Variable', 'Schibsted Grotesk', ui-sans-serif, system-ui, sans-serif;
70
64
  --font-mono: 'JetBrains Mono Variable', ui-monospace, 'SF Mono', Monaco, monospace;
71
65
 
72
66
  /* Semantic grayscale - normal orientation (50 lightest -> 900 darkest) */
73
- --color-gray-50: #fafafa;
74
- --color-gray-100: #f4f4f5;
75
- --color-gray-200: #e4e4e7;
76
- --color-gray-400: #a1a1aa;
77
- --color-gray-500: #71717a;
78
- --color-gray-600: #52525b;
79
- --color-gray-800: #27272a;
80
- --color-gray-900: #18181b;
67
+ --color-gray-50: #faf9fd;
68
+ --color-gray-100: #f4f3fb;
69
+ --color-gray-200: #e9e7f4;
70
+ --color-gray-400: #a19fbd;
71
+ --color-gray-500: #5d5a80;
72
+ --color-gray-600: #46436b;
73
+ --color-gray-800: #2a2750;
74
+ --color-gray-900: #1b1840;
81
75
  }