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