basalt-ui 1.41.0 → 2.0.1

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 (915) hide show
  1. package/AGENTS.md +46 -43
  2. package/CHANGELOG.md +542 -518
  3. package/MIGRATING.md +964 -37
  4. package/README.md +171 -366
  5. package/agent/rules/basalt-batteries.md +19 -74
  6. package/agent/rules/basalt-charts.md +21 -95
  7. package/agent/rules/basalt-controls.md +23 -131
  8. package/agent/rules/basalt-mantine.md +26 -99
  9. package/agent/rules/basalt-state.md +21 -103
  10. package/agent/rules/basalt-tokens.md +33 -114
  11. package/agent/skills/basalt-app/SKILL.md +229 -72
  12. package/agent/skills/basalt-charts/SKILL.md +23 -57
  13. package/agent/skills/basalt-design/SKILL.md +12 -70
  14. package/agent/templates/AGENTS-block.md.tpl +16 -26
  15. package/agent/templates/DESIGN.md.tpl +1 -1
  16. package/agent/templates/__root.tpl +9 -16
  17. package/agent/templates/main.tpl +21 -0
  18. package/agent/templates/nav.tpl +18 -0
  19. package/configs/oxlint-basalt.json +4 -10
  20. package/configs/oxlint-plugin.js +465 -844
  21. package/configs/oxlint-plugin.test.ts +661 -709
  22. package/configs/oxlint.json +10 -2
  23. package/dist/agent/ai-sdk-transport.d.ts +19 -7
  24. package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
  25. package/dist/agent/ai-sdk-transport.js +10 -7
  26. package/dist/{agent-chat → agent/chat}/composer.d.ts +16 -16
  27. package/dist/agent/chat/composer.d.ts.map +1 -0
  28. package/dist/{agent-chat → agent/chat}/composer.js +10 -9
  29. package/dist/{agent-chat → agent/chat}/message-affordances.d.ts +7 -6
  30. package/dist/agent/chat/message-affordances.d.ts.map +1 -0
  31. package/dist/agent/chat/relative-time.d.ts.map +1 -0
  32. package/dist/{agent-chat → agent/chat}/thread-feed-row.d.ts +18 -16
  33. package/dist/agent/chat/thread-feed-row.d.ts.map +1 -0
  34. package/dist/{agent-chat → agent/chat}/thread-feed-row.js +12 -11
  35. package/dist/{agent-chat → agent/chat}/thread-feed.d.ts +8 -8
  36. package/dist/agent/chat/thread-feed.d.ts.map +1 -0
  37. package/dist/{agent-chat → agent/chat}/thread-feed.js +12 -10
  38. package/dist/{agent-chat → agent/chat}/thread-message.d.ts +12 -9
  39. package/dist/agent/chat/thread-message.d.ts.map +1 -0
  40. package/dist/{agent-chat → agent/chat}/thread-message.js +15 -13
  41. package/dist/{agent-chat → agent/chat}/thread-outcome-card.d.ts +2 -2
  42. package/dist/agent/chat/thread-outcome-card.d.ts.map +1 -0
  43. package/dist/{agent-chat → agent/chat}/thread-outcome-card.js +3 -3
  44. package/dist/{agent-chat → agent/chat}/tool-chip.d.ts +5 -5
  45. package/dist/agent/chat/tool-chip.d.ts.map +1 -0
  46. package/dist/{agent-chat → agent/chat}/tool-chip.js +4 -4
  47. package/dist/agent/chat/use-keyboard-inset.d.ts.map +1 -0
  48. package/dist/{agent-chat → agent/chat}/use-keyboard-inset.js +1 -1
  49. package/dist/{agent-chat → agent/chat}/virtualize.d.ts +7 -7
  50. package/dist/agent/chat/virtualize.d.ts.map +1 -0
  51. package/dist/agent/error.d.ts +31 -0
  52. package/dist/agent/error.d.ts.map +1 -0
  53. package/dist/agent/error.js +18 -0
  54. package/dist/agent/history.d.ts +2 -36
  55. package/dist/agent/history.d.ts.map +1 -1
  56. package/dist/agent/history.js +0 -32
  57. package/dist/agent/id.d.ts +4 -5
  58. package/dist/agent/id.d.ts.map +1 -1
  59. package/dist/agent/index.d.ts +19 -52
  60. package/dist/agent/index.d.ts.map +1 -1
  61. package/dist/agent/index.js +10 -32
  62. package/dist/agent/outcome.d.ts +3 -14
  63. package/dist/agent/outcome.d.ts.map +1 -1
  64. package/dist/agent/outcome.js +0 -30
  65. package/dist/agent/part-list.d.ts +3 -3
  66. package/dist/agent/part-list.d.ts.map +1 -1
  67. package/dist/agent/parts.d.ts +23 -24
  68. package/dist/agent/parts.d.ts.map +1 -1
  69. package/dist/agent/run-committer.d.ts +23 -0
  70. package/dist/agent/run-committer.d.ts.map +1 -0
  71. package/dist/agent/run-committer.js +41 -0
  72. package/dist/agent/run-records.d.ts +77 -0
  73. package/dist/agent/run-records.d.ts.map +1 -0
  74. package/dist/agent/run-records.js +69 -0
  75. package/dist/agent/thread.d.ts +23 -47
  76. package/dist/agent/thread.d.ts.map +1 -1
  77. package/dist/agent/thread.js +3 -134
  78. package/dist/agent/transport.d.ts +6 -69
  79. package/dist/agent/transport.d.ts.map +1 -1
  80. package/dist/agent/transport.js +0 -18
  81. package/dist/agent/use-agent-thread-runs.d.ts +63 -26
  82. package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
  83. package/dist/agent/use-agent-thread-runs.js +202 -66
  84. package/dist/charts/BandStrip.d.ts +46 -0
  85. package/dist/charts/BandStrip.d.ts.map +1 -0
  86. package/dist/charts/BandStrip.js +151 -0
  87. package/dist/charts/Bars.d.ts +19 -0
  88. package/dist/charts/Bars.d.ts.map +1 -0
  89. package/dist/charts/Bars.js +77 -0
  90. package/dist/charts/CartesianChart.d.ts +57 -0
  91. package/dist/charts/CartesianChart.d.ts.map +1 -0
  92. package/dist/charts/CartesianChart.js +121 -0
  93. package/dist/charts/ChartCard.d.ts +34 -0
  94. package/dist/charts/ChartCard.d.ts.map +1 -0
  95. package/dist/charts/ChartCard.js +115 -0
  96. package/dist/charts/Donut.d.ts +25 -0
  97. package/dist/charts/Donut.d.ts.map +1 -0
  98. package/dist/charts/Donut.js +191 -0
  99. package/dist/charts/DualPanel.d.ts +47 -0
  100. package/dist/charts/DualPanel.d.ts.map +1 -0
  101. package/dist/charts/DualPanel.js +214 -0
  102. package/dist/charts/Heatmap.d.ts +41 -0
  103. package/dist/charts/Heatmap.d.ts.map +1 -0
  104. package/dist/charts/Heatmap.js +216 -0
  105. package/dist/charts/Lines.d.ts +11 -0
  106. package/dist/charts/Lines.d.ts.map +1 -0
  107. package/dist/charts/Lines.js +114 -0
  108. package/dist/charts/MirroredBars.d.ts +44 -0
  109. package/dist/charts/MirroredBars.d.ts.map +1 -0
  110. package/dist/charts/MirroredBars.js +190 -0
  111. package/dist/charts/Sparkline.d.ts +22 -0
  112. package/dist/charts/Sparkline.d.ts.map +1 -0
  113. package/dist/charts/Sparkline.js +129 -0
  114. package/dist/charts/StackedArea.d.ts +15 -0
  115. package/dist/charts/StackedArea.d.ts.map +1 -0
  116. package/dist/charts/StackedArea.js +46 -0
  117. package/dist/charts/box.d.ts +38 -0
  118. package/dist/charts/box.d.ts.map +1 -0
  119. package/dist/charts/box.js +72 -0
  120. package/dist/charts/card-context.d.ts +3 -0
  121. package/dist/charts/card-context.d.ts.map +1 -0
  122. package/dist/charts/card-context.js +7 -0
  123. package/dist/charts/chart-box.module.css +64 -0
  124. package/{src/content/article-card.module.css.d.ts → dist/charts/chart-box.module.css.d.ts} +5 -9
  125. package/dist/charts/chart-card.module.css +25 -0
  126. package/dist/{dashboard/widget-grid.module.css.d.ts → charts/chart-card.module.css.d.ts} +1 -3
  127. package/dist/charts/chart-legend.module.css +38 -0
  128. package/{src/dashboard/widget-grid.module.css.d.ts → dist/charts/chart-legend.module.css.d.ts} +3 -3
  129. package/dist/charts/compile.d.ts +62 -0
  130. package/dist/charts/compile.d.ts.map +1 -0
  131. package/dist/charts/compile.js +386 -0
  132. package/dist/charts/cursor.d.ts +50 -0
  133. package/dist/charts/cursor.d.ts.map +1 -0
  134. package/dist/charts/cursor.js +157 -0
  135. package/dist/charts/curves.d.ts +12 -0
  136. package/dist/charts/curves.d.ts.map +1 -0
  137. package/dist/charts/curves.js +86 -0
  138. package/dist/charts/donut.module.css +54 -0
  139. package/dist/{content/article-card.module.css.d.ts → charts/donut.module.css.d.ts} +2 -9
  140. package/dist/charts/host.d.ts +17 -0
  141. package/dist/charts/host.d.ts.map +1 -0
  142. package/dist/charts/host.js +35 -0
  143. package/dist/charts/index.d.ts +18 -53
  144. package/dist/charts/index.d.ts.map +1 -1
  145. package/dist/charts/index.js +17 -189
  146. package/dist/charts/legend.d.ts +23 -0
  147. package/dist/charts/legend.d.ts.map +1 -0
  148. package/dist/charts/legend.js +160 -0
  149. package/dist/charts/marks.d.ts +25 -0
  150. package/dist/charts/marks.d.ts.map +1 -0
  151. package/dist/charts/marks.js +128 -0
  152. package/dist/charts/panel.d.ts +56 -0
  153. package/dist/charts/panel.d.ts.map +1 -0
  154. package/dist/charts/panel.js +123 -0
  155. package/dist/charts/scales.d.ts +44 -0
  156. package/dist/charts/scales.d.ts.map +1 -0
  157. package/dist/charts/scales.js +163 -0
  158. package/dist/charts/sizing.d.ts +12 -0
  159. package/dist/charts/sizing.d.ts.map +1 -0
  160. package/dist/charts/sizing.js +33 -0
  161. package/dist/charts/state.d.ts +17 -0
  162. package/dist/charts/state.d.ts.map +1 -0
  163. package/dist/charts/state.js +53 -0
  164. package/dist/charts/theme.d.ts +38 -19
  165. package/dist/charts/theme.d.ts.map +1 -1
  166. package/dist/charts/theme.js +48 -26
  167. package/dist/charts/types.d.ts +227 -0
  168. package/dist/charts/types.d.ts.map +1 -0
  169. package/dist/charts/types.js +4 -0
  170. package/dist/cli/audit-allows.d.ts +4 -17
  171. package/dist/cli/audit-allows.d.ts.map +1 -1
  172. package/dist/cli/config.d.ts +18 -43
  173. package/dist/cli/config.d.ts.map +1 -1
  174. package/dist/cli/config.js +6 -0
  175. package/dist/cli/doctor-upgrade.d.ts +43 -0
  176. package/dist/cli/doctor-upgrade.d.ts.map +1 -0
  177. package/dist/cli/doctor-upgrade.js +314 -0
  178. package/dist/cli/doctor.d.ts +14 -29
  179. package/dist/cli/doctor.d.ts.map +1 -1
  180. package/dist/cli/doctor.js +58 -9
  181. package/dist/cli/help.d.ts.map +1 -1
  182. package/dist/cli/help.js +2 -4
  183. package/dist/cli/index.d.ts +48 -172
  184. package/dist/cli/index.d.ts.map +1 -1
  185. package/dist/cli/index.js +39 -132
  186. package/dist/cli/init.d.ts.map +1 -1
  187. package/dist/cli/init.js +43 -37
  188. package/dist/cli/sync.d.ts +5 -21
  189. package/dist/cli/sync.d.ts.map +1 -1
  190. package/dist/cli/sync.js +4 -23
  191. package/dist/cli/tokens-css.d.ts +7 -28
  192. package/dist/cli/tokens-css.d.ts.map +1 -1
  193. package/dist/commands/ShortcutsHelp.d.ts.map +1 -1
  194. package/dist/commands/ShortcutsHelp.js +4 -5
  195. package/dist/commands/define-commands.d.ts +15 -31
  196. package/dist/commands/define-commands.d.ts.map +1 -1
  197. package/dist/commands/define-commands.js +1 -11
  198. package/dist/commands/define-overlays.d.ts +5 -19
  199. package/dist/commands/define-overlays.d.ts.map +1 -1
  200. package/dist/commands/define-overlays.js +3 -11
  201. package/dist/commands/index.d.ts +10 -40
  202. package/dist/commands/index.d.ts.map +1 -1
  203. package/dist/commands/index.js +9 -46
  204. package/dist/{notifications → commands/notifications}/bell.d.ts +1 -1
  205. package/dist/commands/notifications/bell.d.ts.map +1 -0
  206. package/dist/{notifications → commands/notifications}/center.d.ts +2 -2
  207. package/dist/commands/notifications/center.d.ts.map +1 -0
  208. package/dist/{notifications → commands/notifications}/center.js +2 -2
  209. package/dist/{notifications → commands/notifications}/define-notifications.d.ts +3 -3
  210. package/dist/commands/notifications/define-notifications.d.ts.map +1 -0
  211. package/dist/commands/notifications/notify.d.ts +44 -0
  212. package/dist/commands/notifications/notify.d.ts.map +1 -0
  213. package/dist/commands/notifications/notify.js +79 -0
  214. package/dist/{notifications → commands/notifications}/store.d.ts +2 -0
  215. package/dist/commands/notifications/store.d.ts.map +1 -0
  216. package/dist/{notifications → commands/notifications}/store.js +4 -0
  217. package/dist/commands/projectors.d.ts +1 -131
  218. package/dist/commands/projectors.d.ts.map +1 -1
  219. package/dist/commands/projectors.js +2 -73
  220. package/dist/commands/shell-bridge.d.ts +3 -3
  221. package/dist/commands/shortcut-format.d.ts +5 -4
  222. package/dist/commands/shortcut-format.d.ts.map +1 -1
  223. package/dist/common/errors.d.ts +3 -3
  224. package/dist/common/use-measured-widths.d.ts.map +1 -1
  225. package/dist/common/use-measured-widths.js +5 -3
  226. package/dist/common/validate.d.ts +2 -2
  227. package/dist/content/article-layout.d.ts.map +1 -1
  228. package/dist/content/article-layout.js +3 -3
  229. package/dist/content/article-model.d.ts +1 -46
  230. package/dist/content/article-model.d.ts.map +1 -1
  231. package/dist/content/article-model.js +1 -29
  232. package/dist/content/index.d.ts +11 -41
  233. package/dist/content/index.d.ts.map +1 -1
  234. package/dist/content/index.js +3 -35
  235. package/dist/content/markdown.d.ts +1 -1
  236. package/dist/content/markdown.d.ts.map +1 -1
  237. package/dist/content/markdown.js +1 -1
  238. package/dist/content/mermaid.d.ts.map +1 -1
  239. package/dist/content/mermaid.js +7 -7
  240. package/dist/content/slug.d.ts +1 -8
  241. package/dist/content/slug.d.ts.map +1 -1
  242. package/dist/content/slug.js +1 -8
  243. package/dist/content/url-hardening.d.ts +2 -2
  244. package/dist/content/url-hardening.d.ts.map +1 -1
  245. package/dist/content/url-hardening.js +2 -0
  246. package/dist/controls/actions.d.ts +16 -1
  247. package/dist/controls/actions.d.ts.map +1 -1
  248. package/dist/controls/enum-filter.d.ts +1 -1
  249. package/dist/controls/enum-filter.d.ts.map +1 -1
  250. package/dist/controls/filter-context.d.ts.map +1 -1
  251. package/dist/controls/filter-context.js +3 -1
  252. package/dist/controls/filter-set.js +4 -6
  253. package/dist/controls/form-layout.d.ts +1 -1
  254. package/dist/controls/form-layout.d.ts.map +1 -1
  255. package/dist/controls/form-layout.js +1 -1
  256. package/dist/controls/glyphs.d.ts +0 -2
  257. package/dist/controls/glyphs.d.ts.map +1 -1
  258. package/dist/controls/glyphs.js +0 -7
  259. package/dist/controls/index.d.ts +12 -17
  260. package/dist/controls/index.d.ts.map +1 -1
  261. package/dist/controls/index.js +5 -39
  262. package/dist/controls/multi-select-filter.d.ts +4 -3
  263. package/dist/controls/multi-select-filter.d.ts.map +1 -1
  264. package/dist/controls/number-filter.d.ts +4 -3
  265. package/dist/controls/number-filter.d.ts.map +1 -1
  266. package/dist/controls/number-filter.js +3 -1
  267. package/dist/controls/range-filter.d.ts +4 -3
  268. package/dist/controls/range-filter.d.ts.map +1 -1
  269. package/dist/controls/search-filter.d.ts +4 -3
  270. package/dist/controls/search-filter.d.ts.map +1 -1
  271. package/dist/controls/search-filter.js +19 -14
  272. package/dist/controls/select-filter.d.ts +4 -3
  273. package/dist/controls/select-filter.d.ts.map +1 -1
  274. package/dist/controls/sync-button.d.ts.map +1 -1
  275. package/dist/controls/sync-button.js +12 -15
  276. package/dist/controls/toggle-filter.d.ts +4 -3
  277. package/dist/controls/toggle-filter.d.ts.map +1 -1
  278. package/dist/controls/uncontrolled.d.ts +12 -0
  279. package/dist/controls/uncontrolled.d.ts.map +1 -0
  280. package/dist/controls/view-tabs.d.ts +2 -2
  281. package/dist/controls/view-tabs.d.ts.map +1 -1
  282. package/dist/controls-dates/index.d.ts +0 -1
  283. package/dist/controls-dates/index.d.ts.map +1 -1
  284. package/dist/dashboard/index.d.ts +7 -9
  285. package/dist/dashboard/index.d.ts.map +1 -1
  286. package/dist/dashboard/index.js +3 -23
  287. package/dist/dashboard/section.d.ts +4 -6
  288. package/dist/dashboard/section.d.ts.map +1 -1
  289. package/dist/dashboard/section.js +4 -10
  290. package/dist/dashboard/stat-card.d.ts +4 -4
  291. package/dist/dashboard/stat-card.d.ts.map +1 -1
  292. package/dist/dashboard/stat-card.js +3 -3
  293. package/dist/dashboard/widget-header.module.css +9 -7
  294. package/dist/dev-dock.d.ts.map +1 -1
  295. package/dist/dev-dock.js +6 -1
  296. package/dist/format/date.d.ts +0 -34
  297. package/dist/format/date.d.ts.map +1 -1
  298. package/dist/format/date.js +0 -54
  299. package/dist/format/index.d.ts +7 -22
  300. package/dist/format/index.d.ts.map +1 -1
  301. package/dist/format/index.js +2 -43
  302. package/dist/format/number.d.ts +3 -14
  303. package/dist/format/number.d.ts.map +1 -1
  304. package/dist/format/number.js +0 -13
  305. package/dist/format/shared.d.ts +2 -3
  306. package/dist/format/shared.d.ts.map +1 -1
  307. package/dist/forms/index.d.ts +0 -11
  308. package/dist/forms/index.d.ts.map +1 -1
  309. package/dist/forms/index.js +1 -14
  310. package/dist/guard/index.d.ts +6 -21
  311. package/dist/guard/index.d.ts.map +1 -1
  312. package/dist/guard/index.js +27 -115
  313. package/dist/guard/types.d.ts +7 -18
  314. package/dist/guard/types.d.ts.map +1 -1
  315. package/dist/index.d.ts +16 -48
  316. package/dist/index.d.ts.map +1 -1
  317. package/dist/index.js +21 -117
  318. package/dist/provider/create-router.d.ts +44 -0
  319. package/dist/provider/create-router.d.ts.map +1 -0
  320. package/dist/provider/create-router.js +62 -0
  321. package/dist/provider/hotkeys.d.ts +8 -0
  322. package/dist/provider/hotkeys.d.ts.map +1 -0
  323. package/dist/provider/hotkeys.js +50 -0
  324. package/dist/provider/index.d.ts +33 -110
  325. package/dist/provider/index.d.ts.map +1 -1
  326. package/dist/provider/index.js +182 -82
  327. package/dist/provider/lab-theme.d.ts.map +1 -1
  328. package/dist/provider/route-transition.d.ts +76 -0
  329. package/dist/provider/route-transition.d.ts.map +1 -0
  330. package/dist/provider/route-transition.js +98 -0
  331. package/dist/provider/spotlight-actions.d.ts +10 -0
  332. package/dist/provider/spotlight-actions.d.ts.map +1 -0
  333. package/dist/provider/spotlight-actions.js +55 -0
  334. package/dist/provider/test-router.d.ts +6 -0
  335. package/dist/provider/test-router.d.ts.map +1 -0
  336. package/dist/provider/test-router.js +18 -0
  337. package/dist/query-client.d.ts +4 -20
  338. package/dist/query-client.d.ts.map +1 -1
  339. package/dist/query-client.js +2 -2
  340. package/dist/router-tanstack/index.d.ts +18 -64
  341. package/dist/router-tanstack/index.d.ts.map +1 -1
  342. package/dist/router-tanstack/index.js +2 -16
  343. package/dist/router-tanstack/nav.d.ts +12 -1
  344. package/dist/router-tanstack/nav.d.ts.map +1 -1
  345. package/dist/router-tanstack/nav.js +8 -1
  346. package/dist/router-tanstack/search-store.d.ts +1 -1
  347. package/dist/router-tanstack/search-store.d.ts.map +1 -1
  348. package/dist/router-tanstack/use-nav.d.ts +8 -9
  349. package/dist/router-tanstack/use-nav.d.ts.map +1 -1
  350. package/dist/router-tanstack/use-nav.js +20 -1
  351. package/dist/shell/app-mobile-nav.d.ts.map +1 -1
  352. package/dist/shell/app-sidebar.js +1 -1
  353. package/dist/shell/index.d.ts +31 -10
  354. package/dist/shell/index.d.ts.map +1 -1
  355. package/dist/shell/index.js +14 -3
  356. package/dist/shell/page-aside.d.ts +2 -2
  357. package/dist/shell/page-aside.d.ts.map +1 -1
  358. package/dist/shell/page-aside.js +31 -12
  359. package/dist/shell/page-bar.d.ts +2 -2
  360. package/dist/shell/page-bar.d.ts.map +1 -1
  361. package/dist/shell/page-bar.js +1 -1
  362. package/dist/state.d.ts +10 -12
  363. package/dist/state.d.ts.map +1 -1
  364. package/dist/state.js +4 -6
  365. package/dist/styles.css +107 -7
  366. package/dist/surfaces.d.ts +28 -103
  367. package/dist/surfaces.d.ts.map +1 -1
  368. package/dist/surfaces.js +54 -143
  369. package/dist/{data → table}/data-table-state.d.ts +1 -1
  370. package/dist/table/data-table-state.d.ts.map +1 -0
  371. package/dist/{data → table}/data-table-state.js +4 -3
  372. package/dist/{data → table}/data-table.d.ts +28 -49
  373. package/dist/table/data-table.d.ts.map +1 -0
  374. package/dist/{data → table}/data-table.js +74 -60
  375. package/dist/table/index.d.ts +18 -0
  376. package/dist/table/index.d.ts.map +1 -0
  377. package/dist/{data/table.js → table/index.js} +1 -1
  378. package/dist/table/query-branch.d.ts.map +1 -0
  379. package/dist/table/table-features.d.ts +69 -0
  380. package/dist/table/table-features.d.ts.map +1 -0
  381. package/dist/table/table-features.js +49 -0
  382. package/dist/telemetry.d.ts +77 -0
  383. package/dist/telemetry.d.ts.map +1 -0
  384. package/dist/telemetry.js +33 -0
  385. package/dist/theme/index.d.ts +10 -21
  386. package/dist/theme/index.d.ts.map +1 -1
  387. package/dist/theme/index.js +3 -14
  388. package/dist/theme/theme-toggle.d.ts.map +1 -1
  389. package/dist/theme/theme-toggle.js +7 -33
  390. package/dist/theme/theme-toggle.module.css +30 -0
  391. package/dist/theme/theme-toggle.module.css.d.ts +10 -0
  392. package/dist/theme-lab/derive-controls.d.ts.map +1 -1
  393. package/dist/theme-lab/derive-controls.js +5 -3
  394. package/dist/theme-lab/derive-state.d.ts.map +1 -1
  395. package/dist/theme-lab/derive-state.js +2 -1
  396. package/dist/tokens/core.d.ts +360 -0
  397. package/dist/tokens/core.d.ts.map +1 -0
  398. package/dist/tokens/core.js +708 -0
  399. package/dist/tokens/derive.d.ts +1 -1
  400. package/dist/tokens/derive.d.ts.map +1 -1
  401. package/dist/tokens/index.d.ts +5 -373
  402. package/dist/tokens/index.d.ts.map +1 -1
  403. package/dist/tokens/index.js +8 -700
  404. package/dist/tokens/palette.d.ts +2 -6
  405. package/dist/tokens/palette.d.ts.map +1 -1
  406. package/dist/tokens/palette.js +1 -4
  407. package/dist/vite.d.ts +4 -3
  408. package/dist/vite.d.ts.map +1 -1
  409. package/llms.txt +43 -85
  410. package/package.json +80 -173
  411. package/src/agent/ai-sdk-transport.ts +57 -37
  412. package/src/{agent-chat → agent/chat}/composer.tsx +29 -30
  413. package/src/{agent-chat → agent/chat}/message-affordances.ts +8 -5
  414. package/src/{agent-chat → agent/chat}/thread-feed-row.tsx +30 -35
  415. package/src/{agent-chat → agent/chat}/thread-feed.tsx +40 -35
  416. package/src/{agent-chat → agent/chat}/thread-message.tsx +37 -35
  417. package/src/{agent-chat → agent/chat}/thread-outcome-card.tsx +5 -5
  418. package/src/{agent-chat → agent/chat}/tool-chip.tsx +12 -12
  419. package/src/{agent-chat → agent/chat}/use-keyboard-inset.ts +1 -1
  420. package/src/{agent-chat → agent/chat}/virtualize.ts +5 -5
  421. package/src/agent/error.ts +43 -0
  422. package/src/agent/history.ts +2 -107
  423. package/src/agent/id.ts +4 -5
  424. package/src/agent/index.ts +23 -112
  425. package/src/agent/outcome.ts +3 -56
  426. package/src/agent/part-list.tsx +3 -3
  427. package/src/agent/parts.ts +23 -22
  428. package/src/agent/run-committer.ts +64 -0
  429. package/src/agent/run-records.ts +147 -0
  430. package/src/agent/thread.ts +24 -231
  431. package/src/agent/transport.ts +6 -96
  432. package/src/agent/use-agent-thread-runs.ts +364 -199
  433. package/src/charts/BandStrip.tsx +276 -0
  434. package/src/charts/Bars.tsx +141 -0
  435. package/src/charts/CartesianChart.tsx +206 -0
  436. package/src/charts/ChartCard.tsx +178 -0
  437. package/src/charts/Donut.tsx +256 -0
  438. package/src/charts/DualPanel.tsx +326 -0
  439. package/src/charts/Heatmap.tsx +282 -0
  440. package/src/charts/Lines.tsx +151 -0
  441. package/src/charts/MirroredBars.tsx +303 -0
  442. package/src/charts/Sparkline.tsx +176 -0
  443. package/src/charts/StackedArea.tsx +80 -0
  444. package/src/charts/box.tsx +96 -0
  445. package/src/charts/card-context.ts +11 -0
  446. package/src/charts/chart-box.module.css +64 -0
  447. package/src/charts/chart-box.module.css.d.ts +12 -0
  448. package/src/charts/chart-card.module.css +25 -0
  449. package/src/charts/chart-card.module.css.d.ts +8 -0
  450. package/src/charts/chart-legend.module.css +38 -0
  451. package/src/charts/chart-legend.module.css.d.ts +10 -0
  452. package/src/charts/compile.ts +585 -0
  453. package/src/charts/cursor.ts +282 -0
  454. package/src/charts/curves.ts +111 -0
  455. package/src/charts/donut.module.css +54 -0
  456. package/src/charts/donut.module.css.d.ts +9 -0
  457. package/src/charts/host.tsx +60 -0
  458. package/src/charts/index.ts +41 -178
  459. package/src/charts/legend.tsx +204 -0
  460. package/src/charts/marks.ts +201 -0
  461. package/src/charts/panel.tsx +227 -0
  462. package/src/charts/scales.ts +237 -0
  463. package/src/charts/sizing.ts +47 -0
  464. package/src/charts/state.tsx +80 -0
  465. package/src/charts/theme.ts +65 -0
  466. package/src/charts/types.ts +242 -0
  467. package/src/cli/audit-allows.ts +8 -30
  468. package/src/cli/config.ts +26 -43
  469. package/src/cli/doctor-upgrade.ts +457 -0
  470. package/src/cli/doctor.ts +89 -72
  471. package/src/cli/help.ts +2 -4
  472. package/src/cli/index.ts +100 -384
  473. package/src/cli/init.ts +60 -51
  474. package/src/cli/sync.ts +13 -68
  475. package/src/cli/tokens-css.ts +7 -28
  476. package/src/commands/ShortcutsHelp.tsx +8 -9
  477. package/src/commands/define-commands.ts +16 -43
  478. package/src/commands/define-overlays.ts +12 -36
  479. package/src/commands/index.ts +11 -94
  480. package/src/{notifications → commands/notifications}/bell.tsx +2 -2
  481. package/src/{notifications → commands/notifications}/center.tsx +7 -5
  482. package/src/{notifications → commands/notifications}/define-notifications.ts +3 -3
  483. package/src/commands/notifications/notify.tsx +158 -0
  484. package/src/{notifications → commands/notifications}/store.ts +10 -2
  485. package/src/commands/projectors.ts +5 -225
  486. package/src/commands/shell-bridge.ts +5 -5
  487. package/src/commands/shortcut-format.ts +5 -4
  488. package/src/common/errors.ts +3 -3
  489. package/src/common/use-measured-widths.ts +6 -3
  490. package/src/common/validate.ts +2 -2
  491. package/src/content/article-layout.tsx +37 -38
  492. package/src/content/article-model.ts +1 -84
  493. package/src/content/index.ts +12 -83
  494. package/src/content/markdown.tsx +4 -3
  495. package/src/content/mermaid.tsx +9 -7
  496. package/src/content/slug.ts +1 -16
  497. package/src/content/url-hardening.ts +8 -2
  498. package/src/controls/actions.tsx +24 -1
  499. package/src/controls/enum-filter.tsx +1 -1
  500. package/src/controls/filter-context.tsx +3 -1
  501. package/src/controls/filter-set.tsx +5 -7
  502. package/src/controls/form-layout.tsx +2 -2
  503. package/src/controls/glyphs.tsx +0 -10
  504. package/src/controls/index.ts +13 -64
  505. package/src/controls/multi-select-filter.tsx +5 -4
  506. package/src/controls/number-filter.tsx +8 -4
  507. package/src/controls/range-filter.tsx +5 -4
  508. package/src/controls/search-filter.tsx +25 -19
  509. package/src/controls/select-filter.tsx +5 -4
  510. package/src/controls/sync-button.tsx +18 -20
  511. package/src/controls/toggle-filter.tsx +5 -4
  512. package/src/controls/uncontrolled.ts +12 -0
  513. package/src/controls/view-tabs.tsx +3 -3
  514. package/src/controls-dates/date-range-picker.tsx +1 -1
  515. package/src/controls-dates/index.ts +0 -1
  516. package/src/dashboard/index.ts +7 -48
  517. package/src/dashboard/section.tsx +11 -40
  518. package/src/dashboard/stat-card.tsx +14 -16
  519. package/src/dashboard/widget-header.module.css +9 -7
  520. package/src/dev-dock.tsx +14 -27
  521. package/src/format/date.ts +2 -92
  522. package/src/format/index.ts +7 -53
  523. package/src/format/number.ts +3 -26
  524. package/src/format/shared.ts +2 -3
  525. package/src/forms/index.ts +0 -23
  526. package/src/guard/index.ts +36 -191
  527. package/src/guard/types.ts +6 -19
  528. package/src/index.ts +30 -282
  529. package/src/provider/create-router.tsx +138 -0
  530. package/src/provider/hotkeys.ts +70 -0
  531. package/src/provider/index.tsx +260 -230
  532. package/src/provider/lab-theme.ts +3 -2
  533. package/src/provider/route-transition.ts +199 -0
  534. package/src/provider/spotlight-actions.tsx +69 -0
  535. package/src/provider/test-router.tsx +25 -0
  536. package/src/query-client.ts +4 -22
  537. package/src/router-tanstack/index.ts +18 -112
  538. package/src/router-tanstack/nav.ts +28 -2
  539. package/src/router-tanstack/search-store.ts +9 -2
  540. package/src/router-tanstack/use-nav.ts +47 -13
  541. package/src/shell/app-mobile-nav.tsx +3 -2
  542. package/src/shell/app-sidebar.tsx +1 -1
  543. package/src/shell/aside-docking.ts +1 -1
  544. package/src/shell/index.tsx +61 -20
  545. package/src/shell/page-aside.tsx +47 -23
  546. package/src/shell/page-bar.tsx +3 -3
  547. package/src/shell/page-title.tsx +1 -1
  548. package/src/state.ts +11 -37
  549. package/src/styles.css +107 -7
  550. package/src/surfaces.ts +56 -151
  551. package/src/{data → table}/data-table-state.ts +5 -4
  552. package/src/{data → table}/data-table.tsx +170 -161
  553. package/src/table/index.ts +18 -0
  554. package/src/table/table-features.ts +102 -0
  555. package/src/telemetry.ts +110 -0
  556. package/src/theme/index.ts +22 -47
  557. package/src/theme/theme-toggle.module.css +30 -0
  558. package/src/theme/theme-toggle.module.css.d.ts +10 -0
  559. package/src/theme/theme-toggle.tsx +15 -43
  560. package/src/theme-lab/derive-controls.tsx +5 -3
  561. package/src/theme-lab/derive-state.ts +2 -1
  562. package/src/tokens/core.ts +1163 -0
  563. package/src/tokens/derive.ts +1 -1
  564. package/src/tokens/index.ts +14 -1181
  565. package/src/tokens/palette.ts +3 -7
  566. package/src/vite.ts +3 -3
  567. package/agent/templates/query-client.ts.tpl +0 -26
  568. package/dist/agent/adapter.d.ts +0 -150
  569. package/dist/agent/adapter.d.ts.map +0 -1
  570. package/dist/agent/adapter.js +0 -482
  571. package/dist/agent/use-agent-stream.d.ts +0 -35
  572. package/dist/agent/use-agent-stream.d.ts.map +0 -1
  573. package/dist/agent/use-agent-stream.js +0 -59
  574. package/dist/agent-chat/composer.d.ts.map +0 -1
  575. package/dist/agent-chat/index.d.ts +0 -31
  576. package/dist/agent-chat/index.d.ts.map +0 -1
  577. package/dist/agent-chat/index.js +0 -19
  578. package/dist/agent-chat/message-affordances.d.ts.map +0 -1
  579. package/dist/agent-chat/relative-time.d.ts.map +0 -1
  580. package/dist/agent-chat/thread-detail-panel.d.ts +0 -28
  581. package/dist/agent-chat/thread-detail-panel.d.ts.map +0 -1
  582. package/dist/agent-chat/thread-detail-panel.js +0 -115
  583. package/dist/agent-chat/thread-feed-row.d.ts.map +0 -1
  584. package/dist/agent-chat/thread-feed.d.ts.map +0 -1
  585. package/dist/agent-chat/thread-message.d.ts.map +0 -1
  586. package/dist/agent-chat/thread-outcome-card.d.ts.map +0 -1
  587. package/dist/agent-chat/thread-workspace.d.ts +0 -44
  588. package/dist/agent-chat/thread-workspace.d.ts.map +0 -1
  589. package/dist/agent-chat/thread-workspace.js +0 -153
  590. package/dist/agent-chat/tool-chip.d.ts.map +0 -1
  591. package/dist/agent-chat/use-keyboard-inset.d.ts.map +0 -1
  592. package/dist/agent-chat/virtualize.d.ts.map +0 -1
  593. package/dist/charts/cursor/resolve.d.ts +0 -75
  594. package/dist/charts/cursor/resolve.d.ts.map +0 -1
  595. package/dist/charts/cursor/resolve.js +0 -91
  596. package/dist/charts/cursor/scope.d.ts +0 -20
  597. package/dist/charts/cursor/scope.d.ts.map +0 -1
  598. package/dist/charts/cursor/scope.js +0 -20
  599. package/dist/charts/cursor/store.d.ts +0 -35
  600. package/dist/charts/cursor/store.d.ts.map +0 -1
  601. package/dist/charts/cursor/store.js +0 -25
  602. package/dist/charts/cursor/touch-pin.d.ts +0 -45
  603. package/dist/charts/cursor/touch-pin.d.ts.map +0 -1
  604. package/dist/charts/cursor/touch-pin.js +0 -79
  605. package/dist/charts/hooks/use-discrete-cursor.d.ts +0 -66
  606. package/dist/charts/hooks/use-discrete-cursor.d.ts.map +0 -1
  607. package/dist/charts/hooks/use-discrete-cursor.js +0 -198
  608. package/dist/charts/hooks/use-hysteresis.d.ts +0 -18
  609. package/dist/charts/hooks/use-hysteresis.d.ts.map +0 -1
  610. package/dist/charts/hooks/use-hysteresis.js +0 -12
  611. package/dist/charts/hooks/useBandPlot.d.ts +0 -145
  612. package/dist/charts/hooks/useBandPlot.d.ts.map +0 -1
  613. package/dist/charts/hooks/useBandPlot.js +0 -178
  614. package/dist/charts/hooks/useChartCursor.d.ts +0 -75
  615. package/dist/charts/hooks/useChartCursor.d.ts.map +0 -1
  616. package/dist/charts/hooks/useChartCursor.js +0 -200
  617. package/dist/charts/hooks/useChartSize.d.ts +0 -29
  618. package/dist/charts/hooks/useChartSize.d.ts.map +0 -1
  619. package/dist/charts/hooks/useChartSize.js +0 -8
  620. package/dist/charts/kinds/BandStrip.d.ts +0 -132
  621. package/dist/charts/kinds/BandStrip.d.ts.map +0 -1
  622. package/dist/charts/kinds/BandStrip.js +0 -241
  623. package/dist/charts/kinds/Bars.d.ts +0 -141
  624. package/dist/charts/kinds/Bars.d.ts.map +0 -1
  625. package/dist/charts/kinds/Bars.js +0 -343
  626. package/dist/charts/kinds/Donut.d.ts +0 -77
  627. package/dist/charts/kinds/Donut.d.ts.map +0 -1
  628. package/dist/charts/kinds/Donut.js +0 -245
  629. package/dist/charts/kinds/DualPanel.d.ts +0 -111
  630. package/dist/charts/kinds/DualPanel.d.ts.map +0 -1
  631. package/dist/charts/kinds/DualPanel.js +0 -471
  632. package/dist/charts/kinds/Heatmap.d.ts +0 -85
  633. package/dist/charts/kinds/Heatmap.d.ts.map +0 -1
  634. package/dist/charts/kinds/Heatmap.js +0 -243
  635. package/dist/charts/kinds/MirroredBars.d.ts +0 -98
  636. package/dist/charts/kinds/MirroredBars.d.ts.map +0 -1
  637. package/dist/charts/kinds/MirroredBars.js +0 -292
  638. package/dist/charts/kinds/MultiLine.d.ts +0 -87
  639. package/dist/charts/kinds/MultiLine.d.ts.map +0 -1
  640. package/dist/charts/kinds/MultiLine.js +0 -176
  641. package/dist/charts/kinds/StackedArea.d.ts +0 -73
  642. package/dist/charts/kinds/StackedArea.d.ts.map +0 -1
  643. package/dist/charts/kinds/StackedArea.js +0 -135
  644. package/dist/charts/kinds/ZonedLine.d.ts +0 -97
  645. package/dist/charts/kinds/ZonedLine.d.ts.map +0 -1
  646. package/dist/charts/kinds/ZonedLine.js +0 -155
  647. package/dist/charts/kinds/band-chrome.d.ts +0 -31
  648. package/dist/charts/kinds/band-chrome.d.ts.map +0 -1
  649. package/dist/charts/kinds/band-chrome.js +0 -71
  650. package/dist/charts/kinds/donut-layout.d.ts +0 -47
  651. package/dist/charts/kinds/donut-layout.d.ts.map +0 -1
  652. package/dist/charts/kinds/donut-layout.js +0 -52
  653. package/dist/charts/layout/auto-margin.d.ts +0 -122
  654. package/dist/charts/layout/auto-margin.d.ts.map +0 -1
  655. package/dist/charts/layout/auto-margin.js +0 -81
  656. package/dist/charts/layout/end-labels.d.ts +0 -64
  657. package/dist/charts/layout/end-labels.d.ts.map +0 -1
  658. package/dist/charts/layout/end-labels.js +0 -76
  659. package/dist/charts/layout/log-ticks.d.ts +0 -27
  660. package/dist/charts/layout/log-ticks.d.ts.map +0 -1
  661. package/dist/charts/layout/log-ticks.js +0 -42
  662. package/dist/charts/primitives/AreaGradient.d.ts +0 -18
  663. package/dist/charts/primitives/AreaGradient.d.ts.map +0 -1
  664. package/dist/charts/primitives/AreaGradient.js +0 -13
  665. package/dist/charts/primitives/Axes.d.ts +0 -83
  666. package/dist/charts/primitives/Axes.d.ts.map +0 -1
  667. package/dist/charts/primitives/Axes.js +0 -168
  668. package/dist/charts/primitives/CartesianChart.d.ts +0 -257
  669. package/dist/charts/primitives/CartesianChart.d.ts.map +0 -1
  670. package/dist/charts/primitives/CartesianChart.js +0 -549
  671. package/dist/charts/primitives/ChartCard.d.ts +0 -66
  672. package/dist/charts/primitives/ChartCard.d.ts.map +0 -1
  673. package/dist/charts/primitives/ChartCard.js +0 -143
  674. package/dist/charts/primitives/ChartFrame.d.ts +0 -156
  675. package/dist/charts/primitives/ChartFrame.d.ts.map +0 -1
  676. package/dist/charts/primitives/ChartFrame.js +0 -241
  677. package/dist/charts/primitives/ChartLegend.d.ts +0 -67
  678. package/dist/charts/primitives/ChartLegend.d.ts.map +0 -1
  679. package/dist/charts/primitives/ChartLegend.js +0 -292
  680. package/dist/charts/primitives/ChartPending.d.ts +0 -113
  681. package/dist/charts/primitives/ChartPending.d.ts.map +0 -1
  682. package/dist/charts/primitives/ChartPending.js +0 -117
  683. package/dist/charts/primitives/ChartTooltip.d.ts +0 -59
  684. package/dist/charts/primitives/ChartTooltip.d.ts.map +0 -1
  685. package/dist/charts/primitives/ChartTooltip.js +0 -197
  686. package/dist/charts/primitives/Crosshair.d.ts +0 -26
  687. package/dist/charts/primitives/Crosshair.d.ts.map +0 -1
  688. package/dist/charts/primitives/Crosshair.js +0 -23
  689. package/dist/charts/primitives/HatchPattern.d.ts +0 -31
  690. package/dist/charts/primitives/HatchPattern.d.ts.map +0 -1
  691. package/dist/charts/primitives/HatchPattern.js +0 -31
  692. package/dist/charts/primitives/HoverOverlay.d.ts +0 -45
  693. package/dist/charts/primitives/HoverOverlay.d.ts.map +0 -1
  694. package/dist/charts/primitives/HoverOverlay.js +0 -72
  695. package/dist/charts/primitives/HoverOverlay.module.css +0 -13
  696. package/dist/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  697. package/dist/charts/primitives/XZoneRects.d.ts +0 -54
  698. package/dist/charts/primitives/XZoneRects.d.ts.map +0 -1
  699. package/dist/charts/primitives/XZoneRects.js +0 -65
  700. package/dist/charts/primitives/ZoneRects.d.ts +0 -38
  701. package/dist/charts/primitives/ZoneRects.d.ts.map +0 -1
  702. package/dist/charts/primitives/ZoneRects.js +0 -30
  703. package/dist/charts/primitives/chart-card-context.d.ts +0 -33
  704. package/dist/charts/primitives/chart-card-context.d.ts.map +0 -1
  705. package/dist/charts/primitives/chart-card-context.js +0 -18
  706. package/dist/charts/primitives/chart-frame-layout.d.ts +0 -185
  707. package/dist/charts/primitives/chart-frame-layout.d.ts.map +0 -1
  708. package/dist/charts/primitives/chart-frame-layout.js +0 -175
  709. package/dist/charts/primitives/chart-layout.d.ts +0 -112
  710. package/dist/charts/primitives/chart-layout.d.ts.map +0 -1
  711. package/dist/charts/primitives/chart-layout.js +0 -175
  712. package/dist/charts/primitives/chart-tier.d.ts +0 -16
  713. package/dist/charts/primitives/chart-tier.d.ts.map +0 -1
  714. package/dist/charts/primitives/chart-tier.js +0 -44
  715. package/dist/charts/primitives/legend-disclosure.d.ts +0 -27
  716. package/dist/charts/primitives/legend-disclosure.d.ts.map +0 -1
  717. package/dist/charts/primitives/legend-disclosure.js +0 -153
  718. package/dist/charts/series.d.ts +0 -189
  719. package/dist/charts/series.d.ts.map +0 -1
  720. package/dist/charts/series.js +0 -84
  721. package/dist/charts/sparklines/BarSparkline.d.ts +0 -37
  722. package/dist/charts/sparklines/BarSparkline.d.ts.map +0 -1
  723. package/dist/charts/sparklines/BarSparkline.js +0 -53
  724. package/dist/charts/sparklines/LineSparkline.d.ts +0 -15
  725. package/dist/charts/sparklines/LineSparkline.d.ts.map +0 -1
  726. package/dist/charts/sparklines/LineSparkline.js +0 -51
  727. package/dist/charts/sparklines/index.d.ts +0 -3
  728. package/dist/charts/sparklines/index.d.ts.map +0 -1
  729. package/dist/charts/sparklines/index.js +0 -6
  730. package/dist/charts/utils/domain.d.ts +0 -35
  731. package/dist/charts/utils/domain.d.ts.map +0 -1
  732. package/dist/charts/utils/domain.js +0 -12
  733. package/dist/charts/utils/format.d.ts +0 -8
  734. package/dist/charts/utils/format.d.ts.map +0 -1
  735. package/dist/charts/utils/format.js +0 -20
  736. package/dist/charts/utils/measure-text.d.ts +0 -25
  737. package/dist/charts/utils/measure-text.d.ts.map +0 -1
  738. package/dist/charts/utils/measure-text.js +0 -64
  739. package/dist/charts/utils/ticks.d.ts +0 -103
  740. package/dist/charts/utils/ticks.d.ts.map +0 -1
  741. package/dist/charts/utils/ticks.js +0 -92
  742. package/dist/commands/overlays-mount.d.ts +0 -122
  743. package/dist/commands/overlays-mount.d.ts.map +0 -1
  744. package/dist/commands/overlays-mount.js +0 -125
  745. package/dist/commands/useCommandHotkeys.d.ts +0 -14
  746. package/dist/commands/useCommandHotkeys.d.ts.map +0 -1
  747. package/dist/commands/useCommandHotkeys.js +0 -45
  748. package/dist/content/article-actions.d.ts +0 -39
  749. package/dist/content/article-actions.d.ts.map +0 -1
  750. package/dist/content/article-actions.js +0 -28
  751. package/dist/content/article-card.d.ts +0 -58
  752. package/dist/content/article-card.d.ts.map +0 -1
  753. package/dist/content/article-card.js +0 -79
  754. package/dist/content/article-card.module.css +0 -111
  755. package/dist/content/mdx.d.ts +0 -20
  756. package/dist/content/mdx.d.ts.map +0 -1
  757. package/dist/content/mdx.js +0 -64
  758. package/dist/controls/compare-filter.d.ts +0 -42
  759. package/dist/controls/compare-filter.d.ts.map +0 -1
  760. package/dist/controls/compare-filter.js +0 -38
  761. package/dist/controls/slider-control.d.ts +0 -36
  762. package/dist/controls/slider-control.d.ts.map +0 -1
  763. package/dist/controls/slider-control.js +0 -64
  764. package/dist/dashboard/widget-grid.d.ts +0 -27
  765. package/dist/dashboard/widget-grid.d.ts.map +0 -1
  766. package/dist/dashboard/widget-grid.js +0 -40
  767. package/dist/dashboard/widget-grid.module.css +0 -69
  768. package/dist/data/data-table-state.d.ts.map +0 -1
  769. package/dist/data/data-table.d.ts.map +0 -1
  770. package/dist/data/query-branch.d.ts.map +0 -1
  771. package/dist/data/table.d.ts +0 -24
  772. package/dist/data/table.d.ts.map +0 -1
  773. package/dist/data/virtual-list.d.ts +0 -133
  774. package/dist/data/virtual-list.d.ts.map +0 -1
  775. package/dist/data/virtual-list.js +0 -157
  776. package/dist/data/virtual.d.ts +0 -21
  777. package/dist/data/virtual.d.ts.map +0 -1
  778. package/dist/data/virtual.js +0 -4
  779. package/dist/forms/FormErrorSummary.d.ts +0 -30
  780. package/dist/forms/FormErrorSummary.d.ts.map +0 -1
  781. package/dist/forms/FormErrorSummary.js +0 -30
  782. package/dist/forms/use-field-array.d.ts +0 -60
  783. package/dist/forms/use-field-array.d.ts.map +0 -1
  784. package/dist/forms/use-field-array.js +0 -20
  785. package/dist/forms/use-form-draft.d.ts +0 -76
  786. package/dist/forms/use-form-draft.d.ts.map +0 -1
  787. package/dist/forms/use-form-draft.js +0 -92
  788. package/dist/forms/use-form-submit.d.ts +0 -88
  789. package/dist/forms/use-form-submit.d.ts.map +0 -1
  790. package/dist/forms/use-form-submit.js +0 -63
  791. package/dist/notifications/bell.d.ts.map +0 -1
  792. package/dist/notifications/center.d.ts.map +0 -1
  793. package/dist/notifications/define-notifications.d.ts.map +0 -1
  794. package/dist/notifications/index.d.ts +0 -40
  795. package/dist/notifications/index.d.ts.map +0 -1
  796. package/dist/notifications/index.js +0 -54
  797. package/dist/notifications/mount-guard.d.ts +0 -8
  798. package/dist/notifications/mount-guard.d.ts.map +0 -1
  799. package/dist/notifications/mount-guard.js +0 -18
  800. package/dist/notifications/notify.d.ts +0 -149
  801. package/dist/notifications/notify.d.ts.map +0 -1
  802. package/dist/notifications/notify.js +0 -171
  803. package/dist/notifications/store.d.ts.map +0 -1
  804. package/dist/provider/connectivity-indicator.d.ts +0 -13
  805. package/dist/provider/connectivity-indicator.d.ts.map +0 -1
  806. package/dist/provider/connectivity-indicator.js +0 -205
  807. package/dist/provider/connectivity-provider.d.ts +0 -7
  808. package/dist/provider/connectivity-provider.d.ts.map +0 -1
  809. package/dist/provider/connectivity-provider.js +0 -128
  810. package/dist/provider/connectivity-types.d.ts +0 -36
  811. package/dist/provider/connectivity-types.d.ts.map +0 -1
  812. package/dist/provider/use-connectivity.d.ts +0 -3
  813. package/dist/provider/use-connectivity.d.ts.map +0 -1
  814. package/dist/provider/use-connectivity.js +0 -14
  815. package/dist/query-devtools.d.ts +0 -21
  816. package/dist/query-devtools.d.ts.map +0 -1
  817. package/dist/query-devtools.js +0 -13
  818. package/src/agent/adapter.ts +0 -945
  819. package/src/agent/use-agent-stream.ts +0 -154
  820. package/src/agent-chat/index.ts +0 -54
  821. package/src/agent-chat/thread-detail-panel.tsx +0 -201
  822. package/src/agent-chat/thread-workspace.tsx +0 -279
  823. package/src/charts/cursor/resolve.ts +0 -198
  824. package/src/charts/cursor/scope.tsx +0 -35
  825. package/src/charts/cursor/store.ts +0 -58
  826. package/src/charts/cursor/touch-pin.ts +0 -138
  827. package/src/charts/hooks/use-discrete-cursor.ts +0 -335
  828. package/src/charts/hooks/use-hysteresis.ts +0 -26
  829. package/src/charts/hooks/useBandPlot.ts +0 -383
  830. package/src/charts/hooks/useChartCursor.ts +0 -367
  831. package/src/charts/hooks/useChartSize.ts +0 -35
  832. package/src/charts/kinds/BandStrip.tsx +0 -449
  833. package/src/charts/kinds/Bars.tsx +0 -589
  834. package/src/charts/kinds/Donut.tsx +0 -368
  835. package/src/charts/kinds/DualPanel.tsx +0 -712
  836. package/src/charts/kinds/Heatmap.tsx +0 -396
  837. package/src/charts/kinds/MirroredBars.tsx +0 -469
  838. package/src/charts/kinds/MultiLine.tsx +0 -322
  839. package/src/charts/kinds/StackedArea.tsx +0 -267
  840. package/src/charts/kinds/ZonedLine.tsx +0 -301
  841. package/src/charts/kinds/band-chrome.tsx +0 -91
  842. package/src/charts/kinds/donut-layout.ts +0 -82
  843. package/src/charts/layout/auto-margin.ts +0 -242
  844. package/src/charts/layout/end-labels.ts +0 -135
  845. package/src/charts/layout/log-ticks.ts +0 -90
  846. package/src/charts/primitives/AreaGradient.tsx +0 -26
  847. package/src/charts/primitives/Axes.tsx +0 -271
  848. package/src/charts/primitives/CartesianChart.tsx +0 -1002
  849. package/src/charts/primitives/ChartCard.tsx +0 -280
  850. package/src/charts/primitives/ChartFrame.tsx +0 -493
  851. package/src/charts/primitives/ChartLegend.tsx +0 -422
  852. package/src/charts/primitives/ChartPending.tsx +0 -243
  853. package/src/charts/primitives/ChartTooltip.tsx +0 -265
  854. package/src/charts/primitives/Crosshair.tsx +0 -43
  855. package/src/charts/primitives/HatchPattern.tsx +0 -55
  856. package/src/charts/primitives/HoverOverlay.module.css +0 -13
  857. package/src/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  858. package/src/charts/primitives/HoverOverlay.tsx +0 -109
  859. package/src/charts/primitives/XZoneRects.tsx +0 -132
  860. package/src/charts/primitives/ZoneRects.tsx +0 -67
  861. package/src/charts/primitives/chart-card-context.ts +0 -46
  862. package/src/charts/primitives/chart-frame-layout.ts +0 -430
  863. package/src/charts/primitives/chart-layout.ts +0 -318
  864. package/src/charts/primitives/chart-tier.tsx +0 -76
  865. package/src/charts/primitives/legend-disclosure.tsx +0 -178
  866. package/src/charts/series.ts +0 -276
  867. package/src/charts/sparklines/BarSparkline.tsx +0 -94
  868. package/src/charts/sparklines/LineSparkline.tsx +0 -71
  869. package/src/charts/sparklines/index.ts +0 -2
  870. package/src/charts/theme.tsx +0 -53
  871. package/src/charts/utils/domain.ts +0 -41
  872. package/src/charts/utils/format.ts +0 -19
  873. package/src/charts/utils/measure-text.ts +0 -109
  874. package/src/charts/utils/ticks.ts +0 -239
  875. package/src/commands/overlays-mount.tsx +0 -333
  876. package/src/commands/useCommandHotkeys.ts +0 -114
  877. package/src/content/article-actions.ts +0 -72
  878. package/src/content/article-card.module.css +0 -111
  879. package/src/content/article-card.tsx +0 -174
  880. package/src/content/mdx.tsx +0 -127
  881. package/src/controls/compare-filter.tsx +0 -81
  882. package/src/controls/slider-control.tsx +0 -159
  883. package/src/dashboard/widget-grid.module.css +0 -69
  884. package/src/dashboard/widget-grid.tsx +0 -146
  885. package/src/data/table.ts +0 -39
  886. package/src/data/virtual-list.tsx +0 -356
  887. package/src/data/virtual.ts +0 -26
  888. package/src/forms/FormErrorSummary.tsx +0 -71
  889. package/src/forms/use-field-array.ts +0 -94
  890. package/src/forms/use-form-draft.ts +0 -262
  891. package/src/forms/use-form-submit.ts +0 -199
  892. package/src/notifications/index.ts +0 -88
  893. package/src/notifications/mount-guard.ts +0 -38
  894. package/src/notifications/notify.tsx +0 -379
  895. package/src/provider/connectivity-indicator.tsx +0 -267
  896. package/src/provider/connectivity-provider.tsx +0 -189
  897. package/src/provider/connectivity-types.ts +0 -42
  898. package/src/provider/use-connectivity.ts +0 -26
  899. package/src/query-devtools.tsx +0 -40
  900. /package/dist/{agent-chat → agent/chat}/message-affordances.js +0 -0
  901. /package/dist/{agent-chat → agent/chat}/relative-time.d.ts +0 -0
  902. /package/dist/{agent-chat → agent/chat}/relative-time.js +0 -0
  903. /package/dist/{agent-chat → agent/chat}/use-keyboard-inset.d.ts +0 -0
  904. /package/dist/{agent-chat → agent/chat}/virtualize.js +0 -0
  905. /package/dist/{notifications → commands/notifications}/bell.js +0 -0
  906. /package/dist/{notifications → commands/notifications}/define-notifications.js +0 -0
  907. /package/dist/{provider/connectivity-types.js → controls/uncontrolled.js} +0 -0
  908. /package/dist/{data → table}/data-table.module.css +0 -0
  909. /package/dist/{data → table}/data-table.module.css.d.ts +0 -0
  910. /package/dist/{data → table}/query-branch.d.ts +0 -0
  911. /package/dist/{data → table}/query-branch.js +0 -0
  912. /package/src/{agent-chat → agent/chat}/relative-time.ts +0 -0
  913. /package/src/{data → table}/data-table.module.css +0 -0
  914. /package/src/{data → table}/data-table.module.css.d.ts +0 -0
  915. /package/src/{data → table}/query-branch.ts +0 -0
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "basalt-ui",
3
- "version": "1.41.0",
4
- "description": "Opinionated framework for Mantine-based React apps — theme, app shell, visx charts, toolchain presets",
3
+ "version": "2.0.1",
4
+ "description": "Opinionated framework for Mantine-based React apps — theme, app shell, TanStack Charts, toolchain presets",
5
5
  "keywords": [
6
6
  "charts",
7
7
  "design-system",
8
8
  "mantine",
9
9
  "oxlint",
10
10
  "react",
11
- "theme",
12
- "visx"
11
+ "tanstack-charts",
12
+ "theme"
13
13
  ],
14
14
  "homepage": "https://github.com/jkrumm/basalt-ui/tree/master/packages/basalt-ui#readme",
15
15
  "bugs": {
@@ -62,98 +62,65 @@
62
62
  "import": "./dist/tokens/index.js",
63
63
  "default": "./dist/tokens/index.js"
64
64
  },
65
- "./theme-lab": {
66
- "types": "./dist/theme-lab/index.d.ts",
67
- "import": "./dist/theme-lab/index.js",
68
- "default": "./dist/theme-lab/index.js"
65
+ "./controls": {
66
+ "types": "./dist/controls/index.d.ts",
67
+ "import": "./dist/controls/index.js",
68
+ "default": "./dist/controls/index.js"
69
69
  },
70
- "./vite": {
71
- "types": "./dist/vite.d.ts",
72
- "import": "./dist/vite.js",
73
- "default": "./dist/vite.js"
70
+ "./controls-dates": {
71
+ "types": "./dist/controls-dates/index.d.ts",
72
+ "import": "./dist/controls-dates/index.js",
73
+ "default": "./dist/controls-dates/index.js"
74
74
  },
75
- "./guard": {
76
- "types": "./dist/guard/index.d.ts",
77
- "import": "./dist/guard/index.js",
78
- "default": "./dist/guard/index.js"
75
+ "./forms": {
76
+ "types": "./dist/forms/index.d.ts",
77
+ "import": "./dist/forms/index.js",
78
+ "default": "./dist/forms/index.js"
79
+ },
80
+ "./state": {
81
+ "types": "./dist/state.d.ts",
82
+ "import": "./dist/state.js",
83
+ "default": "./dist/state.js"
84
+ },
85
+ "./table": {
86
+ "types": "./dist/table/index.d.ts",
87
+ "import": "./dist/table/index.js",
88
+ "default": "./dist/table/index.js"
79
89
  },
80
90
  "./format": {
81
91
  "types": "./dist/format/index.d.ts",
82
92
  "import": "./dist/format/index.js",
83
93
  "default": "./dist/format/index.js"
84
94
  },
85
- "./forms": {
86
- "types": "./dist/forms/index.d.ts",
87
- "import": "./dist/forms/index.js",
88
- "default": "./dist/forms/index.js"
89
- },
90
95
  "./commands": {
91
96
  "types": "./dist/commands/index.d.ts",
92
97
  "import": "./dist/commands/index.js",
93
98
  "default": "./dist/commands/index.js"
94
99
  },
95
- "./notifications": {
96
- "types": "./dist/notifications/index.d.ts",
97
- "import": "./dist/notifications/index.js",
98
- "default": "./dist/notifications/index.js"
99
- },
100
- "./router-tanstack": {
101
- "types": "./dist/router-tanstack/index.d.ts",
102
- "import": "./dist/router-tanstack/index.js",
103
- "default": "./dist/router-tanstack/index.js"
104
- },
105
- "./data/table": {
106
- "types": "./dist/data/table.d.ts",
107
- "import": "./dist/data/table.js",
108
- "default": "./dist/data/table.js"
109
- },
110
- "./data/virtual": {
111
- "types": "./dist/data/virtual.d.ts",
112
- "import": "./dist/data/virtual.js",
113
- "default": "./dist/data/virtual.js"
114
- },
115
100
  "./agent": {
116
101
  "types": "./dist/agent/index.d.ts",
117
102
  "import": "./dist/agent/index.js",
118
103
  "default": "./dist/agent/index.js"
119
104
  },
120
- "./agent-chat": {
121
- "types": "./dist/agent-chat/index.d.ts",
122
- "import": "./dist/agent-chat/index.js",
123
- "default": "./dist/agent-chat/index.js"
124
- },
125
105
  "./content": {
126
106
  "types": "./dist/content/index.d.ts",
127
107
  "import": "./dist/content/index.js",
128
108
  "default": "./dist/content/index.js"
129
109
  },
130
- "./controls": {
131
- "types": "./dist/controls/index.d.ts",
132
- "import": "./dist/controls/index.js",
133
- "default": "./dist/controls/index.js"
134
- },
135
- "./controls-dates": {
136
- "types": "./dist/controls-dates/index.d.ts",
137
- "import": "./dist/controls-dates/index.js",
138
- "default": "./dist/controls-dates/index.js"
139
- },
140
- "./state": {
141
- "types": "./dist/state.d.ts",
142
- "import": "./dist/state.js",
143
- "default": "./dist/state.js"
110
+ "./vite": {
111
+ "types": "./dist/vite.d.ts",
112
+ "import": "./dist/vite.js",
113
+ "default": "./dist/vite.js"
144
114
  },
145
115
  "./styles.css": "./dist/styles.css",
146
- "./tokens.css": "./dist/tokens.css",
147
- "./configs/*": "./configs/*",
148
- "./llms.txt": "./llms.txt",
149
- "./package.json": "./package.json"
116
+ "./configs/*": "./configs/*"
150
117
  },
151
118
  "publishConfig": {
152
119
  "access": "public",
153
120
  "provenance": true
154
121
  },
155
122
  "scripts": {
156
- "build": "tsup && tsc -p tsconfig.build.json --emitDeclarationOnly --declarationMap && bun scripts/copy-assets.mjs && bun scripts/gen-tokens-css.mjs && bun scripts/fix-esm-extensions.mjs",
123
+ "build": "tsup && tsc -p tsconfig.build.json --emitDeclarationOnly --declarationMap && bun scripts/gen-chart-css.ts --check && bun scripts/copy-assets.mjs && bun scripts/gen-tokens-css.mjs && bun scripts/fix-esm-extensions.mjs",
157
124
  "typecheck": "tsc --noEmit",
158
125
  "check-budgets": "bun scripts/check-budgets.ts",
159
126
  "test": "cd ../.. && bun test packages/basalt-ui",
@@ -166,34 +133,30 @@
166
133
  "@fontsource-variable/hubot-sans": "5.3.0",
167
134
  "@fontsource-variable/jetbrains-mono": "5.3.0",
168
135
  "@fontsource-variable/nunito-sans": "5.3.0",
169
- "@mantine/dates": "9.3.0",
170
- "@shikijs/langs": "^4.4.3",
171
- "@shikijs/themes": "^4.4.3",
172
- "@tanstack/react-hotkeys": "0.10.0",
136
+ "@mantine/dates": "9.7.1",
137
+ "@shikijs/langs": "^4.5.0",
138
+ "@shikijs/themes": "^4.5.0",
139
+ "@tanstack/charts": "1.1.0",
140
+ "@tanstack/react-hotkeys": "0.13.0",
173
141
  "@tanstack/react-router-devtools": "^1.167.2",
142
+ "@tanstack/react-table": "9.2.8",
143
+ "@tanstack/react-virtual": "3.14.14",
174
144
  "@testing-library/react": "16.3.3",
175
145
  "@types/bun": "^1.4.2",
146
+ "@types/d3-scale": "4.0.9",
176
147
  "@types/hast": "^3.0.5",
177
148
  "@types/react": "^19.3.0",
178
149
  "@types/react-dom": "^19.3.0",
179
- "@visx/axis": "4.0.0",
180
- "@visx/curve": "4.0.0",
181
- "@visx/event": "4.0.0",
182
- "@visx/grid": "4.0.0",
183
- "@visx/group": "4.0.0",
184
- "@visx/responsive": "4.0.0",
185
- "@visx/scale": "4.0.0",
186
- "@visx/shape": "4.0.0",
187
- "@visx/threshold": "4.0.0",
188
- "ai": "^7.0.107",
150
+ "ai": "^7.0.137",
189
151
  "beautiful-mermaid": "^1.1.3",
190
- "motion": "12.42.0",
152
+ "d3-scale": "4.0.2",
153
+ "motion": "14.1.0",
191
154
  "publint": "0.3.24",
192
155
  "react-markdown": "^10.1.0",
193
156
  "rehype-sanitize": "6.0.0",
194
157
  "remark-gfm": "^4.0.1",
195
- "remend": "1.3.1",
196
- "shiki": "^4.4.3",
158
+ "remend": "1.4.0",
159
+ "shiki": "^4.5.0",
197
160
  "tsup": "^8.5.1",
198
161
  "typescript": "^6.0.3",
199
162
  "use-stick-to-bottom": "^1.1.6",
@@ -201,59 +164,45 @@
201
164
  "vite-plugin-pwa": "^1.3.0"
202
165
  },
203
166
  "peerDependencies": {
204
- "@fontsource-variable/hubot-sans": "5.2.8",
205
- "@fontsource-variable/jetbrains-mono": "5.2.8",
206
- "@fontsource-variable/nunito-sans": "5.2.7",
207
- "@mantine/core": "^9.3.0",
208
- "@mantine/dates": "^9.3.0",
209
- "@mantine/form": "^9.3.0",
210
- "@mantine/hooks": "^9.3.0",
211
- "@mantine/modals": "^9.3.0",
212
- "@mantine/notifications": "^9.3.0",
213
- "@mantine/spotlight": "^9.3.0",
214
- "@shikijs/langs": "^4.3.1",
215
- "@shikijs/themes": "^4.3.1",
216
- "@tanstack/react-hotkeys": "0.10.0",
217
- "@tanstack/react-query": "^5.101.0",
218
- "@tanstack/react-query-devtools": "^5.101.0",
167
+ "@ai-sdk/provider": "^4.0.26",
168
+ "@fontsource-variable/hubot-sans": "5.3.0",
169
+ "@fontsource-variable/jetbrains-mono": "5.3.0",
170
+ "@fontsource-variable/nunito-sans": "5.3.0",
171
+ "@mantine/core": "^9.7.0",
172
+ "@mantine/dates": "^9.7.0",
173
+ "@mantine/form": "^9.7.0",
174
+ "@mantine/hooks": "^9.7.0",
175
+ "@mantine/modals": "^9.7.0",
176
+ "@mantine/notifications": "^9.7.0",
177
+ "@mantine/spotlight": "^9.7.0",
178
+ "@shikijs/langs": "^4.5.0",
179
+ "@shikijs/themes": "^4.5.0",
180
+ "@tanstack/charts": "1.1.0",
181
+ "@tanstack/react-hotkeys": "0.13.0",
182
+ "@tanstack/react-query": "^5.104.0",
183
+ "@tanstack/react-query-devtools": "^5.104.0",
219
184
  "@tanstack/react-router": "^1.170.0",
220
185
  "@tanstack/react-router-devtools": "^1.166.13",
221
- "@tanstack/react-table": ">=8 <9",
222
- "@tanstack/react-virtual": ">=3.13.26 <4",
223
- "@visx/axis": "4.0.0",
224
- "@visx/curve": "4.0.0",
225
- "@visx/event": "4.0.0",
226
- "@visx/grid": "4.0.0",
227
- "@visx/group": "4.0.0",
228
- "@visx/responsive": "4.0.0",
229
- "@visx/scale": "4.0.0",
230
- "@visx/shape": "4.0.0",
231
- "@visx/threshold": "4.0.0",
232
- "ai": "^7.0.15",
186
+ "@tanstack/react-table": "9.2.8",
187
+ "@tanstack/react-virtual": ">=3.14.0 <4",
188
+ "ai": "^7.0.137",
233
189
  "beautiful-mermaid": "^1.1.0",
234
- "motion": "12.42.0",
235
- "react": "^19.2.7",
236
- "react-dom": "^19.2.7",
190
+ "d3-scale": "4.0.2",
191
+ "dayjs": "^1.11.0",
192
+ "motion": "14.1.0",
193
+ "react": "^19.3.0",
194
+ "react-dom": "^19.3.0",
237
195
  "react-markdown": "^10.1.0",
238
196
  "rehype-sanitize": "^6.0.0",
239
197
  "remark-gfm": "^4.0.1",
240
- "remend": "1.3.0",
241
- "shiki": "^4.3.0",
198
+ "remend": "1.4.0",
199
+ "shiki": "^4.5.0",
242
200
  "use-stick-to-bottom": "^1.1.6",
243
201
  "vite": "^7 || ^8",
244
202
  "vite-plugin-pwa": "^1.3.0"
245
203
  },
246
204
  "peerDependenciesMeta": {
247
- "@fontsource-variable/hubot-sans": {
248
- "optional": true
249
- },
250
- "@fontsource-variable/jetbrains-mono": {
251
- "optional": true
252
- },
253
- "@fontsource-variable/nunito-sans": {
254
- "optional": true
255
- },
256
- "@mantine/core": {
205
+ "@ai-sdk/provider": {
257
206
  "optional": true
258
207
  },
259
208
  "@mantine/dates": {
@@ -262,36 +211,21 @@
262
211
  "@mantine/form": {
263
212
  "optional": true
264
213
  },
265
- "@mantine/hooks": {
266
- "optional": true
267
- },
268
214
  "@shikijs/langs": {
269
215
  "optional": true
270
216
  },
271
217
  "@shikijs/themes": {
272
218
  "optional": true
273
219
  },
274
- "@tanstack/react-hotkeys": {
275
- "optional": true
276
- },
277
- "@mantine/modals": {
220
+ "@tanstack/charts": {
278
221
  "optional": true
279
222
  },
280
- "@mantine/notifications": {
281
- "optional": true
282
- },
283
- "@mantine/spotlight": {
284
- "optional": true
285
- },
286
- "@tanstack/react-query": {
223
+ "@tanstack/react-hotkeys": {
287
224
  "optional": true
288
225
  },
289
226
  "@tanstack/react-query-devtools": {
290
227
  "optional": true
291
228
  },
292
- "@tanstack/react-router": {
293
- "optional": true
294
- },
295
229
  "@tanstack/react-router-devtools": {
296
230
  "optional": true
297
231
  },
@@ -301,46 +235,19 @@
301
235
  "@tanstack/react-virtual": {
302
236
  "optional": true
303
237
  },
304
- "@visx/axis": {
305
- "optional": true
306
- },
307
- "@visx/curve": {
308
- "optional": true
309
- },
310
- "@visx/event": {
311
- "optional": true
312
- },
313
- "@visx/grid": {
314
- "optional": true
315
- },
316
- "@visx/group": {
317
- "optional": true
318
- },
319
- "@visx/responsive": {
320
- "optional": true
321
- },
322
- "@visx/scale": {
323
- "optional": true
324
- },
325
- "@visx/shape": {
326
- "optional": true
327
- },
328
- "@visx/threshold": {
329
- "optional": true
330
- },
331
238
  "ai": {
332
239
  "optional": true
333
240
  },
334
241
  "beautiful-mermaid": {
335
242
  "optional": true
336
243
  },
337
- "motion": {
244
+ "d3-scale": {
338
245
  "optional": true
339
246
  },
340
- "react": {
247
+ "dayjs": {
341
248
  "optional": true
342
249
  },
343
- "react-dom": {
250
+ "motion": {
344
251
  "optional": true
345
252
  },
346
253
  "react-markdown": {
@@ -374,7 +281,7 @@
374
281
  ],
375
282
  "exempt": [
376
283
  "src/tokens/palette.ts",
377
- "src/tokens/index.ts",
284
+ "src/tokens/core.ts",
378
285
  "src/tokens/derive.ts",
379
286
  "src/tokens/hct.ts",
380
287
  "src/theme/index.ts",
@@ -384,7 +291,7 @@
384
291
  "rawRadius": true,
385
292
  "exemptRules": {
386
293
  "inline-spacing": [
387
- "primitives"
294
+ "charts"
388
295
  ],
389
296
  "inline-display": [
390
297
  "agent"
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * aiSdkTransport — an AgentTransport backed by Vercel AI SDK's native streaming + resumption
3
3
  * primitives (the `ai` npm package). This is the RECOMMENDED DEFAULT transport for LLM chat use
4
- * cases — edenTransport remains the zero-extra-dependency alternative (see agent/rules/basalt-agent.md).
4
+ * cases.
5
5
  *
6
6
  * OPTIONAL PEER: `ai` is not a required dependency. Importing 'basalt-ui/agent' (and calling this
7
7
  * factory) does NOT eagerly resolve it — the package is loaded via a memoized dynamic import()
@@ -9,7 +9,7 @@
9
9
  * contract used by BasaltStickToBottom. Unlike that, there is no meaningful "plain text" fallback
10
10
  * for a missing transport: if 'ai' is not installed, the dynamic import
11
11
  * rejects and the error propagates through the async generator to the consumer's EXISTING error
12
- * handling (useAgentStream sets status: 'error'; useAgentThreadRuns falls back to its
12
+ * handling (useAgentThreadRuns falls back to its
13
13
  * onFailureStatus) — no separate crash path is introduced.
14
14
  *
15
15
  * Install the optional peer:
@@ -18,33 +18,31 @@
18
18
  * WHY DIFFING IS NEEDED: AI SDK's `readUIMessageStream` yields the FULL accumulated `UIMessage`
19
19
  * snapshot (a growing `parts` array, with existing parts' content growing in place) on every
20
20
  * update — it is not itself a delta stream. basalt-ui's whole part-accumulation model
21
- * (useAgentStream / useAgentThreadRuns, and every consumer's own coalescing) is delta-based: many
21
+ * (useAgentThreadRuns, and every consumer's own coalescing) is delta-based: many
22
22
  * small parts merged at render time. This module diffs consecutive snapshots and yields only the
23
23
  * new deltas as AgentParts, so nothing is double-rendered.
24
24
  *
25
25
  * CHAT ID BINDING: AI SDK's convention is that the chat id is known client-side before the
26
26
  * request (unlike a river/server-minted id) — `aiSdkTransport(options)` mints ONE stable chat id
27
- * at construction time, so the returned object is immediately usable with useAgentStream (a single
27
+ * at construction time, so the returned object is immediately usable as-is (a single
28
28
  * ongoing conversation). `.forThread(threadId)` returns a transport bound to an arbitrary
29
29
  * caller-supplied id instead — pass a basalt-ui thread id here to plug into
30
30
  * useAgentThreadRuns's per-thread transport-factory form, so a thread's turns (and its mount-time
31
31
  * resume) share one continuous AI SDK chat session:
32
32
  *
33
- * @example
34
- * import { useAgentStream, aiSdkTransport } from 'basalt-ui/agent'
35
- *
36
- * const transport = aiSdkTransport({ api: '/api/chat' })
37
- * const { parts, status, send } = useAgentStream({ transport })
33
+ * TRANSPORT SEAM: pass `{ api, headers?, credentials?, fetch? }` for AI SDK's HTTP transport, or
34
+ * `{ transport }` with any `ChatTransport<UIMessage>` — a `WebSocketChatTransport` plugs in
35
+ * unwrapped (`aiSdkTransport({ transport: new WebSocketChatTransport({ ... }) })`). basalt never
36
+ * wraps a transport; it reads the chunk stream the transport returns.
38
37
  *
39
38
  * @example
40
- * import { useAgentThreadRuns, aiSdkTransport, createThreadsStore, heuristicOutcome } from 'basalt-ui/agent'
39
+ * import { useAgentThreadRuns, aiSdkTransport } from 'basalt-ui/agent'
41
40
  *
42
- * const useThreads = createThreadsStore({ key: 'main-threads', version: 1 })
43
41
  * const transport = aiSdkTransport({ api: '/api/chat' })
44
42
  * const { runs, start } = useAgentThreadRuns({
45
43
  * transport: (threadId) => transport.forThread(threadId),
46
- * store: useThreads(),
47
- * resolveOutcome: heuristicOutcome,
44
+ * store, // your consumer-owned ThreadsStore
45
+ * resolveOutcome, // your OutcomeResolver
48
46
  * })
49
47
  */
50
48
  import { assertNever } from '../register'
@@ -57,7 +55,7 @@ import type { ResumableAgentTransport } from './transport'
57
55
  // verbatimModuleSyntax-safe: these never trigger a runtime resolution of 'ai'. The actual runtime
58
56
  // access goes through the memoized `import('ai')` inside resolveAiSdk() below.
59
57
  import type {
60
- DefaultChatTransport,
58
+ ChatTransport,
61
59
  DynamicToolUIPart,
62
60
  ToolUIPart,
63
61
  UIMessage,
@@ -70,20 +68,33 @@ type AiPart = UIMessage['parts'][number]
70
68
 
71
69
  // ── AiSdkTransportOptions ─────────────────────────────────────────────────────
72
70
 
73
- export type AiSdkTransportOptions = {
71
+ export type AiSdkHttpOptions = {
74
72
  /** The API URL AI SDK's transport POSTs new turns to and GETs reconnects from. */
75
73
  readonly api: string
74
+ readonly transport?: undefined
76
75
  /** HTTP headers to send with every request. */
77
- readonly headers?: Record<string, string> | Headers
76
+ readonly headers?: Record<string, string> | Headers | undefined
78
77
  /** The fetch credentials mode. Defaults to 'same-origin' (AI SDK's own default). */
79
- readonly credentials?: RequestCredentials
78
+ readonly credentials?: RequestCredentials | undefined
80
79
  /**
81
80
  * Custom fetch implementation — e.g. to scope requests to a mock backend in tests/playground,
82
81
  * or to add middleware. Defaults to the ambient `fetch` when omitted.
83
82
  */
84
- readonly fetch?: typeof globalThis.fetch
83
+ readonly fetch?: typeof globalThis.fetch | undefined
85
84
  }
86
85
 
86
+ /**
87
+ * Any AI SDK `ChatTransport<UIMessage>`, used as-is: a `WebSocketChatTransport` plugs in here
88
+ * unwrapped. basalt never wraps or re-implements a transport; it only reads the chunk stream the
89
+ * transport returns.
90
+ */
91
+ export type AiSdkCustomOptions = {
92
+ readonly api?: undefined
93
+ readonly transport: ChatTransport<UIMessage>
94
+ }
95
+
96
+ export type AiSdkTransportOptions = AiSdkHttpOptions | AiSdkCustomOptions
97
+
87
98
  // ── AiSdkTransport ─────────────────────────────────────────────────────────────
88
99
 
89
100
  export type AiSdkTransport<TPart = AgentPart> = ResumableAgentTransport<TPart, string> & {
@@ -99,7 +110,7 @@ export type AiSdkTransport<TPart = AgentPart> = ResumableAgentTransport<TPart, s
99
110
 
100
111
  /** Everything resolved from the dynamically-imported 'ai' module, memoized per aiSdkTransport() call. */
101
112
  type ResolvedAiSdk = {
102
- readonly httpTransport: DefaultChatTransport<UIMessage>
113
+ readonly chatTransport: ChatTransport<UIMessage>
103
114
  readonly readUIMessageStream: typeof readUIMessageStream
104
115
  }
105
116
 
@@ -113,12 +124,15 @@ function createAiSdkResolver(options: AiSdkTransportOptions): () => Promise<Reso
113
124
  return function resolveAiSdk(): Promise<ResolvedAiSdk> {
114
125
  resolved ??= import('ai').then(
115
126
  ({ DefaultChatTransport: DefaultChatTransportCtor, readUIMessageStream: read }) => ({
116
- httpTransport: new DefaultChatTransportCtor<UIMessage>({
117
- api: options.api,
118
- ...(options.headers !== undefined ? { headers: options.headers } : {}),
119
- ...(options.credentials !== undefined ? { credentials: options.credentials } : {}),
120
- ...(options.fetch !== undefined ? { fetch: options.fetch } : {}),
121
- }),
127
+ chatTransport:
128
+ options.transport !== undefined
129
+ ? options.transport
130
+ : new DefaultChatTransportCtor<UIMessage>({
131
+ api: options.api,
132
+ ...(options.headers !== undefined ? { headers: options.headers } : {}),
133
+ ...(options.credentials !== undefined ? { credentials: options.credentials } : {}),
134
+ ...(options.fetch !== undefined ? { fetch: options.fetch } : {}),
135
+ }),
122
136
  readUIMessageStream: read,
123
137
  }),
124
138
  )
@@ -350,9 +364,9 @@ function diffMessage(
350
364
  * A fresh `toolStartTimes` map is scoped to ONE diffChunkStream call (one stream()/resume()
351
365
  * invocation), never shared across calls or threads.
352
366
  *
353
- * `resume()`'s underlying reconnectToStream call has no AbortSignal parameter in the current AI
354
- * SDK API (unlike sendMessages), so we can't cancel the in-flight fetch directly — checking
355
- * `signal.aborted` here at least stops yielding further deltas to an aborted caller promptly.
367
+ * Both `sendMessages` and `reconnectToStream` receive the caller's AbortSignal as `abortSignal`,
368
+ * so an abort cancels the in-flight request; checking `signal.aborted` here also stops yielding
369
+ * deltas from a stream that was already handed back.
356
370
  */
357
371
  async function* diffChunkStream<TPart>(
358
372
  chatId: string,
@@ -362,7 +376,10 @@ async function* diffChunkStream<TPart>(
362
376
  ): AsyncGenerator<TPart> {
363
377
  let prev: UIMessage | undefined
364
378
  const toolStartTimes = new Map<string, number>()
365
- for await (const curr of readStream<UIMessage>({ stream: chunkStream })) {
379
+ // terminateOnError: a mid-stream `error` chunk or a malformed chunk rejects the iteration, so
380
+ // the failure reaches useAgentThreadRuns (and its AgentError) instead of ending the turn as if
381
+ // it had completed.
382
+ for await (const curr of readStream<UIMessage>({ stream: chunkStream, terminateOnError: true })) {
366
383
  if (signal?.aborted) return
367
384
  for (const part of diffMessage(chatId, prev, curr, toolStartTimes)) {
368
385
  yield part as TPart
@@ -374,15 +391,15 @@ async function* diffChunkStream<TPart>(
374
391
  // ── aiSdkTransport ─────────────────────────────────────────────────────────────
375
392
 
376
393
  /**
377
- * Wraps AI SDK's `DefaultChatTransport` + `readUIMessageStream` into an AgentTransport.
394
+ * Wraps an AI SDK `ChatTransport` (`DefaultChatTransport` for `{ api }`, or your own via
395
+ * `{ transport }`) + `readUIMessageStream` into an AgentTransport.
378
396
  *
379
- * The returned object is immediately usable with useAgentStream (one fixed, stable chat id for
397
+ * The returned object is immediately usable as-is (one fixed, stable chat id for
380
398
  * the whole conversation). Call `.forThread(threadId)` to get a transport bound to a different
381
399
  * (caller-supplied) chat id — the per-thread form for useAgentThreadRuns.
382
400
  *
383
401
  * @example
384
402
  * const transport = aiSdkTransport<AgentPart>({ api: '/api/chat' })
385
- * const { send, parts, status } = useAgentStream({ transport })
386
403
  */
387
404
  export function aiSdkTransport<TPart = AgentPart>(
388
405
  options: AiSdkTransportOptions,
@@ -404,19 +421,19 @@ export function aiSdkTransport<TPart = AgentPart>(
404
421
  // need to wait on the server to hand us a run id (unlike a river-style protocol).
405
422
  yield { id: `${chatId}#start`, type: 'start', runId: chatId, resumeToken: chatId } as TPart
406
423
 
407
- const { httpTransport, readUIMessageStream: readStream } = await resolveAiSdk()
424
+ const { chatTransport, readUIMessageStream: readStream } = await resolveAiSdk()
408
425
  const userMessage: UIMessage = {
409
426
  // This id is what AI SDK's own backend persistence/dedup keys turns hang off — the same
410
427
  // idempotency-key cost as basalt's own ChatMessage.id (see mintMessageId's doc). Prefer
411
428
  // the caller's OWN idempotency key (ctx.messageId — the id useAgentThreadRuns.start()
412
429
  // already minted for this turn's ChatMessage) so the two never diverge for one turn; only
413
- // a caller that omits ctx (useAgentStream, a hand-rolled stream() call) falls back to
430
+ // a caller that omits ctx (a hand-rolled stream() call) falls back to
414
431
  // minting a fresh one here.
415
432
  id: ctx?.messageId ?? mintMessageId(),
416
433
  role: 'user',
417
434
  parts: [{ type: 'text', text: input }],
418
435
  }
419
- const chunkStream = await httpTransport.sendMessages({
436
+ const chunkStream = await chatTransport.sendMessages({
420
437
  chatId,
421
438
  messages: [userMessage],
422
439
  trigger: 'submit-message',
@@ -426,8 +443,11 @@ export function aiSdkTransport<TPart = AgentPart>(
426
443
  yield* diffChunkStream<TPart>(chatId, chunkStream, readStream, signal)
427
444
  },
428
445
  async *resume(resumeToken: string, signal?: AbortSignal): AsyncGenerator<TPart> {
429
- const { httpTransport, readUIMessageStream: readStream } = await resolveAiSdk()
430
- const chunkStream = await httpTransport.reconnectToStream({ chatId: resumeToken })
446
+ const { chatTransport, readUIMessageStream: readStream } = await resolveAiSdk()
447
+ const chunkStream = await chatTransport.reconnectToStream({
448
+ chatId: resumeToken,
449
+ ...(signal !== undefined ? { abortSignal: signal } : {}),
450
+ })
431
451
  if (chunkStream === null) return
432
452
  // resumeToken IS the chat id (see CHAT ID BINDING above) — reusing it as the id-namespace
433
453
  // here keeps replayed index-addressed ids identical to the ones the original run minted.