my-you-eye 0.2.1 → 0.3.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/COMPONENTS.md CHANGED
@@ -9,14 +9,14 @@ import { Button, Card } from "my-you-eye";
9
9
  import "my-you-eye/styles.css";
10
10
  ```
11
11
 
12
- **55 components** across 9 groups.
12
+ **54 components** across 9 groups.
13
13
 
14
14
  ## canvas
15
15
 
16
16
  | Component | Variants | Demos |
17
17
  |---|---|---|
18
18
  | `Canvas` | — | Empty grid |
19
- | `Edge` | variant: bezier / stepped / straight<br>state: connected | Path variants, Edge states |
19
+ | `ConnectionLine` | variant: bezier / stepped / straight<br>state: connected | Path variants, Edge states |
20
20
  | `Graph` | type: button | Pipeline editor (drag nodes, connect ports, delete selected) |
21
21
  | `GraphNode` | variant: muted / selected | Variants |
22
22
  | `Port` | state: connected / default / highlighted | States |
@@ -25,11 +25,11 @@ import "my-you-eye/styles.css";
25
25
 
26
26
  | Component | Variants | Demos |
27
27
  |---|---|---|
28
- | `CellValue` | type: array / audio / badge / boolean / bytes / date-human / date-system / datetime-tz / duration / email / image / json / null / number / percentage / status / text / tree / url | Data types in a table, foo, Project X, Numeric types |
29
- | `DataList` | variant: compact | Default & Compact, Long values |
30
- | `DataTable` | variant: striped<br>density: compact | Alice, Bob, Charlie, Diana, Default, Status variants, Striped + compact |
31
- | `Table` | align: right | Row ${i + 1}, Sticky header (scroll down) |
32
- | `TreeView` | type: button<br>variant: condensed | Default & Condensed (depth-based expand), Controlled expand state, Leading icons (click a row, then use arrow keys), Messy nested payload (hover to trace depth guides) |
28
+ | `CellType` | type: array / audio / badge / boolean / bytes / currency / date-human / date-system / datetime-tz / duration / email / image / json / null / number / percentage / signed / status / text / tree / url | Data Types, Project X, Project X, Numeric types |
29
+ | `DataList` | variant: compact | Default & Compact, Striped, Scrolling |
30
+ | `DataTable` | variant: striped<br>density: compact | Default, Striped, Scrolling + sticky header, Truncation |
31
+ | `Table` | | |
32
+ | `TreeView` | type: button<br>variant: condensed | Default vs Condensed, Depth-based expand, Controlled expand state, Leading icons (click a row, then use arrow keys), Messy nested payload (hover to trace depth guides) |
33
33
 
34
34
  ## display
35
35
 
@@ -38,7 +38,7 @@ import "my-you-eye/styles.css";
38
38
  | `Avatar` | size: lg / md / sm | Sizes, Fallback variants, With image, With ring, With status dot |
39
39
  | `Badge` | variant: danger / neutral / primary / success / warning<br>style: soft | Variants (solid), Variants (soft) |
40
40
  | `Card` | variant: danger / default / elevated / ghost / outlined<br>size: sm | Variants, With footer actions |
41
- | `CodeBlock` | variant: elevated | Bare (no header, no language), Language-only (badge overlay, no header bar), With header + language, Elevated, Line numbers, No wrap (horizontal scroll) |
41
+ | `CodeBlock` | variant: elevated | Bare (no header, no language), Language-only (badge overlay, no header bar), With header + language, Elevated, Line numbers, No wrap (horizontal scroll), Syntax highlighting (TS), Syntax highlighting (CSS / HTML / SQL / YAML / Python) |
42
42
  | `EmptyState` | variant: secondary | Default, With icon and action |
43
43
  | `Image` | — | Fit modes, Border radius, Aspect ratio, Styles, With caption |
44
44
  | `Kbd` | — | Default, Combinations |
@@ -53,9 +53,9 @@ import "my-you-eye/styles.css";
53
53
  |---|---|---|
54
54
  | `Alert` | variant: danger / info / success / warning | Variants, With title, With icon |
55
55
  | `Progress` | variant: danger / default / success / warning | Variants, No label |
56
- | `Saved` | variant: danger / secondary | Trigger toasts |
57
56
  | `Skeleton` | shape: circle / rect / text | Shapes |
58
57
  | `Spinner` | size: lg / md / sm | Sizes |
58
+ | `Toast` | variant: danger / secondary | Trigger toasts |
59
59
 
60
60
  ## inputs
61
61
 
@@ -80,7 +80,7 @@ import "my-you-eye/styles.css";
80
80
  |---|---|---|
81
81
  | `Breadcrumbs` | — | Default, Custom separator |
82
82
  | `Pagination` | — | Default (10 pages), Few pages |
83
- | `Tabs` | variant: pills / underline | Underline, Pills |
83
+ | `Tabs` | variant: filing / pills / underline | Underline, Pills, Filing |
84
84
 
85
85
  ## overlay
86
86
 
@@ -98,7 +98,6 @@ import "my-you-eye/styles.css";
98
98
  | Component | Variants | Demos |
99
99
  |---|---|---|
100
100
  | `ConfirmDialog` | variant: danger / secondary | Variants |
101
- | `FilingTabs` | — | Default, Many tabs, First tab active |
102
101
  | `FormField` | type: password | Default, With hint, Required with error |
103
102
  | `PageShell` | variant: secondary | Default, With actions |
104
103
  | `StatCard` | — | Default |
package/README.md CHANGED
@@ -136,7 +136,7 @@ src/
136
136
  lib/cn.ts # clsx + tailwind-merge helper
137
137
  styles/
138
138
  tokens.css # ALL base design tokens
139
- themes/*.css # per-theme token overrides (dark, neon, high-contrast, …)
139
+ themes/*.css # per-theme token overrides (dark, neon, contrast, …)
140
140
  globals.css # tailwind entry, global scrollbar, base styles
141
141
  ui/<component>/ # Component.tsx + Component.showcase.tsx + index.ts
142
142
  ui/patterns/ # compositions built FROM primitives (FormField, Orchestrator, …)
package/SKILL.md CHANGED
@@ -11,18 +11,22 @@ There is almost certainly already a component for it.
11
11
 
12
12
  ## Step 1 — find the component (always do this first)
13
13
 
14
- Read `components.json` (or the human-readable `COMPONENTS.md`) at the package root. It is
15
- auto-generated from the library's showcases and lists **every** component, its group, and its
16
- variant props. Pick the component whose name/group matches what you need.
14
+ Read `COMPONENTS.md` (human-readable) or `components.json` (machine-readable) at the package
15
+ root. Both are auto-generated from the library's showcases and list **every** component, its
16
+ group, and its variant props. Pick the component whose name/group matches what you need.
17
+
18
+ You can also run `npx my-you-eye list` for a quick terminal overview.
19
+
20
+ ## Component catalog
17
21
 
18
22
  ### inputs
19
23
  Button, Checkbox, Combobox, FileDrop, Input, Label, MultiSelect, RadioGroup, Select, Slider, Switch, Textarea
20
24
 
21
25
  ### display
22
- Avatar, Badge, Card, CodeBlock, DataList, EmptyState, Image, Kbd, Markdown, ScrollArea, Separator, Skeleton, StatusDot, Typography
26
+ Avatar, Badge, Card, CodeBlock, EmptyState, Image, Kbd, Markdown, ScrollArea, Separator, StatusDot
23
27
 
24
28
  ### feedback
25
- Alert, Progress, Spinner, Toast
29
+ Alert, Progress, Skeleton, Spinner, Toast
26
30
 
27
31
  ### overlay
28
32
  CommandPalette, Dialog, Drawer, DropdownMenu, Popover, Tooltip
@@ -31,13 +35,16 @@ CommandPalette, Dialog, Drawer, DropdownMenu, Popover, Tooltip
31
35
  Breadcrumbs, Pagination, Tabs
32
36
 
33
37
  ### canvas
34
- Canvas, ConnectionLine, Edge, GraphNode, Orchestrator, Port
38
+ Canvas, ConnectionLine, Graph, GraphNode, Port
35
39
 
36
40
  ### data
37
- CellValue, Table, TreeView
41
+ CellType, DataList, DataTable, Table, TreeView
38
42
 
39
43
  ### patterns
40
- ConfirmDialog, DataTable, FormField, PageShell, StatCard, Toolbar
44
+ ConfirmDialog, FormField, PageShell, StatCard, TexturedSurface, Toolbar
45
+
46
+ ### typography
47
+ Typography
41
48
 
42
49
  ## Step 2 — use it
43
50
 
@@ -48,16 +55,58 @@ import "my-you-eye/styles.css"; // once, at the app root
48
55
  <Button variant="primary" size="md">Save</Button>
49
56
  ```
50
57
 
58
+ **Setup requirements:**
59
+ - Your project must use Tailwind CSS v4 (the library's CSS imports `@import "tailwindcss"`).
60
+ - Wrap your app root in `<TooltipProvider>` if you use Tooltip.
61
+ - Render `<Toaster />` somewhere in your app if you use toasts.
62
+
51
63
  Pick behavior with **variant props** from the manifest's allowed set. Use `className` only for
52
64
  one-off **layout** (width, margin) — never to restyle. If you keep re-adding the same
53
65
  `className`, the right fix is a new variant in the library, not a local override.
54
66
 
67
+ ## Multi-part components
68
+
69
+ Some components export sub-parts. Import them by name:
70
+
71
+ **Dialog:** `Dialog, DialogTrigger, DialogClose, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter`
72
+ **Drawer:** `Drawer, DrawerTrigger, DrawerClose, DrawerContent, DrawerHeader, DrawerTitle, DrawerDescription, DrawerBody, DrawerFooter`
73
+ **DropdownMenu:** `DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuLabel`
74
+ **Popover:** `Popover, PopoverTrigger, PopoverContent, PopoverClose`
75
+ **Tooltip:** `TooltipProvider, Tooltip, TooltipContent`
76
+ **Select:** `Select, SelectTrigger, SelectContent, SelectItem, SelectValue`
77
+ **Tabs:** `Tabs, TabsList, TabsTrigger, TabsContent`
78
+ **Card:** `Card, CardHeader, CardTitle, CardContent, CardFooter`
79
+ **Table:** `Table, TableHeader, TableBody, TableRow, TableHead, TableCell`
80
+ **RadioGroup:** `RadioGroup, RadioGroupItem`
81
+ **Toast:** `Toaster, useToast` (hook — `const { toast } = useToast()`)
82
+
55
83
  ## Step 3 — customize by theme, not by fork
56
84
 
57
85
  All color, radius, spacing, typography, border, and surface values come from CSS variables.
58
86
  To restyle globally, override the tokens at your app root or set `data-theme="<name>"` /
59
87
  `.dark` on `<html>` — do not copy component code or wrap components in style overrides.
60
88
 
89
+ Available themes: `default`, `dark`, `neon`, `contrast`, `glass`, `comic`, `brutal`, `stark`, `frosted`, `metallic`.
90
+
91
+ ```tsx
92
+ // Switch theme
93
+ document.documentElement.dataset.theme = "glass";
94
+ // Toggle dark mode
95
+ document.documentElement.classList.toggle("dark");
96
+ ```
97
+
98
+ ## CLI tool
99
+
100
+ ```
101
+ npx my-you-eye init [--force] Copy SKILL.md + components.json to skills/
102
+ npx my-you-eye list List all components with groups and variants
103
+ npx my-you-eye sync Re-copy SKILL.md + components.json (overwrite)
104
+ npx my-you-eye --help Show usage
105
+ ```
106
+
107
+ `init` places `SKILL.md` and `components.json` in a local `skills/` directory so your AI
108
+ agent can discover them automatically.
109
+
61
110
  ## If a component genuinely does not exist
62
111
 
63
112
  It belongs in the library, not in the consuming app. Add it upstream in `src/ui/` following
@@ -54,14 +54,14 @@ function cmdList() {
54
54
  (groups[c.group] ??= []).push(c);
55
55
  }
56
56
 
57
- const groupOrder = ["inputs", "display", "feedback", "overlay", "navigation", "canvas", "data", "patterns"];
57
+ const groupOrder = ["inputs", "display", "feedback", "overlay", "navigation", "canvas", "data", "patterns", "typography"];
58
58
 
59
59
  for (const group of groupOrder) {
60
60
  if (!groups[group]) continue;
61
61
  console.log(`\n ${group}`);
62
62
  console.log(` ${"-".repeat(group.length)}`);
63
63
  for (const c of groups[group]) {
64
- const variants = Object.entries(c.variants)
64
+ const variants = Object.entries(c.props)
65
65
  .map(([k, v]) => `${k}: ${v.join(" | ")}`)
66
66
  .join(", ");
67
67
  console.log(` ${c.name}${variants ? ` (${variants})` : ""}`);
package/components.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "package": "my-you-eye",
3
3
  "generated": "auto — do not edit by hand; run `npm run manifest`",
4
- "count": 55,
4
+ "count": 54,
5
5
  "components": [
6
6
  {
7
7
  "name": "Canvas",
@@ -13,7 +13,7 @@
13
13
  ]
14
14
  },
15
15
  {
16
- "name": "Edge",
16
+ "name": "ConnectionLine",
17
17
  "group": "canvas",
18
18
  "folder": "ui/connection-line",
19
19
  "props": {
@@ -74,9 +74,9 @@
74
74
  ]
75
75
  },
76
76
  {
77
- "name": "CellValue",
77
+ "name": "CellType",
78
78
  "group": "data",
79
- "folder": "ui/cell-value",
79
+ "folder": "ui/cell-type",
80
80
  "props": {
81
81
  "type": [
82
82
  "array",
@@ -84,6 +84,7 @@
84
84
  "badge",
85
85
  "boolean",
86
86
  "bytes",
87
+ "currency",
87
88
  "date-human",
88
89
  "date-system",
89
90
  "datetime-tz",
@@ -94,6 +95,7 @@
94
95
  "null",
95
96
  "number",
96
97
  "percentage",
98
+ "signed",
97
99
  "status",
98
100
  "text",
99
101
  "tree",
@@ -101,8 +103,8 @@
101
103
  ]
102
104
  },
103
105
  "demos": [
104
- "Data types in a table",
105
- "foo",
106
+ "Data Types",
107
+ "Project X",
106
108
  "Project X",
107
109
  "Numeric types"
108
110
  ]
@@ -118,7 +120,8 @@
118
120
  },
119
121
  "demos": [
120
122
  "Default & Compact",
121
- "Long values"
123
+ "Striped",
124
+ "Scrolling"
122
125
  ]
123
126
  },
124
127
  {
@@ -134,28 +137,18 @@
134
137
  ]
135
138
  },
136
139
  "demos": [
137
- "Alice",
138
- "Bob",
139
- "Charlie",
140
- "Diana",
141
140
  "Default",
142
- "Status variants",
143
- "Striped + compact"
141
+ "Striped",
142
+ "Scrolling + sticky header",
143
+ "Truncation"
144
144
  ]
145
145
  },
146
146
  {
147
147
  "name": "Table",
148
148
  "group": "data",
149
149
  "folder": "ui/table",
150
- "props": {
151
- "align": [
152
- "right"
153
- ]
154
- },
155
- "demos": [
156
- "Row ${i + 1}",
157
- "Sticky header (scroll down)"
158
- ]
150
+ "props": {},
151
+ "demos": []
159
152
  },
160
153
  {
161
154
  "name": "TreeView",
@@ -170,7 +163,8 @@
170
163
  ]
171
164
  },
172
165
  "demos": [
173
- "Default & Condensed (depth-based expand)",
166
+ "Default vs Condensed",
167
+ "Depth-based expand",
174
168
  "Controlled expand state",
175
169
  "Leading icons (click a row, then use arrow keys)",
176
170
  "Messy nested payload (hover to trace depth guides)"
@@ -252,7 +246,9 @@
252
246
  "With header + language",
253
247
  "Elevated",
254
248
  "Line numbers",
255
- "No wrap (horizontal scroll)"
249
+ "No wrap (horizontal scroll)",
250
+ "Syntax highlighting (TS)",
251
+ "Syntax highlighting (CSS / HTML / SQL / YAML / Python)"
256
252
  ]
257
253
  },
258
254
  {
@@ -383,20 +379,6 @@
383
379
  "No label"
384
380
  ]
385
381
  },
386
- {
387
- "name": "Saved",
388
- "group": "feedback",
389
- "folder": "ui/toast",
390
- "props": {
391
- "variant": [
392
- "danger",
393
- "secondary"
394
- ]
395
- },
396
- "demos": [
397
- "Trigger toasts"
398
- ]
399
- },
400
382
  {
401
383
  "name": "Skeleton",
402
384
  "group": "feedback",
@@ -427,6 +409,20 @@
427
409
  "Sizes"
428
410
  ]
429
411
  },
412
+ {
413
+ "name": "Toast",
414
+ "group": "feedback",
415
+ "folder": "ui/toast",
416
+ "props": {
417
+ "variant": [
418
+ "danger",
419
+ "secondary"
420
+ ]
421
+ },
422
+ "demos": [
423
+ "Trigger toasts"
424
+ ]
425
+ },
430
426
  {
431
427
  "name": "Button",
432
428
  "group": "inputs",
@@ -613,13 +609,15 @@
613
609
  "folder": "ui/tabs",
614
610
  "props": {
615
611
  "variant": [
612
+ "filing",
616
613
  "pills",
617
614
  "underline"
618
615
  ]
619
616
  },
620
617
  "demos": [
621
618
  "Underline",
622
- "Pills"
619
+ "Pills",
620
+ "Filing"
623
621
  ]
624
622
  },
625
623
  {
@@ -738,17 +736,6 @@
738
736
  "Variants"
739
737
  ]
740
738
  },
741
- {
742
- "name": "FilingTabs",
743
- "group": "patterns",
744
- "folder": "ui/patterns/filing-tabs",
745
- "props": {},
746
- "demos": [
747
- "Default",
748
- "Many tabs",
749
- "First tab active"
750
- ]
751
- },
752
739
  {
753
740
  "name": "FormField",
754
741
  "group": "patterns",
package/dist/index.d.ts CHANGED
@@ -20,7 +20,7 @@ export { Root as DropdownMenu, Trigger as DropdownMenuTrigger } from '@radix-ui/
20
20
  import * as _radix_ui_react_popover from '@radix-ui/react-popover';
21
21
  export { Root as Popover, Close as PopoverClose, Trigger as PopoverTrigger } from '@radix-ui/react-popover';
22
22
  import * as _radix_ui_react_tabs from '@radix-ui/react-tabs';
23
- import { List, Trigger as Trigger$1, Content as Content$1 } from '@radix-ui/react-tabs';
23
+ import { List, Trigger as Trigger$1 } from '@radix-ui/react-tabs';
24
24
  import { Root as Root$3 } from '@radix-ui/react-avatar';
25
25
 
26
26
  declare function cn(...inputs: ClassValue[]): string;
@@ -195,19 +195,23 @@ interface ConfirmDialogProps {
195
195
  declare function ConfirmDialog({ title, description, confirmLabel, destructive, onConfirm, trigger, open, onOpenChange, }: ConfirmDialogProps): react.JSX.Element;
196
196
 
197
197
  declare const tabsListVariants: (props?: ({
198
- variant?: "underline" | "pills" | null | undefined;
198
+ variant?: "underline" | "pills" | "filing" | null | undefined;
199
199
  } & class_variance_authority_types.ClassProp) | undefined) => string;
200
200
  declare const tabsTriggerVariants: (props?: ({
201
- variant?: "underline" | "pills" | null | undefined;
201
+ variant?: "underline" | "pills" | "filing" | null | undefined;
202
202
  } & class_variance_authority_types.ClassProp) | undefined) => string;
203
203
  interface TabsListProps extends React.ComponentPropsWithoutRef<typeof List>, VariantProps<typeof tabsListVariants> {
204
204
  }
205
205
  interface TabsTriggerProps extends React.ComponentPropsWithoutRef<typeof Trigger$1>, VariantProps<typeof tabsTriggerVariants> {
206
206
  }
207
- declare const Tabs: react.ForwardRefExoticComponent<_radix_ui_react_tabs.TabsProps & react.RefAttributes<HTMLDivElement>>;
207
+ declare const Tabs: react.ForwardRefExoticComponent<Omit<_radix_ui_react_tabs.TabsProps & react.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
208
+ variant?: "underline" | "pills" | "filing" | null | undefined;
209
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & react.RefAttributes<HTMLDivElement>>;
208
210
  declare const TabsList: react.ForwardRefExoticComponent<TabsListProps & react.RefAttributes<HTMLDivElement>>;
209
211
  declare const TabsTrigger: react.ForwardRefExoticComponent<TabsTriggerProps & react.RefAttributes<HTMLButtonElement>>;
210
- declare const TabsContent: react.ForwardRefExoticComponent<Omit<_radix_ui_react_tabs.TabsContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & react.RefAttributes<HTMLDivElement>>;
212
+ declare const TabsContent: react.ForwardRefExoticComponent<Omit<_radix_ui_react_tabs.TabsContentProps & react.RefAttributes<HTMLDivElement>, "ref"> & VariantProps<(props?: ({
213
+ variant?: "underline" | "pills" | "filing" | null | undefined;
214
+ } & class_variance_authority_types.ClassProp) | undefined) => string> & react.RefAttributes<HTMLDivElement>>;
211
215
 
212
216
  interface BreadcrumbItem {
213
217
  label: string;
@@ -354,12 +358,12 @@ declare const StatusDot: react.ForwardRefExoticComponent<StatusDotProps & react.
354
358
  type KbdProps = HTMLAttributes<HTMLElement>;
355
359
  declare const Kbd: react.ForwardRefExoticComponent<KbdProps & react.RefAttributes<HTMLElement>>;
356
360
 
357
- type CellValueType = "text" | "boolean" | "email" | "url" | "json" | "null" | "badge" | "status" | "number" | "percentage" | "date-human" | "date-system" | "datetime-tz" | "bytes" | "duration" | "array" | "image" | "audio" | "tree";
361
+ type CellValueType = "text" | "boolean" | "email" | "url" | "json" | "null" | "badge" | "status" | "number" | "percentage" | "date-human" | "date-system" | "datetime-tz" | "bytes" | "duration" | "currency" | "signed" | "array" | "image" | "audio" | "tree";
358
362
  type UrlReplacement = {
359
363
  pattern: string | RegExp;
360
364
  label: string;
361
365
  };
362
- interface CellValueProps {
366
+ interface CellTypeProps {
363
367
  type?: CellValueType;
364
368
  value?: unknown;
365
369
  badgeVariant?: BadgeProps["variant"];
@@ -368,8 +372,15 @@ interface CellValueProps {
368
372
  statusPulse?: boolean;
369
373
  replacements?: UrlReplacement[];
370
374
  dateFormat?: Intl.DateTimeFormatOptions;
375
+ compact?: boolean;
376
+ /** Fraction digits (0-20). Controls minimumFractionDigits and maximumFractionDigits. */
377
+ fractionDigits?: number;
378
+ /** ISO 4217 currency code for "currency" type (default "USD"). */
379
+ currency?: string;
380
+ /** Force a byte unit (e.g. "GB"). Overrides auto-scaling for "bytes" type. */
381
+ displayUnit?: string;
371
382
  }
372
- declare function CellValue({ type, value, badgeVariant, badgeStyle, statusVariant, statusPulse, replacements, dateFormat, }: CellValueProps): react.JSX.Element;
383
+ declare function CellType({ type, value, badgeVariant, badgeStyle, statusVariant, statusPulse, replacements, dateFormat, compact, fractionDigits, currency, displayUnit, }: CellTypeProps): react.JSX.Element;
373
384
 
374
385
  interface CanvasProps extends HTMLAttributes<HTMLDivElement> {
375
386
  gridSize?: number;
@@ -467,6 +478,8 @@ interface CodeBlockProps extends HTMLAttributes<HTMLPreElement>, VariantProps<ty
467
478
  header?: string;
468
479
  wrap?: boolean;
469
480
  showLineNumbers?: boolean;
481
+ /** Enable syntax highlighting for supported languages (js, ts, tsx, json, bash). */
482
+ highlight?: boolean;
470
483
  }
471
484
  declare const CodeBlock: react.ForwardRefExoticComponent<CodeBlockProps & react.RefAttributes<HTMLPreElement>>;
472
485
 
@@ -483,7 +496,7 @@ interface ComboboxProps {
483
496
  className?: string;
484
497
  disabled?: boolean;
485
498
  }
486
- declare function Combobox({ options, value, onChange, placeholder, emptyText, className, disabled, }: ComboboxProps): react.JSX.Element;
499
+ declare const Combobox: react.ForwardRefExoticComponent<ComboboxProps & react.RefAttributes<HTMLButtonElement>>;
487
500
 
488
501
  interface MultiSelectOption {
489
502
  value: string;
@@ -498,7 +511,7 @@ interface MultiSelectProps {
498
511
  className?: string;
499
512
  disabled?: boolean;
500
513
  }
501
- declare function MultiSelect({ options, value, onChange, placeholder, emptyText, className, disabled, }: MultiSelectProps): react.JSX.Element;
514
+ declare const MultiSelect: react.ForwardRefExoticComponent<MultiSelectProps & react.RefAttributes<HTMLButtonElement>>;
502
515
 
503
516
  interface CommandAction {
504
517
  id: string;
@@ -519,7 +532,7 @@ interface CommandPaletteProps {
519
532
  actionIds: string[];
520
533
  }[];
521
534
  }
522
- declare function CommandPalette({ open, onOpenChange, actions, onSelect, placeholder, emptyText, groups, }: CommandPaletteProps): react.JSX.Element;
535
+ declare const CommandPalette: react.ForwardRefExoticComponent<CommandPaletteProps & react.RefAttributes<HTMLDivElement>>;
523
536
 
524
537
  declare const drawerContentVariants: (props?: ({
525
538
  side?: "left" | "right" | null | undefined;
@@ -559,6 +572,8 @@ interface DataTableColumn {
559
572
  header: string;
560
573
  type?: CellValueType;
561
574
  align?: "left" | "right" | "center";
575
+ /** Relative width hint for table-fixed layout. Omit for equal share of remaining space. */
576
+ width?: "xs" | "sm" | "md" | "lg" | "xl";
562
577
  badgeVariant?: "neutral" | "primary" | "success" | "warning" | "danger";
563
578
  badgeStyle?: "solid" | "soft";
564
579
  statusVariant?: StatusVariant | ((value: unknown) => StatusVariant);
@@ -569,6 +584,10 @@ interface DataTableProps extends HTMLAttributes<HTMLDivElement>, VariantProps<ty
569
584
  rows: Record<string, unknown>[];
570
585
  stickyHeader?: boolean;
571
586
  replacements?: UrlReplacement[];
587
+ /** "fixed" locks columns to width hints/equal share (default). "auto" sizes columns
588
+ * to content and enables horizontal scroll — use for rows with divergent content
589
+ * widths (e.g. a type smoke test) where fixed columns would clip legitimate content. */
590
+ layout?: "fixed" | "auto";
572
591
  }
573
592
  declare const dataTableVariants: (props?: ({
574
593
  variant?: "default" | "striped" | null | undefined;
@@ -607,7 +626,7 @@ interface ConnectionLineProps extends VariantProps<typeof lineVariants> {
607
626
  };
608
627
  className?: string;
609
628
  }
610
- declare function ConnectionLine({ className, variant, state, from, to, }: ConnectionLineProps): react.JSX.Element;
629
+ declare const ConnectionLine: react.ForwardRefExoticComponent<ConnectionLineProps & react.RefAttributes<SVGSVGElement>>;
611
630
 
612
631
  interface FileDropProps extends Omit<HTMLAttributes<HTMLDivElement>, "onDrop"> {
613
632
  onDrop?: (files: File[]) => void;
@@ -700,22 +719,4 @@ declare const TexturedSurface: react.ForwardRefExoticComponent<TexturedSurfacePr
700
719
  ParamTable: typeof ParamTable;
701
720
  };
702
721
 
703
- declare const filingListVariants: (props?: ({
704
- variant?: "default" | null | undefined;
705
- } & class_variance_authority_types.ClassProp) | undefined) => string;
706
- declare const filingTriggerVariants: (props?: ({} & class_variance_authority_types.ClassProp) | undefined) => string;
707
- declare const filingContentVariants: (props?: ({
708
- variant?: "default" | null | undefined;
709
- } & class_variance_authority_types.ClassProp) | undefined) => string;
710
- interface FilingTabsListProps extends React.ComponentPropsWithoutRef<typeof List>, VariantProps<typeof filingListVariants> {
711
- }
712
- interface FilingTabsTriggerProps extends React.ComponentPropsWithoutRef<typeof Trigger$1>, VariantProps<typeof filingTriggerVariants> {
713
- }
714
- interface FilingTabsContentProps extends React.ComponentPropsWithoutRef<typeof Content$1>, VariantProps<typeof filingContentVariants> {
715
- }
716
- declare const FilingTabs: react.ForwardRefExoticComponent<_radix_ui_react_tabs.TabsProps & react.RefAttributes<HTMLDivElement>>;
717
- declare const FilingTabsList: react.ForwardRefExoticComponent<FilingTabsListProps & react.RefAttributes<HTMLDivElement>>;
718
- declare const FilingTabsTrigger: react.ForwardRefExoticComponent<FilingTabsTriggerProps & react.RefAttributes<HTMLButtonElement>>;
719
- declare const FilingTabsContent: react.ForwardRefExoticComponent<FilingTabsContentProps & react.RefAttributes<HTMLDivElement>>;
720
-
721
- export { Alert, Avatar, Badge, Breadcrumbs, Button, Canvas, Card, CardContent, CardFooter, CardHeader, CardTitle, CellValue, Checkbox, CodeBlock, Combobox, CommandPalette, ConfirmDialog, ConnectionLine, DataList, DataTable, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DrawerBody, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, type EditorEdge, type EditorNode, EmptyState, FileDrop, FilingTabs, FilingTabsContent, FilingTabsList, FilingTabsTrigger, FormField, Graph, GraphNode, type GraphProps, Image, Input, Kbd, Label, Markdown, MultiSelect, PageShell, Pagination, PopoverContent, Port, Progress, RadioGroup, RadioGroupItem, ScrollArea, SelectContent, SelectItem, SelectTrigger, Separator, Skeleton, Slider, Spinner, StatCard, StatusDot, Switch, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TexturedSurface, Toaster, Toolbar, Tooltip, TooltipContent, TooltipProvider, TreeView, Typography, cn, useToast };
722
+ export { Alert, Avatar, Badge, Breadcrumbs, Button, Canvas, Card, CardContent, CardFooter, CardHeader, CardTitle, CellType, Checkbox, CodeBlock, Combobox, CommandPalette, ConfirmDialog, ConnectionLine, DataList, DataTable, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DrawerBody, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, type EditorEdge, type EditorNode, EmptyState, FileDrop, FormField, Graph, GraphNode, type GraphProps, Image, Input, Kbd, Label, Markdown, MultiSelect, PageShell, Pagination, PopoverContent, Port, Progress, RadioGroup, RadioGroupItem, ScrollArea, SelectContent, SelectItem, SelectTrigger, Separator, Skeleton, Slider, Spinner, StatCard, StatusDot, Switch, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, TexturedSurface, Toaster, Toolbar, Tooltip, TooltipContent, TooltipProvider, TreeView, Typography, cn, useToast };