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/CHANGELOG.md CHANGED
@@ -1,886 +1,916 @@
1
- ## [1.40.3](https://github.com/jkrumm/basalt-ui/compare/v1.40.2...v1.40.3) (2026-10-05)
1
+ # [2.0.0](https://github.com/jkrumm/basalt-ui/compare/v1.41.0...v2.0.0) (2026-10-14)
2
2
 
3
3
 
4
4
  ### Bug Fixes
5
5
 
6
- * chart cursor slider always carries aria-valuenow ([e1bce15](https://github.com/jkrumm/basalt-ui/commit/e1bce15e7b280a4f203bb05173d4478c0a64c7f3))
7
- * light-scheme text, links, errors and badges clear WCAG AA ([bfa4c0e](https://github.com/jkrumm/basalt-ui/commit/bfa4c0e329138daa0f6ffe7d6a9678644a1b0440))
8
- * shortcut display uses platform glyphs and Title-case words for named keys ([77733e9](https://github.com/jkrumm/basalt-ui/commit/77733e916892138b42b398188f85dae234877181))
6
+ * address review of the shell nav prop ([e816a29](https://github.com/jkrumm/basalt-ui/commit/e816a29238d847eccd2a07eba5bc1cd60c98936d))
7
+ * bucket the DualPanel fill by x and route single bars via barMark ([d66b78d](https://github.com/jkrumm/basalt-ui/commit/d66b78d1ff9c21efba12038844840d72c46c1d09))
8
+ * close router and dev-helper false positives in the lint plugin ([3cc25fb](https://github.com/jkrumm/basalt-ui/commit/3cc25fbde8b0ff978ecf1d275cbf3148d22b42ef))
9
+ * close the fourth review of the agent run records ([55b304c](https://github.com/jkrumm/basalt-ui/commit/55b304cf7315172f183c477f6604204878cddee6))
10
+ * close the review of the agent runtime contract ([0f74e16](https://github.com/jkrumm/basalt-ui/commit/0f74e167bb40f116cf79350031875b62e4c12144))
11
+ * close the review of the chat stream demo ([0bf1e88](https://github.com/jkrumm/basalt-ui/commit/0bf1e88712d1116470d6f647658e6d355aad4d9c))
12
+ * close the second review of the agent run state ([526548f](https://github.com/jkrumm/basalt-ui/commit/526548f121f74a520de93ca5b96c344b140c6051))
13
+ * close the second review of the shell nav prop ([fa0827c](https://github.com/jkrumm/basalt-ui/commit/fa0827c7f498330b1d128e5ffe8f07a2aa0811aa))
14
+ * close the third review of the shell nav prop ([cde02fc](https://github.com/jkrumm/basalt-ui/commit/cde02fcd2cf7902ce42d4e79328599bd28012e12))
15
+ * count sort misses and compare against the per-run control ([6906443](https://github.com/jkrumm/basalt-ui/commit/69064435f187388324a17033f3d53f55361e036c))
16
+ * cut the server render cost of a dense DualPanel ([3b6db1f](https://github.com/jkrumm/basalt-ui/commit/3b6db1f930f512e4d56aff407b0dfb00d706d81c))
17
+ * drop the router-view-transition bullet and lower the landed budgets ([f3d9ba9](https://github.com/jkrumm/basalt-ui/commit/f3d9ba9775a5f20ec68560e12eb92353f1e6bf55))
18
+ * end every rule bullet in its tag ([608e94f](https://github.com/jkrumm/basalt-ui/commit/608e94f1421731b3f5c5099c5f8ae644ddbec889))
19
+ * export the seeded route component so lint stays quiet ([42ddc93](https://github.com/jkrumm/basalt-ui/commit/42ddc93df29d4f8d713e4bbf0949d018c54f7893))
20
+ * fail closed on router receivers, unwrap TS wrappers ([e80e101](https://github.com/jkrumm/basalt-ui/commit/e80e1012668f89920a4a4d0c9b3716173cdce5ac))
21
+ * fill the parent in matchHeight, size the Donut ring from the box law ([3f9de0b](https://github.com/jkrumm/basalt-ui/commit/3f9de0b82bd99b5d66c30544c396f5156efbbdf9))
22
+ * flush the pending table search on unmount and pin with logical insets ([0e33b78](https://github.com/jkrumm/basalt-ui/commit/0e33b78e25a533a0c73512ea9fa2ffd722854fca))
23
+ * gate the layered Mantine imports and correct the migration guidance ([08b5aba](https://github.com/jkrumm/basalt-ui/commit/08b5abaf4692cd6c7afa148dbf5a3ced1d7ee5d2))
24
+ * harden app-wiring and make the kept-lint notice follow the merge ([32412c5](https://github.com/jkrumm/basalt-ui/commit/32412c5fd88c6474508d54b69e1b6b47997278bd))
25
+ * harden doctor's upgrade checks and make init leave a stock Vite app green ([f61d3ac](https://github.com/jkrumm/basalt-ui/commit/f61d3ac76a7564e5335bab0b569c44c05c7af8b3))
26
+ * harden donut and heatmap review findings ([4f654cd](https://github.com/jkrumm/basalt-ui/commit/4f654cd331a92b7f0c288be26ee594ad616841b8))
27
+ * harden Sparkline domains and StackedArea typing ([3d80dac](https://github.com/jkrumm/basalt-ui/commit/3d80dac2c12f16d2bfffeecf4110b5082b39e460))
28
+ * harden streaming markdown against remend, shiki and mermaid failures ([1e51699](https://github.com/jkrumm/basalt-ui/commit/1e5169921cb4a1ab0ab05fd612bff526d9eb73f8))
29
+ * harden the chart demo fixtures and charts search store ([877578b](https://github.com/jkrumm/basalt-ui/commit/877578b6456598e66320e3809b52a561523ed9d8))
30
+ * harden the chart-engine boundary against traversal and require ([2404a3c](https://github.com/jkrumm/basalt-ui/commit/2404a3cdebecfa67cf9bafa48f7f4eb0f3785aa1))
31
+ * harden the keyboard lane after review ([af8a7cb](https://github.com/jkrumm/basalt-ui/commit/af8a7cbcb147cf33b528f27afa613935e819aa0a))
32
+ * harden the panel kinds after review ([580f77f](https://github.com/jkrumm/basalt-ui/commit/580f77fba11c0b29a0399a8efb7ea42cd0a80bc1))
33
+ * hold the stopped run's record while its own resolver is pending ([ed55013](https://github.com/jkrumm/basalt-ui/commit/ed5501366e8a479f15a42d73b5a66eb00d86532b))
34
+ * import the dates stylesheet after basalt's ([ea56e2a](https://github.com/jkrumm/basalt-ui/commit/ea56e2a5bc377d14793c90b1fd18b1b9b49f88de))
35
+ * keep fill gaps when thinning and gate barMark on values ([3876c8a](https://github.com/jkrumm/basalt-ui/commit/3876c8a3d5c4c70e1228e74fcd6630ab59604730))
36
+ * keep legend hit overlays off the plot ([7c6afee](https://github.com/jkrumm/basalt-ui/commit/7c6afeed18c5ec69b1d80507def708d620e72b85))
37
+ * keep the cursor session across re-renders and bare-card legends ([5fea636](https://github.com/jkrumm/basalt-ui/commit/5fea636fc05276187ee439ada7662e372deb31aa))
38
+ * keep the NaN-x fallback explicit in xScaleFor and test it ([4c639b9](https://github.com/jkrumm/basalt-ui/commit/4c639b987786866bb473db3e73f51e247e92dc01))
39
+ * keep the short-card fold and the legend hit floor on the 2.0 chart layer ([7ab3d24](https://github.com/jkrumm/basalt-ui/commit/7ab3d24565d77ec6ebd414a2697b767406e9f71a))
40
+ * make doctor's import scan literal-aware and init's tsconfig edit BOM-safe ([fad9f31](https://github.com/jkrumm/basalt-ui/commit/fad9f31949cebf8c69ba012b6a565608b78f6af0))
41
+ * make the chat recipe production-correct and compile-checked ([1d66177](https://github.com/jkrumm/basalt-ui/commit/1d661773c28db62d94a49986b4b517138b64fdcb))
42
+ * match nav items like the sidebar and stop re-raising transition rejections ([8bfceea](https://github.com/jkrumm/basalt-ui/commit/8bfceeaea5e3954ebad907cc86f8b16b90a03876))
43
+ * match nav items with the router's rules and report transition errors once ([804275e](https://github.com/jkrumm/basalt-ui/commit/804275e9983228591d84a88c295f200d88eb7ec1))
44
+ * name real radius tokens and tighten the agent-layer checks ([5065036](https://github.com/jkrumm/basalt-ui/commit/5065036e869bcc3ad0c1febe6b50e7e4aba0a908))
45
+ * name the nav label, not staticData, in the page-title guard message ([a4add08](https://github.com/jkrumm/basalt-ui/commit/a4add0807e065420712d202e99b4aac20e437962))
46
+ * never emit a curve name as path data; stack only the auto domain ([77225a0](https://github.com/jkrumm/basalt-ui/commit/77225a0d766074ef76a4969959789476c27b0245))
47
+ * paint band strip markers after every base band ([7c9860a](https://github.com/jkrumm/basalt-ui/commit/7c9860a9189ffd3c3b2b755ab69af59cacea51ff))
48
+ * pin the agent-layer budgets in tests and record the landed numbers ([fe29f4f](https://github.com/jkrumm/basalt-ui/commit/fe29f4f705a01225fae9c135d9bc47213900cdd1))
49
+ * pin the StreamStatus removal with a type guard ([26703a0](https://github.com/jkrumm/basalt-ui/commit/26703a0823db6b1bcdbaab73f09ab23363bc791a))
50
+ * report non-interactive charts as N/A in the keyboard lane ([02c7feb](https://github.com/jkrumm/basalt-ui/commit/02c7feb14dac1b521d2e1596136e4e3fcc85e0ba))
51
+ * resolve router and ai-sdk bindings by import, tighten no-dev-helper ([dbabe5d](https://github.com/jkrumm/basalt-ui/commit/dbabe5d7166677329b27cb701ad89bf638d50981))
52
+ * restore CHANGELOG.md, which is not part of this change ([65ef132](https://github.com/jkrumm/basalt-ui/commit/65ef132054df0210a9e22d5d387f521ddf11c310))
53
+ * reuse the shared scan in dropped-subpaths, spare solution roots ([01276f7](https://github.com/jkrumm/basalt-ui/commit/01276f7dd1d96feaf43574f9aec5d53e7ab248be))
54
+ * skip history in the deleted-doc drift check ([13a9933](https://github.com/jkrumm/basalt-ui/commit/13a99330829b6e1125f8539bc94c6e8399322d88))
55
+ * square Donut ring, measure fill boxes, size chart roots against collapse ([5200293](https://github.com/jkrumm/basalt-ui/commit/5200293254eacb6b5c3b72298594057de9a76766))
56
+ * stop folding a server-painted table column on hydration ([1588481](https://github.com/jkrumm/basalt-ui/commit/1588481c593887315a9505c994515a4b6cf41fc1))
57
+ * stop MirroredBars and bar Sparkline stacking one series per row ([d354913](https://github.com/jkrumm/basalt-ui/commit/d3549134d005366078c77034c51088ca45c764ff))
58
+ * stop the cold first fold variant logging two 404s ([a6f13ac](https://github.com/jkrumm/basalt-ui/commit/a6f13ac9c39475275ec0b795c9f735f3ee0b0b95))
59
+ * stop xScaleFor overflowing the stack on very long series ([b3ee019](https://github.com/jkrumm/basalt-ui/commit/b3ee0190a3aee042b63444760eef7f787dc11bb6))
60
+ * treat remend's incomplete-image sentinel like incomplete-link ([8f988d9](https://github.com/jkrumm/basalt-ui/commit/8f988d9c310822d0b48dc67626cc941ad2594b84))
61
+ * wait for settled rail geometry in the layout suite ([7489033](https://github.com/jkrumm/basalt-ui/commit/7489033d3f09d73d71451bd3df1e7f21b114f308))
9
62
 
10
- ## [1.40.2](https://github.com/jkrumm/basalt-ui/compare/v1.40.1...v1.40.2) (2026-10-05)
11
63
 
64
+ ### Features
65
+
66
+ * 2.0 oxlint plugin — every rule at error, dead rules retired ([e6567da](https://github.com/jkrumm/basalt-ui/commit/e6567da0d008583e2764dfd1468af8dbd3df515e))
67
+ * accept undefined on optional agent props ([18b7e1a](https://github.com/jkrumm/basalt-ui/commit/18b7e1a73cb11dffda8fc221729b443404d29db9))
68
+ * add a checked table recipe, a typed mock transport and the grid keys ([dc0fcfa](https://github.com/jkrumm/basalt-ui/commit/dc0fcfaf241550ed94c23188343d6235a87d0629))
69
+ * add donut and heatmap chart kinds ([2a07a12](https://github.com/jkrumm/basalt-ui/commit/2a07a127f672e15a6e7cc157c012ca33b6424d80))
70
+ * add make evidence with its lanes and the 1.41 and argo baselines ([0be032c](https://github.com/jkrumm/basalt-ui/commit/0be032cae7634e5589d457b9c59078e699fb45d7))
71
+ * add StackedArea and Sparkline chart kinds ([84009a7](https://github.com/jkrumm/basalt-ui/commit/84009a7f18b0ed86e6f2b04b04b32b8f15bec61e))
72
+ * add submitted status, typed errors, throttle and transport seam to agent ([0be4da9](https://github.com/jkrumm/basalt-ui/commit/0be4da97632d80030558604ef0c5bcdac488cb03))
73
+ * add the band strip chart kind ([e9a3f93](https://github.com/jkrumm/basalt-ui/commit/e9a3f932c8cf19f5a00c8ffdf03b033b26fa7213))
74
+ * add the dual-panel and mirrored-bars chart kinds ([093f0df](https://github.com/jkrumm/basalt-ui/commit/093f0df04168a1ef7d1eeb13bbe06bb5e0d5fef8))
75
+ * default useAgentThreadRuns throttle to 100 ms ([7f4a7b4](https://github.com/jkrumm/basalt-ui/commit/7f4a7b411d5a8dbe43623e2fdf331595a00eb985))
76
+ * doctor and sync carry a 1.x app to 2.0 ([a06ce32](https://github.com/jkrumm/basalt-ui/commit/a06ce32f288883fe3575187d88d9f5f78120d331))
77
+ * drop the StreamStatus export ([9346ba2](https://github.com/jkrumm/basalt-ui/commit/9346ba293863bb09aa7b65dfa87d84b93f3c5326))
78
+ * export the agent transport types ([b8f69f4](https://github.com/jkrumm/basalt-ui/commit/b8f69f4494274479e46b2cd04fa25cfecbbebd3a))
79
+ * export the nine chart kinds from basalt-ui/charts ([bf25f8a](https://github.com/jkrumm/basalt-ui/commit/bf25f8adb95880a10aa75265502368ed99ed9410))
80
+ * finish widening optional agent props ([c7e58a5](https://github.com/jkrumm/basalt-ui/commit/c7e58a531a3781f71107afb710624f43815774b8))
81
+ * fold a short chart card in CSS so its header never flips after hydration ([3ec6f1c](https://github.com/jkrumm/basalt-ui/commit/3ec6f1c36f0c32e79891b4978b01d9fe801e029c))
82
+ * gate route transitions on view-transition types support ([0e9a086](https://github.com/jkrumm/basalt-ui/commit/0e9a086da5a912715ac1e7c8813fc08b8bca0f6c))
83
+ * gate the 2.0 chart surface and drop its 1.x helpers ([a2a3274](https://github.com/jkrumm/basalt-ui/commit/a2a3274f1ec1ae481e7f409baab0b38e2fe70ed2))
84
+ * init reorders create-vite's build and keeps Route exportable ([727687b](https://github.com/jkrumm/basalt-ui/commit/727687bf6265a7574b8027ce3114a519f0881fb5))
85
+ * init seeds the router files and merges lint; doctor checks app wiring ([eb2dfad](https://github.com/jkrumm/basalt-ui/commit/eb2dfad4e43bbc1759d41b64ef0e5a0ead358a64))
86
+ * keyboard-walk lane in the evidence harness ([a059d91](https://github.com/jkrumm/basalt-ui/commit/a059d91472e233d03d0a9eef216d1bc5bce4c23b))
87
+ * let the shell take nav and derive sidebar, mobile bar and breadcrumbs ([ed7cb4a](https://github.com/jkrumm/basalt-ui/commit/ed7cb4a55fba4b98394dc6bc70c81697f5cd7781))
88
+ * playground demos for every chart kind ([c6870ee](https://github.com/jkrumm/basalt-ui/commit/c6870eec1d0a7fed2eb4430e7204faf4400863a4))
89
+ * port the playground and the evidence chart lane to TanStack Charts ([de3826d](https://github.com/jkrumm/basalt-ui/commit/de3826d6c1b83f486dcdfebad78f8af65bc4c629))
90
+ * rebuild the chart layer on TanStack Charts ([35b074b](https://github.com/jkrumm/basalt-ui/commit/35b074b5bb639299f425e09328cb1084db3eb7c1))
91
+ * replace the visx lint rules with the chart-engine boundary ([3b98b8a](https://github.com/jkrumm/basalt-ui/commit/3b98b8aa6804b2ad878230584db0f3d3cafc61b7))
92
+ * rewrite the shipped agent layer so every instruction cites its enforcement ([ec19200](https://github.com/jkrumm/basalt-ui/commit/ec19200e2e997f5757f15ecc7fd078f786603acb))
93
+ * route view transitions through the router ([157aed4](https://github.com/jkrumm/basalt-ui/commit/157aed47628ccd07a89404fe7e2bebc08236e9c5))
94
+ * ship basalt-ui 2.0 as the one sanctioned major ([86f675f](https://github.com/jkrumm/basalt-ui/commit/86f675f321926ae48ad0e7a175393a1f11316485))
95
+ * ship the main.tsx seed as an agent template ([cb25139](https://github.com/jkrumm/basalt-ui/commit/cb2513934ba7f42be60dc2ec1407e8b7882282dd))
96
+ * size charts in CSS so hydration shifts nothing ([d944163](https://github.com/jkrumm/basalt-ui/commit/d944163c85a58728fbeb7af6b80c80fc25a39988))
97
+ * styles.css carries every Mantine layer the provider mounts ([e47e6e1](https://github.com/jkrumm/basalt-ui/commit/e47e6e1c96ad1ca506ac2171d04ff8443f15818f))
98
+ * view transition on aside fold, CSS theme-toggle, reduced motion ([9b9e06f](https://github.com/jkrumm/basalt-ui/commit/9b9e06f33a95e47ebdfd8a3fbb9d2da455e6c062))
99
+ * wire chat, routes and subpath peers into the shipped agent layer ([f5c3b7d](https://github.com/jkrumm/basalt-ui/commit/f5c3b7dc87fa34a93273533ab577ea34106436a9))
100
+
101
+
102
+ ### BREAKING CHANGES
103
+
104
+ * the 1.x surface is removed or moved. See
105
+ packages/basalt-ui/MIGRATING.md § 2.0.0 for every row.
106
+
107
+ # [1.41.0](https://github.com/jkrumm/basalt-ui/compare/v1.40.3...v1.41.0) (2026-10-10)
12
108
 
13
109
  ### Bug Fixes
14
110
 
15
- * sidebar footer rows sit on the nav row's height and 1px pitch ([bbd5c66](https://github.com/jkrumm/basalt-ui/commit/bbd5c66a223af61888df28cca837b89ef95181b1))
111
+ - refuse a bad block before any write, and never crash on sameFile ([e98edb5](https://github.com/jkrumm/basalt-ui/commit/e98edb57d9983838bb0d17adb4ba1f0379f32af8))
112
+ - report malformed or conflicting blocks, warn on a shadowing CLAUDE.md ([61c32de](https://github.com/jkrumm/basalt-ui/commit/61c32de15dc6cc1379ceda220e6b551eb54da572))
16
113
 
17
- ## [1.40.1](https://github.com/jkrumm/basalt-ui/compare/v1.40.0...v1.40.1) (2026-10-05)
114
+ ### Features
18
115
 
116
+ - place the managed block in AGENTS.md and migrate it out of CLAUDE.md ([ce26af8](https://github.com/jkrumm/basalt-ui/commit/ce26af8a4df0bad33f94a3d697b58c1c7e94f73c))
117
+
118
+ ## [1.40.3](https://github.com/jkrumm/basalt-ui/compare/v1.40.2...v1.40.3) (2026-10-05)
19
119
 
20
120
  ### Bug Fixes
21
121
 
22
- * lift the selected segment above the track in dark mode ([a8315a9](https://github.com/jkrumm/basalt-ui/commit/a8315a90b9b067470f9d6ae3a0005117e713934b))
122
+ - chart cursor slider always carries aria-valuenow ([e1bce15](https://github.com/jkrumm/basalt-ui/commit/e1bce15e7b280a4f203bb05173d4478c0a64c7f3))
123
+ - light-scheme text, links, errors and badges clear WCAG AA ([bfa4c0e](https://github.com/jkrumm/basalt-ui/commit/bfa4c0e329138daa0f6ffe7d6a9678644a1b0440))
124
+ - shortcut display uses platform glyphs and Title-case words for named keys ([77733e9](https://github.com/jkrumm/basalt-ui/commit/77733e916892138b42b398188f85dae234877181))
23
125
 
24
- # [1.40.0](https://github.com/jkrumm/basalt-ui/compare/v1.39.0...v1.40.0) (2026-10-05)
126
+ ## [1.40.2](https://github.com/jkrumm/basalt-ui/compare/v1.40.1...v1.40.2) (2026-10-05)
127
+
128
+ ### Bug Fixes
25
129
 
130
+ - sidebar footer rows sit on the nav row's height and 1px pitch ([bbd5c66](https://github.com/jkrumm/basalt-ui/commit/bbd5c66a223af61888df28cca837b89ef95181b1))
131
+
132
+ ## [1.40.1](https://github.com/jkrumm/basalt-ui/compare/v1.40.0...v1.40.1) (2026-10-05)
26
133
 
27
134
  ### Bug Fixes
28
135
 
29
- * raised segmented indicator, nav-row geometry for the sidebar account row ([d800ea1](https://github.com/jkrumm/basalt-ui/commit/d800ea1dad17091aa558c05d33117adc7cf31310))
136
+ - lift the selected segment above the track in dark mode ([a8315a9](https://github.com/jkrumm/basalt-ui/commit/a8315a90b9b067470f9d6ae3a0005117e713934b))
30
137
 
138
+ # [1.40.0](https://github.com/jkrumm/basalt-ui/compare/v1.39.0...v1.40.0) (2026-10-05)
139
+
140
+ ### Bug Fixes
141
+
142
+ - raised segmented indicator, nav-row geometry for the sidebar account row ([d800ea1](https://github.com/jkrumm/basalt-ui/commit/d800ea1dad17091aa558c05d33117adc7cf31310))
31
143
 
32
144
  ### Features
33
145
 
34
- * createBasaltTheme inputs option for desktop-sized inputs ([51a3d7f](https://github.com/jkrumm/basalt-ui/commit/51a3d7f023a5379c9c55f226c1671d83e732ea59))
146
+ - createBasaltTheme inputs option for desktop-sized inputs ([51a3d7f](https://github.com/jkrumm/basalt-ui/commit/51a3d7f023a5379c9c55f226c1671d83e732ea59))
35
147
 
36
148
  # [1.39.0](https://github.com/jkrumm/basalt-ui/compare/v1.38.1...v1.39.0) (2026-10-04)
37
149
 
38
-
39
150
  ### Features
40
151
 
41
- * add BasaltShell headerHeight for a deliberate, consumer-set header row ([3561361](https://github.com/jkrumm/basalt-ui/commit/3561361279664d3ee51d245586331e057dd62844))
42
- * remove the deprecated forms layout and useForm re-exports ([9e8b8c6](https://github.com/jkrumm/basalt-ui/commit/9e8b8c69241ea33d8bdf47532358166a809eb4ce))
152
+ - add BasaltShell headerHeight for a deliberate, consumer-set header row ([3561361](https://github.com/jkrumm/basalt-ui/commit/3561361279664d3ee51d245586331e057dd62844))
153
+ - remove the deprecated forms layout and useForm re-exports ([9e8b8c6](https://github.com/jkrumm/basalt-ui/commit/9e8b8c69241ea33d8bdf47532358166a809eb4ce))
43
154
 
44
155
  ## [1.38.1](https://github.com/jkrumm/basalt-ui/compare/v1.38.0...v1.38.1) (2026-10-04)
45
156
 
46
-
47
157
  ### Bug Fixes
48
158
 
49
- * take the page content inset one step down, 20/12 to 16/8 from sm up ([cf61c05](https://github.com/jkrumm/basalt-ui/commit/cf61c05410df114d5c6182ed4a8c5ed38b308a56))
159
+ - take the page content inset one step down, 20/12 to 16/8 from sm up ([cf61c05](https://github.com/jkrumm/basalt-ui/commit/cf61c05410df114d5c6182ed4a8c5ed38b308a56))
50
160
 
51
161
  # [1.38.0](https://github.com/jkrumm/basalt-ui/compare/v1.37.1...v1.38.0) (2026-10-04)
52
162
 
53
-
54
163
  ### Bug Fixes
55
164
 
56
- * inset the sidebar footer and seat the rail first icon like the expanded row ([7d9e980](https://github.com/jkrumm/basalt-ui/commit/7d9e980b9c1d6cd062e0d8f43a4800f7002b174d))
57
- * re-date the forms layout deprecations to 1.39.0 ([fe9e785](https://github.com/jkrumm/basalt-ui/commit/fe9e785439c8404dfe09bdcecb774db758123026))
58
-
165
+ - inset the sidebar footer and seat the rail first icon like the expanded row ([7d9e980](https://github.com/jkrumm/basalt-ui/commit/7d9e980b9c1d6cd062e0d8f43a4800f7002b174d))
166
+ - re-date the forms layout deprecations to 1.39.0 ([fe9e785](https://github.com/jkrumm/basalt-ui/commit/fe9e785439c8404dfe09bdcecb774db758123026))
59
167
 
60
168
  ### Features
61
169
 
62
- * add --basalt-shell-lead-inset for a native title bar over the header lead ([980c2ff](https://github.com/jkrumm/basalt-ui/commit/980c2ff707a39ec150b64d27780b3ceecb98b922))
170
+ - add --basalt-shell-lead-inset for a native title bar over the header lead ([980c2ff](https://github.com/jkrumm/basalt-ui/commit/980c2ff707a39ec150b64d27780b3ceecb98b922))
63
171
 
64
172
  ## [1.37.1](https://github.com/jkrumm/basalt-ui/compare/v1.37.0...v1.37.1) (2026-10-02)
65
173
 
66
-
67
174
  ### Bug Fixes
68
175
 
69
- * stop the measured fold folding a row that fits to the sub-pixel ([67aebae](https://github.com/jkrumm/basalt-ui/commit/67aebae33ee966acca555fc98cb609df33a81a6c))
176
+ - stop the measured fold folding a row that fits to the sub-pixel ([67aebae](https://github.com/jkrumm/basalt-ui/commit/67aebae33ee966acca555fc98cb609df33a81a6c))
70
177
 
71
178
  # [1.37.0](https://github.com/jkrumm/basalt-ui/compare/v1.36.1...v1.37.0) (2026-10-02)
72
179
 
73
-
74
180
  ### Bug Fixes
75
181
 
76
- * give the widget info glyph a real 24px target (WCAG 2.5.8) ([70451f8](https://github.com/jkrumm/basalt-ui/commit/70451f8cb24fbf4eb1dcec8dc32575dc5fd9b4a9))
77
- * re-date the forms layout deprecations to 1.38.0 ([da1a4a1](https://github.com/jkrumm/basalt-ui/commit/da1a4a146f7ad8467819b953895f7e837c06fd4f))
78
-
182
+ - give the widget info glyph a real 24px target (WCAG 2.5.8) ([70451f8](https://github.com/jkrumm/basalt-ui/commit/70451f8cb24fbf4eb1dcec8dc32575dc5fd9b4a9))
183
+ - re-date the forms layout deprecations to 1.38.0 ([da1a4a1](https://github.com/jkrumm/basalt-ui/commit/da1a4a146f7ad8467819b953895f7e837c06fd4f))
79
184
 
80
185
  ### Features
81
186
 
82
- * let a settings menu entry render as the router link ([55d4023](https://github.com/jkrumm/basalt-ui/commit/55d402360347cf74703530bd843b0c2eae765f6b))
187
+ - let a settings menu entry render as the router link ([55d4023](https://github.com/jkrumm/basalt-ui/commit/55d402360347cf74703530bd843b0c2eae765f6b))
83
188
 
84
189
  ## [1.36.1](https://github.com/jkrumm/basalt-ui/compare/v1.36.0...v1.36.1) (2026-10-01)
85
190
 
86
-
87
191
  ### Bug Fixes
88
192
 
89
- * release an unauthored MIGRATING section as nothing-to-migrate ([f02a5d9](https://github.com/jkrumm/basalt-ui/commit/f02a5d9b9909b0d226470e8ed8bcfb27c7452f01))
193
+ - release an unauthored MIGRATING section as nothing-to-migrate ([f02a5d9](https://github.com/jkrumm/basalt-ui/commit/f02a5d9b9909b0d226470e8ed8bcfb27c7452f01))
90
194
 
91
195
  # [1.36.0](https://github.com/jkrumm/basalt-ui/compare/v1.35.0...v1.36.0) (2026-10-01)
92
196
 
93
-
94
197
  ### Features
95
198
 
96
- * export useCoarsePointer from the root barrel ([060764f](https://github.com/jkrumm/basalt-ui/commit/060764fb75169148a0beb3913d2f6d457d2c3cf0))
97
- * move the form layout to basalt-ui/controls ([18f9eec](https://github.com/jkrumm/basalt-ui/commit/18f9eecfbac4e27c13ace023257f61ce27ab656e))
98
- * promote unknown-vx-token to error ([0ac5008](https://github.com/jkrumm/basalt-ui/commit/0ac5008d86b1b1f5a4a9dbec82335452837c3d1c))
199
+ - export useCoarsePointer from the root barrel ([060764f](https://github.com/jkrumm/basalt-ui/commit/060764fb75169148a0beb3913d2f6d457d2c3cf0))
200
+ - move the form layout to basalt-ui/controls ([18f9eec](https://github.com/jkrumm/basalt-ui/commit/18f9eecfbac4e27c13ace023257f61ce27ab656e))
201
+ - promote unknown-vx-token to error ([0ac5008](https://github.com/jkrumm/basalt-ui/commit/0ac5008d86b1b1f5a4a9dbec82335452837c3d1c))
99
202
 
100
203
  # [1.35.0](https://github.com/jkrumm/basalt-ui/compare/v1.34.1...v1.35.0) (2026-10-01)
101
204
 
102
-
103
205
  ### Bug Fixes
104
206
 
105
- * extend the unknown-vx-token grace one minor to 1.36.0 ([a618388](https://github.com/jkrumm/basalt-ui/commit/a618388e27ea1fc650b592f75f70a753946b55a7))
106
- * judge raw-selection-control by host-tag nesting, not a 12-line window ([98724ad](https://github.com/jkrumm/basalt-ui/commit/98724ad2d1c46cbced5aef8d834f9f6c26cf81c4))
107
- * name the signed-out sidebar account row in the collapsed rail ([9e4ccad](https://github.com/jkrumm/basalt-ui/commit/9e4ccadf04b759ce58501cc146ee808f4c0bb449))
108
-
207
+ - extend the unknown-vx-token grace one minor to 1.36.0 ([a618388](https://github.com/jkrumm/basalt-ui/commit/a618388e27ea1fc650b592f75f70a753946b55a7))
208
+ - judge raw-selection-control by host-tag nesting, not a 12-line window ([98724ad](https://github.com/jkrumm/basalt-ui/commit/98724ad2d1c46cbced5aef8d834f9f6c26cf81c4))
209
+ - name the signed-out sidebar account row in the collapsed rail ([9e4ccad](https://github.com/jkrumm/basalt-ui/commit/9e4ccadf04b759ce58501cc146ee808f4c0bb449))
109
210
 
110
211
  ### Features
111
212
 
112
- * keep a custom sidebar block in the collapsed rail and the mobile drawer ([136481c](https://github.com/jkrumm/basalt-ui/commit/136481cb6485543c9bdd4b386590c5080ed14c3c))
113
- * let a settings entry be the current page, not only a checked selection ([1da042c](https://github.com/jkrumm/basalt-ui/commit/1da042ce10855e6d6cc364b94358220be2064c4d))
213
+ - keep a custom sidebar block in the collapsed rail and the mobile drawer ([136481c](https://github.com/jkrumm/basalt-ui/commit/136481cb6485543c9bdd4b386590c5080ed14c3c))
214
+ - let a settings entry be the current page, not only a checked selection ([1da042c](https://github.com/jkrumm/basalt-ui/commit/1da042ce10855e6d6cc364b94358220be2064c4d))
114
215
 
115
216
  ## [1.34.1](https://github.com/jkrumm/basalt-ui/compare/v1.34.0...v1.34.1) (2026-10-01)
116
217
 
117
-
118
218
  ### Bug Fixes
119
219
 
120
- * count the oxlint lane as wired only when an oxlint binary resolves ([013c496](https://github.com/jkrumm/basalt-ui/commit/013c496d84b17d9f2715e94e49e4c7d2de50d8fc))
220
+ - count the oxlint lane as wired only when an oxlint binary resolves ([013c496](https://github.com/jkrumm/basalt-ui/commit/013c496d84b17d9f2715e94e49e4c7d2de50d8fc))
121
221
 
122
222
  # [1.34.0](https://github.com/jkrumm/basalt-ui/compare/v1.33.0...v1.34.0) (2026-10-01)
123
223
 
124
-
125
224
  ### Bug Fixes
126
225
 
127
- * --merge-lint replaces a guards-only extends instead of stacking it ([b2e551b](https://github.com/jkrumm/basalt-ui/commit/b2e551bc1dc431a457f58db2f8727c5f2546a9f2))
128
- * card-with-border remedy names its card-inset half ([1edfae7](https://github.com/jkrumm/basalt-ui/commit/1edfae79a0366d0f6c4618a7bd07d8c2370a1753))
129
- * derive basalt's --vx-* families from every emitted name ([07ea183](https://github.com/jkrumm/basalt-ui/commit/07ea1834f4cfc14979bb81e4cd2afc5849f28712))
130
- * dev-gate the basalt-family ref warning and pin its version ([23396df](https://github.com/jkrumm/basalt-ui/commit/23396df7d4fbb1f7b16f0d2f192c07485b6a4e47))
131
- * give icon-less nav items a first-letter glyph and a name in the rail ([9095f15](https://github.com/jkrumm/basalt-ui/commit/9095f157d1652316f03e2ff1668faddb406a34ef))
132
- * name an icon-less row by aria-label only in the collapsed rail ([bc13e09](https://github.com/jkrumm/basalt-ui/commit/bc13e09ff3c12e56be98c5353cf95c5925463ff9))
133
- * never autofix a removed deprecation row ([0534a28](https://github.com/jkrumm/basalt-ui/commit/0534a287da5252b8699b9bd4eb5ec36c1279b1b9))
134
- * refuse a release that reaches a deprecation's removeIn while it still ships ([eb55145](https://github.com/jkrumm/basalt-ui/commit/eb5514507011e9b9fdb7f1a23e335bc1c478c3aa))
135
- * restore check-grace's singular 'grace entry' in the clear line ([6fca61c](https://github.com/jkrumm/basalt-ui/commit/6fca61cb5ec1dae71b1f8b9661817a17919ca9b5))
136
- * take the rail glyph from a real grapheme via Intl.Segmenter ([ff4e396](https://github.com/jkrumm/basalt-ui/commit/ff4e39637f12cddb8817cd4be9367bb63f0ab5fc))
137
- * treat a false icon as absent and expose a label-only glyph helper ([323ddbb](https://github.com/jkrumm/basalt-ui/commit/323ddbb0dc28c41b54c1c33271eb7d6a348ab1bd))
138
-
226
+ - --merge-lint replaces a guards-only extends instead of stacking it ([b2e551b](https://github.com/jkrumm/basalt-ui/commit/b2e551bc1dc431a457f58db2f8727c5f2546a9f2))
227
+ - card-with-border remedy names its card-inset half ([1edfae7](https://github.com/jkrumm/basalt-ui/commit/1edfae79a0366d0f6c4618a7bd07d8c2370a1753))
228
+ - derive basalt's --vx-* families from every emitted name ([07ea183](https://github.com/jkrumm/basalt-ui/commit/07ea1834f4cfc14979bb81e4cd2afc5849f28712))
229
+ - dev-gate the basalt-family ref warning and pin its version ([23396df](https://github.com/jkrumm/basalt-ui/commit/23396df7d4fbb1f7b16f0d2f192c07485b6a4e47))
230
+ - give icon-less nav items a first-letter glyph and a name in the rail ([9095f15](https://github.com/jkrumm/basalt-ui/commit/9095f157d1652316f03e2ff1668faddb406a34ef))
231
+ - name an icon-less row by aria-label only in the collapsed rail ([bc13e09](https://github.com/jkrumm/basalt-ui/commit/bc13e09ff3c12e56be98c5353cf95c5925463ff9))
232
+ - never autofix a removed deprecation row ([0534a28](https://github.com/jkrumm/basalt-ui/commit/0534a287da5252b8699b9bd4eb5ec36c1279b1b9))
233
+ - refuse a release that reaches a deprecation's removeIn while it still ships ([eb55145](https://github.com/jkrumm/basalt-ui/commit/eb5514507011e9b9fdb7f1a23e335bc1c478c3aa))
234
+ - restore check-grace's singular 'grace entry' in the clear line ([6fca61c](https://github.com/jkrumm/basalt-ui/commit/6fca61cb5ec1dae71b1f8b9661817a17919ca9b5))
235
+ - take the rail glyph from a real grapheme via Intl.Segmenter ([ff4e396](https://github.com/jkrumm/basalt-ui/commit/ff4e39637f12cddb8817cd4be9367bb63f0ab5fc))
236
+ - treat a false icon as absent and expose a label-only glyph helper ([323ddbb](https://github.com/jkrumm/basalt-ui/commit/323ddbb0dc28c41b54c1c33271eb7d6a348ab1bd))
139
237
 
140
238
  ### Features
141
239
 
142
- * check-theme names an unwired AST lane ([91472ef](https://github.com/jkrumm/basalt-ui/commit/91472efbf87b336716c1871392878e648b355cd0))
143
- * judge every unemitted name inside a basalt-owned --vx-* family ([4864a9d](https://github.com/jkrumm/basalt-ui/commit/4864a9d78a0a0ef95d1f6caee85043b0d64c75ea))
144
- * remove useBreakpoint, overdue since 1.33.0 ([d68f538](https://github.com/jkrumm/basalt-ui/commit/d68f538dde34acecda481f567c17ade5a86074d4))
145
- * ship a guards-only oxlint preset, configs/oxlint-basalt.json ([f96d150](https://github.com/jkrumm/basalt-ui/commit/f96d15097aabf5461b524270eb5ce523928bfab5))
146
- * ship CONTAINER_KEYS for SimpleGrid type="container" keys ([acb5933](https://github.com/jkrumm/basalt-ui/commit/acb5933cf407cfb203819ad09bb7cf0315f73e79))
240
+ - check-theme names an unwired AST lane ([91472ef](https://github.com/jkrumm/basalt-ui/commit/91472efbf87b336716c1871392878e648b355cd0))
241
+ - judge every unemitted name inside a basalt-owned --vx-* family ([4864a9d](https://github.com/jkrumm/basalt-ui/commit/4864a9d78a0a0ef95d1f6caee85043b0d64c75ea))
242
+ - remove useBreakpoint, overdue since 1.33.0 ([d68f538](https://github.com/jkrumm/basalt-ui/commit/d68f538dde34acecda481f567c17ade5a86074d4))
243
+ - ship a guards-only oxlint preset, configs/oxlint-basalt.json ([f96d150](https://github.com/jkrumm/basalt-ui/commit/f96d15097aabf5461b524270eb5ce523928bfab5))
244
+ - ship CONTAINER_KEYS for SimpleGrid type="container" keys ([acb5933](https://github.com/jkrumm/basalt-ui/commit/acb5933cf407cfb203819ad09bb7cf0315f73e79))
147
245
 
148
246
  # [1.33.0](https://github.com/jkrumm/basalt-ui/compare/v1.32.1...v1.33.0) (2026-10-01)
149
247
 
150
-
151
248
  ### Bug Fixes
152
249
 
153
- * audit-allows asks oxlint about dual-lane and mixed waivers ([9e0a3d5](https://github.com/jkrumm/basalt-ui/commit/9e0a3d5a43cd9e27625801dd28c3360975f155ed))
154
- * audit-allows probes bare line-scope waivers through oxlint ([b5d53f9](https://github.com/jkrumm/basalt-ui/commit/b5d53f9c8e3ac1712e455dd0fd7310d88358104f))
155
- * break the audit-allows → index → check-theme → audit-allows cycle ([98d746c](https://github.com/jkrumm/basalt-ui/commit/98d746cd13e36b7cbf5fa809e120c91cd9d23c53))
156
- * count only real declaration positions as a local --vx declaration ([4b5b723](https://github.com/jkrumm/basalt-ui/commit/4b5b723c994c6f6c2b01612f5a303649881f3cc2))
157
- * gate the lab store on the dotted NODE_ENV form, record the fold matrix ([7d336b5](https://github.com/jkrumm/basalt-ui/commit/7d336b5209aa7be846ba11faa935e31e5aa8f795))
158
- * gen-vx-names reads CSS declarations in ts/tsx and says what QUOTED admits ([238cdb9](https://github.com/jkrumm/basalt-ui/commit/238cdb9fb887b6b703e61c684d0c657d3a9a6a5c))
159
- * harden the provider-only budget's build, dist and externals handling ([8a20d0f](https://github.com/jkrumm/basalt-ui/commit/8a20d0f49784e496b7db9634a2ac83f97c01903d))
160
- * judge a resets write against the URL at navigate time, not the render ([74a6dc7](https://github.com/jkrumm/basalt-ui/commit/74a6dc762965e470525e9aabe14e9f5e0972b07b))
161
- * judge only the vx names basalt claims — removed names and bare roots ([bf15dab](https://github.com/jkrumm/basalt-ui/commit/bf15dab0704858022ec2c157b74e8183dda71586))
162
- * keep the page when clear() leaves a field where it was ([2a6b40f](https://github.com/jkrumm/basalt-ui/commit/2a6b40faebb38011b2203b10382411c97fb6d551))
163
- * keep the page when Reset all moves no field ([c12d01a](https://github.com/jkrumm/basalt-ui/commit/c12d01ae7fa998f569369b3fb347bc941c56cf6c))
164
- * print a failed provider-only build as a budget row, not a stack ([66361ef](https://github.com/jkrumm/basalt-ui/commit/66361ef1a41019b6f096e33ffc0d13d28913e639))
165
- * resolve the CONTAINER_GRID_BREAKPOINTS trust through the scope manager ([26f664b](https://github.com/jkrumm/basalt-ui/commit/26f664b6c5af662ce89f09ff1d839fd8fc34830e))
166
- * see a --vx reference a formatter wrapped across lines ([ba469b1](https://github.com/jkrumm/basalt-ui/commit/ba469b12cc7513d90fbc5171e570cfacc83312bf))
167
- * stop NumberFilter's Clear from committing the draft on its way ([04e3156](https://github.com/jkrumm/basalt-ui/commit/04e315682571ad9cca24cadd451accce0a312134))
168
- * trust CONTAINER_GRID_BREAKPOINTS read off a namespace import ([cc15f76](https://github.com/jkrumm/basalt-ui/commit/cc15f760fbcafa041404b750f1e588c712108745))
169
- * word the bare-waiver oxlint verdict by what it waives, not a fake id ([3b5e3b2](https://github.com/jkrumm/basalt-ui/commit/3b5e3b2757b0ff7b875dc1a337f4a8137e8c4bc3))
170
-
250
+ - audit-allows asks oxlint about dual-lane and mixed waivers ([9e0a3d5](https://github.com/jkrumm/basalt-ui/commit/9e0a3d5a43cd9e27625801dd28c3360975f155ed))
251
+ - audit-allows probes bare line-scope waivers through oxlint ([b5d53f9](https://github.com/jkrumm/basalt-ui/commit/b5d53f9c8e3ac1712e455dd0fd7310d88358104f))
252
+ - break the audit-allows → index → check-theme → audit-allows cycle ([98d746c](https://github.com/jkrumm/basalt-ui/commit/98d746cd13e36b7cbf5fa809e120c91cd9d23c53))
253
+ - count only real declaration positions as a local --vx declaration ([4b5b723](https://github.com/jkrumm/basalt-ui/commit/4b5b723c994c6f6c2b01612f5a303649881f3cc2))
254
+ - gate the lab store on the dotted NODE_ENV form, record the fold matrix ([7d336b5](https://github.com/jkrumm/basalt-ui/commit/7d336b5209aa7be846ba11faa935e31e5aa8f795))
255
+ - gen-vx-names reads CSS declarations in ts/tsx and says what QUOTED admits ([238cdb9](https://github.com/jkrumm/basalt-ui/commit/238cdb9fb887b6b703e61c684d0c657d3a9a6a5c))
256
+ - harden the provider-only budget's build, dist and externals handling ([8a20d0f](https://github.com/jkrumm/basalt-ui/commit/8a20d0f49784e496b7db9634a2ac83f97c01903d))
257
+ - judge a resets write against the URL at navigate time, not the render ([74a6dc7](https://github.com/jkrumm/basalt-ui/commit/74a6dc762965e470525e9aabe14e9f5e0972b07b))
258
+ - judge only the vx names basalt claims — removed names and bare roots ([bf15dab](https://github.com/jkrumm/basalt-ui/commit/bf15dab0704858022ec2c157b74e8183dda71586))
259
+ - keep the page when clear() leaves a field where it was ([2a6b40f](https://github.com/jkrumm/basalt-ui/commit/2a6b40faebb38011b2203b10382411c97fb6d551))
260
+ - keep the page when Reset all moves no field ([c12d01a](https://github.com/jkrumm/basalt-ui/commit/c12d01ae7fa998f569369b3fb347bc941c56cf6c))
261
+ - print a failed provider-only build as a budget row, not a stack ([66361ef](https://github.com/jkrumm/basalt-ui/commit/66361ef1a41019b6f096e33ffc0d13d28913e639))
262
+ - resolve the CONTAINER_GRID_BREAKPOINTS trust through the scope manager ([26f664b](https://github.com/jkrumm/basalt-ui/commit/26f664b6c5af662ce89f09ff1d839fd8fc34830e))
263
+ - see a --vx reference a formatter wrapped across lines ([ba469b1](https://github.com/jkrumm/basalt-ui/commit/ba469b12cc7513d90fbc5171e570cfacc83312bf))
264
+ - stop NumberFilter's Clear from committing the draft on its way ([04e3156](https://github.com/jkrumm/basalt-ui/commit/04e315682571ad9cca24cadd451accce0a312134))
265
+ - trust CONTAINER_GRID_BREAKPOINTS read off a namespace import ([cc15f76](https://github.com/jkrumm/basalt-ui/commit/cc15f760fbcafa041404b750f1e588c712108745))
266
+ - word the bare-waiver oxlint verdict by what it waives, not a fake id ([3b5e3b2](https://github.com/jkrumm/basalt-ui/commit/3b5e3b2757b0ff7b875dc1a337f4a8137e8c4bc3))
171
267
 
172
268
  ### Features
173
269
 
174
- * add clearable to NumberFilter for parity with SelectFilter ([a46d805](https://github.com/jkrumm/basalt-ui/commit/a46d805f97c1b60b93017ade2f6edb5a293fd302))
175
- * add resets to createSearchStore for sibling params like page ([e809fd7](https://github.com/jkrumm/basalt-ui/commit/e809fd78e0b397f1ea52bb860b68bda5353c4943))
176
- * promote the C1 and breakpoint twin pairs to error ([d49a5e2](https://github.com/jkrumm/basalt-ui/commit/d49a5e22b4f678f82f2377485f15ce6bc65c1be6))
177
- * report removed and misspelled --vx-* names as unknown-vx-token ([6405f1a](https://github.com/jkrumm/basalt-ui/commit/6405f1af265cb7659026c1806bead121a22253f6))
178
- * ship CONTAINER_GRID_BREAKPOINTS and let raw-breakpoint trust it ([4e3addb](https://github.com/jkrumm/basalt-ui/commit/4e3addbf50d1d358d8037389ad679d434ba00d98))
179
-
270
+ - add clearable to NumberFilter for parity with SelectFilter ([a46d805](https://github.com/jkrumm/basalt-ui/commit/a46d805f97c1b60b93017ade2f6edb5a293fd302))
271
+ - add resets to createSearchStore for sibling params like page ([e809fd7](https://github.com/jkrumm/basalt-ui/commit/e809fd78e0b397f1ea52bb860b68bda5353c4943))
272
+ - promote the C1 and breakpoint twin pairs to error ([d49a5e2](https://github.com/jkrumm/basalt-ui/commit/d49a5e22b4f678f82f2377485f15ce6bc65c1be6))
273
+ - report removed and misspelled --vx-* names as unknown-vx-token ([6405f1a](https://github.com/jkrumm/basalt-ui/commit/6405f1af265cb7659026c1806bead121a22253f6))
274
+ - ship CONTAINER_GRID_BREAKPOINTS and let raw-breakpoint trust it ([4e3addb](https://github.com/jkrumm/basalt-ui/commit/4e3addbf50d1d358d8037389ad679d434ba00d98))
180
275
 
181
276
  ### Performance Improvements
182
277
 
183
- * budget the provider-only first paint in check-budgets ([d36bed2](https://github.com/jkrumm/basalt-ui/commit/d36bed2c9c898490fddde0de126a36541ee25860))
184
- * fold every dev-only gate out of production bundles ([25f94b7](https://github.com/jkrumm/basalt-ui/commit/25f94b79e81b045c05fe5eefb9479edebe195c43))
185
- * keep the theme lab's store out of production first paint ([4e7512b](https://github.com/jkrumm/basalt-ui/commit/4e7512b41846e54fbb3d196ec157435c03b1c582))
278
+ - budget the provider-only first paint in check-budgets ([d36bed2](https://github.com/jkrumm/basalt-ui/commit/d36bed2c9c898490fddde0de126a36541ee25860))
279
+ - fold every dev-only gate out of production bundles ([25f94b7](https://github.com/jkrumm/basalt-ui/commit/25f94b79e81b045c05fe5eefb9479edebe195c43))
280
+ - keep the theme lab's store out of production first paint ([4e7512b](https://github.com/jkrumm/basalt-ui/commit/4e7512b41846e54fbb3d196ec157435c03b1c582))
186
281
 
187
282
  ## [1.32.1](https://github.com/jkrumm/basalt-ui/compare/v1.32.0...v1.32.1) (2026-09-30)
188
283
 
189
-
190
284
  ### Bug Fixes
191
285
 
192
- * align guard lanes on FormRow/FormGroup, drop basalt-main ([17e673d](https://github.com/jkrumm/basalt-ui/commit/17e673d421c3e2f93be01c2b8d24e10e56d5b71c))
193
- * bottom-align FormGroup's row direction so a trailing button isn't stretched ([e5ca2ab](https://github.com/jkrumm/basalt-ui/commit/e5ca2ab5e433e4e3ef15f505913c672b4912f0e9))
194
- * export the size- and container-class tables from basalt-ui/tokens ([14fb784](https://github.com/jkrumm/basalt-ui/commit/14fb784586c3348a3647280e74ea905b2df0091b))
195
- * point every § Unreleased reference at the section the release names ([bc17710](https://github.com/jkrumm/basalt-ui/commit/bc1771001048f2883607d6917e6f94cc397865be))
196
- * resolve consts before unwrapping raw-breakpoint conditionals ([4f9cc79](https://github.com/jkrumm/basalt-ui/commit/4f9cc7912ae0805eb5e574f8ed8a8f9c068e0ddf))
286
+ - align guard lanes on FormRow/FormGroup, drop basalt-main ([17e673d](https://github.com/jkrumm/basalt-ui/commit/17e673d421c3e2f93be01c2b8d24e10e56d5b71c))
287
+ - bottom-align FormGroup's row direction so a trailing button isn't stretched ([e5ca2ab](https://github.com/jkrumm/basalt-ui/commit/e5ca2ab5e433e4e3ef15f505913c672b4912f0e9))
288
+ - export the size- and container-class tables from basalt-ui/tokens ([14fb784](https://github.com/jkrumm/basalt-ui/commit/14fb784586c3348a3647280e74ea905b2df0091b))
289
+ - point every § Unreleased reference at the section the release names ([bc17710](https://github.com/jkrumm/basalt-ui/commit/bc1771001048f2883607d6917e6f94cc397865be))
290
+ - resolve consts before unwrapping raw-breakpoint conditionals ([4f9cc79](https://github.com/jkrumm/basalt-ui/commit/4f9cc7912ae0805eb5e574f8ed8a8f9c068e0ddf))
197
291
 
198
292
  # [1.32.0](https://github.com/jkrumm/basalt-ui/compare/v1.31.0...v1.32.0) (2026-09-30)
199
293
 
200
-
201
294
  ### Bug Fixes
202
295
 
203
- * build BasaltDataTable cards only in card mode, guard the routed-prop lookup ([4024e83](https://github.com/jkrumm/basalt-ui/commit/4024e8333c83cb4808507929f47246209e67a00a))
204
- * exempt a container Grid only when its breakpoints map resolves ([d6d9bda](https://github.com/jkrumm/basalt-ui/commit/d6d9bdaa7eb693a01166d121fdc5bb95002bb09d))
205
- * honour maxHeight in BasaltDataTable's card projection ([3b59a2f](https://github.com/jkrumm/basalt-ui/commit/3b59a2f5304969e0dcadfa77b1ff375fd0f1d048))
206
- * key StatGroup and WidgetGrid on the container-class law ([db6e130](https://github.com/jkrumm/basalt-ui/commit/db6e130d050d562926fce63e7f1a5e3d0aeb45f8))
207
- * move raw-media-query's promotion to 1.33.0 with its AST twin ([ac2641c](https://github.com/jkrumm/basalt-ui/commit/ac2641c4ac1fcb42b2381758ae9a2b20809ce630))
208
- * move useBreakpoint's removal to 1.33.0 and correct its replacement ([a2c356b](https://github.com/jkrumm/basalt-ui/commit/a2c356bd1979960b8b9fc26eb8341cc84d3e88ee))
209
- * narrow the container-grid exemption to the props Mantine routes ([d547022](https://github.com/jkrumm/basalt-ui/commit/d5470226008984fba39849062c0ee0abbac178cc))
210
- * prune ignored dirs during the doc-drift repo walk instead of after it ([a4647dc](https://github.com/jkrumm/basalt-ui/commit/a4647dcd380f74f7ac73989fa6857d2041d16a23))
211
- * read only width clauses when judging a shell/ media query ([3f14b7f](https://github.com/jkrumm/basalt-ui/commit/3f14b7f342c64c9f2b7b1b04887930f37f695f01))
212
- * say legend.maxRows changed unit in its deprecation warning ([29ad3a5](https://github.com/jkrumm/basalt-ui/commit/29ad3a5183648a0edc71250b22a996fa818edfb8))
213
- * stop warning legend-slot contention on a same-commit owner hand-off ([af18cfa](https://github.com/jkrumm/basalt-ui/commit/af18cfad7c3d9747a7cc6c0a117db34bbb8cd531))
214
-
296
+ - build BasaltDataTable cards only in card mode, guard the routed-prop lookup ([4024e83](https://github.com/jkrumm/basalt-ui/commit/4024e8333c83cb4808507929f47246209e67a00a))
297
+ - exempt a container Grid only when its breakpoints map resolves ([d6d9bda](https://github.com/jkrumm/basalt-ui/commit/d6d9bdaa7eb693a01166d121fdc5bb95002bb09d))
298
+ - honour maxHeight in BasaltDataTable's card projection ([3b59a2f](https://github.com/jkrumm/basalt-ui/commit/3b59a2f5304969e0dcadfa77b1ff375fd0f1d048))
299
+ - key StatGroup and WidgetGrid on the container-class law ([db6e130](https://github.com/jkrumm/basalt-ui/commit/db6e130d050d562926fce63e7f1a5e3d0aeb45f8))
300
+ - move raw-media-query's promotion to 1.33.0 with its AST twin ([ac2641c](https://github.com/jkrumm/basalt-ui/commit/ac2641c4ac1fcb42b2381758ae9a2b20809ce630))
301
+ - move useBreakpoint's removal to 1.33.0 and correct its replacement ([a2c356b](https://github.com/jkrumm/basalt-ui/commit/a2c356bd1979960b8b9fc26eb8341cc84d3e88ee))
302
+ - narrow the container-grid exemption to the props Mantine routes ([d547022](https://github.com/jkrumm/basalt-ui/commit/d5470226008984fba39849062c0ee0abbac178cc))
303
+ - prune ignored dirs during the doc-drift repo walk instead of after it ([a4647dc](https://github.com/jkrumm/basalt-ui/commit/a4647dcd380f74f7ac73989fa6857d2041d16a23))
304
+ - read only width clauses when judging a shell/ media query ([3f14b7f](https://github.com/jkrumm/basalt-ui/commit/3f14b7f342c64c9f2b7b1b04887930f37f695f01))
305
+ - say legend.maxRows changed unit in its deprecation warning ([29ad3a5](https://github.com/jkrumm/basalt-ui/commit/29ad3a5183648a0edc71250b22a996fa818edfb8))
306
+ - stop warning legend-slot contention on a same-commit owner hand-off ([af18cfa](https://github.com/jkrumm/basalt-ui/commit/af18cfad7c3d9747a7cc6c0a117db34bbb8cd531))
215
307
 
216
308
  ### Features
217
309
 
218
- * give basalt/raw-breakpoint a reachable container-grid answer ([2bf4a22](https://github.com/jkrumm/basalt-ui/commit/2bf4a2256fff9b08adcd6c3716b92993b4fdb40a))
219
- * project BasaltDataTable rows as cards on the table's own width ([f201b2a](https://github.com/jkrumm/basalt-ui/commit/f201b2ac81726fc47b2adb5660fd42ce2c881b3e))
310
+ - give basalt/raw-breakpoint a reachable container-grid answer ([2bf4a22](https://github.com/jkrumm/basalt-ui/commit/2bf4a2256fff9b08adcd6c3716b92993b4fdb40a))
311
+ - project BasaltDataTable rows as cards on the table's own width ([f201b2a](https://github.com/jkrumm/basalt-ui/commit/f201b2ac81726fc47b2adb5660fd42ce2c881b3e))
220
312
 
221
313
  # [1.31.0](https://github.com/jkrumm/basalt-ui/compare/v1.30.2...v1.31.0) (2026-09-28)
222
314
 
223
-
224
315
  ### Bug Fixes
225
316
 
226
- * card and legend correctness — hysteresis, dots fit, slot ownership ([890658f](https://github.com/jkrumm/basalt-ui/commit/890658fc6ac5d2ffac1e04b79f6ec8d33f73e583))
227
- * close responsive-guard gaps and dedupe measured-fold/hit-floor internals ([d37d9c2](https://github.com/jkrumm/basalt-ui/commit/d37d9c29151a65ffc83a9cce9344e602b223bfce))
228
- * economise chart axis space with a shared y-placement ladder ([05562c7](https://github.com/jkrumm/basalt-ui/commit/05562c748bff5b6f2bf62b020e6d112463e615d1))
229
- * give the plot its space — inside-y floor, wrap law, height clamp ([16e3e18](https://github.com/jkrumm/basalt-ui/commit/16e3e189c62170151d72014000140726c94a2204))
230
- * keep a committed chart pin through a cancelled second press ([53e0264](https://github.com/jkrumm/basalt-ui/commit/53e0264343ffd2c06fe666bc916d6159c28ab16d))
231
- * make chart touch presses provisional and dismiss on scroll ([c0ee0ae](https://github.com/jkrumm/basalt-ui/commit/c0ee0ae17cb6ecaf91183107b26c7f35a026b83f))
232
- * resolve the pre-release review findings ([a33b6dd](https://github.com/jkrumm/basalt-ui/commit/a33b6ddd58519912698f3dc5b7a6a2c7ff5adf92))
233
- * thin rotated x labels by projected width, default charts to regular ([105b12d](https://github.com/jkrumm/basalt-ui/commit/105b12d36900846212c7cf91eb6361fe4a554ae5))
234
- * touch floors, filter hit gap, form-row container width, composer padding ([a12f230](https://github.com/jkrumm/basalt-ui/commit/a12f230963270a8785070b6711768204548fe02d))
235
-
317
+ - card and legend correctness — hysteresis, dots fit, slot ownership ([890658f](https://github.com/jkrumm/basalt-ui/commit/890658fc6ac5d2ffac1e04b79f6ec8d33f73e583))
318
+ - close responsive-guard gaps and dedupe measured-fold/hit-floor internals ([d37d9c2](https://github.com/jkrumm/basalt-ui/commit/d37d9c29151a65ffc83a9cce9344e602b223bfce))
319
+ - economise chart axis space with a shared y-placement ladder ([05562c7](https://github.com/jkrumm/basalt-ui/commit/05562c748bff5b6f2bf62b020e6d112463e615d1))
320
+ - give the plot its space — inside-y floor, wrap law, height clamp ([16e3e18](https://github.com/jkrumm/basalt-ui/commit/16e3e189c62170151d72014000140726c94a2204))
321
+ - keep a committed chart pin through a cancelled second press ([53e0264](https://github.com/jkrumm/basalt-ui/commit/53e0264343ffd2c06fe666bc916d6159c28ab16d))
322
+ - make chart touch presses provisional and dismiss on scroll ([c0ee0ae](https://github.com/jkrumm/basalt-ui/commit/c0ee0ae17cb6ecaf91183107b26c7f35a026b83f))
323
+ - resolve the pre-release review findings ([a33b6dd](https://github.com/jkrumm/basalt-ui/commit/a33b6ddd58519912698f3dc5b7a6a2c7ff5adf92))
324
+ - thin rotated x labels by projected width, default charts to regular ([105b12d](https://github.com/jkrumm/basalt-ui/commit/105b12d36900846212c7cf91eb6361fe4a554ae5))
325
+ - touch floors, filter hit gap, form-row container width, composer padding ([a12f230](https://github.com/jkrumm/basalt-ui/commit/a12f230963270a8785070b6711768204548fe02d))
236
326
 
237
327
  ### Features
238
328
 
239
- * adopt the pointer-tier hit area, gate hover reveals, sheet the modal ([3a63850](https://github.com/jkrumm/basalt-ui/commit/3a63850b489190927d221eaea62d67dd1a8d1f62))
240
- * drop the dead chart-tier API and consolidate media-query hooks ([b255dcf](https://github.com/jkrumm/basalt-ui/commit/b255dcf5d408b34bec76a4b6a9e5da712e27fa52))
241
- * fit chart legends by measured width, fold donut and label line ends ([5f0c5bd](https://github.com/jkrumm/basalt-ui/commit/5f0c5bd16cd3abd0b7772da991321ceaff8a1477))
242
- * fold chart-card headers by height, not width alone ([9d7fc88](https://github.com/jkrumm/basalt-ui/commit/9d7fc889c5981b08db8bd47908a6598c94a55999))
243
- * fold DataTable columns, warn short rows, sheet the TOC, pin composer keys ([f3bd775](https://github.com/jkrumm/basalt-ui/commit/f3bd775a57411bcb42a0ff49cfc3ae3a80d5a162))
244
- * fold short-card chart legends to dots, ship the raw-breakpoint guards ([2557d9d](https://github.com/jkrumm/basalt-ui/commit/2557d9dc88438cbb88e0b7a90c572c69dd79c827))
245
- * key card chrome on the card's own width ([aa407b8](https://github.com/jkrumm/basalt-ui/commit/aa407b866a0d9b343ce5b48f2b3c8f2b60341888))
246
- * pin chart tooltips on tap, add keyboard parity to donut and heatmap ([a9cc50a](https://github.com/jkrumm/basalt-ui/commit/a9cc50aa6dd0626e3d312eba068cf95bbf50817b))
247
- * resolve chart layout from the container class, height from width ([ae9632c](https://github.com/jkrumm/basalt-ui/commit/ae9632c010f58c02f49659cec1343bb8c1e23540))
248
- * size-class shell docking, measured page-bar fold and toast bottom inset ([1fd619d](https://github.com/jkrumm/basalt-ui/commit/1fd619db7f58d81b60b20832b6353968b957c905))
249
- * spend compact-width axes on the plot, not the gutters ([b0d5b49](https://github.com/jkrumm/basalt-ui/commit/b0d5b49f442a471f1a53b2fb57c90144efb66095))
250
- * three-axis responsive foundations and --vx-hit ([6609ec1](https://github.com/jkrumm/basalt-ui/commit/6609ec1d62d189184dd512c12334963fb8fe0b84))
329
+ - adopt the pointer-tier hit area, gate hover reveals, sheet the modal ([3a63850](https://github.com/jkrumm/basalt-ui/commit/3a63850b489190927d221eaea62d67dd1a8d1f62))
330
+ - drop the dead chart-tier API and consolidate media-query hooks ([b255dcf](https://github.com/jkrumm/basalt-ui/commit/b255dcf5d408b34bec76a4b6a9e5da712e27fa52))
331
+ - fit chart legends by measured width, fold donut and label line ends ([5f0c5bd](https://github.com/jkrumm/basalt-ui/commit/5f0c5bd16cd3abd0b7772da991321ceaff8a1477))
332
+ - fold chart-card headers by height, not width alone ([9d7fc88](https://github.com/jkrumm/basalt-ui/commit/9d7fc889c5981b08db8bd47908a6598c94a55999))
333
+ - fold DataTable columns, warn short rows, sheet the TOC, pin composer keys ([f3bd775](https://github.com/jkrumm/basalt-ui/commit/f3bd775a57411bcb42a0ff49cfc3ae3a80d5a162))
334
+ - fold short-card chart legends to dots, ship the raw-breakpoint guards ([2557d9d](https://github.com/jkrumm/basalt-ui/commit/2557d9dc88438cbb88e0b7a90c572c69dd79c827))
335
+ - key card chrome on the card's own width ([aa407b8](https://github.com/jkrumm/basalt-ui/commit/aa407b866a0d9b343ce5b48f2b3c8f2b60341888))
336
+ - pin chart tooltips on tap, add keyboard parity to donut and heatmap ([a9cc50a](https://github.com/jkrumm/basalt-ui/commit/a9cc50aa6dd0626e3d312eba068cf95bbf50817b))
337
+ - resolve chart layout from the container class, height from width ([ae9632c](https://github.com/jkrumm/basalt-ui/commit/ae9632c010f58c02f49659cec1343bb8c1e23540))
338
+ - size-class shell docking, measured page-bar fold and toast bottom inset ([1fd619d](https://github.com/jkrumm/basalt-ui/commit/1fd619db7f58d81b60b20832b6353968b957c905))
339
+ - spend compact-width axes on the plot, not the gutters ([b0d5b49](https://github.com/jkrumm/basalt-ui/commit/b0d5b49f442a471f1a53b2fb57c90144efb66095))
340
+ - three-axis responsive foundations and --vx-hit ([6609ec1](https://github.com/jkrumm/basalt-ui/commit/6609ec1d62d189184dd512c12334963fb8fe0b84))
251
341
 
252
342
  ## [1.30.2](https://github.com/jkrumm/basalt-ui/compare/v1.30.1...v1.30.2) (2026-09-09)
253
343
 
254
-
255
344
  ### Bug Fixes
256
345
 
257
- * stop legendWins collapsing a self-measured fill frame to no plot ([07f0fcd](https://github.com/jkrumm/basalt-ui/commit/07f0fcd65df5047caec1ce09aaaf7f05958e58ad))
346
+ - stop legendWins collapsing a self-measured fill frame to no plot ([07f0fcd](https://github.com/jkrumm/basalt-ui/commit/07f0fcd65df5047caec1ce09aaaf7f05958e58ad))
258
347
 
259
348
  ## [1.30.1](https://github.com/jkrumm/basalt-ui/compare/v1.30.0...v1.30.1) (2026-09-09)
260
349
 
261
-
262
350
  ### Bug Fixes
263
351
 
264
- * automate MIGRATING's release rename, and correct what 1.30.0 published ([e8b03fa](https://github.com/jkrumm/basalt-ui/commit/e8b03fa35cb02fc7358933b9168d5a4c7506c92e))
265
- * make the responsive chart height reachable and the legend cap honoured ([5ab5bad](https://github.com/jkrumm/basalt-ui/commit/5ab5badbbbb4d2ed7962313b467e699f33f17554))
352
+ - automate MIGRATING's release rename, and correct what 1.30.0 published ([e8b03fa](https://github.com/jkrumm/basalt-ui/commit/e8b03fa35cb02fc7358933b9168d5a4c7506c92e))
353
+ - make the responsive chart height reachable and the legend cap honoured ([5ab5bad](https://github.com/jkrumm/basalt-ui/commit/5ab5badbbbb4d2ed7962313b467e699f33f17554))
266
354
 
267
355
  # [1.30.0](https://github.com/jkrumm/basalt-ui/compare/v1.29.2...v1.30.0) (2026-09-09)
268
356
 
269
-
270
357
  ### Features
271
358
 
272
- * mount the aside on the dashboard and make the playground phone-honest ([d72914b](https://github.com/jkrumm/basalt-ui/commit/d72914b41ee4cd1f98ea51af15666e5c0f764ec9))
273
- * promote four guard rules to error, extend the C1 pair to 1.31.0 ([121f8d2](https://github.com/jkrumm/basalt-ui/commit/121f8d29859cfbe89a8413ee9e8e1ae1c81443a9))
274
- * rebuild the shell chrome for phones, gutters and container columns ([0f63581](https://github.com/jkrumm/basalt-ui/commit/0f63581ef9d86a3ff3c69c7bed7c4d456156c8b5))
359
+ - mount the aside on the dashboard and make the playground phone-honest ([d72914b](https://github.com/jkrumm/basalt-ui/commit/d72914b41ee4cd1f98ea51af15666e5c0f764ec9))
360
+ - promote four guard rules to error, extend the C1 pair to 1.31.0 ([121f8d2](https://github.com/jkrumm/basalt-ui/commit/121f8d29859cfbe89a8413ee9e8e1ae1c81443a9))
361
+ - rebuild the shell chrome for phones, gutters and container columns ([0f63581](https://github.com/jkrumm/basalt-ui/commit/0f63581ef9d86a3ff3c69c7bed7c4d456156c8b5))
275
362
 
276
363
  ## [1.29.2](https://github.com/jkrumm/basalt-ui/compare/v1.29.1...v1.29.2) (2026-09-03)
277
364
 
278
-
279
365
  ### Bug Fixes
280
366
 
281
- * distribute unwrap's NonNullable over Eden's union response shape ([d46bc00](https://github.com/jkrumm/basalt-ui/commit/d46bc00ae46fcbe76e0b89516140735b1f3295fb))
367
+ - distribute unwrap's NonNullable over Eden's union response shape ([d46bc00](https://github.com/jkrumm/basalt-ui/commit/d46bc00ae46fcbe76e0b89516140735b1f3295fb))
282
368
 
283
369
  ## [1.29.1](https://github.com/jkrumm/basalt-ui/compare/v1.29.0...v1.29.1) (2026-09-03)
284
370
 
285
-
286
371
  ### Bug Fixes
287
372
 
288
- * collapse unwrap's two overloads into one conditional generic ([80152d7](https://github.com/jkrumm/basalt-ui/commit/80152d7d8030ce3455d8ba4f314e6aa59a88feab))
289
- * let BasaltDevDock's router prop accept a real TanStack Router ([955cdfc](https://github.com/jkrumm/basalt-ui/commit/955cdfca02d28e04e4665e652f1b0a53eb92cdfb))
290
- * make chart-missing-aria-label's tag scan brace-depth aware ([0d6c122](https://github.com/jkrumm/basalt-ui/commit/0d6c12239e99dc26b15d202050810c7788317acf))
291
- * retire basalt/query-dual-import — its premise is unreachable post-C1 ([372bc1f](https://github.com/jkrumm/basalt-ui/commit/372bc1fa9a32008a1cde2f13e0a2f826262cbe39))
373
+ - collapse unwrap's two overloads into one conditional generic ([80152d7](https://github.com/jkrumm/basalt-ui/commit/80152d7d8030ce3455d8ba4f314e6aa59a88feab))
374
+ - let BasaltDevDock's router prop accept a real TanStack Router ([955cdfc](https://github.com/jkrumm/basalt-ui/commit/955cdfca02d28e04e4665e652f1b0a53eb92cdfb))
375
+ - make chart-missing-aria-label's tag scan brace-depth aware ([0d6c122](https://github.com/jkrumm/basalt-ui/commit/0d6c12239e99dc26b15d202050810c7788317acf))
376
+ - retire basalt/query-dual-import — its premise is unreachable post-C1 ([372bc1f](https://github.com/jkrumm/basalt-ui/commit/372bc1fa9a32008a1cde2f13e0a2f826262cbe39))
292
377
 
293
378
  # [1.29.0](https://github.com/jkrumm/basalt-ui/compare/v1.28.0...v1.29.0) (2026-09-02)
294
379
 
295
-
296
380
  ### Bug Fixes
297
381
 
298
- * record every 1.29.0 removal, retire the dead notifications rule, tickValues ([21a6c28](https://github.com/jkrumm/basalt-ui/commit/21a6c287ad020e50dad7004135e1695bce58e2d6))
299
-
382
+ - record every 1.29.0 removal, retire the dead notifications rule, tickValues ([21a6c28](https://github.com/jkrumm/basalt-ui/commit/21a6c287ad020e50dad7004135e1695bce58e2d6))
300
383
 
301
384
  ### Features
302
385
 
303
- * a format module, chart states by flag, useBreakpoint, command handles ([dbf38f7](https://github.com/jkrumm/basalt-ui/commit/dbf38f79d01a2333181cf3f490f66ae8cd0dffbf))
304
- * transport message ids, onError and hydrated resume in the agent layer ([a30959e](https://github.com/jkrumm/basalt-ui/commit/a30959ef81eac0f555e0ad06e6fe68366cb358a8))
386
+ - a format module, chart states by flag, useBreakpoint, command handles ([dbf38f7](https://github.com/jkrumm/basalt-ui/commit/dbf38f79d01a2333181cf3f490f66ae8cd0dffbf))
387
+ - transport message ids, onError and hydrated resume in the agent layer ([a30959e](https://github.com/jkrumm/basalt-ui/commit/a30959ef81eac0f555e0ad06e6fe68366cb358a8))
305
388
 
306
389
  # [1.28.0](https://github.com/jkrumm/basalt-ui/compare/v1.27.0...v1.28.0) (2026-09-02)
307
390
 
308
-
309
391
  ### Bug Fixes
310
392
 
311
- * confirm settles on a throw, drafts flush on unmount, panel labels click ([fb4e9e7](https://github.com/jkrumm/basalt-ui/commit/fb4e9e7c865d364d6946d8d1cf65e7df19d2d22b))
312
- * forward every WidgetHeader prop a Section accepts ([39dd9af](https://github.com/jkrumm/basalt-ui/commit/39dd9afcffe08ef01ce7a69e5868cb2cca92eb01))
313
- * give PageBar row 2 a declared two-line phone form ([be8dbef](https://github.com/jkrumm/basalt-ui/commit/be8dbef7cea3d26bfeb1178685bba8bd56fd5747))
314
- * give the two CBBI distribution charts distinct chart ids ([0e76faf](https://github.com/jkrumm/basalt-ui/commit/0e76fafb984cae9a14af90cfa05f9899683a8eeb))
315
- * import the cbbi query types through basalt-ui/query ([ccf5738](https://github.com/jkrumm/basalt-ui/commit/ccf57386e31d6e26009e25c7501fad6cf0c2107f))
316
- * keep the mobile nav bar at its 48px touch floor under the seam ([6daa174](https://github.com/jkrumm/basalt-ui/commit/6daa1741a8d460e38dbdae80f4a9f96797ea9866))
317
- * keep the sticky table header at the scroller's top edge ([2ef7472](https://github.com/jkrumm/basalt-ui/commit/2ef7472f48f45eef0d730d25e7285a5443ad5352))
318
- * mount the aside panel's children once on the phone path ([badb691](https://github.com/jkrumm/basalt-ui/commit/badb6914d6dcd0830b2612d4384efeaab36c37a2))
319
- * raw-size-literal was inert in its own test fixture ([e547eee](https://github.com/jkrumm/basalt-ui/commit/e547eee7eb8805badd47ba577006a800ec278838))
320
- * widget header actions wrap at phone width, notification center fills ([a90fe7e](https://github.com/jkrumm/basalt-ui/commit/a90fe7e4a214c18fc452c7e1bc5e81d344c047bf))
321
-
322
-
323
- ### Features
324
-
325
- * a data table contains itself horizontally ([3147d3b](https://github.com/jkrumm/basalt-ui/commit/3147d3be8cebddce6e758d92ceea741982f8d1e9))
326
- * a form layer on top of the @mantine/form adapter ([99d56b7](https://github.com/jkrumm/basalt-ui/commit/99d56b7020a3285a5f76ae0ed6877c33de04567d))
327
- * a phone tier, step curves, a format law and states in the chart layer ([d506292](https://github.com/jkrumm/basalt-ui/commit/d506292c29c190810125c33efdd0978977033118))
328
- * a real log axis on CartesianChart with 1-2-5 ticks ([eb6fd91](https://github.com/jkrumm/basalt-ui/commit/eb6fd91f60e26b983755aa20294a87a7affa7b5b))
329
- * a widget grid, a stat group, a query-aware stat card and header slices ([ea7d712](https://github.com/jkrumm/basalt-ui/commit/ea7d7120231dcfb67f52b108a88c32ad6ede6c11))
330
- * accent-tinted active nav rows so hover cannot impersonate them ([25021d9](https://github.com/jkrumm/basalt-ui/commit/25021d9517f4ea017bd33a3de39d24a41caafdba))
331
- * add the CBBI live-data evidence page to the playground ([b8fe541](https://github.com/jkrumm/basalt-ui/commit/b8fe541a6efb644f11f4f4b729801ccb3f103062))
332
- * add the PageAside shell region ([feb8c3a](https://github.com/jkrumm/basalt-ui/commit/feb8c3a575590bfd462be2c20c96e47acb7d4bf6))
333
- * delta polarity on WidgetHeader and a group tier inside the aside ([2b2083d](https://github.com/jkrumm/basalt-ui/commit/2b2083dbc98695aeb48c09398fde01280d32ee8b))
334
- * diagnose, preset and advise in the CBBI aside ([bc9e651](https://github.com/jkrumm/basalt-ui/commit/bc9e651f18491782e410bf8619ccabdfe1e9fd3a))
335
- * drop test files from the tarball and add a package.json export ([022e0c0](https://github.com/jkrumm/basalt-ui/commit/022e0c04f9f45e4f3e48e85d9d28c80df297a07f))
336
- * every component takes className and style; misuse throws a named error ([21a9a9a](https://github.com/jkrumm/basalt-ui/commit/21a9a9ad650d035a742438ae30ec1c2fc785f5bf))
337
- * fit-checked choice tracks and panel rows in the phone sheet ([2ac8ef1](https://github.com/jkrumm/basalt-ui/commit/2ac8ef1c78391321c2fe432f5e002aaf64deaba5))
338
- * form rows are control homes and a rule catches the missing field key ([b63b1b5](https://github.com/jkrumm/basalt-ui/commit/b63b1b5659d454aa1e8e9ef972affb4da097a925))
339
- * guard bound controls outside a home and teach the agent the aside ([c4935ce](https://github.com/jkrumm/basalt-ui/commit/c4935ce82e9d7d53246230027c558543d809dccf))
340
- * guard the wiring doctrines and give deprecations a lifecycle ([f8b4ce6](https://github.com/jkrumm/basalt-ui/commit/f8b4ce699c726c93929b10337ba05ff7b10c9a1e))
341
- * header above the sidebar and main as the shell scrollport ([9a9499c](https://github.com/jkrumm/basalt-ui/commit/9a9499c062121456a3e9d2b7bae3946a8d7bb763))
342
- * let SliderControl compose its readout and carry an end control ([b8f560b](https://github.com/jkrumm/basalt-ui/commit/b8f560b26310e0855f26df752a92d6ffb88aff5a))
343
- * let the CBBI page fold price and confidence into one dual-axis chart ([3d6da25](https://github.com/jkrumm/basalt-ui/commit/3d6da2583c22b26e697b06bfcabc72b89b0068fb))
344
- * measured rotated-label margins, heatmap thinning and a live legend rollup ([57153f7](https://github.com/jkrumm/basalt-ui/commit/57153f72d546655b2f83e54b1073f090169e1291))
345
- * more-sheet rows share the sidebar's density and keep a gutter ([8ea3afd](https://github.com/jkrumm/basalt-ui/commit/8ea3afd8996da55574b9b88f40318d9a5e3d25e9))
346
- * notification payloads narrow per kind ([3f33079](https://github.com/jkrumm/basalt-ui/commit/3f330795e84255546adf55fbcb90e8d406e4e425))
347
- * null gaps, log guards and measured x ticks in the chart layer ([d771508](https://github.com/jkrumm/basalt-ui/commit/d77150803d437bce16819fc98fa247ac81589692))
348
- * one connectivity prop, guarded wiring, non-blocking overlay mount ([f150f78](https://github.com/jkrumm/basalt-ui/commit/f150f78aca6100e53308e8fc4df05be0ecd1249f))
349
- * one home per field on the CBBI page ([2beb94b](https://github.com/jkrumm/basalt-ui/commit/2beb94b80794ed9a78d980be060cfa70d3d5369a))
350
- * overlays.confirm and notifyUndo ([94a4053](https://github.com/jkrumm/basalt-ui/commit/94a40533530eed72f025162c385e0aa87fc5a45d))
351
- * paint every AppShell region seam in the divider token ([f794f89](https://github.com/jkrumm/basalt-ui/commit/f794f89a27ffb0ddf35b4337b9fe9ab8c200b486))
352
- * playground demos follow the shell scrollport and fit-checked tracks ([c43d08d](https://github.com/jkrumm/basalt-ui/commit/c43d08d0edfd752a04a010dcfe4be286f2a2b3ff))
353
- * playground demos for the wave 3 surface and consumer-vantage type guards ([e777770](https://github.com/jkrumm/basalt-ui/commit/e77777016d470a4456a380e4c6d6f97799fe32d9))
354
- * playground follows the inputProps rename and the overlay mount change ([a7417e5](https://github.com/jkrumm/basalt-ui/commit/a7417e56b3ef7b8e14ae59231f49ded3192e3764))
355
- * query-aware containers, row activation, selection and typed actions ([4ad19a5](https://github.com/jkrumm/basalt-ui/commit/4ad19a5c991df88ede925b266baaf8b6d1a9b0b0))
356
- * rename the forms field helper to inputProps ([f82516f](https://github.com/jkrumm/basalt-ui/commit/f82516f29710f3839f2ed0e1b9f488521b20127c))
357
- * render bound controls as panel rows inside PageAside ([6eee086](https://github.com/jkrumm/basalt-ui/commit/6eee0861f7b7027e0148fa572513f2eb4622c246))
358
- * render no legend when a single series has no legend config ([48f7718](https://github.com/jkrumm/basalt-ui/commit/48f7718d467383044da87d2b519269c2bc9d794b))
359
- * shared common primitives for props, refs, errors and validation ([850d52c](https://github.com/jkrumm/basalt-ui/commit/850d52c1d2dca2a1101ec723094e40ea66586ee6))
360
- * split theme-lab boot helpers into an SSR-safe module ([a6a4b81](https://github.com/jkrumm/basalt-ui/commit/a6a4b81dd2c07dcf53dc70fe1459f9468e62c073))
361
- * stat card header spans the card and starts at its top ([c64b6d1](https://github.com/jkrumm/basalt-ui/commit/c64b6d1eb34ce2bc105b0a72a768ad86afce99d3))
362
- * stress routes in the playground for charts, data, states and primitives ([f7d8273](https://github.com/jkrumm/basalt-ui/commit/f7d82730e74f9ffef55cf6d38a6373c2bfecf631))
363
- * typed facet ids, a VirtualList ref handle and a required getItemKey ([4f833a2](https://github.com/jkrumm/basalt-ui/commit/4f833a2d14f1713feff76a86b3bbd26283e417b6))
393
+ - confirm settles on a throw, drafts flush on unmount, panel labels click ([fb4e9e7](https://github.com/jkrumm/basalt-ui/commit/fb4e9e7c865d364d6946d8d1cf65e7df19d2d22b))
394
+ - forward every WidgetHeader prop a Section accepts ([39dd9af](https://github.com/jkrumm/basalt-ui/commit/39dd9afcffe08ef01ce7a69e5868cb2cca92eb01))
395
+ - give PageBar row 2 a declared two-line phone form ([be8dbef](https://github.com/jkrumm/basalt-ui/commit/be8dbef7cea3d26bfeb1178685bba8bd56fd5747))
396
+ - give the two CBBI distribution charts distinct chart ids ([0e76faf](https://github.com/jkrumm/basalt-ui/commit/0e76fafb984cae9a14af90cfa05f9899683a8eeb))
397
+ - import the cbbi query types through basalt-ui/query ([ccf5738](https://github.com/jkrumm/basalt-ui/commit/ccf57386e31d6e26009e25c7501fad6cf0c2107f))
398
+ - keep the mobile nav bar at its 48px touch floor under the seam ([6daa174](https://github.com/jkrumm/basalt-ui/commit/6daa1741a8d460e38dbdae80f4a9f96797ea9866))
399
+ - keep the sticky table header at the scroller's top edge ([2ef7472](https://github.com/jkrumm/basalt-ui/commit/2ef7472f48f45eef0d730d25e7285a5443ad5352))
400
+ - mount the aside panel's children once on the phone path ([badb691](https://github.com/jkrumm/basalt-ui/commit/badb6914d6dcd0830b2612d4384efeaab36c37a2))
401
+ - raw-size-literal was inert in its own test fixture ([e547eee](https://github.com/jkrumm/basalt-ui/commit/e547eee7eb8805badd47ba577006a800ec278838))
402
+ - widget header actions wrap at phone width, notification center fills ([a90fe7e](https://github.com/jkrumm/basalt-ui/commit/a90fe7e4a214c18fc452c7e1bc5e81d344c047bf))
364
403
 
365
- # [1.27.0](https://github.com/jkrumm/basalt-ui/compare/v1.26.0...v1.27.0) (2026-08-27)
404
+ ### Features
405
+
406
+ - a data table contains itself horizontally ([3147d3b](https://github.com/jkrumm/basalt-ui/commit/3147d3be8cebddce6e758d92ceea741982f8d1e9))
407
+ - a form layer on top of the @mantine/form adapter ([99d56b7](https://github.com/jkrumm/basalt-ui/commit/99d56b7020a3285a5f76ae0ed6877c33de04567d))
408
+ - a phone tier, step curves, a format law and states in the chart layer ([d506292](https://github.com/jkrumm/basalt-ui/commit/d506292c29c190810125c33efdd0978977033118))
409
+ - a real log axis on CartesianChart with 1-2-5 ticks ([eb6fd91](https://github.com/jkrumm/basalt-ui/commit/eb6fd91f60e26b983755aa20294a87a7affa7b5b))
410
+ - a widget grid, a stat group, a query-aware stat card and header slices ([ea7d712](https://github.com/jkrumm/basalt-ui/commit/ea7d7120231dcfb67f52b108a88c32ad6ede6c11))
411
+ - accent-tinted active nav rows so hover cannot impersonate them ([25021d9](https://github.com/jkrumm/basalt-ui/commit/25021d9517f4ea017bd33a3de39d24a41caafdba))
412
+ - add the CBBI live-data evidence page to the playground ([b8fe541](https://github.com/jkrumm/basalt-ui/commit/b8fe541a6efb644f11f4f4b729801ccb3f103062))
413
+ - add the PageAside shell region ([feb8c3a](https://github.com/jkrumm/basalt-ui/commit/feb8c3a575590bfd462be2c20c96e47acb7d4bf6))
414
+ - delta polarity on WidgetHeader and a group tier inside the aside ([2b2083d](https://github.com/jkrumm/basalt-ui/commit/2b2083dbc98695aeb48c09398fde01280d32ee8b))
415
+ - diagnose, preset and advise in the CBBI aside ([bc9e651](https://github.com/jkrumm/basalt-ui/commit/bc9e651f18491782e410bf8619ccabdfe1e9fd3a))
416
+ - drop test files from the tarball and add a package.json export ([022e0c0](https://github.com/jkrumm/basalt-ui/commit/022e0c04f9f45e4f3e48e85d9d28c80df297a07f))
417
+ - every component takes className and style; misuse throws a named error ([21a9a9a](https://github.com/jkrumm/basalt-ui/commit/21a9a9ad650d035a742438ae30ec1c2fc785f5bf))
418
+ - fit-checked choice tracks and panel rows in the phone sheet ([2ac8ef1](https://github.com/jkrumm/basalt-ui/commit/2ac8ef1c78391321c2fe432f5e002aaf64deaba5))
419
+ - form rows are control homes and a rule catches the missing field key ([b63b1b5](https://github.com/jkrumm/basalt-ui/commit/b63b1b5659d454aa1e8e9ef972affb4da097a925))
420
+ - guard bound controls outside a home and teach the agent the aside ([c4935ce](https://github.com/jkrumm/basalt-ui/commit/c4935ce82e9d7d53246230027c558543d809dccf))
421
+ - guard the wiring doctrines and give deprecations a lifecycle ([f8b4ce6](https://github.com/jkrumm/basalt-ui/commit/f8b4ce699c726c93929b10337ba05ff7b10c9a1e))
422
+ - header above the sidebar and main as the shell scrollport ([9a9499c](https://github.com/jkrumm/basalt-ui/commit/9a9499c062121456a3e9d2b7bae3946a8d7bb763))
423
+ - let SliderControl compose its readout and carry an end control ([b8f560b](https://github.com/jkrumm/basalt-ui/commit/b8f560b26310e0855f26df752a92d6ffb88aff5a))
424
+ - let the CBBI page fold price and confidence into one dual-axis chart ([3d6da25](https://github.com/jkrumm/basalt-ui/commit/3d6da2583c22b26e697b06bfcabc72b89b0068fb))
425
+ - measured rotated-label margins, heatmap thinning and a live legend rollup ([57153f7](https://github.com/jkrumm/basalt-ui/commit/57153f72d546655b2f83e54b1073f090169e1291))
426
+ - more-sheet rows share the sidebar's density and keep a gutter ([8ea3afd](https://github.com/jkrumm/basalt-ui/commit/8ea3afd8996da55574b9b88f40318d9a5e3d25e9))
427
+ - notification payloads narrow per kind ([3f33079](https://github.com/jkrumm/basalt-ui/commit/3f330795e84255546adf55fbcb90e8d406e4e425))
428
+ - null gaps, log guards and measured x ticks in the chart layer ([d771508](https://github.com/jkrumm/basalt-ui/commit/d77150803d437bce16819fc98fa247ac81589692))
429
+ - one connectivity prop, guarded wiring, non-blocking overlay mount ([f150f78](https://github.com/jkrumm/basalt-ui/commit/f150f78aca6100e53308e8fc4df05be0ecd1249f))
430
+ - one home per field on the CBBI page ([2beb94b](https://github.com/jkrumm/basalt-ui/commit/2beb94b80794ed9a78d980be060cfa70d3d5369a))
431
+ - overlays.confirm and notifyUndo ([94a4053](https://github.com/jkrumm/basalt-ui/commit/94a40533530eed72f025162c385e0aa87fc5a45d))
432
+ - paint every AppShell region seam in the divider token ([f794f89](https://github.com/jkrumm/basalt-ui/commit/f794f89a27ffb0ddf35b4337b9fe9ab8c200b486))
433
+ - playground demos follow the shell scrollport and fit-checked tracks ([c43d08d](https://github.com/jkrumm/basalt-ui/commit/c43d08d0edfd752a04a010dcfe4be286f2a2b3ff))
434
+ - playground demos for the wave 3 surface and consumer-vantage type guards ([e777770](https://github.com/jkrumm/basalt-ui/commit/e77777016d470a4456a380e4c6d6f97799fe32d9))
435
+ - playground follows the inputProps rename and the overlay mount change ([a7417e5](https://github.com/jkrumm/basalt-ui/commit/a7417e56b3ef7b8e14ae59231f49ded3192e3764))
436
+ - query-aware containers, row activation, selection and typed actions ([4ad19a5](https://github.com/jkrumm/basalt-ui/commit/4ad19a5c991df88ede925b266baaf8b6d1a9b0b0))
437
+ - rename the forms field helper to inputProps ([f82516f](https://github.com/jkrumm/basalt-ui/commit/f82516f29710f3839f2ed0e1b9f488521b20127c))
438
+ - render bound controls as panel rows inside PageAside ([6eee086](https://github.com/jkrumm/basalt-ui/commit/6eee0861f7b7027e0148fa572513f2eb4622c246))
439
+ - render no legend when a single series has no legend config ([48f7718](https://github.com/jkrumm/basalt-ui/commit/48f7718d467383044da87d2b519269c2bc9d794b))
440
+ - shared common primitives for props, refs, errors and validation ([850d52c](https://github.com/jkrumm/basalt-ui/commit/850d52c1d2dca2a1101ec723094e40ea66586ee6))
441
+ - split theme-lab boot helpers into an SSR-safe module ([a6a4b81](https://github.com/jkrumm/basalt-ui/commit/a6a4b81dd2c07dcf53dc70fe1459f9468e62c073))
442
+ - stat card header spans the card and starts at its top ([c64b6d1](https://github.com/jkrumm/basalt-ui/commit/c64b6d1eb34ce2bc105b0a72a768ad86afce99d3))
443
+ - stress routes in the playground for charts, data, states and primitives ([f7d8273](https://github.com/jkrumm/basalt-ui/commit/f7d82730e74f9ffef55cf6d38a6373c2bfecf631))
444
+ - typed facet ids, a VirtualList ref handle and a required getItemKey ([4f833a2](https://github.com/jkrumm/basalt-ui/commit/4f833a2d14f1713feff76a86b3bbd26283e417b6))
366
445
 
446
+ # [1.27.0](https://github.com/jkrumm/basalt-ui/compare/v1.26.0...v1.27.0) (2026-08-27)
367
447
 
368
448
  ### Features
369
449
 
370
- * close the gaps the argo and linewatch migrations found ([79d9a6c](https://github.com/jkrumm/basalt-ui/commit/79d9a6ce69101309d8949f70a9bba2ed25dc513e))
371
- * dogfood NumberFilter and StatCard unit/breakdown in the playground ([7a690be](https://github.com/jkrumm/basalt-ui/commit/7a690bea7998a9d2e9b71d304817476f45066b04))
450
+ - close the gaps the argo and linewatch migrations found ([79d9a6c](https://github.com/jkrumm/basalt-ui/commit/79d9a6ce69101309d8949f70a9bba2ed25dc513e))
451
+ - dogfood NumberFilter and StatCard unit/breakdown in the playground ([7a690be](https://github.com/jkrumm/basalt-ui/commit/7a690bea7998a9d2e9b71d304817476f45066b04))
372
452
 
373
453
  # [1.26.0](https://github.com/jkrumm/basalt-ui/compare/v1.25.0...v1.26.0) (2026-08-27)
374
454
 
375
-
376
455
  ### Bug Fixes
377
456
 
378
- * align shell comments and ChartCard rem fallbacks with the derived scale ([9d09e24](https://github.com/jkrumm/basalt-ui/commit/9d09e246dad161829ebb261af8816ef2f30d2388))
379
-
457
+ - align shell comments and ChartCard rem fallbacks with the derived scale ([9d09e24](https://github.com/jkrumm/basalt-ui/commit/9d09e246dad161829ebb261af8816ef2f30d2388))
380
458
 
381
459
  ### Features
382
460
 
383
- * add PageBar, Section, the controls subpath and WidgetHeader composers ([ccb24bf](https://github.com/jkrumm/basalt-ui/commit/ccb24bf85a0c76de603feb54992b76a71797249f))
384
- * add sidebar blocks and the controls guards ([cd847fb](https://github.com/jkrumm/basalt-ui/commit/cd847fb2cf99a686ab0356fda8dcefc91f3eba09))
385
- * add the ctl control tier, WidgetHeader and createSearchStore ([3b52ade](https://github.com/jkrumm/basalt-ui/commit/3b52ade43ddc3a62bfd6f4266dd201616d22b89e))
386
- * cut the agent layer to six rules, close consumer gaps, polish the tier ([3e4c5b6](https://github.com/jkrumm/basalt-ui/commit/3e4c5b6fddd21a6acad956a702039bed92f0b4b9))
387
- * dogfood sidebar blocks in the playground, settle the form-row home ([1920173](https://github.com/jkrumm/basalt-ui/commit/1920173f8c79f2a0d303df4704080bf15ab36f0b))
388
- * migrate the playground to PageBar and controls, add the reference page ([aa24fe6](https://github.com/jkrumm/basalt-ui/commit/aa24fe6cbd5da857bd002d111be4144e28d01e78))
389
- * wire card, chart and section controls into the reference page ([bb8c2be](https://github.com/jkrumm/basalt-ui/commit/bb8c2beecb7eb4a580b5f2f2da9aef711774a859))
461
+ - add PageBar, Section, the controls subpath and WidgetHeader composers ([ccb24bf](https://github.com/jkrumm/basalt-ui/commit/ccb24bf85a0c76de603feb54992b76a71797249f))
462
+ - add sidebar blocks and the controls guards ([cd847fb](https://github.com/jkrumm/basalt-ui/commit/cd847fb2cf99a686ab0356fda8dcefc91f3eba09))
463
+ - add the ctl control tier, WidgetHeader and createSearchStore ([3b52ade](https://github.com/jkrumm/basalt-ui/commit/3b52ade43ddc3a62bfd6f4266dd201616d22b89e))
464
+ - cut the agent layer to six rules, close consumer gaps, polish the tier ([3e4c5b6](https://github.com/jkrumm/basalt-ui/commit/3e4c5b6fddd21a6acad956a702039bed92f0b4b9))
465
+ - dogfood sidebar blocks in the playground, settle the form-row home ([1920173](https://github.com/jkrumm/basalt-ui/commit/1920173f8c79f2a0d303df4704080bf15ab36f0b))
466
+ - migrate the playground to PageBar and controls, add the reference page ([aa24fe6](https://github.com/jkrumm/basalt-ui/commit/aa24fe6cbd5da857bd002d111be4144e28d01e78))
467
+ - wire card, chart and section controls into the reference page ([bb8c2be](https://github.com/jkrumm/basalt-ui/commit/bb8c2beecb7eb4a580b5f2f2da9aef711774a859))
390
468
 
391
469
  # [1.25.0](https://github.com/jkrumm/basalt-ui/compare/v1.24.0...v1.25.0) (2026-08-22)
392
470
 
393
-
394
471
  ### Features
395
472
 
396
- * make manualPagination refuse every prop that would misreport ([d18e5f1](https://github.com/jkrumm/basalt-ui/commit/d18e5f1d8091af82a589a140ece7484cca654084))
473
+ - make manualPagination refuse every prop that would misreport ([d18e5f1](https://github.com/jkrumm/basalt-ui/commit/d18e5f1d8091af82a589a140ece7484cca654084))
397
474
 
398
475
  # [1.24.0](https://github.com/jkrumm/basalt-ui/compare/v1.23.1...v1.24.0) (2026-08-22)
399
476
 
400
-
401
477
  ### Bug Fixes
402
478
 
403
- * stop check-theme fabricating a config, and re-gate the provenance line ([99a45c0](https://github.com/jkrumm/basalt-ui/commit/99a45c0dc284850b4140a6ff7719dbade4795f09))
404
- * stop raw-hex reading HTML entities, and teach the guard the SFC dialect ([f1b0562](https://github.com/jkrumm/basalt-ui/commit/f1b0562efeb718921509253f9ee215bf461c3c01)), closes [#123](https://github.com/jkrumm/basalt-ui/issues/123) [#125](https://github.com/jkrumm/basalt-ui/issues/125)
405
-
479
+ - stop check-theme fabricating a config, and re-gate the provenance line ([99a45c0](https://github.com/jkrumm/basalt-ui/commit/99a45c0dc284850b4140a6ff7719dbade4795f09))
480
+ - stop raw-hex reading HTML entities, and teach the guard the SFC dialect ([f1b0562](https://github.com/jkrumm/basalt-ui/commit/f1b0562efeb718921509253f9ee215bf461c3c01)), closes [#123](https://github.com/jkrumm/basalt-ui/issues/123) [#125](https://github.com/jkrumm/basalt-ui/issues/125)
406
481
 
407
482
  ### Features
408
483
 
409
- * playground routes for QueryState and the table body chrome ([e150a00](https://github.com/jkrumm/basalt-ui/commit/e150a0051bf743137751a3d5c17f202c0984aaa7))
410
- * ship the query loading/error branch and the table body chrome ([963bf04](https://github.com/jkrumm/basalt-ui/commit/963bf047cf9ac4fac3cecceecbd0c378ee37f79d))
484
+ - playground routes for QueryState and the table body chrome ([e150a00](https://github.com/jkrumm/basalt-ui/commit/e150a0051bf743137751a3d5c17f202c0984aaa7))
485
+ - ship the query loading/error branch and the table body chrome ([963bf04](https://github.com/jkrumm/basalt-ui/commit/963bf047cf9ac4fac3cecceecbd0c378ee37f79d))
411
486
 
412
487
  ## [1.23.1](https://github.com/jkrumm/basalt-ui/compare/v1.23.0...v1.23.1) (2026-08-22)
413
488
 
414
-
415
489
  ### Bug Fixes
416
490
 
417
- * gate the two chart tag rules on where the tag came from ([0075224](https://github.com/jkrumm/basalt-ui/commit/007522416bf9a3269e5f45b7ae7f45203434bae7))
418
- * make the CLI answer which version ran, and stop it failing open ([0edf50e](https://github.com/jkrumm/basalt-ui/commit/0edf50e1d6f61b349f989fd10fe384d4a91a9af1))
419
- * stop a typo'd band state from asserting absence ([6c1515c](https://github.com/jkrumm/basalt-ui/commit/6c1515c3ecbf019d9971e5b247e81e5cce3ae316))
491
+ - gate the two chart tag rules on where the tag came from ([0075224](https://github.com/jkrumm/basalt-ui/commit/007522416bf9a3269e5f45b7ae7f45203434bae7))
492
+ - make the CLI answer which version ran, and stop it failing open ([0edf50e](https://github.com/jkrumm/basalt-ui/commit/0edf50e1d6f61b349f989fd10fe384d4a91a9af1))
493
+ - stop a typo'd band state from asserting absence ([6c1515c](https://github.com/jkrumm/basalt-ui/commit/6c1515c3ecbf019d9971e5b247e81e5cce3ae316))
420
494
 
421
495
  # [1.23.0](https://github.com/jkrumm/basalt-ui/compare/v1.22.0...v1.23.0) (2026-08-22)
422
496
 
423
-
424
497
  ### Bug Fixes
425
498
 
426
- * make sync resolve, and report, what the other two commands already do ([fcc5d3b](https://github.com/jkrumm/basalt-ui/commit/fcc5d3b862e90db03be9ae3daddbde56da15e415))
427
- * make the two annotation parsers agree, and pin the whole shape grid ([5a25825](https://github.com/jkrumm/basalt-ui/commit/5a25825342930236e35a4c8ecd1157fc6c3c8eda))
428
- * stop a non-finite absent share painting a band that never renders ([e8fae5b](https://github.com/jkrumm/basalt-ui/commit/e8fae5b205a9f74b31289591f8948f50a3e647eb))
429
- * teach chart-in-raw-surface the two new kinds ([fc34a3b](https://github.com/jkrumm/basalt-ui/commit/fc34a3bed4e05083288dcd22fc1e4b2cc81a1863))
430
- * teach unframed-chart the two new kinds too ([cb4e5b7](https://github.com/jkrumm/basalt-ui/commit/cb4e5b7977ff8a141bc4ec78d3c18b515fc41fed))
431
-
499
+ - make sync resolve, and report, what the other two commands already do ([fcc5d3b](https://github.com/jkrumm/basalt-ui/commit/fcc5d3b862e90db03be9ae3daddbde56da15e415))
500
+ - make the two annotation parsers agree, and pin the whole shape grid ([5a25825](https://github.com/jkrumm/basalt-ui/commit/5a25825342930236e35a4c8ecd1157fc6c3c8eda))
501
+ - stop a non-finite absent share painting a band that never renders ([e8fae5b](https://github.com/jkrumm/basalt-ui/commit/e8fae5b205a9f74b31289591f8948f50a3e647eb))
502
+ - teach chart-in-raw-surface the two new kinds ([fc34a3b](https://github.com/jkrumm/basalt-ui/commit/fc34a3bed4e05083288dcd22fc1e4b2cc81a1863))
503
+ - teach unframed-chart the two new kinds too ([cb4e5b7](https://github.com/jkrumm/basalt-ui/commit/cb4e5b7977ff8a141bc4ec78d3c18b515fc41fed))
432
504
 
433
505
  ### Features
434
506
 
435
- * give CartesianChart the x tick-VALUES seam its band siblings already have ([d94137d](https://github.com/jkrumm/basalt-ui/commit/d94137d20d496e8da1e0e0869c01d2d4c1577560))
436
- * let basaltAppPlugin's icons option name a real icon file ([c0b182e](https://github.com/jkrumm/basalt-ui/commit/c0b182e580c6289b5018be9d840a588e29dea5d3))
437
- * playground routes for BandStrip and MirroredBars ([ba6172d](https://github.com/jkrumm/basalt-ui/commit/ba6172d9ad40cf7b1e3c183e2598e79b5326c2e7))
438
- * two banded chart kinds — BandStrip and MirroredBars ([0e4f5f7](https://github.com/jkrumm/basalt-ui/commit/0e4f5f7107e71be92eb3b6bec6ebf5587d5c607b))
507
+ - give CartesianChart the x tick-VALUES seam its band siblings already have ([d94137d](https://github.com/jkrumm/basalt-ui/commit/d94137d20d496e8da1e0e0869c01d2d4c1577560))
508
+ - let basaltAppPlugin's icons option name a real icon file ([c0b182e](https://github.com/jkrumm/basalt-ui/commit/c0b182e580c6289b5018be9d840a588e29dea5d3))
509
+ - playground routes for BandStrip and MirroredBars ([ba6172d](https://github.com/jkrumm/basalt-ui/commit/ba6172d9ad40cf7b1e3c183e2598e79b5326c2e7))
510
+ - two banded chart kinds — BandStrip and MirroredBars ([0e4f5f7](https://github.com/jkrumm/basalt-ui/commit/0e4f5f7107e71be92eb3b6bec6ebf5587d5c607b))
439
511
 
440
512
  # [1.22.0](https://github.com/jkrumm/basalt-ui/compare/v1.21.0...v1.22.0) (2026-08-22)
441
513
 
442
-
443
514
  ### Bug Fixes
444
515
 
445
- * let `icons: false` reach the manifest it was only skipping in the head ([58abe27](https://github.com/jkrumm/basalt-ui/commit/58abe27be10e5baf7c4659aa79904a7646ff092d))
446
- * scope the shadow-export tripwire to basalt consumers, and to components ([60716d4](https://github.com/jkrumm/basalt-ui/commit/60716d4ba00908c1a157f5568e192c6c50e438ec))
447
- * stop sync scaffolding a second consumer, and give the audit the oxlint half ([45cf3d3](https://github.com/jkrumm/basalt-ui/commit/45cf3d340f081e61f3f10f852d12f79928993d2a))
448
-
516
+ - let `icons: false` reach the manifest it was only skipping in the head ([58abe27](https://github.com/jkrumm/basalt-ui/commit/58abe27be10e5baf7c4659aa79904a7646ff092d))
517
+ - scope the shadow-export tripwire to basalt consumers, and to components ([60716d4](https://github.com/jkrumm/basalt-ui/commit/60716d4ba00908c1a157f5568e192c6c50e438ec))
518
+ - stop sync scaffolding a second consumer, and give the audit the oxlint half ([45cf3d3](https://github.com/jkrumm/basalt-ui/commit/45cf3d340f081e61f3f10f852d12f79928993d2a))
449
519
 
450
520
  ### Features
451
521
 
452
- * give the waiver audit an annotation reader, and fix two shapes ([0dde850](https://github.com/jkrumm/basalt-ui/commit/0dde85052269780a61ead0688005db16e24f009a))
522
+ - give the waiver audit an annotation reader, and fix two shapes ([0dde850](https://github.com/jkrumm/basalt-ui/commit/0dde85052269780a61ead0688005db16e24f009a))
453
523
 
454
524
  # [1.21.0](https://github.com/jkrumm/basalt-ui/compare/v1.20.0...v1.21.0) (2026-08-22)
455
525
 
456
-
457
526
  ### Bug Fixes
458
527
 
459
- * delete a waiver that stopped covering anything ([3984281](https://github.com/jkrumm/basalt-ui/commit/3984281fff6313c225bdf1e185de4a427d2ef4df))
460
- * emit 0.1, not 0.10, from the shadow palette itself ([48adfff](https://github.com/jkrumm/basalt-ui/commit/48adfffcc9ad7713cacc07c1fc090b219fd175fa))
461
- * let the real color scheme win, and keep <meta charset> in its window ([8708c85](https://github.com/jkrumm/basalt-ui/commit/8708c85f1488b25e6a059ee879dcadf6350278a2))
462
- * make an annotation start its comment, and let it scope to one node ([a4cf78c](https://github.com/jkrumm/basalt-ui/commit/a4cf78c546d291c33a27bf94d7636758072a1005))
463
- * persist sidebar collapse through basalt's own state primitive ([c576040](https://github.com/jkrumm/basalt-ui/commit/c576040172dfeb8d66b52909bbcf55b7b1f91c70))
464
- * resolve the paths the wiring checks only matched, and audit the waivers ([c595181](https://github.com/jkrumm/basalt-ui/commit/c5951817ed01d7729f031bba2f3da50c3bf60666))
465
- * restore the palette fixture to emitter bytes ([605e240](https://github.com/jkrumm/basalt-ui/commit/605e240387a417f57ae8070f97bad79d97545d60))
466
-
528
+ - delete a waiver that stopped covering anything ([3984281](https://github.com/jkrumm/basalt-ui/commit/3984281fff6313c225bdf1e185de4a427d2ef4df))
529
+ - emit 0.1, not 0.10, from the shadow palette itself ([48adfff](https://github.com/jkrumm/basalt-ui/commit/48adfffcc9ad7713cacc07c1fc090b219fd175fa))
530
+ - let the real color scheme win, and keep <meta charset> in its window ([8708c85](https://github.com/jkrumm/basalt-ui/commit/8708c85f1488b25e6a059ee879dcadf6350278a2))
531
+ - make an annotation start its comment, and let it scope to one node ([a4cf78c](https://github.com/jkrumm/basalt-ui/commit/a4cf78c546d291c33a27bf94d7636758072a1005))
532
+ - persist sidebar collapse through basalt's own state primitive ([c576040](https://github.com/jkrumm/basalt-ui/commit/c576040172dfeb8d66b52909bbcf55b7b1f91c70))
533
+ - resolve the paths the wiring checks only matched, and audit the waivers ([c595181](https://github.com/jkrumm/basalt-ui/commit/c5951817ed01d7729f031bba2f3da50c3bf60666))
534
+ - restore the palette fixture to emitter bytes ([605e240](https://github.com/jkrumm/basalt-ui/commit/605e240387a417f57ae8070f97bad79d97545d60))
467
535
 
468
536
  ### Features
469
537
 
470
- * give the type ladder the two rungs consumers could only waive ([29b9ef3](https://github.com/jkrumm/basalt-ui/commit/29b9ef3767282dffb51fb52138d6ae4f1d24dd62))
471
- * make the search-param store's reader reachable from the API ([6924970](https://github.com/jkrumm/basalt-ui/commit/6924970f410b82ba5cfc65fd1d5088124934fc8f))
538
+ - give the type ladder the two rungs consumers could only waive ([29b9ef3](https://github.com/jkrumm/basalt-ui/commit/29b9ef3767282dffb51fb52138d6ae4f1d24dd62))
539
+ - make the search-param store's reader reachable from the API ([6924970](https://github.com/jkrumm/basalt-ui/commit/6924970f410b82ba5cfc65fd1d5088124934fc8f))
472
540
 
473
541
  # [1.20.0](https://github.com/jkrumm/basalt-ui/compare/v1.19.1...v1.20.0) (2026-08-22)
474
542
 
475
-
476
543
  ### Bug Fixes
477
544
 
478
- * exempt generated LINES, not files, and stop flagging prose as a typo'd id ([a83abfb](https://github.com/jkrumm/basalt-ui/commit/a83abfb77888f31528f44e5923b26d3710ddf005))
479
- * give the mobile-nav-pill demo row its own glyph ([4620590](https://github.com/jkrumm/basalt-ui/commit/4620590204a99afd07ec27eb923cd229acdfce84))
480
- * hold basalt to its own scoped theme-allow contract ([b67718c](https://github.com/jkrumm/basalt-ui/commit/b67718cecf8e7ce60b61b7481bcdbd4795f79d40))
481
- * make the escape hatch and the generated-file marker fail closed ([526cdb7](https://github.com/jkrumm/basalt-ui/commit/526cdb7f11395f27183828e34297b0ac6bc846c8))
482
- * make the mobile-nav active pill track density and survive an icon-less app ([0a7d756](https://github.com/jkrumm/basalt-ui/commit/0a7d7560f9eae6db4c02ff029ba47088a084e511))
483
- * snapshot the tokens-only guard export ([b63dc24](https://github.com/jkrumm/basalt-ui/commit/b63dc242bfd46359476f7fcae80957db244f727f))
484
-
545
+ - exempt generated LINES, not files, and stop flagging prose as a typo'd id ([a83abfb](https://github.com/jkrumm/basalt-ui/commit/a83abfb77888f31528f44e5923b26d3710ddf005))
546
+ - give the mobile-nav-pill demo row its own glyph ([4620590](https://github.com/jkrumm/basalt-ui/commit/4620590204a99afd07ec27eb923cd229acdfce84))
547
+ - hold basalt to its own scoped theme-allow contract ([b67718c](https://github.com/jkrumm/basalt-ui/commit/b67718cecf8e7ce60b61b7481bcdbd4795f79d40))
548
+ - make the escape hatch and the generated-file marker fail closed ([526cdb7](https://github.com/jkrumm/basalt-ui/commit/526cdb7f11395f27183828e34297b0ac6bc846c8))
549
+ - make the mobile-nav active pill track density and survive an icon-less app ([0a7d756](https://github.com/jkrumm/basalt-ui/commit/0a7d7560f9eae6db4c02ff029ba47088a084e511))
550
+ - snapshot the tokens-only guard export ([b63dc24](https://github.com/jkrumm/basalt-ui/commit/b63dc242bfd46359476f7fcae80957db244f727f))
485
551
 
486
552
  ### Features
487
553
 
488
- * demo the mobile-nav active pill with and without an icon dependency ([9620905](https://github.com/jkrumm/basalt-ui/commit/9620905409efdf39bb10b40edaa128ce2b61c741))
489
- * make the escape hatch usable and close the holes round 4 found ([5b8420d](https://github.com/jkrumm/basalt-ui/commit/5b8420d24647b84818dfbb65e9f0c52ea1e79c2c))
490
- * scan the app shell, wire the tokens-only profile, ship __APP_VERSION__ ([61b1792](https://github.com/jkrumm/basalt-ui/commit/61b1792e8ea1bff3c59128ba65137b27d40df81a))
491
- * stop the toolchain reporting green while enforcing nothing ([d3d8e34](https://github.com/jkrumm/basalt-ui/commit/d3d8e3434893516e62413acafdd166be13b86541))
554
+ - demo the mobile-nav active pill with and without an icon dependency ([9620905](https://github.com/jkrumm/basalt-ui/commit/9620905409efdf39bb10b40edaa128ce2b61c741))
555
+ - make the escape hatch usable and close the holes round 4 found ([5b8420d](https://github.com/jkrumm/basalt-ui/commit/5b8420d24647b84818dfbb65e9f0c52ea1e79c2c))
556
+ - scan the app shell, wire the tokens-only profile, ship **APP_VERSION** ([61b1792](https://github.com/jkrumm/basalt-ui/commit/61b1792e8ea1bff3c59128ba65137b27d40df81a))
557
+ - stop the toolchain reporting green while enforcing nothing ([d3d8e34](https://github.com/jkrumm/basalt-ui/commit/d3d8e3434893516e62413acafdd166be13b86541))
492
558
 
493
559
  ## [1.19.1](https://github.com/jkrumm/basalt-ui/compare/v1.19.0...v1.19.1) (2026-08-20)
494
560
 
495
-
496
561
  ### Bug Fixes
497
562
 
498
- * cap the mobile bottom-sheet height to its content ([04093ac](https://github.com/jkrumm/basalt-ui/commit/04093ac902d894249ebea3e6381755497670e305))
563
+ - cap the mobile bottom-sheet height to its content ([04093ac](https://github.com/jkrumm/basalt-ui/commit/04093ac902d894249ebea3e6381755497670e305))
499
564
 
500
565
  # [1.19.0](https://github.com/jkrumm/basalt-ui/compare/v1.18.0...v1.19.0) (2026-08-20)
501
566
 
502
-
503
567
  ### Features
504
568
 
505
- * make the mobile bar navigate, driven by one typed nav definition ([1ebba92](https://github.com/jkrumm/basalt-ui/commit/1ebba9267267ff26e988c876f17839b05d61689d))
569
+ - make the mobile bar navigate, driven by one typed nav definition ([1ebba92](https://github.com/jkrumm/basalt-ui/commit/1ebba9267267ff26e988c876f17839b05d61689d))
506
570
 
507
571
  # [1.18.0](https://github.com/jkrumm/basalt-ui/compare/v1.17.0...v1.18.0) (2026-08-19)
508
572
 
509
-
510
573
  ### Features
511
574
 
512
- * render tooltips on cursor followers, and gate managed-doc drift ([6b46613](https://github.com/jkrumm/basalt-ui/commit/6b466136e1b1dbd88934d339420179768b3e9f8b)), closes [#52](https://github.com/jkrumm/basalt-ui/issues/52)
575
+ - render tooltips on cursor followers, and gate managed-doc drift ([6b46613](https://github.com/jkrumm/basalt-ui/commit/6b466136e1b1dbd88934d339420179768b3e9f8b)), closes [#52](https://github.com/jkrumm/basalt-ui/issues/52)
513
576
 
514
577
  # [1.17.0](https://github.com/jkrumm/basalt-ui/compare/v1.16.0...v1.17.0) (2026-08-18)
515
578
 
516
-
517
579
  ### Features
518
580
 
519
- * fix seven chart defects, six of them found by consumers ([c3df0b8](https://github.com/jkrumm/basalt-ui/commit/c3df0b8439c51effaf425c54644cd9a15328ef12))
581
+ - fix seven chart defects, six of them found by consumers ([c3df0b8](https://github.com/jkrumm/basalt-ui/commit/c3df0b8439c51effaf425c54644cd9a15328ef12))
520
582
 
521
583
  # [1.16.0](https://github.com/jkrumm/basalt-ui/compare/v1.15.0...v1.16.0) (2026-08-18)
522
584
 
523
-
524
585
  ### Features
525
586
 
526
- * close the chart-API gaps the first full consumer migration found ([518a086](https://github.com/jkrumm/basalt-ui/commit/518a086e632c7c010584071f5780d7aa3bbe3bc2))
587
+ - close the chart-API gaps the first full consumer migration found ([518a086](https://github.com/jkrumm/basalt-ui/commit/518a086e632c7c010584071f5780d7aa3bbe3bc2))
527
588
 
528
589
  # [1.15.0](https://github.com/jkrumm/basalt-ui/compare/v1.14.0...v1.15.0) (2026-08-18)
529
590
 
530
-
531
591
  ### Features
532
592
 
533
- * add x-range chart bands, a dual-axis margin, and legend notes ([4883c19](https://github.com/jkrumm/basalt-ui/commit/4883c19d06a43d6a908efcf9fe8098610c86627a))
534
- * make one cartesian primitive the whole chart contract ([4f8a507](https://github.com/jkrumm/basalt-ui/commit/4f8a507b2ca01923c1ee9bdf8a911ac0e5b76710))
593
+ - add x-range chart bands, a dual-axis margin, and legend notes ([4883c19](https://github.com/jkrumm/basalt-ui/commit/4883c19d06a43d6a908efcf9fe8098610c86627a))
594
+ - make one cartesian primitive the whole chart contract ([4f8a507](https://github.com/jkrumm/basalt-ui/commit/4f8a507b2ca01923c1ee9bdf8a911ac0e5b76710))
535
595
 
536
596
  # [1.14.0](https://github.com/jkrumm/basalt-ui/compare/v1.13.0...v1.14.0) (2026-08-10)
537
597
 
538
-
539
598
  ### Features
540
599
 
541
- * let the sidebar host arbitrary content in its nav scroll region ([1b1a5f3](https://github.com/jkrumm/basalt-ui/commit/1b1a5f3f50cba0cf5f89e767d438dbd02adfe03f))
600
+ - let the sidebar host arbitrary content in its nav scroll region ([1b1a5f3](https://github.com/jkrumm/basalt-ui/commit/1b1a5f3f50cba0cf5f89e767d438dbd02adfe03f))
542
601
 
543
602
  # [1.13.0](https://github.com/jkrumm/basalt-ui/compare/v1.12.0...v1.13.0) (2026-08-04)
544
603
 
545
-
546
604
  ### Bug Fixes
547
605
 
548
- * hold the pack-test consumer inside the peer ranges it declares ([1fb3abe](https://github.com/jkrumm/basalt-ui/commit/1fb3abe09206cdd46a0a6f05cbbb9e3344c899f6))
549
- * hold the virtual peer floor at the APIs the transcript calls ([324b474](https://github.com/jkrumm/basalt-ui/commit/324b47459b5717210464ffb5eb8b363bb152f87a))
550
- * mint ids safely off a secure context and never wedge a stopped turn ([2d72074](https://github.com/jkrumm/basalt-ui/commit/2d7207403baa5a1aa5400355ac92417c9f767ffc))
551
- * stop a hydrating store flashing empty and a cascade burying its cause ([93fe8c2](https://github.com/jkrumm/basalt-ui/commit/93fe8c261f5d027c003f1ce71108cd1bab1163e9))
552
- * surface a failed thread load instead of an endless skeleton ([ea15873](https://github.com/jkrumm/basalt-ui/commit/ea15873fc797f237dd5d65ad1ffa5a781ff6e86c))
553
-
606
+ - hold the pack-test consumer inside the peer ranges it declares ([1fb3abe](https://github.com/jkrumm/basalt-ui/commit/1fb3abe09206cdd46a0a6f05cbbb9e3344c899f6))
607
+ - hold the virtual peer floor at the APIs the transcript calls ([324b474](https://github.com/jkrumm/basalt-ui/commit/324b47459b5717210464ffb5eb8b363bb152f87a))
608
+ - mint ids safely off a secure context and never wedge a stopped turn ([2d72074](https://github.com/jkrumm/basalt-ui/commit/2d7207403baa5a1aa5400355ac92417c9f767ffc))
609
+ - stop a hydrating store flashing empty and a cascade burying its cause ([93fe8c2](https://github.com/jkrumm/basalt-ui/commit/93fe8c261f5d027c003f1ce71108cd1bab1163e9))
610
+ - surface a failed thread load instead of an endless skeleton ([ea15873](https://github.com/jkrumm/basalt-ui/commit/ea15873fc797f237dd5d65ad1ffa5a781ff6e86c))
554
611
 
555
612
  ### Features
556
613
 
557
- * give the transcript a Slack shape, affordances and virtualization ([33ca057](https://github.com/jkrumm/basalt-ui/commit/33ca057eb9fd78a59b369c1410b6e34ef0a04602))
558
- * promote the agent guards and raw-scroll-container to error ([9ee8c44](https://github.com/jkrumm/basalt-ui/commit/9ee8c44acc2cc54973372dca5a8712dcf9def644))
614
+ - give the transcript a Slack shape, affordances and virtualization ([33ca057](https://github.com/jkrumm/basalt-ui/commit/33ca057eb9fd78a59b369c1410b6e34ef0a04602))
615
+ - promote the agent guards and raw-scroll-container to error ([9ee8c44](https://github.com/jkrumm/basalt-ui/commit/9ee8c44acc2cc54973372dca5a8712dcf9def644))
559
616
 
560
617
  # [1.12.0](https://github.com/jkrumm/basalt-ui/compare/v1.11.0...v1.12.0) (2026-08-03)
561
618
 
562
-
563
619
  ### Bug Fixes
564
620
 
565
- * stop the tool-part fold carrying stale state and dropping parts ([d47a35f](https://github.com/jkrumm/basalt-ui/commit/d47a35f7d58d985037814b8771b0e426c5396403))
566
-
621
+ - stop the tool-part fold carrying stale state and dropping parts ([d47a35f](https://github.com/jkrumm/basalt-ui/commit/d47a35f7d58d985037814b8771b0e426c5396403))
567
622
 
568
623
  ### Features
569
624
 
570
- * give the composer its slots and a way to write into them ([e115b7e](https://github.com/jkrumm/basalt-ui/commit/e115b7efd428a09701307f9fe7448f72e69606bb))
571
- * let a server-backed store stand behind the threads API ([dfdf9c5](https://github.com/jkrumm/basalt-ui/commit/dfdf9c543554167ff9d780dda2cb662238eff419))
572
- * open the markdown seams and split trust from streaming ([90d406e](https://github.com/jkrumm/basalt-ui/commit/90d406e13311a107a6a160d8f66ff42e41085a75))
573
- * prove the 1.12.0 seams from outside the package ([0231345](https://github.com/jkrumm/basalt-ui/commit/0231345f88f9d8f7191db6c733ac124d5fae85fd))
625
+ - give the composer its slots and a way to write into them ([e115b7e](https://github.com/jkrumm/basalt-ui/commit/e115b7efd428a09701307f9fe7448f72e69606bb))
626
+ - let a server-backed store stand behind the threads API ([dfdf9c5](https://github.com/jkrumm/basalt-ui/commit/dfdf9c543554167ff9d780dda2cb662238eff419))
627
+ - open the markdown seams and split trust from streaming ([90d406e](https://github.com/jkrumm/basalt-ui/commit/90d406e13311a107a6a160d8f66ff42e41085a75))
628
+ - prove the 1.12.0 seams from outside the package ([0231345](https://github.com/jkrumm/basalt-ui/commit/0231345f88f9d8f7191db6c733ac124d5fae85fd))
574
629
 
575
630
  # [1.11.0](https://github.com/jkrumm/basalt-ui/compare/v1.10.0...v1.11.0) (2026-08-03)
576
631
 
577
-
578
632
  ### Features
579
633
 
580
- * give every part a stable id and mirror v7's real tool lifecycle ([d63aac3](https://github.com/jkrumm/basalt-ui/commit/d63aac3267d2322dfd027ba9b78e730eeec95d30))
581
- * make the transcript addressable, open, and honest about how a turn ended ([f153107](https://github.com/jkrumm/basalt-ui/commit/f1531077b411517226d2f349970677951d95bd59))
582
- * promote the shade-index guard out of its grace period ([e6a7bf9](https://github.com/jkrumm/basalt-ui/commit/e6a7bf919a1c28246157f918b5462311b37bc192))
583
- * prove the transcript layer from outside the package boundary ([52bd6d2](https://github.com/jkrumm/basalt-ui/commit/52bd6d2965e780d9d11008c6c449120285983c76))
634
+ - give every part a stable id and mirror v7's real tool lifecycle ([d63aac3](https://github.com/jkrumm/basalt-ui/commit/d63aac3267d2322dfd027ba9b78e730eeec95d30))
635
+ - make the transcript addressable, open, and honest about how a turn ended ([f153107](https://github.com/jkrumm/basalt-ui/commit/f1531077b411517226d2f349970677951d95bd59))
636
+ - promote the shade-index guard out of its grace period ([e6a7bf9](https://github.com/jkrumm/basalt-ui/commit/e6a7bf919a1c28246157f918b5462311b37bc192))
637
+ - prove the transcript layer from outside the package boundary ([52bd6d2](https://github.com/jkrumm/basalt-ui/commit/52bd6d2965e780d9d11008c6c449120285983c76))
584
638
 
585
639
  # [1.10.0](https://github.com/jkrumm/basalt-ui/compare/v1.9.0...v1.10.0) (2026-08-02)
586
640
 
587
-
588
641
  ### Features
589
642
 
590
- * open ./agent-chat as its own door, and put the agent layer under test ([2005aa6](https://github.com/jkrumm/basalt-ui/commit/2005aa6db90d02e9310188873027ecf8b93027ff))
591
- * prove the agent-chat subpath and the streaming wedge in the playground ([caff9c4](https://github.com/jkrumm/basalt-ui/commit/caff9c4f4a3d92259a1e8a88348474c90dc4c18a))
643
+ - open ./agent-chat as its own door, and put the agent layer under test ([2005aa6](https://github.com/jkrumm/basalt-ui/commit/2005aa6db90d02e9310188873027ecf8b93027ff))
644
+ - prove the agent-chat subpath and the streaming wedge in the playground ([caff9c4](https://github.com/jkrumm/basalt-ui/commit/caff9c4f4a3d92259a1e8a88348474c90dc4c18a))
592
645
 
593
646
  # [1.9.0](https://github.com/jkrumm/basalt-ui/compare/v1.8.0...v1.9.0) (2026-08-02)
594
647
 
595
-
596
648
  ### Bug Fixes
597
649
 
598
- * stop seeding repo-root files into a subdirectory package ([cd2fa7e](https://github.com/jkrumm/basalt-ui/commit/cd2fa7ea851eb1c73943e6bbdad5211b2fc65200))
599
- * stop the layout guards firing where their remedy is banned ([6851a90](https://github.com/jkrumm/basalt-ui/commit/6851a908293cb5c46dc6e7c4c01185d3ac909928))
600
-
650
+ - stop seeding repo-root files into a subdirectory package ([cd2fa7e](https://github.com/jkrumm/basalt-ui/commit/cd2fa7ea851eb1c73943e6bbdad5211b2fc65200))
651
+ - stop the layout guards firing where their remedy is banned ([6851a90](https://github.com/jkrumm/basalt-ui/commit/6851a908293cb5c46dc6e7c4c01185d3ac909928))
601
652
 
602
653
  ### Features
603
654
 
604
- * capture chart hover through pointer events ([4f53f4b](https://github.com/jkrumm/basalt-ui/commit/4f53f4bd9ff2bb4ededb8db7ba9bf6049a62dc48))
605
- * give charts a pending state ([c3a8d05](https://github.com/jkrumm/basalt-ui/commit/c3a8d05a4aac166d4264a8dc6b8afa2b45d1893b))
606
- * let the date axis take a tick format ([5502ef5](https://github.com/jkrumm/basalt-ui/commit/5502ef5614e482a422b5f70e5701588d9612209e))
607
- * portal the chart tooltip out of the svg namespace trap ([6e9c399](https://github.com/jkrumm/basalt-ui/commit/6e9c399d3d52c232765959386091d06379c35a98))
608
- * resolve a sibling's hover key through a consumer seam ([c8b7c93](https://github.com/jkrumm/basalt-ui/commit/c8b7c93fb9cf0d56d940d0d466efa07a5b90508e))
655
+ - capture chart hover through pointer events ([4f53f4b](https://github.com/jkrumm/basalt-ui/commit/4f53f4bd9ff2bb4ededb8db7ba9bf6049a62dc48))
656
+ - give charts a pending state ([c3a8d05](https://github.com/jkrumm/basalt-ui/commit/c3a8d05a4aac166d4264a8dc6b8afa2b45d1893b))
657
+ - let the date axis take a tick format ([5502ef5](https://github.com/jkrumm/basalt-ui/commit/5502ef5614e482a422b5f70e5701588d9612209e))
658
+ - portal the chart tooltip out of the svg namespace trap ([6e9c399](https://github.com/jkrumm/basalt-ui/commit/6e9c399d3d52c232765959386091d06379c35a98))
659
+ - resolve a sibling's hover key through a consumer seam ([c8b7c93](https://github.com/jkrumm/basalt-ui/commit/c8b7c93fb9cf0d56d940d0d466efa07a5b90508e))
609
660
 
610
661
  # [1.8.0](https://github.com/jkrumm/basalt-ui/compare/v1.7.0...v1.8.0) (2026-08-02)
611
662
 
612
-
613
663
  ### Features
614
664
 
615
- * give the stat card's threshold rail a good tone ([49e795f](https://github.com/jkrumm/basalt-ui/commit/49e795f2f0da85334953bf6280ca108c730d532c))
665
+ - give the stat card's threshold rail a good tone ([49e795f](https://github.com/jkrumm/basalt-ui/commit/49e795f2f0da85334953bf6280ca108c730d532c))
616
666
 
617
667
  # [1.7.0](https://github.com/jkrumm/basalt-ui/compare/v1.6.0...v1.7.0) (2026-08-02)
618
668
 
619
-
620
669
  ### Bug Fixes
621
670
 
622
- * correct the shipped depth and active-nav doctrine in the agent rules ([38e0f39](https://github.com/jkrumm/basalt-ui/commit/38e0f396012064aaee0ca7b252dabea3c281d5e3))
623
-
671
+ - correct the shipped depth and active-nav doctrine in the agent rules ([38e0f39](https://github.com/jkrumm/basalt-ui/commit/38e0f396012064aaee0ca7b252dabea3c281d5e3))
624
672
 
625
673
  ### Features
626
674
 
627
- * close the three gaps that let a consumer fork the card idiom ([d83988b](https://github.com/jkrumm/basalt-ui/commit/d83988b12c38287c42b3c3148493c614380e27b9))
675
+ - close the three gaps that let a consumer fork the card idiom ([d83988b](https://github.com/jkrumm/basalt-ui/commit/d83988b12c38287c42b3c3148493c614380e27b9))
628
676
 
629
677
  # [1.6.0](https://github.com/jkrumm/basalt-ui/compare/v1.5.0...v1.6.0) (2026-07-31)
630
678
 
631
-
632
679
  ### Bug Fixes
633
680
 
634
- * **dev:** move marketing off the playground's port, allow the tailnet doors ([488f9e8](https://github.com/jkrumm/basalt-ui/commit/488f9e8d0824ff785c2eee1b2f43e7e456f9beca))
635
-
681
+ - **dev:** move marketing off the playground's port, allow the tailnet doors ([488f9e8](https://github.com/jkrumm/basalt-ui/commit/488f9e8d0824ff785c2eee1b2f43e7e456f9beca))
636
682
 
637
683
  ### Features
638
684
 
639
- * quiet the active nav row into a selection ([767aed2](https://github.com/jkrumm/basalt-ui/commit/767aed2ec72ca92bfdbf5d0c30162b0f64d74e84))
640
- * unify every interactive control on one raised depth ([7e6adc6](https://github.com/jkrumm/basalt-ui/commit/7e6adc6ef936f312f24112d4e15cd88e5d5d95b3))
685
+ - quiet the active nav row into a selection ([767aed2](https://github.com/jkrumm/basalt-ui/commit/767aed2ec72ca92bfdbf5d0c30162b0f64d74e84))
686
+ - unify every interactive control on one raised depth ([7e6adc6](https://github.com/jkrumm/basalt-ui/commit/7e6adc6ef936f312f24112d4e15cd88e5d5d95b3))
641
687
 
642
688
  # [1.5.0](https://github.com/jkrumm/basalt-ui/compare/v1.4.1...v1.5.0) (2026-07-28)
643
689
 
644
-
645
690
  ### Features
646
691
 
647
- * normalise the emitted --vx-* names to kebab-case ([17bd239](https://github.com/jkrumm/basalt-ui/commit/17bd239bb3192c8b1a2f9dbd4f9ce513282df979))
648
- * report the source declaration and unblind the chart kinds ([2d791f0](https://github.com/jkrumm/basalt-ui/commit/2d791f03f229e86eced5afda2f5ae90c8ec99533))
649
- * ship zero runtime dependencies ([144327f](https://github.com/jkrumm/basalt-ui/commit/144327f76cb6a6bf863bed3d023181320a60246d))
692
+ - normalise the emitted --vx-* names to kebab-case ([17bd239](https://github.com/jkrumm/basalt-ui/commit/17bd239bb3192c8b1a2f9dbd4f9ce513282df979))
693
+ - report the source declaration and unblind the chart kinds ([2d791f0](https://github.com/jkrumm/basalt-ui/commit/2d791f03f229e86eced5afda2f5ae90c8ec99533))
694
+ - ship zero runtime dependencies ([144327f](https://github.com/jkrumm/basalt-ui/commit/144327f76cb6a6bf863bed3d023181320a60246d))
650
695
 
651
696
  ## [1.4.1](https://github.com/jkrumm/basalt-ui/compare/v1.4.0...v1.4.1) (2026-07-28)
652
697
 
653
-
654
698
  ### Bug Fixes
655
699
 
656
- * tell a spacing length apart from a dimensionless ratio ([d7629e5](https://github.com/jkrumm/basalt-ui/commit/d7629e5ec4b5d224accb31ac00a2e40d89de6dca))
700
+ - tell a spacing length apart from a dimensionless ratio ([d7629e5](https://github.com/jkrumm/basalt-ui/commit/d7629e5ec4b5d224accb31ac00a2e40d89de6dca))
657
701
 
658
702
  # [1.4.0](https://github.com/jkrumm/basalt-ui/compare/v1.3.0...v1.4.0) (2026-07-28)
659
703
 
660
-
661
704
  ### Bug Fixes
662
705
 
663
- * let the shipped pre-commit hook see CSS ([fd3341f](https://github.com/jkrumm/basalt-ui/commit/fd3341fd9e648ee30e512f38d47596c4d67b2d00))
664
- * make inline-spacing read the CSS a consumer actually writes ([77c930d](https://github.com/jkrumm/basalt-ui/commit/77c930d16fe27b0e98bb0ac05c92e8e0653df723)), closes [#25](https://github.com/jkrumm/basalt-ui/issues/25)
665
- * widen this repo's own pre-commit formatter to match its CI ([b25455e](https://github.com/jkrumm/basalt-ui/commit/b25455ef918b2953c10c996f468eb1fd41f91dae))
666
-
706
+ - let the shipped pre-commit hook see CSS ([fd3341f](https://github.com/jkrumm/basalt-ui/commit/fd3341fd9e648ee30e512f38d47596c4d67b2d00))
707
+ - make inline-spacing read the CSS a consumer actually writes ([77c930d](https://github.com/jkrumm/basalt-ui/commit/77c930d16fe27b0e98bb0ac05c92e8e0653df723)), closes [#25](https://github.com/jkrumm/basalt-ui/issues/25)
708
+ - widen this repo's own pre-commit formatter to match its CI ([b25455e](https://github.com/jkrumm/basalt-ui/commit/b25455ef918b2953c10c996f468eb1fd41f91dae))
667
709
 
668
710
  ### Features
669
711
 
670
- * give guard findings a severity so new rules can land soft ([1142ded](https://github.com/jkrumm/basalt-ui/commit/1142ded3f049054d316b3a8857c3fedc98a2fe46))
671
- * have doctor report a spacing scale that moved under the app ([1e0ee4f](https://github.com/jkrumm/basalt-ui/commit/1e0ee4f1726fa4c358ec9bf6c22f075d1aebb665))
712
+ - give guard findings a severity so new rules can land soft ([1142ded](https://github.com/jkrumm/basalt-ui/commit/1142ded3f049054d316b3a8857c3fedc98a2fe46))
713
+ - have doctor report a spacing scale that moved under the app ([1e0ee4f](https://github.com/jkrumm/basalt-ui/commit/1e0ee4f1726fa4c358ec9bf6c22f075d1aebb665))
672
714
 
673
715
  # [1.3.0](https://github.com/jkrumm/basalt-ui/compare/v1.2.0...v1.3.0) (2026-07-27)
674
716
 
675
-
676
717
  ### Bug Fixes
677
718
 
678
- * realign the spacing guard with the retuned scale and CSS reality ([dc6918a](https://github.com/jkrumm/basalt-ui/commit/dc6918a8e5753ce6b5ebb187ccc97421293a0014))
679
- * stop styles.css reaching past the framework's own chrome ([24f66dc](https://github.com/jkrumm/basalt-ui/commit/24f66dc0e0bb9bd8386235ee3a9e2974eb6b452c))
680
-
719
+ - realign the spacing guard with the retuned scale and CSS reality ([dc6918a](https://github.com/jkrumm/basalt-ui/commit/dc6918a8e5753ce6b5ebb187ccc97421293a0014))
720
+ - stop styles.css reaching past the framework's own chrome ([24f66dc](https://github.com/jkrumm/basalt-ui/commit/24f66dc0e0bb9bd8386235ee3a9e2974eb6b452c))
681
721
 
682
722
  ### Features
683
723
 
684
- * add a core-only spacing emission mode to buildPaletteCss ([1a3d59b](https://github.com/jkrumm/basalt-ui/commit/1a3d59bb1558bb66771d3a51295993ab18084015))
685
- * let buildPaletteCss target a custom color-scheme selector ([944a674](https://github.com/jkrumm/basalt-ui/commit/944a674c02a47b32c6badf7a2e000e4b0ccb26b3))
686
- * make the react and mantine peers optional ([841f88f](https://github.com/jkrumm/basalt-ui/commit/841f88fdfed2ba946a72921b231bcdc427af173c))
687
- * ship a prebuilt tokens.css and a tokens:css subcommand ([b23aca3](https://github.com/jkrumm/basalt-ui/commit/b23aca32b81cf4c9d580562cfc46b89a9c5a38da))
724
+ - add a core-only spacing emission mode to buildPaletteCss ([1a3d59b](https://github.com/jkrumm/basalt-ui/commit/1a3d59bb1558bb66771d3a51295993ab18084015))
725
+ - let buildPaletteCss target a custom color-scheme selector ([944a674](https://github.com/jkrumm/basalt-ui/commit/944a674c02a47b32c6badf7a2e000e4b0ccb26b3))
726
+ - make the react and mantine peers optional ([841f88f](https://github.com/jkrumm/basalt-ui/commit/841f88fdfed2ba946a72921b231bcdc427af173c))
727
+ - ship a prebuilt tokens.css and a tokens:css subcommand ([b23aca3](https://github.com/jkrumm/basalt-ui/commit/b23aca32b81cf4c9d580562cfc46b89a9c5a38da))
688
728
 
689
729
  # [1.2.0](https://github.com/jkrumm/basalt-ui/compare/v1.1.1...v1.2.0) (2026-07-27)
690
730
 
691
-
692
731
  ### Bug Fixes
693
732
 
694
- * let styles-block radii follow the dev radius slider ([81f0318](https://github.com/jkrumm/basalt-ui/commit/81f0318ede0fe60f8f95c89481090c7de990bfe2))
695
- * make the raw-surface guard token-aware ([0deab9a](https://github.com/jkrumm/basalt-ui/commit/0deab9a24fcaae643419f89d075a103e6c078b97))
696
- * make the virtual-list skeleton density-aware and lock the space var set ([f6fbde6](https://github.com/jkrumm/basalt-ui/commit/f6fbde634d2b1795d3a3f5cf3d3149b1eadac793))
697
- * respect Vite's base when emitting app URLs ([488fe0c](https://github.com/jkrumm/basalt-ui/commit/488fe0cb39fa7dbd3d29d985aa264767fb952a0d))
698
- * strip comments before the theme guard scans ([ac5e81d](https://github.com/jkrumm/basalt-ui/commit/ac5e81d414d7cfb290bd598f60bed1335f86234c))
699
-
733
+ - let styles-block radii follow the dev radius slider ([81f0318](https://github.com/jkrumm/basalt-ui/commit/81f0318ede0fe60f8f95c89481090c7de990bfe2))
734
+ - make the raw-surface guard token-aware ([0deab9a](https://github.com/jkrumm/basalt-ui/commit/0deab9a24fcaae643419f89d075a103e6c078b97))
735
+ - make the virtual-list skeleton density-aware and lock the space var set ([f6fbde6](https://github.com/jkrumm/basalt-ui/commit/f6fbde634d2b1795d3a3f5cf3d3149b1eadac793))
736
+ - respect Vite's base when emitting app URLs ([488fe0c](https://github.com/jkrumm/basalt-ui/commit/488fe0cb39fa7dbd3d29d985aa264767fb952a0d))
737
+ - strip comments before the theme guard scans ([ac5e81d](https://github.com/jkrumm/basalt-ui/commit/ac5e81d414d7cfb290bd598f60bed1335f86234c))
700
738
 
701
739
  ### Features
702
740
 
703
- * add basaltAppPlugin for PWA head, manifest, and icon metadata ([cef0114](https://github.com/jkrumm/basalt-ui/commit/cef0114e85f7d2107c640bdfb24978e6b0d29d40))
704
- * add fonts option and derive legendText ([82a6af3](https://github.com/jkrumm/basalt-ui/commit/82a6af3eaba65ad86dcf18ec3aa94f8d798b3d4e))
705
- * add per-rule path exemptions to the theme guard ([5f085bb](https://github.com/jkrumm/basalt-ui/commit/5f085bb2ae919f09fafac473818cb3874704d5b1))
706
- * add the density knob to the theme config ([e992638](https://github.com/jkrumm/basalt-ui/commit/e992638b5897b8a7a12d4c142aad513bff6d0ca9))
707
- * add the radius knob to the theme config ([3207e8a](https://github.com/jkrumm/basalt-ui/commit/3207e8a8b3e4c718e815fa9a1dd5f2540f88ffbc))
708
- * derive the palette from one accent seed ([bc6fe31](https://github.com/jkrumm/basalt-ui/commit/bc6fe31e892f626e48f3dc60ff5351fa5805ace1))
709
- * dogfood the inline-display and raw-html-layout guards ([4844f62](https://github.com/jkrumm/basalt-ui/commit/4844f62db7a2762c2c40973c2b612fecc33031b9))
710
- * dogfood the inline-spacing guard on the package ([583e18c](https://github.com/jkrumm/basalt-ui/commit/583e18c21c12ba0858b9d31ef7fc433c127bc2fd))
711
- * dogfood the raw-spacing guard on the package ([c9a2cf9](https://github.com/jkrumm/basalt-ui/commit/c9a2cf9f7bfd6cfd2a284cf1ec57295c55ad6f14))
712
- * dogfood the raw-surface guard on the package ([b70a29a](https://github.com/jkrumm/basalt-ui/commit/b70a29aa048227fa048c0acdfc0847a69d9f9f5b))
713
- * embed DeriveControls in playground settings ([8439aa1](https://github.com/jkrumm/basalt-ui/commit/8439aa1b8b94409d2c1047ccf697aceec4068b40))
714
- * make the theme lab move the theme object, not just CSS vars ([1eb4257](https://github.com/jkrumm/basalt-ui/commit/1eb4257a9525094b386f80699e8282c53982e974))
715
- * mention the radius knob in the Derive panel copy ([7a1b064](https://github.com/jkrumm/basalt-ui/commit/7a1b064c548f98143350d366696eb1f7ab8e6b6f))
716
- * scan CSS modules in the theme guard ([2b0d9d4](https://github.com/jkrumm/basalt-ui/commit/2b0d9d433917ef5bcc55d0400e76de50f622c526))
717
- * tighten the sidebar, open up components — retune the level-0 spacing bases ([8b6119a](https://github.com/jkrumm/basalt-ui/commit/8b6119aa601793f8947302288d02cfb1803dc1b8))
741
+ - add basaltAppPlugin for PWA head, manifest, and icon metadata ([cef0114](https://github.com/jkrumm/basalt-ui/commit/cef0114e85f7d2107c640bdfb24978e6b0d29d40))
742
+ - add fonts option and derive legendText ([82a6af3](https://github.com/jkrumm/basalt-ui/commit/82a6af3eaba65ad86dcf18ec3aa94f8d798b3d4e))
743
+ - add per-rule path exemptions to the theme guard ([5f085bb](https://github.com/jkrumm/basalt-ui/commit/5f085bb2ae919f09fafac473818cb3874704d5b1))
744
+ - add the density knob to the theme config ([e992638](https://github.com/jkrumm/basalt-ui/commit/e992638b5897b8a7a12d4c142aad513bff6d0ca9))
745
+ - add the radius knob to the theme config ([3207e8a](https://github.com/jkrumm/basalt-ui/commit/3207e8a8b3e4c718e815fa9a1dd5f2540f88ffbc))
746
+ - derive the palette from one accent seed ([bc6fe31](https://github.com/jkrumm/basalt-ui/commit/bc6fe31e892f626e48f3dc60ff5351fa5805ace1))
747
+ - dogfood the inline-display and raw-html-layout guards ([4844f62](https://github.com/jkrumm/basalt-ui/commit/4844f62db7a2762c2c40973c2b612fecc33031b9))
748
+ - dogfood the inline-spacing guard on the package ([583e18c](https://github.com/jkrumm/basalt-ui/commit/583e18c21c12ba0858b9d31ef7fc433c127bc2fd))
749
+ - dogfood the raw-spacing guard on the package ([c9a2cf9](https://github.com/jkrumm/basalt-ui/commit/c9a2cf9f7bfd6cfd2a284cf1ec57295c55ad6f14))
750
+ - dogfood the raw-surface guard on the package ([b70a29a](https://github.com/jkrumm/basalt-ui/commit/b70a29aa048227fa048c0acdfc0847a69d9f9f5b))
751
+ - embed DeriveControls in playground settings ([8439aa1](https://github.com/jkrumm/basalt-ui/commit/8439aa1b8b94409d2c1047ccf697aceec4068b40))
752
+ - make the theme lab move the theme object, not just CSS vars ([1eb4257](https://github.com/jkrumm/basalt-ui/commit/1eb4257a9525094b386f80699e8282c53982e974))
753
+ - mention the radius knob in the Derive panel copy ([7a1b064](https://github.com/jkrumm/basalt-ui/commit/7a1b064c548f98143350d366696eb1f7ab8e6b6f))
754
+ - scan CSS modules in the theme guard ([2b0d9d4](https://github.com/jkrumm/basalt-ui/commit/2b0d9d433917ef5bcc55d0400e76de50f622c526))
755
+ - tighten the sidebar, open up components — retune the level-0 spacing bases ([8b6119a](https://github.com/jkrumm/basalt-ui/commit/8b6119aa601793f8947302288d02cfb1803dc1b8))
718
756
 
719
757
  ## [1.1.1](https://github.com/jkrumm/basalt-ui/compare/v1.1.0...v1.1.1) (2026-07-17)
720
758
 
721
-
722
759
  ### Bug Fixes
723
760
 
724
- * derive consumer seeds from basalt.roots, relax eqeqeq to smart ([b598112](https://github.com/jkrumm/basalt-ui/commit/b5981124b5758cca421164037d4f320ed65af362))
761
+ - derive consumer seeds from basalt.roots, relax eqeqeq to smart ([b598112](https://github.com/jkrumm/basalt-ui/commit/b5981124b5758cca421164037d4f320ed65af362))
725
762
 
726
763
  # [1.1.0](https://github.com/jkrumm/basalt-ui/compare/v1.0.2...v1.1.0) (2026-07-17)
727
764
 
728
-
729
765
  ### Features
730
766
 
731
- * split the import boundary into three independent rules ([784b673](https://github.com/jkrumm/basalt-ui/commit/784b6739367a25b9ffe379603c02322896e43658))
767
+ - split the import boundary into three independent rules ([784b673](https://github.com/jkrumm/basalt-ui/commit/784b6739367a25b9ffe379603c02322896e43658))
732
768
 
733
769
  ## [1.0.2](https://github.com/jkrumm/basalt-ui/compare/v1.0.1...v1.0.2) (2026-07-17)
734
770
 
735
-
736
771
  ### Bug Fixes
737
772
 
738
- * make the import boundary unclobberable and stop false drift on sync ([98aba84](https://github.com/jkrumm/basalt-ui/commit/98aba8497eb359cbc86e3bee289d21d3e2dbd099))
773
+ - make the import boundary unclobberable and stop false drift on sync ([98aba84](https://github.com/jkrumm/basalt-ui/commit/98aba8497eb359cbc86e3bee289d21d3e2dbd099))
739
774
 
740
775
  ## [1.0.1](https://github.com/jkrumm/basalt-ui/compare/v1.0.0...v1.0.1) (2026-07-17)
741
776
 
742
-
743
777
  ### Bug Fixes
744
778
 
745
- * collapse delivery to one package, one command, one version ([94de69c](https://github.com/jkrumm/basalt-ui/commit/94de69c80b4369265e72bf375839d145ec1cf954))
746
- * drop argo-shaped CLI defaults ([cd911d2](https://github.com/jkrumm/basalt-ui/commit/cd911d2f2756b678d65c3b65da8f6fbacd4096c1))
747
- * export the BP hue families and p pair-picker from the tokens entry ([a9b34c5](https://github.com/jkrumm/basalt-ui/commit/a9b34c51dbab3c960c389bda24b10a67dba254e2))
748
- * let consumers own their CI and git hooks ([15232df](https://github.com/jkrumm/basalt-ui/commit/15232df84ee04e47d2b913ba6bd489542685b67a))
749
- * make the managed CLAUDE block oxfmt-clean ([8300ea6](https://github.com/jkrumm/basalt-ui/commit/8300ea6e4b06ce6d3a24fcfae22e846299ece829))
750
- * print help instead of running the command ([a7a866c](https://github.com/jkrumm/basalt-ui/commit/a7a866c9677b71c3b35983fe93262204464f879d))
779
+ - collapse delivery to one package, one command, one version ([94de69c](https://github.com/jkrumm/basalt-ui/commit/94de69c80b4369265e72bf375839d145ec1cf954))
780
+ - drop argo-shaped CLI defaults ([cd911d2](https://github.com/jkrumm/basalt-ui/commit/cd911d2f2756b678d65c3b65da8f6fbacd4096c1))
781
+ - export the BP hue families and p pair-picker from the tokens entry ([a9b34c5](https://github.com/jkrumm/basalt-ui/commit/a9b34c51dbab3c960c389bda24b10a67dba254e2))
782
+ - let consumers own their CI and git hooks ([15232df](https://github.com/jkrumm/basalt-ui/commit/15232df84ee04e47d2b913ba6bd489542685b67a))
783
+ - make the managed CLAUDE block oxfmt-clean ([8300ea6](https://github.com/jkrumm/basalt-ui/commit/8300ea6e4b06ce6d3a24fcfae22e846299ece829))
784
+ - print help instead of running the command ([a7a866c](https://github.com/jkrumm/basalt-ui/commit/a7a866c9677b71c3b35983fe93262204464f879d))
751
785
 
752
786
  # [1.0.0](https://github.com/jkrumm/basalt-ui/compare/v0.4.2...v1.0.0) (2026-07-16)
753
787
 
788
+ - feat!: narrow the public token surface to the VX indirection ([ae1fa4c](https://github.com/jkrumm/basalt-ui/commit/ae1fa4c76390f9e113ecbbdb71ae2c1692e8dafc))
789
+ - feat!: pivot basalt-ui to an opinionated Mantine + React framework ([5cc7a9e](https://github.com/jkrumm/basalt-ui/commit/5cc7a9eebdc4e96fba925bb0c450b2dac71d2a82))
790
+
791
+ ### Bug Fixes
792
+
793
+ - address review findings in the package (CLI + charts + provider) ([41e7380](https://github.com/jkrumm/basalt-ui/commit/41e73808cd032bc7164e23dfdeb125d78c1db835))
794
+ - align chart refLine to solid-by-default and dedupe chart internals ([f086216](https://github.com/jkrumm/basalt-ui/commit/f0862164d95115de465ccccf8df6e6b0c092dad8))
795
+ - align font weights, chart tooltips, and shell depth with the doctrine ([840e429](https://github.com/jkrumm/basalt-ui/commit/840e4296cd189dade8fe1e33b55cd8fca78dda13))
796
+ - apply NavLink active weight via classNames, not a nested styles selector ([c0ad87b](https://github.com/jkrumm/basalt-ui/commit/c0ad87bcac973754bdf79dd2348989675aedda05))
797
+ - cache persisted-state snapshot for useSyncExternalStore stability ([1b19179](https://github.com/jkrumm/basalt-ui/commit/1b19179bec595c5d21d17713f8161e31025567f9))
798
+ - close the 1.0 audit findings on the shipped preset, peers, and agent docs ([f8c0e47](https://github.com/jkrumm/basalt-ui/commit/f8c0e47a2f5436879b016a45e13584ddbb5b8b1b))
799
+ - correct basalt plugin skills paths and align skill docs with the real CLI ([36a92e5](https://github.com/jkrumm/basalt-ui/commit/36a92e580295ae7dc1555b67333d56e12a8997a1))
800
+ - correct the commands keybinding docs and the HotkeyBinding callback type ([8e4c9c5](https://github.com/jkrumm/basalt-ui/commit/8e4c9c5d77bf4f4b32d20c54d22fc854cb0f0cad))
801
+ - defer commands shortcut platform detection past render ([90302ba](https://github.com/jkrumm/basalt-ui/commit/90302ba7e15e589a9a483af64a4ffbf633618180))
802
+ - define process.env.NODE_ENV in vite preset for source-served basalt-ui ([47574dc](https://github.com/jkrumm/basalt-ui/commit/47574dc3eb4ecef2042904e173ecfb10e8be88f7))
803
+ - emit the agent Mantine-free ban and unify SURFACES projections ([5bc3bc3](https://github.com/jkrumm/basalt-ui/commit/5bc3bc308281d80ad57c21dce63a52a5d4e55139))
804
+ - fail loud on empty guard roots, align oxfmt scaffold, doctor version warn ([657a9d1](https://github.com/jkrumm/basalt-ui/commit/657a9d1e547a3c23909e17a3814958278a12af86))
805
+ - find deepest active nav item for breadcrumb parent chain ([361bf37](https://github.com/jkrumm/basalt-ui/commit/361bf372bf5a2a36938a37dc45f135e8c71c8ad1))
806
+ - give GuideLink a help glyph that reads at 14px ([5300366](https://github.com/jkrumm/basalt-ui/commit/530036601f5531052857396fe5751a68357270dd))
807
+ - guard useOnlineStatus for SSR and dedupe the notification listener ([cfcb2fd](https://github.com/jkrumm/basalt-ui/commit/cfcb2fd5ea4e3f15deed79dc071d85dedf827d56))
808
+ - harden aria-label tag scan, add rawRadius toggle ([7c3c1cd](https://github.com/jkrumm/basalt-ui/commit/7c3c1cd770916c39f7cc6d0ad53ad3abf1af3648))
809
+ - harden the agent stop-race and merge streaming-markdown overrides ([a85c101](https://github.com/jkrumm/basalt-ui/commit/a85c101b15c17a66970a25153fb7441ff0c04f5c))
810
+ - harden the agent stream hook and lazy peer fallbacks ([e322ff1](https://github.com/jkrumm/basalt-ui/commit/e322ff1f142661a1f2a497df3715b1be18dd4556))
811
+ - hold the TOC rail on a clicked section until its scroll settles ([bcdb4c0](https://github.com/jkrumm/basalt-ui/commit/bcdb4c03eb2ef7ad5bc0bde85d34393b6f34328d))
812
+ - keep light variant AA-legible in both schemes ([d50dbd6](https://github.com/jkrumm/basalt-ui/commit/d50dbd6b4e80ab61754e5de95866d013f0a752e6)), closes [hi#contrast](https://github.com/hi/issues/contrast)
813
+ - land the shadow-card ring on the box that carries the surface radius ([79bee79](https://github.com/jkrumm/basalt-ui/commit/79bee799e0f65c9cfd127cbfb6091cf1b014300b))
814
+ - make check-coverage portable and complete the plugin-install hint ([b328c21](https://github.com/jkrumm/basalt-ui/commit/b328c216ee32d6010e64fdf4aae89a1d5bd43983))
815
+ - make the 16px iOS input floor strict ([827fb68](https://github.com/jkrumm/basalt-ui/commit/827fb681c972e7a7e66443133901ec8f686d3648))
816
+ - make the consumer golden path survive a live onboarding run ([0769168](https://github.com/jkrumm/basalt-ui/commit/0769168798e90dfa9866b5d1818efbd891de9454))
817
+ - make the prose edge-margin resets actually apply ([df758cb](https://github.com/jkrumm/basalt-ui/commit/df758cbfd3fbc60928eec808fba9f3e1bb2c6b96))
818
+ - pad auto lower bound downward, widen Donut keys, export missing tokens ([4abeb2e](https://github.com/jkrumm/basalt-ui/commit/4abeb2e8f10b8c5ca6e6af52a3a953813bfc7a40))
819
+ - pin the ArticleCard meta line to the card floor ([cda2dc4](https://github.com/jkrumm/basalt-ui/commit/cda2dc41d6f87a39e9573df726fec3a1a93d5133))
820
+ - resolve TOC scroll-spy at the article's top and bottom ([4d05c22](https://github.com/jkrumm/basalt-ui/commit/4d05c22225ba0f1d7810c7c27a25ea8d5b53f898))
821
+ - revert barOpacity over-correction caught by re-review ([6bc148c](https://github.com/jkrumm/basalt-ui/commit/6bc148c5ad1fc95b72293e37bc5e031e6d5709c1))
822
+ - run check-theme in the consumer lefthook template ([e80ecb2](https://github.com/jkrumm/basalt-ui/commit/e80ecb266fb87b8958be7884400857eebbc85724))
823
+ - space content block objects on one prose rhythm ([9c13a0b](https://github.com/jkrumm/basalt-ui/commit/9c13a0ba144d569822b828cd57ffb2d97c7c6ec0))
824
+ - unblock browser and local-source dev rendering ([e17b060](https://github.com/jkrumm/basalt-ui/commit/e17b060086ea2b8f444d2dcc4ec84d8ecb0d3605))
825
+ - unify the scrollbar treatment and clear the sidebar bar of the rows ([4f6bf20](https://github.com/jkrumm/basalt-ui/commit/4f6bf20bc54b6103b1ff2e2ee39dc23b446c5a9c))
826
+ - use when_to_use frontmatter key in basalt skills ([8d025d1](https://github.com/jkrumm/basalt-ui/commit/8d025d17b1f912f7eb5bb70c0b2f40b6afe0df08))
754
827
 
755
- * feat!: narrow the public token surface to the VX indirection ([ae1fa4c](https://github.com/jkrumm/basalt-ui/commit/ae1fa4c76390f9e113ecbbdb71ae2c1692e8dafc))
756
- * feat!: pivot basalt-ui to an opinionated Mantine + React framework ([5cc7a9e](https://github.com/jkrumm/basalt-ui/commit/5cc7a9eebdc4e96fba925bb0c450b2dac71d2a82))
757
-
758
-
759
- ### Bug Fixes
760
-
761
- * address review findings in the package (CLI + charts + provider) ([41e7380](https://github.com/jkrumm/basalt-ui/commit/41e73808cd032bc7164e23dfdeb125d78c1db835))
762
- * align chart refLine to solid-by-default and dedupe chart internals ([f086216](https://github.com/jkrumm/basalt-ui/commit/f0862164d95115de465ccccf8df6e6b0c092dad8))
763
- * align font weights, chart tooltips, and shell depth with the doctrine ([840e429](https://github.com/jkrumm/basalt-ui/commit/840e4296cd189dade8fe1e33b55cd8fca78dda13))
764
- * apply NavLink active weight via classNames, not a nested styles selector ([c0ad87b](https://github.com/jkrumm/basalt-ui/commit/c0ad87bcac973754bdf79dd2348989675aedda05))
765
- * cache persisted-state snapshot for useSyncExternalStore stability ([1b19179](https://github.com/jkrumm/basalt-ui/commit/1b19179bec595c5d21d17713f8161e31025567f9))
766
- * close the 1.0 audit findings on the shipped preset, peers, and agent docs ([f8c0e47](https://github.com/jkrumm/basalt-ui/commit/f8c0e47a2f5436879b016a45e13584ddbb5b8b1b))
767
- * correct basalt plugin skills paths and align skill docs with the real CLI ([36a92e5](https://github.com/jkrumm/basalt-ui/commit/36a92e580295ae7dc1555b67333d56e12a8997a1))
768
- * correct the commands keybinding docs and the HotkeyBinding callback type ([8e4c9c5](https://github.com/jkrumm/basalt-ui/commit/8e4c9c5d77bf4f4b32d20c54d22fc854cb0f0cad))
769
- * defer commands shortcut platform detection past render ([90302ba](https://github.com/jkrumm/basalt-ui/commit/90302ba7e15e589a9a483af64a4ffbf633618180))
770
- * define process.env.NODE_ENV in vite preset for source-served basalt-ui ([47574dc](https://github.com/jkrumm/basalt-ui/commit/47574dc3eb4ecef2042904e173ecfb10e8be88f7))
771
- * emit the agent Mantine-free ban and unify SURFACES projections ([5bc3bc3](https://github.com/jkrumm/basalt-ui/commit/5bc3bc308281d80ad57c21dce63a52a5d4e55139))
772
- * fail loud on empty guard roots, align oxfmt scaffold, doctor version warn ([657a9d1](https://github.com/jkrumm/basalt-ui/commit/657a9d1e547a3c23909e17a3814958278a12af86))
773
- * find deepest active nav item for breadcrumb parent chain ([361bf37](https://github.com/jkrumm/basalt-ui/commit/361bf372bf5a2a36938a37dc45f135e8c71c8ad1))
774
- * give GuideLink a help glyph that reads at 14px ([5300366](https://github.com/jkrumm/basalt-ui/commit/530036601f5531052857396fe5751a68357270dd))
775
- * guard useOnlineStatus for SSR and dedupe the notification listener ([cfcb2fd](https://github.com/jkrumm/basalt-ui/commit/cfcb2fd5ea4e3f15deed79dc071d85dedf827d56))
776
- * harden aria-label tag scan, add rawRadius toggle ([7c3c1cd](https://github.com/jkrumm/basalt-ui/commit/7c3c1cd770916c39f7cc6d0ad53ad3abf1af3648))
777
- * harden the agent stop-race and merge streaming-markdown overrides ([a85c101](https://github.com/jkrumm/basalt-ui/commit/a85c101b15c17a66970a25153fb7441ff0c04f5c))
778
- * harden the agent stream hook and lazy peer fallbacks ([e322ff1](https://github.com/jkrumm/basalt-ui/commit/e322ff1f142661a1f2a497df3715b1be18dd4556))
779
- * hold the TOC rail on a clicked section until its scroll settles ([bcdb4c0](https://github.com/jkrumm/basalt-ui/commit/bcdb4c03eb2ef7ad5bc0bde85d34393b6f34328d))
780
- * keep light variant AA-legible in both schemes ([d50dbd6](https://github.com/jkrumm/basalt-ui/commit/d50dbd6b4e80ab61754e5de95866d013f0a752e6)), closes [hi#contrast](https://github.com/hi/issues/contrast)
781
- * land the shadow-card ring on the box that carries the surface radius ([79bee79](https://github.com/jkrumm/basalt-ui/commit/79bee799e0f65c9cfd127cbfb6091cf1b014300b))
782
- * make check-coverage portable and complete the plugin-install hint ([b328c21](https://github.com/jkrumm/basalt-ui/commit/b328c216ee32d6010e64fdf4aae89a1d5bd43983))
783
- * make the 16px iOS input floor strict ([827fb68](https://github.com/jkrumm/basalt-ui/commit/827fb681c972e7a7e66443133901ec8f686d3648))
784
- * make the consumer golden path survive a live onboarding run ([0769168](https://github.com/jkrumm/basalt-ui/commit/0769168798e90dfa9866b5d1818efbd891de9454))
785
- * make the prose edge-margin resets actually apply ([df758cb](https://github.com/jkrumm/basalt-ui/commit/df758cbfd3fbc60928eec808fba9f3e1bb2c6b96))
786
- * pad auto lower bound downward, widen Donut keys, export missing tokens ([4abeb2e](https://github.com/jkrumm/basalt-ui/commit/4abeb2e8f10b8c5ca6e6af52a3a953813bfc7a40))
787
- * pin the ArticleCard meta line to the card floor ([cda2dc4](https://github.com/jkrumm/basalt-ui/commit/cda2dc41d6f87a39e9573df726fec3a1a93d5133))
788
- * resolve TOC scroll-spy at the article's top and bottom ([4d05c22](https://github.com/jkrumm/basalt-ui/commit/4d05c22225ba0f1d7810c7c27a25ea8d5b53f898))
789
- * revert barOpacity over-correction caught by re-review ([6bc148c](https://github.com/jkrumm/basalt-ui/commit/6bc148c5ad1fc95b72293e37bc5e031e6d5709c1))
790
- * run check-theme in the consumer lefthook template ([e80ecb2](https://github.com/jkrumm/basalt-ui/commit/e80ecb266fb87b8958be7884400857eebbc85724))
791
- * space content block objects on one prose rhythm ([9c13a0b](https://github.com/jkrumm/basalt-ui/commit/9c13a0ba144d569822b828cd57ffb2d97c7c6ec0))
792
- * unblock browser and local-source dev rendering ([e17b060](https://github.com/jkrumm/basalt-ui/commit/e17b060086ea2b8f444d2dcc4ec84d8ecb0d3605))
793
- * unify the scrollbar treatment and clear the sidebar bar of the rows ([4f6bf20](https://github.com/jkrumm/basalt-ui/commit/4f6bf20bc54b6103b1ff2e2ee39dc23b446c5a9c))
794
- * use when_to_use frontmatter key in basalt skills ([8d025d1](https://github.com/jkrumm/basalt-ui/commit/8d025d17b1f912f7eb5bb70c0b2f40b6afe0df08))
795
-
796
-
797
- ### Features
798
-
799
- * add AGENTS.md and the llms.txt package export ([489277f](https://github.com/jkrumm/basalt-ui/commit/489277f1a2f0fd2261bc25f226fca0d581559c4f))
800
- * add aggregated connectivity monitoring system ([cc5906c](https://github.com/jkrumm/basalt-ui/commit/cc5906cd6036988c81a4ade1af976f0b5596687b))
801
- * add an optional fallback to BasaltErrorBoundary ([b2448fc](https://github.com/jkrumm/basalt-ui/commit/b2448fcefe5bf16d8a13e65c64ad6b5212d430db))
802
- * add article model, classification, and search to ./content ([e9c83e6](https://github.com/jkrumm/basalt-ui/commit/e9c83e6eaf5467c56141a44266952799026d1ed2))
803
- * add basalt info, llms.txt, and full subpath resolution gate ([ad15f89](https://github.com/jkrumm/basalt-ui/commit/ad15f89c06c86ae3a4f1b7043006e31438ba6d9c))
804
- * add card-with-border, raw-form-control and sub-16-input-font guard kinds ([8f5ed95](https://github.com/jkrumm/basalt-ui/commit/8f5ed953f0df2c57d4e614b34aa59add3320a3d6))
805
- * add connectivity simulator page and indicator header ([91ec85c](https://github.com/jkrumm/basalt-ui/commit/91ec85c707a3808e6fb62341ff88b00a24c4b89f))
806
- * add createSearchParamStore for URL-to-localStorage persistence ([2381dcc](https://github.com/jkrumm/basalt-ui/commit/2381dcc201f770d529971cb405f492a039ce204a))
807
- * add dashboard date-range filter with persisted search params ([e7b17c0](https://github.com/jkrumm/basalt-ui/commit/e7b17c06d0c7272e48bb5eeef6d22ff319ab6343))
808
- * add dashboard sub-routes with sidebar sub-navigation example ([4aadc19](https://github.com/jkrumm/basalt-ui/commit/4aadc19b842a425ec2ea3c31cd6cc36cb3f31b5a))
809
- * add provider-agnostic account footer to the shell ([b0ed990](https://github.com/jkrumm/basalt-ui/commit/b0ed9905bb89e1e597548c3f88101fa5a8b458e6))
810
- * add SidebarSearch, route-to-spotlight projector, scrollbar fix ([a1d5510](https://github.com/jkrumm/basalt-ui/commit/a1d5510b7b2a85e97e8e1dc407f2f146615ac2df))
811
- * add sub-navigation popover on hover with inline children expansion ([92a7a19](https://github.com/jkrumm/basalt-ui/commit/92a7a19e3a9e2a18832fa5c032b3829cdcdcc254))
812
- * add the agent streaming adapter subpath ([bb49fa7](https://github.com/jkrumm/basalt-ui/commit/bb49fa7bbfe9acc8732330b896d1e6f3e7564a65))
813
- * add the basalt Claude Code plugin, marketplace, and design doctrine ([67528a8](https://github.com/jkrumm/basalt-ui/commit/67528a802f10485099f5abe1cc42de0ad75df061))
814
- * add the basalt doctor command and query/router scaffold seeds ([0c12351](https://github.com/jkrumm/basalt-ui/commit/0c12351a24af51107e6af469b25e1f52137abf79))
815
- * add the basalt oxlint plugin with three design-guard rules ([49c49e9](https://github.com/jkrumm/basalt-ui/commit/49c49e99a97b5fe3dddc3d6736a7d31e5d3c0f5e))
816
- * add the commands adapter subpath ([b110df6](https://github.com/jkrumm/basalt-ui/commit/b110df691784bf6dd9038f99a4bd525eccf0cbba))
817
- * add the content surface ([415cb83](https://github.com/jkrumm/basalt-ui/commit/415cb83cb12b65bc3aaa177621fcb95173389ba2))
818
- * add the data adapter subpath (table + virtual list) ([95c74d1](https://github.com/jkrumm/basalt-ui/commit/95c74d129a67560f8d1703eeab5148b12e1d28aa))
819
- * add the forms adapter subpath ([4940285](https://github.com/jkrumm/basalt-ui/commit/4940285821b33cefea21f69313760493e445e5ce))
820
- * add the guard-hook PreToolUse adapter and wire GUARD_RULES ([cd1a368](https://github.com/jkrumm/basalt-ui/commit/cd1a368c328bfdd43c70b7121bdff6c9705a875f))
821
- * add the notifications adapter subpath ([a71111c](https://github.com/jkrumm/basalt-ui/commit/a71111c135bcba1001b409158b91e67e594d0274))
822
- * add the Phase-1 spine (SURFACES enforcement + BasaltRegister seam) ([08a3204](https://github.com/jkrumm/basalt-ui/commit/08a3204c1dde8a40371fe519d05cda749ce60cf3))
823
- * add the query adapter subpath (client, unwrap, devtools) ([e2eb768](https://github.com/jkrumm/basalt-ui/commit/e2eb7689d7ab289e635a28ec5c411c286033a830))
824
- * add the raw-scroll-container design-guard rule ([99504ff](https://github.com/jkrumm/basalt-ui/commit/99504ffbe69b959872db8f5abb4fe883fa2e8aa1))
825
- * add the router-tanstack adapter subpath ([58a34b8](https://github.com/jkrumm/basalt-ui/commit/58a34b87d147cd945d110d6fdc0d50a2d8d2ed1e))
826
- * add ThemeToggle with system color scheme support ([077c0d8](https://github.com/jkrumm/basalt-ui/commit/077c0d89b785fa49c6e7a045ef95f3d28d368501))
827
- * add threaded multi-chat agent workspace ([1561ac7](https://github.com/jkrumm/basalt-ui/commit/1561ac73bf1d1d091d845dcd7ed9346522d37303))
828
- * add useOnlineStatus, print styles, and a responsive chart wrapper ([af45dbe](https://github.com/jkrumm/basalt-ui/commit/af45dbe44fea08daaa0e6db5daaa4577c10d6cb5))
829
- * add user-state simulator to the playground ([b920ae5](https://github.com/jkrumm/basalt-ui/commit/b920ae53cd2fa23d8c2342fb0a87a92acce6505d))
830
- * bind command shortcuts to live keys and add a Spotlight store ([2947287](https://github.com/jkrumm/basalt-ui/commit/29472873b3f7e5d11ba0af5f405857372bd9b765))
831
- * complete the basaltViteConfig vite preset ([ce75f99](https://github.com/jkrumm/basalt-ui/commit/ce75f99b4fd08a41571a0ecdfaa17687a59d67e4))
832
- * controlled collapse, drawer close-on-nav, and nav-link class seams ([1bf4af2](https://github.com/jkrumm/basalt-ui/commit/1bf4af2547cb44bce282b5874be8ff05403c7745))
833
- * copy a section link from a heading, on one copy idiom ([c806870](https://github.com/jkrumm/basalt-ui/commit/c806870f362b394832c5eb04bb262b65ba80207f))
834
- * demo actionable notification center in playground ([5773cf1](https://github.com/jkrumm/basalt-ui/commit/5773cf18e51beb27dc9b4bd1a06f63dc0823db15))
835
- * demo the content surface in the playground ([6df2a84](https://github.com/jkrumm/basalt-ui/commit/6df2a84b50cc6a1798f8fc7cb0963f2f324e3ff3))
836
- * enforce motion discipline via oxlint + check-theme ([a1d66eb](https://github.com/jkrumm/basalt-ui/commit/a1d66eb70ccefe531ce8b7f6a0f8fa39c472c4b1))
837
- * enforce the headless Mantine-free boundary and harden oxlint ([ff2942a](https://github.com/jkrumm/basalt-ui/commit/ff2942af8540ff104c782973c9435d753ebcf656))
838
- * exercise new chart kinds and components page ([4c3c055](https://github.com/jkrumm/basalt-ui/commit/4c3c0557bf4ca5786375a268e0c98bbea5bdcfa8))
839
- * extract --vx-* token system and visx chart suite from argo ([986f599](https://github.com/jkrumm/basalt-ui/commit/986f599d829e4c80f9f7e2fe4d8307c0e0160c62))
840
- * extract Mantine theme, provider, and theme-lab from argo ([201c4d1](https://github.com/jkrumm/basalt-ui/commit/201c4d128b675c604128f8ca1e1744d40b567cb9))
841
- * extract router-agnostic BasaltShell from argo ([fb5a86d](https://github.com/jkrumm/basalt-ui/commit/fb5a86d51ac09776579b2a10006ce71636c1954f))
842
- * finish the M0 release gates and drop the unbacked dates peer ([6e02f57](https://github.com/jkrumm/basalt-ui/commit/6e02f57664767dc8e08d93bc1c39210e6f7244b0))
843
- * float the sidebar nav scrollbar via Mantine ScrollArea ([94f02b1](https://github.com/jkrumm/basalt-ui/commit/94f02b114ba00324d5a95ab7c44f67ee647f4072))
844
- * give the demo article's headings a copy-link anchor ([d61a3fc](https://github.com/jkrumm/basalt-ui/commit/d61a3fc63eadfda7c92f5b2ff9fb73a50f546994))
845
- * integrate legend, tooltip, and crosshair into a config-driven chart system ([075c114](https://github.com/jkrumm/basalt-ui/commit/075c1149c75a56da7bd8ccf84d698060e87a64fb))
846
- * land the DESIGN-SPEC overhaul across theme, shell, charts, agent ([00c3bf5](https://github.com/jkrumm/basalt-ui/commit/00c3bf545c8c49d02649cb5c262e8c4e9c24c58f))
847
- * land Wave 1 maturation fixes across a11y, data split, and correctness ([7783adb](https://github.com/jkrumm/basalt-ui/commit/7783adbc31b1fd462f91fcdc6cc46c3a46a4bcb4))
848
- * land Wave 2 maturation across a11y, API hygiene, and data lane ([4de05ad](https://github.com/jkrumm/basalt-ui/commit/4de05ad07b8851d0f94f27d0488dfb535d355945))
849
- * make token factories const-generic and exact-keyed ([50299f6](https://github.com/jkrumm/basalt-ui/commit/50299f69eb15ec037f0ff0247f97c05e3cf16d7a))
850
- * migrate playground to file-based TanStack Router ([d29966d](https://github.com/jkrumm/basalt-ui/commit/d29966da5729c5938e98ba3ac728063d874b517c))
851
- * re-export query hooks and add data-table loading and sorting control ([089b8a6](https://github.com/jkrumm/basalt-ui/commit/089b8a6435db4590c946483b1e08d7ce07b22fbd))
852
- * rebuild playground charts on the config-driven chart system ([bce5049](https://github.com/jkrumm/basalt-ui/commit/bce5049aae11016057afe1e03401ba9817f5af93)), closes [hi#cardinality](https://github.com/hi/issues/cardinality)
853
- * refine sub-navigation with tree-line children and breadcrumb hierarchy ([69a2292](https://github.com/jkrumm/basalt-ui/commit/69a2292908de2c3557213d77d250c11b7c302c3e))
854
- * refine the sidebar account footer's identity display ([ef38297](https://github.com/jkrumm/basalt-ui/commit/ef38297836d7b14e929e66cbd9e4df94cec96601))
855
- * remove redundant dashboard overview child, fix breadcrumb title ([4cbf563](https://github.com/jkrumm/basalt-ui/commit/4cbf5637def6b401b2e2cbd04e3ac5d74d711e79))
856
- * render agent demos through PartList and regroup the nav spine ([a26eced](https://github.com/jkrumm/basalt-ui/commit/a26eced0f3ad56b8d8ebac51993dac3d43900fca))
857
- * render playground chat markdown via the content stack ([aa64af6](https://github.com/jkrumm/basalt-ui/commit/aa64af62ef7c3817e39dc262b5ba466c24ae9d5e))
858
- * reskin dark chrome to zinc-charcoal palette ([0004a78](https://github.com/jkrumm/basalt-ui/commit/0004a78d738aaa01f8e35e63e8190fd6ccdfddfb))
859
- * restyle playground and docs to the DESIGN-SPEC identity ([12b2a77](https://github.com/jkrumm/basalt-ui/commit/12b2a77cdadb981543c29b93a2dd4b4f77442288))
860
- * restyle sidebar to framed dense grouped nav ([07d1d2f](https://github.com/jkrumm/basalt-ui/commit/07d1d2fd932baa68bd707cc364924b5b51c00d2e))
861
- * rework notification center into actionable inbox ([71b95a1](https://github.com/jkrumm/basalt-ui/commit/71b95a1f831d429482fd9ab3160bf56b9cf1e44b))
862
- * round out query, notifications, and state ergonomics ([dab3186](https://github.com/jkrumm/basalt-ui/commit/dab3186b72f9c09b027374fc835ea623f90233e7))
863
- * set quotations in italic ([0632731](https://github.com/jkrumm/basalt-ui/commit/063273160c88b8429716953cb3c7bdc011790bda))
864
- * ship the agentic layer — basalt-* rules and the init/sync CLI ([3612cc4](https://github.com/jkrumm/basalt-ui/commit/3612cc4a1a80759251da6ee8bb7cf789cdae88cc))
865
- * showcase thread workspace in playground ([8e25658](https://github.com/jkrumm/basalt-ui/commit/8e2565808645f0ac3916f8481b8d380f1923fe6c))
866
- * tighten design density and unify the card idiom ([cb04e7c](https://github.com/jkrumm/basalt-ui/commit/cb04e7c9bdb10fb3d4c878fbbdb9ff6fc7cde6d5))
867
- * unify markdown rendering on the ./content stack ([040b9be](https://github.com/jkrumm/basalt-ui/commit/040b9beddc1d3b20eac261a85a41f906608f3cba))
868
- * warm-neutral theme, chart kinds, dense shell ([80476c2](https://github.com/jkrumm/basalt-ui/commit/80476c26e33b7994b699b62055ebc475f0c4eb75))
869
- * wire article filtering into the playground content overview ([30f5fa8](https://github.com/jkrumm/basalt-ui/commit/30f5fa8c7f8d5116d0f2aed230fc8daeaf3cfc6b))
870
- * wire breadcrumb parent link to client-side router navigation ([95f2e65](https://github.com/jkrumm/basalt-ui/commit/95f2e653f307ead1c482e5096674be66c4c24b4d))
871
- * wire routes and settings into the command palette ([52204f2](https://github.com/jkrumm/basalt-ui/commit/52204f2e283956980875d0948e0429e4fcbb6c93))
872
- * wire ThemeToggle into playground shell and settings ([048b447](https://github.com/jkrumm/basalt-ui/commit/048b447139844229d679bae0d4b38da524b2d166))
828
+ ### Features
873
829
 
830
+ - add AGENTS.md and the llms.txt package export ([489277f](https://github.com/jkrumm/basalt-ui/commit/489277f1a2f0fd2261bc25f226fca0d581559c4f))
831
+ - add aggregated connectivity monitoring system ([cc5906c](https://github.com/jkrumm/basalt-ui/commit/cc5906cd6036988c81a4ade1af976f0b5596687b))
832
+ - add an optional fallback to BasaltErrorBoundary ([b2448fc](https://github.com/jkrumm/basalt-ui/commit/b2448fcefe5bf16d8a13e65c64ad6b5212d430db))
833
+ - add article model, classification, and search to ./content ([e9c83e6](https://github.com/jkrumm/basalt-ui/commit/e9c83e6eaf5467c56141a44266952799026d1ed2))
834
+ - add basalt info, llms.txt, and full subpath resolution gate ([ad15f89](https://github.com/jkrumm/basalt-ui/commit/ad15f89c06c86ae3a4f1b7043006e31438ba6d9c))
835
+ - add card-with-border, raw-form-control and sub-16-input-font guard kinds ([8f5ed95](https://github.com/jkrumm/basalt-ui/commit/8f5ed953f0df2c57d4e614b34aa59add3320a3d6))
836
+ - add connectivity simulator page and indicator header ([91ec85c](https://github.com/jkrumm/basalt-ui/commit/91ec85c707a3808e6fb62341ff88b00a24c4b89f))
837
+ - add createSearchParamStore for URL-to-localStorage persistence ([2381dcc](https://github.com/jkrumm/basalt-ui/commit/2381dcc201f770d529971cb405f492a039ce204a))
838
+ - add dashboard date-range filter with persisted search params ([e7b17c0](https://github.com/jkrumm/basalt-ui/commit/e7b17c06d0c7272e48bb5eeef6d22ff319ab6343))
839
+ - add dashboard sub-routes with sidebar sub-navigation example ([4aadc19](https://github.com/jkrumm/basalt-ui/commit/4aadc19b842a425ec2ea3c31cd6cc36cb3f31b5a))
840
+ - add provider-agnostic account footer to the shell ([b0ed990](https://github.com/jkrumm/basalt-ui/commit/b0ed9905bb89e1e597548c3f88101fa5a8b458e6))
841
+ - add SidebarSearch, route-to-spotlight projector, scrollbar fix ([a1d5510](https://github.com/jkrumm/basalt-ui/commit/a1d5510b7b2a85e97e8e1dc407f2f146615ac2df))
842
+ - add sub-navigation popover on hover with inline children expansion ([92a7a19](https://github.com/jkrumm/basalt-ui/commit/92a7a19e3a9e2a18832fa5c032b3829cdcdcc254))
843
+ - add the agent streaming adapter subpath ([bb49fa7](https://github.com/jkrumm/basalt-ui/commit/bb49fa7bbfe9acc8732330b896d1e6f3e7564a65))
844
+ - add the basalt Claude Code plugin, marketplace, and design doctrine ([67528a8](https://github.com/jkrumm/basalt-ui/commit/67528a802f10485099f5abe1cc42de0ad75df061))
845
+ - add the basalt doctor command and query/router scaffold seeds ([0c12351](https://github.com/jkrumm/basalt-ui/commit/0c12351a24af51107e6af469b25e1f52137abf79))
846
+ - add the basalt oxlint plugin with three design-guard rules ([49c49e9](https://github.com/jkrumm/basalt-ui/commit/49c49e99a97b5fe3dddc3d6736a7d31e5d3c0f5e))
847
+ - add the commands adapter subpath ([b110df6](https://github.com/jkrumm/basalt-ui/commit/b110df691784bf6dd9038f99a4bd525eccf0cbba))
848
+ - add the content surface ([415cb83](https://github.com/jkrumm/basalt-ui/commit/415cb83cb12b65bc3aaa177621fcb95173389ba2))
849
+ - add the data adapter subpath (table + virtual list) ([95c74d1](https://github.com/jkrumm/basalt-ui/commit/95c74d129a67560f8d1703eeab5148b12e1d28aa))
850
+ - add the forms adapter subpath ([4940285](https://github.com/jkrumm/basalt-ui/commit/4940285821b33cefea21f69313760493e445e5ce))
851
+ - add the guard-hook PreToolUse adapter and wire GUARD_RULES ([cd1a368](https://github.com/jkrumm/basalt-ui/commit/cd1a368c328bfdd43c70b7121bdff6c9705a875f))
852
+ - add the notifications adapter subpath ([a71111c](https://github.com/jkrumm/basalt-ui/commit/a71111c135bcba1001b409158b91e67e594d0274))
853
+ - add the Phase-1 spine (SURFACES enforcement + BasaltRegister seam) ([08a3204](https://github.com/jkrumm/basalt-ui/commit/08a3204c1dde8a40371fe519d05cda749ce60cf3))
854
+ - add the query adapter subpath (client, unwrap, devtools) ([e2eb768](https://github.com/jkrumm/basalt-ui/commit/e2eb7689d7ab289e635a28ec5c411c286033a830))
855
+ - add the raw-scroll-container design-guard rule ([99504ff](https://github.com/jkrumm/basalt-ui/commit/99504ffbe69b959872db8f5abb4fe883fa2e8aa1))
856
+ - add the router-tanstack adapter subpath ([58a34b8](https://github.com/jkrumm/basalt-ui/commit/58a34b87d147cd945d110d6fdc0d50a2d8d2ed1e))
857
+ - add ThemeToggle with system color scheme support ([077c0d8](https://github.com/jkrumm/basalt-ui/commit/077c0d89b785fa49c6e7a045ef95f3d28d368501))
858
+ - add threaded multi-chat agent workspace ([1561ac7](https://github.com/jkrumm/basalt-ui/commit/1561ac73bf1d1d091d845dcd7ed9346522d37303))
859
+ - add useOnlineStatus, print styles, and a responsive chart wrapper ([af45dbe](https://github.com/jkrumm/basalt-ui/commit/af45dbe44fea08daaa0e6db5daaa4577c10d6cb5))
860
+ - add user-state simulator to the playground ([b920ae5](https://github.com/jkrumm/basalt-ui/commit/b920ae53cd2fa23d8c2342fb0a87a92acce6505d))
861
+ - bind command shortcuts to live keys and add a Spotlight store ([2947287](https://github.com/jkrumm/basalt-ui/commit/29472873b3f7e5d11ba0af5f405857372bd9b765))
862
+ - complete the basaltViteConfig vite preset ([ce75f99](https://github.com/jkrumm/basalt-ui/commit/ce75f99b4fd08a41571a0ecdfaa17687a59d67e4))
863
+ - controlled collapse, drawer close-on-nav, and nav-link class seams ([1bf4af2](https://github.com/jkrumm/basalt-ui/commit/1bf4af2547cb44bce282b5874be8ff05403c7745))
864
+ - copy a section link from a heading, on one copy idiom ([c806870](https://github.com/jkrumm/basalt-ui/commit/c806870f362b394832c5eb04bb262b65ba80207f))
865
+ - demo actionable notification center in playground ([5773cf1](https://github.com/jkrumm/basalt-ui/commit/5773cf18e51beb27dc9b4bd1a06f63dc0823db15))
866
+ - demo the content surface in the playground ([6df2a84](https://github.com/jkrumm/basalt-ui/commit/6df2a84b50cc6a1798f8fc7cb0963f2f324e3ff3))
867
+ - enforce motion discipline via oxlint + check-theme ([a1d66eb](https://github.com/jkrumm/basalt-ui/commit/a1d66eb70ccefe531ce8b7f6a0f8fa39c472c4b1))
868
+ - enforce the headless Mantine-free boundary and harden oxlint ([ff2942a](https://github.com/jkrumm/basalt-ui/commit/ff2942af8540ff104c782973c9435d753ebcf656))
869
+ - exercise new chart kinds and components page ([4c3c055](https://github.com/jkrumm/basalt-ui/commit/4c3c0557bf4ca5786375a268e0c98bbea5bdcfa8))
870
+ - extract --vx-* token system and visx chart suite from argo ([986f599](https://github.com/jkrumm/basalt-ui/commit/986f599d829e4c80f9f7e2fe4d8307c0e0160c62))
871
+ - extract Mantine theme, provider, and theme-lab from argo ([201c4d1](https://github.com/jkrumm/basalt-ui/commit/201c4d128b675c604128f8ca1e1744d40b567cb9))
872
+ - extract router-agnostic BasaltShell from argo ([fb5a86d](https://github.com/jkrumm/basalt-ui/commit/fb5a86d51ac09776579b2a10006ce71636c1954f))
873
+ - finish the M0 release gates and drop the unbacked dates peer ([6e02f57](https://github.com/jkrumm/basalt-ui/commit/6e02f57664767dc8e08d93bc1c39210e6f7244b0))
874
+ - float the sidebar nav scrollbar via Mantine ScrollArea ([94f02b1](https://github.com/jkrumm/basalt-ui/commit/94f02b114ba00324d5a95ab7c44f67ee647f4072))
875
+ - give the demo article's headings a copy-link anchor ([d61a3fc](https://github.com/jkrumm/basalt-ui/commit/d61a3fc63eadfda7c92f5b2ff9fb73a50f546994))
876
+ - integrate legend, tooltip, and crosshair into a config-driven chart system ([075c114](https://github.com/jkrumm/basalt-ui/commit/075c1149c75a56da7bd8ccf84d698060e87a64fb))
877
+ - land the DESIGN-SPEC overhaul across theme, shell, charts, agent ([00c3bf5](https://github.com/jkrumm/basalt-ui/commit/00c3bf545c8c49d02649cb5c262e8c4e9c24c58f))
878
+ - land Wave 1 maturation fixes across a11y, data split, and correctness ([7783adb](https://github.com/jkrumm/basalt-ui/commit/7783adbc31b1fd462f91fcdc6cc46c3a46a4bcb4))
879
+ - land Wave 2 maturation across a11y, API hygiene, and data lane ([4de05ad](https://github.com/jkrumm/basalt-ui/commit/4de05ad07b8851d0f94f27d0488dfb535d355945))
880
+ - make token factories const-generic and exact-keyed ([50299f6](https://github.com/jkrumm/basalt-ui/commit/50299f69eb15ec037f0ff0247f97c05e3cf16d7a))
881
+ - migrate playground to file-based TanStack Router ([d29966d](https://github.com/jkrumm/basalt-ui/commit/d29966da5729c5938e98ba3ac728063d874b517c))
882
+ - re-export query hooks and add data-table loading and sorting control ([089b8a6](https://github.com/jkrumm/basalt-ui/commit/089b8a6435db4590c946483b1e08d7ce07b22fbd))
883
+ - rebuild playground charts on the config-driven chart system ([bce5049](https://github.com/jkrumm/basalt-ui/commit/bce5049aae11016057afe1e03401ba9817f5af93)), closes [hi#cardinality](https://github.com/hi/issues/cardinality)
884
+ - refine sub-navigation with tree-line children and breadcrumb hierarchy ([69a2292](https://github.com/jkrumm/basalt-ui/commit/69a2292908de2c3557213d77d250c11b7c302c3e))
885
+ - refine the sidebar account footer's identity display ([ef38297](https://github.com/jkrumm/basalt-ui/commit/ef38297836d7b14e929e66cbd9e4df94cec96601))
886
+ - remove redundant dashboard overview child, fix breadcrumb title ([4cbf563](https://github.com/jkrumm/basalt-ui/commit/4cbf5637def6b401b2e2cbd04e3ac5d74d711e79))
887
+ - render agent demos through PartList and regroup the nav spine ([a26eced](https://github.com/jkrumm/basalt-ui/commit/a26eced0f3ad56b8d8ebac51993dac3d43900fca))
888
+ - render playground chat markdown via the content stack ([aa64af6](https://github.com/jkrumm/basalt-ui/commit/aa64af62ef7c3817e39dc262b5ba466c24ae9d5e))
889
+ - reskin dark chrome to zinc-charcoal palette ([0004a78](https://github.com/jkrumm/basalt-ui/commit/0004a78d738aaa01f8e35e63e8190fd6ccdfddfb))
890
+ - restyle playground and docs to the DESIGN-SPEC identity ([12b2a77](https://github.com/jkrumm/basalt-ui/commit/12b2a77cdadb981543c29b93a2dd4b4f77442288))
891
+ - restyle sidebar to framed dense grouped nav ([07d1d2f](https://github.com/jkrumm/basalt-ui/commit/07d1d2fd932baa68bd707cc364924b5b51c00d2e))
892
+ - rework notification center into actionable inbox ([71b95a1](https://github.com/jkrumm/basalt-ui/commit/71b95a1f831d429482fd9ab3160bf56b9cf1e44b))
893
+ - round out query, notifications, and state ergonomics ([dab3186](https://github.com/jkrumm/basalt-ui/commit/dab3186b72f9c09b027374fc835ea623f90233e7))
894
+ - set quotations in italic ([0632731](https://github.com/jkrumm/basalt-ui/commit/063273160c88b8429716953cb3c7bdc011790bda))
895
+ - ship the agentic layer — basalt-* rules and the init/sync CLI ([3612cc4](https://github.com/jkrumm/basalt-ui/commit/3612cc4a1a80759251da6ee8bb7cf789cdae88cc))
896
+ - showcase thread workspace in playground ([8e25658](https://github.com/jkrumm/basalt-ui/commit/8e2565808645f0ac3916f8481b8d380f1923fe6c))
897
+ - tighten design density and unify the card idiom ([cb04e7c](https://github.com/jkrumm/basalt-ui/commit/cb04e7c9bdb10fb3d4c878fbbdb9ff6fc7cde6d5))
898
+ - unify markdown rendering on the ./content stack ([040b9be](https://github.com/jkrumm/basalt-ui/commit/040b9beddc1d3b20eac261a85a41f906608f3cba))
899
+ - warm-neutral theme, chart kinds, dense shell ([80476c2](https://github.com/jkrumm/basalt-ui/commit/80476c26e33b7994b699b62055ebc475f0c4eb75))
900
+ - wire article filtering into the playground content overview ([30f5fa8](https://github.com/jkrumm/basalt-ui/commit/30f5fa8c7f8d5116d0f2aed230fc8daeaf3cfc6b))
901
+ - wire breadcrumb parent link to client-side router navigation ([95f2e65](https://github.com/jkrumm/basalt-ui/commit/95f2e653f307ead1c482e5096674be66c4c24b4d))
902
+ - wire routes and settings into the command palette ([52204f2](https://github.com/jkrumm/basalt-ui/commit/52204f2e283956980875d0948e0429e4fcbb6c93))
903
+ - wire ThemeToggle into playground shell and settings ([048b447](https://github.com/jkrumm/basalt-ui/commit/048b447139844229d679bae0d4b38da524b2d166))
874
904
 
875
905
  ### BREAKING CHANGES
876
906
 
877
- * the raw palette pairs and helpers (ACCENT, BP, FILL, INK,
878
- NEUTRAL, p, SEMANTIC, SHADOW, STATUS, SURFACE) are no longer exported from
879
- basalt-ui/tokens or basalt-ui/charts.
880
- * None — useOnlineStatus still works; new hook is additive.
881
- * drops the ./css and ./starlight Tailwind exports. The package is
882
- now a Mantine framework requiring React 19 and @mantine/core + @mantine/hooks as
883
- peer dependencies.
907
+ - the raw palette pairs and helpers (ACCENT, BP, FILL, INK,
908
+ NEUTRAL, p, SEMANTIC, SHADOW, STATUS, SURFACE) are no longer exported from
909
+ basalt-ui/tokens or basalt-ui/charts.
910
+ - None — useOnlineStatus still works; new hook is additive.
911
+ - drops the ./css and ./starlight Tailwind exports. The package is
912
+ now a Mantine framework requiring React 19 and @mantine/core + @mantine/hooks as
913
+ peer dependencies.
884
914
 
885
915
  # basalt-ui 1.0 — the Mantine pivot
886
916