basalt-ui 1.41.0 → 2.0.0

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