@cueplusplus/ui 0.1.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/CHANGELOG.md +705 -0
  2. package/dist/brand/_chassis.d.ts +54 -0
  3. package/dist/brand/_chassis.js +81 -0
  4. package/dist/brand/_geometry.js +41 -0
  5. package/dist/brand/cue-logotype.d.ts +29 -0
  6. package/dist/brand/cue-logotype.js +60 -0
  7. package/dist/brand/cue-mark.d.ts +30 -0
  8. package/dist/brand/cue-mark.js +61 -0
  9. package/dist/brand/index.d.ts +5 -0
  10. package/dist/brand/plussie.d.ts +67 -0
  11. package/dist/brand/plussie.js +125 -0
  12. package/dist/chat/agent-pile.js +1 -1
  13. package/dist/chat/ask-box.js +2 -2
  14. package/dist/chat/delegation-card.js +1 -1
  15. package/dist/chat/message.js +2 -2
  16. package/dist/chrome/_edge-scroller.d.ts +45 -0
  17. package/dist/chrome/_edge-scroller.js +149 -0
  18. package/dist/chrome/_glyphs.js +19 -1
  19. package/dist/chrome/_tabs-scroll.d.ts +13 -8
  20. package/dist/chrome/_tabs-scroll.js +13 -8
  21. package/dist/chrome/app-bar.d.ts +103 -0
  22. package/dist/chrome/app-bar.js +175 -0
  23. package/dist/chrome/app-shell.d.ts +125 -0
  24. package/dist/chrome/app-shell.js +167 -0
  25. package/dist/chrome/footer.d.ts +75 -0
  26. package/dist/chrome/footer.js +68 -0
  27. package/dist/chrome/index.d.ts +5 -1
  28. package/dist/chrome/index.js +4 -1
  29. package/dist/chrome/navigation-menu.js +1 -1
  30. package/dist/chrome/page-shell.d.ts +1 -1
  31. package/dist/chrome/page-shell.js +15 -5
  32. package/dist/chrome/segmented-control.d.ts +19 -0
  33. package/dist/chrome/segmented-control.js +40 -21
  34. package/dist/chrome/tabs.js +21 -65
  35. package/dist/chrome/toolbar.d.ts +22 -0
  36. package/dist/chrome/toolbar.js +26 -5
  37. package/dist/configurator/_overrides.js +22 -8
  38. package/dist/configurator/configurator.js +1 -1
  39. package/dist/configurator/panel-sections.js +10 -4
  40. package/dist/dmx/channel-matrix.js +1 -1
  41. package/dist/forms/otp-field.js +1 -1
  42. package/dist/index.d.ts +18 -9
  43. package/dist/index.js +16 -10
  44. package/dist/instruments/data-table.js +1 -1
  45. package/dist/instruments/index.d.ts +2 -2
  46. package/dist/instruments/index.js +2 -2
  47. package/dist/instruments/table.d.ts +14 -1
  48. package/dist/instruments/table.js +20 -1
  49. package/dist/layout/carousel.js +1 -1
  50. package/dist/layout/container.d.ts +1 -1
  51. package/dist/layout/container.js +6 -3
  52. package/dist/layout/index.d.ts +3 -3
  53. package/dist/layout/index.js +3 -3
  54. package/dist/layout/pagination.js +1 -1
  55. package/dist/layout/sidebar.d.ts +23 -3
  56. package/dist/layout/sidebar.js +18 -7
  57. package/dist/midi/spectrum-visualizer.js +1 -1
  58. package/dist/midi/timeline-ruler.js +1 -1
  59. package/dist/overlays/command-palette.js +1 -1
  60. package/dist/overlays/dialog.js +1 -1
  61. package/dist/overlays/dropdown-menu.js +2 -2
  62. package/dist/overlays/hover-card.js +1 -1
  63. package/dist/overlays/index.js +1 -1
  64. package/dist/overlays/popover.js +1 -1
  65. package/dist/overlays/sheet.js +1 -1
  66. package/dist/overlays/toast.js +1 -1
  67. package/dist/primitives/chip.d.ts +1 -1
  68. package/dist/primitives/index.d.ts +1 -1
  69. package/dist/primitives/index.js +1 -1
  70. package/dist/primitives/status-dot.d.ts +7 -0
  71. package/dist/primitives/status-dot.js +8 -1
  72. package/dist/styles.css +58 -2
  73. package/dist/system/density.d.ts +4 -1
  74. package/dist/system/density.js +12 -4
  75. package/dist/system/index.d.ts +4 -4
  76. package/dist/system/portal.d.ts +5 -5
  77. package/dist/system/portal.js +30 -11
  78. package/dist/system/prepaint.d.ts +34 -9
  79. package/dist/system/prepaint.js +48 -25
  80. package/dist/system/theme-provider.d.ts +48 -11
  81. package/dist/system/theme-provider.js +109 -35
  82. package/dist/system/use-density.d.ts +3 -3
  83. package/dist/system/use-density.js +16 -6
  84. package/dist/system/use-theme.d.ts +4 -2
  85. package/dist/system/use-theme.js +4 -2
  86. package/dist/theming/_presets.js +133 -5
  87. package/dist/theming/create-theme.d.ts +2 -2
  88. package/dist/theming/create-theme.js +37 -19
  89. package/dist/theming/serialize.d.ts +1 -1
  90. package/dist/theming/serialize.js +25 -1
  91. package/manifest/components/accordion.json +154 -0
  92. package/manifest/components/agent-pile.json +116 -0
  93. package/manifest/components/alert-dialog.json +190 -0
  94. package/manifest/components/app-bar.json +244 -0
  95. package/manifest/components/app-shell.json +291 -0
  96. package/manifest/components/app-window-frame.json +102 -0
  97. package/manifest/components/ask-box.json +209 -0
  98. package/manifest/components/autocomplete.json +197 -0
  99. package/manifest/components/avatar-group.json +72 -0
  100. package/manifest/components/avatar.json +95 -0
  101. package/manifest/components/breadcrumb.json +74 -0
  102. package/manifest/components/button-group.json +74 -0
  103. package/manifest/components/button.json +125 -0
  104. package/manifest/components/calendar.json +65 -0
  105. package/manifest/components/card.json +140 -0
  106. package/manifest/components/carousel.json +200 -0
  107. package/manifest/components/channel-matrix.json +173 -0
  108. package/manifest/components/chart-container.json +111 -0
  109. package/manifest/components/chart-ramp.json +72 -0
  110. package/manifest/components/chart-swatch.json +65 -0
  111. package/manifest/components/chart-tooltip-content.json +114 -0
  112. package/manifest/components/checkbox-group.json +68 -0
  113. package/manifest/components/checkbox.json +93 -0
  114. package/manifest/components/chip.json +132 -0
  115. package/manifest/components/collapsible.json +120 -0
  116. package/manifest/components/color-area.json +59 -0
  117. package/manifest/components/color-field.json +79 -0
  118. package/manifest/components/color-picker.json +175 -0
  119. package/manifest/components/color-slider.json +75 -0
  120. package/manifest/components/color-swatch.json +68 -0
  121. package/manifest/components/colors-section.json +66 -0
  122. package/manifest/components/combobox.json +198 -0
  123. package/manifest/components/command-palette.json +177 -0
  124. package/manifest/components/composer.json +176 -0
  125. package/manifest/components/container.json +60 -0
  126. package/manifest/components/context-menu.json +121 -0
  127. package/manifest/components/copy-button.json +93 -0
  128. package/manifest/components/cue-logotype.json +96 -0
  129. package/manifest/components/cue-mark.json +97 -0
  130. package/manifest/components/cue-portal-frame.json +55 -0
  131. package/manifest/components/data-table-pagination.json +83 -0
  132. package/manifest/components/data-table-toolbar.json +104 -0
  133. package/manifest/components/date-field.json +80 -0
  134. package/manifest/components/date-picker.json +191 -0
  135. package/manifest/components/date-range-picker.json +191 -0
  136. package/manifest/components/delegation-card.json +144 -0
  137. package/manifest/components/density.json +58 -0
  138. package/manifest/components/description-list.json +84 -0
  139. package/manifest/components/dialog.json +198 -0
  140. package/manifest/components/disclosure.json +109 -0
  141. package/manifest/components/dmx-bar.json +94 -0
  142. package/manifest/components/dmx-strip.json +101 -0
  143. package/manifest/components/drawer.json +179 -0
  144. package/manifest/components/dropdown-menu.json +229 -0
  145. package/manifest/components/empty-state.json +90 -0
  146. package/manifest/components/env-var-input.json +150 -0
  147. package/manifest/components/export-dialog.json +84 -0
  148. package/manifest/components/eyebrow.json +56 -0
  149. package/manifest/components/field-description.json +63 -0
  150. package/manifest/components/field-error.json +77 -0
  151. package/manifest/components/field-label.json +63 -0
  152. package/manifest/components/field.json +79 -0
  153. package/manifest/components/file-upload.json +159 -0
  154. package/manifest/components/flow-background.json +50 -0
  155. package/manifest/components/flow-controls.json +50 -0
  156. package/manifest/components/footer.json +112 -0
  157. package/manifest/components/grid.json +81 -0
  158. package/manifest/components/group-bar.json +102 -0
  159. package/manifest/components/hover-card.json +151 -0
  160. package/manifest/components/icon-button.json +88 -0
  161. package/manifest/components/info-tip.json +98 -0
  162. package/manifest/components/input-group.json +91 -0
  163. package/manifest/components/input.json +89 -0
  164. package/manifest/components/item.json +129 -0
  165. package/manifest/components/kbd.json +52 -0
  166. package/manifest/components/link.json +81 -0
  167. package/manifest/components/log-viewer.json +139 -0
  168. package/manifest/components/menubar.json +157 -0
  169. package/manifest/components/message-list.json +100 -0
  170. package/manifest/components/message.json +116 -0
  171. package/manifest/components/meter.json +114 -0
  172. package/manifest/components/multi-select.json +190 -0
  173. package/manifest/components/musical-time-input.json +113 -0
  174. package/manifest/components/navigation-menu.json +226 -0
  175. package/manifest/components/node-card.json +109 -0
  176. package/manifest/components/node-handle.json +69 -0
  177. package/manifest/components/number-field.json +107 -0
  178. package/manifest/components/otp-field.json +128 -0
  179. package/manifest/components/page-shell.json +96 -0
  180. package/manifest/components/pagination.json +92 -0
  181. package/manifest/components/panel-header.json +77 -0
  182. package/manifest/components/panel.json +71 -0
  183. package/manifest/components/password-input.json +119 -0
  184. package/manifest/components/piano-keyboard.json +120 -0
  185. package/manifest/components/plussie.json +111 -0
  186. package/manifest/components/popover.json +193 -0
  187. package/manifest/components/preset-section.json +73 -0
  188. package/manifest/components/progress.json +95 -0
  189. package/manifest/components/radio-group.json +73 -0
  190. package/manifest/components/radio.json +80 -0
  191. package/manifest/components/rating.json +141 -0
  192. package/manifest/components/resizable.json +88 -0
  193. package/manifest/components/row.json +109 -0
  194. package/manifest/components/scroll-area.json +91 -0
  195. package/manifest/components/scrollable-tabs-list.json +83 -0
  196. package/manifest/components/scrub-input.json +200 -0
  197. package/manifest/components/seam-cell.json +75 -0
  198. package/manifest/components/seam-grid.json +75 -0
  199. package/manifest/components/seam-list.json +56 -0
  200. package/manifest/components/search-input.json +134 -0
  201. package/manifest/components/section-header.json +112 -0
  202. package/manifest/components/segmented-control.json +138 -0
  203. package/manifest/components/select.json +194 -0
  204. package/manifest/components/separator.json +53 -0
  205. package/manifest/components/shape-section.json +66 -0
  206. package/manifest/components/sheet.json +186 -0
  207. package/manifest/components/sidebar.json +198 -0
  208. package/manifest/components/signal-edge.json +56 -0
  209. package/manifest/components/skeleton.json +46 -0
  210. package/manifest/components/slider.json +89 -0
  211. package/manifest/components/sparkline.json +76 -0
  212. package/manifest/components/spectrum-visualizer.json +115 -0
  213. package/manifest/components/spinner.json +61 -0
  214. package/manifest/components/stack.json +96 -0
  215. package/manifest/components/stat.json +87 -0
  216. package/manifest/components/status-bar.json +58 -0
  217. package/manifest/components/status-dot.json +78 -0
  218. package/manifest/components/stepper.json +89 -0
  219. package/manifest/components/switch.json +87 -0
  220. package/manifest/components/table-scroll-region.json +69 -0
  221. package/manifest/components/table.json +155 -0
  222. package/manifest/components/tabs.json +145 -0
  223. package/manifest/components/tags-input.json +190 -0
  224. package/manifest/components/terminal-frame.json +119 -0
  225. package/manifest/components/textarea.json +76 -0
  226. package/manifest/components/theme-configurator.json +124 -0
  227. package/manifest/components/theme-provider.json +134 -0
  228. package/manifest/components/threshold-rail.json +160 -0
  229. package/manifest/components/time-field.json +80 -0
  230. package/manifest/components/timeline-ruler.json +139 -0
  231. package/manifest/components/timeline.json +115 -0
  232. package/manifest/components/title-bar.json +82 -0
  233. package/manifest/components/toast.json +130 -0
  234. package/manifest/components/toggle-group.json +106 -0
  235. package/manifest/components/toggle.json +109 -0
  236. package/manifest/components/token-editor.json +90 -0
  237. package/manifest/components/toolbar.json +163 -0
  238. package/manifest/components/tooltip.json +164 -0
  239. package/manifest/components/tree-visibility-toggle.json +84 -0
  240. package/manifest/components/tree.json +140 -0
  241. package/manifest/components/two-step-button.json +113 -0
  242. package/manifest/components/universe-grid.json +127 -0
  243. package/manifest/components/usage-chart.json +124 -0
  244. package/manifest/manifest.json +2142 -0
  245. package/manifest/tokens.json +138 -0
  246. package/package.json +13 -5
@@ -0,0 +1,2142 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "library": "@cueplusplus/ui",
4
+ "version": "0.3.0",
5
+ "generatedAt": "1970-01-01T00:00:00.000Z",
6
+ "themes": [
7
+ "cue",
8
+ "terminal",
9
+ "signal",
10
+ "venu",
11
+ "hivehub",
12
+ "dusk",
13
+ "luma",
14
+ "snuffle",
15
+ "requestport",
16
+ "quotamate"
17
+ ],
18
+ "densities": [
19
+ "ultra-compact",
20
+ "compact",
21
+ "normal",
22
+ "large",
23
+ "ultra-large"
24
+ ],
25
+ "modes": [
26
+ "dark",
27
+ "light",
28
+ "system"
29
+ ],
30
+ "tokens": {
31
+ "path": "./tokens.json",
32
+ "sha256": "30ec1b46c64fb1b55959e203de5e7ccec49277c3316339b500b2571ba1ea0f54"
33
+ },
34
+ "systemApis": [
35
+ {
36
+ "name": "ControlSize",
37
+ "kind": "type",
38
+ "signature": "ControlSize"
39
+ },
40
+ {
41
+ "name": "CuePortalFrame",
42
+ "kind": "component",
43
+ "signature": "({ children, className, style, }: CuePortalFrameProps): React.JSX.Element"
44
+ },
45
+ {
46
+ "name": "CuePortalFrameProps",
47
+ "kind": "type",
48
+ "signature": "CuePortalFrameProps"
49
+ },
50
+ {
51
+ "name": "DEFAULT_STORAGE_KEY",
52
+ "kind": "value",
53
+ "signature": "\"cue-ui\""
54
+ },
55
+ {
56
+ "name": "Density",
57
+ "kind": "component",
58
+ "signature": "({ density, children, className, style }: DensityProps): React.JSX.Element"
59
+ },
60
+ {
61
+ "name": "DensityLevel",
62
+ "kind": "type",
63
+ "signature": "\"ultra-compact\" | \"compact\" | \"normal\" | \"large\" | \"ultra-large\""
64
+ },
65
+ {
66
+ "name": "DensityProps",
67
+ "kind": "type",
68
+ "signature": "DensityProps"
69
+ },
70
+ {
71
+ "name": "FontFamilies",
72
+ "kind": "type",
73
+ "signature": "FontFamilies"
74
+ },
75
+ {
76
+ "name": "FontName",
77
+ "kind": "type",
78
+ "signature": "\"source\" | \"system\" | \"geist\" | \"inter\" | \"plex\" | \"roboto\" | \"apple\" | \"office\""
79
+ },
80
+ {
81
+ "name": "Mode",
82
+ "kind": "type",
83
+ "signature": "Mode"
84
+ },
85
+ {
86
+ "name": "PersistedPreferences",
87
+ "kind": "type",
88
+ "signature": "PersistedPreferences"
89
+ },
90
+ {
91
+ "name": "PrepaintDefaults",
92
+ "kind": "type",
93
+ "signature": "PrepaintDefaults"
94
+ },
95
+ {
96
+ "name": "PrepaintOptions",
97
+ "kind": "type",
98
+ "signature": "PrepaintOptions"
99
+ },
100
+ {
101
+ "name": "prepaintScript",
102
+ "kind": "function",
103
+ "signature": "(storageKey?: string, defaultTheme?: ThemeName, defaultDensity?: Density, defaultFont?: FontName): string; (options: PrepaintOptions): string"
104
+ },
105
+ {
106
+ "name": "ResolvedMode",
107
+ "kind": "type",
108
+ "signature": "ResolvedMode"
109
+ },
110
+ {
111
+ "name": "ThemeContextValue",
112
+ "kind": "type",
113
+ "signature": "ThemeContextValue"
114
+ },
115
+ {
116
+ "name": "ThemeName",
117
+ "kind": "type",
118
+ "signature": "\"cue\" | \"terminal\" | \"signal\" | \"venu\" | \"hivehub\" | \"dusk\" | \"luma\" | \"snuffle\" | \"requestport\" | \"quotamate\""
119
+ },
120
+ {
121
+ "name": "ThemeProvider",
122
+ "kind": "component",
123
+ "signature": "({ theme: themeProp, density: densityProp, mode: modeProp, font: fontProp, fontScale, fontFamilies, storageKey, persistPreferences, asChild, className, style: styleProp, children, }: ThemeProviderProps): React.JSX.Element"
124
+ },
125
+ {
126
+ "name": "ThemeProviderProps",
127
+ "kind": "type",
128
+ "signature": "ThemeProviderProps"
129
+ },
130
+ {
131
+ "name": "useControlHeight",
132
+ "kind": "function",
133
+ "signature": "(size?: ControlSize): number"
134
+ },
135
+ {
136
+ "name": "useCuePortalProps",
137
+ "kind": "function",
138
+ "signature": "(): { container?: HTMLElement; }"
139
+ },
140
+ {
141
+ "name": "useDensity",
142
+ "kind": "function",
143
+ "signature": "(): Density"
144
+ },
145
+ {
146
+ "name": "useTheme",
147
+ "kind": "function",
148
+ "signature": "(): ThemeContextValue"
149
+ }
150
+ ],
151
+ "components": [
152
+ {
153
+ "name": "CueLogotype",
154
+ "slug": "cue-logotype",
155
+ "group": "brand",
156
+ "importPath": "@cueplusplus/ui",
157
+ "summary": "The CUE++ wordmark and mark locked up, at 778:367 whatever size you draw it.",
158
+ "status": "stable",
159
+ "url": "/docs/components/cue-logotype",
160
+ "mdUrl": "/docs/components/cue-logotype.md",
161
+ "jsonUrl": "/r/components/cue-logotype.json",
162
+ "path": "./components/cue-logotype.json",
163
+ "sha256": "2df63c4ee9c3a3897e28f2f55a1e97cfe40c2ad6c7f5a99404ecf3ad5e142513"
164
+ },
165
+ {
166
+ "name": "CueMark",
167
+ "slug": "cue-mark",
168
+ "group": "brand",
169
+ "importPath": "@cueplusplus/ui",
170
+ "summary": "The circular CUE++ mark, painted from tokens rather than shipped as a light/dark pair.",
171
+ "status": "stable",
172
+ "url": "/docs/components/cue-mark",
173
+ "mdUrl": "/docs/components/cue-mark.md",
174
+ "jsonUrl": "/r/components/cue-mark.json",
175
+ "path": "./components/cue-mark.json",
176
+ "sha256": "26c57e65b469e90468b62fd19ff6fda2d7bdfa58a9f71ee3c09ebb16a99cab84"
177
+ },
178
+ {
179
+ "name": "Plussie",
180
+ "slug": "plussie",
181
+ "group": "brand",
182
+ "importPath": "@cueplusplus/ui",
183
+ "summary": "Plussie, the CUE++ character: the mark with its eyes free to move.",
184
+ "status": "stable",
185
+ "url": "/docs/components/plussie",
186
+ "mdUrl": "/docs/components/plussie.md",
187
+ "jsonUrl": "/r/components/plussie.json",
188
+ "path": "./components/plussie.json",
189
+ "sha256": "5288855e7ea5749e6cab75e0650e2cfff315d851f23946f0b738c31c18d41c8b"
190
+ },
191
+ {
192
+ "name": "ChartContainer",
193
+ "slug": "chart-container",
194
+ "group": "charts",
195
+ "importPath": "@cueplusplus/ui/charts",
196
+ "summary": "The box every chart in this system sits in.",
197
+ "status": "todo-docs",
198
+ "url": "/docs/components/chart-container",
199
+ "mdUrl": "/docs/components/chart-container.md",
200
+ "jsonUrl": "/r/components/chart-container.json",
201
+ "path": "./components/chart-container.json",
202
+ "sha256": "90661201c107e5f0c31b66ff9aa88dc29ca104ae4751ad3ff7ebcbf497902023"
203
+ },
204
+ {
205
+ "name": "ChartRamp",
206
+ "slug": "chart-ramp",
207
+ "group": "charts",
208
+ "importPath": "@cueplusplus/ui/charts",
209
+ "summary": "A ramp drawn as a strip: equal cells, no gaps, in order.",
210
+ "status": "todo-docs",
211
+ "url": "/docs/components/chart-ramp",
212
+ "mdUrl": "/docs/components/chart-ramp.md",
213
+ "jsonUrl": "/r/components/chart-ramp.json",
214
+ "path": "./components/chart-ramp.json",
215
+ "sha256": "5b1b83e0ae1089d6b5822d750fa03381aed56eec6df30d184996ffeb96a6a896"
216
+ },
217
+ {
218
+ "name": "ChartSwatch",
219
+ "slug": "chart-swatch",
220
+ "group": "charts",
221
+ "importPath": "@cueplusplus/ui/charts",
222
+ "summary": "One colour and what it means: the atom a chart legend is built from.",
223
+ "status": "todo-docs",
224
+ "url": "/docs/components/chart-swatch",
225
+ "mdUrl": "/docs/components/chart-swatch.md",
226
+ "jsonUrl": "/r/components/chart-swatch.json",
227
+ "path": "./components/chart-swatch.json",
228
+ "sha256": "faa20b096d0853f645c8f5f4dc594fffd6f086ddaaa703cea3d66fbe588b2eeb"
229
+ },
230
+ {
231
+ "name": "ChartTooltipContent",
232
+ "slug": "chart-tooltip-content",
233
+ "group": "charts",
234
+ "importPath": "@cueplusplus/ui/charts",
235
+ "summary": "The tooltip surface: an overlay, styled like every other overlay.",
236
+ "status": "todo-docs",
237
+ "url": "/docs/components/chart-tooltip-content",
238
+ "mdUrl": "/docs/components/chart-tooltip-content.md",
239
+ "jsonUrl": "/r/components/chart-tooltip-content.json",
240
+ "path": "./components/chart-tooltip-content.json",
241
+ "sha256": "229b9058113e1120dc8ab0b87b06ec8253278f3a601b6e955a2e93ed01b96c7d"
242
+ },
243
+ {
244
+ "name": "AgentPile",
245
+ "slug": "agent-pile",
246
+ "group": "chat",
247
+ "importPath": "@cueplusplus/ui",
248
+ "summary": "The roster of agents working on a thread, stacked into one object.",
249
+ "status": "todo-docs",
250
+ "url": "/docs/components/agent-pile",
251
+ "mdUrl": "/docs/components/agent-pile.md",
252
+ "jsonUrl": "/r/components/agent-pile.json",
253
+ "path": "./components/agent-pile.json",
254
+ "sha256": "130fe5c283ce6cd2f74960037bc22e0d33a25cf9ef19b50f2e9541fe4b47dd41"
255
+ },
256
+ {
257
+ "name": "AskBox",
258
+ "slug": "ask-box",
259
+ "group": "chat",
260
+ "importPath": "@cueplusplus/ui",
261
+ "summary": "The human-in-the-loop question: an agent stops, asks, and waits.",
262
+ "status": "todo-docs",
263
+ "url": "/docs/components/ask-box",
264
+ "mdUrl": "/docs/components/ask-box.md",
265
+ "jsonUrl": "/r/components/ask-box.json",
266
+ "path": "./components/ask-box.json",
267
+ "sha256": "8cd9696583d4667cdc8c3fa29cec25bdb0b2cb2153f70c64a5d6b76bf2d6db90"
268
+ },
269
+ {
270
+ "name": "Composer",
271
+ "slug": "composer",
272
+ "group": "chat",
273
+ "importPath": "@cueplusplus/ui",
274
+ "summary": "The thing you type into: an auto-growing textarea, a send affordance, and slots for everything a host wants to hang off them.",
275
+ "status": "todo-docs",
276
+ "url": "/docs/components/composer",
277
+ "mdUrl": "/docs/components/composer.md",
278
+ "jsonUrl": "/r/components/composer.json",
279
+ "path": "./components/composer.json",
280
+ "sha256": "cd6b79f2a23c7ec973d5e22a3ab01ea82d813495ac26e52354a2c3aa3435a78e"
281
+ },
282
+ {
283
+ "name": "DelegationCard",
284
+ "slug": "delegation-card",
285
+ "group": "chat",
286
+ "importPath": "@cueplusplus/ui",
287
+ "summary": "One delegation, folded into a card.",
288
+ "status": "todo-docs",
289
+ "url": "/docs/components/delegation-card",
290
+ "mdUrl": "/docs/components/delegation-card.md",
291
+ "jsonUrl": "/r/components/delegation-card.json",
292
+ "path": "./components/delegation-card.json",
293
+ "sha256": "df981f9f65b28d95f56fb8723552950116ba854078dfa848800905263e91d5a5"
294
+ },
295
+ {
296
+ "name": "Message",
297
+ "slug": "message",
298
+ "group": "chat",
299
+ "importPath": "@cueplusplus/ui",
300
+ "summary": "One turn in a conversation.",
301
+ "status": "todo-docs",
302
+ "url": "/docs/components/message",
303
+ "mdUrl": "/docs/components/message.md",
304
+ "jsonUrl": "/r/components/message.json",
305
+ "path": "./components/message.json",
306
+ "sha256": "37969655fb279524220388697ae8a96997689e03ef54856df4250de09a171414"
307
+ },
308
+ {
309
+ "name": "MessageList",
310
+ "slug": "message-list",
311
+ "group": "chat",
312
+ "importPath": "@cueplusplus/ui",
313
+ "summary": "The transcript scroller: sticks to the bottom, and stops fighting you the moment you scroll up.",
314
+ "status": "todo-docs",
315
+ "url": "/docs/components/message-list",
316
+ "mdUrl": "/docs/components/message-list.md",
317
+ "jsonUrl": "/r/components/message-list.json",
318
+ "path": "./components/message-list.json",
319
+ "sha256": "e6b42cce9c7ad8c899347383953c27f02497adbbfb223cb9fa68259c1718198b"
320
+ },
321
+ {
322
+ "name": "AppBar",
323
+ "slug": "app-bar",
324
+ "group": "chrome",
325
+ "importPath": "@cueplusplus/ui",
326
+ "summary": "The horizontal bar across the top of a document: brand slot, navigation slot, actions slot, one chrome rung tall.",
327
+ "status": "stable",
328
+ "url": "/docs/components/app-bar",
329
+ "mdUrl": "/docs/components/app-bar.md",
330
+ "jsonUrl": "/r/components/app-bar.json",
331
+ "path": "./components/app-bar.json",
332
+ "sha256": "e05aea52fca44e4fe688d2318e8aabfc834737ba8981f73babf78befa0a9c62d"
333
+ },
334
+ {
335
+ "name": "AppShell",
336
+ "slug": "app-shell",
337
+ "group": "chrome",
338
+ "importPath": "@cueplusplus/ui",
339
+ "summary": "The console frame: title bar, navigation, work area and status bar, one viewport tall with exactly one thing scrolling.",
340
+ "status": "stable",
341
+ "url": "/docs/components/app-shell",
342
+ "mdUrl": "/docs/components/app-shell.md",
343
+ "jsonUrl": "/r/components/app-shell.json",
344
+ "path": "./components/app-shell.json",
345
+ "sha256": "236baabb7fba88b9e62ac04c3b79b07984b445fb20274f01f4e47edca6e411fe"
346
+ },
347
+ {
348
+ "name": "EmptyState",
349
+ "slug": "empty-state",
350
+ "group": "chrome",
351
+ "importPath": "@cueplusplus/ui",
352
+ "summary": "The \"there is nothing here\" panel body.",
353
+ "status": "todo-docs",
354
+ "url": "/docs/components/empty-state",
355
+ "mdUrl": "/docs/components/empty-state.md",
356
+ "jsonUrl": "/r/components/empty-state.json",
357
+ "path": "./components/empty-state.json",
358
+ "sha256": "7a1c41aeacb8b231b8dec40a0f71db3111e7574feccfd0f918a2ac7efb9838c3"
359
+ },
360
+ {
361
+ "name": "Eyebrow",
362
+ "slug": "eyebrow",
363
+ "group": "chrome",
364
+ "importPath": "@cueplusplus/ui",
365
+ "summary": "The small accent kicker that sits above a title: `// PATCH`.",
366
+ "status": "todo-docs",
367
+ "url": "/docs/components/eyebrow",
368
+ "mdUrl": "/docs/components/eyebrow.md",
369
+ "jsonUrl": "/r/components/eyebrow.json",
370
+ "path": "./components/eyebrow.json",
371
+ "sha256": "62b65316c310c10fb3ae56b712843125d4080ae17d73f79a91d93495ed88ff45"
372
+ },
373
+ {
374
+ "name": "Footer",
375
+ "slug": "footer",
376
+ "group": "chrome",
377
+ "importPath": "@cueplusplus/ui",
378
+ "summary": "The contentinfo landmark at the bottom of a document: a full-bleed hairline, a centred measure, and a fine-print row under a rule of its own.",
379
+ "status": "stable",
380
+ "url": "/docs/components/footer",
381
+ "mdUrl": "/docs/components/footer.md",
382
+ "jsonUrl": "/r/components/footer.json",
383
+ "path": "./components/footer.json",
384
+ "sha256": "0da3cfa0fe5b393fe2c819adab9318acf0db2e7eb43c2aebb85df76948430e84"
385
+ },
386
+ {
387
+ "name": "NavigationMenu",
388
+ "slug": "navigation-menu",
389
+ "group": "chrome",
390
+ "importPath": "@cueplusplus/ui",
391
+ "summary": "The marketing-shaped navigation header: a strip of words, each opening a panel of destinations.",
392
+ "status": "todo-docs",
393
+ "url": "/docs/components/navigation-menu",
394
+ "mdUrl": "/docs/components/navigation-menu.md",
395
+ "jsonUrl": "/r/components/navigation-menu.json",
396
+ "path": "./components/navigation-menu.json",
397
+ "sha256": "57a8e0f9894e5b6df2e9b7076df6d3897949c7787672b8260b7f3926d047327d"
398
+ },
399
+ {
400
+ "name": "PageShell",
401
+ "slug": "page-shell",
402
+ "group": "chrome",
403
+ "importPath": "@cueplusplus/ui",
404
+ "summary": "A centred content column with a standard page header.",
405
+ "status": "todo-docs",
406
+ "url": "/docs/components/page-shell",
407
+ "mdUrl": "/docs/components/page-shell.md",
408
+ "jsonUrl": "/r/components/page-shell.json",
409
+ "path": "./components/page-shell.json",
410
+ "sha256": "f64db87aabc13e3cf198d0cbead79dd3161ca44c6d7bf5e659d6b114b8704fd8"
411
+ },
412
+ {
413
+ "name": "Panel",
414
+ "slug": "panel",
415
+ "group": "chrome",
416
+ "importPath": "@cueplusplus/ui",
417
+ "summary": "The universal container: one hairline rim, one raised surface, one radius.",
418
+ "status": "stable",
419
+ "url": "/docs/components/panel",
420
+ "mdUrl": "/docs/components/panel.md",
421
+ "jsonUrl": "/r/components/panel.json",
422
+ "path": "./components/panel.json",
423
+ "sha256": "2c1197e43f333e1237cfbdfeaba8e06d189aff2ec860034ac60b1faead1ff584"
424
+ },
425
+ {
426
+ "name": "PanelHeader",
427
+ "slug": "panel-header",
428
+ "group": "chrome",
429
+ "importPath": "@cueplusplus/ui",
430
+ "summary": "The top bar of a {@link Panel}: title left, actions right, hairline under.",
431
+ "status": "todo-docs",
432
+ "url": "/docs/components/panel-header",
433
+ "mdUrl": "/docs/components/panel-header.md",
434
+ "jsonUrl": "/r/components/panel-header.json",
435
+ "path": "./components/panel-header.json",
436
+ "sha256": "cf0a873a5587784678771df2efe8c69d9bc55efed864b3b1e7fd4ac147994741"
437
+ },
438
+ {
439
+ "name": "Row",
440
+ "slug": "row",
441
+ "group": "chrome",
442
+ "importPath": "@cueplusplus/ui",
443
+ "summary": "The list row, in both of the system's separator idioms.",
444
+ "status": "stable",
445
+ "url": "/docs/components/row",
446
+ "mdUrl": "/docs/components/row.md",
447
+ "jsonUrl": "/r/components/row.json",
448
+ "path": "./components/row.json",
449
+ "sha256": "911ef715a2e8d105f687781c38b3f419211778b330f20f56faff7759a178078a"
450
+ },
451
+ {
452
+ "name": "ScrollableTabsList",
453
+ "slug": "scrollable-tabs-list",
454
+ "group": "chrome",
455
+ "importPath": "@cueplusplus/ui",
456
+ "summary": "A {@link TabsList} that scrolls when its tabs do not fit, and says so.",
457
+ "status": "todo-docs",
458
+ "url": "/docs/components/scrollable-tabs-list",
459
+ "mdUrl": "/docs/components/scrollable-tabs-list.md",
460
+ "jsonUrl": "/r/components/scrollable-tabs-list.json",
461
+ "path": "./components/scrollable-tabs-list.json",
462
+ "sha256": "d7db97ad7648e7dd5ce04445f73fb8313fd156819709c93e216ab6cefa1b6428"
463
+ },
464
+ {
465
+ "name": "ScrollArea",
466
+ "slug": "scroll-area",
467
+ "group": "chrome",
468
+ "importPath": "@cueplusplus/ui",
469
+ "summary": "A scrolling region with the system's own scrollbar instead of the platform's.",
470
+ "status": "todo-docs",
471
+ "url": "/docs/components/scroll-area",
472
+ "mdUrl": "/docs/components/scroll-area.md",
473
+ "jsonUrl": "/r/components/scroll-area.json",
474
+ "path": "./components/scroll-area.json",
475
+ "sha256": "0f6b0765ebf6d4e51998221eb31d069e402bf0de15b2219c81c20c0385134d75"
476
+ },
477
+ {
478
+ "name": "SeamList",
479
+ "slug": "seam-list",
480
+ "group": "chrome",
481
+ "importPath": "@cueplusplus/ui",
482
+ "summary": "A list whose separators are gaps, not borders.",
483
+ "status": "todo-docs",
484
+ "url": "/docs/components/seam-list",
485
+ "mdUrl": "/docs/components/seam-list.md",
486
+ "jsonUrl": "/r/components/seam-list.json",
487
+ "path": "./components/seam-list.json",
488
+ "sha256": "e2b8839a5970a58522e5c07e97362e5cc77b2c330c2c0f47afa5c30994130ea8"
489
+ },
490
+ {
491
+ "name": "SectionHeader",
492
+ "slug": "section-header",
493
+ "group": "chrome",
494
+ "importPath": "@cueplusplus/ui",
495
+ "summary": "A faint label with a rule running off it — the heading for a group of rows.",
496
+ "status": "todo-docs",
497
+ "url": "/docs/components/section-header",
498
+ "mdUrl": "/docs/components/section-header.md",
499
+ "jsonUrl": "/r/components/section-header.json",
500
+ "path": "./components/section-header.json",
501
+ "sha256": "2eb9ce0fd01218e4e50ab566440dc0d5e0368fa5e97131bd7ca4560b1b230fea"
502
+ },
503
+ {
504
+ "name": "SegmentedControl",
505
+ "slug": "segmented-control",
506
+ "group": "chrome",
507
+ "importPath": "@cueplusplus/ui",
508
+ "summary": "A one-of-N switch drawn as a row of segments: the console's view picker.",
509
+ "status": "todo-docs",
510
+ "url": "/docs/components/segmented-control",
511
+ "mdUrl": "/docs/components/segmented-control.md",
512
+ "jsonUrl": "/r/components/segmented-control.json",
513
+ "path": "./components/segmented-control.json",
514
+ "sha256": "c9b829ce40bb2dc3aec22b390e0a767992bb967ffa4aaa54339b1d5237a19178"
515
+ },
516
+ {
517
+ "name": "StatusBar",
518
+ "slug": "status-bar",
519
+ "group": "chrome",
520
+ "importPath": "@cueplusplus/ui",
521
+ "summary": "The quiet strip along the bottom of a window.",
522
+ "status": "todo-docs",
523
+ "url": "/docs/components/status-bar",
524
+ "mdUrl": "/docs/components/status-bar.md",
525
+ "jsonUrl": "/r/components/status-bar.json",
526
+ "path": "./components/status-bar.json",
527
+ "sha256": "d729d1e5de4a80e5e2075453bc540b3857b3f02b1d564442d58f2e6fcbefebc0"
528
+ },
529
+ {
530
+ "name": "Tabs",
531
+ "slug": "tabs",
532
+ "group": "chrome",
533
+ "importPath": "@cueplusplus/ui",
534
+ "summary": "One surface, several views, with the roving focus wired for you.",
535
+ "status": "stable",
536
+ "url": "/docs/components/tabs",
537
+ "mdUrl": "/docs/components/tabs.md",
538
+ "jsonUrl": "/r/components/tabs.json",
539
+ "path": "./components/tabs.json",
540
+ "sha256": "8e903041b24a20818e3f51712cbe5c22d8c2e07e2c7c679b7442e85776b5b137"
541
+ },
542
+ {
543
+ "name": "TitleBar",
544
+ "slug": "title-bar",
545
+ "group": "chrome",
546
+ "importPath": "@cueplusplus/ui",
547
+ "summary": "The window's own bar: app mark left, document name centred, controls right.",
548
+ "status": "todo-docs",
549
+ "url": "/docs/components/title-bar",
550
+ "mdUrl": "/docs/components/title-bar.md",
551
+ "jsonUrl": "/r/components/title-bar.json",
552
+ "path": "./components/title-bar.json",
553
+ "sha256": "f664e5beaff9318cbe78f6a09a9e897f1329a1d17c1efae141640b9222d6c615"
554
+ },
555
+ {
556
+ "name": "Toolbar",
557
+ "slug": "toolbar",
558
+ "group": "chrome",
559
+ "importPath": "@cueplusplus/ui",
560
+ "summary": "The strip of controls across the top of a view.",
561
+ "status": "todo-docs",
562
+ "url": "/docs/components/toolbar",
563
+ "mdUrl": "/docs/components/toolbar.md",
564
+ "jsonUrl": "/r/components/toolbar.json",
565
+ "path": "./components/toolbar.json",
566
+ "sha256": "fb04d11a7656ce0364c61fb304f904e0e0e71dff6e6873ad51d3dc47f7049b71"
567
+ },
568
+ {
569
+ "name": "Tree",
570
+ "slug": "tree",
571
+ "group": "chrome",
572
+ "importPath": "@cueplusplus/ui",
573
+ "summary": "A hierarchical outline: a rig, a scene graph, a folder of shows.",
574
+ "status": "todo-docs",
575
+ "url": "/docs/components/tree",
576
+ "mdUrl": "/docs/components/tree.md",
577
+ "jsonUrl": "/r/components/tree.json",
578
+ "path": "./components/tree.json",
579
+ "sha256": "a479e0277f03493e21a19f0886da792f35aeb13acd7c90d564f11e6420924778"
580
+ },
581
+ {
582
+ "name": "TreeVisibilityToggle",
583
+ "slug": "tree-visibility-toggle",
584
+ "group": "chrome",
585
+ "importPath": "@cueplusplus/ui",
586
+ "summary": "The outliner's three-state visibility control: shown → ghosted → hidden.",
587
+ "status": "todo-docs",
588
+ "url": "/docs/components/tree-visibility-toggle",
589
+ "mdUrl": "/docs/components/tree-visibility-toggle.md",
590
+ "jsonUrl": "/r/components/tree-visibility-toggle.json",
591
+ "path": "./components/tree-visibility-toggle.json",
592
+ "sha256": "33952bf2c30b561f612d54e81be6197e455b9451adfeede508adb7404d2b6232"
593
+ },
594
+ {
595
+ "name": "ColorArea",
596
+ "slug": "color-area",
597
+ "group": "color",
598
+ "importPath": "@cueplusplus/ui/color",
599
+ "summary": "The two-axis colour field — saturation against brightness, by default.",
600
+ "status": "todo-docs",
601
+ "url": "/docs/components/color-area",
602
+ "mdUrl": "/docs/components/color-area.md",
603
+ "jsonUrl": "/r/components/color-area.json",
604
+ "path": "./components/color-area.json",
605
+ "sha256": "f5d6892aadf1683cbb6d1c092a459cff51da27cfc11fb38cd25fabbed1c6e407"
606
+ },
607
+ {
608
+ "name": "ColorField",
609
+ "slug": "color-field",
610
+ "group": "color",
611
+ "importPath": "@cueplusplus/ui/color",
612
+ "summary": "A typed colour value — the whole colour as hex, or one channel as a number.",
613
+ "status": "todo-docs",
614
+ "url": "/docs/components/color-field",
615
+ "mdUrl": "/docs/components/color-field.md",
616
+ "jsonUrl": "/r/components/color-field.json",
617
+ "path": "./components/color-field.json",
618
+ "sha256": "86ed08ae41e70abf87e1d679d850f6b4596450b7b495911d5fcb2a25967b9644"
619
+ },
620
+ {
621
+ "name": "ColorPicker",
622
+ "slug": "color-picker",
623
+ "group": "color",
624
+ "importPath": "@cueplusplus/ui/color",
625
+ "summary": "A colour, edited in a popover: two-axis area, hue rail, optional alpha rail, a text field that speaks hex *and* oklch, and an eyedropper where the browser has one.",
626
+ "status": "todo-docs",
627
+ "url": "/docs/components/color-picker",
628
+ "mdUrl": "/docs/components/color-picker.md",
629
+ "jsonUrl": "/r/components/color-picker.json",
630
+ "path": "./components/color-picker.json",
631
+ "sha256": "4e70121389acccc23a68df2e14892f3c22bb7dff0df845740fcdbe180f2ac771"
632
+ },
633
+ {
634
+ "name": "ColorSlider",
635
+ "slug": "color-slider",
636
+ "group": "color",
637
+ "importPath": "@cueplusplus/ui/color",
638
+ "summary": "One channel of a colour, as a rail: hue, alpha, lightness, a single RGB channel.",
639
+ "status": "todo-docs",
640
+ "url": "/docs/components/color-slider",
641
+ "mdUrl": "/docs/components/color-slider.md",
642
+ "jsonUrl": "/r/components/color-slider.json",
643
+ "path": "./components/color-slider.json",
644
+ "sha256": "23ba5fa369c55e3521ded66dc45b2e15debe83b952945685ff9efe33c1ba07aa"
645
+ },
646
+ {
647
+ "name": "ColorSwatch",
648
+ "slug": "color-swatch",
649
+ "group": "color",
650
+ "importPath": "@cueplusplus/ui/color",
651
+ "summary": "A colour, shown as a chip.",
652
+ "status": "todo-docs",
653
+ "url": "/docs/components/color-swatch",
654
+ "mdUrl": "/docs/components/color-swatch.md",
655
+ "jsonUrl": "/r/components/color-swatch.json",
656
+ "path": "./components/color-swatch.json",
657
+ "sha256": "8ce4c8ebe24b004582d90ffd2b39ddb9309b1f898846c51e30c482fcea800ab7"
658
+ },
659
+ {
660
+ "name": "ColorsSection",
661
+ "slug": "colors-section",
662
+ "group": "configurator",
663
+ "importPath": "@cueplusplus/ui/configurator",
664
+ "summary": "Section 2 — every colour the active theme declares, one row each.",
665
+ "status": "todo-docs",
666
+ "url": "/docs/components/colors-section",
667
+ "mdUrl": "/docs/components/colors-section.md",
668
+ "jsonUrl": "/r/components/colors-section.json",
669
+ "path": "./components/colors-section.json",
670
+ "sha256": "38af374e7b9d9fa6594e39a863cef2750d1eb6c943de7c85f78d59b1b733891b"
671
+ },
672
+ {
673
+ "name": "ExportDialog",
674
+ "slug": "export-dialog",
675
+ "group": "configurator",
676
+ "importPath": "@cueplusplus/ui/configurator",
677
+ "summary": "The export dialog: CSS, DTCG tokens, a `createTheme()` call and a shadcn `registry:theme` item.",
678
+ "status": "todo-docs",
679
+ "url": "/docs/components/export-dialog",
680
+ "mdUrl": "/docs/components/export-dialog.md",
681
+ "jsonUrl": "/r/components/export-dialog.json",
682
+ "path": "./components/export-dialog.json",
683
+ "sha256": "c277b9fc14426b14344e60d87da966f1fa7c7c368782d27fd445e92eb797853b"
684
+ },
685
+ {
686
+ "name": "PresetSection",
687
+ "slug": "preset-section",
688
+ "group": "configurator",
689
+ "importPath": "@cueplusplus/ui/configurator",
690
+ "summary": "Section 1 — the four choices that are not token edits at all.",
691
+ "status": "todo-docs",
692
+ "url": "/docs/components/preset-section",
693
+ "mdUrl": "/docs/components/preset-section.md",
694
+ "jsonUrl": "/r/components/preset-section.json",
695
+ "path": "./components/preset-section.json",
696
+ "sha256": "5689755d4716d694965f43d41cca7a4f50c66c42a49fdfaa73fe91fbd956a9cd"
697
+ },
698
+ {
699
+ "name": "ShapeSection",
700
+ "slug": "shape-section",
701
+ "group": "configurator",
702
+ "importPath": "@cueplusplus/ui/configurator",
703
+ "summary": "Section 3 — the geometry and type knobs, which belong to the *density* axis rather than to the theme.",
704
+ "status": "todo-docs",
705
+ "url": "/docs/components/shape-section",
706
+ "mdUrl": "/docs/components/shape-section.md",
707
+ "jsonUrl": "/r/components/shape-section.json",
708
+ "path": "./components/shape-section.json",
709
+ "sha256": "71765dbaaa6e1526741c1a0e6905ea40e5cdefb32a1836a2de28448de063b16b"
710
+ },
711
+ {
712
+ "name": "ThemeConfigurator",
713
+ "slug": "theme-configurator",
714
+ "group": "configurator",
715
+ "importPath": "@cueplusplus/ui/configurator",
716
+ "summary": "The floating theme configurator: the panel that edits the design system it is drawn with.",
717
+ "status": "todo-docs",
718
+ "url": "/docs/components/theme-configurator",
719
+ "mdUrl": "/docs/components/theme-configurator.md",
720
+ "jsonUrl": "/r/components/theme-configurator.json",
721
+ "path": "./components/theme-configurator.json",
722
+ "sha256": "4285b20f8e76fceca0a76732d568dfd8d1705b4f872d3216533c7950e375ff22"
723
+ },
724
+ {
725
+ "name": "TokenEditor",
726
+ "slug": "token-editor",
727
+ "group": "configurator",
728
+ "importPath": "@cueplusplus/ui/configurator",
729
+ "summary": "The grouped colour rows.",
730
+ "status": "todo-docs",
731
+ "url": "/docs/components/token-editor",
732
+ "mdUrl": "/docs/components/token-editor.md",
733
+ "jsonUrl": "/r/components/token-editor.json",
734
+ "path": "./components/token-editor.json",
735
+ "sha256": "c7541ac5c4cf41a0241e425bd1eb1997d92123dbff5a5c5239202203440d5e05"
736
+ },
737
+ {
738
+ "name": "Calendar",
739
+ "slug": "calendar",
740
+ "group": "date",
741
+ "importPath": "@cueplusplus/ui/date",
742
+ "summary": "A month grid, on react-day-picker v10.",
743
+ "status": "todo-docs",
744
+ "url": "/docs/components/calendar",
745
+ "mdUrl": "/docs/components/calendar.md",
746
+ "jsonUrl": "/r/components/calendar.json",
747
+ "path": "./components/calendar.json",
748
+ "sha256": "5b0d718c02b8265dc842865502e6b810a394b8b42ed417a41e4a914470cd5995"
749
+ },
750
+ {
751
+ "name": "DateField",
752
+ "slug": "date-field",
753
+ "group": "date",
754
+ "importPath": "@cueplusplus/ui/date",
755
+ "summary": "A typed date, one segment at a time — day, month, year — with no calendar.",
756
+ "status": "todo-docs",
757
+ "url": "/docs/components/date-field",
758
+ "mdUrl": "/docs/components/date-field.md",
759
+ "jsonUrl": "/r/components/date-field.json",
760
+ "path": "./components/date-field.json",
761
+ "sha256": "250d6c1815cae1660bf10bc8c76c9157854abff5ecc7dc3f82413ac48c68a950"
762
+ },
763
+ {
764
+ "name": "DatePicker",
765
+ "slug": "date-picker",
766
+ "group": "date",
767
+ "importPath": "@cueplusplus/ui/date",
768
+ "summary": "A single day, picked from a calendar in a popover.",
769
+ "status": "todo-docs",
770
+ "url": "/docs/components/date-picker",
771
+ "mdUrl": "/docs/components/date-picker.md",
772
+ "jsonUrl": "/r/components/date-picker.json",
773
+ "path": "./components/date-picker.json",
774
+ "sha256": "afce0ceaa0e3df02731c2ecd2db2a92a2785bbff1d790e8700ba3192ef145db4"
775
+ },
776
+ {
777
+ "name": "DateRangePicker",
778
+ "slug": "date-range-picker",
779
+ "group": "date",
780
+ "importPath": "@cueplusplus/ui/date",
781
+ "summary": "A span of days, picked from a two-month calendar in a popover.",
782
+ "status": "todo-docs",
783
+ "url": "/docs/components/date-range-picker",
784
+ "mdUrl": "/docs/components/date-range-picker.md",
785
+ "jsonUrl": "/r/components/date-range-picker.json",
786
+ "path": "./components/date-range-picker.json",
787
+ "sha256": "18322058c069f18a98d289be0492700a46b391818543a31af9a60bbcd20e58a8"
788
+ },
789
+ {
790
+ "name": "TimeField",
791
+ "slug": "time-field",
792
+ "group": "date",
793
+ "importPath": "@cueplusplus/ui/date",
794
+ "summary": "A typed time of day, segment by segment.",
795
+ "status": "todo-docs",
796
+ "url": "/docs/components/time-field",
797
+ "mdUrl": "/docs/components/time-field.md",
798
+ "jsonUrl": "/r/components/time-field.json",
799
+ "path": "./components/time-field.json",
800
+ "sha256": "804e1c46696baed0689e0aabdbedbaf2d8e0958d78c4d39e8e254ba709993b6a"
801
+ },
802
+ {
803
+ "name": "ChannelMatrix",
804
+ "slug": "channel-matrix",
805
+ "group": "dmx",
806
+ "importPath": "@cueplusplus/ui/dmx",
807
+ "summary": "The channel-by-channel view: 512 addressed cells, repainted imperatively.",
808
+ "status": "todo-docs",
809
+ "url": "/docs/components/channel-matrix",
810
+ "mdUrl": "/docs/components/channel-matrix.md",
811
+ "jsonUrl": "/r/components/channel-matrix.json",
812
+ "path": "./components/channel-matrix.json",
813
+ "sha256": "9ee128f6d635c2f475c3a9b9c6afda6061bdd43b63ec49cb8c70e89c664f31be"
814
+ },
815
+ {
816
+ "name": "DmxBar",
817
+ "slug": "dmx-bar",
818
+ "group": "dmx",
819
+ "importPath": "@cueplusplus/ui/dmx",
820
+ "summary": "The whole universe as one strip: 512 columns, black at 0, white at 255.",
821
+ "status": "todo-docs",
822
+ "url": "/docs/components/dmx-bar",
823
+ "mdUrl": "/docs/components/dmx-bar.md",
824
+ "jsonUrl": "/r/components/dmx-bar.json",
825
+ "path": "./components/dmx-bar.json",
826
+ "sha256": "7efd04f7c372963f08634019db4936f286482c605a768b88913f53837969aa49"
827
+ },
828
+ {
829
+ "name": "DmxStrip",
830
+ "slug": "dmx-strip",
831
+ "group": "dmx",
832
+ "importPath": "@cueplusplus/ui/dmx",
833
+ "summary": "`DmxBar`'s picture with no console behind it — a lighting rig, simulated.",
834
+ "status": "todo-docs",
835
+ "url": "/docs/components/dmx-strip",
836
+ "mdUrl": "/docs/components/dmx-strip.md",
837
+ "jsonUrl": "/r/components/dmx-strip.json",
838
+ "path": "./components/dmx-strip.json",
839
+ "sha256": "fa443551d9cdc9f5cf41b46da943b93db7ddb67d30152072af1d03555386f5ae"
840
+ },
841
+ {
842
+ "name": "UniverseGrid",
843
+ "slug": "universe-grid",
844
+ "group": "dmx",
845
+ "importPath": "@cueplusplus/ui/dmx",
846
+ "summary": "A universe as 512 slots of occupancy: who holds what, and where two fixtures were given the same address.",
847
+ "status": "todo-docs",
848
+ "url": "/docs/components/universe-grid",
849
+ "mdUrl": "/docs/components/universe-grid.md",
850
+ "jsonUrl": "/r/components/universe-grid.json",
851
+ "path": "./components/universe-grid.json",
852
+ "sha256": "774d4aef69a7cc2b9925082239c952d8ed1df2ced5ca431b2e562206bb8ea7e0"
853
+ },
854
+ {
855
+ "name": "FlowBackground",
856
+ "slug": "flow-background",
857
+ "group": "flow",
858
+ "importPath": "@cueplusplus/ui/flow",
859
+ "summary": "The canvas grid: dots one rung off the ground, at the system's own spacing.",
860
+ "status": "todo-docs",
861
+ "url": "/docs/components/flow-background",
862
+ "mdUrl": "/docs/components/flow-background.md",
863
+ "jsonUrl": "/r/components/flow-background.json",
864
+ "path": "./components/flow-background.json",
865
+ "sha256": "d96ff089fdac0012918fcb8765f9dfec5a17157815631c3a7a9869e86ac2b1bf"
866
+ },
867
+ {
868
+ "name": "FlowControls",
869
+ "slug": "flow-controls",
870
+ "group": "flow",
871
+ "importPath": "@cueplusplus/ui/flow",
872
+ "summary": "The zoom / fit / lock capsule, restyled as an overlay surface.",
873
+ "status": "todo-docs",
874
+ "url": "/docs/components/flow-controls",
875
+ "mdUrl": "/docs/components/flow-controls.md",
876
+ "jsonUrl": "/r/components/flow-controls.json",
877
+ "path": "./components/flow-controls.json",
878
+ "sha256": "175795ac2ab9bda24e9bf30e2fc615703d28f4148bb3caf8c2f1386f7e7ed070"
879
+ },
880
+ {
881
+ "name": "NodeCard",
882
+ "slug": "node-card",
883
+ "group": "flow",
884
+ "importPath": "@cueplusplus/ui/flow",
885
+ "summary": "A node on a graph canvas, drawn in this system's language.",
886
+ "status": "todo-docs",
887
+ "url": "/docs/components/node-card",
888
+ "mdUrl": "/docs/components/node-card.md",
889
+ "jsonUrl": "/r/components/node-card.json",
890
+ "path": "./components/node-card.json",
891
+ "sha256": "96edaafd2011d99e4144db7a66533f6baa167eae74e74ee58a7f4a5f2bc596c6"
892
+ },
893
+ {
894
+ "name": "NodeHandle",
895
+ "slug": "node-handle",
896
+ "group": "flow",
897
+ "importPath": "@cueplusplus/ui/flow",
898
+ "summary": "A connection point on a node, drawn as a pin rather than a dot.",
899
+ "status": "todo-docs",
900
+ "url": "/docs/components/node-handle",
901
+ "mdUrl": "/docs/components/node-handle.md",
902
+ "jsonUrl": "/r/components/node-handle.json",
903
+ "path": "./components/node-handle.json",
904
+ "sha256": "251c834e8e38dff2215d21938dd48106728045da62b4a30395abfb50d0efe9fa"
905
+ },
906
+ {
907
+ "name": "SignalEdge",
908
+ "slug": "signal-edge",
909
+ "group": "flow",
910
+ "importPath": "@cueplusplus/ui/flow",
911
+ "summary": "A wire between two nodes, drawn as three paths.",
912
+ "status": "todo-docs",
913
+ "url": "/docs/components/signal-edge",
914
+ "mdUrl": "/docs/components/signal-edge.md",
915
+ "jsonUrl": "/r/components/signal-edge.json",
916
+ "path": "./components/signal-edge.json",
917
+ "sha256": "7416f102ca5ad2c80e1e2c30fba7459f14766b70284e0de5474adc55ccb74c6c"
918
+ },
919
+ {
920
+ "name": "Autocomplete",
921
+ "slug": "autocomplete",
922
+ "group": "forms",
923
+ "importPath": "@cueplusplus/ui",
924
+ "summary": "A text field that suggests as you type — and accepts what you typed anyway.",
925
+ "status": "todo-docs",
926
+ "url": "/docs/components/autocomplete",
927
+ "mdUrl": "/docs/components/autocomplete.md",
928
+ "jsonUrl": "/r/components/autocomplete.json",
929
+ "path": "./components/autocomplete.json",
930
+ "sha256": "f92500062e1d5f35b88e0a8d743f56f7624cb3ddb9917e058565ef076482c573"
931
+ },
932
+ {
933
+ "name": "ButtonGroup",
934
+ "slug": "button-group",
935
+ "group": "forms",
936
+ "importPath": "@cueplusplus/ui",
937
+ "summary": "Several related actions drawn as one control.",
938
+ "status": "todo-docs",
939
+ "url": "/docs/components/button-group",
940
+ "mdUrl": "/docs/components/button-group.md",
941
+ "jsonUrl": "/r/components/button-group.json",
942
+ "path": "./components/button-group.json",
943
+ "sha256": "76202e11f4dcbb43a4ed79a8ba42e58b8c4f690b79202b92df83e9d75c4f4390"
944
+ },
945
+ {
946
+ "name": "Checkbox",
947
+ "slug": "checkbox",
948
+ "group": "forms",
949
+ "importPath": "@cueplusplus/ui",
950
+ "summary": "A square, two- or three-state box, sized from the density icon tokens.",
951
+ "status": "stable",
952
+ "url": "/docs/components/checkbox",
953
+ "mdUrl": "/docs/components/checkbox.md",
954
+ "jsonUrl": "/r/components/checkbox.json",
955
+ "path": "./components/checkbox.json",
956
+ "sha256": "83b3a63f014542905b1321ec2770c7ca2bb9d43dd7d42084f8620059ca095048"
957
+ },
958
+ {
959
+ "name": "CheckboxGroup",
960
+ "slug": "checkbox-group",
961
+ "group": "forms",
962
+ "importPath": "@cueplusplus/ui",
963
+ "summary": "Shared state for a set of {@link Checkbox}es: one `value` array in, one out.",
964
+ "status": "todo-docs",
965
+ "url": "/docs/components/checkbox-group",
966
+ "mdUrl": "/docs/components/checkbox-group.md",
967
+ "jsonUrl": "/r/components/checkbox-group.json",
968
+ "path": "./components/checkbox-group.json",
969
+ "sha256": "5e8b936a2dd071128a23b3a220b101eed513202360a646758609e1653738fcdb"
970
+ },
971
+ {
972
+ "name": "Combobox",
973
+ "slug": "combobox",
974
+ "group": "forms",
975
+ "importPath": "@cueplusplus/ui",
976
+ "summary": "A {@link Select } you can type into: one value out of a known, filterable set.",
977
+ "status": "todo-docs",
978
+ "url": "/docs/components/combobox",
979
+ "mdUrl": "/docs/components/combobox.md",
980
+ "jsonUrl": "/r/components/combobox.json",
981
+ "path": "./components/combobox.json",
982
+ "sha256": "2473819b0a3e68845cea78345fb20668d98593d067d87327f10828b17803d986"
983
+ },
984
+ {
985
+ "name": "EnvVarInput",
986
+ "slug": "env-var-input",
987
+ "group": "forms",
988
+ "importPath": "@cueplusplus/ui",
989
+ "summary": "A config value that may be a literal *or* a reference to an environment variable — and looks unmistakably different in each case.",
990
+ "status": "todo-docs",
991
+ "url": "/docs/components/env-var-input",
992
+ "mdUrl": "/docs/components/env-var-input.md",
993
+ "jsonUrl": "/r/components/env-var-input.json",
994
+ "path": "./components/env-var-input.json",
995
+ "sha256": "75d21eb0ddd90a77a92b2d88ad447a01b2455aabd367044bc9965cec5a96ab2d"
996
+ },
997
+ {
998
+ "name": "Field",
999
+ "slug": "field",
1000
+ "group": "forms",
1001
+ "importPath": "@cueplusplus/ui",
1002
+ "summary": "The label, description and validation wrapper a form control belongs in.",
1003
+ "status": "stable",
1004
+ "url": "/docs/components/field",
1005
+ "mdUrl": "/docs/components/field.md",
1006
+ "jsonUrl": "/r/components/field.json",
1007
+ "path": "./components/field.json",
1008
+ "sha256": "8912c264e04848d3217636fe490175b557cadafc5f78c4afa9812fbd35556eac"
1009
+ },
1010
+ {
1011
+ "name": "FieldDescription",
1012
+ "slug": "field-description",
1013
+ "group": "forms",
1014
+ "importPath": "@cueplusplus/ui",
1015
+ "summary": "Quiet helper text under a control, published to assistive tech as the control's `aria-describedby` target.",
1016
+ "status": "todo-docs",
1017
+ "url": "/docs/components/field-description",
1018
+ "mdUrl": "/docs/components/field-description.md",
1019
+ "jsonUrl": "/r/components/field-description.json",
1020
+ "path": "./components/field-description.json",
1021
+ "sha256": "45816b93e25c7312a57d84376b273f07dba0f666ebd7bcbf4732d5b3e5358bf5"
1022
+ },
1023
+ {
1024
+ "name": "FieldError",
1025
+ "slug": "field-error",
1026
+ "group": "forms",
1027
+ "importPath": "@cueplusplus/ui",
1028
+ "summary": "The error line under a control.",
1029
+ "status": "todo-docs",
1030
+ "url": "/docs/components/field-error",
1031
+ "mdUrl": "/docs/components/field-error.md",
1032
+ "jsonUrl": "/r/components/field-error.json",
1033
+ "path": "./components/field-error.json",
1034
+ "sha256": "6963b0418340cfe216aaf7fa562ecd5694c3af09ef618b1f6da2ada4857de622"
1035
+ },
1036
+ {
1037
+ "name": "FieldLabel",
1038
+ "slug": "field-label",
1039
+ "group": "forms",
1040
+ "importPath": "@cueplusplus/ui",
1041
+ "summary": "The name of a field: mono, uppercase, tracked out, one rung below body text.",
1042
+ "status": "todo-docs",
1043
+ "url": "/docs/components/field-label",
1044
+ "mdUrl": "/docs/components/field-label.md",
1045
+ "jsonUrl": "/r/components/field-label.json",
1046
+ "path": "./components/field-label.json",
1047
+ "sha256": "d2fa2c9b816f97a771ff6836e0731da32d2711c38a3eaaa27c08c5dd7215965f"
1048
+ },
1049
+ {
1050
+ "name": "FileUpload",
1051
+ "slug": "file-upload",
1052
+ "group": "forms",
1053
+ "importPath": "@cueplusplus/ui",
1054
+ "summary": "A drop zone with a file list under it.",
1055
+ "status": "todo-docs",
1056
+ "url": "/docs/components/file-upload",
1057
+ "mdUrl": "/docs/components/file-upload.md",
1058
+ "jsonUrl": "/r/components/file-upload.json",
1059
+ "path": "./components/file-upload.json",
1060
+ "sha256": "4d380b45e3c1f6d413a1c97ab718eb30d81dc313f31054a82d34868816428e64"
1061
+ },
1062
+ {
1063
+ "name": "Input",
1064
+ "slug": "input",
1065
+ "group": "forms",
1066
+ "importPath": "@cueplusplus/ui",
1067
+ "summary": "The single-line text control, recessed into its surface.",
1068
+ "status": "stable",
1069
+ "url": "/docs/components/input",
1070
+ "mdUrl": "/docs/components/input.md",
1071
+ "jsonUrl": "/r/components/input.json",
1072
+ "path": "./components/input.json",
1073
+ "sha256": "70cf627df733c15f0729431e1809d81cd81aec14e013bc6bed852d06f7e6c777"
1074
+ },
1075
+ {
1076
+ "name": "InputGroup",
1077
+ "slug": "input-group",
1078
+ "group": "forms",
1079
+ "importPath": "@cueplusplus/ui",
1080
+ "summary": "A control and its adornments, drawn as a single field.",
1081
+ "status": "todo-docs",
1082
+ "url": "/docs/components/input-group",
1083
+ "mdUrl": "/docs/components/input-group.md",
1084
+ "jsonUrl": "/r/components/input-group.json",
1085
+ "path": "./components/input-group.json",
1086
+ "sha256": "63244ca5ef6493f5a854ca210327681355b37ab143b3f154ed22e3bb38472853"
1087
+ },
1088
+ {
1089
+ "name": "MultiSelect",
1090
+ "slug": "multi-select",
1091
+ "group": "forms",
1092
+ "importPath": "@cueplusplus/ui",
1093
+ "summary": "Several values out of a known set, each shown as a removable chip.",
1094
+ "status": "todo-docs",
1095
+ "url": "/docs/components/multi-select",
1096
+ "mdUrl": "/docs/components/multi-select.md",
1097
+ "jsonUrl": "/r/components/multi-select.json",
1098
+ "path": "./components/multi-select.json",
1099
+ "sha256": "de04f17b173eb2ab4413b23a705c3fa36e3af06145a5302ec830b56e74e8fb93"
1100
+ },
1101
+ {
1102
+ "name": "NumberField",
1103
+ "slug": "number-field",
1104
+ "group": "forms",
1105
+ "importPath": "@cueplusplus/ui",
1106
+ "summary": "A numeric control with explicit − / + affordances and no native spinners.",
1107
+ "status": "todo-docs",
1108
+ "url": "/docs/components/number-field",
1109
+ "mdUrl": "/docs/components/number-field.md",
1110
+ "jsonUrl": "/r/components/number-field.json",
1111
+ "path": "./components/number-field.json",
1112
+ "sha256": "fae91aab74e82bba4728c56d2824810ae2269d095da1d14c9a07123c3e75af12"
1113
+ },
1114
+ {
1115
+ "name": "OTPField",
1116
+ "slug": "otp-field",
1117
+ "group": "forms",
1118
+ "importPath": "@cueplusplus/ui",
1119
+ "summary": "A one-time code, one character per box.",
1120
+ "status": "todo-docs",
1121
+ "url": "/docs/components/otp-field",
1122
+ "mdUrl": "/docs/components/otp-field.md",
1123
+ "jsonUrl": "/r/components/otp-field.json",
1124
+ "path": "./components/otp-field.json",
1125
+ "sha256": "161df8e848881ae5e4b41be99628825a9b6852b20760fb563854899d42cfbe17"
1126
+ },
1127
+ {
1128
+ "name": "PasswordInput",
1129
+ "slug": "password-input",
1130
+ "group": "forms",
1131
+ "importPath": "@cueplusplus/ui",
1132
+ "summary": "A masked text field with a reveal control.",
1133
+ "status": "todo-docs",
1134
+ "url": "/docs/components/password-input",
1135
+ "mdUrl": "/docs/components/password-input.md",
1136
+ "jsonUrl": "/r/components/password-input.json",
1137
+ "path": "./components/password-input.json",
1138
+ "sha256": "d5e3b06f972a8861eb97638e3121da9b9c047d1045c9b3295519f07eea176bd1"
1139
+ },
1140
+ {
1141
+ "name": "Radio",
1142
+ "slug": "radio",
1143
+ "group": "forms",
1144
+ "importPath": "@cueplusplus/ui",
1145
+ "summary": "One option inside a {@link RadioGroup}.",
1146
+ "status": "todo-docs",
1147
+ "url": "/docs/components/radio",
1148
+ "mdUrl": "/docs/components/radio.md",
1149
+ "jsonUrl": "/r/components/radio.json",
1150
+ "path": "./components/radio.json",
1151
+ "sha256": "c675df852e402c5993447619bfa3047c0ed866d4046ae0a7051545bb390d4297"
1152
+ },
1153
+ {
1154
+ "name": "RadioGroup",
1155
+ "slug": "radio-group",
1156
+ "group": "forms",
1157
+ "importPath": "@cueplusplus/ui",
1158
+ "summary": "One-of-many selection: a roving-tabindex group of {@link Radio}s sharing a single value.",
1159
+ "status": "todo-docs",
1160
+ "url": "/docs/components/radio-group",
1161
+ "mdUrl": "/docs/components/radio-group.md",
1162
+ "jsonUrl": "/r/components/radio-group.json",
1163
+ "path": "./components/radio-group.json",
1164
+ "sha256": "6c1b5a43d608d01bccce82ff62a13a2ec497a77bd3427898614c76a3109855b7"
1165
+ },
1166
+ {
1167
+ "name": "Rating",
1168
+ "slug": "rating",
1169
+ "group": "forms",
1170
+ "importPath": "@cueplusplus/ui",
1171
+ "summary": "A 0–N rating, drawn as marks.",
1172
+ "status": "todo-docs",
1173
+ "url": "/docs/components/rating",
1174
+ "mdUrl": "/docs/components/rating.md",
1175
+ "jsonUrl": "/r/components/rating.json",
1176
+ "path": "./components/rating.json",
1177
+ "sha256": "093980c7a1bc5ada4a50156898fb00f79c9e890dedeccb3e524cfa53c47b0779"
1178
+ },
1179
+ {
1180
+ "name": "ScrubInput",
1181
+ "slug": "scrub-input",
1182
+ "group": "forms",
1183
+ "importPath": "@cueplusplus/ui",
1184
+ "summary": "A number you drag to change and click to type.",
1185
+ "status": "stable",
1186
+ "url": "/docs/components/scrub-input",
1187
+ "mdUrl": "/docs/components/scrub-input.md",
1188
+ "jsonUrl": "/r/components/scrub-input.json",
1189
+ "path": "./components/scrub-input.json",
1190
+ "sha256": "9cad5bb1635640db6d42a2526782aa3c67493789518d36ef674a7f2426b63a3c"
1191
+ },
1192
+ {
1193
+ "name": "SearchInput",
1194
+ "slug": "search-input",
1195
+ "group": "forms",
1196
+ "importPath": "@cueplusplus/ui",
1197
+ "summary": "A filter box: leading magnifier, Escape to clear, and a debounced change callback for whatever the query drives.",
1198
+ "status": "todo-docs",
1199
+ "url": "/docs/components/search-input",
1200
+ "mdUrl": "/docs/components/search-input.md",
1201
+ "jsonUrl": "/r/components/search-input.json",
1202
+ "path": "./components/search-input.json",
1203
+ "sha256": "61ae59b01f0ee6097bb6c17388f92f2a909c2b1c61876799f538b68458368107"
1204
+ },
1205
+ {
1206
+ "name": "Select",
1207
+ "slug": "select",
1208
+ "group": "forms",
1209
+ "importPath": "@cueplusplus/ui",
1210
+ "summary": "A dropdown for one value out of a known, short set.",
1211
+ "status": "stable",
1212
+ "url": "/docs/components/select",
1213
+ "mdUrl": "/docs/components/select.md",
1214
+ "jsonUrl": "/r/components/select.json",
1215
+ "path": "./components/select.json",
1216
+ "sha256": "d7a580b81ac52f5d152eb1bbe436994540f9444fde54ee8fc54fef0d7e660189"
1217
+ },
1218
+ {
1219
+ "name": "Slider",
1220
+ "slug": "slider",
1221
+ "group": "forms",
1222
+ "importPath": "@cueplusplus/ui",
1223
+ "summary": "A continuous value control: one thumb, or several for a range.",
1224
+ "status": "todo-docs",
1225
+ "url": "/docs/components/slider",
1226
+ "mdUrl": "/docs/components/slider.md",
1227
+ "jsonUrl": "/r/components/slider.json",
1228
+ "path": "./components/slider.json",
1229
+ "sha256": "4d8fe2b08798806bcffc9f821f9f72432ef1740cb3197fa06e741dac13c0a118"
1230
+ },
1231
+ {
1232
+ "name": "Switch",
1233
+ "slug": "switch",
1234
+ "group": "forms",
1235
+ "importPath": "@cueplusplus/ui",
1236
+ "summary": "A binary control that takes effect the moment it moves.",
1237
+ "status": "stable",
1238
+ "url": "/docs/components/switch",
1239
+ "mdUrl": "/docs/components/switch.md",
1240
+ "jsonUrl": "/r/components/switch.json",
1241
+ "path": "./components/switch.json",
1242
+ "sha256": "dce5edfd2d438f01bfcd6c0356cb16b7780a651bf62ddb0bb39a280b47baaaab"
1243
+ },
1244
+ {
1245
+ "name": "TagsInput",
1246
+ "slug": "tags-input",
1247
+ "group": "forms",
1248
+ "importPath": "@cueplusplus/ui",
1249
+ "summary": "Free-form tags, each a removable chip.",
1250
+ "status": "todo-docs",
1251
+ "url": "/docs/components/tags-input",
1252
+ "mdUrl": "/docs/components/tags-input.md",
1253
+ "jsonUrl": "/r/components/tags-input.json",
1254
+ "path": "./components/tags-input.json",
1255
+ "sha256": "84dc92b1e08e604e47d53a729c5b0f0da7ee66e84beb00ea568ac65ae739a7a4"
1256
+ },
1257
+ {
1258
+ "name": "Textarea",
1259
+ "slug": "textarea",
1260
+ "group": "forms",
1261
+ "importPath": "@cueplusplus/ui",
1262
+ "summary": "The multi-line text control.",
1263
+ "status": "todo-docs",
1264
+ "url": "/docs/components/textarea",
1265
+ "mdUrl": "/docs/components/textarea.md",
1266
+ "jsonUrl": "/r/components/textarea.json",
1267
+ "path": "./components/textarea.json",
1268
+ "sha256": "f4a1bf66af3ca9861de843efcec07f86d9c646f850a4ef1d6c6b92e974c1c15b"
1269
+ },
1270
+ {
1271
+ "name": "Toggle",
1272
+ "slug": "toggle",
1273
+ "group": "forms",
1274
+ "importPath": "@cueplusplus/ui",
1275
+ "summary": "A two-state button: solo, mute, snap-to-grid, \"show hidden\".",
1276
+ "status": "todo-docs",
1277
+ "url": "/docs/components/toggle",
1278
+ "mdUrl": "/docs/components/toggle.md",
1279
+ "jsonUrl": "/r/components/toggle.json",
1280
+ "path": "./components/toggle.json",
1281
+ "sha256": "68325d1f2f139d360008fbcb07b6375fc7999322694d7c37dee3a29cef832c19"
1282
+ },
1283
+ {
1284
+ "name": "ToggleGroup",
1285
+ "slug": "toggle-group",
1286
+ "group": "forms",
1287
+ "importPath": "@cueplusplus/ui",
1288
+ "summary": "A cluster of {@link Toggle }s sharing one pressed state.",
1289
+ "status": "todo-docs",
1290
+ "url": "/docs/components/toggle-group",
1291
+ "mdUrl": "/docs/components/toggle-group.md",
1292
+ "jsonUrl": "/r/components/toggle-group.json",
1293
+ "path": "./components/toggle-group.json",
1294
+ "sha256": "5a154ee18a5aec73cb6cd76ead8b8a1ad08ee5e17e70b607190270e7bcc659ba"
1295
+ },
1296
+ {
1297
+ "name": "AppWindowFrame",
1298
+ "slug": "app-window-frame",
1299
+ "group": "instruments",
1300
+ "importPath": "@cueplusplus/ui",
1301
+ "summary": "A screenshot of your own app, built out of your own components.",
1302
+ "status": "todo-docs",
1303
+ "url": "/docs/components/app-window-frame",
1304
+ "mdUrl": "/docs/components/app-window-frame.md",
1305
+ "jsonUrl": "/r/components/app-window-frame.json",
1306
+ "path": "./components/app-window-frame.json",
1307
+ "sha256": "b2055409825fc2b5d6428bb0f18ba350dbdcaea49ce6db32f6d60eede7d45376"
1308
+ },
1309
+ {
1310
+ "name": "CopyButton",
1311
+ "slug": "copy-button",
1312
+ "group": "instruments",
1313
+ "importPath": "@cueplusplus/ui",
1314
+ "summary": "Copy one string, and say so.",
1315
+ "status": "todo-docs",
1316
+ "url": "/docs/components/copy-button",
1317
+ "mdUrl": "/docs/components/copy-button.md",
1318
+ "jsonUrl": "/r/components/copy-button.json",
1319
+ "path": "./components/copy-button.json",
1320
+ "sha256": "6221a1a4515991c7b83a87e16d26ec0b71698889129d5324b66f2f34c743c79c"
1321
+ },
1322
+ {
1323
+ "name": "DataTablePagination",
1324
+ "slug": "data-table-pagination",
1325
+ "group": "instruments",
1326
+ "importPath": "@cueplusplus/ui/instruments/data-table",
1327
+ "summary": "The pager: four buttons, the position, and the row count.",
1328
+ "status": "todo-docs",
1329
+ "url": "/docs/components/data-table-pagination",
1330
+ "mdUrl": "/docs/components/data-table-pagination.md",
1331
+ "jsonUrl": "/r/components/data-table-pagination.json",
1332
+ "path": "./components/data-table-pagination.json",
1333
+ "sha256": "ab5fa7a1fc02b6dab112fec045018ed6edd2a2cfbdccd884661466ad67d708f9"
1334
+ },
1335
+ {
1336
+ "name": "DataTableToolbar",
1337
+ "slug": "data-table-toolbar",
1338
+ "group": "instruments",
1339
+ "importPath": "@cueplusplus/ui/instruments/data-table",
1340
+ "summary": "The strip above a table: one search box, a match count, your controls.",
1341
+ "status": "todo-docs",
1342
+ "url": "/docs/components/data-table-toolbar",
1343
+ "mdUrl": "/docs/components/data-table-toolbar.md",
1344
+ "jsonUrl": "/r/components/data-table-toolbar.json",
1345
+ "path": "./components/data-table-toolbar.json",
1346
+ "sha256": "9b463d77c030e3aab10758f97d0aac791f989666eb4f66f12e30effc420a776d"
1347
+ },
1348
+ {
1349
+ "name": "GroupBar",
1350
+ "slug": "group-bar",
1351
+ "group": "instruments",
1352
+ "importPath": "@cueplusplus/ui",
1353
+ "summary": "The distribution strip: one flex cell per group, weighted by its value.",
1354
+ "status": "todo-docs",
1355
+ "url": "/docs/components/group-bar",
1356
+ "mdUrl": "/docs/components/group-bar.md",
1357
+ "jsonUrl": "/r/components/group-bar.json",
1358
+ "path": "./components/group-bar.json",
1359
+ "sha256": "2b8155fc7b46836f3f0a25cb8a023da7228c124d5f5b209ae8136fd575aeb3f6"
1360
+ },
1361
+ {
1362
+ "name": "LogViewer",
1363
+ "slug": "log-viewer",
1364
+ "group": "instruments",
1365
+ "importPath": "@cueplusplus/ui/instruments/log-viewer",
1366
+ "summary": "A virtualised log tail: ANSI colour, level filters, and stick-to-bottom.",
1367
+ "status": "todo-docs",
1368
+ "url": "/docs/components/log-viewer",
1369
+ "mdUrl": "/docs/components/log-viewer.md",
1370
+ "jsonUrl": "/r/components/log-viewer.json",
1371
+ "path": "./components/log-viewer.json",
1372
+ "sha256": "48f0ce4b00b1457556010a424371bd37db33ef280ff37fa3848d3857e017b974"
1373
+ },
1374
+ {
1375
+ "name": "Meter",
1376
+ "slug": "meter",
1377
+ "group": "instruments",
1378
+ "importPath": "@cueplusplus/ui",
1379
+ "summary": "A quota bar that shows pace, not just fill.",
1380
+ "status": "stable",
1381
+ "url": "/docs/components/meter",
1382
+ "mdUrl": "/docs/components/meter.md",
1383
+ "jsonUrl": "/r/components/meter.json",
1384
+ "path": "./components/meter.json",
1385
+ "sha256": "cf54ecddce9c9c96ce716f612a9e3872fb0b18d00def02b5eaba20c46bbfad75"
1386
+ },
1387
+ {
1388
+ "name": "Progress",
1389
+ "slug": "progress",
1390
+ "group": "instruments",
1391
+ "importPath": "@cueplusplus/ui",
1392
+ "summary": "Determinate work, drawn as a filling rule.",
1393
+ "status": "todo-docs",
1394
+ "url": "/docs/components/progress",
1395
+ "mdUrl": "/docs/components/progress.md",
1396
+ "jsonUrl": "/r/components/progress.json",
1397
+ "path": "./components/progress.json",
1398
+ "sha256": "1d90f49ef07aba4e0c529ac18457bb5690a59ad32665e5d684cd7a585974448e"
1399
+ },
1400
+ {
1401
+ "name": "SeamCell",
1402
+ "slug": "seam-cell",
1403
+ "group": "instruments",
1404
+ "importPath": "@cueplusplus/ui",
1405
+ "summary": "One filled cell of a {@link SeamGrid} — or of the Phase 1 `SeamList`.",
1406
+ "status": "todo-docs",
1407
+ "url": "/docs/components/seam-cell",
1408
+ "mdUrl": "/docs/components/seam-cell.md",
1409
+ "jsonUrl": "/r/components/seam-cell.json",
1410
+ "path": "./components/seam-cell.json",
1411
+ "sha256": "30e59c5e41032984fec53460a9594138a1135ef0b1df2cb212cbffadaaba1534"
1412
+ },
1413
+ {
1414
+ "name": "SeamGrid",
1415
+ "slug": "seam-grid",
1416
+ "group": "instruments",
1417
+ "importPath": "@cueplusplus/ui",
1418
+ "summary": "The seam idiom as a component: cells separated by hairlines, no borders.",
1419
+ "status": "todo-docs",
1420
+ "url": "/docs/components/seam-grid",
1421
+ "mdUrl": "/docs/components/seam-grid.md",
1422
+ "jsonUrl": "/r/components/seam-grid.json",
1423
+ "path": "./components/seam-grid.json",
1424
+ "sha256": "f4e708137c87b4cf1eaa9804420ba3deae6aa1c4c3b17f7760d01b72a718114d"
1425
+ },
1426
+ {
1427
+ "name": "Sparkline",
1428
+ "slug": "sparkline",
1429
+ "group": "instruments",
1430
+ "importPath": "@cueplusplus/ui",
1431
+ "summary": "A tiny unlabelled trace: \"is this climbing, or did it just reset?\".",
1432
+ "status": "todo-docs",
1433
+ "url": "/docs/components/sparkline",
1434
+ "mdUrl": "/docs/components/sparkline.md",
1435
+ "jsonUrl": "/r/components/sparkline.json",
1436
+ "path": "./components/sparkline.json",
1437
+ "sha256": "39e77bc9c917345e51fa12322b770e88903c960438de352822914d62991fd43c"
1438
+ },
1439
+ {
1440
+ "name": "Stat",
1441
+ "slug": "stat",
1442
+ "group": "instruments",
1443
+ "importPath": "@cueplusplus/ui",
1444
+ "summary": "One number, named: the console's KPI tile.",
1445
+ "status": "todo-docs",
1446
+ "url": "/docs/components/stat",
1447
+ "mdUrl": "/docs/components/stat.md",
1448
+ "jsonUrl": "/r/components/stat.json",
1449
+ "path": "./components/stat.json",
1450
+ "sha256": "f8ac34ffde96f6f943de8438ebcf2acc983f56b71a5518e334c87c37d7ab4cf1"
1451
+ },
1452
+ {
1453
+ "name": "Table",
1454
+ "slug": "table",
1455
+ "group": "instruments",
1456
+ "importPath": "@cueplusplus/ui",
1457
+ "summary": "The semantic table: mono uppercase headers, hairline rows, tabular numerals.",
1458
+ "status": "stable",
1459
+ "url": "/docs/components/table",
1460
+ "mdUrl": "/docs/components/table.md",
1461
+ "jsonUrl": "/r/components/table.json",
1462
+ "path": "./components/table.json",
1463
+ "sha256": "ac8adb61bd9de2e96a88cdf18e57d72a2f1d998f147fae69d045d48a363dd09a"
1464
+ },
1465
+ {
1466
+ "name": "TableScrollRegion",
1467
+ "slug": "table-scroll-region",
1468
+ "group": "instruments",
1469
+ "importPath": "@cueplusplus/ui",
1470
+ "summary": "A named keyboard-focusable horizontal viewport for wide semantic tables.",
1471
+ "status": "stable",
1472
+ "url": "/docs/components/table-scroll-region",
1473
+ "mdUrl": "/docs/components/table-scroll-region.md",
1474
+ "jsonUrl": "/r/components/table-scroll-region.json",
1475
+ "path": "./components/table-scroll-region.json",
1476
+ "sha256": "731161fd205e0ba36c8cb23f3008ee6a37633232657a70f5b6af02e5db5f3a5a"
1477
+ },
1478
+ {
1479
+ "name": "TerminalFrame",
1480
+ "slug": "terminal-frame",
1481
+ "group": "instruments",
1482
+ "importPath": "@cueplusplus/ui",
1483
+ "summary": "A recessed terminal: mono, `$`-prefixed commands, optional typed playback.",
1484
+ "status": "todo-docs",
1485
+ "url": "/docs/components/terminal-frame",
1486
+ "mdUrl": "/docs/components/terminal-frame.md",
1487
+ "jsonUrl": "/r/components/terminal-frame.json",
1488
+ "path": "./components/terminal-frame.json",
1489
+ "sha256": "7a3e827514cfb9cd3f012cc89e52b78612c67c3d1fe83a74ad4e586a43acc460"
1490
+ },
1491
+ {
1492
+ "name": "TwoStepButton",
1493
+ "slug": "two-step-button",
1494
+ "group": "instruments",
1495
+ "importPath": "@cueplusplus/ui",
1496
+ "summary": "Arm, then confirm: a destructive action that takes two deliberate presses.",
1497
+ "status": "todo-docs",
1498
+ "url": "/docs/components/two-step-button",
1499
+ "mdUrl": "/docs/components/two-step-button.md",
1500
+ "jsonUrl": "/r/components/two-step-button.json",
1501
+ "path": "./components/two-step-button.json",
1502
+ "sha256": "5d2abf628153c93ce82dc89240bfd00c92aa87e575ceb9a385968c3fa7e3c9a4"
1503
+ },
1504
+ {
1505
+ "name": "UsageChart",
1506
+ "slug": "usage-chart",
1507
+ "group": "instruments",
1508
+ "importPath": "@cueplusplus/ui",
1509
+ "summary": "A quota trace: where you sit against the ceiling, over time.",
1510
+ "status": "todo-docs",
1511
+ "url": "/docs/components/usage-chart",
1512
+ "mdUrl": "/docs/components/usage-chart.md",
1513
+ "jsonUrl": "/r/components/usage-chart.json",
1514
+ "path": "./components/usage-chart.json",
1515
+ "sha256": "eff439aa7e581a576ea42e5dc8eec82ce6c8ca8001ad8df08952e688b333b0e2"
1516
+ },
1517
+ {
1518
+ "name": "Accordion",
1519
+ "slug": "accordion",
1520
+ "group": "layout",
1521
+ "importPath": "@cueplusplus/ui",
1522
+ "summary": "A stack of sections, one (or several) open at a time.",
1523
+ "status": "todo-docs",
1524
+ "url": "/docs/components/accordion",
1525
+ "mdUrl": "/docs/components/accordion.md",
1526
+ "jsonUrl": "/r/components/accordion.json",
1527
+ "path": "./components/accordion.json",
1528
+ "sha256": "b8291fb5e8950212462a0cb0df1ff424643b4efa3cdf27dbfaabd8c16970d777"
1529
+ },
1530
+ {
1531
+ "name": "Breadcrumb",
1532
+ "slug": "breadcrumb",
1533
+ "group": "layout",
1534
+ "importPath": "@cueplusplus/ui",
1535
+ "summary": "Where you are, and how to get back.",
1536
+ "status": "todo-docs",
1537
+ "url": "/docs/components/breadcrumb",
1538
+ "mdUrl": "/docs/components/breadcrumb.md",
1539
+ "jsonUrl": "/r/components/breadcrumb.json",
1540
+ "path": "./components/breadcrumb.json",
1541
+ "sha256": "4babefebf9ba545f726d9a3bbf0cefa38c31438075e1d99dd5ca51a6a8cb9d16"
1542
+ },
1543
+ {
1544
+ "name": "Card",
1545
+ "slug": "card",
1546
+ "group": "layout",
1547
+ "importPath": "@cueplusplus/ui",
1548
+ "summary": "A padded container for one thing: a summary, a setting group, a preview.",
1549
+ "status": "todo-docs",
1550
+ "url": "/docs/components/card",
1551
+ "mdUrl": "/docs/components/card.md",
1552
+ "jsonUrl": "/r/components/card.json",
1553
+ "path": "./components/card.json",
1554
+ "sha256": "94e0dcc1deedb2efc86ed565d9cabc2395f1e7b1a1b09068a1711b67985acea8"
1555
+ },
1556
+ {
1557
+ "name": "Carousel",
1558
+ "slug": "carousel",
1559
+ "group": "layout",
1560
+ "importPath": "@cueplusplus/ui/layout/carousel",
1561
+ "summary": "A swipeable strip of slides, on embla.",
1562
+ "status": "todo-docs",
1563
+ "url": "/docs/components/carousel",
1564
+ "mdUrl": "/docs/components/carousel.md",
1565
+ "jsonUrl": "/r/components/carousel.json",
1566
+ "path": "./components/carousel.json",
1567
+ "sha256": "0ee3e36f1c5ad07f56555caff64e3eb76eb9c4415666055674b294259e01f39f"
1568
+ },
1569
+ {
1570
+ "name": "Collapsible",
1571
+ "slug": "collapsible",
1572
+ "group": "layout",
1573
+ "importPath": "@cueplusplus/ui",
1574
+ "summary": "One section that opens and closes — an accordion of exactly one.",
1575
+ "status": "todo-docs",
1576
+ "url": "/docs/components/collapsible",
1577
+ "mdUrl": "/docs/components/collapsible.md",
1578
+ "jsonUrl": "/r/components/collapsible.json",
1579
+ "path": "./components/collapsible.json",
1580
+ "sha256": "b0d2b7358318e4bb4715228b6d3fe5e73801f9f915ad1f35e6e3ac985f61d7db"
1581
+ },
1582
+ {
1583
+ "name": "Container",
1584
+ "slug": "container",
1585
+ "group": "layout",
1586
+ "importPath": "@cueplusplus/ui",
1587
+ "summary": "A centred column with the standard gutters and nothing else.",
1588
+ "status": "todo-docs",
1589
+ "url": "/docs/components/container",
1590
+ "mdUrl": "/docs/components/container.md",
1591
+ "jsonUrl": "/r/components/container.json",
1592
+ "path": "./components/container.json",
1593
+ "sha256": "5ddaa5ba67b7e586f4453f13ac4f9fc6fa62dd75e88a5347d36b6b75ef5cedea"
1594
+ },
1595
+ {
1596
+ "name": "DescriptionList",
1597
+ "slug": "description-list",
1598
+ "group": "layout",
1599
+ "importPath": "@cueplusplus/ui",
1600
+ "summary": "The `<dl>` family: {@link DescriptionListRoot}, `Term` and `Detail`.",
1601
+ "status": "todo-docs",
1602
+ "url": "/docs/components/description-list",
1603
+ "mdUrl": "/docs/components/description-list.md",
1604
+ "jsonUrl": "/r/components/description-list.json",
1605
+ "path": "./components/description-list.json",
1606
+ "sha256": "5007c4904c778e79e43cf0c5e0e5b60188779a657154fcba48395095aa97bb48"
1607
+ },
1608
+ {
1609
+ "name": "Disclosure",
1610
+ "slug": "disclosure",
1611
+ "group": "layout",
1612
+ "importPath": "@cueplusplus/ui",
1613
+ "summary": "The \"advanced\" idiom: a chromeless `▸ advanced` toggle over the fields most users never touch.",
1614
+ "status": "todo-docs",
1615
+ "url": "/docs/components/disclosure",
1616
+ "mdUrl": "/docs/components/disclosure.md",
1617
+ "jsonUrl": "/r/components/disclosure.json",
1618
+ "path": "./components/disclosure.json",
1619
+ "sha256": "c29ef785d857dead2d39f4447a57c04176deeee0c1350de93f252fc68c000cc8"
1620
+ },
1621
+ {
1622
+ "name": "Grid",
1623
+ "slug": "grid",
1624
+ "group": "layout",
1625
+ "importPath": "@cueplusplus/ui",
1626
+ "summary": "Two-dimensional layout: equal columns, or as many as fit.",
1627
+ "status": "todo-docs",
1628
+ "url": "/docs/components/grid",
1629
+ "mdUrl": "/docs/components/grid.md",
1630
+ "jsonUrl": "/r/components/grid.json",
1631
+ "path": "./components/grid.json",
1632
+ "sha256": "f5dac5ed7f88b7c16b1ded9a1197463ca66b6b26185bf4cd232f46df565cf3ae"
1633
+ },
1634
+ {
1635
+ "name": "Item",
1636
+ "slug": "item",
1637
+ "group": "layout",
1638
+ "importPath": "@cueplusplus/ui",
1639
+ "summary": "One thing in a list, with room for a glyph, a name, a line of detail and a control — the shape a settings entry, a search hit and a device row all want.",
1640
+ "status": "todo-docs",
1641
+ "url": "/docs/components/item",
1642
+ "mdUrl": "/docs/components/item.md",
1643
+ "jsonUrl": "/r/components/item.json",
1644
+ "path": "./components/item.json",
1645
+ "sha256": "625a1fb42a26d1a21a1a1b08a6a6dcffe33e24d642a5b33d9a7c58322923c358"
1646
+ },
1647
+ {
1648
+ "name": "Link",
1649
+ "slug": "link",
1650
+ "group": "layout",
1651
+ "importPath": "@cueplusplus/ui",
1652
+ "summary": "A text link: accent on hover, no rule unless you ask for one.",
1653
+ "status": "todo-docs",
1654
+ "url": "/docs/components/link",
1655
+ "mdUrl": "/docs/components/link.md",
1656
+ "jsonUrl": "/r/components/link.json",
1657
+ "path": "./components/link.json",
1658
+ "sha256": "bd1b3bfdc61b535e63722a6805ffa1f381f343af967c077dcd904e8a86bafe73"
1659
+ },
1660
+ {
1661
+ "name": "Pagination",
1662
+ "slug": "pagination",
1663
+ "group": "layout",
1664
+ "importPath": "@cueplusplus/ui",
1665
+ "summary": "The pager: previous, a window of page numbers, next.",
1666
+ "status": "todo-docs",
1667
+ "url": "/docs/components/pagination",
1668
+ "mdUrl": "/docs/components/pagination.md",
1669
+ "jsonUrl": "/r/components/pagination.json",
1670
+ "path": "./components/pagination.json",
1671
+ "sha256": "18734c8f8e5a7e102f2f7e56837533c272e14d11726bf9d823e7edd39952f77a"
1672
+ },
1673
+ {
1674
+ "name": "Resizable",
1675
+ "slug": "resizable",
1676
+ "group": "layout",
1677
+ "importPath": "@cueplusplus/ui/layout/resizable",
1678
+ "summary": "Split panes the user can drag, on `react-resizable-panels`.",
1679
+ "status": "todo-docs",
1680
+ "url": "/docs/components/resizable",
1681
+ "mdUrl": "/docs/components/resizable.md",
1682
+ "jsonUrl": "/r/components/resizable.json",
1683
+ "path": "./components/resizable.json",
1684
+ "sha256": "45b8326c06cedc46a1fb08b76f6d3396a967b130c05da9666e48853dc2cc57d6"
1685
+ },
1686
+ {
1687
+ "name": "Sidebar",
1688
+ "slug": "sidebar",
1689
+ "group": "layout",
1690
+ "importPath": "@cueplusplus/ui",
1691
+ "summary": "The console's navigation column: sections of items, a scroller of its own, and a rail that collapses the whole thing to icons.",
1692
+ "status": "todo-docs",
1693
+ "url": "/docs/components/sidebar",
1694
+ "mdUrl": "/docs/components/sidebar.md",
1695
+ "jsonUrl": "/r/components/sidebar.json",
1696
+ "path": "./components/sidebar.json",
1697
+ "sha256": "beea6a437b93f9114672924252ff4e8aff6d28621de3e6c2e2a634ecd6cf2e2c"
1698
+ },
1699
+ {
1700
+ "name": "Stack",
1701
+ "slug": "stack",
1702
+ "group": "layout",
1703
+ "importPath": "@cueplusplus/ui",
1704
+ "summary": "One-dimensional layout: the flex row or column, with the gap tokenised.",
1705
+ "status": "todo-docs",
1706
+ "url": "/docs/components/stack",
1707
+ "mdUrl": "/docs/components/stack.md",
1708
+ "jsonUrl": "/r/components/stack.json",
1709
+ "path": "./components/stack.json",
1710
+ "sha256": "510b9b2995b6f297076ea0b44cca7605f910796fa219cf821c04cd525e76189c"
1711
+ },
1712
+ {
1713
+ "name": "Stepper",
1714
+ "slug": "stepper",
1715
+ "group": "layout",
1716
+ "importPath": "@cueplusplus/ui",
1717
+ "summary": "The step trail: `1 target · 2 preview · 3 apply`.",
1718
+ "status": "todo-docs",
1719
+ "url": "/docs/components/stepper",
1720
+ "mdUrl": "/docs/components/stepper.md",
1721
+ "jsonUrl": "/r/components/stepper.json",
1722
+ "path": "./components/stepper.json",
1723
+ "sha256": "75ab858014c94c8acb73c88aba740e1943bc9ea55cafc4dd382aae832a71fbe5"
1724
+ },
1725
+ {
1726
+ "name": "Timeline",
1727
+ "slug": "timeline",
1728
+ "group": "layout",
1729
+ "importPath": "@cueplusplus/ui",
1730
+ "summary": "A vertical run of events on one rail: a run log, a cue history, a deploy trail.",
1731
+ "status": "todo-docs",
1732
+ "url": "/docs/components/timeline",
1733
+ "mdUrl": "/docs/components/timeline.md",
1734
+ "jsonUrl": "/r/components/timeline.json",
1735
+ "path": "./components/timeline.json",
1736
+ "sha256": "89578a90d0ef07aefa9073e9a46f14b2cb6f07fb02b046de8430d421250cdeba"
1737
+ },
1738
+ {
1739
+ "name": "MusicalTimeInput",
1740
+ "slug": "musical-time-input",
1741
+ "group": "midi",
1742
+ "importPath": "@cueplusplus/ui/midi",
1743
+ "summary": "`bars.beats.sixteenths` — a position in a song, typed the way a song is counted.",
1744
+ "status": "todo-docs",
1745
+ "url": "/docs/components/musical-time-input",
1746
+ "mdUrl": "/docs/components/musical-time-input.md",
1747
+ "jsonUrl": "/r/components/musical-time-input.json",
1748
+ "path": "./components/musical-time-input.json",
1749
+ "sha256": "165526c38500f36f64bbed3ed16e45cb2a5b8c9d6651a98e52b5e4e648eb89d6"
1750
+ },
1751
+ {
1752
+ "name": "PianoKeyboard",
1753
+ "slug": "piano-keyboard",
1754
+ "group": "midi",
1755
+ "importPath": "@cueplusplus/ui/midi",
1756
+ "summary": "A piano keyboard as a range control: drag the markers, or arrow the edges.",
1757
+ "status": "todo-docs",
1758
+ "url": "/docs/components/piano-keyboard",
1759
+ "mdUrl": "/docs/components/piano-keyboard.md",
1760
+ "jsonUrl": "/r/components/piano-keyboard.json",
1761
+ "path": "./components/piano-keyboard.json",
1762
+ "sha256": "2b45926e96a6064d9f53bcf9618d8aebbca7f416fee077fe5099d2c8795a50d1"
1763
+ },
1764
+ {
1765
+ "name": "SpectrumVisualizer",
1766
+ "slug": "spectrum-visualizer",
1767
+ "group": "midi",
1768
+ "importPath": "@cueplusplus/ui/midi",
1769
+ "summary": "The FFT, drawn: one bar per frequency band, or one line across all of them.",
1770
+ "status": "todo-docs",
1771
+ "url": "/docs/components/spectrum-visualizer",
1772
+ "mdUrl": "/docs/components/spectrum-visualizer.md",
1773
+ "jsonUrl": "/r/components/spectrum-visualizer.json",
1774
+ "path": "./components/spectrum-visualizer.json",
1775
+ "sha256": "492650fd1cb4210c2f674944d5dbe1c312f2d63d9fd0765ee6fed77e3ec41460"
1776
+ },
1777
+ {
1778
+ "name": "ThresholdRail",
1779
+ "slug": "threshold-rail",
1780
+ "group": "midi",
1781
+ "importPath": "@cueplusplus/ui/midi",
1782
+ "summary": "The trigger level, set by dragging it along the signal it triggers on.",
1783
+ "status": "todo-docs",
1784
+ "url": "/docs/components/threshold-rail",
1785
+ "mdUrl": "/docs/components/threshold-rail.md",
1786
+ "jsonUrl": "/r/components/threshold-rail.json",
1787
+ "path": "./components/threshold-rail.json",
1788
+ "sha256": "5052527d5e154098c3b9765a1034d96a3f89b6eee4d47f0e8f98c9a6122e3c18"
1789
+ },
1790
+ {
1791
+ "name": "TimelineRuler",
1792
+ "slug": "timeline-ruler",
1793
+ "group": "midi",
1794
+ "importPath": "@cueplusplus/ui/midi",
1795
+ "summary": "The bar ruler over an arrangement: zoom-adaptive, culled, and deliberately faint.",
1796
+ "status": "todo-docs",
1797
+ "url": "/docs/components/timeline-ruler",
1798
+ "mdUrl": "/docs/components/timeline-ruler.md",
1799
+ "jsonUrl": "/r/components/timeline-ruler.json",
1800
+ "path": "./components/timeline-ruler.json",
1801
+ "sha256": "dcb26a21f5b4842245576cf90cb28799aacd4876d6bd6a6d712ad57014171d86"
1802
+ },
1803
+ {
1804
+ "name": "AlertDialog",
1805
+ "slug": "alert-dialog",
1806
+ "group": "overlays",
1807
+ "importPath": "@cueplusplus/ui",
1808
+ "summary": "A modal that asks one question with two answers, for anything irreversible.",
1809
+ "status": "todo-docs",
1810
+ "url": "/docs/components/alert-dialog",
1811
+ "mdUrl": "/docs/components/alert-dialog.md",
1812
+ "jsonUrl": "/r/components/alert-dialog.json",
1813
+ "path": "./components/alert-dialog.json",
1814
+ "sha256": "ee94a7d617e027cc886ac2dcb324533c2a2bfc40397a1ae3e12632bce743d9f0"
1815
+ },
1816
+ {
1817
+ "name": "CommandPalette",
1818
+ "slug": "command-palette",
1819
+ "group": "overlays",
1820
+ "importPath": "@cueplusplus/ui",
1821
+ "summary": "The keyboard entry point: type, filter, run.",
1822
+ "status": "stable",
1823
+ "url": "/docs/components/command-palette",
1824
+ "mdUrl": "/docs/components/command-palette.md",
1825
+ "jsonUrl": "/r/components/command-palette.json",
1826
+ "path": "./components/command-palette.json",
1827
+ "sha256": "34e947abb056ef6765641377abde213e7a639c0508f783fb2948098db9cceb5e"
1828
+ },
1829
+ {
1830
+ "name": "ContextMenu",
1831
+ "slug": "context-menu",
1832
+ "group": "overlays",
1833
+ "importPath": "@cueplusplus/ui",
1834
+ "summary": "The menu a right click raises: row actions on a cue list, fixture actions on the patch grid, node actions on a canvas.",
1835
+ "status": "todo-docs",
1836
+ "url": "/docs/components/context-menu",
1837
+ "mdUrl": "/docs/components/context-menu.md",
1838
+ "jsonUrl": "/r/components/context-menu.json",
1839
+ "path": "./components/context-menu.json",
1840
+ "sha256": "a9c3abf240dbbbea8077f63a330bf3590b479212f712646dbfbf4426dbfd3011"
1841
+ },
1842
+ {
1843
+ "name": "Dialog",
1844
+ "slug": "dialog",
1845
+ "group": "overlays",
1846
+ "importPath": "@cueplusplus/ui",
1847
+ "summary": "The centred modal: focus trapped, page behind it inert.",
1848
+ "status": "stable",
1849
+ "url": "/docs/components/dialog",
1850
+ "mdUrl": "/docs/components/dialog.md",
1851
+ "jsonUrl": "/r/components/dialog.json",
1852
+ "path": "./components/dialog.json",
1853
+ "sha256": "5a0186b9dfc2f90ce8ca4151613f85b8f71d04b0e0fafaf0d514e13d9e6c307a"
1854
+ },
1855
+ {
1856
+ "name": "Drawer",
1857
+ "slug": "drawer",
1858
+ "group": "overlays",
1859
+ "importPath": "@cueplusplus/ui",
1860
+ "summary": "A swipe-dismissable edge panel — the touch-first cousin of {@link Sheet }.",
1861
+ "status": "todo-docs",
1862
+ "url": "/docs/components/drawer",
1863
+ "mdUrl": "/docs/components/drawer.md",
1864
+ "jsonUrl": "/r/components/drawer.json",
1865
+ "path": "./components/drawer.json",
1866
+ "sha256": "6b392acbc83c22661405b40e5c991a124d7939e0e065493d0236db260d1e647d"
1867
+ },
1868
+ {
1869
+ "name": "DropdownMenu",
1870
+ "slug": "dropdown-menu",
1871
+ "group": "overlays",
1872
+ "importPath": "@cueplusplus/ui",
1873
+ "summary": "A command list hung off a button.",
1874
+ "status": "stable",
1875
+ "url": "/docs/components/dropdown-menu",
1876
+ "mdUrl": "/docs/components/dropdown-menu.md",
1877
+ "jsonUrl": "/r/components/dropdown-menu.json",
1878
+ "path": "./components/dropdown-menu.json",
1879
+ "sha256": "41417d96b574faa7a5167d1324b80e04706adad3f52e044a9f6f68fb5002229c"
1880
+ },
1881
+ {
1882
+ "name": "HoverCard",
1883
+ "slug": "hover-card",
1884
+ "group": "overlays",
1885
+ "importPath": "@cueplusplus/ui",
1886
+ "summary": "A richer preview than a tooltip, revealed by hovering a link or a name: the fixture behind a profile string, the operator behind an initial.",
1887
+ "status": "todo-docs",
1888
+ "url": "/docs/components/hover-card",
1889
+ "mdUrl": "/docs/components/hover-card.md",
1890
+ "jsonUrl": "/r/components/hover-card.json",
1891
+ "path": "./components/hover-card.json",
1892
+ "sha256": "6c986e5ba9368280381eafffb809a353271fe4ce779cf65a8dbae38a088cc04f"
1893
+ },
1894
+ {
1895
+ "name": "InfoTip",
1896
+ "slug": "info-tip",
1897
+ "group": "overlays",
1898
+ "importPath": "@cueplusplus/ui",
1899
+ "summary": "The 13px circular \"i\" badge: a footnote marker for a field, a column or a number whose definition is not obvious.",
1900
+ "status": "todo-docs",
1901
+ "url": "/docs/components/info-tip",
1902
+ "mdUrl": "/docs/components/info-tip.md",
1903
+ "jsonUrl": "/r/components/info-tip.json",
1904
+ "path": "./components/info-tip.json",
1905
+ "sha256": "9e34ef716c18b3cff5a145580390fad59fcb4e9854cbcb982ac80ec6d1262f2d"
1906
+ },
1907
+ {
1908
+ "name": "Menubar",
1909
+ "slug": "menubar",
1910
+ "group": "overlays",
1911
+ "importPath": "@cueplusplus/ui",
1912
+ "summary": "The desktop-application menu bar: a row of words, each dropping a menu.",
1913
+ "status": "todo-docs",
1914
+ "url": "/docs/components/menubar",
1915
+ "mdUrl": "/docs/components/menubar.md",
1916
+ "jsonUrl": "/r/components/menubar.json",
1917
+ "path": "./components/menubar.json",
1918
+ "sha256": "14da2b2eef9f30271a4ce9d2da81138de77ea9e1e3eb9f67a0c21ff2748c63b8"
1919
+ },
1920
+ {
1921
+ "name": "Popover",
1922
+ "slug": "popover",
1923
+ "group": "overlays",
1924
+ "importPath": "@cueplusplus/ui",
1925
+ "summary": "A panel anchored to the control that opened it.",
1926
+ "status": "stable",
1927
+ "url": "/docs/components/popover",
1928
+ "mdUrl": "/docs/components/popover.md",
1929
+ "jsonUrl": "/r/components/popover.json",
1930
+ "path": "./components/popover.json",
1931
+ "sha256": "63ddc6f3ef0d5ffcb1ec651d37b680f3b6b8bdfe4c851a08c98635e3a959c43d"
1932
+ },
1933
+ {
1934
+ "name": "Sheet",
1935
+ "slug": "sheet",
1936
+ "group": "overlays",
1937
+ "importPath": "@cueplusplus/ui",
1938
+ "summary": "A modal panel that slides in from an edge: an inspector, a filter drawer, a details pane too wide for a popover.",
1939
+ "status": "todo-docs",
1940
+ "url": "/docs/components/sheet",
1941
+ "mdUrl": "/docs/components/sheet.md",
1942
+ "jsonUrl": "/r/components/sheet.json",
1943
+ "path": "./components/sheet.json",
1944
+ "sha256": "7c952c08badccf032e9d700a103c4e7cd098a3d8785b9f0ed93f80b6bfa258f1"
1945
+ },
1946
+ {
1947
+ "name": "Toast",
1948
+ "slug": "toast",
1949
+ "group": "overlays",
1950
+ "importPath": "@cueplusplus/ui",
1951
+ "summary": "A short, dismissible note about something that just happened.",
1952
+ "status": "stable",
1953
+ "url": "/docs/components/toast",
1954
+ "mdUrl": "/docs/components/toast.md",
1955
+ "jsonUrl": "/r/components/toast.json",
1956
+ "path": "./components/toast.json",
1957
+ "sha256": "20d316b3d99215b04319229341fb4752e1eefbae90983d12614326c7c49589fd"
1958
+ },
1959
+ {
1960
+ "name": "Tooltip",
1961
+ "slug": "tooltip",
1962
+ "group": "overlays",
1963
+ "importPath": "@cueplusplus/ui",
1964
+ "summary": "A short description of the control under the pointer or the focus ring.",
1965
+ "status": "stable",
1966
+ "url": "/docs/components/tooltip",
1967
+ "mdUrl": "/docs/components/tooltip.md",
1968
+ "jsonUrl": "/r/components/tooltip.json",
1969
+ "path": "./components/tooltip.json",
1970
+ "sha256": "a4d77f2b0e59f403b23d0b19cfbb12e4406b633b00f13836c44dfe6b64b89d9f"
1971
+ },
1972
+ {
1973
+ "name": "Avatar",
1974
+ "slug": "avatar",
1975
+ "group": "primitives",
1976
+ "importPath": "@cueplusplus/ui",
1977
+ "summary": "A round user/entity avatar sized off the density control ladder, so it lines up with the buttons and inputs on the same row.",
1978
+ "status": "todo-docs",
1979
+ "url": "/docs/components/avatar",
1980
+ "mdUrl": "/docs/components/avatar.md",
1981
+ "jsonUrl": "/r/components/avatar.json",
1982
+ "path": "./components/avatar.json",
1983
+ "sha256": "831afe7fc3969281ebd7d6fb150632f53d40973e94cb0060bd2a968066620696"
1984
+ },
1985
+ {
1986
+ "name": "AvatarGroup",
1987
+ "slug": "avatar-group",
1988
+ "group": "primitives",
1989
+ "importPath": "@cueplusplus/ui",
1990
+ "summary": "An overlapping stack of {@link Avatar}s with a `+N` overflow chip.",
1991
+ "status": "todo-docs",
1992
+ "url": "/docs/components/avatar-group",
1993
+ "mdUrl": "/docs/components/avatar-group.md",
1994
+ "jsonUrl": "/r/components/avatar-group.json",
1995
+ "path": "./components/avatar-group.json",
1996
+ "sha256": "14ec69352dc205e301994cfcd96ba01477e7af3053ea450366f72286b59e5703"
1997
+ },
1998
+ {
1999
+ "name": "Button",
2000
+ "slug": "button",
2001
+ "group": "primitives",
2002
+ "importPath": "@cueplusplus/ui",
2003
+ "summary": "The action control: six variants across three density-sized heights.",
2004
+ "status": "stable",
2005
+ "url": "/docs/components/button",
2006
+ "mdUrl": "/docs/components/button.md",
2007
+ "jsonUrl": "/r/components/button.json",
2008
+ "path": "./components/button.json",
2009
+ "sha256": "c3b1d4a6c0b4afa21171702f57481312391d81f95e9c9251e1dc02f92d67e653"
2010
+ },
2011
+ {
2012
+ "name": "Chip",
2013
+ "slug": "chip",
2014
+ "group": "primitives",
2015
+ "importPath": "@cueplusplus/ui",
2016
+ "summary": "The status pill: tinted fill, hairline rim, full-strength text.",
2017
+ "status": "stable",
2018
+ "url": "/docs/components/chip",
2019
+ "mdUrl": "/docs/components/chip.md",
2020
+ "jsonUrl": "/r/components/chip.json",
2021
+ "path": "./components/chip.json",
2022
+ "sha256": "5ec736776f99deb9a9b1ac0ad30b51fa127a4e2c9b48efa46570f8bf1b46c2c1"
2023
+ },
2024
+ {
2025
+ "name": "IconButton",
2026
+ "slug": "icon-button",
2027
+ "group": "primitives",
2028
+ "importPath": "@cueplusplus/ui",
2029
+ "summary": "A square, icon-only button for toolbars, row affordances and panel headers.",
2030
+ "status": "todo-docs",
2031
+ "url": "/docs/components/icon-button",
2032
+ "mdUrl": "/docs/components/icon-button.md",
2033
+ "jsonUrl": "/r/components/icon-button.json",
2034
+ "path": "./components/icon-button.json",
2035
+ "sha256": "7c2dc53f16fdf5d66a67fbbdccb102889f236326c05b0b3246f1fab552cc4a69"
2036
+ },
2037
+ {
2038
+ "name": "Kbd",
2039
+ "slug": "kbd",
2040
+ "group": "primitives",
2041
+ "importPath": "@cueplusplus/ui",
2042
+ "summary": "A key cap for documenting shortcuts inline: `⌘K`, `Esc`, `Shift`.",
2043
+ "status": "todo-docs",
2044
+ "url": "/docs/components/kbd",
2045
+ "mdUrl": "/docs/components/kbd.md",
2046
+ "jsonUrl": "/r/components/kbd.json",
2047
+ "path": "./components/kbd.json",
2048
+ "sha256": "57bc98218139eada7553c4d30ac80479406e4a2c8666a02cfb995c3f0d89326e"
2049
+ },
2050
+ {
2051
+ "name": "Separator",
2052
+ "slug": "separator",
2053
+ "group": "primitives",
2054
+ "importPath": "@cueplusplus/ui",
2055
+ "summary": "A hairline rule that screen readers can see.",
2056
+ "status": "todo-docs",
2057
+ "url": "/docs/components/separator",
2058
+ "mdUrl": "/docs/components/separator.md",
2059
+ "jsonUrl": "/r/components/separator.json",
2060
+ "path": "./components/separator.json",
2061
+ "sha256": "af06cc26b10492c399f95625b051249a7957d3f7cda28c3a4ea141190eac6d93"
2062
+ },
2063
+ {
2064
+ "name": "Skeleton",
2065
+ "slug": "skeleton",
2066
+ "group": "primitives",
2067
+ "importPath": "@cueplusplus/ui",
2068
+ "summary": "A loading placeholder block.",
2069
+ "status": "todo-docs",
2070
+ "url": "/docs/components/skeleton",
2071
+ "mdUrl": "/docs/components/skeleton.md",
2072
+ "jsonUrl": "/r/components/skeleton.json",
2073
+ "path": "./components/skeleton.json",
2074
+ "sha256": "e0d8b7956200de8be79bae8c5a2aa0bfc64b8e15419b9425f6d238d7bc5652f2"
2075
+ },
2076
+ {
2077
+ "name": "Spinner",
2078
+ "slug": "spinner",
2079
+ "group": "primitives",
2080
+ "importPath": "@cueplusplus/ui",
2081
+ "summary": "An indeterminate progress ring, drawn in CSS only — no SVG, no animation library, one element.",
2082
+ "status": "todo-docs",
2083
+ "url": "/docs/components/spinner",
2084
+ "mdUrl": "/docs/components/spinner.md",
2085
+ "jsonUrl": "/r/components/spinner.json",
2086
+ "path": "./components/spinner.json",
2087
+ "sha256": "ec5a110cec0d0754219b64b56d7fd47b174362278131442f5d85172ce4964192"
2088
+ },
2089
+ {
2090
+ "name": "StatusDot",
2091
+ "slug": "status-dot",
2092
+ "group": "primitives",
2093
+ "importPath": "@cueplusplus/ui",
2094
+ "summary": "A 6px state dot — the densest possible status indicator.",
2095
+ "status": "todo-docs",
2096
+ "url": "/docs/components/status-dot",
2097
+ "mdUrl": "/docs/components/status-dot.md",
2098
+ "jsonUrl": "/r/components/status-dot.json",
2099
+ "path": "./components/status-dot.json",
2100
+ "sha256": "a81d650bdedff5a1c56a100bbbb4b0962a460de31dfccf6bd882b10235063fdf"
2101
+ },
2102
+ {
2103
+ "name": "CuePortalFrame",
2104
+ "slug": "cue-portal-frame",
2105
+ "group": "system",
2106
+ "importPath": "@cueplusplus/ui",
2107
+ "summary": "Inline version of the portal contract, for portals whose container cannot be chosen (a third-party overlay, or content already portaled by something else).",
2108
+ "status": "todo-docs",
2109
+ "url": "/docs/components/cue-portal-frame",
2110
+ "mdUrl": "/docs/components/cue-portal-frame.md",
2111
+ "jsonUrl": "/r/components/cue-portal-frame.json",
2112
+ "path": "./components/cue-portal-frame.json",
2113
+ "sha256": "8e18b7be7a5e89a1d318c84649f1009ee22308eb84ea71290a776f1c376dc4fc"
2114
+ },
2115
+ {
2116
+ "name": "Density",
2117
+ "slug": "density",
2118
+ "group": "system",
2119
+ "importPath": "@cueplusplus/ui",
2120
+ "summary": "Re-scope any subtree to a different density level.",
2121
+ "status": "todo-docs",
2122
+ "url": "/docs/components/density",
2123
+ "mdUrl": "/docs/components/density.md",
2124
+ "jsonUrl": "/r/components/density.json",
2125
+ "path": "./components/density.json",
2126
+ "sha256": "f9631caf03b3d2624a0c3c47424236bf6658c163301a8500d689719c5a463d7f"
2127
+ },
2128
+ {
2129
+ "name": "ThemeProvider",
2130
+ "slug": "theme-provider",
2131
+ "group": "system",
2132
+ "importPath": "@cueplusplus/ui",
2133
+ "summary": "The root that stamps theme, density and mode, and publishes the setters.",
2134
+ "status": "stable",
2135
+ "url": "/docs/components/theme-provider",
2136
+ "mdUrl": "/docs/components/theme-provider.md",
2137
+ "jsonUrl": "/r/components/theme-provider.json",
2138
+ "path": "./components/theme-provider.json",
2139
+ "sha256": "1fb4167a9b6a64544c22c1abd9c576f31aa3fbb47dd7e55c636114ca650edf31"
2140
+ }
2141
+ ]
2142
+ }