@codesweep-ai/ui 0.3.1-dev.20260922185258.7843e7c → 0.3.1-dev.20260922190610.1994973

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/7843e7cbf00a250674037f74b3802195570855ec/LICENSE)
4
+ [![license: Apache-2.0](https://img.shields.io/badge/license-Apache_2.0-blue.svg)](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/INSTALL.md) has the rest: the prerequisites, which stylesheets a
49
+ [INSTALL.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/CATALOG.md) indexes them by intent, so search it for what you are
83
+ [CATALOG.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components), which holds its props, its
85
+ specification under [`components/`](https://github.com/codesweep-ai/ui/tree/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/MANUAL.md) covers all three.
96
+ page paints. [MANUAL.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/DESIGN_SYSTEM_SPEC.md) lists them. A component
100
+ [DESIGN_SYSTEM_SPEC.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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 `7843e7cbf00a250674037f74b3802195570855ec`, the commit this build came from, so it describes what you
108
+ to `1994973c5a7717f45f23c5e7500d0d972be9630e`, 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/7843e7cbf00a250674037f74b3802195570855ec/INSTALL.md) · getting the package, and the setup it needs once
116
- - [MANUAL.md](https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/MANUAL.md) · what the package exports, the entry points, theming and the DOM contract
117
- - [CATALOG.md](https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/CATALOG.md) · every component and pattern, indexed by intent
118
- - [DESIGN_SYSTEM_SPEC.md](https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/DESIGN_SYSTEM_SPEC.md) · the tokens, the architecture and the conventions
119
- - [CHANGELOG.md](https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/CHANGELOG.md) · what an upgrade between versions asks of you
120
- - [CONTRIBUTING.md](https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/CONTRIBUTING.md) · working on the package
121
- - [AGENTS.md](https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/AGENTS.md) · where an agent looks first
115
+ - [INSTALL.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/INSTALL.md) · getting the package, and the setup it needs once
116
+ - [MANUAL.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/MANUAL.md) · what the package exports, the entry points, theming and the DOM contract
117
+ - [CATALOG.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/CATALOG.md) · every component and pattern, indexed by intent
118
+ - [DESIGN_SYSTEM_SPEC.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/DESIGN_SYSTEM_SPEC.md) · the tokens, the architecture and the conventions
119
+ - [CHANGELOG.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/CHANGELOG.md) · what an upgrade between versions asks of you
120
+ - [CONTRIBUTING.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/CONTRIBUTING.md) · working on the package
121
+ - [AGENTS.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/CONTRIBUTING.md) says how to work on the package, and applies
126
+ [CONTRIBUTING.md](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/LICENSE).
131
+ [Apache-2.0](https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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 7843e7cbf00a250674037f74b3802195570855ec.",
2
+ "$generated": "Do not edit. Run `npm run catalog`. Source: spec frontmatter. Published copy: each spec is an absolute URL pinned to 1994973c5a7717f45f23c5e7500d0d972be9630e.",
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/7843e7cbf00a250674037f74b3802195570855ec/components/AgentStatus.md",
9
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/AgentTrace.md",
53
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/AppShell.md",
95
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/Button.md",
138
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/Card.md",
181
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/CardGroup.md",
226
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/ChartFrame.md",
268
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/ChartTooltip.md",
312
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/CheckboxGroup.md",
352
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/Chip.md",
398
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/CodeBlock.md",
435
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/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/7843e7cbf00a250674037f74b3802195570855ec/components/Dropdown.md",
479
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Dropdown.md",
480
480
  "name": "Dropdown",
481
481
  "import": [
482
482
  "@codesweep-ai/ui"
@@ -521,7 +521,7 @@
521
521
  "note": null
522
522
  },
523
523
  {
524
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/EventLanes.md",
524
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/EventLanes.md",
525
525
  "name": "EventLanes",
526
526
  "import": [
527
527
  "@codesweep-ai/ui"
@@ -565,7 +565,7 @@
565
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."
566
566
  },
567
567
  {
568
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/FormGroup.md",
568
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/FormGroup.md",
569
569
  "name": "FormGroup",
570
570
  "import": [
571
571
  "@codesweep-ai/ui"
@@ -607,7 +607,7 @@
607
607
  "note": null
608
608
  },
609
609
  {
610
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/HighlightText.md",
610
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/HighlightText.md",
611
611
  "name": "HighlightText",
612
612
  "import": [
613
613
  "@codesweep-ai/ui"
@@ -648,7 +648,7 @@
648
648
  "note": null
649
649
  },
650
650
  {
651
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Input.md",
651
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Input.md",
652
652
  "name": "Input",
653
653
  "import": [
654
654
  "@codesweep-ai/ui"
@@ -693,7 +693,7 @@
693
693
  "note": null
694
694
  },
695
695
  {
696
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Legend.md",
696
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Legend.md",
697
697
  "name": "Legend",
698
698
  "import": [
699
699
  "@codesweep-ai/ui"
@@ -730,7 +730,7 @@
730
730
  "note": "Swatch colors are CSS custom-property names, never resolved colors or hex values."
731
731
  },
732
732
  {
733
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/MarkdownMinimap.md",
733
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/MarkdownMinimap.md",
734
734
  "name": "MarkdownMinimap",
735
735
  "import": [
736
736
  "@codesweep-ai/ui/minimap"
@@ -770,7 +770,7 @@
770
770
  "note": "Requires a React ref to the scrollable markdown container it controls; it reads scroll position and heading layout from that element."
771
771
  },
772
772
  {
773
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/MarkdownViewer.md",
773
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/MarkdownViewer.md",
774
774
  "name": "MarkdownViewer",
775
775
  "import": [
776
776
  "@codesweep-ai/ui/markdown",
@@ -816,7 +816,7 @@
816
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."
817
817
  },
818
818
  {
819
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/MermaidDiagram.md",
819
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/MermaidDiagram.md",
820
820
  "name": "MermaidDiagram",
821
821
  "import": [
822
822
  "@codesweep-ai/ui/mermaid"
@@ -861,7 +861,7 @@
861
861
  "note": "Mermaid runs at securityLevel \"strict\" with HTML labels off, so click directives in a chart do not fire."
862
862
  },
863
863
  {
864
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Modal.md",
864
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Modal.md",
865
865
  "name": "Modal",
866
866
  "import": [
867
867
  "@codesweep-ai/ui"
@@ -902,7 +902,7 @@
902
902
  "note": null
903
903
  },
904
904
  {
905
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Page.md",
905
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Page.md",
906
906
  "name": "Page",
907
907
  "import": [
908
908
  "@codesweep-ai/ui"
@@ -949,7 +949,7 @@
949
949
  "note": null
950
950
  },
951
951
  {
952
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Panel.md",
952
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Panel.md",
953
953
  "name": "Panel",
954
954
  "import": [
955
955
  "@codesweep-ai/ui"
@@ -996,7 +996,7 @@
996
996
  "note": null
997
997
  },
998
998
  {
999
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/PulseBadge.md",
999
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/PulseBadge.md",
1000
1000
  "name": "PulseBadge",
1001
1001
  "import": [
1002
1002
  "@codesweep-ai/ui"
@@ -1038,7 +1038,7 @@
1038
1038
  "note": null
1039
1039
  },
1040
1040
  {
1041
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/RadioGroup.md",
1041
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/RadioGroup.md",
1042
1042
  "name": "RadioGroup",
1043
1043
  "import": [
1044
1044
  "@codesweep-ai/ui"
@@ -1077,7 +1077,7 @@
1077
1077
  "note": null
1078
1078
  },
1079
1079
  {
1080
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/SearchInput.md",
1080
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/SearchInput.md",
1081
1081
  "name": "SearchInput",
1082
1082
  "import": [
1083
1083
  "@codesweep-ai/ui"
@@ -1119,7 +1119,7 @@
1119
1119
  "note": null
1120
1120
  },
1121
1121
  {
1122
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/SectionedTree.md",
1122
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/SectionedTree.md",
1123
1123
  "name": "SectionedTree",
1124
1124
  "import": [
1125
1125
  "@codesweep-ai/ui"
@@ -1163,7 +1163,7 @@
1163
1163
  "note": null
1164
1164
  },
1165
1165
  {
1166
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/SegmentedControl.md",
1166
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/SegmentedControl.md",
1167
1167
  "name": "SegmentedControl",
1168
1168
  "import": [
1169
1169
  "@codesweep-ai/ui"
@@ -1200,7 +1200,7 @@
1200
1200
  "note": null
1201
1201
  },
1202
1202
  {
1203
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Skeleton.md",
1203
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Skeleton.md",
1204
1204
  "name": "Skeleton",
1205
1205
  "import": [
1206
1206
  "@codesweep-ai/ui"
@@ -1238,7 +1238,7 @@
1238
1238
  "note": null
1239
1239
  },
1240
1240
  {
1241
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/SplitPane.md",
1241
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/SplitPane.md",
1242
1242
  "name": "SplitPane",
1243
1243
  "import": [
1244
1244
  "@codesweep-ai/ui"
@@ -1278,7 +1278,7 @@
1278
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."
1279
1279
  },
1280
1280
  {
1281
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/StatusBadge.md",
1281
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/StatusBadge.md",
1282
1282
  "name": "StatusBadge",
1283
1283
  "import": [
1284
1284
  "@codesweep-ai/ui"
@@ -1319,7 +1319,7 @@
1319
1319
  "note": null
1320
1320
  },
1321
1321
  {
1322
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/StreamingText.md",
1322
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/StreamingText.md",
1323
1323
  "name": "StreamingText",
1324
1324
  "import": [
1325
1325
  "@codesweep-ai/ui"
@@ -1361,7 +1361,7 @@
1361
1361
  "note": null
1362
1362
  },
1363
1363
  {
1364
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Table.md",
1364
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Table.md",
1365
1365
  "name": "Table",
1366
1366
  "import": [
1367
1367
  "@codesweep-ai/ui"
@@ -1410,7 +1410,7 @@
1410
1410
  "note": null
1411
1411
  },
1412
1412
  {
1413
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/ThemeToggle.md",
1413
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/ThemeToggle.md",
1414
1414
  "name": "ThemeToggle",
1415
1415
  "import": [
1416
1416
  "@codesweep-ai/ui"
@@ -1443,7 +1443,7 @@
1443
1443
  "note": null
1444
1444
  },
1445
1445
  {
1446
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Toast.md",
1446
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Toast.md",
1447
1447
  "name": "Toast",
1448
1448
  "import": [
1449
1449
  "@codesweep-ai/ui"
@@ -1485,7 +1485,7 @@
1485
1485
  "note": null
1486
1486
  },
1487
1487
  {
1488
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/ToastContainer.md",
1488
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/ToastContainer.md",
1489
1489
  "name": "ToastContainer",
1490
1490
  "import": [
1491
1491
  "@codesweep-ai/ui"
@@ -1522,7 +1522,7 @@
1522
1522
  "note": null
1523
1523
  },
1524
1524
  {
1525
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Tooltip.md",
1525
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Tooltip.md",
1526
1526
  "name": "Tooltip",
1527
1527
  "import": [
1528
1528
  "@codesweep-ai/ui"
@@ -1568,7 +1568,7 @@
1568
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."
1569
1569
  },
1570
1570
  {
1571
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/components/Tree.md",
1571
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/components/Tree.md",
1572
1572
  "name": "Tree",
1573
1573
  "import": [
1574
1574
  "@codesweep-ai/ui"
@@ -1615,7 +1615,7 @@
1615
1615
  ],
1616
1616
  "patterns": [
1617
1617
  {
1618
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/AgentActivity.md",
1618
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/AgentActivity.md",
1619
1619
  "name": "AgentActivity",
1620
1620
  "summary": "Visual language for surfacing real-time AI agent work — in-flight, paused, and settled states.",
1621
1621
  "keywords": [
@@ -1655,7 +1655,7 @@
1655
1655
  "note": null
1656
1656
  },
1657
1657
  {
1658
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/Chart.md",
1658
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/Chart.md",
1659
1659
  "name": "Chart",
1660
1660
  "summary": "Theme-aware chart bridge for d3, recharts, and any other library — routes all colors through design-system tokens.",
1661
1661
  "keywords": [
@@ -1689,7 +1689,7 @@
1689
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."
1690
1690
  },
1691
1691
  {
1692
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/ComponentStates.md",
1692
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/ComponentStates.md",
1693
1693
  "name": "ComponentStates",
1694
1694
  "summary": "Canonical empty, loading, and error state contract for every component that renders async data.",
1695
1695
  "keywords": [
@@ -1729,7 +1729,7 @@
1729
1729
  "note": null
1730
1730
  },
1731
1731
  {
1732
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/Dashboard.md",
1732
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/Dashboard.md",
1733
1733
  "name": "Dashboard",
1734
1734
  "summary": "Stats bar, filterable chart, and optional sidebar for summarizing and exploring aggregate data.",
1735
1735
  "keywords": [
@@ -1766,7 +1766,7 @@
1766
1766
  "note": null
1767
1767
  },
1768
1768
  {
1769
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/DataTable.md",
1769
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/DataTable.md",
1770
1770
  "name": "DataTable",
1771
1771
  "summary": "Full-featured table with filtering, sorting, pagination, and search highlighting for large flat datasets.",
1772
1772
  "keywords": [
@@ -1805,7 +1805,7 @@
1805
1805
  "note": null
1806
1806
  },
1807
1807
  {
1808
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/Explorer.md",
1808
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/Explorer.md",
1809
1809
  "name": "Explorer",
1810
1810
  "summary": "Tree sidebar with resizable content pane for browsing and navigating hierarchical data structures.",
1811
1811
  "keywords": [
@@ -1844,7 +1844,7 @@
1844
1844
  "note": null
1845
1845
  },
1846
1846
  {
1847
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/Form.md",
1847
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/Form.md",
1848
1848
  "name": "Form",
1849
1849
  "summary": "Composition rules for form fields — layout, validation, submit placement, and error-summary patterns.",
1850
1850
  "keywords": [
@@ -1880,7 +1880,7 @@
1880
1880
  "note": null
1881
1881
  },
1882
1882
  {
1883
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/FormResults.md",
1883
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/FormResults.md",
1884
1884
  "name": "FormResults",
1885
1885
  "summary": "Pinned search/filter form at top with scrollable result cards below for query-driven workflows.",
1886
1886
  "keywords": [
@@ -1917,7 +1917,7 @@
1917
1917
  "note": null
1918
1918
  },
1919
1919
  {
1920
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/MarkdownViewer.md",
1920
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/MarkdownViewer.md",
1921
1921
  "name": "MarkdownViewer",
1922
1922
  "summary": "Document browser with outline navigation, minimap, and rich markdown rendering for in-app documentation.",
1923
1923
  "keywords": [
@@ -1957,7 +1957,7 @@
1957
1957
  "note": null
1958
1958
  },
1959
1959
  {
1960
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/MasterDetail.md",
1960
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/MasterDetail.md",
1961
1961
  "name": "MasterDetail",
1962
1962
  "summary": "Sortable list or table on one side with a detail pane on the other for inspecting individual records.",
1963
1963
  "keywords": [
@@ -1995,7 +1995,7 @@
1995
1995
  "note": null
1996
1996
  },
1997
1997
  {
1998
- "spec": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/patterns/NavSidebar.md",
1998
+ "spec": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/patterns/NavSidebar.md",
1999
1999
  "name": "NavSidebar",
2000
2000
  "summary": "Grouped navigation sidebar built from Tree and Panel, sized to its sections with one scrollbar on the column.",
2001
2001
  "keywords": [
package/dist/BUILD.json CHANGED
@@ -1 +1 @@
1
- {"sha":"7843e7cbf00a250674037f74b3802195570855ec"}
1
+ {"sha":"1994973c5a7717f45f23c5e7500d0d972be9630e"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventLanes.d.ts","sourceRoot":"","sources":["../../src/components/EventLanes.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventLanes.d.ts","sourceRoot":"","sources":["../../src/components/EventLanes.tsx"],"names":[],"mappings":"AAEA,OAAO,EAWL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAoBf,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,eAAe,GAAG,SAAS,CAAC;AACtF,MAAM,MAAM,UAAU,GAAG,KAAK,MAAM,EAAE,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;+DAC2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;4EACwE;IACxE,IAAI,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACrB;gFAC4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;0CACsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;8EAE0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;gEAE4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;uEAImE;IACnE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC9B;0EACsE;IACtE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;2BACuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACvD,8DAA8D;IAC9D,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;uEACmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;6DACyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;+DAC2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;8BAG0B;IAC1B,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,yEAAyE;IACzE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,uBAAuB;IACvB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,iFAAiF;AACjF,MAAM,WAAW,yBAAyB;IACxC,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACrC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,CAAC,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACjC,wCAAwC;IACxC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;CACtC;AAED,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,kFAAkF;AAClF,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACxD,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5B,MAAM,EAAE,SAAS,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;oEACgE;IAChE,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC9B;2EACuE;IACvE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,4EAA4E;IAC5E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD;;iCAE6B;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;0EAEsE;IACtE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,iEAAiE;IACjE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,gDAAgD;IAChD,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5B,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;iEAC6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACtC;kFAC8E;IAC9E,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,KAAK,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,OAAO,EAAE,sBAAsB,KAAK,SAAS,CAAC,CAAC;IACrE,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC;IACxD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA+BD;;;cAGc;AACd,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC,EAAE;;;;;EAgB9F;AAED;;;;;;;2DAO2D;AAC3D,wBAAgB,OAAO,CACrB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAAG,SAAS;;;;;EAU9B;AAED,KAAK,IAAI,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAEvC;;;;;;;;wEAQwE;AACxE,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,UAE5C;AAED;;qFAEqF;AACrF,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,UAG/C;AAED;;;;;;kEAMkE;AAClE,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,SAAkB;;;;;mBAcrE,MAAM;EAGxB;AAyHD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,GACZ,aAAa,GAAG,IAAI,CA0BtB;AA8BD,wBAAgB,QAAQ,CACtB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,UAAU,EACjB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,QAO7B;AAED;sDACsD;AACtD,wBAAgB,OAAO,CACrB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,CAAC,EAAE,aAAa,GAAG,IAAI,QAK7B;AAED;;8DAE8D;AAC9D,wBAAgB,SAAS,CACvB,OAAO,EAAE,wBAAwB,EACjC,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,IAAI,GAAG,MAAM,EACxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,QASnB;AA+gDD,eAAO,MAAM,UAAU,oHAAoE,CAAC"}
@@ -240,6 +240,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
240
240
  finish: 0,
241
241
  empty: !0,
242
242
  next: /* @__PURE__ */ new Map(),
243
+ previous: /* @__PURE__ */ new Map(),
243
244
  smallestGap: void 0
244
245
  };
245
246
  }, [
@@ -284,15 +285,22 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
284
285
  P,
285
286
  I,
286
287
  R
287
- ]), [jt, Mt] = b(null), Nt = U ? U.finish - U.origin : 0, Pt = V + H, G = U ? l(Nt, j, V + Pt, U.smallestGap, H) : null, K = G ? i(jt ?? G.min, G) : 1, q = U?.origin ?? 0, J = m((e) => f(e, q, K, V), [
288
- V,
288
+ ]), [jt, Mt] = b(null), Nt = U ? U.finish - U.origin : 0, Pt = V + H, G = V + (P && F.events.some((e) => e.anchor === "end") ? H : 0), Ft = U ? l(Nt, j, G + Pt, U.smallestGap, H) : null, K = Ft ? i(jt ?? Ft.min, Ft) : 1, q = U?.origin ?? 0, J = m((e) => f(e, q, K, G), [
289
+ G,
289
290
  q,
290
291
  K
291
- ]), Y = m((e) => o(e.position, U?.next.get(e.i), e.extent, K, H), [
292
+ ]), Y = m((e) => {
293
+ let t = e.position;
294
+ if (e.anchor === "end") {
295
+ let n = U?.previous.get(e.i);
296
+ return o(n ?? t, n === void 0 ? void 0 : t, e.extent, K, H);
297
+ }
298
+ return o(t, U?.next.get(e.i), e.extent, K, H);
299
+ }, [
292
300
  H,
293
301
  U,
294
302
  K
295
- ]), X = m((e) => J(e.position) - (e.anchor === "end" ? Y(e) : 0), [Y, J]), Z = P ? U && !U.empty ? Nt * K + V + Pt : 0 : B < 0 ? 0 : (B + 1) * N + V * 2, Q = v(() => de(e), [e]), Ft = v(() => {
303
+ ]), X = m((e) => J(e.position) - (e.anchor === "end" ? Y(e) : 0), [Y, J]), Z = P ? U && !U.empty ? Nt * K + G + Pt : 0 : B < 0 ? 0 : (B + 1) * N + V * 2, Q = v(() => de(e), [e]), It = v(() => {
296
304
  let t = /* @__PURE__ */ new Map();
297
305
  return e.forEach((e, n) => {
298
306
  if (e.hidden) return;
@@ -309,7 +317,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
309
317
  e,
310
318
  Q,
311
319
  I
312
- ]), It = Q.total, Lt = le(Ge, se, ie), Rt = Je != null, zt = v(() => {
320
+ ]), Lt = Q.total, Rt = le(Ge, se, ie), zt = Je != null, Bt = v(() => {
313
321
  let t = [];
314
322
  return e.forEach((e, n) => {
315
323
  if (e.hidden || !e.shade) return;
@@ -320,7 +328,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
320
328
  token: e.shade
321
329
  });
322
330
  }), t;
323
- }, [e, Q]), Bt = We === !0 || We === "auto" && Z > j + 1, Vt = mt == null ? void 0 : z.get(mt), $ = gt == null ? vt ? Vt : void 0 : z.get(gt);
331
+ }, [e, Q]), Vt = We === !0 || We === "auto" && Z > j + 1, Ht = mt == null ? void 0 : z.get(mt), $ = gt == null ? vt ? Ht : void 0 : z.get(gt);
324
332
  h(() => {}, [F.warnings]), h(() => {
325
333
  let e = A.current;
326
334
  if (!e) return;
@@ -345,7 +353,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
345
353
  ]
346
354
  }), () => t.disconnect();
347
355
  }, []);
348
- let Ht = m((e) => {
356
+ let Ut = m((e) => {
349
357
  let t = A.current;
350
358
  if (!t) return;
351
359
  let n = P ? Ot.get(e) : void 0;
@@ -364,40 +372,40 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
364
372
  P,
365
373
  j,
366
374
  Y
367
- ]), Ut = y(null);
375
+ ]), Wt = y(null);
368
376
  _(() => {
369
- let e = A.current, t = Ut.current;
377
+ let e = A.current, t = Wt.current;
370
378
  if (!e || t == null) return;
371
- Ut.current = null;
379
+ Wt.current = null;
372
380
  let n = Math.max(0, Math.min(Math.max(0, Z - e.clientWidth), t));
373
381
  e.scrollLeft = n, pt(n);
374
382
  }, [Z, K]);
375
- let Wt = y(K);
376
- Wt.current = K;
377
- let Gt = y({
378
- limits: G,
383
+ let Gt = y(K);
384
+ Gt.current = K;
385
+ let Kt = y({
386
+ limits: Ft,
379
387
  origin: q,
380
- axisPadding: V,
388
+ axisPadding: G,
381
389
  inset: dt.left
382
390
  });
383
- Gt.current = {
384
- limits: G,
391
+ Kt.current = {
392
+ limits: Ft,
385
393
  origin: q,
386
- axisPadding: V,
394
+ axisPadding: G,
387
395
  inset: dt.left
388
396
  }, h(() => {
389
397
  let e = A.current;
390
398
  if (!e || !P) return;
391
399
  let t = (t) => {
392
- let { limits: n, origin: r, axisPadding: a, inset: o } = Gt.current;
400
+ let { limits: n, origin: r, axisPadding: a, inset: o } = Kt.current;
393
401
  if (!n) return;
394
402
  let s = t.deltaMode === 1 ? 16 : t.deltaMode === 2 ? e.clientWidth : 1;
395
403
  if (t.ctrlKey || t.metaKey) {
396
404
  if (!Re) return;
397
405
  t.preventDefault();
398
- let c = Wt.current, l = i(c * Math.exp(-t.deltaY * s * ye), n);
406
+ let c = Gt.current, l = i(c * Math.exp(-t.deltaY * s * ye), n);
399
407
  if (l === c) return;
400
- Ut.current = p(c, l, t.clientX - e.getBoundingClientRect().left - e.clientLeft - o, Ut.current ?? e.scrollLeft, r, a), Wt.current = l, Mt(l);
408
+ Wt.current = p(c, l, t.clientX - e.getBoundingClientRect().left - e.clientLeft - o, Wt.current ?? e.scrollLeft, r, a), Gt.current = l, Mt(l);
401
409
  return;
402
410
  }
403
411
  if (!ze || t.shiftKey || Math.abs(t.deltaY) <= Math.abs(t.deltaX)) return;
@@ -410,17 +418,17 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
410
418
  ze,
411
419
  Re
412
420
  ]);
413
- let Kt = y(null), qt = y(null);
421
+ let qt = y(null), Jt = y(null);
414
422
  _(() => {
415
- Ie && (qt.current = Ie);
423
+ Ie && (Jt.current = Ie);
416
424
  }, [Ie]), _(() => {
417
- let e = qt.current;
418
- if (!P || !e || !G || j <= 0 || (qt.current = null, be(e) === Kt.current)) return;
425
+ let e = Jt.current;
426
+ if (!P || !e || !Ft || j <= 0 || (Jt.current = null, be(e) === qt.current)) return;
419
427
  let t = e.end - e.start;
420
428
  if (!(t > 0) || !Number.isFinite(t)) return;
421
- let n = i(Math.max(1, j - V - Pt) / t, G), r = f(e.start, q, n, V) - V;
422
- if (Wt.current = n, n !== K) {
423
- Ut.current = r, Mt(n);
429
+ let n = i(Math.max(1, j - G - Pt) / t, Ft), r = f(e.start, q, n, G) - G;
430
+ if (Gt.current = n, n !== K) {
431
+ Wt.current = r, Mt(n);
424
432
  return;
425
433
  }
426
434
  let a = A.current;
@@ -428,9 +436,9 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
428
436
  let o = Math.max(0, Math.min(Math.max(0, Z - a.clientWidth), r));
429
437
  a.scrollLeft = o, pt(o);
430
438
  }, [
431
- V,
432
439
  Z,
433
440
  G,
441
+ Ft,
434
442
  q,
435
443
  P,
436
444
  K,
@@ -439,15 +447,15 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
439
447
  j
440
448
  ]), h(() => {
441
449
  let e = A.current;
442
- if (!P || !Le || !e || j <= 0 || Ut.current != null) return;
450
+ if (!P || !Le || !e || j <= 0 || Wt.current != null) return;
443
451
  let t = e.scrollLeft, n = {
444
- start: c(t + V, q, K, V),
445
- end: c(t + j - Pt, q, K, V),
452
+ start: c(t + G, q, K, G),
453
+ end: c(t + j - Pt, q, K, G),
446
454
  scale: K
447
455
  }, r = be(n);
448
- r !== Kt.current && (Kt.current = r, Le(n));
456
+ r !== qt.current && (qt.current = r, Le(n));
449
457
  }, [
450
- V,
458
+ G,
451
459
  Le,
452
460
  q,
453
461
  P,
@@ -456,9 +464,9 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
456
464
  Pt,
457
465
  j
458
466
  ]), h(() => {
459
- E != null && z.has(E) && (ht(E), Ht(E));
467
+ E != null && z.has(E) && (ht(E), Ut(E));
460
468
  }, [
461
- Ht,
469
+ Ut,
462
470
  E,
463
471
  z
464
472
  ]), h(() => {
@@ -471,16 +479,16 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
471
479
  let t = ct.current, n = at.current;
472
480
  if (!t || !n) return;
473
481
  let r = Math.max(1, j), i = window.devicePixelRatio || 1;
474
- t.width = Math.ceil(r * i), t.height = Math.ceil(It * i), t.style.width = `${r}px`, t.style.height = `${It}px`;
482
+ t.width = Math.ceil(r * i), t.height = Math.ceil(Lt * i), t.style.width = `${r}px`, t.style.height = `${Lt}px`;
475
483
  let a = t.getContext("2d");
476
484
  if (!a) return;
477
- a.setTransform(i, 0, 0, i, 0, 0), a.clearRect(0, 0, r, It);
485
+ a.setTransform(i, 0, 0, i, 0, 0), a.clearRect(0, 0, r, Lt);
478
486
  let o = getComputedStyle(n), s = o.getPropertyValue("--bg").trim() || "transparent", l = o.getPropertyValue("--fg").trim() || "currentColor", u = o.getPropertyValue("--muted").trim() || l, f = o.getPropertyValue("--color-link").trim() || l, p = f, m = o.getPropertyValue("--color-error").trim() || l, h = o.getPropertyValue("--color-accent").trim() || l, g = /* @__PURE__ */ new Map(), _ = (e) => {
479
487
  let t = g.get(e);
480
488
  return t === void 0 && (t = we(a, e, s, i), g.set(e, t)), t;
481
489
  }, v = (e) => e.markerToken ? T(o, e.markerToken, h) : h;
482
490
  if (P && W) {
483
- let n = c(M, q, K, V), i = c(M + r, q, K, V);
491
+ let n = c(M, q, K, G), i = c(M + r, q, K, G);
484
492
  t.dataset.windowStart = String(n), t.dataset.windowEnd = String(i);
485
493
  let p = {
486
494
  fill: o.getPropertyValue("--color-bg-subtle").trim() || s,
@@ -495,7 +503,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
495
503
  for (let e of F.spans) {
496
504
  let t = J(e.from) - M, n = J(e.to) - M, i = e.trail === void 0 ? n : J(e.trail) - M;
497
505
  if (Math.max(n, i) < 0 || t > r) continue;
498
- let s = Ft.get(I(e.lane));
506
+ let s = It.get(I(e.lane));
499
507
  if (!s) continue;
500
508
  let c = e.trailToken ? T(o, e.trailToken, p.trail) : p.trail;
501
509
  ke(a, {
@@ -624,7 +632,8 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
624
632
  }, [
625
633
  Z,
626
634
  V,
627
- It,
635
+ G,
636
+ Lt,
628
637
  N,
629
638
  k,
630
639
  B,
@@ -646,22 +655,22 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
646
655
  K,
647
656
  Ve,
648
657
  I,
649
- Ft,
658
+ It,
650
659
  F.links,
651
660
  X,
652
661
  Y,
653
662
  J
654
663
  ]), h(() => {
655
664
  let t = lt.current, n = at.current;
656
- if (!t || !n || !Bt) return;
665
+ if (!t || !n || !Vt) return;
657
666
  let r = Math.max(1, j), i = window.devicePixelRatio || 1;
658
- t.width = Math.ceil(r * i), t.height = Math.ceil(Lt * i), t.style.width = `${r}px`, t.style.height = `${Lt}px`;
667
+ t.width = Math.ceil(r * i), t.height = Math.ceil(Rt * i), t.style.width = `${r}px`, t.style.height = `${Rt}px`;
659
668
  let a = t.getContext("2d");
660
669
  if (!a) return;
661
- a.setTransform(i, 0, 0, i, 0, 0), a.clearRect(0, 0, r, Lt);
670
+ a.setTransform(i, 0, 0, i, 0, 0), a.clearRect(0, 0, r, Rt);
662
671
  let o = getComputedStyle(n), s = o.getPropertyValue("--fg").trim() || "currentColor", c = o.getPropertyValue("--muted").trim() || s, l = o.getPropertyValue("--color-link").trim() || s, u = /* @__PURE__ */ new Map();
663
672
  for (let t of e) t.overview !== !1 && !t.hidden && u.set(t.id, u.size);
664
- let d = he(u.size, Lt), f = r / Math.max(Z, 1);
673
+ let d = he(u.size, Rt), f = r / Math.max(Z, 1);
665
674
  if (Ue !== "marks") {
666
675
  let t = (t) => {
667
676
  let n = u.get(t);
@@ -687,7 +696,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
687
696
  }
688
697
  a.globalAlpha = 1;
689
698
  let p = M * f, m = Math.min(r, j * f);
690
- a.strokeStyle = l, a.lineWidth = ae, a.strokeRect(p, ae / 2, Math.max(2, m), Lt - ae);
699
+ a.strokeStyle = l, a.lineWidth = ae, a.strokeRect(p, ae / 2, Math.max(2, m), Rt - ae);
691
700
  }, [
692
701
  Z,
693
702
  V,
@@ -696,11 +705,11 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
696
705
  L,
697
706
  e.length,
698
707
  D,
699
- Lt,
708
+ Rt,
700
709
  w,
701
710
  M,
702
711
  E,
703
- Bt,
712
+ Vt,
704
713
  wt,
705
714
  j,
706
715
  R,
@@ -713,10 +722,10 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
713
722
  Y,
714
723
  J
715
724
  ]);
716
- let Jt = m((e) => {
725
+ let Yt = m((e) => {
717
726
  let t = e?.i ?? null;
718
727
  _t(t), Et.current !== t && (Et.current = t, Qe?.(e));
719
- }, [Qe]), Yt = m((t) => {
728
+ }, [Qe]), Xt = m((t) => {
720
729
  let n = ct.current, r = A.current;
721
730
  if (!n || !r) return null;
722
731
  let i = n.getBoundingClientRect(), o = t.clientX - i.left + r.scrollLeft - V, s = t.clientY - i.top, l = -1;
@@ -725,7 +734,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
725
734
  if (P) {
726
735
  let e = d ? W?.byLane.get(d.id) : void 0;
727
736
  if (!e) return null;
728
- let t = o + V, n = _e / K, r = c(t, q, K, V), i = null, s = Infinity, l = a(e.positions, r - e.reach - H / K - n), f = u(e.positions, r + H / K + n);
737
+ let t = o + V, n = _e / K, r = c(t, q, K, G), i = null, s = Infinity, l = a(e.positions, r - e.reach - H / K - n), f = u(e.positions, r + H / K + n);
729
738
  for (let n = l; n < f; n += 1) {
730
739
  let r = e.events[n], a = X(r), o = Y(r), c = o < _e * 2 ? _e : 0;
731
740
  if (t < a - c || t > a + o + c) continue;
@@ -741,6 +750,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
741
750
  N,
742
751
  e,
743
752
  Q,
753
+ G,
744
754
  X,
745
755
  H,
746
756
  q,
@@ -749,42 +759,42 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
749
759
  K,
750
760
  At,
751
761
  Y
752
- ]), Xt = m((e) => {
762
+ ]), Zt = m((e) => {
753
763
  let t = ct.current, n = A.current;
754
764
  if (!t || !n || !P) return null;
755
765
  let r = t.getBoundingClientRect(), i = e.clientX - r.left + n.scrollLeft, a = e.clientY - r.top;
756
766
  for (let e = F.spans.length - 1; e >= 0; --e) {
757
- let t = F.spans[e], n = Ft.get(I(t.lane));
767
+ let t = F.spans[e], n = It.get(I(t.lane));
758
768
  if (!(!n || a < n.top || a > n.bottom) && i >= J(t.from) && i <= J(Math.max(t.to, t.trail ?? t.to))) return t;
759
769
  }
760
770
  return null;
761
771
  }, [
762
772
  P,
763
773
  I,
764
- Ft,
774
+ It,
765
775
  F.spans,
766
776
  J
767
- ]), Zt = (e) => {
768
- Jt(Yt(e));
769
- }, Qt = (e) => {
777
+ ]), Qt = (e) => {
778
+ Yt(Xt(e));
779
+ }, $t = (e) => {
770
780
  Ct();
771
- let t = Yt(e);
781
+ let t = Xt(e);
772
782
  if (!t) {
773
- let t = He ? Xt(e) : null;
783
+ let t = He ? Zt(e) : null;
774
784
  t && He?.(t);
775
785
  return;
776
786
  }
777
- A.current?.focus(), ht(t.i), Jt(t), Ze?.(t);
778
- }, $t = m((e) => {
787
+ A.current?.focus(), ht(t.i), Yt(t), Ze?.(t);
788
+ }, en = m((e) => {
779
789
  let t = R[e];
780
- t && (ht(t.i), Ht(t.i), Ze?.(t));
790
+ t && (ht(t.i), Ut(t.i), Ze?.(t));
781
791
  }, [
782
792
  Ze,
783
- Ht,
793
+ Ut,
784
794
  R
785
- ]), en = m((e) => {
786
- ht(e.i), Ht(e.i), Ze?.(e);
787
- }, [Ze, Ht]), tn = (e, t) => {
795
+ ]), tn = m((e) => {
796
+ ht(e.i), Ut(e.i), Ze?.(e);
797
+ }, [Ze, Ut]), nn = (e, t) => {
788
798
  if (!W) return null;
789
799
  let n = I(t.lane), r = W.byTimeline.get(n) ?? [t], i = W.stepOf.get(t.i) ?? 0;
790
800
  if (e === "ArrowRight") return r[Math.min(r.length - 1, i + 1)];
@@ -797,7 +807,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
797
807
  let l = t.position, u = c[0];
798
808
  for (let e of c) Math.abs(e.position - l) < Math.abs(u.position - l) && (u = e);
799
809
  return u;
800
- }, nn = (e) => {
810
+ }, rn = (e) => {
801
811
  if (St(!1), R.length === 0) return;
802
812
  if (P) {
803
813
  let t = e.key;
@@ -817,9 +827,9 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
817
827
  e.preventDefault(), e.stopPropagation(), Ze?.(n);
818
828
  return;
819
829
  }
820
- let r = tn(t, n);
830
+ let r = nn(t, n);
821
831
  if (!r) return;
822
- e.preventDefault(), e.stopPropagation(), (r.i !== n.i || t === "Home" || t === "End") && en(r);
832
+ e.preventDefault(), e.stopPropagation(), (r.i !== n.i || t === "Home" || t === "End") && tn(r);
823
833
  return;
824
834
  }
825
835
  [
@@ -839,17 +849,17 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
839
849
  n && Ze?.(n);
840
850
  return;
841
851
  } else return;
842
- e.preventDefault(), e.stopPropagation(), (n !== t || e.key === "Home" || e.key === "End") && $t(n);
843
- }, rn = (e) => {
852
+ e.preventDefault(), e.stopPropagation(), (n !== t || e.key === "Home" || e.key === "End") && en(n);
853
+ }, an = (e) => {
844
854
  let t = lt.current, n = A.current;
845
855
  if (!t || !n) return;
846
856
  let r = t.getBoundingClientRect(), i = Math.max(0, Math.min(1, (e.clientX - r.left) / Math.max(1, r.width))), a = Math.max(0, Z - n.clientWidth), o = Math.max(0, Math.min(a, i * Z - n.clientWidth / 2));
847
857
  n.scrollLeft = o, pt(o);
848
- }, an = (e) => {
849
- e.currentTarget.setPointerCapture(e.pointerId), rn(e);
850
858
  }, on = (e) => {
851
- e.currentTarget.hasPointerCapture(e.pointerId) && rn(e);
852
- }, sn = $ ? Xe ? Xe($) : /* @__PURE__ */ S("div", {
859
+ e.currentTarget.setPointerCapture(e.pointerId), an(e);
860
+ }, sn = (e) => {
861
+ e.currentTarget.hasPointerCapture(e.pointerId) && an(e);
862
+ }, cn = $ ? Xe ? Xe($) : /* @__PURE__ */ S("div", {
853
863
  className: "cs-component-event-lanes-tooltip-content",
854
864
  children: [
855
865
  /* @__PURE__ */ x("strong", { children: $.label }),
@@ -862,44 +872,44 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
862
872
  $.tick && /* @__PURE__ */ x("span", { children: "Boundary" }),
863
873
  $.marker && /* @__PURE__ */ x("span", { children: $.marker })
864
874
  ]
865
- }) : null, cn = $ ? L.get($.lane) ?? 0 : 0, ln = $ ? P ? X($) + Y($) / 2 - M : V + ($.i + .5) * N - M : 0, un = Math.max(48, Math.min(Math.max(48, j - 48), ln)), dn = (Rt ? re : 0) + (Q.tops[cn] ?? 0), fn = dn + (Q.heights[cn] ?? ne), pn = $?.i, [mn, hn] = b(null), [gn, _n] = b(0), [vn, yn] = b(!1), [bn, xn] = b(0);
875
+ }) : null, ln = $ ? L.get($.lane) ?? 0 : 0, un = $ ? P ? X($) + Y($) / 2 - M : V + ($.i + .5) * N - M : 0, dn = Math.max(48, Math.min(Math.max(48, j - 48), un)), fn = (zt ? re : 0) + (Q.tops[ln] ?? 0), pn = fn + (Q.heights[ln] ?? ne), mn = $?.i, [hn, gn] = b(null), [_n, vn] = b(0), [yn, bn] = b(!1), [xn, Sn] = b(0);
866
876
  _(() => {
867
877
  let e = ot.current;
868
- if (pn == null || !e) {
869
- hn(null);
878
+ if (mn == null || !e) {
879
+ gn(null);
870
880
  return;
871
881
  }
872
882
  let t = e.getBoundingClientRect();
873
- hn({
874
- x: t.left + un,
875
- top: t.top + dn,
876
- bottom: t.top + fn
877
- }), _n(0), yn(!1);
883
+ gn({
884
+ x: t.left + dn,
885
+ top: t.top + fn,
886
+ bottom: t.top + pn
887
+ }), vn(0), bn(!1);
878
888
  }, [
879
- pn,
880
- un,
889
+ mn,
881
890
  dn,
882
891
  fn,
883
- bn
892
+ pn,
893
+ xn
884
894
  ]), _(() => {
885
895
  let e = st.current;
886
- if (!e || !mn) return;
896
+ if (!e || !hn) return;
887
897
  let t = e.getBoundingClientRect();
888
898
  if (t.width === 0 || t.height === 0) return;
889
899
  let n = t.left < 8 ? 8 - t.left : t.right > window.innerWidth - 8 ? window.innerWidth - 8 - t.right : 0;
890
- Math.abs(n) >= .5 && _n((e) => e + n), !vn && t.top < 8 && yn(!0);
900
+ Math.abs(n) >= .5 && vn((e) => e + n), !yn && t.top < 8 && bn(!0);
891
901
  }, [
892
- mn,
893
- gn,
894
- vn
902
+ hn,
903
+ _n,
904
+ yn
895
905
  ]), h(() => {
896
- if (pn == null) return;
897
- let e = () => xn((e) => e + 1);
906
+ if (mn == null) return;
907
+ let e = () => Sn((e) => e + 1);
898
908
  return window.addEventListener("scroll", e, !0), window.addEventListener("resize", e), () => {
899
909
  window.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e);
900
910
  };
901
- }, [pn]);
902
- let Sn = {
911
+ }, [mn]);
912
+ let Cn = {
903
913
  start: 0,
904
914
  end: B,
905
915
  cellWidth: N,
@@ -912,26 +922,26 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
912
922
  scale: K,
913
923
  origin: q,
914
924
  end: U.finish,
915
- visibleStart: c(M, q, K, V),
916
- visibleEnd: c(M + j, q, K, V),
925
+ visibleStart: c(M, q, K, G),
926
+ visibleEnd: c(M + j, q, K, G),
917
927
  xForPosition: J,
918
- positionForX: (e) => c(e, q, K, V)
928
+ positionForX: (e) => c(e, q, K, G)
919
929
  } } : {}
920
- }, Cn = $ && sn != null ? $.i : void 0, wn = v(() => R.map((e, t) => /* @__PURE__ */ x("div", {
930
+ }, wn = $ && cn != null ? $.i : void 0, Tn = v(() => R.map((e, t) => /* @__PURE__ */ x("div", {
921
931
  id: `${rt}-${e.i}`,
922
932
  role: "option",
923
933
  "aria-label": P ? Me(e, kt.get(e.lane), xe, F.spans.filter((t) => t.label && I(t.lane) === I(e.lane) && t.from <= e.position && e.position <= t.to)) : Me(e, kt.get(e.lane), F.spans.filter((t) => t.lane === e.lane)),
924
934
  "aria-posinset": t + 1,
925
935
  "aria-setsize": R.length,
926
936
  "aria-selected": E === e.i,
927
- "aria-describedby": Cn === e.i ? it : void 0,
937
+ "aria-describedby": wn === e.i ? it : void 0,
928
938
  "data-event-index": e.i,
929
939
  "data-event-kind": e.kind,
930
940
  "data-event-lane": e.lane,
931
941
  "data-event-linked": D?.has(e.i) ? "true" : void 0,
932
942
  "data-event-emphasized": k === void 0 ? void 0 : String(k.has(e.i))
933
943
  }, e.i)), [
934
- Cn,
944
+ wn,
935
945
  k,
936
946
  kt,
937
947
  D,
@@ -942,12 +952,12 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
942
952
  it,
943
953
  F.spans,
944
954
  R
945
- ]), Tn = Vt ? `${rt}-${Vt.i}` : void 0, En = {
955
+ ]), En = Ht ? `${rt}-${Ht.i}` : void 0, Dn = {
946
956
  "--event-lanes-ruler-height": `${re / 16}rem`,
947
957
  "--event-lanes-lane-height": `${ne / 16}rem`,
948
- "--event-lanes-canvas-height": `${It / 16}rem`,
958
+ "--event-lanes-canvas-height": `${Lt / 16}rem`,
949
959
  "--event-lanes-lane-count": Math.max(1, e.length)
950
- }, Dn = Bt && /* @__PURE__ */ S("div", {
960
+ }, On = Vt && /* @__PURE__ */ S("div", {
951
961
  className: "cs-component-event-lanes-overview-row",
952
962
  children: [/* @__PURE__ */ x("div", {
953
963
  "data-event-lanes-overview-label": "",
@@ -960,29 +970,29 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
960
970
  "aria-hidden": "true",
961
971
  className: "cs-component-event-lanes-overview",
962
972
  style: dt.left ? { marginLeft: dt.left } : void 0,
963
- onPointerDown: an,
964
- onPointerMove: on
973
+ onPointerDown: on,
974
+ onPointerMove: sn
965
975
  })]
966
- }), On = Ke === "above";
976
+ }), kn = Ke === "above";
967
977
  return /* @__PURE__ */ S("div", {
968
978
  ref: at,
969
979
  id: et,
970
980
  "data-component": "EventLanes",
971
- "data-overview-placement": On ? "above" : void 0,
972
- "data-event-lanes-shaded": zt.length > 0 ? "" : void 0,
981
+ "data-overview-placement": kn ? "above" : void 0,
982
+ "data-event-lanes-shaded": Bt.length > 0 ? "" : void 0,
973
983
  className: t("cs-component-event-lanes-root", tt),
974
- style: En,
984
+ style: Dn,
975
985
  children: [
976
- On && Dn,
986
+ kn && On,
977
987
  /* @__PURE__ */ S("div", {
978
988
  className: "cs-component-event-lanes-main",
979
989
  children: [
980
- zt.map((e) => /* @__PURE__ */ x("div", {
990
+ Bt.map((e) => /* @__PURE__ */ x("div", {
981
991
  "data-event-lanes-band": e.token,
982
992
  className: "cs-component-event-lanes-band",
983
993
  "aria-hidden": "true",
984
994
  style: {
985
- top: `calc(var(--event-lanes-band-inset, 0rem) + ${((Rt ? re : 0) + e.top) / 16}rem)`,
995
+ top: `calc(var(--event-lanes-band-inset, 0rem) + ${((zt ? re : 0) + e.top) / 16}rem)`,
986
996
  height: `${(e.bottom - e.top) / 16}rem`,
987
997
  background: `var(${e.token})`
988
998
  }
@@ -991,7 +1001,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
991
1001
  "data-event-lanes-labels": "",
992
1002
  className: "cs-component-event-lanes-labels",
993
1003
  "aria-hidden": "true",
994
- children: [Rt && /* @__PURE__ */ x("div", {
1004
+ children: [zt && /* @__PURE__ */ x("div", {
995
1005
  className: "cs-component-event-lanes-ruler-label",
996
1006
  children: Ye
997
1007
  }), (e.length > 0 ? e : [{
@@ -1022,16 +1032,16 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
1022
1032
  tabIndex: 0,
1023
1033
  "aria-label": $e,
1024
1034
  "aria-orientation": "horizontal",
1025
- "aria-activedescendant": Tn,
1035
+ "aria-activedescendant": En,
1026
1036
  "aria-disabled": R.length === 0 ? "true" : void 0,
1027
1037
  "data-event-lanes-scroller": "",
1028
- "data-scrollbar": qe === "overview" && Bt ? "overview" : void 0,
1038
+ "data-scrollbar": qe === "overview" && Vt ? "overview" : void 0,
1029
1039
  "data-event-count": R.length,
1030
1040
  "data-span-count": F.spans.length,
1031
1041
  "data-layout": P ? "position" : void 0,
1032
1042
  "data-focus-source": xt ? "pointer" : void 0,
1033
1043
  className: "cs-component-event-lanes-scroller",
1034
- onKeyDown: nn,
1044
+ onKeyDown: rn,
1035
1045
  onPointerDown: Ct,
1036
1046
  onFocus: () => {
1037
1047
  yt(!bt.current), St(bt.current), bt.current = !1;
@@ -1044,11 +1054,11 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
1044
1054
  className: "cs-component-event-lanes-axis",
1045
1055
  style: { width: Math.max(Z, j) },
1046
1056
  children: [
1047
- Rt && /* @__PURE__ */ x("div", {
1057
+ zt && /* @__PURE__ */ x("div", {
1048
1058
  role: "presentation",
1049
1059
  className: "cs-component-event-lanes-ruler",
1050
1060
  style: { width: Math.max(Z, j) },
1051
- children: typeof Je == "function" ? Je(Sn) : Je
1061
+ children: typeof Je == "function" ? Je(Cn) : Je
1052
1062
  }),
1053
1063
  /* @__PURE__ */ x("div", {
1054
1064
  className: "cs-component-event-lanes-canvas-window",
@@ -1056,9 +1066,9 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
1056
1066
  ref: ct,
1057
1067
  "data-event-lanes-canvas": "",
1058
1068
  "aria-hidden": "true",
1059
- onPointerMove: Zt,
1060
- onPointerDown: Qt,
1061
- onPointerLeave: () => Jt(null)
1069
+ onPointerMove: Qt,
1070
+ onPointerDown: $t,
1071
+ onPointerLeave: () => Yt(null)
1062
1072
  })
1063
1073
  }),
1064
1074
  /* @__PURE__ */ S("div", {
@@ -1066,7 +1076,7 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
1066
1076
  "data-event-lanes-census": "",
1067
1077
  className: "cs-component-event-lanes-census",
1068
1078
  children: [
1069
- wn,
1079
+ Tn,
1070
1080
  F.spans.map((e, t) => /* @__PURE__ */ x("span", {
1071
1081
  "data-span-lane": e.lane,
1072
1082
  "data-span-from": e.from,
@@ -1090,22 +1100,22 @@ function Ne({ lanes: e, events: ce, spans: C = xe, palette: w, selected: E = nul
1090
1100
  })
1091
1101
  ]
1092
1102
  })
1093
- }), $ && sn != null && mn && typeof document < "u" && ee(/* @__PURE__ */ x("div", {
1103
+ }), $ && cn != null && hn && typeof document < "u" && ee(/* @__PURE__ */ x("div", {
1094
1104
  id: it,
1095
1105
  className: "cs-component-event-lanes-tooltip-layer",
1096
1106
  children: /* @__PURE__ */ x(r, {
1097
1107
  ref: st,
1098
1108
  className: "cs-component-event-lanes-tooltip",
1099
- x: mn.x + gn,
1100
- y: vn ? mn.bottom : mn.top,
1101
- anchor: vn ? "bottom" : "top",
1102
- children: sn
1109
+ x: hn.x + _n,
1110
+ y: yn ? hn.bottom : hn.top,
1111
+ anchor: yn ? "bottom" : "top",
1112
+ children: cn
1103
1113
  })
1104
1114
  }), document.body)]
1105
1115
  })
1106
1116
  ]
1107
1117
  }),
1108
- !On && Dn
1118
+ !kn && On
1109
1119
  ]
1110
1120
  });
1111
1121
  }
@@ -49,12 +49,14 @@ export interface TimelineMark {
49
49
  i: number;
50
50
  position: number;
51
51
  }
52
- /** Each mark's next position in its timeline, keyed by index. Several lanes can
53
- * form one timeline, so the order is taken across all of them: work drawn in
54
- * one lane never stretches across waiting drawn in another. Marks sharing a
55
- * position have no gap and draw as hairlines. */
52
+ /** Each mark's next and previous position in its timeline, keyed by index.
53
+ * Several lanes can form one timeline, so the order is taken across all of
54
+ * them: work drawn in one lane never stretches across waiting drawn in
55
+ * another. Marks sharing a position have no gap and draw as hairlines. A
56
+ * mark anchored at its end reaches left, so its width reads `previous`. */
56
57
  export declare function nextPositions(timelines: Iterable<readonly TimelineMark[]>): {
57
58
  next: Map<number, number>;
59
+ previous: Map<number, number>;
58
60
  smallestGap: number | undefined;
59
61
  };
60
62
  //# sourceMappingURL=eventLanesPosition.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventLanesPosition.d.ts","sourceRoot":"","sources":["../../src/lib/eventLanesPosition.ts"],"names":[],"mappings":"AAAA;;;;;;;oCAOoC;AAEpC,wEAAwE;AACxE,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;kBAEkB;AAClB,eAAO,MAAM,eAAe,UAAY,CAAC;AAMzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAE5F;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAErF;AAED;;;;wBAIwB;AACxB,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,UAKjB;AAED;;2EAE2E;AAC3E,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,6BAEjG;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,UASrE;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,UASrE;AAED;qDACqD;AACrD,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,UAIhB;AAED,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;eAKe;AACf,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,GACf,WAAW,CAMb;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,UAG5D;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;kDAGkD;AAClD,wBAAgB,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,YAAY,EAAE,CAAC;;;EAYzE"}
1
+ {"version":3,"file":"eventLanesPosition.d.ts","sourceRoot":"","sources":["../../src/lib/eventLanesPosition.ts"],"names":[],"mappings":"AAAA;;;;;;;oCAOoC;AAEpC,wEAAwE;AACxE,eAAO,MAAM,WAAW,IAAI,CAAC;AAE7B;;kBAEkB;AAClB,eAAO,MAAM,eAAe,UAAY,CAAC;AAMzC,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAE5F;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAErF;AAED;;;;wBAIwB;AACxB,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,UAKjB;AAED;;2EAE2E;AAC3E,wBAAgB,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,6BAEjG;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,UASrE;AAED,8DAA8D;AAC9D,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,UASrE;AAED;qDACqD;AACrD,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,UAIhB;AAED,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;eAKe;AACf,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,QAAQ,EAAE,MAAM,GACf,WAAW,CAMb;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,UAG5D;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;4EAI4E;AAC5E,wBAAgB,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,YAAY,EAAE,CAAC;;;;EAczE"}
@@ -41,17 +41,18 @@ function u(e, t) {
41
41
  return !Number.isFinite(e) || e <= 0 ? t.min : Math.max(t.min, Math.min(t.max, e));
42
42
  }
43
43
  function d(e) {
44
- let t = /* @__PURE__ */ new Map(), n;
45
- for (let r of e) {
46
- let e = [...r].sort((e, t) => e.position - t.position || e.i - t.i);
47
- for (let r = 0; r + 1 < e.length; r += 1) {
48
- let i = e[r + 1].position - e[r].position;
49
- t.set(e[r].i, e[r + 1].position), i > 0 && (n === void 0 || i < n) && (n = i);
44
+ let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r;
45
+ for (let i of e) {
46
+ let e = [...i].sort((e, t) => e.position - t.position || e.i - t.i);
47
+ for (let i = 0; i + 1 < e.length; i += 1) {
48
+ let a = e[i + 1].position - e[i].position;
49
+ t.set(e[i].i, e[i + 1].position), n.set(e[i + 1].i, e[i].position), a > 0 && (r === void 0 || a < r) && (r = a);
50
50
  }
51
51
  }
52
52
  return {
53
53
  next: t,
54
- smallestGap: n
54
+ previous: n,
55
+ smallestGap: r
55
56
  };
56
57
  }
57
58
  //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codesweep-ai/ui",
3
- "version": "0.3.1-dev.20260922185258.7843e7c",
3
+ "version": "0.3.1-dev.20260922190610.1994973",
4
4
  "description": "Open React components and design tokens for agent and LLM interfaces.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -20,7 +20,7 @@
20
20
  "type": "git",
21
21
  "url": "git+https://github.com/codesweep-ai/ui.git"
22
22
  },
23
- "homepage": "https://github.com/codesweep-ai/ui/blob/7843e7cbf00a250674037f74b3802195570855ec/README.md",
23
+ "homepage": "https://github.com/codesweep-ai/ui/blob/1994973c5a7717f45f23c5e7500d0d972be9630e/README.md",
24
24
  "bugs": {
25
25
  "url": "https://github.com/codesweep-ai/ui/issues"
26
26
  },