@codesweep-ai/ui 0.3.1-dev.20260921152910.81ecc6e → 0.3.1-dev.20260922084623.1a90e9f

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/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # @codesweep-ai/ui
2
2
 
3
3
  [![ci](https://github.com/codesweep-ai/ui/actions/workflows/ci.yml/badge.svg)](https://github.com/codesweep-ai/ui/actions/workflows/ci.yml)
4
- [![license: Apache-2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/LICENSE)
4
+ [![license: Apache-2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/LICENSE)
5
5
  ![React](https://img.shields.io/badge/react-18%20%C2%B7%2019-informational)
6
6
  ![Themes](https://img.shields.io/badge/themes-light%20%C2%B7%20dark-lightgrey)
7
7
 
@@ -46,7 +46,7 @@ export function RunStatus() {
46
46
  }
47
47
  ```
48
48
 
49
- [INSTALL.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/INSTALL.md) has the rest: the prerequisites, which stylesheets a
49
+ [INSTALL.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/INSTALL.md) has the rest: the prerequisites, which stylesheets a
50
50
  project needs, and the boot script that applies a theme before React paints. To
51
51
  look at the components before installing anything, start with the catalogue
52
52
  app below.
@@ -80,9 +80,9 @@ filesystem.
80
80
  ## Finding a component
81
81
 
82
82
  The package ships dozens of components and patterns.
83
- [CATALOG.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/CATALOG.md) indexes them by intent, so search it for what you are
83
+ [CATALOG.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/CATALOG.md) indexes them by intent, so search it for what you are
84
84
  building rather than scanning a list. Each entry links to that component's
85
- specification under [`components/`](https://github.com/codesweep-ai/ui/tree/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components), which holds its props, its
85
+ specification under [`components/`](https://github.com/codesweep-ai/ui/tree/1a90e9f908891e23b36c94de0fca55170646171f/components), which holds its props, its
86
86
  visual spec, and the DOM hooks it guarantees.
87
87
 
88
88
  The catalogue also gives the order to decide in. Match an entry and compose it,
@@ -93,11 +93,11 @@ fits.
93
93
 
94
94
  Light and dark both ship. `ThemeToggle` renders the control, `useTheme` reads
95
95
  and sets the value, and `themeBootScript` applies the stored choice before the
96
- page paints. [MANUAL.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/MANUAL.md) covers all three.
96
+ page paints. [MANUAL.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/MANUAL.md) covers all three.
97
97
 
98
98
  The tokens beneath both themes cover colour, space, radius, type and elevation.
99
99
  Every one is a CSS custom property, and section 4 of
100
- [DESIGN_SYSTEM_SPEC.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/DESIGN_SYSTEM_SPEC.md) lists them. A component
100
+ [DESIGN_SYSTEM_SPEC.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/DESIGN_SYSTEM_SPEC.md) lists them. A component
101
101
  stylesheet reads tokens and never literal values, which `npm run check`
102
102
  enforces.
103
103
 
@@ -105,27 +105,27 @@ enforces.
105
105
 
106
106
  The documentation lives in the [codesweep-ai/ui](https://github.com/codesweep-ai/ui)
107
107
  GitHub repository rather than in this package. Every link below is pinned
108
- to `81ecc6e4c00893329a9bfde2627f50ea8a7951f5`, the commit this build came from, so it describes what you
108
+ to `1a90e9f908891e23b36c94de0fca55170646171f`, the commit this build came from, so it describes what you
109
109
  installed and not whatever `main` holds when you follow it.
110
110
 
111
111
  `catalog.json` is the exception: it ships beside the code. It is the same
112
112
  index as `CATALOG.md`, as data, and it cannot disagree with the build it
113
113
  came in.
114
114
 
115
- - [INSTALL.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/INSTALL.md) · getting the package, and the setup it needs once
116
- - [MANUAL.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/MANUAL.md) · what the package exports, the entry points, theming and the DOM contract
117
- - [CATALOG.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/CATALOG.md) · every component and pattern, indexed by intent
118
- - [DESIGN_SYSTEM_SPEC.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/DESIGN_SYSTEM_SPEC.md) · the tokens, the architecture and the conventions
119
- - [CHANGELOG.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/CHANGELOG.md) · what an upgrade between versions asks of you
120
- - [CONTRIBUTING.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/CONTRIBUTING.md) · working on the package
121
- - [AGENTS.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/AGENTS.md) · where an agent looks first
115
+ - [INSTALL.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/INSTALL.md) · getting the package, and the setup it needs once
116
+ - [MANUAL.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/MANUAL.md) · what the package exports, the entry points, theming and the DOM contract
117
+ - [CATALOG.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/CATALOG.md) · every component and pattern, indexed by intent
118
+ - [DESIGN_SYSTEM_SPEC.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/DESIGN_SYSTEM_SPEC.md) · the tokens, the architecture and the conventions
119
+ - [CHANGELOG.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/CHANGELOG.md) · what an upgrade between versions asks of you
120
+ - [CONTRIBUTING.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/CONTRIBUTING.md) · working on the package
121
+ - [AGENTS.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/AGENTS.md) · where an agent looks first
122
122
 
123
123
  ## Contributing
124
124
 
125
125
  Bug reports and pull requests are welcome.
126
- [CONTRIBUTING.md](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/CONTRIBUTING.md) says how to work on the package, and applies
126
+ [CONTRIBUTING.md](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/CONTRIBUTING.md) says how to work on the package, and applies
127
127
  to coding agents as well as to people.
128
128
 
129
129
  ## License
130
130
 
131
- [Apache-2.0](https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/LICENSE).
131
+ [Apache-2.0](https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/LICENSE).
package/catalog.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
- "$generated": "Do not edit. Run `npm run catalog`. Source: spec frontmatter. Published copy: each spec is an absolute URL pinned to 81ecc6e4c00893329a9bfde2627f50ea8a7951f5.",
2
+ "$generated": "Do not edit. Run `npm run catalog`. Source: spec frontmatter. Published copy: each spec is an absolute URL pinned to 1a90e9f908891e23b36c94de0fca55170646171f.",
3
3
  "counts": {
4
4
  "components": 38,
5
5
  "patterns": 11
6
6
  },
7
7
  "components": [
8
8
  {
9
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/AgentStatus.md",
9
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/AgentStatus.md",
10
10
  "name": "AgentStatus",
11
11
  "import": [
12
12
  "@codesweep-ai/ui"
@@ -50,7 +50,7 @@
50
50
  "note": null
51
51
  },
52
52
  {
53
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/AgentTrace.md",
53
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/AgentTrace.md",
54
54
  "name": "AgentTrace",
55
55
  "import": [
56
56
  "@codesweep-ai/ui"
@@ -92,7 +92,7 @@
92
92
  "note": null
93
93
  },
94
94
  {
95
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/AppShell.md",
95
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/AppShell.md",
96
96
  "name": "AppShell",
97
97
  "import": [
98
98
  "@codesweep-ai/ui"
@@ -135,7 +135,7 @@
135
135
  "note": "The Header is reserved for global chrome only. Feature-specific controls (dropdowns, search bars, breadcrumbs) belong in a feature toolbar inside the <main> content area, not in the Header."
136
136
  },
137
137
  {
138
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Button.md",
138
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Button.md",
139
139
  "name": "Button",
140
140
  "import": [
141
141
  "@codesweep-ai/ui"
@@ -178,7 +178,7 @@
178
178
  "note": null
179
179
  },
180
180
  {
181
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Card.md",
181
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Card.md",
182
182
  "name": "Card",
183
183
  "import": [
184
184
  "@codesweep-ai/ui"
@@ -223,7 +223,7 @@
223
223
  "note": null
224
224
  },
225
225
  {
226
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/CardGroup.md",
226
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/CardGroup.md",
227
227
  "name": "CardGroup",
228
228
  "import": [
229
229
  "@codesweep-ai/ui"
@@ -265,7 +265,7 @@
265
265
  "note": null
266
266
  },
267
267
  {
268
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/ChartFrame.md",
268
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/ChartFrame.md",
269
269
  "name": "ChartFrame",
270
270
  "import": [
271
271
  "@codesweep-ai/ui/chart"
@@ -309,7 +309,7 @@
309
309
  "note": "The DS provides the frame + theme bridge (useChartTheme), NOT chart primitives. For a force-directed graph: render d3-force inside a ChartFrame and colour from theme.graph rather than theme.categorical, because any pair of nodes can end up side by side. Don't reinvent the card/state shell."
310
310
  },
311
311
  {
312
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/ChartTooltip.md",
312
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/ChartTooltip.md",
313
313
  "name": "ChartTooltip",
314
314
  "import": [
315
315
  "@codesweep-ai/ui/chart"
@@ -349,7 +349,7 @@
349
349
  "note": null
350
350
  },
351
351
  {
352
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/CheckboxGroup.md",
352
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/CheckboxGroup.md",
353
353
  "name": "CheckboxGroup",
354
354
  "import": [
355
355
  "@codesweep-ai/ui"
@@ -395,7 +395,7 @@
395
395
  "note": null
396
396
  },
397
397
  {
398
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Chip.md",
398
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Chip.md",
399
399
  "name": "Chip",
400
400
  "import": [
401
401
  "@codesweep-ai/ui"
@@ -432,7 +432,7 @@
432
432
  "note": null
433
433
  },
434
434
  {
435
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/CodeBlock.md",
435
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/CodeBlock.md",
436
436
  "name": "CodeBlock",
437
437
  "import": [
438
438
  "@codesweep-ai/ui/code"
@@ -476,7 +476,7 @@
476
476
  "note": null
477
477
  },
478
478
  {
479
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Dropdown.md",
479
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Dropdown.md",
480
480
  "name": "Dropdown",
481
481
  "import": [
482
482
  "@codesweep-ai/ui"
@@ -521,12 +521,12 @@
521
521
  "note": null
522
522
  },
523
523
  {
524
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/EventLanes.md",
524
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/EventLanes.md",
525
525
  "name": "EventLanes",
526
526
  "import": [
527
527
  "@codesweep-ai/ui"
528
528
  ],
529
- "summary": "Canvas-rendered events on a shared global-index axis, with lanes, spans, overview navigation, token palettes, and an accessible virtual listbox.",
529
+ "summary": "Canvas-rendered events on a shared axis, placed by global index or by position on a continuous scale, with lanes, spans, links, zoom, overview navigation, token palettes, and an accessible virtual listbox.",
530
530
  "keywords": [
531
531
  "event lanes",
532
532
  "event timeline",
@@ -537,14 +537,19 @@
537
537
  "multi-agent timeline",
538
538
  "spans",
539
539
  "overview",
540
- "virtual listbox"
540
+ "virtual listbox",
541
+ "time axis",
542
+ "zoom",
543
+ "positioned layout",
544
+ "links"
541
545
  ],
542
546
  "since": "0.3.0",
543
547
  "status": "experimental",
544
548
  "use_when": [
545
549
  "Showing an ordered event stream on one or more named lanes",
546
550
  "A dense trace needs thousands of selectable events without thousands of laid-out DOM marks",
547
- "Related events need spans, linked highlighting, markers, or a shared ruler"
551
+ "Related events need spans, linked highlighting, markers, or a shared ruler",
552
+ "A timeline on a time axis must show how long each step and each span took"
548
553
  ],
549
554
  "avoid_when": [
550
555
  "Showing chronological step details with expandable text → AgentTrace",
@@ -560,7 +565,7 @@
560
565
  "note": "The palette accepts CSS custom-property names such as --color-cat-1, never resolved colors or hex values. EventLanes is canvas-rendered but exposes every visible event and span through a stable DOM census."
561
566
  },
562
567
  {
563
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/FormGroup.md",
568
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/FormGroup.md",
564
569
  "name": "FormGroup",
565
570
  "import": [
566
571
  "@codesweep-ai/ui"
@@ -602,7 +607,7 @@
602
607
  "note": null
603
608
  },
604
609
  {
605
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/HighlightText.md",
610
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/HighlightText.md",
606
611
  "name": "HighlightText",
607
612
  "import": [
608
613
  "@codesweep-ai/ui"
@@ -643,7 +648,7 @@
643
648
  "note": null
644
649
  },
645
650
  {
646
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Input.md",
651
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Input.md",
647
652
  "name": "Input",
648
653
  "import": [
649
654
  "@codesweep-ai/ui"
@@ -688,7 +693,7 @@
688
693
  "note": null
689
694
  },
690
695
  {
691
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Legend.md",
696
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Legend.md",
692
697
  "name": "Legend",
693
698
  "import": [
694
699
  "@codesweep-ai/ui"
@@ -725,7 +730,7 @@
725
730
  "note": "Swatch colors are CSS custom-property names, never resolved colors or hex values."
726
731
  },
727
732
  {
728
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/MarkdownMinimap.md",
733
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/MarkdownMinimap.md",
729
734
  "name": "MarkdownMinimap",
730
735
  "import": [
731
736
  "@codesweep-ai/ui/minimap"
@@ -765,7 +770,7 @@
765
770
  "note": "Requires a React ref to the scrollable markdown container it controls; it reads scroll position and heading layout from that element."
766
771
  },
767
772
  {
768
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/MarkdownViewer.md",
773
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/MarkdownViewer.md",
769
774
  "name": "MarkdownViewer",
770
775
  "import": [
771
776
  "@codesweep-ai/ui/markdown",
@@ -811,7 +816,7 @@
811
816
  "note": "Requires markdown-content.css imported at the feature level: @import \"@codesweep-ai/ui/styles/markdown-content.css\" Without this, headings, tables, code blocks, and alerts render unstyled."
812
817
  },
813
818
  {
814
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/MermaidDiagram.md",
819
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/MermaidDiagram.md",
815
820
  "name": "MermaidDiagram",
816
821
  "import": [
817
822
  "@codesweep-ai/ui/mermaid"
@@ -856,7 +861,7 @@
856
861
  "note": "Mermaid runs at securityLevel \"strict\" with HTML labels off, so click directives in a chart do not fire."
857
862
  },
858
863
  {
859
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Modal.md",
864
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Modal.md",
860
865
  "name": "Modal",
861
866
  "import": [
862
867
  "@codesweep-ai/ui"
@@ -897,7 +902,7 @@
897
902
  "note": null
898
903
  },
899
904
  {
900
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Page.md",
905
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Page.md",
901
906
  "name": "Page",
902
907
  "import": [
903
908
  "@codesweep-ai/ui"
@@ -944,7 +949,7 @@
944
949
  "note": null
945
950
  },
946
951
  {
947
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Panel.md",
952
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Panel.md",
948
953
  "name": "Panel",
949
954
  "import": [
950
955
  "@codesweep-ai/ui"
@@ -991,7 +996,7 @@
991
996
  "note": null
992
997
  },
993
998
  {
994
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/PulseBadge.md",
999
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/PulseBadge.md",
995
1000
  "name": "PulseBadge",
996
1001
  "import": [
997
1002
  "@codesweep-ai/ui"
@@ -1033,7 +1038,7 @@
1033
1038
  "note": null
1034
1039
  },
1035
1040
  {
1036
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/RadioGroup.md",
1041
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/RadioGroup.md",
1037
1042
  "name": "RadioGroup",
1038
1043
  "import": [
1039
1044
  "@codesweep-ai/ui"
@@ -1072,7 +1077,7 @@
1072
1077
  "note": null
1073
1078
  },
1074
1079
  {
1075
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/SearchInput.md",
1080
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/SearchInput.md",
1076
1081
  "name": "SearchInput",
1077
1082
  "import": [
1078
1083
  "@codesweep-ai/ui"
@@ -1114,7 +1119,7 @@
1114
1119
  "note": null
1115
1120
  },
1116
1121
  {
1117
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/SectionedTree.md",
1122
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/SectionedTree.md",
1118
1123
  "name": "SectionedTree",
1119
1124
  "import": [
1120
1125
  "@codesweep-ai/ui"
@@ -1158,7 +1163,7 @@
1158
1163
  "note": null
1159
1164
  },
1160
1165
  {
1161
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/SegmentedControl.md",
1166
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/SegmentedControl.md",
1162
1167
  "name": "SegmentedControl",
1163
1168
  "import": [
1164
1169
  "@codesweep-ai/ui"
@@ -1195,7 +1200,7 @@
1195
1200
  "note": null
1196
1201
  },
1197
1202
  {
1198
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Skeleton.md",
1203
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Skeleton.md",
1199
1204
  "name": "Skeleton",
1200
1205
  "import": [
1201
1206
  "@codesweep-ai/ui"
@@ -1233,7 +1238,7 @@
1233
1238
  "note": null
1234
1239
  },
1235
1240
  {
1236
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/SplitPane.md",
1241
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/SplitPane.md",
1237
1242
  "name": "SplitPane",
1238
1243
  "import": [
1239
1244
  "@codesweep-ai/ui"
@@ -1273,7 +1278,7 @@
1273
1278
  "note": "SplitPane uses height: 100%, so its parent must have a defined height. In full-viewport layouts this happens naturally; in page layouts wrap SplitPane in a container with an explicit height, such as h-96."
1274
1279
  },
1275
1280
  {
1276
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/StatusBadge.md",
1281
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/StatusBadge.md",
1277
1282
  "name": "StatusBadge",
1278
1283
  "import": [
1279
1284
  "@codesweep-ai/ui"
@@ -1314,7 +1319,7 @@
1314
1319
  "note": null
1315
1320
  },
1316
1321
  {
1317
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/StreamingText.md",
1322
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/StreamingText.md",
1318
1323
  "name": "StreamingText",
1319
1324
  "import": [
1320
1325
  "@codesweep-ai/ui"
@@ -1356,7 +1361,7 @@
1356
1361
  "note": null
1357
1362
  },
1358
1363
  {
1359
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Table.md",
1364
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Table.md",
1360
1365
  "name": "Table",
1361
1366
  "import": [
1362
1367
  "@codesweep-ai/ui"
@@ -1405,7 +1410,7 @@
1405
1410
  "note": null
1406
1411
  },
1407
1412
  {
1408
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/ThemeToggle.md",
1413
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/ThemeToggle.md",
1409
1414
  "name": "ThemeToggle",
1410
1415
  "import": [
1411
1416
  "@codesweep-ai/ui"
@@ -1438,7 +1443,7 @@
1438
1443
  "note": null
1439
1444
  },
1440
1445
  {
1441
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Toast.md",
1446
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Toast.md",
1442
1447
  "name": "Toast",
1443
1448
  "import": [
1444
1449
  "@codesweep-ai/ui"
@@ -1480,7 +1485,7 @@
1480
1485
  "note": null
1481
1486
  },
1482
1487
  {
1483
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/ToastContainer.md",
1488
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/ToastContainer.md",
1484
1489
  "name": "ToastContainer",
1485
1490
  "import": [
1486
1491
  "@codesweep-ai/ui"
@@ -1517,7 +1522,7 @@
1517
1522
  "note": null
1518
1523
  },
1519
1524
  {
1520
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Tooltip.md",
1525
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Tooltip.md",
1521
1526
  "name": "Tooltip",
1522
1527
  "import": [
1523
1528
  "@codesweep-ai/ui"
@@ -1563,7 +1568,7 @@
1563
1568
  "note": "Pass describedBy={false} whenever the bubble only repeats text already in the DOM, such as a truncated label. The element itself is what a screen reader reads; announcing the bubble too says the same thing twice."
1564
1569
  },
1565
1570
  {
1566
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/components/Tree.md",
1571
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/components/Tree.md",
1567
1572
  "name": "Tree",
1568
1573
  "import": [
1569
1574
  "@codesweep-ai/ui"
@@ -1610,7 +1615,7 @@
1610
1615
  ],
1611
1616
  "patterns": [
1612
1617
  {
1613
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/AgentActivity.md",
1618
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/AgentActivity.md",
1614
1619
  "name": "AgentActivity",
1615
1620
  "summary": "Visual language for surfacing real-time AI agent work — in-flight, paused, and settled states.",
1616
1621
  "keywords": [
@@ -1650,7 +1655,7 @@
1650
1655
  "note": null
1651
1656
  },
1652
1657
  {
1653
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/Chart.md",
1658
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/Chart.md",
1654
1659
  "name": "Chart",
1655
1660
  "summary": "Theme-aware chart bridge for d3, recharts, and any other library — routes all colors through design-system tokens.",
1656
1661
  "keywords": [
@@ -1684,7 +1689,7 @@
1684
1689
  "note": "useChartTheme() and assignSeriesColors() are lib utilities, not components — they are not in the `related` list. Always depend your draw effect on the returned theme object (useEffect(draw, [theme])) so charts re-render on light/dark toggle."
1685
1690
  },
1686
1691
  {
1687
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/ComponentStates.md",
1692
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/ComponentStates.md",
1688
1693
  "name": "ComponentStates",
1689
1694
  "summary": "Canonical empty, loading, and error state contract for every component that renders async data.",
1690
1695
  "keywords": [
@@ -1724,7 +1729,7 @@
1724
1729
  "note": null
1725
1730
  },
1726
1731
  {
1727
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/Dashboard.md",
1732
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/Dashboard.md",
1728
1733
  "name": "Dashboard",
1729
1734
  "summary": "Stats bar, filterable chart, and optional sidebar for summarizing and exploring aggregate data.",
1730
1735
  "keywords": [
@@ -1761,7 +1766,7 @@
1761
1766
  "note": null
1762
1767
  },
1763
1768
  {
1764
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/DataTable.md",
1769
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/DataTable.md",
1765
1770
  "name": "DataTable",
1766
1771
  "summary": "Full-featured table with filtering, sorting, pagination, and search highlighting for large flat datasets.",
1767
1772
  "keywords": [
@@ -1800,7 +1805,7 @@
1800
1805
  "note": null
1801
1806
  },
1802
1807
  {
1803
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/Explorer.md",
1808
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/Explorer.md",
1804
1809
  "name": "Explorer",
1805
1810
  "summary": "Tree sidebar with resizable content pane for browsing and navigating hierarchical data structures.",
1806
1811
  "keywords": [
@@ -1839,7 +1844,7 @@
1839
1844
  "note": null
1840
1845
  },
1841
1846
  {
1842
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/Form.md",
1847
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/Form.md",
1843
1848
  "name": "Form",
1844
1849
  "summary": "Composition rules for form fields — layout, validation, submit placement, and error-summary patterns.",
1845
1850
  "keywords": [
@@ -1875,7 +1880,7 @@
1875
1880
  "note": null
1876
1881
  },
1877
1882
  {
1878
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/FormResults.md",
1883
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/FormResults.md",
1879
1884
  "name": "FormResults",
1880
1885
  "summary": "Pinned search/filter form at top with scrollable result cards below for query-driven workflows.",
1881
1886
  "keywords": [
@@ -1912,7 +1917,7 @@
1912
1917
  "note": null
1913
1918
  },
1914
1919
  {
1915
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/MarkdownViewer.md",
1920
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/MarkdownViewer.md",
1916
1921
  "name": "MarkdownViewer",
1917
1922
  "summary": "Document browser with outline navigation, minimap, and rich markdown rendering for in-app documentation.",
1918
1923
  "keywords": [
@@ -1952,7 +1957,7 @@
1952
1957
  "note": null
1953
1958
  },
1954
1959
  {
1955
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/MasterDetail.md",
1960
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/MasterDetail.md",
1956
1961
  "name": "MasterDetail",
1957
1962
  "summary": "Sortable list or table on one side with a detail pane on the other for inspecting individual records.",
1958
1963
  "keywords": [
@@ -1990,7 +1995,7 @@
1990
1995
  "note": null
1991
1996
  },
1992
1997
  {
1993
- "spec": "https://github.com/codesweep-ai/ui/blob/81ecc6e4c00893329a9bfde2627f50ea8a7951f5/patterns/NavSidebar.md",
1998
+ "spec": "https://github.com/codesweep-ai/ui/blob/1a90e9f908891e23b36c94de0fca55170646171f/patterns/NavSidebar.md",
1994
1999
  "name": "NavSidebar",
1995
2000
  "summary": "Grouped navigation sidebar built from Tree and Panel, sized to its sections with one scrollbar on the column.",
1996
2001
  "keywords": [
package/dist/BUILD.json CHANGED
@@ -1 +1 @@
1
- {"sha":"81ecc6e4c00893329a9bfde2627f50ea8a7951f5"}
1
+ {"sha":"1a90e9f908891e23b36c94de0fca55170646171f"}