@reifydb/ui 0.8.0 → 0.9.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
@@ -101,14 +101,13 @@ function Badge({ variant = "default", children, className = "", onClick }) {
101
101
  // src/components/button/button.tsx
102
102
  var import_react = require("react");
103
103
  var import_jsx_runtime2 = require("react/jsx-runtime");
104
- var brutalPress = "shadow-[var(--shadow-hard-sm)] active:translate-x-[2px] active:translate-y-[2px] active:shadow-none";
105
104
  var variantStyles2 = {
106
- primary: `bg-primary text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,
107
- secondary: `bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated ${brutalPress}`,
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",
108
107
  ghost: "text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary",
109
- forest: `bg-forest text-white font-semibold border-forest-border hover:brightness-90 ${brutalPress}`,
110
- danger: `bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20 ${brutalPress}`,
111
- destructive: `bg-status-error text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,
108
+ forest: "bg-forest text-white font-semibold border-forest-border hover:brightness-90",
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",
112
111
  link: "text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark"
113
112
  };
114
113
  var sizeStyles = {
@@ -123,8 +122,8 @@ var Button = (0, import_react.forwardRef)(
123
122
  "button",
124
123
  {
125
124
  ref,
126
- className: `inline-flex items-center justify-center font-mono font-semibold transition-none
127
- rounded-none border-2
125
+ className: `inline-flex items-center justify-center font-semibold transition-colors duration-150
126
+ rounded-md border
128
127
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary
129
128
  disabled:pointer-events-none disabled:opacity-50
130
129
  ${variantStyles2[variant]} ${sizeStyles[size]} ${className}`,
@@ -215,7 +214,7 @@ function CopyButton({ text, className = "", label, onCopy }) {
215
214
  {
216
215
  onClick: handleCopy,
217
216
  className: `inline-flex items-center gap-1.5 px-2 py-1 text-xs text-text-muted
218
- rounded-none border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${className}`,
217
+ rounded-sm border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${className}`,
219
218
  children: copied ? /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(import_jsx_runtime6.Fragment, { children: [
220
219
  /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("path", { d: "M3 8.5l3 3 7-7", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }),
221
220
  label ? "Copied!" : null
@@ -279,7 +278,7 @@ var DialogContent = (0, import_react4.forwardRef)(
279
278
  "div",
280
279
  {
281
280
  ref,
282
- className: `relative w-full max-w-lg mx-4 bg-bg-secondary border-2 border-border-default rounded-none shadow-[var(--shadow-hard)] ${className}`,
281
+ className: `relative w-full max-w-lg mx-4 bg-bg-secondary border border-border-light rounded-lg shadow-[var(--shadow-medium)] ${className}`,
283
282
  onClick: (e) => e.stopPropagation(),
284
283
  children
285
284
  }
@@ -338,7 +337,7 @@ var Input = (0, import_react5.forwardRef)(
338
337
  {
339
338
  ref,
340
339
  id: inputId,
341
- className: `h-9 rounded-none border-2 border-border-default bg-bg-primary px-3 text-sm text-text-primary
340
+ className: `h-9 rounded-md border border-border-light bg-bg-primary px-3 text-sm text-text-primary
342
341
  placeholder:text-text-muted
343
342
  focus:bg-bg-tertiary focus:outline-none focus:ring-2 focus:ring-primary
344
343
  disabled:cursor-not-allowed disabled:opacity-50
@@ -358,7 +357,7 @@ function Kbd({ children, className = "" }) {
358
357
  return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
359
358
  "kbd",
360
359
  {
361
- className: `inline-flex h-5 min-w-5 items-center justify-center rounded-none border-2 border-border-default
360
+ className: `inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border-default
362
361
  bg-bg-tertiary px-1.5 font-mono text-[10px] font-medium text-text-muted ${className}`,
363
362
  children
364
363
  }
@@ -404,7 +403,7 @@ function Modal({ open, onClose, title, children, className = "" }) {
404
403
  /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
405
404
  "div",
406
405
  {
407
- className: `relative w-full max-w-md rounded-none border-2 border-border-default bg-bg-secondary p-6 shadow-[var(--shadow-hard)] ${className}`,
406
+ className: `relative w-full max-w-md rounded-lg border border-border-light bg-bg-secondary p-6 shadow-[var(--shadow-medium)] ${className}`,
408
407
  children: [
409
408
  /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "mb-4 flex items-center justify-between", children: [
410
409
  /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("h2", { className: "text-base font-semibold text-text-primary", children: title }),
@@ -412,7 +411,7 @@ function Modal({ open, onClose, title, children, className = "" }) {
412
411
  "button",
413
412
  {
414
413
  onClick: onClose,
415
- className: "p-1 text-text-muted transition-colors rounded-none hover:bg-bg-tertiary",
414
+ className: "p-1 text-text-muted transition-colors rounded-md hover:bg-bg-tertiary",
416
415
  "aria-label": "Close",
417
416
  children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })
418
417
  }
@@ -455,7 +454,7 @@ function NavTabs({ items, variant = "underline", className = "", renderLink }) {
455
454
  // src/components/section-header/section-header.tsx
456
455
  var import_jsx_runtime15 = require("react/jsx-runtime");
457
456
  function SectionHeader({ title, badge, className = "" }) {
458
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `flex items-center justify-between bg-bg-tertiary px-3 py-2.5 rounded-none ${className}`, children: [
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: [
459
458
  /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-xs font-semibold text-text-secondary uppercase tracking-[1.4px]", children: title }),
460
459
  badge
461
460
  ] });
@@ -474,7 +473,7 @@ var Select = (0, import_react7.forwardRef)(
474
473
  {
475
474
  ref,
476
475
  id: selectId,
477
- className: `h-9 rounded-none border-2 border-border-default bg-bg-secondary px-3 text-sm text-text-primary
476
+ className: `h-9 rounded-md border border-border-light bg-bg-secondary px-3 text-sm text-text-primary
478
477
  focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary
479
478
  disabled:cursor-not-allowed disabled:opacity-50
480
479
  ${className}`,
@@ -564,10 +563,10 @@ function StatusBar({ items, trailing, className = "" }) {
564
563
  // src/components/table/table.tsx
565
564
  var import_jsx_runtime22 = require("react/jsx-runtime");
566
565
  function Table({ children, className = "" }) {
567
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "w-full overflow-x-auto rounded-none", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("table", { className: `w-full text-sm ${className}`, children }) });
566
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "w-full overflow-x-auto rounded-md", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("table", { className: `w-full text-sm ${className}`, children }) });
568
567
  }
569
568
  function TableHead({ children }) {
570
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("thead", { className: "border-b-2 border-border-light", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { children }) });
569
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("thead", { className: "border-b border-border-light", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("tr", { children }) });
571
570
  }
572
571
  function TableHeader({ children, className = "", onClick }) {
573
572
  return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
@@ -592,11 +591,11 @@ function TableCell({ children, className = "" }) {
592
591
  // src/components/tabs/tabs.tsx
593
592
  var import_jsx_runtime23 = require("react/jsx-runtime");
594
593
  function Tabs({ tabs, value, onChange, className = "" }) {
595
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: `flex gap-1 rounded-none border-2 border-border-default bg-bg-secondary p-1 ${className}`, children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
594
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: `flex gap-1 rounded-md border border-border-light bg-bg-secondary p-1 ${className}`, children: tabs.map((tab) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
596
595
  "button",
597
596
  {
598
597
  onClick: () => onChange(tab.value),
599
- className: `px-3 py-1.5 text-sm font-medium transition-all rounded-none
598
+ className: `px-3 py-1.5 text-sm font-medium transition-all rounded-sm
600
599
  ${value === tab.value ? "bg-bg-tertiary text-text-primary" : "text-text-muted hover:bg-bg-secondary hover:text-text-primary"}`,
601
600
  children: tab.label
602
601
  },
@@ -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 brutalPress =\n \"shadow-[var(--shadow-hard-sm)] active:translate-x-[2px] active:translate-y-[2px] active:shadow-none\";\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary:\n `bg-primary text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,\n secondary:\n `bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated ${brutalPress}`,\n ghost:\n \"text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary\",\n forest:\n `bg-forest text-white font-semibold border-forest-border hover:brightness-90 ${brutalPress}`,\n danger:\n `bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20 ${brutalPress}`,\n destructive:\n `bg-status-error text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,\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-mono font-semibold transition-none\n rounded-none border-2\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-none 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-2 border-border-default rounded-none shadow-[var(--shadow-hard)] ${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-none border-2 border-border-default 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-none border-2 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-none border-2 border-border-default bg-bg-secondary p-6 shadow-[var(--shadow-hard)] ${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-none 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-none ${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-none border-2 border-border-default 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-none\">\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-2 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-none border-2 border-border-default 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-none\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-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"]}
package/dist/index.mjs CHANGED
@@ -26,14 +26,13 @@ function Badge({ variant = "default", children, className = "", onClick }) {
26
26
  // src/components/button/button.tsx
27
27
  import { forwardRef } from "react";
28
28
  import { jsx as jsx2 } from "react/jsx-runtime";
29
- var brutalPress = "shadow-[var(--shadow-hard-sm)] active:translate-x-[2px] active:translate-y-[2px] active:shadow-none";
30
29
  var variantStyles2 = {
31
- primary: `bg-primary text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,
32
- secondary: `bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated ${brutalPress}`,
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",
33
32
  ghost: "text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary",
34
- forest: `bg-forest text-white font-semibold border-forest-border hover:brightness-90 ${brutalPress}`,
35
- danger: `bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20 ${brutalPress}`,
36
- destructive: `bg-status-error text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,
33
+ forest: "bg-forest text-white font-semibold border-forest-border hover:brightness-90",
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",
37
36
  link: "text-primary border-transparent underline-offset-4 hover:underline active:text-primary-dark"
38
37
  };
39
38
  var sizeStyles = {
@@ -48,8 +47,8 @@ var Button = forwardRef(
48
47
  "button",
49
48
  {
50
49
  ref,
51
- className: `inline-flex items-center justify-center font-mono font-semibold transition-none
52
- rounded-none border-2
50
+ className: `inline-flex items-center justify-center font-semibold transition-colors duration-150
51
+ rounded-md border
53
52
  focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary
54
53
  disabled:pointer-events-none disabled:opacity-50
55
54
  ${variantStyles2[variant]} ${sizeStyles[size]} ${className}`,
@@ -140,7 +139,7 @@ function CopyButton({ text, className = "", label, onCopy }) {
140
139
  {
141
140
  onClick: handleCopy,
142
141
  className: `inline-flex items-center gap-1.5 px-2 py-1 text-xs text-text-muted
143
- rounded-none border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${className}`,
142
+ rounded-sm border border-border-default transition-colors duration-75 hover:bg-bg-tertiary hover:text-text-primary ${className}`,
144
143
  children: copied ? /* @__PURE__ */ jsxs(Fragment, { children: [
145
144
  /* @__PURE__ */ jsx6("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx6("path", { d: "M3 8.5l3 3 7-7", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) }),
146
145
  label ? "Copied!" : null
@@ -204,7 +203,7 @@ var DialogContent = forwardRef2(
204
203
  "div",
205
204
  {
206
205
  ref,
207
- className: `relative w-full max-w-lg mx-4 bg-bg-secondary border-2 border-border-default rounded-none shadow-[var(--shadow-hard)] ${className}`,
206
+ className: `relative w-full max-w-lg mx-4 bg-bg-secondary border border-border-light rounded-lg shadow-[var(--shadow-medium)] ${className}`,
208
207
  onClick: (e) => e.stopPropagation(),
209
208
  children
210
209
  }
@@ -263,7 +262,7 @@ var Input = forwardRef3(
263
262
  {
264
263
  ref,
265
264
  id: inputId,
266
- className: `h-9 rounded-none border-2 border-border-default bg-bg-primary px-3 text-sm text-text-primary
265
+ className: `h-9 rounded-md border border-border-light bg-bg-primary px-3 text-sm text-text-primary
267
266
  placeholder:text-text-muted
268
267
  focus:bg-bg-tertiary focus:outline-none focus:ring-2 focus:ring-primary
269
268
  disabled:cursor-not-allowed disabled:opacity-50
@@ -283,7 +282,7 @@ function Kbd({ children, className = "" }) {
283
282
  return /* @__PURE__ */ jsx11(
284
283
  "kbd",
285
284
  {
286
- className: `inline-flex h-5 min-w-5 items-center justify-center rounded-none border-2 border-border-default
285
+ className: `inline-flex h-5 min-w-5 items-center justify-center rounded-sm border border-border-default
287
286
  bg-bg-tertiary px-1.5 font-mono text-[10px] font-medium text-text-muted ${className}`,
288
287
  children
289
288
  }
@@ -329,7 +328,7 @@ function Modal({ open, onClose, title, children, className = "" }) {
329
328
  /* @__PURE__ */ jsxs7(
330
329
  "div",
331
330
  {
332
- className: `relative w-full max-w-md rounded-none border-2 border-border-default bg-bg-secondary p-6 shadow-[var(--shadow-hard)] ${className}`,
331
+ className: `relative w-full max-w-md rounded-lg border border-border-light bg-bg-secondary p-6 shadow-[var(--shadow-medium)] ${className}`,
333
332
  children: [
334
333
  /* @__PURE__ */ jsxs7("div", { className: "mb-4 flex items-center justify-between", children: [
335
334
  /* @__PURE__ */ jsx13("h2", { className: "text-base font-semibold text-text-primary", children: title }),
@@ -337,7 +336,7 @@ function Modal({ open, onClose, title, children, className = "" }) {
337
336
  "button",
338
337
  {
339
338
  onClick: onClose,
340
- className: "p-1 text-text-muted transition-colors rounded-none hover:bg-bg-tertiary",
339
+ className: "p-1 text-text-muted transition-colors rounded-md hover:bg-bg-tertiary",
341
340
  "aria-label": "Close",
342
341
  children: /* @__PURE__ */ jsx13("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", children: /* @__PURE__ */ jsx13("path", { d: "M4 4l8 8M12 4l-8 8", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) })
343
342
  }
@@ -380,7 +379,7 @@ function NavTabs({ items, variant = "underline", className = "", renderLink }) {
380
379
  // src/components/section-header/section-header.tsx
381
380
  import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
382
381
  function SectionHeader({ title, badge, className = "" }) {
383
- return /* @__PURE__ */ jsxs8("div", { className: `flex items-center justify-between bg-bg-tertiary px-3 py-2.5 rounded-none ${className}`, children: [
382
+ return /* @__PURE__ */ jsxs8("div", { className: `flex items-center justify-between bg-bg-tertiary px-3 py-2.5 rounded-md ${className}`, children: [
384
383
  /* @__PURE__ */ jsx15("span", { className: "text-xs font-semibold text-text-secondary uppercase tracking-[1.4px]", children: title }),
385
384
  badge
386
385
  ] });
@@ -399,7 +398,7 @@ var Select = forwardRef4(
399
398
  {
400
399
  ref,
401
400
  id: selectId,
402
- className: `h-9 rounded-none border-2 border-border-default bg-bg-secondary px-3 text-sm text-text-primary
401
+ className: `h-9 rounded-md border border-border-light bg-bg-secondary px-3 text-sm text-text-primary
403
402
  focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary
404
403
  disabled:cursor-not-allowed disabled:opacity-50
405
404
  ${className}`,
@@ -489,10 +488,10 @@ function StatusBar({ items, trailing, className = "" }) {
489
488
  // src/components/table/table.tsx
490
489
  import { jsx as jsx22 } from "react/jsx-runtime";
491
490
  function Table({ children, className = "" }) {
492
- return /* @__PURE__ */ jsx22("div", { className: "w-full overflow-x-auto rounded-none", children: /* @__PURE__ */ jsx22("table", { className: `w-full text-sm ${className}`, children }) });
491
+ return /* @__PURE__ */ jsx22("div", { className: "w-full overflow-x-auto rounded-md", children: /* @__PURE__ */ jsx22("table", { className: `w-full text-sm ${className}`, children }) });
493
492
  }
494
493
  function TableHead({ children }) {
495
- return /* @__PURE__ */ jsx22("thead", { className: "border-b-2 border-border-light", children: /* @__PURE__ */ jsx22("tr", { children }) });
494
+ return /* @__PURE__ */ jsx22("thead", { className: "border-b border-border-light", children: /* @__PURE__ */ jsx22("tr", { children }) });
496
495
  }
497
496
  function TableHeader({ children, className = "", onClick }) {
498
497
  return /* @__PURE__ */ jsx22(
@@ -517,11 +516,11 @@ function TableCell({ children, className = "" }) {
517
516
  // src/components/tabs/tabs.tsx
518
517
  import { jsx as jsx23 } from "react/jsx-runtime";
519
518
  function Tabs({ tabs, value, onChange, className = "" }) {
520
- return /* @__PURE__ */ jsx23("div", { className: `flex gap-1 rounded-none border-2 border-border-default bg-bg-secondary p-1 ${className}`, children: tabs.map((tab) => /* @__PURE__ */ jsx23(
519
+ return /* @__PURE__ */ jsx23("div", { className: `flex gap-1 rounded-md border border-border-light bg-bg-secondary p-1 ${className}`, children: tabs.map((tab) => /* @__PURE__ */ jsx23(
521
520
  "button",
522
521
  {
523
522
  onClick: () => onChange(tab.value),
524
- className: `px-3 py-1.5 text-sm font-medium transition-all rounded-none
523
+ className: `px-3 py-1.5 text-sm font-medium transition-all rounded-sm
525
524
  ${value === tab.value ? "bg-bg-tertiary text-text-primary" : "text-text-muted hover:bg-bg-secondary hover:text-text-primary"}`,
526
525
  children: tab.label
527
526
  },
@@ -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 brutalPress =\n \"shadow-[var(--shadow-hard-sm)] active:translate-x-[2px] active:translate-y-[2px] active:shadow-none\";\n\nconst variantStyles: Record<ButtonVariant, string> = {\n primary:\n `bg-primary text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,\n secondary:\n `bg-bg-tertiary text-text-primary border-border-default font-semibold hover:bg-bg-elevated ${brutalPress}`,\n ghost:\n \"text-text-secondary border-transparent hover:bg-bg-tertiary hover:text-text-primary\",\n forest:\n `bg-forest text-white font-semibold border-forest-border hover:brightness-90 ${brutalPress}`,\n danger:\n `bg-status-error/10 text-status-error border-status-error/30 hover:bg-status-error/20 ${brutalPress}`,\n destructive:\n `bg-status-error text-white font-bold border-border-default hover:brightness-90 ${brutalPress}`,\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-mono font-semibold transition-none\n rounded-none border-2\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-none 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-2 border-border-default rounded-none shadow-[var(--shadow-hard)] ${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-none border-2 border-border-default 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-none border-2 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-none border-2 border-border-default bg-bg-secondary p-6 shadow-[var(--shadow-hard)] ${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-none 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-none ${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-none border-2 border-border-default 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-none\">\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-2 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-none border-2 border-border-default 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-none\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-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":";AA6BI;AAtBJ,IAAM,gBAA8C;AAAA,EAClD,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,eAAe;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AACX;AASO,SAAS,MAAM,EAAE,UAAU,WAAW,UAAU,YAAY,IAAI,QAAQ,GAAe;AAC5F,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,4BAA4B,cAAc,OAAO,CAAC,IAAI,SAAS;AAAA,MAC1E;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;;;ACjCA,SAAoC,kBAAkB;AAgChD,gBAAAA,YAAA;AA3BN,IAAMC,iBAA+C;AAAA,EACnD,SAAS;AAAA,EACT,WAAW;AAAA,EACX,OACE;AAAA,EACF,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,MACE;AACJ;AAEA,IAAM,aAAyC;AAAA,EAC7C,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,MAAM;AACR;AAOO,IAAM,SAAS;AAAA,EACpB,CAAC,EAAE,UAAU,WAAW,OAAO,MAAM,YAAY,IAAI,UAAU,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC3F,WACE,gBAAAD;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW;AAAA;AAAA;AAAA;AAAA,YAIPC,eAAc,OAAO,CAAC,IAAI,WAAW,IAAI,CAAC,IAAI,SAAS;AAAA,QAC3D;AAAA,QACC,GAAG;AAAA,QAEH;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;;;ACvCjB,gBAAAC,YAAA;AAFG,SAAS,KAAK,EAAE,UAAU,YAAY,GAAG,GAAc;AAC5D,SACE,gBAAAA,KAAC,SAAI,WAAW,kBAAkB,SAAS,IACxC,UACH;AAEJ;AAEO,SAAS,WAAW,EAAE,UAAU,YAAY,GAAG,GAAc;AAClE,SAAO,gBAAAA,KAAC,SAAI,WAAW,QAAQ,SAAS,IAAK,UAAS;AACxD;AAEO,SAAS,UAAU,EAAE,UAAU,YAAY,GAAG,GAAgD;AACnG,SAAO,gBAAAA,KAAC,QAAG,WAAW,yCAAyC,SAAS,IAAK,UAAS;AACxF;AAEO,SAAS,gBAAgB,EAAE,UAAU,YAAY,GAAG,GAAgD;AACzG,SAAO,gBAAAA,KAAC,OAAE,WAAW,gCAAgC,SAAS,IAAK,UAAS;AAC9E;AAEO,SAAS,YAAY,EAAE,UAAU,YAAY,GAAG,GAAgD;AACrG,SAAO,gBAAAA,KAAC,SAAI,WAAuB,UAAS;AAC9C;AAEO,SAAS,WAAW,EAAE,UAAU,YAAY,GAAG,GAAgD;AACpG,SAAO,gBAAAA,KAAC,SAAI,WAAW,0CAA0C,SAAS,IAAK,UAAS;AAC1F;;;ACtBI,gBAAAC,YAAA;AAFG,SAAS,KAAK,EAAE,QAAQ,SAAS,UAAU,YAAY,GAAG,GAAc;AAC7E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,wGACT,SACI,iDACA,2GACN,IAAI,SAAS;AAAA,MAEZ;AAAA;AAAA,EACH;AAEJ;;;AC0BU,gBAAAC,YAAA;AAtBH,SAAS,UAAU,OAAuB;AAC/C,QAAM,EAAE,SAAS,YAAY,GAAG,IAAI;AAEpC,SACE,gBAAAA,KAAC,SAAI,WAAW,2BAA2B,SAAS,IACjD,kBAAQ,IAAI,CAAC,WAAW;AACvB,UAAM,WAAW,MAAM,WACnB,MAAM,MAAM,SAAS,OAAO,KAAK,IACjC,MAAM,UAAU,OAAO;AAE3B,UAAM,cAAc,MAAM;AACxB,UAAI,MAAM,UAAU;AAClB,cAAM,OAAO,MAAM,MAAM,SAAS,OAAO,KAAK,IAC1C,MAAM,MAAM,OAAO,CAAC,MAAM,MAAM,OAAO,KAAK,IAC5C,CAAC,GAAG,MAAM,OAAO,OAAO,KAAK;AACjC,cAAM,SAAS,IAAI;AAAA,MACrB,OAAO;AACL,cAAM,SAAS,OAAO,KAAK;AAAA,MAC7B;AAAA,IACF;AAEA,WACE,gBAAAA,KAAC,QAAwB,QAAQ,UAAU,SAAS,aACjD,iBAAO,SADC,OAAO,KAElB;AAAA,EAEJ,CAAC,GACH;AAEJ;;;ACvDA,SAAS,eAAe;AACxB,OAAO,WAAW;AAClB,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;;;ACPP,SAAS,UAAU,mBAAmB;AA0B9B,mBAEI,OAAAC,MAFJ;AAjBD,SAAS,WAAW,EAAE,MAAM,YAAY,IAAI,OAAO,OAAO,GAAoB;AACnF,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAE1C,QAAM,aAAa,YAAY,YAAY;AACzC,UAAM,UAAU,UAAU,UAAU,IAAI;AACxC,cAAU,IAAI;AACd,eAAW,MAAM,UAAU,KAAK,GAAG,GAAI;AACvC,aAAS;AAAA,EACX,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,SAAS;AAAA,MACT,WAAW;AAAA,6HAC4G,SAAS;AAAA,MAE/H,mBACC,iCACE;AAAA,wBAAAA,KAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,KAAC,UAAK,GAAE,kBAAiB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,GAChH;AAAA,QACC,QAAQ,YAAY;AAAA,SACvB,IAEA,iCACE;AAAA,6BAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD;AAAA,0BAAAA,KAAC,UAAK,GAAE,KAAI,GAAE,KAAI,OAAM,KAAI,QAAO,KAAI,IAAG,OAAM,QAAO,gBAAe,aAAY,OAAM;AAAA,UACxF,gBAAAA,KAAC,UAAK,GAAE,+BAA8B,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ;AAAA,WACtG;AAAA,QACC,SAAS;AAAA,SACZ;AAAA;AAAA,EAEJ;AAEJ;;;ADnBI,SAGM,OAAAC,MAHN,QAAAC,aAAA;AAPG,SAAS,UAAU,EAAE,MAAM,WAAW,QAAQ,WAAW,MAAM,YAAY,GAAG,GAAmB;AACtG,QAAM,kBAAkB,QAAQ,MAAM;AACpC,QAAI,KAAK,UAAU,OAAU,CAAC,MAAM,UAAU,QAAQ,EAAG,QAAO;AAChE,WAAO,MAAM,UAAU,MAAM,MAAM,UAAU,QAAQ,GAAG,QAAQ;AAAA,EAClE,GAAG,CAAC,MAAM,QAAQ,CAAC;AAEnB,SACE,gBAAAA,MAAC,SAAI,WAAW,6BAA6B,SAAS,IACnD;AAAA,gBACC,gBAAAD,KAAC,SAAI,WAAU,+EACb,0BAAAA,KAAC,cAAW,MAAM,MAAM,GAC1B;AAAA,IAEF,gBAAAA,KAAC,SAAI,WAAW,YAAY,QAAQ,qBACjC,6BAAmB,OAClB,gBAAAA,KAAC,UAAK,WAAW,YAAY,QAAQ,IAAI,yBAAyB,EAAE,QAAQ,gBAAgB,GAAG,IAE/F,gBAAAA,KAAC,UAAK,WAAW,YAAY,QAAQ,IAAK,gBAAK,GAEnD;AAAA,KACF;AAEJ;;;AEvCA,SAAS,WAAW,cAAAE,mBAA6D;AAmC7E,SACE,OAAAC,MADF,QAAAC,aAAA;AA3BG,SAAS,OAAO,EAAE,MAAM,cAAc,SAAS,GAAgB;AACpE,YAAU,MAAM;AACd,QAAI,MAAM;AACR,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC,OAAO;AACL,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC;AACA,WAAO,MAAM;AACX,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,YAAU,MAAM;AACd,UAAM,eAAe,CAAC,MAAqB;AACzC,UAAI,EAAE,QAAQ,SAAU,cAAa,KAAK;AAAA,IAC5C;AACA,QAAI,MAAM;AACR,eAAS,iBAAiB,WAAW,YAAY;AAAA,IACnD;AACA,WAAO,MAAM;AACX,eAAS,oBAAoB,WAAW,YAAY;AAAA,IACtD;AAAA,EACF,GAAG,CAAC,MAAM,YAAY,CAAC;AAEvB,MAAI,CAAC,KAAM,QAAO;AAElB,SACE,gBAAAA,MAAC,SAAI,WAAU,uDACb;AAAA,oBAAAD,KAAC,SAAI,WAAU,6BAA4B,SAAS,MAAM,aAAa,KAAK,GAAG;AAAA,IAC/E,gBAAAA,KAAC,SAAI,WAAU,iBAAiB,UAAS;AAAA,KAC3C;AAEJ;AAOO,IAAM,gBAAgBD;AAAA,EAC3B,CAAC,EAAE,YAAY,IAAI,SAAS,GAAG,QAC7B,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,qHAAqH,SAAS;AAAA,MACzI,SAAS,CAAC,MAAM,EAAE,gBAAgB;AAAA,MAEjC;AAAA;AAAA,EACH;AAEJ;AACA,cAAc,cAAc;AAErB,SAAS,aAAa,EAAE,UAAU,YAAY,GAAG,GAAgD;AACtG,SACE,gBAAAA,KAAC,SAAI,WAAW,0DAA0D,SAAS,IAChF,UACH;AAEJ;AAEO,IAAM,cAAcD;AAAA,EACzB,CAAC,EAAE,UAAU,YAAY,GAAG,GAAG,QAC7B,gBAAAC,KAAC,QAAG,KAAU,WAAW,6CAA6C,SAAS,IAC5E,UACH;AAEJ;AACA,YAAY,cAAc;AAEnB,IAAM,oBAAoBD;AAAA,EAC/B,CAAC,EAAE,UAAU,YAAY,GAAG,GAAG,QAC7B,gBAAAC,KAAC,OAAE,KAAU,WAAW,2BAA2B,SAAS,IACzD,UACH;AAEJ;AACA,kBAAkB,cAAc;AAEzB,IAAM,cAAcD;AAAA,EACzB,CAAC,EAAE,YAAY,IAAI,GAAG,MAAM,GAAG,QAC7B,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,6HAA6H,SAAS;AAAA,MACjJ,cAAW;AAAA,MACV,GAAG;AAAA,MAEJ,0BAAAA,KAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,KAAC,UAAK,GAAE,sBAAqB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,GAC7F;AAAA;AAAA,EACF;AAEJ;AACA,YAAY,cAAc;AAEnB,SAAS,aAAa,EAAE,UAAU,YAAY,GAAG,GAAgD;AACtG,SACE,gBAAAA,KAAC,SAAI,WAAW,2DAA2D,SAAS,IACjF,UACH;AAEJ;;;ACjGI,SACW,OAAAE,MADX,QAAAC,aAAA;AAFG,SAAS,WAAW,EAAE,MAAM,OAAO,aAAa,OAAO,GAAoB;AAChF,SACE,gBAAAA,MAAC,SAAI,WAAU,+DACZ;AAAA,YAAQ,gBAAAD,KAAC,SAAI,WAAU,wBAAwB,gBAAK;AAAA,IACrD,gBAAAA,KAAC,QAAG,WAAU,yCAAyC,iBAAM;AAAA,IAC5D,eAAe,gBAAAA,KAAC,OAAE,WAAU,gCAAgC,uBAAY;AAAA,IACxE,UAAU,gBAAAA,KAAC,SAAI,WAAU,QAAQ,kBAAO;AAAA,KAC3C;AAEJ;;;AClBA,SAAmC,cAAAE,mBAAkB;AAW/C,SAEI,OAAAC,OAFJ,QAAAC,aAAA;AAJC,IAAM,QAAQF;AAAA,EACnB,CAAC,EAAE,OAAO,OAAO,YAAY,IAAI,IAAI,GAAG,MAAM,GAAG,QAAQ;AACvD,UAAM,UAAU,MAAM,OAAO,YAAY,EAAE,QAAQ,QAAQ,GAAG;AAC9D,WACE,gBAAAE,MAAC,SAAI,WAAU,yBACZ;AAAA,eACC,gBAAAD,MAAC,WAAM,SAAS,SAAS,WAAU,2CAChC,iBACH;AAAA,MAEF,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ,WAAW;AAAA;AAAA;AAAA;AAAA,cAIP,QAAQ,wBAAwB,EAAE,IAAI,SAAS;AAAA,UAClD,GAAG;AAAA;AAAA,MACN;AAAA,MACC,SAAS,gBAAAA,MAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,OAC5D;AAAA,EAEJ;AACF;AAEA,MAAM,cAAc;;;ACxBhB,gBAAAE,aAAA;AAFG,SAAS,IAAI,EAAE,UAAU,YAAY,GAAG,GAAa;AAC1D,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,kFACiE,SAAS;AAAA,MAEpF;AAAA;AAAA,EACH;AAEJ;;;ACRM,gBAAAC,OACA,QAAAC,aADA;AAHC,SAAS,QAAQ,EAAE,OAAO,WAAW,YAAY,GAAG,GAAiB;AAC1E,SACE,gBAAAA,MAAC,SAAI,WAAW,6DAA6D,SAAS,IACpF;AAAA,oBAAAD,MAAC,UAAM,gBAAK;AAAA,IACZ,gBAAAC,MAAC,UAAK,WAAU,gBACd;AAAA,sBAAAD,MAAC,UAAK,WAAU,iBAAgB,OAAO,EAAE,gBAAgB,MAAM,GAAG,eAAC;AAAA,MACnE,gBAAAA,MAAC,UAAK,WAAU,iBAAgB,OAAO,EAAE,gBAAgB,QAAQ,GAAG,eAAC;AAAA,MACrE,gBAAAA,MAAC,UAAK,WAAU,iBAAgB,OAAO,EAAE,gBAAgB,QAAQ,GAAG,eAAC;AAAA,OACvE;AAAA,KACF;AAEJ;;;AChBA,SAAS,aAAAE,YAAW,eAAAC,oBAAmC;AAiCjD,gBAAAC,OAIE,QAAAC,aAJF;AAvBC,SAAS,MAAM,EAAE,MAAM,SAAS,OAAO,UAAU,YAAY,GAAG,GAAe;AACpF,QAAM,gBAAgBF;AAAA,IACpB,CAAC,MAAqB;AACpB,UAAI,EAAE,QAAQ,SAAU,SAAQ;AAAA,IAClC;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,EAAAD,WAAU,MAAM;AACd,QAAI,MAAM;AACR,eAAS,iBAAiB,WAAW,aAAa;AAClD,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC;AACA,WAAO,MAAM;AACX,eAAS,oBAAoB,WAAW,aAAa;AACrD,eAAS,KAAK,MAAM,WAAW;AAAA,IACjC;AAAA,EACF,GAAG,CAAC,MAAM,aAAa,CAAC;AAExB,MAAI,CAAC,KAAM,QAAO;AAElB,SACE,gBAAAG,MAAC,SAAI,WAAU,uDACb;AAAA,oBAAAD,MAAC,SAAI,WAAU,gCAA+B,SAAS,SAAS;AAAA,IAChE,gBAAAC;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,oHAAoH,SAAS;AAAA,QAExI;AAAA,0BAAAA,MAAC,SAAI,WAAU,0CACb;AAAA,4BAAAD,MAAC,QAAG,WAAU,6CAA6C,iBAAM;AAAA,YACjE,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAS;AAAA,gBACT,WAAU;AAAA,gBACV,cAAW;AAAA,gBAEX,0BAAAA,MAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QACnD,0BAAAA,MAAC,UAAK,GAAE,sBAAqB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,GAC7F;AAAA;AAAA,YACF;AAAA,aACF;AAAA,UACC;AAAA;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;;;ACbY,gBAAAE,aAAA;AAzBZ,IAAMC,iBAAgB;AAAA,EACpB,WAAW;AAAA,IACT,WAAW;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,MAAM;AAAA,IACJ,WAAW;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AACF;AAEO,SAAS,QAAQ,EAAE,OAAO,UAAU,aAAa,YAAY,IAAI,WAAW,GAAiB;AAClG,QAAM,SAASA,eAAc,OAAO;AAEpC,SACE,gBAAAD,MAAC,SAAI,WAAW,GAAG,OAAO,SAAS,IAAI,SAAS,IAC7C,gBAAM,IAAI,CAAC,SAAS;AACnB,UAAM,gBAAgB,GAAG,OAAO,IAAI,IAAI,KAAK,WAAW,OAAO,SAAS,OAAO,QAAQ;AAEvF,QAAI,YAAY;AACd,aACE,gBAAAA,MAAC,UACE,qBAAW,EAAE,MAAM,KAAK,MAAM,WAAW,eAAe,UAAU,KAAK,MAAM,CAAC,KADtE,KAAK,IAEhB;AAAA,IAEJ;AAEA,WACE,gBAAAA,MAAC,OAAkB,MAAM,KAAK,MAAM,WAAW,eAC5C,eAAK,SADA,KAAK,IAEb;AAAA,EAEJ,CAAC,GACH;AAEJ;;;AC5CI,SACE,OAAAE,OADF,QAAAC,aAAA;AAFG,SAAS,cAAc,EAAE,OAAO,OAAO,YAAY,GAAG,GAAuB;AAClF,SACE,gBAAAA,MAAC,SAAI,WAAW,2EAA2E,SAAS,IAClG;AAAA,oBAAAD,MAAC,UAAK,WAAU,wEAAwE,iBAAM;AAAA,IAC7F;AAAA,KACH;AAEJ;;;ACfA,SAAoC,cAAAE,mBAAkB;AAgBhD,SAEI,OAAAC,OAFJ,QAAAC,aAAA;AAJC,IAAM,SAASF;AAAA,EACpB,CAAC,EAAE,OAAO,SAAS,YAAY,IAAI,IAAI,GAAG,MAAM,GAAG,QAAQ;AACzD,UAAM,WAAW,MAAM,OAAO,YAAY,EAAE,QAAQ,QAAQ,GAAG;AAC/D,WACE,gBAAAE,MAAC,SAAI,WAAU,yBACZ;AAAA,eACC,gBAAAD,MAAC,WAAM,SAAS,UAAU,WAAU,2CACjC,iBACH;AAAA,MAEF,gBAAAA;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,IAAI;AAAA,UACJ,WAAW;AAAA;AAAA;AAAA,cAGP,SAAS;AAAA,UACZ,GAAG;AAAA,UAEH,kBAAQ,IAAI,CAAC,QACZ,gBAAAA,MAAC,YAAuB,OAAO,IAAI,OAChC,cAAI,SADM,IAAI,KAEjB,CACD;AAAA;AAAA,MACH;AAAA,OACF;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;;;ACrCZ,gBAAAE,aAAA;AADF,SAAS,UAAU,EAAE,YAAY,GAAG,GAAmB;AAC5D,SAAO,gBAAAA,MAAC,SAAI,WAAW,4CAA4C,SAAS,IAAI;AAClF;;;ACAI,gBAAAC,aAAA;AAFG,SAAS,SAAS,EAAE,YAAY,GAAG,GAAkB;AAC1D,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,2DAA2D,SAAS;AAAA;AAAA,EACjF;AAEJ;;;ACEe,gBAAAC,aAAA;AAPR,SAAS,UAAU,EAAE,OAAO,YAAY,GAAG,GAAmB;AACnE,QAAM,MAAM,KAAK,IAAI,GAAG,KAAK;AAC7B,SACE,gBAAAA,MAAC,SAAI,WAAW,6BAA6B,SAAS,IACnD,gBAAM,IAAI,CAAC,GAAG,MAAM;AACnB,UAAM,IAAI,KAAK,IAAI,GAAG,KAAK,MAAO,IAAI,MAAO,EAAE,CAAC;AAChD,UAAM,MAAM,KAAK,KAAK,oBAAoB,KAAK,IAAI,sBAAsB;AACzE,WAAO,gBAAAA,MAAC,SAAY,WAAW,wBAAwB,GAAG,IAAI,OAAO,EAAE,QAAQ,GAAG,CAAC,KAAK,KAAvE,CAA0E;AAAA,EAC7F,CAAC,GACH;AAEJ;;;ACPI,SAOE,OAAAC,OAPF,QAAAC,cAAA;AAJJ,IAAM,UAAU,EAAE,IAAI,WAAW,IAAI,WAAW,IAAI,UAAU;AAEvD,SAAS,QAAQ,EAAE,OAAO,MAAM,YAAY,GAAG,GAAiB;AACrE,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,gCAAgC,QAAQ,IAAI,CAAC,IAAI,SAAS;AAAA,MACrE,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,MAAK;AAAA,MACL,cAAW;AAAA,MAEX;AAAA,wBAAAD,MAAC,YAAO,IAAG,MAAK,IAAG,MAAK,GAAE,MAAK,QAAO,gBAAe,aAAY,OAAM,SAAQ,OAAM;AAAA,QACrF,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,aAAY;AAAA,YACZ,eAAc;AAAA;AAAA,QAChB;AAAA;AAAA;AAAA,EACF;AAEJ;;;ACCQ,SAEI,OAAAE,OAFJ,QAAAC,cAAA;AAXR,IAAM,YAAuC;AAAA,EAC3C,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AACR;AAEO,SAAS,UAAU,EAAE,OAAO,UAAU,YAAY,GAAG,GAAmB;AAC7E,SACE,gBAAAA,OAAC,SAAI,WAAW,0FAA0F,SAAS,IAChH;AAAA,UAAM,IAAI,CAAC,MAAM,MAChB,gBAAAA,OAAC,SAAY,WAAU,qDACpB;AAAA,WAAK,OACJ,gBAAAD,MAAC,UAAK,WAAW,yCAAyC,UAAU,KAAK,GAAG,CAAC,IAAI;AAAA,MAElF,KAAK;AAAA,SAJE,CAKV,CACD;AAAA,IACA,YAAY,gBAAAA,MAAC,SAAI,WAAU,mCAAmC,oBAAS;AAAA,KAC1E;AAEJ;;;AC1BM,gBAAAE,aAAA;AAHC,SAAS,MAAM,EAAE,UAAU,YAAY,GAAG,GAAe;AAC9D,SACE,gBAAAA,MAAC,SAAI,WAAU,qCACb,0BAAAA,MAAC,WAAM,WAAW,kBAAkB,SAAS,IAAK,UAAS,GAC7D;AAEJ;AAEO,SAAS,UAAU,EAAE,SAAS,GAA4B;AAC/D,SACE,gBAAAA,MAAC,WAAM,WAAU,gCACf,0BAAAA,MAAC,QAAI,UAAS,GAChB;AAEJ;AAQO,SAAS,YAAY,EAAE,UAAU,YAAY,IAAI,QAAQ,GAAqB;AACnF,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,2DAA2D,UAAU,uDAAuD,EAAE,IAAI,SAAS;AAAA,MACtJ;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEO,SAAS,UAAU,EAAE,SAAS,GAA4B;AAC/D,SAAO,gBAAAA,MAAC,WAAM,WAAU,gCAAgC,UAAS;AACnE;AAQO,SAAS,SAAS,EAAE,UAAU,YAAY,IAAI,QAAQ,GAAkB;AAC7E,SACE,gBAAAA,MAAC,QAAG,WAAW,wHAAwH,UAAU,mBAAmB,EAAE,IAAI,SAAS,IAAI,SACpL,UACH;AAEJ;AAEO,SAAS,UAAU,EAAE,UAAU,YAAY,GAAG,GAAgD;AACnG,SAAO,gBAAAA,MAAC,QAAG,WAAW,mCAAmC,SAAS,IAAK,UAAS;AAClF;;;AC5CQ,gBAAAC,aAAA;AAJD,SAAS,KAAK,EAAE,MAAM,OAAO,UAAU,YAAY,GAAG,GAAc;AACzE,SACE,gBAAAA,MAAC,SAAI,WAAW,wEAAwE,SAAS,IAC9F,eAAK,IAAI,CAAC,QACT,gBAAAA;AAAA,IAAC;AAAA;AAAA,MAEC,SAAS,MAAM,SAAS,IAAI,KAAK;AAAA,MACjC,WAAW;AAAA,cAEP,UAAU,IAAI,QACV,qCACA,+DACN;AAAA,MAED,cAAI;AAAA;AAAA,IATA,IAAI;AAAA,EAUX,CACD,GACH;AAEJ;;;ACpBI,SACE,OAAAC,OADF,QAAAC,cAAA;AAJG,SAAS,OAAO,EAAE,SAAS,OAAO,UAAU,YAAY,GAAG,GAAgB;AAChF,QAAM,CAAC,MAAM,KAAK,IAAI;AAEtB,SACE,gBAAAA,OAAC,SAAI,WAAW,0CAA0C,SAAS,IACjE;AAAA,oBAAAD;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,oCAAoC,UAAU,OAAO,sBAAsB,iBAAiB;AAAA,QACvG,SAAS,MAAM,SAAS,IAAI;AAAA,QAE3B;AAAA;AAAA,IACH;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,SAAS,UAAU,OAAO,QAAQ,IAAI;AAAA,QACrD,WAAW,+EACT,UAAU,QAAQ,eAAe,gBACnC;AAAA,QAEA,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,8EACT,UAAU,QAAQ,kBAAkB,iBACtC;AAAA;AAAA,QACF;AAAA;AAAA,IACF;AAAA,IACA,gBAAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAW,oCAAoC,UAAU,QAAQ,sBAAsB,iBAAiB;AAAA,QACxG,SAAS,MAAM,SAAS,KAAK;AAAA,QAE5B;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;","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.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "Shared UI component library for ReifyDB",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -6,7 +6,7 @@
6
6
  background: var(--color-bg-primary);
7
7
  color: var(--color-text-primary);
8
8
  color-scheme: light;
9
- font-family: var(--font-mono);
9
+ font-family: var(--font-body);
10
10
  font-size: 16px;
11
11
  -webkit-font-smoothing: antialiased;
12
12
  -moz-osx-font-smoothing: grayscale;
@@ -43,9 +43,9 @@
43
43
  /* ── Card ─────────────────────────────────────────────────── */
44
44
  .card-modern {
45
45
  background: var(--color-bg-secondary);
46
- border: 2px solid var(--color-border-default);
46
+ border: 1px solid var(--color-border-light);
47
47
  border-radius: var(--radius-md);
48
- box-shadow: var(--shadow-hard);
48
+ box-shadow: var(--shadow-soft);
49
49
  }
50
50
 
51
51
  /* ── Section alternation ────────────────────────────────── */
@@ -62,16 +62,16 @@
62
62
  /* ── Card utilities ─────────────────────────────────────── */
63
63
  .glass-card {
64
64
  background: var(--color-bg-secondary);
65
- border: 2px solid var(--color-border-default);
65
+ border: 1px solid var(--color-border-light);
66
66
  border-radius: var(--radius-md);
67
- box-shadow: var(--shadow-hard);
67
+ box-shadow: var(--shadow-soft);
68
68
  }
69
69
 
70
70
  .glass-card-strong {
71
71
  background: var(--color-bg-secondary);
72
- border: 2px solid var(--color-primary);
72
+ border: 1px solid var(--color-primary);
73
73
  border-radius: var(--radius-md);
74
- box-shadow: var(--shadow-hard-primary);
74
+ box-shadow: var(--shadow-soft);
75
75
  }
76
76
 
77
77
  .glass {
@@ -81,21 +81,20 @@
81
81
  /* ── Card nested inner ───────────────────────────────────── */
82
82
  .card-nested-inner {
83
83
  background: var(--color-input-bg);
84
- border: 2px solid var(--color-border-default);
84
+ border: 1px solid var(--color-border-light);
85
85
  border-radius: var(--radius-sm);
86
86
  }
87
87
 
88
- /* ── Brutalist featured card ─────────────────────────────── */
88
+ /* ── Featured card ────────────────────────────────────────── */
89
89
  .card-brutal {
90
90
  background: var(--color-bg-secondary);
91
- border: 2px solid var(--color-border-default);
91
+ border: 1px solid var(--color-border-light);
92
92
  border-radius: var(--radius-md);
93
- box-shadow: var(--shadow-hard);
94
- transition: transform 0.15s ease, box-shadow 0.15s ease;
93
+ box-shadow: var(--shadow-soft);
94
+ transition: box-shadow 0.15s ease;
95
95
  }
96
96
  .card-brutal:hover {
97
- transform: translate(-2px, -2px);
98
- box-shadow: 6px 6px 0 var(--color-border-default);
97
+ box-shadow: var(--shadow-medium);
99
98
  }
100
99
 
101
100
  /* ── Brutalist tab underline ─────────────────────────────── */
@@ -57,11 +57,11 @@
57
57
  --shadow-hard-muted: 4px 4px 0 var(--color-border-subtle);
58
58
  --shadow-hard-primary: 4px 4px 0 var(--color-primary-dark);
59
59
 
60
- /* Rounded Corners - Brutalist square geometry */
61
- --radius-sm: 0px;
62
- --radius-md: 0px;
63
- --radius-lg: 0px;
64
- --radius-xl: 0px;
60
+ /* Rounded Corners */
61
+ --radius-sm: 4px;
62
+ --radius-md: 6px;
63
+ --radius-lg: 10px;
64
+ --radius-xl: 14px;
65
65
  --radius-pill: 9999px;
66
66
 
67
67
  /* Fonts - mono-first, Archivo Black display, Plex Sans body */