@cueplusplus/ui 0.13.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 (1016) hide show
  1. package/CHANGELOG.md +4028 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE.md +34 -0
  4. package/README.md +237 -0
  5. package/dist/agent-runtime/_glyphs.js +43 -0
  6. package/dist/agent-runtime/branch-picker.d.ts +45 -0
  7. package/dist/agent-runtime/branch-picker.js +87 -0
  8. package/dist/agent-runtime/index.d.ts +4 -0
  9. package/dist/agent-runtime/index.js +4 -0
  10. package/dist/agent-runtime/tool-call-card.d.ts +69 -0
  11. package/dist/agent-runtime/tool-call-card.js +187 -0
  12. package/dist/agent-runtime/use-agent-thread.d.ts +164 -0
  13. package/dist/agent-runtime/use-agent-thread.js +251 -0
  14. package/dist/brand/_chassis.d.ts +54 -0
  15. package/dist/brand/_chassis.js +81 -0
  16. package/dist/brand/_geometry.js +41 -0
  17. package/dist/brand/cue-logotype.d.ts +29 -0
  18. package/dist/brand/cue-logotype.js +60 -0
  19. package/dist/brand/cue-mark.d.ts +30 -0
  20. package/dist/brand/cue-mark.js +61 -0
  21. package/dist/brand/index.d.ts +5 -0
  22. package/dist/brand/plussie.d.ts +67 -0
  23. package/dist/brand/plussie.js +125 -0
  24. package/dist/charts/_token.js +39 -0
  25. package/dist/charts/container.d.ts +58 -0
  26. package/dist/charts/container.js +77 -0
  27. package/dist/charts/index.d.ts +5 -0
  28. package/dist/charts/index.js +5 -0
  29. package/dist/charts/ramps.d.ts +140 -0
  30. package/dist/charts/ramps.js +615 -0
  31. package/dist/charts/theme.d.ts +112 -0
  32. package/dist/charts/theme.js +165 -0
  33. package/dist/charts/tones.d.ts +111 -0
  34. package/dist/charts/tones.js +127 -0
  35. package/dist/chat/_glyphs.js +55 -0
  36. package/dist/chat/agent-color.d.ts +84 -0
  37. package/dist/chat/agent-color.js +101 -0
  38. package/dist/chat/agent-pile.d.ts +55 -0
  39. package/dist/chat/agent-pile.js +121 -0
  40. package/dist/chat/ask-box.d.ts +88 -0
  41. package/dist/chat/ask-box.js +341 -0
  42. package/dist/chat/composer.d.ts +66 -0
  43. package/dist/chat/composer.js +144 -0
  44. package/dist/chat/delegation-card.d.ts +60 -0
  45. package/dist/chat/delegation-card.js +129 -0
  46. package/dist/chat/index.d.ts +8 -0
  47. package/dist/chat/index.js +8 -0
  48. package/dist/chat/message-list.d.ts +45 -0
  49. package/dist/chat/message-list.js +141 -0
  50. package/dist/chat/message.d.ts +47 -0
  51. package/dist/chat/message.js +108 -0
  52. package/dist/chrome/_band.js +54 -0
  53. package/dist/chrome/_drag.js +59 -0
  54. package/dist/chrome/_edge-scroller.d.ts +45 -0
  55. package/dist/chrome/_edge-scroller.js +149 -0
  56. package/dist/chrome/_glyphs.js +119 -0
  57. package/dist/chrome/_status-bar-item.js +85 -0
  58. package/dist/chrome/_status-bar.d.ts +15 -0
  59. package/dist/chrome/_status-bar.js +171 -0
  60. package/dist/chrome/_tabs-scroll.d.ts +67 -0
  61. package/dist/chrome/_tabs-scroll.js +73 -0
  62. package/dist/chrome/_tree.d.ts +75 -0
  63. package/dist/chrome/_tree.js +49 -0
  64. package/dist/chrome/app-bar.d.ts +103 -0
  65. package/dist/chrome/app-bar.js +175 -0
  66. package/dist/chrome/app-shell.d.ts +243 -0
  67. package/dist/chrome/app-shell.js +266 -0
  68. package/dist/chrome/band.d.ts +106 -0
  69. package/dist/chrome/band.js +97 -0
  70. package/dist/chrome/empty-state.d.ts +37 -0
  71. package/dist/chrome/empty-state.js +57 -0
  72. package/dist/chrome/eyebrow.d.ts +29 -0
  73. package/dist/chrome/eyebrow.js +36 -0
  74. package/dist/chrome/footer.d.ts +88 -0
  75. package/dist/chrome/footer.js +83 -0
  76. package/dist/chrome/index.d.ts +24 -0
  77. package/dist/chrome/index.js +22 -0
  78. package/dist/chrome/inspector.d.ts +61 -0
  79. package/dist/chrome/inspector.js +121 -0
  80. package/dist/chrome/navigation-menu.d.ts +80 -0
  81. package/dist/chrome/navigation-menu.js +121 -0
  82. package/dist/chrome/page-shell.d.ts +38 -0
  83. package/dist/chrome/page-shell.js +76 -0
  84. package/dist/chrome/panel.d.ts +55 -0
  85. package/dist/chrome/panel.js +67 -0
  86. package/dist/chrome/row.d.ts +82 -0
  87. package/dist/chrome/row.js +106 -0
  88. package/dist/chrome/scroll-area.d.ts +39 -0
  89. package/dist/chrome/scroll-area.js +70 -0
  90. package/dist/chrome/section-header.d.ts +42 -0
  91. package/dist/chrome/section-header.js +79 -0
  92. package/dist/chrome/segmented-control.d.ts +77 -0
  93. package/dist/chrome/segmented-control.js +95 -0
  94. package/dist/chrome/status-bar.d.ts +129 -0
  95. package/dist/chrome/status-bar.js +120 -0
  96. package/dist/chrome/tabs.d.ts +80 -0
  97. package/dist/chrome/tabs.js +132 -0
  98. package/dist/chrome/title-bar.d.ts +47 -0
  99. package/dist/chrome/title-bar.js +43 -0
  100. package/dist/chrome/toolbar.d.ts +68 -0
  101. package/dist/chrome/toolbar.js +83 -0
  102. package/dist/chrome/tree.d.ts +98 -0
  103. package/dist/chrome/tree.js +248 -0
  104. package/dist/color/_checker.js +14 -0
  105. package/dist/color/_convert.d.ts +52 -0
  106. package/dist/color/_convert.js +66 -0
  107. package/dist/color/_glyphs.js +28 -0
  108. package/dist/color/_thumb.js +15 -0
  109. package/dist/color/_value.js +28 -0
  110. package/dist/color/color-area.d.ts +27 -0
  111. package/dist/color/color-area.js +40 -0
  112. package/dist/color/color-field.d.ts +32 -0
  113. package/dist/color/color-field.js +43 -0
  114. package/dist/color/color-picker.d.ts +71 -0
  115. package/dist/color/color-picker.js +178 -0
  116. package/dist/color/color-slider.d.ts +31 -0
  117. package/dist/color/color-slider.js +51 -0
  118. package/dist/color/color-swatch.d.ts +32 -0
  119. package/dist/color/color-swatch.js +44 -0
  120. package/dist/color/index.d.ts +7 -0
  121. package/dist/color/index.js +7 -0
  122. package/dist/configurator/_export.d.ts +78 -0
  123. package/dist/configurator/_export.js +302 -0
  124. package/dist/configurator/_glyphs.js +92 -0
  125. package/dist/configurator/_overrides.d.ts +266 -0
  126. package/dist/configurator/_overrides.js +541 -0
  127. package/dist/configurator/configurator.d.ts +71 -0
  128. package/dist/configurator/configurator.js +284 -0
  129. package/dist/configurator/export-dialog.d.ts +30 -0
  130. package/dist/configurator/export-dialog.js +121 -0
  131. package/dist/configurator/index.d.ts +8 -0
  132. package/dist/configurator/index.js +8 -0
  133. package/dist/configurator/panel-sections.d.ts +86 -0
  134. package/dist/configurator/panel-sections.js +352 -0
  135. package/dist/configurator/token-editor.d.ts +74 -0
  136. package/dist/configurator/token-editor.js +152 -0
  137. package/dist/configurator/use-zoom.d.ts +87 -0
  138. package/dist/configurator/use-zoom.js +113 -0
  139. package/dist/date/_glyphs.js +34 -0
  140. package/dist/date/_segments.js +101 -0
  141. package/dist/date/_trigger.js +31 -0
  142. package/dist/date/calendar.d.ts +25 -0
  143. package/dist/date/calendar.js +125 -0
  144. package/dist/date/date-field.d.ts +34 -0
  145. package/dist/date/date-field.js +41 -0
  146. package/dist/date/date-picker.d.ts +69 -0
  147. package/dist/date/date-picker.js +89 -0
  148. package/dist/date/date-range-picker.d.ts +65 -0
  149. package/dist/date/date-range-picker.js +92 -0
  150. package/dist/date/index.d.ts +6 -0
  151. package/dist/date/index.js +6 -0
  152. package/dist/date/time-field.d.ts +29 -0
  153. package/dist/date/time-field.js +36 -0
  154. package/dist/dmx/_ramp.d.ts +77 -0
  155. package/dist/dmx/_ramp.js +169 -0
  156. package/dist/dmx/_readout.js +53 -0
  157. package/dist/dmx/_universe.d.ts +105 -0
  158. package/dist/dmx/_universe.js +112 -0
  159. package/dist/dmx/channel-matrix.d.ts +81 -0
  160. package/dist/dmx/channel-matrix.js +285 -0
  161. package/dist/dmx/dmx-bar.d.ts +50 -0
  162. package/dist/dmx/dmx-bar.js +107 -0
  163. package/dist/dmx/dmx-strip.d.ts +41 -0
  164. package/dist/dmx/dmx-strip.js +196 -0
  165. package/dist/dmx/index.d.ts +7 -0
  166. package/dist/dmx/index.js +7 -0
  167. package/dist/dmx/universe-grid.d.ts +61 -0
  168. package/dist/dmx/universe-grid.js +182 -0
  169. package/dist/elements/activity-graph.d.ts +40 -0
  170. package/dist/elements/activity-graph.js +81 -0
  171. package/dist/elements/agent-card.d.ts +49 -0
  172. package/dist/elements/agent-card.js +91 -0
  173. package/dist/elements/agent-handoff.d.ts +24 -0
  174. package/dist/elements/agent-handoff.js +53 -0
  175. package/dist/elements/agent-mode-badge.d.ts +72 -0
  176. package/dist/elements/agent-mode-badge.js +110 -0
  177. package/dist/elements/agent-plan.d.ts +24 -0
  178. package/dist/elements/agent-plan.js +74 -0
  179. package/dist/elements/agent-status.d.ts +29 -0
  180. package/dist/elements/agent-status.js +46 -0
  181. package/dist/elements/agent-surface.d.ts +65 -0
  182. package/dist/elements/agent-surface.js +68 -0
  183. package/dist/elements/animated-number.d.ts +86 -0
  184. package/dist/elements/animated-number.js +118 -0
  185. package/dist/elements/approval-card.d.ts +40 -0
  186. package/dist/elements/approval-card.js +78 -0
  187. package/dist/elements/artifact-card.d.ts +30 -0
  188. package/dist/elements/artifact-card.js +58 -0
  189. package/dist/elements/background-inbox.d.ts +39 -0
  190. package/dist/elements/background-inbox.js +60 -0
  191. package/dist/elements/canvas-split.d.ts +77 -0
  192. package/dist/elements/canvas-split.js +138 -0
  193. package/dist/elements/chart.d.ts +41 -0
  194. package/dist/elements/chart.js +117 -0
  195. package/dist/elements/chat-panel.d.ts +46 -0
  196. package/dist/elements/chat-panel.js +104 -0
  197. package/dist/elements/checkpoint-history.d.ts +31 -0
  198. package/dist/elements/checkpoint-history.js +65 -0
  199. package/dist/elements/clamp.d.ts +90 -0
  200. package/dist/elements/clamp.js +109 -0
  201. package/dist/elements/code-diff.d.ts +42 -0
  202. package/dist/elements/code-diff.js +69 -0
  203. package/dist/elements/code-runner.d.ts +38 -0
  204. package/dist/elements/code-runner.js +84 -0
  205. package/dist/elements/command-palette.d.ts +48 -0
  206. package/dist/elements/command-palette.js +129 -0
  207. package/dist/elements/compaction-row.d.ts +63 -0
  208. package/dist/elements/compaction-row.js +110 -0
  209. package/dist/elements/comparison-card.d.ts +47 -0
  210. package/dist/elements/comparison-card.js +69 -0
  211. package/dist/elements/composer.d.ts +274 -0
  212. package/dist/elements/composer.js +505 -0
  213. package/dist/elements/computer-use.d.ts +40 -0
  214. package/dist/elements/computer-use.js +92 -0
  215. package/dist/elements/confidence-marker.d.ts +39 -0
  216. package/dist/elements/confidence-marker.js +64 -0
  217. package/dist/elements/connection-state.d.ts +29 -0
  218. package/dist/elements/connection-state.js +66 -0
  219. package/dist/elements/context-breakdown.d.ts +30 -0
  220. package/dist/elements/context-breakdown.js +86 -0
  221. package/dist/elements/context-usage.d.ts +99 -0
  222. package/dist/elements/context-usage.js +225 -0
  223. package/dist/elements/conversation-search.d.ts +48 -0
  224. package/dist/elements/conversation-search.js +88 -0
  225. package/dist/elements/cost-meter.d.ts +33 -0
  226. package/dist/elements/cost-meter.js +75 -0
  227. package/dist/elements/data-table.d.ts +31 -0
  228. package/dist/elements/data-table.js +67 -0
  229. package/dist/elements/day-separator.d.ts +34 -0
  230. package/dist/elements/day-separator.js +50 -0
  231. package/dist/elements/diagram.d.ts +34 -0
  232. package/dist/elements/diagram.js +75 -0
  233. package/dist/elements/document-reference.d.ts +37 -0
  234. package/dist/elements/document-reference.js +66 -0
  235. package/dist/elements/draft-restore.d.ts +27 -0
  236. package/dist/elements/draft-restore.js +54 -0
  237. package/dist/elements/edit-message.d.ts +36 -0
  238. package/dist/elements/edit-message.js +77 -0
  239. package/dist/elements/elements.css +459 -0
  240. package/dist/elements/elicitation-form.d.ts +48 -0
  241. package/dist/elements/elicitation-form.js +106 -0
  242. package/dist/elements/empty-state.d.ts +52 -0
  243. package/dist/elements/empty-state.js +98 -0
  244. package/dist/elements/end-of-turn-summary.d.ts +60 -0
  245. package/dist/elements/end-of-turn-summary.js +75 -0
  246. package/dist/elements/error-state.d.ts +29 -0
  247. package/dist/elements/error-state.js +55 -0
  248. package/dist/elements/feedback-dialog.d.ts +36 -0
  249. package/dist/elements/feedback-dialog.js +81 -0
  250. package/dist/elements/file-tree.d.ts +45 -0
  251. package/dist/elements/file-tree.js +84 -0
  252. package/dist/elements/flow-graph.d.ts +45 -0
  253. package/dist/elements/flow-graph.js +78 -0
  254. package/dist/elements/generative/chart.js +200 -0
  255. package/dist/elements/generative/faults.js +111 -0
  256. package/dist/elements/generative/icons.d.ts +41 -0
  257. package/dist/elements/generative/icons.js +190 -0
  258. package/dist/elements/generative/intrinsics.js +483 -0
  259. package/dist/elements/generative/spec.d.ts +110 -0
  260. package/dist/elements/generative/spec.js +366 -0
  261. package/dist/elements/generative.css +1145 -0
  262. package/dist/elements/generative.d.ts +144 -0
  263. package/dist/elements/generative.js +126 -0
  264. package/dist/elements/guardrail-notice.d.ts +29 -0
  265. package/dist/elements/guardrail-notice.js +63 -0
  266. package/dist/elements/image-generation.d.ts +18 -0
  267. package/dist/elements/image-generation.js +64 -0
  268. package/dist/elements/index.d.ts +116 -0
  269. package/dist/elements/index.js +115 -0
  270. package/dist/elements/inline-citation.d.ts +43 -0
  271. package/dist/elements/inline-citation.js +93 -0
  272. package/dist/elements/job-progress.d.ts +49 -0
  273. package/dist/elements/job-progress.js +74 -0
  274. package/dist/elements/launcher-bubble.d.ts +34 -0
  275. package/dist/elements/launcher-bubble.js +72 -0
  276. package/dist/elements/live-region-announcer.d.ts +130 -0
  277. package/dist/elements/live-region-announcer.js +230 -0
  278. package/dist/elements/loading-state.d.ts +27 -0
  279. package/dist/elements/loading-state.js +36 -0
  280. package/dist/elements/map-answer.d.ts +38 -0
  281. package/dist/elements/map-answer.js +93 -0
  282. package/dist/elements/markdown.d.ts +131 -0
  283. package/dist/elements/markdown.js +528 -0
  284. package/dist/elements/math-block.d.ts +51 -0
  285. package/dist/elements/math-block.js +70 -0
  286. package/dist/elements/mcp-server-panel.d.ts +41 -0
  287. package/dist/elements/mcp-server-panel.js +115 -0
  288. package/dist/elements/memory-chips.d.ts +30 -0
  289. package/dist/elements/memory-chips.js +43 -0
  290. package/dist/elements/message-actions.d.ts +38 -0
  291. package/dist/elements/message-actions.js +71 -0
  292. package/dist/elements/message-attachment.d.ts +48 -0
  293. package/dist/elements/message-attachment.js +63 -0
  294. package/dist/elements/message-branches.d.ts +25 -0
  295. package/dist/elements/message-branches.js +65 -0
  296. package/dist/elements/message-pair.d.ts +33 -0
  297. package/dist/elements/message-pair.js +65 -0
  298. package/dist/elements/message-queue.d.ts +31 -0
  299. package/dist/elements/message-queue.js +80 -0
  300. package/dist/elements/message-timing.d.ts +33 -0
  301. package/dist/elements/message-timing.js +37 -0
  302. package/dist/elements/mobile-composer.d.ts +44 -0
  303. package/dist/elements/mobile-composer.js +88 -0
  304. package/dist/elements/model-picker.d.ts +38 -0
  305. package/dist/elements/model-picker.js +69 -0
  306. package/dist/elements/number-ticker.d.ts +18 -0
  307. package/dist/elements/number-ticker.js +47 -0
  308. package/dist/elements/onboarding.d.ts +30 -0
  309. package/dist/elements/onboarding.js +75 -0
  310. package/dist/elements/permission-grant.d.ts +35 -0
  311. package/dist/elements/permission-grant.js +86 -0
  312. package/dist/elements/permission-scopes.d.ts +215 -0
  313. package/dist/elements/permission-scopes.js +249 -0
  314. package/dist/elements/prompt-library.d.ts +43 -0
  315. package/dist/elements/prompt-library.js +117 -0
  316. package/dist/elements/queue-dock.d.ts +101 -0
  317. package/dist/elements/queue-dock.js +132 -0
  318. package/dist/elements/quota-banner.d.ts +26 -0
  319. package/dist/elements/quota-banner.js +66 -0
  320. package/dist/elements/quote-reply.d.ts +44 -0
  321. package/dist/elements/quote-reply.js +79 -0
  322. package/dist/elements/range.d.ts +29 -0
  323. package/dist/elements/range.js +45 -0
  324. package/dist/elements/read-aloud.d.ts +45 -0
  325. package/dist/elements/read-aloud.js +75 -0
  326. package/dist/elements/reasoning-effort.d.ts +36 -0
  327. package/dist/elements/reasoning-effort.js +67 -0
  328. package/dist/elements/reasoning-panel.d.ts +46 -0
  329. package/dist/elements/reasoning-panel.js +75 -0
  330. package/dist/elements/recommendation-card.d.ts +45 -0
  331. package/dist/elements/recommendation-card.js +83 -0
  332. package/dist/elements/regenerate-menu.d.ts +45 -0
  333. package/dist/elements/regenerate-menu.js +51 -0
  334. package/dist/elements/replay.d.ts +217 -0
  335. package/dist/elements/replay.js +498 -0
  336. package/dist/elements/research-report.d.ts +38 -0
  337. package/dist/elements/research-report.js +69 -0
  338. package/dist/elements/retrieval-chunks.d.ts +43 -0
  339. package/dist/elements/retrieval-chunks.js +81 -0
  340. package/dist/elements/revert-dock.d.ts +159 -0
  341. package/dist/elements/revert-dock.js +327 -0
  342. package/dist/elements/reviewable-diff.d.ts +45 -0
  343. package/dist/elements/reviewable-diff.js +110 -0
  344. package/dist/elements/risk-badge.d.ts +52 -0
  345. package/dist/elements/risk-badge.js +91 -0
  346. package/dist/elements/schedule-card.d.ts +42 -0
  347. package/dist/elements/schedule-card.js +90 -0
  348. package/dist/elements/score-breakdown.d.ts +47 -0
  349. package/dist/elements/score-breakdown.js +82 -0
  350. package/dist/elements/scroll-anchor.d.ts +32 -0
  351. package/dist/elements/scroll-anchor.js +123 -0
  352. package/dist/elements/settings-panel.d.ts +52 -0
  353. package/dist/elements/settings-panel.js +107 -0
  354. package/dist/elements/shared-conversation.d.ts +39 -0
  355. package/dist/elements/shared-conversation.js +68 -0
  356. package/dist/elements/sources.d.ts +33 -0
  357. package/dist/elements/sources.js +61 -0
  358. package/dist/elements/speaker-identity.d.ts +32 -0
  359. package/dist/elements/speaker-identity.js +51 -0
  360. package/dist/elements/spec-sheet.d.ts +31 -0
  361. package/dist/elements/spec-sheet.js +45 -0
  362. package/dist/elements/stopped-run.d.ts +22 -0
  363. package/dist/elements/stopped-run.js +50 -0
  364. package/dist/elements/streaming-text.d.ts +31 -0
  365. package/dist/elements/streaming-text.js +45 -0
  366. package/dist/elements/subagent-list.d.ts +37 -0
  367. package/dist/elements/subagent-list.js +79 -0
  368. package/dist/elements/suggestions.d.ts +30 -0
  369. package/dist/elements/suggestions.js +36 -0
  370. package/dist/elements/surfaces.d.ts +85 -0
  371. package/dist/elements/surfaces.js +108 -0
  372. package/dist/elements/tail-status.d.ts +131 -0
  373. package/dist/elements/tail-status.js +94 -0
  374. package/dist/elements/terminal-block.d.ts +29 -0
  375. package/dist/elements/terminal-block.js +54 -0
  376. package/dist/elements/thinking-indicator.d.ts +18 -0
  377. package/dist/elements/thinking-indicator.js +36 -0
  378. package/dist/elements/thread-list.d.ts +35 -0
  379. package/dist/elements/thread-list.js +68 -0
  380. package/dist/elements/thread-search.d.ts +42 -0
  381. package/dist/elements/thread-search.js +99 -0
  382. package/dist/elements/timeline.d.ts +37 -0
  383. package/dist/elements/timeline.js +46 -0
  384. package/dist/elements/todo-list.d.ts +42 -0
  385. package/dist/elements/todo-list.js +59 -0
  386. package/dist/elements/tool-call.d.ts +41 -0
  387. package/dist/elements/tool-call.js +85 -0
  388. package/dist/elements/tool-error.d.ts +39 -0
  389. package/dist/elements/tool-error.js +76 -0
  390. package/dist/elements/tool-group.d.ts +45 -0
  391. package/dist/elements/tool-group.js +71 -0
  392. package/dist/elements/tool-timeline.d.ts +65 -0
  393. package/dist/elements/tool-timeline.js +88 -0
  394. package/dist/elements/trace-waterfall.d.ts +37 -0
  395. package/dist/elements/trace-waterfall.js +69 -0
  396. package/dist/elements/transcript-rules.d.ts +67 -0
  397. package/dist/elements/transcript-rules.js +95 -0
  398. package/dist/elements/turn-footer.d.ts +74 -0
  399. package/dist/elements/turn-footer.js +101 -0
  400. package/dist/elements/typing-indicator.d.ts +16 -0
  401. package/dist/elements/typing-indicator.js +51 -0
  402. package/dist/elements/verdict-row.d.ts +89 -0
  403. package/dist/elements/verdict-row.js +150 -0
  404. package/dist/elements/vocabulary.d.ts +612 -0
  405. package/dist/elements/vocabulary.js +611 -0
  406. package/dist/elements/voice-conversation.d.ts +49 -0
  407. package/dist/elements/voice-conversation.js +123 -0
  408. package/dist/elements/web-preview.d.ts +32 -0
  409. package/dist/elements/web-preview.js +66 -0
  410. package/dist/elements/web-search.d.ts +37 -0
  411. package/dist/elements/web-search.js +66 -0
  412. package/dist/elements/work-collapse.d.ts +103 -0
  413. package/dist/elements/work-collapse.js +131 -0
  414. package/dist/flow/_frame.d.ts +52 -0
  415. package/dist/flow/_frame.js +38 -0
  416. package/dist/flow/controls.d.ts +41 -0
  417. package/dist/flow/controls.js +53 -0
  418. package/dist/flow/flow.css +121 -0
  419. package/dist/flow/handles.d.ts +40 -0
  420. package/dist/flow/handles.js +61 -0
  421. package/dist/flow/index.d.ts +7 -0
  422. package/dist/flow/index.js +7 -0
  423. package/dist/flow/node-card.d.ts +71 -0
  424. package/dist/flow/node-card.js +102 -0
  425. package/dist/flow/signal-edge.d.ts +60 -0
  426. package/dist/flow/signal-edge.js +108 -0
  427. package/dist/flow/use-flow-theme.d.ts +69 -0
  428. package/dist/flow/use-flow-theme.js +109 -0
  429. package/dist/forms/_chassis.d.ts +164 -0
  430. package/dist/forms/_chassis.js +159 -0
  431. package/dist/forms/_glyphs.js +143 -0
  432. package/dist/forms/_listbox.js +55 -0
  433. package/dist/forms/autocomplete.d.ts +61 -0
  434. package/dist/forms/autocomplete.js +88 -0
  435. package/dist/forms/button-group.d.ts +47 -0
  436. package/dist/forms/button-group.js +52 -0
  437. package/dist/forms/checkbox.d.ts +51 -0
  438. package/dist/forms/checkbox.js +98 -0
  439. package/dist/forms/combobox.d.ts +73 -0
  440. package/dist/forms/combobox.js +108 -0
  441. package/dist/forms/env-var-input.d.ts +74 -0
  442. package/dist/forms/env-var-input.js +116 -0
  443. package/dist/forms/field.d.ts +89 -0
  444. package/dist/forms/field.js +102 -0
  445. package/dist/forms/file-upload.d.ts +113 -0
  446. package/dist/forms/file-upload.js +232 -0
  447. package/dist/forms/index.d.ts +26 -0
  448. package/dist/forms/index.js +26 -0
  449. package/dist/forms/input-group.d.ts +36 -0
  450. package/dist/forms/input-group.js +59 -0
  451. package/dist/forms/input.d.ts +45 -0
  452. package/dist/forms/input.js +36 -0
  453. package/dist/forms/multi-select.d.ts +62 -0
  454. package/dist/forms/multi-select.js +107 -0
  455. package/dist/forms/number-field.d.ts +39 -0
  456. package/dist/forms/number-field.js +65 -0
  457. package/dist/forms/otp-field.d.ts +54 -0
  458. package/dist/forms/otp-field.js +59 -0
  459. package/dist/forms/password-input.d.ts +46 -0
  460. package/dist/forms/password-input.js +62 -0
  461. package/dist/forms/radio-group.d.ts +50 -0
  462. package/dist/forms/radio-group.js +64 -0
  463. package/dist/forms/rating.d.ts +69 -0
  464. package/dist/forms/rating.js +103 -0
  465. package/dist/forms/scrub-input.d.ts +81 -0
  466. package/dist/forms/scrub-input.js +249 -0
  467. package/dist/forms/search-input.d.ts +54 -0
  468. package/dist/forms/search-input.js +112 -0
  469. package/dist/forms/select.d.ts +75 -0
  470. package/dist/forms/select.js +91 -0
  471. package/dist/forms/slider.d.ts +44 -0
  472. package/dist/forms/slider.js +65 -0
  473. package/dist/forms/switch.d.ts +36 -0
  474. package/dist/forms/switch.js +71 -0
  475. package/dist/forms/tags-input.d.ts +69 -0
  476. package/dist/forms/tags-input.js +148 -0
  477. package/dist/forms/textarea.d.ts +39 -0
  478. package/dist/forms/textarea.js +37 -0
  479. package/dist/forms/toggle-group.d.ts +41 -0
  480. package/dist/forms/toggle-group.js +56 -0
  481. package/dist/forms/toggle.d.ts +47 -0
  482. package/dist/forms/toggle.js +100 -0
  483. package/dist/icons/containers.d.ts +89 -0
  484. package/dist/icons/containers.js +295 -0
  485. package/dist/icons/index.d.ts +2 -0
  486. package/dist/index.d.ts +138 -0
  487. package/dist/index.js +124 -0
  488. package/dist/instruments/_ansi.js +116 -0
  489. package/dist/instruments/_data-row.d.ts +68 -0
  490. package/dist/instruments/_data-row.js +139 -0
  491. package/dist/instruments/_glyphs.js +90 -0
  492. package/dist/instruments/_ledger-disclosure.js +103 -0
  493. package/dist/instruments/_ledger.d.ts +21 -0
  494. package/dist/instruments/_ledger.js +5 -0
  495. package/dist/instruments/_motion.js +56 -0
  496. package/dist/instruments/_rem.js +21 -0
  497. package/dist/instruments/app-window-frame.d.ts +48 -0
  498. package/dist/instruments/app-window-frame.js +76 -0
  499. package/dist/instruments/code-block.d.ts +35 -0
  500. package/dist/instruments/code-block.js +173 -0
  501. package/dist/instruments/copy-button.d.ts +41 -0
  502. package/dist/instruments/copy-button.js +112 -0
  503. package/dist/instruments/data-row.d.ts +94 -0
  504. package/dist/instruments/data-row.js +151 -0
  505. package/dist/instruments/data-table.d.ts +168 -0
  506. package/dist/instruments/data-table.js +212 -0
  507. package/dist/instruments/data-tree.d.ts +126 -0
  508. package/dist/instruments/data-tree.js +303 -0
  509. package/dist/instruments/group-bar.d.ts +63 -0
  510. package/dist/instruments/group-bar.js +122 -0
  511. package/dist/instruments/index.d.ts +18 -0
  512. package/dist/instruments/index.js +18 -0
  513. package/dist/instruments/ledger.d.ts +204 -0
  514. package/dist/instruments/ledger.js +204 -0
  515. package/dist/instruments/log-viewer.d.ts +74 -0
  516. package/dist/instruments/log-viewer.js +215 -0
  517. package/dist/instruments/meter.d.ts +81 -0
  518. package/dist/instruments/meter.js +96 -0
  519. package/dist/instruments/progress.d.ts +61 -0
  520. package/dist/instruments/progress.js +79 -0
  521. package/dist/instruments/seam-grid.d.ts +66 -0
  522. package/dist/instruments/seam-grid.js +78 -0
  523. package/dist/instruments/sparkline.d.ts +39 -0
  524. package/dist/instruments/sparkline.js +85 -0
  525. package/dist/instruments/stat.d.ts +35 -0
  526. package/dist/instruments/stat.js +59 -0
  527. package/dist/instruments/table.d.ts +170 -0
  528. package/dist/instruments/table.js +237 -0
  529. package/dist/instruments/terminal-frame.d.ts +89 -0
  530. package/dist/instruments/terminal-frame.js +256 -0
  531. package/dist/instruments/two-step-button.d.ts +47 -0
  532. package/dist/instruments/two-step-button.js +166 -0
  533. package/dist/instruments/usage-chart.d.ts +55 -0
  534. package/dist/instruments/usage-chart.js +235 -0
  535. package/dist/layout/_collapse.js +46 -0
  536. package/dist/layout/_glyphs.js +45 -0
  537. package/dist/layout/_ground.d.ts +22 -0
  538. package/dist/layout/_ground.js +9 -0
  539. package/dist/layout/accordion.d.ts +52 -0
  540. package/dist/layout/accordion.js +81 -0
  541. package/dist/layout/bento.d.ts +144 -0
  542. package/dist/layout/bento.js +266 -0
  543. package/dist/layout/breadcrumb.d.ts +35 -0
  544. package/dist/layout/breadcrumb.js +67 -0
  545. package/dist/layout/card.d.ts +51 -0
  546. package/dist/layout/card.js +76 -0
  547. package/dist/layout/carousel.d.ts +96 -0
  548. package/dist/layout/carousel.js +211 -0
  549. package/dist/layout/collapsible.d.ts +74 -0
  550. package/dist/layout/collapsible.js +126 -0
  551. package/dist/layout/container.d.ts +27 -0
  552. package/dist/layout/container.js +43 -0
  553. package/dist/layout/description-list.d.ts +24 -0
  554. package/dist/layout/description-list.js +37 -0
  555. package/dist/layout/frames.d.ts +70 -0
  556. package/dist/layout/frames.js +298 -0
  557. package/dist/layout/grid.d.ts +40 -0
  558. package/dist/layout/grid.js +48 -0
  559. package/dist/layout/index.d.ts +19 -0
  560. package/dist/layout/index.js +18 -0
  561. package/dist/layout/item.d.ts +65 -0
  562. package/dist/layout/item.js +100 -0
  563. package/dist/layout/link.d.ts +48 -0
  564. package/dist/layout/link.js +63 -0
  565. package/dist/layout/pagination.d.ts +54 -0
  566. package/dist/layout/pagination.js +121 -0
  567. package/dist/layout/preview.d.ts +177 -0
  568. package/dist/layout/preview.js +628 -0
  569. package/dist/layout/resizable.d.ts +38 -0
  570. package/dist/layout/resizable.js +68 -0
  571. package/dist/layout/sidebar.d.ts +105 -0
  572. package/dist/layout/sidebar.js +158 -0
  573. package/dist/layout/stack.d.ts +46 -0
  574. package/dist/layout/stack.js +62 -0
  575. package/dist/layout/stepper.d.ts +49 -0
  576. package/dist/layout/stepper.js +81 -0
  577. package/dist/layout/timeline.d.ts +43 -0
  578. package/dist/layout/timeline.js +63 -0
  579. package/dist/lib/aria-class.js +24 -0
  580. package/dist/lib/cn.js +18 -0
  581. package/dist/lib/compose.js +38 -0
  582. package/dist/lib/cva.d.ts +18 -0
  583. package/dist/lib/cva.js +65 -0
  584. package/dist/midi/_notes.d.ts +101 -0
  585. package/dist/midi/_notes.js +183 -0
  586. package/dist/midi/_ruler.d.ts +100 -0
  587. package/dist/midi/_ruler.js +105 -0
  588. package/dist/midi/_time.d.ts +107 -0
  589. package/dist/midi/_time.js +130 -0
  590. package/dist/midi/index.d.ts +9 -0
  591. package/dist/midi/index.js +9 -0
  592. package/dist/midi/musical-time-input.d.ts +48 -0
  593. package/dist/midi/musical-time-input.js +154 -0
  594. package/dist/midi/piano-keyboard.d.ts +50 -0
  595. package/dist/midi/piano-keyboard.js +197 -0
  596. package/dist/midi/spectrum-visualizer.d.ts +65 -0
  597. package/dist/midi/spectrum-visualizer.js +213 -0
  598. package/dist/midi/threshold-rail.d.ts +72 -0
  599. package/dist/midi/threshold-rail.js +214 -0
  600. package/dist/midi/timeline-ruler.d.ts +83 -0
  601. package/dist/midi/timeline-ruler.js +152 -0
  602. package/dist/overlays/_debounce.js +34 -0
  603. package/dist/overlays/_glyphs.js +59 -0
  604. package/dist/overlays/_surface.d.ts +70 -0
  605. package/dist/overlays/_surface.js +70 -0
  606. package/dist/overlays/_wheel.js +42 -0
  607. package/dist/overlays/alert-dialog.d.ts +67 -0
  608. package/dist/overlays/alert-dialog.js +117 -0
  609. package/dist/overlays/command-palette.d.ts +93 -0
  610. package/dist/overlays/command-palette.js +193 -0
  611. package/dist/overlays/context-menu.d.ts +64 -0
  612. package/dist/overlays/context-menu.js +78 -0
  613. package/dist/overlays/dialog.d.ts +72 -0
  614. package/dist/overlays/dialog.js +124 -0
  615. package/dist/overlays/drawer.d.ts +75 -0
  616. package/dist/overlays/drawer.js +151 -0
  617. package/dist/overlays/dropdown-menu.d.ts +79 -0
  618. package/dist/overlays/dropdown-menu.js +156 -0
  619. package/dist/overlays/hover-card.d.ts +58 -0
  620. package/dist/overlays/hover-card.js +91 -0
  621. package/dist/overlays/index.d.ts +15 -0
  622. package/dist/overlays/index.js +15 -0
  623. package/dist/overlays/info-tip.d.ts +41 -0
  624. package/dist/overlays/info-tip.js +45 -0
  625. package/dist/overlays/menubar.d.ts +72 -0
  626. package/dist/overlays/menubar.js +100 -0
  627. package/dist/overlays/popover.d.ts +66 -0
  628. package/dist/overlays/popover.js +114 -0
  629. package/dist/overlays/sheet.d.ts +78 -0
  630. package/dist/overlays/sheet.js +131 -0
  631. package/dist/overlays/toast.d.ts +106 -0
  632. package/dist/overlays/toast.js +146 -0
  633. package/dist/overlays/tooltip.d.ts +57 -0
  634. package/dist/overlays/tooltip.js +95 -0
  635. package/dist/primitives/avatar.d.ts +51 -0
  636. package/dist/primitives/avatar.js +93 -0
  637. package/dist/primitives/button.d.ts +58 -0
  638. package/dist/primitives/button.js +104 -0
  639. package/dist/primitives/chip.d.ts +73 -0
  640. package/dist/primitives/chip.js +238 -0
  641. package/dist/primitives/icon-button.d.ts +41 -0
  642. package/dist/primitives/icon-button.js +59 -0
  643. package/dist/primitives/index.d.ts +10 -0
  644. package/dist/primitives/index.js +10 -0
  645. package/dist/primitives/kbd.d.ts +17 -0
  646. package/dist/primitives/kbd.js +24 -0
  647. package/dist/primitives/separator.d.ts +25 -0
  648. package/dist/primitives/separator.js +30 -0
  649. package/dist/primitives/skeleton.d.ts +20 -0
  650. package/dist/primitives/skeleton.js +27 -0
  651. package/dist/primitives/spinner.d.ts +26 -0
  652. package/dist/primitives/spinner.js +31 -0
  653. package/dist/primitives/status-dot.d.ts +51 -0
  654. package/dist/primitives/status-dot.js +57 -0
  655. package/dist/styles.css +97 -0
  656. package/dist/system/agent-skin.d.ts +27 -0
  657. package/dist/system/agent-skin.js +20 -0
  658. package/dist/system/density.d.ts +73 -0
  659. package/dist/system/density.js +111 -0
  660. package/dist/system/index.d.ts +12 -0
  661. package/dist/system/index.js +10 -0
  662. package/dist/system/overrides.d.ts +80 -0
  663. package/dist/system/overrides.js +277 -0
  664. package/dist/system/portal.d.ts +56 -0
  665. package/dist/system/portal.js +193 -0
  666. package/dist/system/prepaint.d.ts +134 -0
  667. package/dist/system/prepaint.js +120 -0
  668. package/dist/system/theme-provider.d.ts +290 -0
  669. package/dist/system/theme-provider.js +543 -0
  670. package/dist/system/theme-registry.d.ts +53 -0
  671. package/dist/system/theme-registry.js +66 -0
  672. package/dist/system/use-density.d.ts +50 -0
  673. package/dist/system/use-density.js +232 -0
  674. package/dist/system/use-isomorphic-layout-effect.js +33 -0
  675. package/dist/system/use-theme.d.ts +30 -0
  676. package/dist/system/use-theme.js +36 -0
  677. package/dist/system/vocabulary.d.ts +16 -0
  678. package/dist/system/vocabulary.js +125 -0
  679. package/dist/theming/contrast.d.ts +2 -0
  680. package/dist/theming/contrast.js +2 -0
  681. package/dist/theming/create-theme.d.ts +195 -0
  682. package/dist/theming/create-theme.js +524 -0
  683. package/dist/theming/index.d.ts +4 -0
  684. package/dist/theming/index.js +4 -0
  685. package/dist/theming/serialize.d.ts +167 -0
  686. package/dist/theming/serialize.js +241 -0
  687. package/manifest/components/accordion.json +173 -0
  688. package/manifest/components/activity-graph.json +104 -0
  689. package/manifest/components/agent-card.json +150 -0
  690. package/manifest/components/agent-handoff.json +104 -0
  691. package/manifest/components/agent-mode-badge.json +102 -0
  692. package/manifest/components/agent-pile.json +147 -0
  693. package/manifest/components/agent-plan.json +74 -0
  694. package/manifest/components/agent-status.json +87 -0
  695. package/manifest/components/agent-surface.json +93 -0
  696. package/manifest/components/alert-dialog.json +215 -0
  697. package/manifest/components/animated-number.json +75 -0
  698. package/manifest/components/app-bar.json +297 -0
  699. package/manifest/components/app-shell.json +526 -0
  700. package/manifest/components/app-window-frame.json +124 -0
  701. package/manifest/components/approval-card.json +136 -0
  702. package/manifest/components/artifact-card.json +93 -0
  703. package/manifest/components/ask-box.json +288 -0
  704. package/manifest/components/audience-icon.json +46 -0
  705. package/manifest/components/autocomplete.json +262 -0
  706. package/manifest/components/avatar-group.json +83 -0
  707. package/manifest/components/avatar.json +113 -0
  708. package/manifest/components/background-inbox.json +79 -0
  709. package/manifest/components/band.json +104 -0
  710. package/manifest/components/bento.json +306 -0
  711. package/manifest/components/branch-picker.json +146 -0
  712. package/manifest/components/breadcrumb.json +85 -0
  713. package/manifest/components/button-group.json +91 -0
  714. package/manifest/components/button.json +163 -0
  715. package/manifest/components/calendar.json +65 -0
  716. package/manifest/components/canvas-split-body.json +66 -0
  717. package/manifest/components/canvas-split-document.json +55 -0
  718. package/manifest/components/canvas-split-header.json +97 -0
  719. package/manifest/components/canvas-split-line.json +66 -0
  720. package/manifest/components/canvas-split-message.json +70 -0
  721. package/manifest/components/canvas-split-thread.json +55 -0
  722. package/manifest/components/canvas-split.json +61 -0
  723. package/manifest/components/card.json +152 -0
  724. package/manifest/components/carousel.json +242 -0
  725. package/manifest/components/catalogue-icon.json +46 -0
  726. package/manifest/components/channel-beta-icon.json +46 -0
  727. package/manifest/components/channel-matrix.json +239 -0
  728. package/manifest/components/channel-released-icon.json +46 -0
  729. package/manifest/components/chart-container.json +127 -0
  730. package/manifest/components/chart-ramp.json +82 -0
  731. package/manifest/components/chart-swatch.json +72 -0
  732. package/manifest/components/chart-tooltip-content.json +140 -0
  733. package/manifest/components/chart.json +117 -0
  734. package/manifest/components/chat-empty-state.json +55 -0
  735. package/manifest/components/chat-panel-assistant-message.json +52 -0
  736. package/manifest/components/chat-panel-composer.json +74 -0
  737. package/manifest/components/chat-panel-messages.json +52 -0
  738. package/manifest/components/chat-panel-typing.json +52 -0
  739. package/manifest/components/chat-panel-user-message.json +52 -0
  740. package/manifest/components/chat-panel.json +58 -0
  741. package/manifest/components/checkbox-group.json +70 -0
  742. package/manifest/components/checkbox.json +106 -0
  743. package/manifest/components/checkpoint-history.json +91 -0
  744. package/manifest/components/chip.json +174 -0
  745. package/manifest/components/clamp.json +125 -0
  746. package/manifest/components/cli-tool-icon.json +46 -0
  747. package/manifest/components/code-block.json +107 -0
  748. package/manifest/components/code-diff.json +104 -0
  749. package/manifest/components/code-runner.json +124 -0
  750. package/manifest/components/collapsible.json +133 -0
  751. package/manifest/components/color-area.json +62 -0
  752. package/manifest/components/color-field.json +91 -0
  753. package/manifest/components/color-picker.json +235 -0
  754. package/manifest/components/color-slider.json +84 -0
  755. package/manifest/components/color-swatch.json +79 -0
  756. package/manifest/components/colors-section.json +70 -0
  757. package/manifest/components/combobox.json +265 -0
  758. package/manifest/components/command-palette.json +222 -0
  759. package/manifest/components/compaction-row.json +128 -0
  760. package/manifest/components/comparison-card.json +98 -0
  761. package/manifest/components/composer-actions.json +65 -0
  762. package/manifest/components/composer-attach-button.json +65 -0
  763. package/manifest/components/composer-attachment-chip.json +83 -0
  764. package/manifest/components/composer-attachments.json +60 -0
  765. package/manifest/components/composer-bar.json +76 -0
  766. package/manifest/components/composer-command-item.json +85 -0
  767. package/manifest/components/composer-context.json +71 -0
  768. package/manifest/components/composer-input.json +77 -0
  769. package/manifest/components/composer-menu-item.json +75 -0
  770. package/manifest/components/composer-menu.json +89 -0
  771. package/manifest/components/composer-model-item.json +82 -0
  772. package/manifest/components/composer-model-trigger.json +81 -0
  773. package/manifest/components/composer-person-item.json +86 -0
  774. package/manifest/components/composer-send.json +86 -0
  775. package/manifest/components/composer-toolbar.json +65 -0
  776. package/manifest/components/composer-voice-button.json +71 -0
  777. package/manifest/components/composer-voice.json +81 -0
  778. package/manifest/components/composer.json +238 -0
  779. package/manifest/components/computer-use.json +98 -0
  780. package/manifest/components/confidence-marker.json +86 -0
  781. package/manifest/components/connection-state.json +103 -0
  782. package/manifest/components/container.json +75 -0
  783. package/manifest/components/context-breakdown.json +72 -0
  784. package/manifest/components/context-menu.json +134 -0
  785. package/manifest/components/context-usage.json +98 -0
  786. package/manifest/components/conversation-search.json +111 -0
  787. package/manifest/components/copy-button.json +118 -0
  788. package/manifest/components/cost-meter.json +84 -0
  789. package/manifest/components/cue-logotype.json +110 -0
  790. package/manifest/components/cue-mark.json +111 -0
  791. package/manifest/components/cue-portal-frame.json +65 -0
  792. package/manifest/components/data-row.json +222 -0
  793. package/manifest/components/data-table-pagination.json +97 -0
  794. package/manifest/components/data-table-toolbar.json +127 -0
  795. package/manifest/components/data-tree.json +185 -0
  796. package/manifest/components/date-field.json +93 -0
  797. package/manifest/components/date-picker.json +255 -0
  798. package/manifest/components/date-range-picker.json +255 -0
  799. package/manifest/components/day-separator.json +63 -0
  800. package/manifest/components/delegation-card.json +196 -0
  801. package/manifest/components/density.json +93 -0
  802. package/manifest/components/description-list.json +91 -0
  803. package/manifest/components/diagram.json +126 -0
  804. package/manifest/components/dialog.json +222 -0
  805. package/manifest/components/disclosure.json +134 -0
  806. package/manifest/components/dmx-bar.json +107 -0
  807. package/manifest/components/dmx-strip.json +117 -0
  808. package/manifest/components/document-reference.json +108 -0
  809. package/manifest/components/draft-restore.json +96 -0
  810. package/manifest/components/drawer.json +204 -0
  811. package/manifest/components/dropdown-menu.json +275 -0
  812. package/manifest/components/edit-message.json +131 -0
  813. package/manifest/components/elements-command-palette.json +122 -0
  814. package/manifest/components/elements-composer.json +71 -0
  815. package/manifest/components/elements-data-table.json +75 -0
  816. package/manifest/components/elements-timeline.json +77 -0
  817. package/manifest/components/elicitation-form.json +130 -0
  818. package/manifest/components/empty-state-composer.json +71 -0
  819. package/manifest/components/empty-state-greeting.json +49 -0
  820. package/manifest/components/empty-state-suggestion.json +60 -0
  821. package/manifest/components/empty-state-suggestions.json +49 -0
  822. package/manifest/components/empty-state.json +111 -0
  823. package/manifest/components/end-of-turn-summary.json +89 -0
  824. package/manifest/components/env-var-input.json +194 -0
  825. package/manifest/components/error-state.json +93 -0
  826. package/manifest/components/export-dialog.json +101 -0
  827. package/manifest/components/eyebrow.json +59 -0
  828. package/manifest/components/feedback-dialog.json +133 -0
  829. package/manifest/components/field-description.json +66 -0
  830. package/manifest/components/field-error.json +87 -0
  831. package/manifest/components/field-label.json +66 -0
  832. package/manifest/components/field.json +82 -0
  833. package/manifest/components/file-tree.json +96 -0
  834. package/manifest/components/file-upload.json +204 -0
  835. package/manifest/components/flow-background.json +50 -0
  836. package/manifest/components/flow-controls.json +50 -0
  837. package/manifest/components/flow-graph.json +86 -0
  838. package/manifest/components/folder-icon.json +46 -0
  839. package/manifest/components/footer.json +133 -0
  840. package/manifest/components/frac.json +68 -0
  841. package/manifest/components/frames.json +210 -0
  842. package/manifest/components/generation-loader.json +78 -0
  843. package/manifest/components/generative-ui.json +125 -0
  844. package/manifest/components/grid.json +132 -0
  845. package/manifest/components/group-bar.json +122 -0
  846. package/manifest/components/guardrail-notice.json +109 -0
  847. package/manifest/components/hover-card.json +189 -0
  848. package/manifest/components/icon-button.json +106 -0
  849. package/manifest/components/image-generation.json +73 -0
  850. package/manifest/components/info-tip.json +133 -0
  851. package/manifest/components/inline-citation.json +90 -0
  852. package/manifest/components/input-group.json +112 -0
  853. package/manifest/components/input.json +121 -0
  854. package/manifest/components/inspector.json +199 -0
  855. package/manifest/components/item.json +163 -0
  856. package/manifest/components/job-progress.json +116 -0
  857. package/manifest/components/kbd.json +52 -0
  858. package/manifest/components/launcher-bubble.json +130 -0
  859. package/manifest/components/ledger.json +330 -0
  860. package/manifest/components/link.json +94 -0
  861. package/manifest/components/live-region-announcer.json +95 -0
  862. package/manifest/components/log-viewer.json +172 -0
  863. package/manifest/components/map-answer.json +97 -0
  864. package/manifest/components/markdown-text.json +126 -0
  865. package/manifest/components/math-block.json +84 -0
  866. package/manifest/components/mcp-server-icon.json +46 -0
  867. package/manifest/components/mcp-server-panel.json +102 -0
  868. package/manifest/components/memory-chips.json +73 -0
  869. package/manifest/components/menubar.json +184 -0
  870. package/manifest/components/message-actions.json +125 -0
  871. package/manifest/components/message-attachments.json +71 -0
  872. package/manifest/components/message-branches.json +83 -0
  873. package/manifest/components/message-list.json +121 -0
  874. package/manifest/components/message-pair.json +107 -0
  875. package/manifest/components/message-queue.json +85 -0
  876. package/manifest/components/message-timing.json +69 -0
  877. package/manifest/components/message.json +149 -0
  878. package/manifest/components/meter.json +150 -0
  879. package/manifest/components/mobile-composer.json +163 -0
  880. package/manifest/components/model-picker.json +87 -0
  881. package/manifest/components/multi-select.json +255 -0
  882. package/manifest/components/musical-time-input.json +141 -0
  883. package/manifest/components/navigation-menu.json +269 -0
  884. package/manifest/components/node-card.json +144 -0
  885. package/manifest/components/node-handle.json +84 -0
  886. package/manifest/components/number-field.json +131 -0
  887. package/manifest/components/number-ticker.json +67 -0
  888. package/manifest/components/onboarding.json +100 -0
  889. package/manifest/components/otp-field.json +163 -0
  890. package/manifest/components/page-shell.json +129 -0
  891. package/manifest/components/pagination.json +108 -0
  892. package/manifest/components/panel-header.json +89 -0
  893. package/manifest/components/panel.json +71 -0
  894. package/manifest/components/password-input.json +171 -0
  895. package/manifest/components/permission-grant.json +115 -0
  896. package/manifest/components/permission-scopes.json +184 -0
  897. package/manifest/components/piano-keyboard.json +149 -0
  898. package/manifest/components/plussie.json +140 -0
  899. package/manifest/components/popover.json +231 -0
  900. package/manifest/components/preset-section.json +80 -0
  901. package/manifest/components/preview.json +294 -0
  902. package/manifest/components/progress.json +114 -0
  903. package/manifest/components/prompt-library.json +122 -0
  904. package/manifest/components/queue-dock.json +139 -0
  905. package/manifest/components/quota-banner.json +113 -0
  906. package/manifest/components/quote-reply.json +129 -0
  907. package/manifest/components/radio-group.json +83 -0
  908. package/manifest/components/radio.json +94 -0
  909. package/manifest/components/rating.json +188 -0
  910. package/manifest/components/read-aloud.json +139 -0
  911. package/manifest/components/reasoning-effort.json +95 -0
  912. package/manifest/components/reasoning-panel.json +135 -0
  913. package/manifest/components/recommendation-card.json +133 -0
  914. package/manifest/components/regenerate-menu.json +107 -0
  915. package/manifest/components/replay-player.json +124 -0
  916. package/manifest/components/research-report.json +87 -0
  917. package/manifest/components/resizable.json +91 -0
  918. package/manifest/components/retrieval-chunks.json +98 -0
  919. package/manifest/components/revert-dock.json +197 -0
  920. package/manifest/components/reviewable-diff.json +113 -0
  921. package/manifest/components/risk-badge.json +89 -0
  922. package/manifest/components/row.json +122 -0
  923. package/manifest/components/schedule-card.json +121 -0
  924. package/manifest/components/score-breakdown.json +108 -0
  925. package/manifest/components/scroll-anchor.json +84 -0
  926. package/manifest/components/scroll-area.json +114 -0
  927. package/manifest/components/scrollable-tabs-list.json +91 -0
  928. package/manifest/components/scrub-input.json +268 -0
  929. package/manifest/components/seam-cell.json +91 -0
  930. package/manifest/components/seam-grid.json +84 -0
  931. package/manifest/components/seam-list.json +56 -0
  932. package/manifest/components/search-input.json +195 -0
  933. package/manifest/components/section-header.json +140 -0
  934. package/manifest/components/segmented-control.json +178 -0
  935. package/manifest/components/select.json +253 -0
  936. package/manifest/components/separator.json +56 -0
  937. package/manifest/components/settings-panel.json +152 -0
  938. package/manifest/components/shape-section.json +70 -0
  939. package/manifest/components/shared-conversation.json +107 -0
  940. package/manifest/components/sheet.json +210 -0
  941. package/manifest/components/shimmer-label.json +61 -0
  942. package/manifest/components/sidebar.json +245 -0
  943. package/manifest/components/signal-edge.json +56 -0
  944. package/manifest/components/skeleton.json +46 -0
  945. package/manifest/components/skill-icon.json +46 -0
  946. package/manifest/components/slider.json +106 -0
  947. package/manifest/components/sources.json +97 -0
  948. package/manifest/components/sparkline.json +89 -0
  949. package/manifest/components/speaker-identity.json +66 -0
  950. package/manifest/components/spec-sheet.json +93 -0
  951. package/manifest/components/spectrum-visualizer.json +147 -0
  952. package/manifest/components/spinner.json +71 -0
  953. package/manifest/components/stack-icon.json +46 -0
  954. package/manifest/components/stack.json +143 -0
  955. package/manifest/components/stacks-matrix-icon.json +46 -0
  956. package/manifest/components/stat.json +111 -0
  957. package/manifest/components/status-bar.json +233 -0
  958. package/manifest/components/status-dot.json +97 -0
  959. package/manifest/components/stepper.json +107 -0
  960. package/manifest/components/stopped-run.json +97 -0
  961. package/manifest/components/streaming-text.json +82 -0
  962. package/manifest/components/sub.json +45 -0
  963. package/manifest/components/subagent-list.json +106 -0
  964. package/manifest/components/suggestions.json +106 -0
  965. package/manifest/components/sup.json +45 -0
  966. package/manifest/components/swap-label.json +86 -0
  967. package/manifest/components/switch.json +102 -0
  968. package/manifest/components/table-scroll-region.json +78 -0
  969. package/manifest/components/table.json +306 -0
  970. package/manifest/components/tabs.json +156 -0
  971. package/manifest/components/tags-input.json +255 -0
  972. package/manifest/components/tail-status.json +138 -0
  973. package/manifest/components/terminal-block.json +111 -0
  974. package/manifest/components/terminal-frame.json +146 -0
  975. package/manifest/components/textarea.json +104 -0
  976. package/manifest/components/theme-configurator.json +158 -0
  977. package/manifest/components/theme-provider.json +228 -0
  978. package/manifest/components/thinking-indicator.json +69 -0
  979. package/manifest/components/thread-list.json +87 -0
  980. package/manifest/components/thread-search.json +108 -0
  981. package/manifest/components/threshold-rail.json +223 -0
  982. package/manifest/components/time-boundary.json +68 -0
  983. package/manifest/components/time-field.json +93 -0
  984. package/manifest/components/timeline-ruler.json +178 -0
  985. package/manifest/components/timeline.json +131 -0
  986. package/manifest/components/title-bar.json +97 -0
  987. package/manifest/components/toast.json +140 -0
  988. package/manifest/components/todo-list.json +76 -0
  989. package/manifest/components/toggle-group.json +134 -0
  990. package/manifest/components/toggle.json +140 -0
  991. package/manifest/components/token-editor.json +106 -0
  992. package/manifest/components/tool-call-card.json +268 -0
  993. package/manifest/components/tool-call.json +147 -0
  994. package/manifest/components/tool-error.json +141 -0
  995. package/manifest/components/tool-group.json +97 -0
  996. package/manifest/components/tool-timeline.json +147 -0
  997. package/manifest/components/toolbar.json +192 -0
  998. package/manifest/components/tooltip.json +199 -0
  999. package/manifest/components/trace-waterfall.json +84 -0
  1000. package/manifest/components/tree-visibility-toggle.json +99 -0
  1001. package/manifest/components/tree.json +182 -0
  1002. package/manifest/components/turn-footer.json +133 -0
  1003. package/manifest/components/two-step-button.json +150 -0
  1004. package/manifest/components/typing-indicator.json +60 -0
  1005. package/manifest/components/universe-grid.json +155 -0
  1006. package/manifest/components/unread-divider.json +58 -0
  1007. package/manifest/components/usage-chart.json +162 -0
  1008. package/manifest/components/verdict-row.json +106 -0
  1009. package/manifest/components/voice-conversation.json +141 -0
  1010. package/manifest/components/web-preview.json +105 -0
  1011. package/manifest/components/web-search.json +108 -0
  1012. package/manifest/components/work-collapse.json +125 -0
  1013. package/manifest/fixtures.json +776 -0
  1014. package/manifest/manifest.json +5037 -0
  1015. package/manifest/tokens.json +288 -0
  1016. package/package.json +278 -0
@@ -0,0 +1,151 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { activateRowFromClick, activateRowFromKeyDown, dataRowVariants } from "./_data-row.js";
4
+ import * as React from "react";
5
+ import { jsx } from "react/jsx-runtime";
6
+ //#region src/instruments/data-row.tsx
7
+ /**
8
+ * The roles that carry `aria-expanded`, per ARIA 1.2's own "supported in roles"
9
+ * list, filtered to the ones a row could plausibly be given.
10
+ *
11
+ * The absent case is the one that matters: no `role` at all. A `<div>` is
12
+ * `generic`, `generic` supports only the globals, and every engine drops an
13
+ * `aria-expanded` it finds there rather than exposing a state — so emitting it
14
+ * anyway buys nothing and costs a critical axe violation.
15
+ */
16
+ const ROLES_SUPPORTING_EXPANDED = /* @__PURE__ */ new Set([
17
+ "application",
18
+ "button",
19
+ "checkbox",
20
+ "columnheader",
21
+ "combobox",
22
+ "grid",
23
+ "gridcell",
24
+ "link",
25
+ "listbox",
26
+ "menuitem",
27
+ "menuitemcheckbox",
28
+ "menuitemradio",
29
+ "row",
30
+ "rowheader",
31
+ "searchbox",
32
+ "switch",
33
+ "tab",
34
+ "table",
35
+ "textbox",
36
+ "treeitem"
37
+ ]);
38
+ /**
39
+ * The dense interactive row, as one anatomy three surfaces share.
40
+ *
41
+ * `Ledger`, a grouped `Table` and `DataTree` are three drawings of the same row
42
+ * model, and this is the model: a marker, a label, a description, tags, a
43
+ * figure, and a trailing action cluster that is only there when you are looking
44
+ * at the row. Composing them yourself — rather than passing a `columns` array —
45
+ * is what keeps the primitive domain-neutral: a corpus of skills and a rig of
46
+ * fixtures need the same six slots and completely different columns.
47
+ *
48
+ * The slots are thin: each is a `<span>` with a `data-slot`, the type and
49
+ * truncation rule for its column, and nothing else. They may be used inside a
50
+ * `DataTree` row and inside a `Table.Cell` too — `Table.Row` carries the same
51
+ * `group/data-row` name, so `DataRow.Actions` reveals in the table idiom
52
+ * without a second implementation.
53
+ *
54
+ * @example
55
+ * <DataRow.Root interactive onActivate={() => open(skill)}>
56
+ * <DataRow.Marker><StatusDot tone="ok" /></DataRow.Marker>
57
+ * <DataRow.Label>{skill.name}</DataRow.Label>
58
+ * <DataRow.Meta>{skill.installs}</DataRow.Meta>
59
+ * </DataRow.Root>
60
+ */
61
+ const DataRow = {
62
+ Root: React.forwardRef(function DataRowRoot({ className, interactive = false, selected = false, disabled = false, onActivate, disclosure, onClick, onKeyDown, role, ...elementProps }, ref) {
63
+ const expandable = role !== void 0 && ROLES_SUPPORTING_EXPANDED.has(role);
64
+ const activate = React.useCallback(() => {
65
+ if (!disabled) onActivate?.();
66
+ }, [disabled, onActivate]);
67
+ const handleClick = React.useCallback((event) => {
68
+ onClick?.(event);
69
+ if (interactive) activateRowFromClick(event, activate);
70
+ }, [
71
+ activate,
72
+ interactive,
73
+ onClick
74
+ ]);
75
+ const handleKeyDown = React.useCallback((event) => {
76
+ onKeyDown?.(event);
77
+ if (interactive) activateRowFromKeyDown(event, activate);
78
+ }, [
79
+ activate,
80
+ interactive,
81
+ onKeyDown
82
+ ]);
83
+ return /* @__PURE__ */ jsx("div", {
84
+ ref,
85
+ ...elementProps,
86
+ role,
87
+ "data-slot": "data-row",
88
+ "data-selected": selected ? "" : void 0,
89
+ "data-disabled": disabled ? "" : void 0,
90
+ "data-expanded": disclosure?.expanded === true ? "" : void 0,
91
+ tabIndex: interactive && !disabled ? 0 : void 0,
92
+ "aria-expanded": disclosure === void 0 || !expandable ? void 0 : disclosure.expanded,
93
+ "aria-controls": disclosure?.controls,
94
+ "aria-disabled": disabled ? true : void 0,
95
+ onClick: handleClick,
96
+ onKeyDown: handleKeyDown,
97
+ className: cn(dataRowVariants({ interactive }), className)
98
+ });
99
+ }),
100
+ Marker: React.forwardRef(function DataRowMarker({ className, ...elementProps }, ref) {
101
+ return /* @__PURE__ */ jsx("span", {
102
+ ref,
103
+ "data-slot": "data-row-marker",
104
+ className: cn("flex shrink-0 items-center", className),
105
+ ...elementProps
106
+ });
107
+ }),
108
+ Label: React.forwardRef(function DataRowLabel({ className, ...elementProps }, ref) {
109
+ return /* @__PURE__ */ jsx("span", {
110
+ ref,
111
+ "data-slot": "data-row-label",
112
+ className: cn("min-w-0 truncate text-fg", className),
113
+ ...elementProps
114
+ });
115
+ }),
116
+ Description: React.forwardRef(function DataRowDescription({ className, ...elementProps }, ref) {
117
+ return /* @__PURE__ */ jsx("span", {
118
+ ref,
119
+ "data-slot": "data-row-description",
120
+ className: cn("min-w-0 truncate text-(length:--cue-text-label) text-fg-muted", className),
121
+ ...elementProps
122
+ });
123
+ }),
124
+ Tags: React.forwardRef(function DataRowTags({ className, ...elementProps }, ref) {
125
+ return /* @__PURE__ */ jsx("span", {
126
+ ref,
127
+ "data-slot": "data-row-tags",
128
+ className: cn("flex min-w-0 items-center gap-(--cue-space-1)", className),
129
+ ...elementProps
130
+ });
131
+ }),
132
+ Meta: React.forwardRef(function DataRowMeta({ className, ...elementProps }, ref) {
133
+ return /* @__PURE__ */ jsx("span", {
134
+ ref,
135
+ "data-slot": "data-row-meta",
136
+ className: cn("shrink-0 tabular-nums text-fg-subtle", className),
137
+ ...elementProps
138
+ });
139
+ }),
140
+ Actions: React.forwardRef(function DataRowActions({ className, ...elementProps }, ref) {
141
+ return /* @__PURE__ */ jsx("span", {
142
+ ref,
143
+ "data-slot": "data-row-actions",
144
+ "data-stop": "",
145
+ className: cn("invisible inline-flex shrink-0 items-center gap-(--cue-space-1) [&>*]:shrink-0", "group-hover/data-row:visible group-focus-within/data-row:visible group-data-[selected]/data-row:visible", "[@media(hover:none)]:visible", className),
146
+ ...elementProps
147
+ });
148
+ })
149
+ };
150
+ //#endregion
151
+ export { DataRow };
@@ -0,0 +1,168 @@
1
+ import * as React from "react";
2
+ import { ColumnHelper, ReactTable, RowData, TableOptions, flexRender } from "@tanstack/react-table";
3
+ //#region src/instruments/data-table.d.ts
4
+ /**
5
+ * The console table recipe. Not a component — deliberately.
6
+ *
7
+ * A `<DataTable columns={…} data={…} />` monolith has to own the markup of
8
+ * every cell, every header and every empty state, and the first column that
9
+ * needs a `Chip` or a `TwoStepButton` in it starts a prop-drilling arms race
10
+ * that ends with a component nobody can read. TanStack v9's whole point is that
11
+ * the markup stays yours and only the *logic* is shared, so what this module
12
+ * ships is the wiring:
13
+ *
14
+ * - {@link cueTableFeatures} — one opt-in feature set, so v9 can tree-shake
15
+ * everything the console does not use (grouping, faceting, pinning,
16
+ * virtualised column sizing).
17
+ * - {@link useCueTable} — that feature set, pre-bound, with sensible console
18
+ * defaults.
19
+ * - {@link createCueColumnHelper} — the column helper with the features
20
+ * already applied, so column defs infer.
21
+ * - {@link DataTableToolbar} / {@link DataTablePagination} — the two pieces of
22
+ * chrome every table needs and nobody enjoys writing twice.
23
+ *
24
+ * The rows render through the Phase 1 `Table`. There is a fully worked example
25
+ * in `test/instruments/data-table.test.tsx`.
26
+ *
27
+ * Ships from `@cueplusplus/ui/instruments/data-table`: `@tanstack/react-table`
28
+ * is an optional peer, and the core bundle must not require it.
29
+ */
30
+ /**
31
+ * Sorting, column filtering, global filtering and pagination — and nothing
32
+ * else.
33
+ *
34
+ * Named functions are registered individually rather than by spreading the
35
+ * built-in registries, because spreading puts every sort and filter
36
+ * implementation in the bundle whether or not a column names one.
37
+ */
38
+ declare const cueTableFeatures: {
39
+ columnFilteringFeature: import("@tanstack/react-table").TableFeature;
40
+ globalFilteringFeature: import("@tanstack/react-table").TableFeature;
41
+ rowPaginationFeature: import("@tanstack/react-table").TableFeature;
42
+ rowSortingFeature: import("@tanstack/react-table").TableFeature;
43
+ filteredRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
44
+ paginatedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
45
+ sortedRowModel: (table: import("@tanstack/react-table").Table<any, any>) => () => import("@tanstack/react-table").RowModel<any, any>;
46
+ filterFns: {
47
+ includesString: import("@tanstack/react-table").CreatedFilterFn<any, any>;
48
+ inNumberRange: import("@tanstack/react-table").CreatedFilterFn<any, any>;
49
+ };
50
+ sortFns: {
51
+ alphanumeric: import("@tanstack/react-table").CreatedSortFn<any, any>;
52
+ basic: import("@tanstack/react-table").CreatedSortFn<any, any>;
53
+ datetime: import("@tanstack/react-table").CreatedSortFn<any, any>;
54
+ text: import("@tanstack/react-table").CreatedSortFn<any, any>;
55
+ };
56
+ };
57
+ /** The feature set every `useCueTable` instance carries. */
58
+ type CueTableFeatures = typeof cueTableFeatures;
59
+ /** A table instance produced by {@link useCueTable}. */
60
+ type CueTable<TData extends RowData> = ReactTable<CueTableFeatures, TData>;
61
+ /** Options for {@link useCueTable} — TanStack's, minus the features it supplies. */
62
+ interface UseCueTableOptions<TData extends RowData> extends Omit<TableOptions<CueTableFeatures, TData>, "features"> {}
63
+ /**
64
+ * A TanStack v9 table wired for the console.
65
+ *
66
+ * Adds one default on top of the feature set: `globalFilterFn: "includesString"`,
67
+ * which is what a single search box over a console table always means. Override
68
+ * it, or any other option, by passing it.
69
+ *
70
+ * @param options - Everything `useTable` takes except `features`.
71
+ * @returns The table instance, ready to render through `Table`.
72
+ * @example
73
+ * const table = useCueTable({ data, columns, state: { globalFilter }, onGlobalFilterChange });
74
+ */
75
+ declare function useCueTable<TData extends RowData>(options: UseCueTableOptions<TData>): CueTable<TData>;
76
+ /**
77
+ * A column helper with {@link cueTableFeatures} already bound.
78
+ *
79
+ * @returns TanStack's `accessor` / `display` / `group` / `columns` builders.
80
+ * @example
81
+ * const helper = createCueColumnHelper<Fixture>();
82
+ * const columns = [helper.accessor("name", { header: "Fixture" })];
83
+ */
84
+ declare function createCueColumnHelper<TData extends RowData>(): ColumnHelper<CueTableFeatures, TData>;
85
+ interface DataTableToolbarProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onChange"> {
86
+ /** The current query. Pair it with `onValueChange` and the table's global filter. */
87
+ value?: string;
88
+ /** Fired on every keystroke in the search box. */
89
+ onValueChange?: (value: string) => void;
90
+ /** Placeholder for the search box. Defaults to `"Filter…"`. */
91
+ placeholder?: string;
92
+ /** Accessible name for the search box. Defaults to `"Filter rows"`. */
93
+ searchLabel?: string;
94
+ /** Rows currently matching. Shown as `count/total` when both are given. */
95
+ count?: number;
96
+ /** Rows before filtering. */
97
+ total?: number;
98
+ /** Trailing controls — a column picker, an export button. */
99
+ children?: React.ReactNode;
100
+ }
101
+ /**
102
+ * The strip above a table: one search box, a match count, your controls.
103
+ *
104
+ * The count is the part worth having as a component. "12/340" next to a filter
105
+ * box is the difference between "the table is empty" and "the filter is too
106
+ * tight", and it is the first thing left out of a hand-rolled toolbar.
107
+ *
108
+ * @example
109
+ * <DataTableToolbar value={q} onValueChange={setQ} count={table.getRowCount()} total={data.length}>
110
+ * <Button variant="ghost" size="sm">Export</Button>
111
+ * </DataTableToolbar>
112
+ */
113
+ declare const DataTableToolbar: React.ForwardRefExoticComponent<DataTableToolbarProps & React.RefAttributes<HTMLDivElement>>;
114
+ /**
115
+ * The slice of a table instance the pager reads.
116
+ *
117
+ * Structural rather than generic so `DataTablePagination` never has to be
118
+ * parameterised by `TData` — and so a server-paginated table that is not a
119
+ * TanStack instance at all can still use the control by supplying these seven
120
+ * members.
121
+ */
122
+ interface DataTablePager {
123
+ getPageCount: () => number;
124
+ getRowCount: () => number;
125
+ getCanPreviousPage: () => boolean;
126
+ getCanNextPage: () => boolean;
127
+ firstPage: () => void;
128
+ previousPage: () => void;
129
+ nextPage: () => void;
130
+ lastPage: () => void;
131
+ readonly state: {
132
+ readonly pagination?: {
133
+ readonly pageIndex: number;
134
+ readonly pageSize: number;
135
+ };
136
+ };
137
+ }
138
+ /** Names for the four pager buttons, for translation. */
139
+ interface DataTablePaginationLabels {
140
+ first: string;
141
+ previous: string;
142
+ next: string;
143
+ last: string;
144
+ }
145
+ interface DataTablePaginationProps extends Omit<React.ComponentPropsWithoutRef<"div">, "children"> {
146
+ /** The table instance from {@link useCueTable}, or anything with the same seven members. */
147
+ table: DataTablePager;
148
+ /** Accessible names for the four buttons. */
149
+ labels?: Partial<DataTablePaginationLabels>;
150
+ /** Render the position readout. Defaults to `"2 / 7"`. */
151
+ formatPosition?: (page: number, pages: number) => string;
152
+ /** Render the row count. Defaults to `"340 rows"`. */
153
+ formatRowCount?: (rows: number) => string;
154
+ }
155
+ /**
156
+ * The pager: four buttons, the position, and the row count.
157
+ *
158
+ * First and last are present because a console table is often sorted to put the
159
+ * interesting row at one end, and stepping there one page at a time is not a
160
+ * navigation strategy. Every button is an `IconButton` with a real accessible
161
+ * name — an arrow glyph alone announces as nothing.
162
+ *
163
+ * @example
164
+ * <DataTablePagination table={table} />
165
+ */
166
+ declare const DataTablePagination: React.ForwardRefExoticComponent<DataTablePaginationProps & React.RefAttributes<HTMLDivElement>>;
167
+ //#endregion
168
+ export { CueTable, CueTableFeatures, DataTablePager, DataTablePagination, DataTablePaginationLabels, DataTablePaginationProps, DataTableToolbar, DataTableToolbarProps, UseCueTableOptions, createCueColumnHelper, cueTableFeatures, flexRender, useCueTable };
@@ -0,0 +1,212 @@
1
+ "use client";
2
+ import { cn } from "../lib/cn.js";
3
+ import { IconButton } from "../primitives/icon-button.js";
4
+ import { SearchInput } from "../forms/search-input.js";
5
+ import { ChevronLeftGlyph, ChevronRightGlyph, ChevronsLeftGlyph, ChevronsRightGlyph } from "./_glyphs.js";
6
+ import * as React from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { columnFilteringFeature, createColumnHelper, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, filterFn_inNumberRange, filterFn_includesString, flexRender, globalFilteringFeature, rowPaginationFeature, rowSortingFeature, sortFn_alphanumeric, sortFn_basic, sortFn_datetime, sortFn_text, tableFeatures, useTable } from "@tanstack/react-table";
9
+ //#region src/instruments/data-table.tsx
10
+ /**
11
+ * The console table recipe. Not a component — deliberately.
12
+ *
13
+ * A `<DataTable columns={…} data={…} />` monolith has to own the markup of
14
+ * every cell, every header and every empty state, and the first column that
15
+ * needs a `Chip` or a `TwoStepButton` in it starts a prop-drilling arms race
16
+ * that ends with a component nobody can read. TanStack v9's whole point is that
17
+ * the markup stays yours and only the *logic* is shared, so what this module
18
+ * ships is the wiring:
19
+ *
20
+ * - {@link cueTableFeatures} — one opt-in feature set, so v9 can tree-shake
21
+ * everything the console does not use (grouping, faceting, pinning,
22
+ * virtualised column sizing).
23
+ * - {@link useCueTable} — that feature set, pre-bound, with sensible console
24
+ * defaults.
25
+ * - {@link createCueColumnHelper} — the column helper with the features
26
+ * already applied, so column defs infer.
27
+ * - {@link DataTableToolbar} / {@link DataTablePagination} — the two pieces of
28
+ * chrome every table needs and nobody enjoys writing twice.
29
+ *
30
+ * The rows render through the Phase 1 `Table`. There is a fully worked example
31
+ * in `test/instruments/data-table.test.tsx`.
32
+ *
33
+ * Ships from `@cueplusplus/ui/instruments/data-table`: `@tanstack/react-table`
34
+ * is an optional peer, and the core bundle must not require it.
35
+ */
36
+ /**
37
+ * Sorting, column filtering, global filtering and pagination — and nothing
38
+ * else.
39
+ *
40
+ * Named functions are registered individually rather than by spreading the
41
+ * built-in registries, because spreading puts every sort and filter
42
+ * implementation in the bundle whether or not a column names one.
43
+ */
44
+ const cueTableFeatures = tableFeatures({
45
+ columnFilteringFeature,
46
+ globalFilteringFeature,
47
+ rowPaginationFeature,
48
+ rowSortingFeature,
49
+ filteredRowModel: createFilteredRowModel(),
50
+ paginatedRowModel: createPaginatedRowModel(),
51
+ sortedRowModel: createSortedRowModel(),
52
+ filterFns: {
53
+ includesString: filterFn_includesString,
54
+ inNumberRange: filterFn_inNumberRange
55
+ },
56
+ sortFns: {
57
+ alphanumeric: sortFn_alphanumeric,
58
+ basic: sortFn_basic,
59
+ datetime: sortFn_datetime,
60
+ text: sortFn_text
61
+ }
62
+ });
63
+ /**
64
+ * A TanStack v9 table wired for the console.
65
+ *
66
+ * Adds one default on top of the feature set: `globalFilterFn: "includesString"`,
67
+ * which is what a single search box over a console table always means. Override
68
+ * it, or any other option, by passing it.
69
+ *
70
+ * @param options - Everything `useTable` takes except `features`.
71
+ * @returns The table instance, ready to render through `Table`.
72
+ * @example
73
+ * const table = useCueTable({ data, columns, state: { globalFilter }, onGlobalFilterChange });
74
+ */
75
+ function useCueTable(options) {
76
+ return useTable({
77
+ features: cueTableFeatures,
78
+ globalFilterFn: "includesString",
79
+ ...options
80
+ });
81
+ }
82
+ /**
83
+ * A column helper with {@link cueTableFeatures} already bound.
84
+ *
85
+ * @returns TanStack's `accessor` / `display` / `group` / `columns` builders.
86
+ * @example
87
+ * const helper = createCueColumnHelper<Fixture>();
88
+ * const columns = [helper.accessor("name", { header: "Fixture" })];
89
+ */
90
+ function createCueColumnHelper() {
91
+ return createColumnHelper();
92
+ }
93
+ /**
94
+ * The strip above a table: one search box, a match count, your controls.
95
+ *
96
+ * The count is the part worth having as a component. "12/340" next to a filter
97
+ * box is the difference between "the table is empty" and "the filter is too
98
+ * tight", and it is the first thing left out of a hand-rolled toolbar.
99
+ *
100
+ * @example
101
+ * <DataTableToolbar value={q} onValueChange={setQ} count={table.getRowCount()} total={data.length}>
102
+ * <Button variant="ghost" size="sm">Export</Button>
103
+ * </DataTableToolbar>
104
+ */
105
+ const DataTableToolbar = React.forwardRef(function DataTableToolbar({ className, value, onValueChange, placeholder = "Filter…", searchLabel = "Filter rows", count, total, children, ...elementProps }, ref) {
106
+ return /* @__PURE__ */ jsxs("div", {
107
+ ref,
108
+ "data-slot": "data-table-toolbar",
109
+ className: cn("flex min-w-0 items-center gap-(--cue-space-3) py-(--cue-space-3)", className),
110
+ ...elementProps,
111
+ children: [
112
+ /* @__PURE__ */ jsx(SearchInput, {
113
+ size: "sm",
114
+ "aria-label": searchLabel,
115
+ placeholder,
116
+ value,
117
+ onValueChange,
118
+ className: "max-w-[16rem] min-w-0 flex-1"
119
+ }),
120
+ count === void 0 || total === void 0 ? null : /* @__PURE__ */ jsx("span", {
121
+ "data-slot": "data-table-count",
122
+ className: "shrink-0 font-mono text-(length:--cue-text-label) tabular-nums text-fg-subtle",
123
+ children: `${count}/${total}`
124
+ }),
125
+ children === void 0 ? null : /* @__PURE__ */ jsx("span", {
126
+ className: "ml-auto flex shrink-0 items-center gap-(--cue-space-2)",
127
+ children
128
+ })
129
+ ]
130
+ });
131
+ });
132
+ const DEFAULT_PAGER_LABELS = {
133
+ first: "First page",
134
+ previous: "Previous page",
135
+ next: "Next page",
136
+ last: "Last page"
137
+ };
138
+ /**
139
+ * The pager: four buttons, the position, and the row count.
140
+ *
141
+ * First and last are present because a console table is often sorted to put the
142
+ * interesting row at one end, and stepping there one page at a time is not a
143
+ * navigation strategy. Every button is an `IconButton` with a real accessible
144
+ * name — an arrow glyph alone announces as nothing.
145
+ *
146
+ * @example
147
+ * <DataTablePagination table={table} />
148
+ */
149
+ const DataTablePagination = React.forwardRef(function DataTablePagination({ className, table, labels, formatPosition = (page, pages) => `${page} / ${pages}`, formatRowCount = (rows) => `${rows} row${rows === 1 ? "" : "s"}`, ...elementProps }, ref) {
150
+ const names = {
151
+ ...DEFAULT_PAGER_LABELS,
152
+ ...labels
153
+ };
154
+ const pages = Math.max(1, table.getPageCount());
155
+ const page = (table.state.pagination?.pageIndex ?? 0) + 1;
156
+ const canPrevious = table.getCanPreviousPage();
157
+ const canNext = table.getCanNextPage();
158
+ return /* @__PURE__ */ jsxs("div", {
159
+ ref,
160
+ "data-slot": "data-table-pagination",
161
+ className: cn("flex min-w-0 items-center gap-(--cue-space-3) py-(--cue-space-3) font-mono text-(length:--cue-text-label) text-fg-subtle", className),
162
+ ...elementProps,
163
+ children: [/* @__PURE__ */ jsx("span", {
164
+ "data-slot": "data-table-rows",
165
+ className: "tabular-nums",
166
+ children: formatRowCount(table.getRowCount())
167
+ }), /* @__PURE__ */ jsxs("span", {
168
+ className: "ml-auto flex items-center gap-(--cue-space-1)",
169
+ children: [
170
+ /* @__PURE__ */ jsx(IconButton, {
171
+ size: "sm",
172
+ variant: "ghost",
173
+ "aria-label": names.first,
174
+ icon: ChevronsLeftGlyph,
175
+ disabled: !canPrevious,
176
+ onClick: () => table.firstPage()
177
+ }),
178
+ /* @__PURE__ */ jsx(IconButton, {
179
+ size: "sm",
180
+ variant: "ghost",
181
+ "aria-label": names.previous,
182
+ icon: ChevronLeftGlyph,
183
+ disabled: !canPrevious,
184
+ onClick: () => table.previousPage()
185
+ }),
186
+ /* @__PURE__ */ jsx("span", {
187
+ "data-slot": "data-table-position",
188
+ className: "px-(--cue-space-3) tabular-nums text-fg",
189
+ children: formatPosition(page, pages)
190
+ }),
191
+ /* @__PURE__ */ jsx(IconButton, {
192
+ size: "sm",
193
+ variant: "ghost",
194
+ "aria-label": names.next,
195
+ icon: ChevronRightGlyph,
196
+ disabled: !canNext,
197
+ onClick: () => table.nextPage()
198
+ }),
199
+ /* @__PURE__ */ jsx(IconButton, {
200
+ size: "sm",
201
+ variant: "ghost",
202
+ "aria-label": names.last,
203
+ icon: ChevronsRightGlyph,
204
+ disabled: !canNext,
205
+ onClick: () => table.lastPage()
206
+ })
207
+ ]
208
+ })]
209
+ });
210
+ });
211
+ //#endregion
212
+ export { DataTablePagination, DataTableToolbar, createCueColumnHelper, cueTableFeatures, flexRender, useCueTable };
@@ -0,0 +1,126 @@
1
+ import * as React from "react";
2
+ //#region src/instruments/data-tree.d.ts
3
+ /** What a row knows about itself when its content is a function. */
4
+ interface DataTreeRowState {
5
+ /** Depth from the roots; `0` for a root. */
6
+ level: number;
7
+ /** Whether the node declares children at all. */
8
+ hasChildren: boolean;
9
+ /** Whether those children are currently shown. */
10
+ expanded: boolean;
11
+ /** Whether this row is the selected one. */
12
+ selected: boolean;
13
+ }
14
+ /** One node of the tree: an identity, a row's worth of content, and children. */
15
+ interface DataTreeItem {
16
+ /** Stable identity: what selection, expansion and focus are keyed on. */
17
+ id: string;
18
+ /**
19
+ * The row's content — normally `DataRow` slots, in the same order and with
20
+ * the same tracks as the other idioms drawing this dataset.
21
+ *
22
+ * A function receives the row's own state, for the cases where the content
23
+ * differs by it: a count that only shows while a node is folded, a different
24
+ * marker for an expanded parent.
25
+ */
26
+ row: React.ReactNode | ((state: DataTreeRowState) => React.ReactNode);
27
+ /**
28
+ * Nested nodes. An empty array still makes the row a parent — an empty folder
29
+ * is a folder, and `aria-expanded` on it is the truth.
30
+ */
31
+ children?: readonly DataTreeItem[];
32
+ /** Grey the row out; it stays reachable by keyboard but cannot be selected. */
33
+ disabled?: boolean;
34
+ }
35
+ interface DataTreeProps extends Omit<React.ComponentPropsWithoutRef<"div">, "onSelect"> {
36
+ /** The roots, in display order. */
37
+ items: readonly DataTreeItem[];
38
+ /** Expanded ids when controlled. Pass with `onExpandedChange`. */
39
+ expanded?: readonly string[];
40
+ /** Initially expanded ids when uncontrolled. */
41
+ defaultExpanded?: readonly string[];
42
+ /** Called with the whole next expanded set whenever a row is folded or unfolded. */
43
+ onExpandedChange?: (expanded: string[]) => void;
44
+ /** Selected id when controlled. Pass with `onSelect`. */
45
+ selected?: string | null;
46
+ /** Initially selected id when uncontrolled. */
47
+ defaultSelected?: string | null;
48
+ /** Called with the id of the row the user selected. */
49
+ onSelect?: (id: string) => void;
50
+ /**
51
+ * Draw the depth guides. Defaults to `true`.
52
+ *
53
+ * Roots never draw one — there is no ancestor to draw — so a flat tree draws
54
+ * none at all whatever this is set to.
55
+ */
56
+ guides?: boolean;
57
+ /** Accessible name for the tree. Required in practice — name what it lists. */
58
+ "aria-label"?: string;
59
+ }
60
+ /**
61
+ * A hierarchy of multi-column rows: the tree idiom over the `DataRow` anatomy.
62
+ *
63
+ * ## The ARIA pattern, chosen before the component was written
64
+ *
65
+ * `role="treegrid"` is **rejected** for this foundation. It is the semantically
66
+ * exact answer — tabular *and* hierarchical — and it is the one with the worst
67
+ * real-world assistive-technology record: Adrian Roselli's survey of expando
68
+ * tables calls its support poor and notes that the APG's own worked example
69
+ * carries unresolved issues; fancytree's maintainer describes treegrid support
70
+ * as unproven ground; MUI X shipped hierarchical rows with no `aria-level` /
71
+ * `aria-expanded` / `aria-setsize` at all and retrofitted them later. Treegrid
72
+ * earns its cost when cells are individually interactive or editable, because
73
+ * then a reader genuinely needs two-dimensional cell navigation. This surface is
74
+ * read-and-navigate: you move down rows, fold a branch, and open the thing a row
75
+ * names.
76
+ *
77
+ * So the pattern is `role="tree"` with `role="treeitem"` rows — VS Code's
78
+ * choice and Carbon's, and the best-supported composite pattern in ARIA:
79
+ *
80
+ * - A **flat DOM** with `aria-level` / `aria-posinset` / `aria-setsize` per row
81
+ * rather than nested `role="group"` wrappers.
82
+ * - **Roving tabindex**: the tree is one Tab stop and the arrows move inside it.
83
+ * - The **APG tree keyboard map**: Up/Down between visible rows, Home/End to the
84
+ * ends, Right to unfold then to descend, Left to fold then to ascend,
85
+ * Enter/Space to select.
86
+ * - Expansion lives on the **row**, as `aria-expanded` on the `treeitem` — that
87
+ * is what tree semantics mean by a parent, and it is why the chevron here is
88
+ * `role="presentation"` rather than a button. (The other half of this trade
89
+ * is `Table.GroupRow`, where the table's semantics own the grouping and a real
90
+ * `<button aria-expanded>` owns the disclosure. Two patterns, each internally
91
+ * consistent; what would be wrong is half of each.)
92
+ *
93
+ * **The documented trade**: columns are not independently navigable. A row's
94
+ * multi-column content lives *inside* the treeitem, so a screen-reader user
95
+ * hears the row as one string rather than moving cell to cell through it. For a
96
+ * dense browse-and-open surface that is the better bargain — `tree` works today
97
+ * on every screen reader, `treegrid` does not — but a surface whose cells are
98
+ * genuinely editable has outgrown this component and wants a real treegrid from
99
+ * a library that maintains one.
100
+ *
101
+ * ## Everything else
102
+ *
103
+ * Rows are the `DataRow` chassis: same padding, same hairline, same hover wash,
104
+ * same inset focus ring, same `group/data-row`, so `DataRow.Actions` reveals in
105
+ * a tree exactly as it does in a ledger. The row element itself is the
106
+ * treeitem — one element owns focus, expansion, selection and the click reading
107
+ * — and the caller's `DataRow.*` slots are its content.
108
+ *
109
+ * A tree whose items declare no children anywhere is a flat list: no chevrons,
110
+ * no spacer column where a chevron would be, no guides, and `aria-expanded` on
111
+ * nothing. A leaf row that carried `aria-expanded="false"` would tell a screen
112
+ * reader it has children it does not have.
113
+ *
114
+ * @example
115
+ * <DataTree
116
+ * aria-label="Patch"
117
+ * items={nodes}
118
+ * defaultExpanded={["inputs"]}
119
+ * selected={selected}
120
+ * onSelect={setSelected}
121
+ * className="[--cue-data-row-cols:1fr_8rem_auto]"
122
+ * />
123
+ */
124
+ declare const DataTree: React.ForwardRefExoticComponent<DataTreeProps & React.RefAttributes<HTMLDivElement>>;
125
+ //#endregion
126
+ export { DataTree, DataTreeItem, DataTreeProps, DataTreeRowState };