basalt-ui 1.40.3 → 2.0.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 (923) hide show
  1. package/AGENTS.md +50 -45
  2. package/CHANGELOG.md +543 -513
  3. package/MIGRATING.md +969 -37
  4. package/README.md +172 -367
  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 +30 -0
  15. package/agent/templates/DESIGN.md.tpl +2 -2
  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/check.yml +1 -1
  20. package/configs/oxlint-basalt.json +4 -10
  21. package/configs/oxlint-plugin.js +468 -847
  22. package/configs/oxlint-plugin.test.ts +662 -710
  23. package/configs/oxlint.json +10 -2
  24. package/dist/agent/ai-sdk-transport.d.ts +19 -7
  25. package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
  26. package/dist/agent/ai-sdk-transport.js +10 -7
  27. package/dist/{agent-chat → agent/chat}/composer.d.ts +16 -16
  28. package/dist/agent/chat/composer.d.ts.map +1 -0
  29. package/dist/{agent-chat → agent/chat}/composer.js +10 -9
  30. package/dist/{agent-chat → agent/chat}/message-affordances.d.ts +7 -6
  31. package/dist/agent/chat/message-affordances.d.ts.map +1 -0
  32. package/dist/agent/chat/relative-time.d.ts.map +1 -0
  33. package/dist/{agent-chat → agent/chat}/thread-feed-row.d.ts +18 -16
  34. package/dist/agent/chat/thread-feed-row.d.ts.map +1 -0
  35. package/dist/{agent-chat → agent/chat}/thread-feed-row.js +12 -11
  36. package/dist/{agent-chat → agent/chat}/thread-feed.d.ts +8 -8
  37. package/dist/agent/chat/thread-feed.d.ts.map +1 -0
  38. package/dist/{agent-chat → agent/chat}/thread-feed.js +12 -10
  39. package/dist/{agent-chat → agent/chat}/thread-message.d.ts +12 -9
  40. package/dist/agent/chat/thread-message.d.ts.map +1 -0
  41. package/dist/{agent-chat → agent/chat}/thread-message.js +15 -13
  42. package/dist/{agent-chat → agent/chat}/thread-outcome-card.d.ts +2 -2
  43. package/dist/agent/chat/thread-outcome-card.d.ts.map +1 -0
  44. package/dist/{agent-chat → agent/chat}/thread-outcome-card.js +3 -3
  45. package/dist/{agent-chat → agent/chat}/tool-chip.d.ts +5 -5
  46. package/dist/agent/chat/tool-chip.d.ts.map +1 -0
  47. package/dist/{agent-chat → agent/chat}/tool-chip.js +4 -4
  48. package/dist/agent/chat/use-keyboard-inset.d.ts.map +1 -0
  49. package/dist/{agent-chat → agent/chat}/use-keyboard-inset.js +1 -1
  50. package/dist/{agent-chat → agent/chat}/virtualize.d.ts +7 -7
  51. package/dist/agent/chat/virtualize.d.ts.map +1 -0
  52. package/dist/agent/error.d.ts +31 -0
  53. package/dist/agent/error.d.ts.map +1 -0
  54. package/dist/agent/error.js +18 -0
  55. package/dist/agent/foreign.d.ts +3 -2
  56. package/dist/agent/foreign.d.ts.map +1 -1
  57. package/dist/agent/history.d.ts +2 -36
  58. package/dist/agent/history.d.ts.map +1 -1
  59. package/dist/agent/history.js +0 -32
  60. package/dist/agent/id.d.ts +4 -5
  61. package/dist/agent/id.d.ts.map +1 -1
  62. package/dist/agent/index.d.ts +19 -52
  63. package/dist/agent/index.d.ts.map +1 -1
  64. package/dist/agent/index.js +10 -32
  65. package/dist/agent/outcome.d.ts +3 -14
  66. package/dist/agent/outcome.d.ts.map +1 -1
  67. package/dist/agent/outcome.js +0 -30
  68. package/dist/agent/part-list.d.ts +3 -3
  69. package/dist/agent/part-list.d.ts.map +1 -1
  70. package/dist/agent/parts.d.ts +23 -24
  71. package/dist/agent/parts.d.ts.map +1 -1
  72. package/dist/agent/run-committer.d.ts +23 -0
  73. package/dist/agent/run-committer.d.ts.map +1 -0
  74. package/dist/agent/run-committer.js +41 -0
  75. package/dist/agent/run-records.d.ts +77 -0
  76. package/dist/agent/run-records.d.ts.map +1 -0
  77. package/dist/agent/run-records.js +69 -0
  78. package/dist/agent/thread.d.ts +23 -47
  79. package/dist/agent/thread.d.ts.map +1 -1
  80. package/dist/agent/thread.js +3 -134
  81. package/dist/agent/transport.d.ts +6 -69
  82. package/dist/agent/transport.d.ts.map +1 -1
  83. package/dist/agent/transport.js +0 -18
  84. package/dist/agent/use-agent-thread-runs.d.ts +63 -26
  85. package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
  86. package/dist/agent/use-agent-thread-runs.js +202 -66
  87. package/dist/charts/BandStrip.d.ts +46 -0
  88. package/dist/charts/BandStrip.d.ts.map +1 -0
  89. package/dist/charts/BandStrip.js +151 -0
  90. package/dist/charts/Bars.d.ts +19 -0
  91. package/dist/charts/Bars.d.ts.map +1 -0
  92. package/dist/charts/Bars.js +77 -0
  93. package/dist/charts/CartesianChart.d.ts +57 -0
  94. package/dist/charts/CartesianChart.d.ts.map +1 -0
  95. package/dist/charts/CartesianChart.js +121 -0
  96. package/dist/charts/ChartCard.d.ts +34 -0
  97. package/dist/charts/ChartCard.d.ts.map +1 -0
  98. package/dist/charts/ChartCard.js +115 -0
  99. package/dist/charts/Donut.d.ts +25 -0
  100. package/dist/charts/Donut.d.ts.map +1 -0
  101. package/dist/charts/Donut.js +191 -0
  102. package/dist/charts/DualPanel.d.ts +47 -0
  103. package/dist/charts/DualPanel.d.ts.map +1 -0
  104. package/dist/charts/DualPanel.js +214 -0
  105. package/dist/charts/Heatmap.d.ts +41 -0
  106. package/dist/charts/Heatmap.d.ts.map +1 -0
  107. package/dist/charts/Heatmap.js +216 -0
  108. package/dist/charts/Lines.d.ts +11 -0
  109. package/dist/charts/Lines.d.ts.map +1 -0
  110. package/dist/charts/Lines.js +114 -0
  111. package/dist/charts/MirroredBars.d.ts +44 -0
  112. package/dist/charts/MirroredBars.d.ts.map +1 -0
  113. package/dist/charts/MirroredBars.js +190 -0
  114. package/dist/charts/Sparkline.d.ts +22 -0
  115. package/dist/charts/Sparkline.d.ts.map +1 -0
  116. package/dist/charts/Sparkline.js +129 -0
  117. package/dist/charts/StackedArea.d.ts +15 -0
  118. package/dist/charts/StackedArea.d.ts.map +1 -0
  119. package/dist/charts/StackedArea.js +46 -0
  120. package/dist/charts/box.d.ts +38 -0
  121. package/dist/charts/box.d.ts.map +1 -0
  122. package/dist/charts/box.js +72 -0
  123. package/dist/charts/card-context.d.ts +3 -0
  124. package/dist/charts/card-context.d.ts.map +1 -0
  125. package/dist/charts/card-context.js +7 -0
  126. package/dist/charts/chart-box.module.css +64 -0
  127. package/{src/content/article-card.module.css.d.ts → dist/charts/chart-box.module.css.d.ts} +5 -9
  128. package/dist/charts/chart-card.module.css +25 -0
  129. package/dist/{dashboard/widget-grid.module.css.d.ts → charts/chart-card.module.css.d.ts} +1 -3
  130. package/dist/charts/chart-legend.module.css +38 -0
  131. package/{src/dashboard/widget-grid.module.css.d.ts → dist/charts/chart-legend.module.css.d.ts} +3 -3
  132. package/dist/charts/compile.d.ts +62 -0
  133. package/dist/charts/compile.d.ts.map +1 -0
  134. package/dist/charts/compile.js +386 -0
  135. package/dist/charts/cursor.d.ts +50 -0
  136. package/dist/charts/cursor.d.ts.map +1 -0
  137. package/dist/charts/cursor.js +157 -0
  138. package/dist/charts/curves.d.ts +12 -0
  139. package/dist/charts/curves.d.ts.map +1 -0
  140. package/dist/charts/curves.js +86 -0
  141. package/dist/charts/donut.module.css +54 -0
  142. package/dist/{content/article-card.module.css.d.ts → charts/donut.module.css.d.ts} +2 -9
  143. package/dist/charts/host.d.ts +17 -0
  144. package/dist/charts/host.d.ts.map +1 -0
  145. package/dist/charts/host.js +35 -0
  146. package/dist/charts/index.d.ts +18 -53
  147. package/dist/charts/index.d.ts.map +1 -1
  148. package/dist/charts/index.js +17 -189
  149. package/dist/charts/legend.d.ts +23 -0
  150. package/dist/charts/legend.d.ts.map +1 -0
  151. package/dist/charts/legend.js +160 -0
  152. package/dist/charts/marks.d.ts +25 -0
  153. package/dist/charts/marks.d.ts.map +1 -0
  154. package/dist/charts/marks.js +128 -0
  155. package/dist/charts/panel.d.ts +56 -0
  156. package/dist/charts/panel.d.ts.map +1 -0
  157. package/dist/charts/panel.js +123 -0
  158. package/dist/charts/scales.d.ts +44 -0
  159. package/dist/charts/scales.d.ts.map +1 -0
  160. package/dist/charts/scales.js +163 -0
  161. package/dist/charts/sizing.d.ts +12 -0
  162. package/dist/charts/sizing.d.ts.map +1 -0
  163. package/dist/charts/sizing.js +33 -0
  164. package/dist/charts/state.d.ts +17 -0
  165. package/dist/charts/state.d.ts.map +1 -0
  166. package/dist/charts/state.js +53 -0
  167. package/dist/charts/theme.d.ts +38 -19
  168. package/dist/charts/theme.d.ts.map +1 -1
  169. package/dist/charts/theme.js +48 -26
  170. package/dist/charts/types.d.ts +227 -0
  171. package/dist/charts/types.d.ts.map +1 -0
  172. package/dist/charts/types.js +4 -0
  173. package/dist/cli/audit-allows.d.ts +4 -17
  174. package/dist/cli/audit-allows.d.ts.map +1 -1
  175. package/dist/cli/config.d.ts +14 -43
  176. package/dist/cli/config.d.ts.map +1 -1
  177. package/dist/cli/doctor-upgrade.d.ts +31 -0
  178. package/dist/cli/doctor-upgrade.d.ts.map +1 -0
  179. package/dist/cli/doctor-upgrade.js +269 -0
  180. package/dist/cli/doctor.d.ts +13 -26
  181. package/dist/cli/doctor.d.ts.map +1 -1
  182. package/dist/cli/doctor.js +79 -8
  183. package/dist/cli/help.d.ts.map +1 -1
  184. package/dist/cli/help.js +2 -4
  185. package/dist/cli/index.d.ts +68 -135
  186. package/dist/cli/index.d.ts.map +1 -1
  187. package/dist/cli/index.js +89 -76
  188. package/dist/cli/init.d.ts.map +1 -1
  189. package/dist/cli/init.js +43 -27
  190. package/dist/cli/sync.d.ts +5 -21
  191. package/dist/cli/sync.d.ts.map +1 -1
  192. package/dist/cli/sync.js +4 -6
  193. package/dist/cli/tokens-css.d.ts +7 -28
  194. package/dist/cli/tokens-css.d.ts.map +1 -1
  195. package/dist/commands/ShortcutsHelp.d.ts.map +1 -1
  196. package/dist/commands/ShortcutsHelp.js +4 -5
  197. package/dist/commands/define-commands.d.ts +15 -31
  198. package/dist/commands/define-commands.d.ts.map +1 -1
  199. package/dist/commands/define-commands.js +1 -11
  200. package/dist/commands/define-overlays.d.ts +5 -19
  201. package/dist/commands/define-overlays.d.ts.map +1 -1
  202. package/dist/commands/define-overlays.js +3 -11
  203. package/dist/commands/index.d.ts +10 -40
  204. package/dist/commands/index.d.ts.map +1 -1
  205. package/dist/commands/index.js +9 -46
  206. package/dist/{notifications → commands/notifications}/bell.d.ts +1 -1
  207. package/dist/commands/notifications/bell.d.ts.map +1 -0
  208. package/dist/{notifications → commands/notifications}/center.d.ts +2 -2
  209. package/dist/commands/notifications/center.d.ts.map +1 -0
  210. package/dist/{notifications → commands/notifications}/center.js +2 -2
  211. package/dist/{notifications → commands/notifications}/define-notifications.d.ts +3 -3
  212. package/dist/commands/notifications/define-notifications.d.ts.map +1 -0
  213. package/dist/commands/notifications/notify.d.ts +44 -0
  214. package/dist/commands/notifications/notify.d.ts.map +1 -0
  215. package/dist/commands/notifications/notify.js +79 -0
  216. package/dist/{notifications → commands/notifications}/store.d.ts +2 -0
  217. package/dist/commands/notifications/store.d.ts.map +1 -0
  218. package/dist/{notifications → commands/notifications}/store.js +4 -0
  219. package/dist/commands/projectors.d.ts +1 -131
  220. package/dist/commands/projectors.d.ts.map +1 -1
  221. package/dist/commands/projectors.js +2 -73
  222. package/dist/commands/shell-bridge.d.ts +3 -3
  223. package/dist/commands/shortcut-format.d.ts +5 -4
  224. package/dist/commands/shortcut-format.d.ts.map +1 -1
  225. package/dist/common/errors.d.ts +3 -3
  226. package/dist/common/use-measured-widths.d.ts.map +1 -1
  227. package/dist/common/use-measured-widths.js +5 -3
  228. package/dist/common/validate.d.ts +2 -2
  229. package/dist/content/article-layout.d.ts.map +1 -1
  230. package/dist/content/article-layout.js +3 -3
  231. package/dist/content/article-model.d.ts +1 -46
  232. package/dist/content/article-model.d.ts.map +1 -1
  233. package/dist/content/article-model.js +1 -29
  234. package/dist/content/copy-action.d.ts +1 -1
  235. package/dist/content/glyphs.d.ts +1 -1
  236. package/dist/content/index.d.ts +11 -41
  237. package/dist/content/index.d.ts.map +1 -1
  238. package/dist/content/index.js +3 -35
  239. package/dist/content/markdown.d.ts +1 -1
  240. package/dist/content/markdown.d.ts.map +1 -1
  241. package/dist/content/markdown.js +1 -1
  242. package/dist/content/mermaid.d.ts.map +1 -1
  243. package/dist/content/mermaid.js +7 -7
  244. package/dist/content/slug.d.ts +1 -8
  245. package/dist/content/slug.d.ts.map +1 -1
  246. package/dist/content/slug.js +1 -8
  247. package/dist/content/url-hardening.d.ts +2 -2
  248. package/dist/content/url-hardening.d.ts.map +1 -1
  249. package/dist/content/url-hardening.js +2 -0
  250. package/dist/controls/actions.d.ts +16 -1
  251. package/dist/controls/actions.d.ts.map +1 -1
  252. package/dist/controls/enum-filter.d.ts +1 -1
  253. package/dist/controls/enum-filter.d.ts.map +1 -1
  254. package/dist/controls/filter-context.d.ts.map +1 -1
  255. package/dist/controls/filter-context.js +3 -1
  256. package/dist/controls/filter-set.js +4 -6
  257. package/dist/controls/form-layout.d.ts +1 -1
  258. package/dist/controls/form-layout.d.ts.map +1 -1
  259. package/dist/controls/form-layout.js +1 -1
  260. package/dist/controls/glyphs.d.ts +0 -2
  261. package/dist/controls/glyphs.d.ts.map +1 -1
  262. package/dist/controls/glyphs.js +0 -7
  263. package/dist/controls/index.d.ts +12 -17
  264. package/dist/controls/index.d.ts.map +1 -1
  265. package/dist/controls/index.js +5 -39
  266. package/dist/controls/multi-select-filter.d.ts +4 -3
  267. package/dist/controls/multi-select-filter.d.ts.map +1 -1
  268. package/dist/controls/number-filter.d.ts +4 -3
  269. package/dist/controls/number-filter.d.ts.map +1 -1
  270. package/dist/controls/number-filter.js +3 -1
  271. package/dist/controls/range-filter.d.ts +4 -3
  272. package/dist/controls/range-filter.d.ts.map +1 -1
  273. package/dist/controls/search-filter.d.ts +4 -3
  274. package/dist/controls/search-filter.d.ts.map +1 -1
  275. package/dist/controls/search-filter.js +19 -14
  276. package/dist/controls/select-filter.d.ts +4 -3
  277. package/dist/controls/select-filter.d.ts.map +1 -1
  278. package/dist/controls/sync-button.d.ts.map +1 -1
  279. package/dist/controls/sync-button.js +12 -15
  280. package/dist/controls/toggle-filter.d.ts +4 -3
  281. package/dist/controls/toggle-filter.d.ts.map +1 -1
  282. package/dist/controls/uncontrolled.d.ts +12 -0
  283. package/dist/controls/uncontrolled.d.ts.map +1 -0
  284. package/dist/controls/view-tabs.d.ts +2 -2
  285. package/dist/controls/view-tabs.d.ts.map +1 -1
  286. package/dist/controls-dates/index.d.ts +0 -1
  287. package/dist/controls-dates/index.d.ts.map +1 -1
  288. package/dist/dashboard/index.d.ts +7 -9
  289. package/dist/dashboard/index.d.ts.map +1 -1
  290. package/dist/dashboard/index.js +3 -23
  291. package/dist/dashboard/section.d.ts +4 -6
  292. package/dist/dashboard/section.d.ts.map +1 -1
  293. package/dist/dashboard/section.js +4 -10
  294. package/dist/dashboard/stat-card.d.ts +4 -4
  295. package/dist/dashboard/stat-card.d.ts.map +1 -1
  296. package/dist/dashboard/stat-card.js +3 -3
  297. package/dist/dashboard/widget-header.module.css +9 -7
  298. package/dist/dev-dock.d.ts.map +1 -1
  299. package/dist/dev-dock.js +6 -1
  300. package/dist/format/date.d.ts +0 -34
  301. package/dist/format/date.d.ts.map +1 -1
  302. package/dist/format/date.js +0 -54
  303. package/dist/format/index.d.ts +7 -22
  304. package/dist/format/index.d.ts.map +1 -1
  305. package/dist/format/index.js +2 -43
  306. package/dist/format/number.d.ts +3 -14
  307. package/dist/format/number.d.ts.map +1 -1
  308. package/dist/format/number.js +0 -13
  309. package/dist/format/shared.d.ts +2 -3
  310. package/dist/format/shared.d.ts.map +1 -1
  311. package/dist/forms/index.d.ts +0 -11
  312. package/dist/forms/index.d.ts.map +1 -1
  313. package/dist/forms/index.js +1 -14
  314. package/dist/guard/index.d.ts +6 -21
  315. package/dist/guard/index.d.ts.map +1 -1
  316. package/dist/guard/index.js +27 -115
  317. package/dist/guard/types.d.ts +7 -18
  318. package/dist/guard/types.d.ts.map +1 -1
  319. package/dist/index.d.ts +16 -48
  320. package/dist/index.d.ts.map +1 -1
  321. package/dist/index.js +21 -117
  322. package/dist/provider/create-router.d.ts +44 -0
  323. package/dist/provider/create-router.d.ts.map +1 -0
  324. package/dist/provider/create-router.js +62 -0
  325. package/dist/provider/hotkeys.d.ts +8 -0
  326. package/dist/provider/hotkeys.d.ts.map +1 -0
  327. package/dist/provider/hotkeys.js +50 -0
  328. package/dist/provider/index.d.ts +33 -110
  329. package/dist/provider/index.d.ts.map +1 -1
  330. package/dist/provider/index.js +182 -82
  331. package/dist/provider/lab-theme.d.ts.map +1 -1
  332. package/dist/provider/route-transition.d.ts +76 -0
  333. package/dist/provider/route-transition.d.ts.map +1 -0
  334. package/dist/provider/route-transition.js +98 -0
  335. package/dist/provider/spotlight-actions.d.ts +10 -0
  336. package/dist/provider/spotlight-actions.d.ts.map +1 -0
  337. package/dist/provider/spotlight-actions.js +55 -0
  338. package/dist/provider/test-router.d.ts +6 -0
  339. package/dist/provider/test-router.d.ts.map +1 -0
  340. package/dist/provider/test-router.js +18 -0
  341. package/dist/query-client.d.ts +4 -20
  342. package/dist/query-client.d.ts.map +1 -1
  343. package/dist/query-client.js +2 -2
  344. package/dist/router-tanstack/index.d.ts +18 -64
  345. package/dist/router-tanstack/index.d.ts.map +1 -1
  346. package/dist/router-tanstack/index.js +2 -16
  347. package/dist/router-tanstack/nav.d.ts +12 -1
  348. package/dist/router-tanstack/nav.d.ts.map +1 -1
  349. package/dist/router-tanstack/nav.js +8 -1
  350. package/dist/router-tanstack/search-store.d.ts +1 -1
  351. package/dist/router-tanstack/search-store.d.ts.map +1 -1
  352. package/dist/router-tanstack/use-nav.d.ts +8 -9
  353. package/dist/router-tanstack/use-nav.d.ts.map +1 -1
  354. package/dist/router-tanstack/use-nav.js +20 -1
  355. package/dist/shell/app-mobile-nav.d.ts.map +1 -1
  356. package/dist/shell/app-sidebar.js +1 -1
  357. package/dist/shell/index.d.ts +31 -10
  358. package/dist/shell/index.d.ts.map +1 -1
  359. package/dist/shell/index.js +14 -3
  360. package/dist/shell/page-aside.d.ts +2 -2
  361. package/dist/shell/page-aside.d.ts.map +1 -1
  362. package/dist/shell/page-aside.js +31 -12
  363. package/dist/shell/page-bar.d.ts +2 -2
  364. package/dist/shell/page-bar.d.ts.map +1 -1
  365. package/dist/shell/page-bar.js +1 -1
  366. package/dist/state.d.ts +10 -12
  367. package/dist/state.d.ts.map +1 -1
  368. package/dist/state.js +4 -6
  369. package/dist/styles.css +107 -7
  370. package/dist/surfaces.d.ts +28 -103
  371. package/dist/surfaces.d.ts.map +1 -1
  372. package/dist/surfaces.js +54 -143
  373. package/dist/{data → table}/data-table-state.d.ts +1 -1
  374. package/dist/table/data-table-state.d.ts.map +1 -0
  375. package/dist/{data → table}/data-table-state.js +4 -3
  376. package/dist/{data → table}/data-table.d.ts +28 -49
  377. package/dist/table/data-table.d.ts.map +1 -0
  378. package/dist/{data → table}/data-table.js +74 -60
  379. package/dist/table/index.d.ts +18 -0
  380. package/dist/table/index.d.ts.map +1 -0
  381. package/dist/{data/table.js → table/index.js} +1 -1
  382. package/dist/table/query-branch.d.ts.map +1 -0
  383. package/dist/table/table-features.d.ts +69 -0
  384. package/dist/table/table-features.d.ts.map +1 -0
  385. package/dist/table/table-features.js +49 -0
  386. package/dist/telemetry.d.ts +77 -0
  387. package/dist/telemetry.d.ts.map +1 -0
  388. package/dist/telemetry.js +33 -0
  389. package/dist/theme/index.d.ts +10 -21
  390. package/dist/theme/index.d.ts.map +1 -1
  391. package/dist/theme/index.js +3 -14
  392. package/dist/theme/theme-toggle.d.ts.map +1 -1
  393. package/dist/theme/theme-toggle.js +7 -33
  394. package/dist/theme/theme-toggle.module.css +30 -0
  395. package/dist/theme/theme-toggle.module.css.d.ts +10 -0
  396. package/dist/theme-lab/derive-controls.d.ts.map +1 -1
  397. package/dist/theme-lab/derive-controls.js +5 -3
  398. package/dist/theme-lab/derive-state.d.ts.map +1 -1
  399. package/dist/theme-lab/derive-state.js +2 -1
  400. package/dist/tokens/core.d.ts +360 -0
  401. package/dist/tokens/core.d.ts.map +1 -0
  402. package/dist/tokens/core.js +708 -0
  403. package/dist/tokens/derive.d.ts +1 -1
  404. package/dist/tokens/derive.d.ts.map +1 -1
  405. package/dist/tokens/index.d.ts +5 -373
  406. package/dist/tokens/index.d.ts.map +1 -1
  407. package/dist/tokens/index.js +8 -700
  408. package/dist/tokens/palette.d.ts +2 -6
  409. package/dist/tokens/palette.d.ts.map +1 -1
  410. package/dist/tokens/palette.js +1 -4
  411. package/dist/vite.d.ts +4 -3
  412. package/dist/vite.d.ts.map +1 -1
  413. package/llms.txt +43 -85
  414. package/package.json +77 -170
  415. package/src/agent/ai-sdk-transport.ts +57 -37
  416. package/src/{agent-chat → agent/chat}/composer.tsx +29 -30
  417. package/src/{agent-chat → agent/chat}/message-affordances.ts +8 -5
  418. package/src/{agent-chat → agent/chat}/thread-feed-row.tsx +30 -35
  419. package/src/{agent-chat → agent/chat}/thread-feed.tsx +40 -35
  420. package/src/{agent-chat → agent/chat}/thread-message.tsx +37 -35
  421. package/src/{agent-chat → agent/chat}/thread-outcome-card.tsx +5 -5
  422. package/src/{agent-chat → agent/chat}/tool-chip.tsx +12 -12
  423. package/src/{agent-chat → agent/chat}/use-keyboard-inset.ts +1 -1
  424. package/src/{agent-chat → agent/chat}/virtualize.ts +5 -5
  425. package/src/agent/error.ts +43 -0
  426. package/src/agent/foreign.ts +3 -2
  427. package/src/agent/history.ts +2 -107
  428. package/src/agent/id.ts +4 -5
  429. package/src/agent/index.ts +23 -112
  430. package/src/agent/outcome.ts +3 -56
  431. package/src/agent/part-list.tsx +3 -3
  432. package/src/agent/parts.ts +23 -22
  433. package/src/agent/run-committer.ts +64 -0
  434. package/src/agent/run-records.ts +147 -0
  435. package/src/agent/thread.ts +24 -231
  436. package/src/agent/transport.ts +6 -96
  437. package/src/agent/use-agent-thread-runs.ts +364 -199
  438. package/src/charts/BandStrip.tsx +276 -0
  439. package/src/charts/Bars.tsx +141 -0
  440. package/src/charts/CartesianChart.tsx +206 -0
  441. package/src/charts/ChartCard.tsx +178 -0
  442. package/src/charts/Donut.tsx +256 -0
  443. package/src/charts/DualPanel.tsx +326 -0
  444. package/src/charts/Heatmap.tsx +282 -0
  445. package/src/charts/Lines.tsx +151 -0
  446. package/src/charts/MirroredBars.tsx +303 -0
  447. package/src/charts/Sparkline.tsx +176 -0
  448. package/src/charts/StackedArea.tsx +80 -0
  449. package/src/charts/box.tsx +96 -0
  450. package/src/charts/card-context.ts +11 -0
  451. package/src/charts/chart-box.module.css +64 -0
  452. package/src/charts/chart-box.module.css.d.ts +12 -0
  453. package/src/charts/chart-card.module.css +25 -0
  454. package/src/charts/chart-card.module.css.d.ts +8 -0
  455. package/src/charts/chart-legend.module.css +38 -0
  456. package/src/charts/chart-legend.module.css.d.ts +10 -0
  457. package/src/charts/compile.ts +585 -0
  458. package/src/charts/cursor.ts +282 -0
  459. package/src/charts/curves.ts +111 -0
  460. package/src/charts/donut.module.css +54 -0
  461. package/src/charts/donut.module.css.d.ts +9 -0
  462. package/src/charts/host.tsx +60 -0
  463. package/src/charts/index.ts +41 -178
  464. package/src/charts/legend.tsx +204 -0
  465. package/src/charts/marks.ts +201 -0
  466. package/src/charts/panel.tsx +227 -0
  467. package/src/charts/scales.ts +237 -0
  468. package/src/charts/sizing.ts +47 -0
  469. package/src/charts/state.tsx +80 -0
  470. package/src/charts/theme.ts +65 -0
  471. package/src/charts/types.ts +242 -0
  472. package/src/cli/audit-allows.ts +8 -30
  473. package/src/cli/config.ts +14 -43
  474. package/src/cli/doctor-upgrade.ts +392 -0
  475. package/src/cli/doctor.ts +120 -68
  476. package/src/cli/help.ts +2 -4
  477. package/src/cli/index.ts +161 -276
  478. package/src/cli/init.ts +60 -37
  479. package/src/cli/sync.ts +13 -45
  480. package/src/cli/tokens-css.ts +7 -28
  481. package/src/commands/ShortcutsHelp.tsx +8 -9
  482. package/src/commands/define-commands.ts +16 -43
  483. package/src/commands/define-overlays.ts +12 -36
  484. package/src/commands/index.ts +11 -94
  485. package/src/{notifications → commands/notifications}/bell.tsx +2 -2
  486. package/src/{notifications → commands/notifications}/center.tsx +7 -5
  487. package/src/{notifications → commands/notifications}/define-notifications.ts +3 -3
  488. package/src/commands/notifications/notify.tsx +158 -0
  489. package/src/{notifications → commands/notifications}/store.ts +10 -2
  490. package/src/commands/projectors.ts +5 -225
  491. package/src/commands/shell-bridge.ts +5 -5
  492. package/src/commands/shortcut-format.ts +5 -4
  493. package/src/common/errors.ts +3 -3
  494. package/src/common/use-measured-widths.ts +6 -3
  495. package/src/common/validate.ts +2 -2
  496. package/src/content/article-layout.tsx +37 -38
  497. package/src/content/article-model.ts +1 -84
  498. package/src/content/copy-action.tsx +1 -1
  499. package/src/content/glyphs.tsx +1 -1
  500. package/src/content/index.ts +12 -83
  501. package/src/content/markdown.tsx +4 -3
  502. package/src/content/mermaid.tsx +9 -7
  503. package/src/content/slug.ts +1 -16
  504. package/src/content/url-hardening.ts +8 -2
  505. package/src/controls/actions.tsx +24 -1
  506. package/src/controls/enum-filter.tsx +1 -1
  507. package/src/controls/filter-context.tsx +3 -1
  508. package/src/controls/filter-set.tsx +5 -7
  509. package/src/controls/form-layout.tsx +2 -2
  510. package/src/controls/glyphs.tsx +0 -10
  511. package/src/controls/index.ts +13 -64
  512. package/src/controls/multi-select-filter.tsx +5 -4
  513. package/src/controls/number-filter.tsx +8 -4
  514. package/src/controls/range-filter.tsx +5 -4
  515. package/src/controls/search-filter.tsx +25 -19
  516. package/src/controls/select-filter.tsx +5 -4
  517. package/src/controls/sync-button.tsx +18 -20
  518. package/src/controls/toggle-filter.tsx +5 -4
  519. package/src/controls/uncontrolled.ts +12 -0
  520. package/src/controls/view-tabs.tsx +3 -3
  521. package/src/controls-dates/date-range-picker.tsx +1 -1
  522. package/src/controls-dates/index.ts +0 -1
  523. package/src/dashboard/index.ts +7 -48
  524. package/src/dashboard/section.tsx +11 -40
  525. package/src/dashboard/stat-card.tsx +14 -16
  526. package/src/dashboard/widget-header.module.css +9 -7
  527. package/src/dev-dock.tsx +14 -27
  528. package/src/format/date.ts +2 -92
  529. package/src/format/index.ts +7 -53
  530. package/src/format/number.ts +3 -26
  531. package/src/format/shared.ts +2 -3
  532. package/src/forms/index.ts +0 -23
  533. package/src/guard/index.ts +37 -192
  534. package/src/guard/types.ts +6 -19
  535. package/src/index.ts +30 -282
  536. package/src/provider/create-router.tsx +138 -0
  537. package/src/provider/hotkeys.ts +70 -0
  538. package/src/provider/index.tsx +260 -230
  539. package/src/provider/lab-theme.ts +3 -2
  540. package/src/provider/route-transition.ts +199 -0
  541. package/src/provider/spotlight-actions.tsx +69 -0
  542. package/src/provider/test-router.tsx +25 -0
  543. package/src/query-client.ts +4 -22
  544. package/src/router-tanstack/index.ts +18 -112
  545. package/src/router-tanstack/nav.ts +28 -2
  546. package/src/router-tanstack/search-store.ts +9 -2
  547. package/src/router-tanstack/use-nav.ts +47 -13
  548. package/src/shell/app-mobile-nav.tsx +3 -2
  549. package/src/shell/app-sidebar.tsx +1 -1
  550. package/src/shell/aside-docking.ts +1 -1
  551. package/src/shell/index.tsx +61 -20
  552. package/src/shell/page-aside.tsx +47 -23
  553. package/src/shell/page-bar.tsx +3 -3
  554. package/src/shell/page-title.tsx +1 -1
  555. package/src/state.ts +11 -37
  556. package/src/styles.css +107 -7
  557. package/src/surfaces.ts +56 -151
  558. package/src/{data → table}/data-table-state.ts +5 -4
  559. package/src/{data → table}/data-table.tsx +170 -161
  560. package/src/table/index.ts +18 -0
  561. package/src/table/table-features.ts +102 -0
  562. package/src/telemetry.ts +110 -0
  563. package/src/theme/index.ts +22 -47
  564. package/src/theme/theme-toggle.module.css +30 -0
  565. package/src/theme/theme-toggle.module.css.d.ts +10 -0
  566. package/src/theme/theme-toggle.tsx +15 -43
  567. package/src/theme-lab/derive-controls.tsx +5 -3
  568. package/src/theme-lab/derive-state.ts +2 -1
  569. package/src/tokens/core.ts +1163 -0
  570. package/src/tokens/derive.ts +1 -1
  571. package/src/tokens/index.ts +14 -1181
  572. package/src/tokens/palette.ts +3 -7
  573. package/src/vite.ts +3 -3
  574. package/agent/templates/CLAUDE-block.md.tpl +0 -40
  575. package/agent/templates/query-client.ts.tpl +0 -26
  576. package/dist/agent/adapter.d.ts +0 -150
  577. package/dist/agent/adapter.d.ts.map +0 -1
  578. package/dist/agent/adapter.js +0 -482
  579. package/dist/agent/use-agent-stream.d.ts +0 -35
  580. package/dist/agent/use-agent-stream.d.ts.map +0 -1
  581. package/dist/agent/use-agent-stream.js +0 -59
  582. package/dist/agent-chat/composer.d.ts.map +0 -1
  583. package/dist/agent-chat/index.d.ts +0 -31
  584. package/dist/agent-chat/index.d.ts.map +0 -1
  585. package/dist/agent-chat/index.js +0 -19
  586. package/dist/agent-chat/message-affordances.d.ts.map +0 -1
  587. package/dist/agent-chat/relative-time.d.ts.map +0 -1
  588. package/dist/agent-chat/thread-detail-panel.d.ts +0 -28
  589. package/dist/agent-chat/thread-detail-panel.d.ts.map +0 -1
  590. package/dist/agent-chat/thread-detail-panel.js +0 -115
  591. package/dist/agent-chat/thread-feed-row.d.ts.map +0 -1
  592. package/dist/agent-chat/thread-feed.d.ts.map +0 -1
  593. package/dist/agent-chat/thread-message.d.ts.map +0 -1
  594. package/dist/agent-chat/thread-outcome-card.d.ts.map +0 -1
  595. package/dist/agent-chat/thread-workspace.d.ts +0 -44
  596. package/dist/agent-chat/thread-workspace.d.ts.map +0 -1
  597. package/dist/agent-chat/thread-workspace.js +0 -153
  598. package/dist/agent-chat/tool-chip.d.ts.map +0 -1
  599. package/dist/agent-chat/use-keyboard-inset.d.ts.map +0 -1
  600. package/dist/agent-chat/virtualize.d.ts.map +0 -1
  601. package/dist/charts/cursor/resolve.d.ts +0 -75
  602. package/dist/charts/cursor/resolve.d.ts.map +0 -1
  603. package/dist/charts/cursor/resolve.js +0 -91
  604. package/dist/charts/cursor/scope.d.ts +0 -20
  605. package/dist/charts/cursor/scope.d.ts.map +0 -1
  606. package/dist/charts/cursor/scope.js +0 -20
  607. package/dist/charts/cursor/store.d.ts +0 -35
  608. package/dist/charts/cursor/store.d.ts.map +0 -1
  609. package/dist/charts/cursor/store.js +0 -25
  610. package/dist/charts/cursor/touch-pin.d.ts +0 -45
  611. package/dist/charts/cursor/touch-pin.d.ts.map +0 -1
  612. package/dist/charts/cursor/touch-pin.js +0 -79
  613. package/dist/charts/hooks/use-discrete-cursor.d.ts +0 -66
  614. package/dist/charts/hooks/use-discrete-cursor.d.ts.map +0 -1
  615. package/dist/charts/hooks/use-discrete-cursor.js +0 -198
  616. package/dist/charts/hooks/use-hysteresis.d.ts +0 -18
  617. package/dist/charts/hooks/use-hysteresis.d.ts.map +0 -1
  618. package/dist/charts/hooks/use-hysteresis.js +0 -12
  619. package/dist/charts/hooks/useBandPlot.d.ts +0 -145
  620. package/dist/charts/hooks/useBandPlot.d.ts.map +0 -1
  621. package/dist/charts/hooks/useBandPlot.js +0 -178
  622. package/dist/charts/hooks/useChartCursor.d.ts +0 -75
  623. package/dist/charts/hooks/useChartCursor.d.ts.map +0 -1
  624. package/dist/charts/hooks/useChartCursor.js +0 -200
  625. package/dist/charts/hooks/useChartSize.d.ts +0 -29
  626. package/dist/charts/hooks/useChartSize.d.ts.map +0 -1
  627. package/dist/charts/hooks/useChartSize.js +0 -8
  628. package/dist/charts/kinds/BandStrip.d.ts +0 -132
  629. package/dist/charts/kinds/BandStrip.d.ts.map +0 -1
  630. package/dist/charts/kinds/BandStrip.js +0 -241
  631. package/dist/charts/kinds/Bars.d.ts +0 -141
  632. package/dist/charts/kinds/Bars.d.ts.map +0 -1
  633. package/dist/charts/kinds/Bars.js +0 -343
  634. package/dist/charts/kinds/Donut.d.ts +0 -77
  635. package/dist/charts/kinds/Donut.d.ts.map +0 -1
  636. package/dist/charts/kinds/Donut.js +0 -245
  637. package/dist/charts/kinds/DualPanel.d.ts +0 -111
  638. package/dist/charts/kinds/DualPanel.d.ts.map +0 -1
  639. package/dist/charts/kinds/DualPanel.js +0 -471
  640. package/dist/charts/kinds/Heatmap.d.ts +0 -85
  641. package/dist/charts/kinds/Heatmap.d.ts.map +0 -1
  642. package/dist/charts/kinds/Heatmap.js +0 -243
  643. package/dist/charts/kinds/MirroredBars.d.ts +0 -98
  644. package/dist/charts/kinds/MirroredBars.d.ts.map +0 -1
  645. package/dist/charts/kinds/MirroredBars.js +0 -292
  646. package/dist/charts/kinds/MultiLine.d.ts +0 -87
  647. package/dist/charts/kinds/MultiLine.d.ts.map +0 -1
  648. package/dist/charts/kinds/MultiLine.js +0 -176
  649. package/dist/charts/kinds/StackedArea.d.ts +0 -73
  650. package/dist/charts/kinds/StackedArea.d.ts.map +0 -1
  651. package/dist/charts/kinds/StackedArea.js +0 -135
  652. package/dist/charts/kinds/ZonedLine.d.ts +0 -97
  653. package/dist/charts/kinds/ZonedLine.d.ts.map +0 -1
  654. package/dist/charts/kinds/ZonedLine.js +0 -155
  655. package/dist/charts/kinds/band-chrome.d.ts +0 -31
  656. package/dist/charts/kinds/band-chrome.d.ts.map +0 -1
  657. package/dist/charts/kinds/band-chrome.js +0 -71
  658. package/dist/charts/kinds/donut-layout.d.ts +0 -47
  659. package/dist/charts/kinds/donut-layout.d.ts.map +0 -1
  660. package/dist/charts/kinds/donut-layout.js +0 -52
  661. package/dist/charts/layout/auto-margin.d.ts +0 -122
  662. package/dist/charts/layout/auto-margin.d.ts.map +0 -1
  663. package/dist/charts/layout/auto-margin.js +0 -81
  664. package/dist/charts/layout/end-labels.d.ts +0 -64
  665. package/dist/charts/layout/end-labels.d.ts.map +0 -1
  666. package/dist/charts/layout/end-labels.js +0 -76
  667. package/dist/charts/layout/log-ticks.d.ts +0 -27
  668. package/dist/charts/layout/log-ticks.d.ts.map +0 -1
  669. package/dist/charts/layout/log-ticks.js +0 -42
  670. package/dist/charts/primitives/AreaGradient.d.ts +0 -18
  671. package/dist/charts/primitives/AreaGradient.d.ts.map +0 -1
  672. package/dist/charts/primitives/AreaGradient.js +0 -13
  673. package/dist/charts/primitives/Axes.d.ts +0 -83
  674. package/dist/charts/primitives/Axes.d.ts.map +0 -1
  675. package/dist/charts/primitives/Axes.js +0 -168
  676. package/dist/charts/primitives/CartesianChart.d.ts +0 -257
  677. package/dist/charts/primitives/CartesianChart.d.ts.map +0 -1
  678. package/dist/charts/primitives/CartesianChart.js +0 -549
  679. package/dist/charts/primitives/ChartCard.d.ts +0 -66
  680. package/dist/charts/primitives/ChartCard.d.ts.map +0 -1
  681. package/dist/charts/primitives/ChartCard.js +0 -143
  682. package/dist/charts/primitives/ChartFrame.d.ts +0 -156
  683. package/dist/charts/primitives/ChartFrame.d.ts.map +0 -1
  684. package/dist/charts/primitives/ChartFrame.js +0 -241
  685. package/dist/charts/primitives/ChartLegend.d.ts +0 -67
  686. package/dist/charts/primitives/ChartLegend.d.ts.map +0 -1
  687. package/dist/charts/primitives/ChartLegend.js +0 -292
  688. package/dist/charts/primitives/ChartPending.d.ts +0 -113
  689. package/dist/charts/primitives/ChartPending.d.ts.map +0 -1
  690. package/dist/charts/primitives/ChartPending.js +0 -117
  691. package/dist/charts/primitives/ChartTooltip.d.ts +0 -59
  692. package/dist/charts/primitives/ChartTooltip.d.ts.map +0 -1
  693. package/dist/charts/primitives/ChartTooltip.js +0 -197
  694. package/dist/charts/primitives/Crosshair.d.ts +0 -26
  695. package/dist/charts/primitives/Crosshair.d.ts.map +0 -1
  696. package/dist/charts/primitives/Crosshair.js +0 -23
  697. package/dist/charts/primitives/HatchPattern.d.ts +0 -31
  698. package/dist/charts/primitives/HatchPattern.d.ts.map +0 -1
  699. package/dist/charts/primitives/HatchPattern.js +0 -31
  700. package/dist/charts/primitives/HoverOverlay.d.ts +0 -45
  701. package/dist/charts/primitives/HoverOverlay.d.ts.map +0 -1
  702. package/dist/charts/primitives/HoverOverlay.js +0 -72
  703. package/dist/charts/primitives/HoverOverlay.module.css +0 -13
  704. package/dist/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  705. package/dist/charts/primitives/XZoneRects.d.ts +0 -54
  706. package/dist/charts/primitives/XZoneRects.d.ts.map +0 -1
  707. package/dist/charts/primitives/XZoneRects.js +0 -65
  708. package/dist/charts/primitives/ZoneRects.d.ts +0 -38
  709. package/dist/charts/primitives/ZoneRects.d.ts.map +0 -1
  710. package/dist/charts/primitives/ZoneRects.js +0 -30
  711. package/dist/charts/primitives/chart-card-context.d.ts +0 -33
  712. package/dist/charts/primitives/chart-card-context.d.ts.map +0 -1
  713. package/dist/charts/primitives/chart-card-context.js +0 -18
  714. package/dist/charts/primitives/chart-frame-layout.d.ts +0 -185
  715. package/dist/charts/primitives/chart-frame-layout.d.ts.map +0 -1
  716. package/dist/charts/primitives/chart-frame-layout.js +0 -175
  717. package/dist/charts/primitives/chart-layout.d.ts +0 -112
  718. package/dist/charts/primitives/chart-layout.d.ts.map +0 -1
  719. package/dist/charts/primitives/chart-layout.js +0 -175
  720. package/dist/charts/primitives/chart-tier.d.ts +0 -16
  721. package/dist/charts/primitives/chart-tier.d.ts.map +0 -1
  722. package/dist/charts/primitives/chart-tier.js +0 -44
  723. package/dist/charts/primitives/legend-disclosure.d.ts +0 -27
  724. package/dist/charts/primitives/legend-disclosure.d.ts.map +0 -1
  725. package/dist/charts/primitives/legend-disclosure.js +0 -153
  726. package/dist/charts/series.d.ts +0 -189
  727. package/dist/charts/series.d.ts.map +0 -1
  728. package/dist/charts/series.js +0 -84
  729. package/dist/charts/sparklines/BarSparkline.d.ts +0 -37
  730. package/dist/charts/sparklines/BarSparkline.d.ts.map +0 -1
  731. package/dist/charts/sparklines/BarSparkline.js +0 -53
  732. package/dist/charts/sparklines/LineSparkline.d.ts +0 -15
  733. package/dist/charts/sparklines/LineSparkline.d.ts.map +0 -1
  734. package/dist/charts/sparklines/LineSparkline.js +0 -51
  735. package/dist/charts/sparklines/index.d.ts +0 -3
  736. package/dist/charts/sparklines/index.d.ts.map +0 -1
  737. package/dist/charts/sparklines/index.js +0 -6
  738. package/dist/charts/utils/domain.d.ts +0 -35
  739. package/dist/charts/utils/domain.d.ts.map +0 -1
  740. package/dist/charts/utils/domain.js +0 -12
  741. package/dist/charts/utils/format.d.ts +0 -8
  742. package/dist/charts/utils/format.d.ts.map +0 -1
  743. package/dist/charts/utils/format.js +0 -20
  744. package/dist/charts/utils/measure-text.d.ts +0 -25
  745. package/dist/charts/utils/measure-text.d.ts.map +0 -1
  746. package/dist/charts/utils/measure-text.js +0 -64
  747. package/dist/charts/utils/ticks.d.ts +0 -103
  748. package/dist/charts/utils/ticks.d.ts.map +0 -1
  749. package/dist/charts/utils/ticks.js +0 -92
  750. package/dist/commands/overlays-mount.d.ts +0 -122
  751. package/dist/commands/overlays-mount.d.ts.map +0 -1
  752. package/dist/commands/overlays-mount.js +0 -125
  753. package/dist/commands/useCommandHotkeys.d.ts +0 -14
  754. package/dist/commands/useCommandHotkeys.d.ts.map +0 -1
  755. package/dist/commands/useCommandHotkeys.js +0 -45
  756. package/dist/content/article-actions.d.ts +0 -39
  757. package/dist/content/article-actions.d.ts.map +0 -1
  758. package/dist/content/article-actions.js +0 -28
  759. package/dist/content/article-card.d.ts +0 -58
  760. package/dist/content/article-card.d.ts.map +0 -1
  761. package/dist/content/article-card.js +0 -79
  762. package/dist/content/article-card.module.css +0 -111
  763. package/dist/content/mdx.d.ts +0 -20
  764. package/dist/content/mdx.d.ts.map +0 -1
  765. package/dist/content/mdx.js +0 -64
  766. package/dist/controls/compare-filter.d.ts +0 -42
  767. package/dist/controls/compare-filter.d.ts.map +0 -1
  768. package/dist/controls/compare-filter.js +0 -38
  769. package/dist/controls/slider-control.d.ts +0 -36
  770. package/dist/controls/slider-control.d.ts.map +0 -1
  771. package/dist/controls/slider-control.js +0 -64
  772. package/dist/dashboard/widget-grid.d.ts +0 -27
  773. package/dist/dashboard/widget-grid.d.ts.map +0 -1
  774. package/dist/dashboard/widget-grid.js +0 -40
  775. package/dist/dashboard/widget-grid.module.css +0 -69
  776. package/dist/data/data-table-state.d.ts.map +0 -1
  777. package/dist/data/data-table.d.ts.map +0 -1
  778. package/dist/data/query-branch.d.ts.map +0 -1
  779. package/dist/data/table.d.ts +0 -24
  780. package/dist/data/table.d.ts.map +0 -1
  781. package/dist/data/virtual-list.d.ts +0 -133
  782. package/dist/data/virtual-list.d.ts.map +0 -1
  783. package/dist/data/virtual-list.js +0 -157
  784. package/dist/data/virtual.d.ts +0 -21
  785. package/dist/data/virtual.d.ts.map +0 -1
  786. package/dist/data/virtual.js +0 -4
  787. package/dist/forms/FormErrorSummary.d.ts +0 -30
  788. package/dist/forms/FormErrorSummary.d.ts.map +0 -1
  789. package/dist/forms/FormErrorSummary.js +0 -30
  790. package/dist/forms/use-field-array.d.ts +0 -60
  791. package/dist/forms/use-field-array.d.ts.map +0 -1
  792. package/dist/forms/use-field-array.js +0 -20
  793. package/dist/forms/use-form-draft.d.ts +0 -76
  794. package/dist/forms/use-form-draft.d.ts.map +0 -1
  795. package/dist/forms/use-form-draft.js +0 -92
  796. package/dist/forms/use-form-submit.d.ts +0 -88
  797. package/dist/forms/use-form-submit.d.ts.map +0 -1
  798. package/dist/forms/use-form-submit.js +0 -63
  799. package/dist/notifications/bell.d.ts.map +0 -1
  800. package/dist/notifications/center.d.ts.map +0 -1
  801. package/dist/notifications/define-notifications.d.ts.map +0 -1
  802. package/dist/notifications/index.d.ts +0 -40
  803. package/dist/notifications/index.d.ts.map +0 -1
  804. package/dist/notifications/index.js +0 -54
  805. package/dist/notifications/mount-guard.d.ts +0 -8
  806. package/dist/notifications/mount-guard.d.ts.map +0 -1
  807. package/dist/notifications/mount-guard.js +0 -18
  808. package/dist/notifications/notify.d.ts +0 -149
  809. package/dist/notifications/notify.d.ts.map +0 -1
  810. package/dist/notifications/notify.js +0 -171
  811. package/dist/notifications/store.d.ts.map +0 -1
  812. package/dist/provider/connectivity-indicator.d.ts +0 -13
  813. package/dist/provider/connectivity-indicator.d.ts.map +0 -1
  814. package/dist/provider/connectivity-indicator.js +0 -205
  815. package/dist/provider/connectivity-provider.d.ts +0 -7
  816. package/dist/provider/connectivity-provider.d.ts.map +0 -1
  817. package/dist/provider/connectivity-provider.js +0 -128
  818. package/dist/provider/connectivity-types.d.ts +0 -36
  819. package/dist/provider/connectivity-types.d.ts.map +0 -1
  820. package/dist/provider/use-connectivity.d.ts +0 -3
  821. package/dist/provider/use-connectivity.d.ts.map +0 -1
  822. package/dist/provider/use-connectivity.js +0 -14
  823. package/dist/query-devtools.d.ts +0 -21
  824. package/dist/query-devtools.d.ts.map +0 -1
  825. package/dist/query-devtools.js +0 -13
  826. package/src/agent/adapter.ts +0 -945
  827. package/src/agent/use-agent-stream.ts +0 -154
  828. package/src/agent-chat/index.ts +0 -54
  829. package/src/agent-chat/thread-detail-panel.tsx +0 -201
  830. package/src/agent-chat/thread-workspace.tsx +0 -279
  831. package/src/charts/cursor/resolve.ts +0 -198
  832. package/src/charts/cursor/scope.tsx +0 -35
  833. package/src/charts/cursor/store.ts +0 -58
  834. package/src/charts/cursor/touch-pin.ts +0 -138
  835. package/src/charts/hooks/use-discrete-cursor.ts +0 -335
  836. package/src/charts/hooks/use-hysteresis.ts +0 -26
  837. package/src/charts/hooks/useBandPlot.ts +0 -383
  838. package/src/charts/hooks/useChartCursor.ts +0 -367
  839. package/src/charts/hooks/useChartSize.ts +0 -35
  840. package/src/charts/kinds/BandStrip.tsx +0 -449
  841. package/src/charts/kinds/Bars.tsx +0 -589
  842. package/src/charts/kinds/Donut.tsx +0 -368
  843. package/src/charts/kinds/DualPanel.tsx +0 -712
  844. package/src/charts/kinds/Heatmap.tsx +0 -396
  845. package/src/charts/kinds/MirroredBars.tsx +0 -469
  846. package/src/charts/kinds/MultiLine.tsx +0 -322
  847. package/src/charts/kinds/StackedArea.tsx +0 -267
  848. package/src/charts/kinds/ZonedLine.tsx +0 -301
  849. package/src/charts/kinds/band-chrome.tsx +0 -91
  850. package/src/charts/kinds/donut-layout.ts +0 -82
  851. package/src/charts/layout/auto-margin.ts +0 -242
  852. package/src/charts/layout/end-labels.ts +0 -135
  853. package/src/charts/layout/log-ticks.ts +0 -90
  854. package/src/charts/primitives/AreaGradient.tsx +0 -26
  855. package/src/charts/primitives/Axes.tsx +0 -271
  856. package/src/charts/primitives/CartesianChart.tsx +0 -1002
  857. package/src/charts/primitives/ChartCard.tsx +0 -280
  858. package/src/charts/primitives/ChartFrame.tsx +0 -493
  859. package/src/charts/primitives/ChartLegend.tsx +0 -422
  860. package/src/charts/primitives/ChartPending.tsx +0 -243
  861. package/src/charts/primitives/ChartTooltip.tsx +0 -265
  862. package/src/charts/primitives/Crosshair.tsx +0 -43
  863. package/src/charts/primitives/HatchPattern.tsx +0 -55
  864. package/src/charts/primitives/HoverOverlay.module.css +0 -13
  865. package/src/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  866. package/src/charts/primitives/HoverOverlay.tsx +0 -109
  867. package/src/charts/primitives/XZoneRects.tsx +0 -132
  868. package/src/charts/primitives/ZoneRects.tsx +0 -67
  869. package/src/charts/primitives/chart-card-context.ts +0 -46
  870. package/src/charts/primitives/chart-frame-layout.ts +0 -430
  871. package/src/charts/primitives/chart-layout.ts +0 -318
  872. package/src/charts/primitives/chart-tier.tsx +0 -76
  873. package/src/charts/primitives/legend-disclosure.tsx +0 -178
  874. package/src/charts/series.ts +0 -276
  875. package/src/charts/sparklines/BarSparkline.tsx +0 -94
  876. package/src/charts/sparklines/LineSparkline.tsx +0 -71
  877. package/src/charts/sparklines/index.ts +0 -2
  878. package/src/charts/theme.tsx +0 -53
  879. package/src/charts/utils/domain.ts +0 -41
  880. package/src/charts/utils/format.ts +0 -19
  881. package/src/charts/utils/measure-text.ts +0 -109
  882. package/src/charts/utils/ticks.ts +0 -239
  883. package/src/commands/overlays-mount.tsx +0 -333
  884. package/src/commands/useCommandHotkeys.ts +0 -114
  885. package/src/content/article-actions.ts +0 -72
  886. package/src/content/article-card.module.css +0 -111
  887. package/src/content/article-card.tsx +0 -174
  888. package/src/content/mdx.tsx +0 -127
  889. package/src/controls/compare-filter.tsx +0 -81
  890. package/src/controls/slider-control.tsx +0 -159
  891. package/src/dashboard/widget-grid.module.css +0 -69
  892. package/src/dashboard/widget-grid.tsx +0 -146
  893. package/src/data/table.ts +0 -39
  894. package/src/data/virtual-list.tsx +0 -356
  895. package/src/data/virtual.ts +0 -26
  896. package/src/forms/FormErrorSummary.tsx +0 -71
  897. package/src/forms/use-field-array.ts +0 -94
  898. package/src/forms/use-form-draft.ts +0 -262
  899. package/src/forms/use-form-submit.ts +0 -199
  900. package/src/notifications/index.ts +0 -88
  901. package/src/notifications/mount-guard.ts +0 -38
  902. package/src/notifications/notify.tsx +0 -379
  903. package/src/provider/connectivity-indicator.tsx +0 -267
  904. package/src/provider/connectivity-provider.tsx +0 -189
  905. package/src/provider/connectivity-types.ts +0 -42
  906. package/src/provider/use-connectivity.ts +0 -26
  907. package/src/query-devtools.tsx +0 -40
  908. /package/dist/{agent-chat → agent/chat}/message-affordances.js +0 -0
  909. /package/dist/{agent-chat → agent/chat}/relative-time.d.ts +0 -0
  910. /package/dist/{agent-chat → agent/chat}/relative-time.js +0 -0
  911. /package/dist/{agent-chat → agent/chat}/use-keyboard-inset.d.ts +0 -0
  912. /package/dist/{agent-chat → agent/chat}/virtualize.js +0 -0
  913. /package/dist/{notifications → commands/notifications}/bell.js +0 -0
  914. /package/dist/{notifications → commands/notifications}/define-notifications.js +0 -0
  915. /package/dist/{provider/connectivity-types.js → controls/uncontrolled.js} +0 -0
  916. /package/dist/{data → table}/data-table.module.css +0 -0
  917. /package/dist/{data → table}/data-table.module.css.d.ts +0 -0
  918. /package/dist/{data → table}/query-branch.d.ts +0 -0
  919. /package/dist/{data → table}/query-branch.js +0 -0
  920. /package/src/{agent-chat → agent/chat}/relative-time.ts +0 -0
  921. /package/src/{data → table}/data-table.module.css +0 -0
  922. /package/src/{data → table}/data-table.module.css.d.ts +0 -0
  923. /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.40.3",
4
- "description": "Opinionated framework for Mantine-based React apps — theme, app shell, visx charts, toolchain presets",
3
+ "version": "2.0.0",
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
+ },
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"
74
84
  },
75
- "./guard": {
76
- "types": "./dist/guard/index.d.ts",
77
- "import": "./dist/guard/index.js",
78
- "default": "./dist/guard/index.js"
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": {
167
+ "@ai-sdk/provider": "^4.0.26",
204
168
  "@fontsource-variable/hubot-sans": "5.2.8",
205
169
  "@fontsource-variable/jetbrains-mono": "5.2.8",
206
170
  "@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",
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.