basalt-ui 1.41.0 → 2.0.1

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