basalt-ui 1.40.3 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (923) hide show
  1. package/AGENTS.md +50 -45
  2. package/CHANGELOG.md +543 -513
  3. package/MIGRATING.md +969 -37
  4. package/README.md +172 -367
  5. package/agent/rules/basalt-batteries.md +19 -74
  6. package/agent/rules/basalt-charts.md +21 -95
  7. package/agent/rules/basalt-controls.md +23 -131
  8. package/agent/rules/basalt-mantine.md +26 -99
  9. package/agent/rules/basalt-state.md +21 -103
  10. package/agent/rules/basalt-tokens.md +33 -114
  11. package/agent/skills/basalt-app/SKILL.md +229 -72
  12. package/agent/skills/basalt-charts/SKILL.md +23 -57
  13. package/agent/skills/basalt-design/SKILL.md +12 -70
  14. package/agent/templates/AGENTS-block.md.tpl +30 -0
  15. package/agent/templates/DESIGN.md.tpl +2 -2
  16. package/agent/templates/__root.tpl +9 -16
  17. package/agent/templates/main.tpl +21 -0
  18. package/agent/templates/nav.tpl +18 -0
  19. package/configs/check.yml +1 -1
  20. package/configs/oxlint-basalt.json +4 -10
  21. package/configs/oxlint-plugin.js +468 -847
  22. package/configs/oxlint-plugin.test.ts +662 -710
  23. package/configs/oxlint.json +10 -2
  24. package/dist/agent/ai-sdk-transport.d.ts +19 -7
  25. package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
  26. package/dist/agent/ai-sdk-transport.js +10 -7
  27. package/dist/{agent-chat → agent/chat}/composer.d.ts +16 -16
  28. package/dist/agent/chat/composer.d.ts.map +1 -0
  29. package/dist/{agent-chat → agent/chat}/composer.js +10 -9
  30. package/dist/{agent-chat → agent/chat}/message-affordances.d.ts +7 -6
  31. package/dist/agent/chat/message-affordances.d.ts.map +1 -0
  32. package/dist/agent/chat/relative-time.d.ts.map +1 -0
  33. package/dist/{agent-chat → agent/chat}/thread-feed-row.d.ts +18 -16
  34. package/dist/agent/chat/thread-feed-row.d.ts.map +1 -0
  35. package/dist/{agent-chat → agent/chat}/thread-feed-row.js +12 -11
  36. package/dist/{agent-chat → agent/chat}/thread-feed.d.ts +8 -8
  37. package/dist/agent/chat/thread-feed.d.ts.map +1 -0
  38. package/dist/{agent-chat → agent/chat}/thread-feed.js +12 -10
  39. package/dist/{agent-chat → agent/chat}/thread-message.d.ts +12 -9
  40. package/dist/agent/chat/thread-message.d.ts.map +1 -0
  41. package/dist/{agent-chat → agent/chat}/thread-message.js +15 -13
  42. package/dist/{agent-chat → agent/chat}/thread-outcome-card.d.ts +2 -2
  43. package/dist/agent/chat/thread-outcome-card.d.ts.map +1 -0
  44. package/dist/{agent-chat → agent/chat}/thread-outcome-card.js +3 -3
  45. package/dist/{agent-chat → agent/chat}/tool-chip.d.ts +5 -5
  46. package/dist/agent/chat/tool-chip.d.ts.map +1 -0
  47. package/dist/{agent-chat → agent/chat}/tool-chip.js +4 -4
  48. package/dist/agent/chat/use-keyboard-inset.d.ts.map +1 -0
  49. package/dist/{agent-chat → agent/chat}/use-keyboard-inset.js +1 -1
  50. package/dist/{agent-chat → agent/chat}/virtualize.d.ts +7 -7
  51. package/dist/agent/chat/virtualize.d.ts.map +1 -0
  52. package/dist/agent/error.d.ts +31 -0
  53. package/dist/agent/error.d.ts.map +1 -0
  54. package/dist/agent/error.js +18 -0
  55. package/dist/agent/foreign.d.ts +3 -2
  56. package/dist/agent/foreign.d.ts.map +1 -1
  57. package/dist/agent/history.d.ts +2 -36
  58. package/dist/agent/history.d.ts.map +1 -1
  59. package/dist/agent/history.js +0 -32
  60. package/dist/agent/id.d.ts +4 -5
  61. package/dist/agent/id.d.ts.map +1 -1
  62. package/dist/agent/index.d.ts +19 -52
  63. package/dist/agent/index.d.ts.map +1 -1
  64. package/dist/agent/index.js +10 -32
  65. package/dist/agent/outcome.d.ts +3 -14
  66. package/dist/agent/outcome.d.ts.map +1 -1
  67. package/dist/agent/outcome.js +0 -30
  68. package/dist/agent/part-list.d.ts +3 -3
  69. package/dist/agent/part-list.d.ts.map +1 -1
  70. package/dist/agent/parts.d.ts +23 -24
  71. package/dist/agent/parts.d.ts.map +1 -1
  72. package/dist/agent/run-committer.d.ts +23 -0
  73. package/dist/agent/run-committer.d.ts.map +1 -0
  74. package/dist/agent/run-committer.js +41 -0
  75. package/dist/agent/run-records.d.ts +77 -0
  76. package/dist/agent/run-records.d.ts.map +1 -0
  77. package/dist/agent/run-records.js +69 -0
  78. package/dist/agent/thread.d.ts +23 -47
  79. package/dist/agent/thread.d.ts.map +1 -1
  80. package/dist/agent/thread.js +3 -134
  81. package/dist/agent/transport.d.ts +6 -69
  82. package/dist/agent/transport.d.ts.map +1 -1
  83. package/dist/agent/transport.js +0 -18
  84. package/dist/agent/use-agent-thread-runs.d.ts +63 -26
  85. package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
  86. package/dist/agent/use-agent-thread-runs.js +202 -66
  87. package/dist/charts/BandStrip.d.ts +46 -0
  88. package/dist/charts/BandStrip.d.ts.map +1 -0
  89. package/dist/charts/BandStrip.js +151 -0
  90. package/dist/charts/Bars.d.ts +19 -0
  91. package/dist/charts/Bars.d.ts.map +1 -0
  92. package/dist/charts/Bars.js +77 -0
  93. package/dist/charts/CartesianChart.d.ts +57 -0
  94. package/dist/charts/CartesianChart.d.ts.map +1 -0
  95. package/dist/charts/CartesianChart.js +121 -0
  96. package/dist/charts/ChartCard.d.ts +34 -0
  97. package/dist/charts/ChartCard.d.ts.map +1 -0
  98. package/dist/charts/ChartCard.js +115 -0
  99. package/dist/charts/Donut.d.ts +25 -0
  100. package/dist/charts/Donut.d.ts.map +1 -0
  101. package/dist/charts/Donut.js +191 -0
  102. package/dist/charts/DualPanel.d.ts +47 -0
  103. package/dist/charts/DualPanel.d.ts.map +1 -0
  104. package/dist/charts/DualPanel.js +214 -0
  105. package/dist/charts/Heatmap.d.ts +41 -0
  106. package/dist/charts/Heatmap.d.ts.map +1 -0
  107. package/dist/charts/Heatmap.js +216 -0
  108. package/dist/charts/Lines.d.ts +11 -0
  109. package/dist/charts/Lines.d.ts.map +1 -0
  110. package/dist/charts/Lines.js +114 -0
  111. package/dist/charts/MirroredBars.d.ts +44 -0
  112. package/dist/charts/MirroredBars.d.ts.map +1 -0
  113. package/dist/charts/MirroredBars.js +190 -0
  114. package/dist/charts/Sparkline.d.ts +22 -0
  115. package/dist/charts/Sparkline.d.ts.map +1 -0
  116. package/dist/charts/Sparkline.js +129 -0
  117. package/dist/charts/StackedArea.d.ts +15 -0
  118. package/dist/charts/StackedArea.d.ts.map +1 -0
  119. package/dist/charts/StackedArea.js +46 -0
  120. package/dist/charts/box.d.ts +38 -0
  121. package/dist/charts/box.d.ts.map +1 -0
  122. package/dist/charts/box.js +72 -0
  123. package/dist/charts/card-context.d.ts +3 -0
  124. package/dist/charts/card-context.d.ts.map +1 -0
  125. package/dist/charts/card-context.js +7 -0
  126. package/dist/charts/chart-box.module.css +64 -0
  127. package/{src/content/article-card.module.css.d.ts → dist/charts/chart-box.module.css.d.ts} +5 -9
  128. package/dist/charts/chart-card.module.css +25 -0
  129. package/dist/{dashboard/widget-grid.module.css.d.ts → charts/chart-card.module.css.d.ts} +1 -3
  130. package/dist/charts/chart-legend.module.css +38 -0
  131. package/{src/dashboard/widget-grid.module.css.d.ts → dist/charts/chart-legend.module.css.d.ts} +3 -3
  132. package/dist/charts/compile.d.ts +62 -0
  133. package/dist/charts/compile.d.ts.map +1 -0
  134. package/dist/charts/compile.js +386 -0
  135. package/dist/charts/cursor.d.ts +50 -0
  136. package/dist/charts/cursor.d.ts.map +1 -0
  137. package/dist/charts/cursor.js +157 -0
  138. package/dist/charts/curves.d.ts +12 -0
  139. package/dist/charts/curves.d.ts.map +1 -0
  140. package/dist/charts/curves.js +86 -0
  141. package/dist/charts/donut.module.css +54 -0
  142. package/dist/{content/article-card.module.css.d.ts → charts/donut.module.css.d.ts} +2 -9
  143. package/dist/charts/host.d.ts +17 -0
  144. package/dist/charts/host.d.ts.map +1 -0
  145. package/dist/charts/host.js +35 -0
  146. package/dist/charts/index.d.ts +18 -53
  147. package/dist/charts/index.d.ts.map +1 -1
  148. package/dist/charts/index.js +17 -189
  149. package/dist/charts/legend.d.ts +23 -0
  150. package/dist/charts/legend.d.ts.map +1 -0
  151. package/dist/charts/legend.js +160 -0
  152. package/dist/charts/marks.d.ts +25 -0
  153. package/dist/charts/marks.d.ts.map +1 -0
  154. package/dist/charts/marks.js +128 -0
  155. package/dist/charts/panel.d.ts +56 -0
  156. package/dist/charts/panel.d.ts.map +1 -0
  157. package/dist/charts/panel.js +123 -0
  158. package/dist/charts/scales.d.ts +44 -0
  159. package/dist/charts/scales.d.ts.map +1 -0
  160. package/dist/charts/scales.js +163 -0
  161. package/dist/charts/sizing.d.ts +12 -0
  162. package/dist/charts/sizing.d.ts.map +1 -0
  163. package/dist/charts/sizing.js +33 -0
  164. package/dist/charts/state.d.ts +17 -0
  165. package/dist/charts/state.d.ts.map +1 -0
  166. package/dist/charts/state.js +53 -0
  167. package/dist/charts/theme.d.ts +38 -19
  168. package/dist/charts/theme.d.ts.map +1 -1
  169. package/dist/charts/theme.js +48 -26
  170. package/dist/charts/types.d.ts +227 -0
  171. package/dist/charts/types.d.ts.map +1 -0
  172. package/dist/charts/types.js +4 -0
  173. package/dist/cli/audit-allows.d.ts +4 -17
  174. package/dist/cli/audit-allows.d.ts.map +1 -1
  175. package/dist/cli/config.d.ts +14 -43
  176. package/dist/cli/config.d.ts.map +1 -1
  177. package/dist/cli/doctor-upgrade.d.ts +31 -0
  178. package/dist/cli/doctor-upgrade.d.ts.map +1 -0
  179. package/dist/cli/doctor-upgrade.js +269 -0
  180. package/dist/cli/doctor.d.ts +13 -26
  181. package/dist/cli/doctor.d.ts.map +1 -1
  182. package/dist/cli/doctor.js +79 -8
  183. package/dist/cli/help.d.ts.map +1 -1
  184. package/dist/cli/help.js +2 -4
  185. package/dist/cli/index.d.ts +68 -135
  186. package/dist/cli/index.d.ts.map +1 -1
  187. package/dist/cli/index.js +89 -76
  188. package/dist/cli/init.d.ts.map +1 -1
  189. package/dist/cli/init.js +43 -27
  190. package/dist/cli/sync.d.ts +5 -21
  191. package/dist/cli/sync.d.ts.map +1 -1
  192. package/dist/cli/sync.js +4 -6
  193. package/dist/cli/tokens-css.d.ts +7 -28
  194. package/dist/cli/tokens-css.d.ts.map +1 -1
  195. package/dist/commands/ShortcutsHelp.d.ts.map +1 -1
  196. package/dist/commands/ShortcutsHelp.js +4 -5
  197. package/dist/commands/define-commands.d.ts +15 -31
  198. package/dist/commands/define-commands.d.ts.map +1 -1
  199. package/dist/commands/define-commands.js +1 -11
  200. package/dist/commands/define-overlays.d.ts +5 -19
  201. package/dist/commands/define-overlays.d.ts.map +1 -1
  202. package/dist/commands/define-overlays.js +3 -11
  203. package/dist/commands/index.d.ts +10 -40
  204. package/dist/commands/index.d.ts.map +1 -1
  205. package/dist/commands/index.js +9 -46
  206. package/dist/{notifications → commands/notifications}/bell.d.ts +1 -1
  207. package/dist/commands/notifications/bell.d.ts.map +1 -0
  208. package/dist/{notifications → commands/notifications}/center.d.ts +2 -2
  209. package/dist/commands/notifications/center.d.ts.map +1 -0
  210. package/dist/{notifications → commands/notifications}/center.js +2 -2
  211. package/dist/{notifications → commands/notifications}/define-notifications.d.ts +3 -3
  212. package/dist/commands/notifications/define-notifications.d.ts.map +1 -0
  213. package/dist/commands/notifications/notify.d.ts +44 -0
  214. package/dist/commands/notifications/notify.d.ts.map +1 -0
  215. package/dist/commands/notifications/notify.js +79 -0
  216. package/dist/{notifications → commands/notifications}/store.d.ts +2 -0
  217. package/dist/commands/notifications/store.d.ts.map +1 -0
  218. package/dist/{notifications → commands/notifications}/store.js +4 -0
  219. package/dist/commands/projectors.d.ts +1 -131
  220. package/dist/commands/projectors.d.ts.map +1 -1
  221. package/dist/commands/projectors.js +2 -73
  222. package/dist/commands/shell-bridge.d.ts +3 -3
  223. package/dist/commands/shortcut-format.d.ts +5 -4
  224. package/dist/commands/shortcut-format.d.ts.map +1 -1
  225. package/dist/common/errors.d.ts +3 -3
  226. package/dist/common/use-measured-widths.d.ts.map +1 -1
  227. package/dist/common/use-measured-widths.js +5 -3
  228. package/dist/common/validate.d.ts +2 -2
  229. package/dist/content/article-layout.d.ts.map +1 -1
  230. package/dist/content/article-layout.js +3 -3
  231. package/dist/content/article-model.d.ts +1 -46
  232. package/dist/content/article-model.d.ts.map +1 -1
  233. package/dist/content/article-model.js +1 -29
  234. package/dist/content/copy-action.d.ts +1 -1
  235. package/dist/content/glyphs.d.ts +1 -1
  236. package/dist/content/index.d.ts +11 -41
  237. package/dist/content/index.d.ts.map +1 -1
  238. package/dist/content/index.js +3 -35
  239. package/dist/content/markdown.d.ts +1 -1
  240. package/dist/content/markdown.d.ts.map +1 -1
  241. package/dist/content/markdown.js +1 -1
  242. package/dist/content/mermaid.d.ts.map +1 -1
  243. package/dist/content/mermaid.js +7 -7
  244. package/dist/content/slug.d.ts +1 -8
  245. package/dist/content/slug.d.ts.map +1 -1
  246. package/dist/content/slug.js +1 -8
  247. package/dist/content/url-hardening.d.ts +2 -2
  248. package/dist/content/url-hardening.d.ts.map +1 -1
  249. package/dist/content/url-hardening.js +2 -0
  250. package/dist/controls/actions.d.ts +16 -1
  251. package/dist/controls/actions.d.ts.map +1 -1
  252. package/dist/controls/enum-filter.d.ts +1 -1
  253. package/dist/controls/enum-filter.d.ts.map +1 -1
  254. package/dist/controls/filter-context.d.ts.map +1 -1
  255. package/dist/controls/filter-context.js +3 -1
  256. package/dist/controls/filter-set.js +4 -6
  257. package/dist/controls/form-layout.d.ts +1 -1
  258. package/dist/controls/form-layout.d.ts.map +1 -1
  259. package/dist/controls/form-layout.js +1 -1
  260. package/dist/controls/glyphs.d.ts +0 -2
  261. package/dist/controls/glyphs.d.ts.map +1 -1
  262. package/dist/controls/glyphs.js +0 -7
  263. package/dist/controls/index.d.ts +12 -17
  264. package/dist/controls/index.d.ts.map +1 -1
  265. package/dist/controls/index.js +5 -39
  266. package/dist/controls/multi-select-filter.d.ts +4 -3
  267. package/dist/controls/multi-select-filter.d.ts.map +1 -1
  268. package/dist/controls/number-filter.d.ts +4 -3
  269. package/dist/controls/number-filter.d.ts.map +1 -1
  270. package/dist/controls/number-filter.js +3 -1
  271. package/dist/controls/range-filter.d.ts +4 -3
  272. package/dist/controls/range-filter.d.ts.map +1 -1
  273. package/dist/controls/search-filter.d.ts +4 -3
  274. package/dist/controls/search-filter.d.ts.map +1 -1
  275. package/dist/controls/search-filter.js +19 -14
  276. package/dist/controls/select-filter.d.ts +4 -3
  277. package/dist/controls/select-filter.d.ts.map +1 -1
  278. package/dist/controls/sync-button.d.ts.map +1 -1
  279. package/dist/controls/sync-button.js +12 -15
  280. package/dist/controls/toggle-filter.d.ts +4 -3
  281. package/dist/controls/toggle-filter.d.ts.map +1 -1
  282. package/dist/controls/uncontrolled.d.ts +12 -0
  283. package/dist/controls/uncontrolled.d.ts.map +1 -0
  284. package/dist/controls/view-tabs.d.ts +2 -2
  285. package/dist/controls/view-tabs.d.ts.map +1 -1
  286. package/dist/controls-dates/index.d.ts +0 -1
  287. package/dist/controls-dates/index.d.ts.map +1 -1
  288. package/dist/dashboard/index.d.ts +7 -9
  289. package/dist/dashboard/index.d.ts.map +1 -1
  290. package/dist/dashboard/index.js +3 -23
  291. package/dist/dashboard/section.d.ts +4 -6
  292. package/dist/dashboard/section.d.ts.map +1 -1
  293. package/dist/dashboard/section.js +4 -10
  294. package/dist/dashboard/stat-card.d.ts +4 -4
  295. package/dist/dashboard/stat-card.d.ts.map +1 -1
  296. package/dist/dashboard/stat-card.js +3 -3
  297. package/dist/dashboard/widget-header.module.css +9 -7
  298. package/dist/dev-dock.d.ts.map +1 -1
  299. package/dist/dev-dock.js +6 -1
  300. package/dist/format/date.d.ts +0 -34
  301. package/dist/format/date.d.ts.map +1 -1
  302. package/dist/format/date.js +0 -54
  303. package/dist/format/index.d.ts +7 -22
  304. package/dist/format/index.d.ts.map +1 -1
  305. package/dist/format/index.js +2 -43
  306. package/dist/format/number.d.ts +3 -14
  307. package/dist/format/number.d.ts.map +1 -1
  308. package/dist/format/number.js +0 -13
  309. package/dist/format/shared.d.ts +2 -3
  310. package/dist/format/shared.d.ts.map +1 -1
  311. package/dist/forms/index.d.ts +0 -11
  312. package/dist/forms/index.d.ts.map +1 -1
  313. package/dist/forms/index.js +1 -14
  314. package/dist/guard/index.d.ts +6 -21
  315. package/dist/guard/index.d.ts.map +1 -1
  316. package/dist/guard/index.js +27 -115
  317. package/dist/guard/types.d.ts +7 -18
  318. package/dist/guard/types.d.ts.map +1 -1
  319. package/dist/index.d.ts +16 -48
  320. package/dist/index.d.ts.map +1 -1
  321. package/dist/index.js +21 -117
  322. package/dist/provider/create-router.d.ts +44 -0
  323. package/dist/provider/create-router.d.ts.map +1 -0
  324. package/dist/provider/create-router.js +62 -0
  325. package/dist/provider/hotkeys.d.ts +8 -0
  326. package/dist/provider/hotkeys.d.ts.map +1 -0
  327. package/dist/provider/hotkeys.js +50 -0
  328. package/dist/provider/index.d.ts +33 -110
  329. package/dist/provider/index.d.ts.map +1 -1
  330. package/dist/provider/index.js +182 -82
  331. package/dist/provider/lab-theme.d.ts.map +1 -1
  332. package/dist/provider/route-transition.d.ts +76 -0
  333. package/dist/provider/route-transition.d.ts.map +1 -0
  334. package/dist/provider/route-transition.js +98 -0
  335. package/dist/provider/spotlight-actions.d.ts +10 -0
  336. package/dist/provider/spotlight-actions.d.ts.map +1 -0
  337. package/dist/provider/spotlight-actions.js +55 -0
  338. package/dist/provider/test-router.d.ts +6 -0
  339. package/dist/provider/test-router.d.ts.map +1 -0
  340. package/dist/provider/test-router.js +18 -0
  341. package/dist/query-client.d.ts +4 -20
  342. package/dist/query-client.d.ts.map +1 -1
  343. package/dist/query-client.js +2 -2
  344. package/dist/router-tanstack/index.d.ts +18 -64
  345. package/dist/router-tanstack/index.d.ts.map +1 -1
  346. package/dist/router-tanstack/index.js +2 -16
  347. package/dist/router-tanstack/nav.d.ts +12 -1
  348. package/dist/router-tanstack/nav.d.ts.map +1 -1
  349. package/dist/router-tanstack/nav.js +8 -1
  350. package/dist/router-tanstack/search-store.d.ts +1 -1
  351. package/dist/router-tanstack/search-store.d.ts.map +1 -1
  352. package/dist/router-tanstack/use-nav.d.ts +8 -9
  353. package/dist/router-tanstack/use-nav.d.ts.map +1 -1
  354. package/dist/router-tanstack/use-nav.js +20 -1
  355. package/dist/shell/app-mobile-nav.d.ts.map +1 -1
  356. package/dist/shell/app-sidebar.js +1 -1
  357. package/dist/shell/index.d.ts +31 -10
  358. package/dist/shell/index.d.ts.map +1 -1
  359. package/dist/shell/index.js +14 -3
  360. package/dist/shell/page-aside.d.ts +2 -2
  361. package/dist/shell/page-aside.d.ts.map +1 -1
  362. package/dist/shell/page-aside.js +31 -12
  363. package/dist/shell/page-bar.d.ts +2 -2
  364. package/dist/shell/page-bar.d.ts.map +1 -1
  365. package/dist/shell/page-bar.js +1 -1
  366. package/dist/state.d.ts +10 -12
  367. package/dist/state.d.ts.map +1 -1
  368. package/dist/state.js +4 -6
  369. package/dist/styles.css +107 -7
  370. package/dist/surfaces.d.ts +28 -103
  371. package/dist/surfaces.d.ts.map +1 -1
  372. package/dist/surfaces.js +54 -143
  373. package/dist/{data → table}/data-table-state.d.ts +1 -1
  374. package/dist/table/data-table-state.d.ts.map +1 -0
  375. package/dist/{data → table}/data-table-state.js +4 -3
  376. package/dist/{data → table}/data-table.d.ts +28 -49
  377. package/dist/table/data-table.d.ts.map +1 -0
  378. package/dist/{data → table}/data-table.js +74 -60
  379. package/dist/table/index.d.ts +18 -0
  380. package/dist/table/index.d.ts.map +1 -0
  381. package/dist/{data/table.js → table/index.js} +1 -1
  382. package/dist/table/query-branch.d.ts.map +1 -0
  383. package/dist/table/table-features.d.ts +69 -0
  384. package/dist/table/table-features.d.ts.map +1 -0
  385. package/dist/table/table-features.js +49 -0
  386. package/dist/telemetry.d.ts +77 -0
  387. package/dist/telemetry.d.ts.map +1 -0
  388. package/dist/telemetry.js +33 -0
  389. package/dist/theme/index.d.ts +10 -21
  390. package/dist/theme/index.d.ts.map +1 -1
  391. package/dist/theme/index.js +3 -14
  392. package/dist/theme/theme-toggle.d.ts.map +1 -1
  393. package/dist/theme/theme-toggle.js +7 -33
  394. package/dist/theme/theme-toggle.module.css +30 -0
  395. package/dist/theme/theme-toggle.module.css.d.ts +10 -0
  396. package/dist/theme-lab/derive-controls.d.ts.map +1 -1
  397. package/dist/theme-lab/derive-controls.js +5 -3
  398. package/dist/theme-lab/derive-state.d.ts.map +1 -1
  399. package/dist/theme-lab/derive-state.js +2 -1
  400. package/dist/tokens/core.d.ts +360 -0
  401. package/dist/tokens/core.d.ts.map +1 -0
  402. package/dist/tokens/core.js +708 -0
  403. package/dist/tokens/derive.d.ts +1 -1
  404. package/dist/tokens/derive.d.ts.map +1 -1
  405. package/dist/tokens/index.d.ts +5 -373
  406. package/dist/tokens/index.d.ts.map +1 -1
  407. package/dist/tokens/index.js +8 -700
  408. package/dist/tokens/palette.d.ts +2 -6
  409. package/dist/tokens/palette.d.ts.map +1 -1
  410. package/dist/tokens/palette.js +1 -4
  411. package/dist/vite.d.ts +4 -3
  412. package/dist/vite.d.ts.map +1 -1
  413. package/llms.txt +43 -85
  414. package/package.json +77 -170
  415. package/src/agent/ai-sdk-transport.ts +57 -37
  416. package/src/{agent-chat → agent/chat}/composer.tsx +29 -30
  417. package/src/{agent-chat → agent/chat}/message-affordances.ts +8 -5
  418. package/src/{agent-chat → agent/chat}/thread-feed-row.tsx +30 -35
  419. package/src/{agent-chat → agent/chat}/thread-feed.tsx +40 -35
  420. package/src/{agent-chat → agent/chat}/thread-message.tsx +37 -35
  421. package/src/{agent-chat → agent/chat}/thread-outcome-card.tsx +5 -5
  422. package/src/{agent-chat → agent/chat}/tool-chip.tsx +12 -12
  423. package/src/{agent-chat → agent/chat}/use-keyboard-inset.ts +1 -1
  424. package/src/{agent-chat → agent/chat}/virtualize.ts +5 -5
  425. package/src/agent/error.ts +43 -0
  426. package/src/agent/foreign.ts +3 -2
  427. package/src/agent/history.ts +2 -107
  428. package/src/agent/id.ts +4 -5
  429. package/src/agent/index.ts +23 -112
  430. package/src/agent/outcome.ts +3 -56
  431. package/src/agent/part-list.tsx +3 -3
  432. package/src/agent/parts.ts +23 -22
  433. package/src/agent/run-committer.ts +64 -0
  434. package/src/agent/run-records.ts +147 -0
  435. package/src/agent/thread.ts +24 -231
  436. package/src/agent/transport.ts +6 -96
  437. package/src/agent/use-agent-thread-runs.ts +364 -199
  438. package/src/charts/BandStrip.tsx +276 -0
  439. package/src/charts/Bars.tsx +141 -0
  440. package/src/charts/CartesianChart.tsx +206 -0
  441. package/src/charts/ChartCard.tsx +178 -0
  442. package/src/charts/Donut.tsx +256 -0
  443. package/src/charts/DualPanel.tsx +326 -0
  444. package/src/charts/Heatmap.tsx +282 -0
  445. package/src/charts/Lines.tsx +151 -0
  446. package/src/charts/MirroredBars.tsx +303 -0
  447. package/src/charts/Sparkline.tsx +176 -0
  448. package/src/charts/StackedArea.tsx +80 -0
  449. package/src/charts/box.tsx +96 -0
  450. package/src/charts/card-context.ts +11 -0
  451. package/src/charts/chart-box.module.css +64 -0
  452. package/src/charts/chart-box.module.css.d.ts +12 -0
  453. package/src/charts/chart-card.module.css +25 -0
  454. package/src/charts/chart-card.module.css.d.ts +8 -0
  455. package/src/charts/chart-legend.module.css +38 -0
  456. package/src/charts/chart-legend.module.css.d.ts +10 -0
  457. package/src/charts/compile.ts +585 -0
  458. package/src/charts/cursor.ts +282 -0
  459. package/src/charts/curves.ts +111 -0
  460. package/src/charts/donut.module.css +54 -0
  461. package/src/charts/donut.module.css.d.ts +9 -0
  462. package/src/charts/host.tsx +60 -0
  463. package/src/charts/index.ts +41 -178
  464. package/src/charts/legend.tsx +204 -0
  465. package/src/charts/marks.ts +201 -0
  466. package/src/charts/panel.tsx +227 -0
  467. package/src/charts/scales.ts +237 -0
  468. package/src/charts/sizing.ts +47 -0
  469. package/src/charts/state.tsx +80 -0
  470. package/src/charts/theme.ts +65 -0
  471. package/src/charts/types.ts +242 -0
  472. package/src/cli/audit-allows.ts +8 -30
  473. package/src/cli/config.ts +14 -43
  474. package/src/cli/doctor-upgrade.ts +392 -0
  475. package/src/cli/doctor.ts +120 -68
  476. package/src/cli/help.ts +2 -4
  477. package/src/cli/index.ts +161 -276
  478. package/src/cli/init.ts +60 -37
  479. package/src/cli/sync.ts +13 -45
  480. package/src/cli/tokens-css.ts +7 -28
  481. package/src/commands/ShortcutsHelp.tsx +8 -9
  482. package/src/commands/define-commands.ts +16 -43
  483. package/src/commands/define-overlays.ts +12 -36
  484. package/src/commands/index.ts +11 -94
  485. package/src/{notifications → commands/notifications}/bell.tsx +2 -2
  486. package/src/{notifications → commands/notifications}/center.tsx +7 -5
  487. package/src/{notifications → commands/notifications}/define-notifications.ts +3 -3
  488. package/src/commands/notifications/notify.tsx +158 -0
  489. package/src/{notifications → commands/notifications}/store.ts +10 -2
  490. package/src/commands/projectors.ts +5 -225
  491. package/src/commands/shell-bridge.ts +5 -5
  492. package/src/commands/shortcut-format.ts +5 -4
  493. package/src/common/errors.ts +3 -3
  494. package/src/common/use-measured-widths.ts +6 -3
  495. package/src/common/validate.ts +2 -2
  496. package/src/content/article-layout.tsx +37 -38
  497. package/src/content/article-model.ts +1 -84
  498. package/src/content/copy-action.tsx +1 -1
  499. package/src/content/glyphs.tsx +1 -1
  500. package/src/content/index.ts +12 -83
  501. package/src/content/markdown.tsx +4 -3
  502. package/src/content/mermaid.tsx +9 -7
  503. package/src/content/slug.ts +1 -16
  504. package/src/content/url-hardening.ts +8 -2
  505. package/src/controls/actions.tsx +24 -1
  506. package/src/controls/enum-filter.tsx +1 -1
  507. package/src/controls/filter-context.tsx +3 -1
  508. package/src/controls/filter-set.tsx +5 -7
  509. package/src/controls/form-layout.tsx +2 -2
  510. package/src/controls/glyphs.tsx +0 -10
  511. package/src/controls/index.ts +13 -64
  512. package/src/controls/multi-select-filter.tsx +5 -4
  513. package/src/controls/number-filter.tsx +8 -4
  514. package/src/controls/range-filter.tsx +5 -4
  515. package/src/controls/search-filter.tsx +25 -19
  516. package/src/controls/select-filter.tsx +5 -4
  517. package/src/controls/sync-button.tsx +18 -20
  518. package/src/controls/toggle-filter.tsx +5 -4
  519. package/src/controls/uncontrolled.ts +12 -0
  520. package/src/controls/view-tabs.tsx +3 -3
  521. package/src/controls-dates/date-range-picker.tsx +1 -1
  522. package/src/controls-dates/index.ts +0 -1
  523. package/src/dashboard/index.ts +7 -48
  524. package/src/dashboard/section.tsx +11 -40
  525. package/src/dashboard/stat-card.tsx +14 -16
  526. package/src/dashboard/widget-header.module.css +9 -7
  527. package/src/dev-dock.tsx +14 -27
  528. package/src/format/date.ts +2 -92
  529. package/src/format/index.ts +7 -53
  530. package/src/format/number.ts +3 -26
  531. package/src/format/shared.ts +2 -3
  532. package/src/forms/index.ts +0 -23
  533. package/src/guard/index.ts +37 -192
  534. package/src/guard/types.ts +6 -19
  535. package/src/index.ts +30 -282
  536. package/src/provider/create-router.tsx +138 -0
  537. package/src/provider/hotkeys.ts +70 -0
  538. package/src/provider/index.tsx +260 -230
  539. package/src/provider/lab-theme.ts +3 -2
  540. package/src/provider/route-transition.ts +199 -0
  541. package/src/provider/spotlight-actions.tsx +69 -0
  542. package/src/provider/test-router.tsx +25 -0
  543. package/src/query-client.ts +4 -22
  544. package/src/router-tanstack/index.ts +18 -112
  545. package/src/router-tanstack/nav.ts +28 -2
  546. package/src/router-tanstack/search-store.ts +9 -2
  547. package/src/router-tanstack/use-nav.ts +47 -13
  548. package/src/shell/app-mobile-nav.tsx +3 -2
  549. package/src/shell/app-sidebar.tsx +1 -1
  550. package/src/shell/aside-docking.ts +1 -1
  551. package/src/shell/index.tsx +61 -20
  552. package/src/shell/page-aside.tsx +47 -23
  553. package/src/shell/page-bar.tsx +3 -3
  554. package/src/shell/page-title.tsx +1 -1
  555. package/src/state.ts +11 -37
  556. package/src/styles.css +107 -7
  557. package/src/surfaces.ts +56 -151
  558. package/src/{data → table}/data-table-state.ts +5 -4
  559. package/src/{data → table}/data-table.tsx +170 -161
  560. package/src/table/index.ts +18 -0
  561. package/src/table/table-features.ts +102 -0
  562. package/src/telemetry.ts +110 -0
  563. package/src/theme/index.ts +22 -47
  564. package/src/theme/theme-toggle.module.css +30 -0
  565. package/src/theme/theme-toggle.module.css.d.ts +10 -0
  566. package/src/theme/theme-toggle.tsx +15 -43
  567. package/src/theme-lab/derive-controls.tsx +5 -3
  568. package/src/theme-lab/derive-state.ts +2 -1
  569. package/src/tokens/core.ts +1163 -0
  570. package/src/tokens/derive.ts +1 -1
  571. package/src/tokens/index.ts +14 -1181
  572. package/src/tokens/palette.ts +3 -7
  573. package/src/vite.ts +3 -3
  574. package/agent/templates/CLAUDE-block.md.tpl +0 -40
  575. package/agent/templates/query-client.ts.tpl +0 -26
  576. package/dist/agent/adapter.d.ts +0 -150
  577. package/dist/agent/adapter.d.ts.map +0 -1
  578. package/dist/agent/adapter.js +0 -482
  579. package/dist/agent/use-agent-stream.d.ts +0 -35
  580. package/dist/agent/use-agent-stream.d.ts.map +0 -1
  581. package/dist/agent/use-agent-stream.js +0 -59
  582. package/dist/agent-chat/composer.d.ts.map +0 -1
  583. package/dist/agent-chat/index.d.ts +0 -31
  584. package/dist/agent-chat/index.d.ts.map +0 -1
  585. package/dist/agent-chat/index.js +0 -19
  586. package/dist/agent-chat/message-affordances.d.ts.map +0 -1
  587. package/dist/agent-chat/relative-time.d.ts.map +0 -1
  588. package/dist/agent-chat/thread-detail-panel.d.ts +0 -28
  589. package/dist/agent-chat/thread-detail-panel.d.ts.map +0 -1
  590. package/dist/agent-chat/thread-detail-panel.js +0 -115
  591. package/dist/agent-chat/thread-feed-row.d.ts.map +0 -1
  592. package/dist/agent-chat/thread-feed.d.ts.map +0 -1
  593. package/dist/agent-chat/thread-message.d.ts.map +0 -1
  594. package/dist/agent-chat/thread-outcome-card.d.ts.map +0 -1
  595. package/dist/agent-chat/thread-workspace.d.ts +0 -44
  596. package/dist/agent-chat/thread-workspace.d.ts.map +0 -1
  597. package/dist/agent-chat/thread-workspace.js +0 -153
  598. package/dist/agent-chat/tool-chip.d.ts.map +0 -1
  599. package/dist/agent-chat/use-keyboard-inset.d.ts.map +0 -1
  600. package/dist/agent-chat/virtualize.d.ts.map +0 -1
  601. package/dist/charts/cursor/resolve.d.ts +0 -75
  602. package/dist/charts/cursor/resolve.d.ts.map +0 -1
  603. package/dist/charts/cursor/resolve.js +0 -91
  604. package/dist/charts/cursor/scope.d.ts +0 -20
  605. package/dist/charts/cursor/scope.d.ts.map +0 -1
  606. package/dist/charts/cursor/scope.js +0 -20
  607. package/dist/charts/cursor/store.d.ts +0 -35
  608. package/dist/charts/cursor/store.d.ts.map +0 -1
  609. package/dist/charts/cursor/store.js +0 -25
  610. package/dist/charts/cursor/touch-pin.d.ts +0 -45
  611. package/dist/charts/cursor/touch-pin.d.ts.map +0 -1
  612. package/dist/charts/cursor/touch-pin.js +0 -79
  613. package/dist/charts/hooks/use-discrete-cursor.d.ts +0 -66
  614. package/dist/charts/hooks/use-discrete-cursor.d.ts.map +0 -1
  615. package/dist/charts/hooks/use-discrete-cursor.js +0 -198
  616. package/dist/charts/hooks/use-hysteresis.d.ts +0 -18
  617. package/dist/charts/hooks/use-hysteresis.d.ts.map +0 -1
  618. package/dist/charts/hooks/use-hysteresis.js +0 -12
  619. package/dist/charts/hooks/useBandPlot.d.ts +0 -145
  620. package/dist/charts/hooks/useBandPlot.d.ts.map +0 -1
  621. package/dist/charts/hooks/useBandPlot.js +0 -178
  622. package/dist/charts/hooks/useChartCursor.d.ts +0 -75
  623. package/dist/charts/hooks/useChartCursor.d.ts.map +0 -1
  624. package/dist/charts/hooks/useChartCursor.js +0 -200
  625. package/dist/charts/hooks/useChartSize.d.ts +0 -29
  626. package/dist/charts/hooks/useChartSize.d.ts.map +0 -1
  627. package/dist/charts/hooks/useChartSize.js +0 -8
  628. package/dist/charts/kinds/BandStrip.d.ts +0 -132
  629. package/dist/charts/kinds/BandStrip.d.ts.map +0 -1
  630. package/dist/charts/kinds/BandStrip.js +0 -241
  631. package/dist/charts/kinds/Bars.d.ts +0 -141
  632. package/dist/charts/kinds/Bars.d.ts.map +0 -1
  633. package/dist/charts/kinds/Bars.js +0 -343
  634. package/dist/charts/kinds/Donut.d.ts +0 -77
  635. package/dist/charts/kinds/Donut.d.ts.map +0 -1
  636. package/dist/charts/kinds/Donut.js +0 -245
  637. package/dist/charts/kinds/DualPanel.d.ts +0 -111
  638. package/dist/charts/kinds/DualPanel.d.ts.map +0 -1
  639. package/dist/charts/kinds/DualPanel.js +0 -471
  640. package/dist/charts/kinds/Heatmap.d.ts +0 -85
  641. package/dist/charts/kinds/Heatmap.d.ts.map +0 -1
  642. package/dist/charts/kinds/Heatmap.js +0 -243
  643. package/dist/charts/kinds/MirroredBars.d.ts +0 -98
  644. package/dist/charts/kinds/MirroredBars.d.ts.map +0 -1
  645. package/dist/charts/kinds/MirroredBars.js +0 -292
  646. package/dist/charts/kinds/MultiLine.d.ts +0 -87
  647. package/dist/charts/kinds/MultiLine.d.ts.map +0 -1
  648. package/dist/charts/kinds/MultiLine.js +0 -176
  649. package/dist/charts/kinds/StackedArea.d.ts +0 -73
  650. package/dist/charts/kinds/StackedArea.d.ts.map +0 -1
  651. package/dist/charts/kinds/StackedArea.js +0 -135
  652. package/dist/charts/kinds/ZonedLine.d.ts +0 -97
  653. package/dist/charts/kinds/ZonedLine.d.ts.map +0 -1
  654. package/dist/charts/kinds/ZonedLine.js +0 -155
  655. package/dist/charts/kinds/band-chrome.d.ts +0 -31
  656. package/dist/charts/kinds/band-chrome.d.ts.map +0 -1
  657. package/dist/charts/kinds/band-chrome.js +0 -71
  658. package/dist/charts/kinds/donut-layout.d.ts +0 -47
  659. package/dist/charts/kinds/donut-layout.d.ts.map +0 -1
  660. package/dist/charts/kinds/donut-layout.js +0 -52
  661. package/dist/charts/layout/auto-margin.d.ts +0 -122
  662. package/dist/charts/layout/auto-margin.d.ts.map +0 -1
  663. package/dist/charts/layout/auto-margin.js +0 -81
  664. package/dist/charts/layout/end-labels.d.ts +0 -64
  665. package/dist/charts/layout/end-labels.d.ts.map +0 -1
  666. package/dist/charts/layout/end-labels.js +0 -76
  667. package/dist/charts/layout/log-ticks.d.ts +0 -27
  668. package/dist/charts/layout/log-ticks.d.ts.map +0 -1
  669. package/dist/charts/layout/log-ticks.js +0 -42
  670. package/dist/charts/primitives/AreaGradient.d.ts +0 -18
  671. package/dist/charts/primitives/AreaGradient.d.ts.map +0 -1
  672. package/dist/charts/primitives/AreaGradient.js +0 -13
  673. package/dist/charts/primitives/Axes.d.ts +0 -83
  674. package/dist/charts/primitives/Axes.d.ts.map +0 -1
  675. package/dist/charts/primitives/Axes.js +0 -168
  676. package/dist/charts/primitives/CartesianChart.d.ts +0 -257
  677. package/dist/charts/primitives/CartesianChart.d.ts.map +0 -1
  678. package/dist/charts/primitives/CartesianChart.js +0 -549
  679. package/dist/charts/primitives/ChartCard.d.ts +0 -66
  680. package/dist/charts/primitives/ChartCard.d.ts.map +0 -1
  681. package/dist/charts/primitives/ChartCard.js +0 -143
  682. package/dist/charts/primitives/ChartFrame.d.ts +0 -156
  683. package/dist/charts/primitives/ChartFrame.d.ts.map +0 -1
  684. package/dist/charts/primitives/ChartFrame.js +0 -241
  685. package/dist/charts/primitives/ChartLegend.d.ts +0 -67
  686. package/dist/charts/primitives/ChartLegend.d.ts.map +0 -1
  687. package/dist/charts/primitives/ChartLegend.js +0 -292
  688. package/dist/charts/primitives/ChartPending.d.ts +0 -113
  689. package/dist/charts/primitives/ChartPending.d.ts.map +0 -1
  690. package/dist/charts/primitives/ChartPending.js +0 -117
  691. package/dist/charts/primitives/ChartTooltip.d.ts +0 -59
  692. package/dist/charts/primitives/ChartTooltip.d.ts.map +0 -1
  693. package/dist/charts/primitives/ChartTooltip.js +0 -197
  694. package/dist/charts/primitives/Crosshair.d.ts +0 -26
  695. package/dist/charts/primitives/Crosshair.d.ts.map +0 -1
  696. package/dist/charts/primitives/Crosshair.js +0 -23
  697. package/dist/charts/primitives/HatchPattern.d.ts +0 -31
  698. package/dist/charts/primitives/HatchPattern.d.ts.map +0 -1
  699. package/dist/charts/primitives/HatchPattern.js +0 -31
  700. package/dist/charts/primitives/HoverOverlay.d.ts +0 -45
  701. package/dist/charts/primitives/HoverOverlay.d.ts.map +0 -1
  702. package/dist/charts/primitives/HoverOverlay.js +0 -72
  703. package/dist/charts/primitives/HoverOverlay.module.css +0 -13
  704. package/dist/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  705. package/dist/charts/primitives/XZoneRects.d.ts +0 -54
  706. package/dist/charts/primitives/XZoneRects.d.ts.map +0 -1
  707. package/dist/charts/primitives/XZoneRects.js +0 -65
  708. package/dist/charts/primitives/ZoneRects.d.ts +0 -38
  709. package/dist/charts/primitives/ZoneRects.d.ts.map +0 -1
  710. package/dist/charts/primitives/ZoneRects.js +0 -30
  711. package/dist/charts/primitives/chart-card-context.d.ts +0 -33
  712. package/dist/charts/primitives/chart-card-context.d.ts.map +0 -1
  713. package/dist/charts/primitives/chart-card-context.js +0 -18
  714. package/dist/charts/primitives/chart-frame-layout.d.ts +0 -185
  715. package/dist/charts/primitives/chart-frame-layout.d.ts.map +0 -1
  716. package/dist/charts/primitives/chart-frame-layout.js +0 -175
  717. package/dist/charts/primitives/chart-layout.d.ts +0 -112
  718. package/dist/charts/primitives/chart-layout.d.ts.map +0 -1
  719. package/dist/charts/primitives/chart-layout.js +0 -175
  720. package/dist/charts/primitives/chart-tier.d.ts +0 -16
  721. package/dist/charts/primitives/chart-tier.d.ts.map +0 -1
  722. package/dist/charts/primitives/chart-tier.js +0 -44
  723. package/dist/charts/primitives/legend-disclosure.d.ts +0 -27
  724. package/dist/charts/primitives/legend-disclosure.d.ts.map +0 -1
  725. package/dist/charts/primitives/legend-disclosure.js +0 -153
  726. package/dist/charts/series.d.ts +0 -189
  727. package/dist/charts/series.d.ts.map +0 -1
  728. package/dist/charts/series.js +0 -84
  729. package/dist/charts/sparklines/BarSparkline.d.ts +0 -37
  730. package/dist/charts/sparklines/BarSparkline.d.ts.map +0 -1
  731. package/dist/charts/sparklines/BarSparkline.js +0 -53
  732. package/dist/charts/sparklines/LineSparkline.d.ts +0 -15
  733. package/dist/charts/sparklines/LineSparkline.d.ts.map +0 -1
  734. package/dist/charts/sparklines/LineSparkline.js +0 -51
  735. package/dist/charts/sparklines/index.d.ts +0 -3
  736. package/dist/charts/sparklines/index.d.ts.map +0 -1
  737. package/dist/charts/sparklines/index.js +0 -6
  738. package/dist/charts/utils/domain.d.ts +0 -35
  739. package/dist/charts/utils/domain.d.ts.map +0 -1
  740. package/dist/charts/utils/domain.js +0 -12
  741. package/dist/charts/utils/format.d.ts +0 -8
  742. package/dist/charts/utils/format.d.ts.map +0 -1
  743. package/dist/charts/utils/format.js +0 -20
  744. package/dist/charts/utils/measure-text.d.ts +0 -25
  745. package/dist/charts/utils/measure-text.d.ts.map +0 -1
  746. package/dist/charts/utils/measure-text.js +0 -64
  747. package/dist/charts/utils/ticks.d.ts +0 -103
  748. package/dist/charts/utils/ticks.d.ts.map +0 -1
  749. package/dist/charts/utils/ticks.js +0 -92
  750. package/dist/commands/overlays-mount.d.ts +0 -122
  751. package/dist/commands/overlays-mount.d.ts.map +0 -1
  752. package/dist/commands/overlays-mount.js +0 -125
  753. package/dist/commands/useCommandHotkeys.d.ts +0 -14
  754. package/dist/commands/useCommandHotkeys.d.ts.map +0 -1
  755. package/dist/commands/useCommandHotkeys.js +0 -45
  756. package/dist/content/article-actions.d.ts +0 -39
  757. package/dist/content/article-actions.d.ts.map +0 -1
  758. package/dist/content/article-actions.js +0 -28
  759. package/dist/content/article-card.d.ts +0 -58
  760. package/dist/content/article-card.d.ts.map +0 -1
  761. package/dist/content/article-card.js +0 -79
  762. package/dist/content/article-card.module.css +0 -111
  763. package/dist/content/mdx.d.ts +0 -20
  764. package/dist/content/mdx.d.ts.map +0 -1
  765. package/dist/content/mdx.js +0 -64
  766. package/dist/controls/compare-filter.d.ts +0 -42
  767. package/dist/controls/compare-filter.d.ts.map +0 -1
  768. package/dist/controls/compare-filter.js +0 -38
  769. package/dist/controls/slider-control.d.ts +0 -36
  770. package/dist/controls/slider-control.d.ts.map +0 -1
  771. package/dist/controls/slider-control.js +0 -64
  772. package/dist/dashboard/widget-grid.d.ts +0 -27
  773. package/dist/dashboard/widget-grid.d.ts.map +0 -1
  774. package/dist/dashboard/widget-grid.js +0 -40
  775. package/dist/dashboard/widget-grid.module.css +0 -69
  776. package/dist/data/data-table-state.d.ts.map +0 -1
  777. package/dist/data/data-table.d.ts.map +0 -1
  778. package/dist/data/query-branch.d.ts.map +0 -1
  779. package/dist/data/table.d.ts +0 -24
  780. package/dist/data/table.d.ts.map +0 -1
  781. package/dist/data/virtual-list.d.ts +0 -133
  782. package/dist/data/virtual-list.d.ts.map +0 -1
  783. package/dist/data/virtual-list.js +0 -157
  784. package/dist/data/virtual.d.ts +0 -21
  785. package/dist/data/virtual.d.ts.map +0 -1
  786. package/dist/data/virtual.js +0 -4
  787. package/dist/forms/FormErrorSummary.d.ts +0 -30
  788. package/dist/forms/FormErrorSummary.d.ts.map +0 -1
  789. package/dist/forms/FormErrorSummary.js +0 -30
  790. package/dist/forms/use-field-array.d.ts +0 -60
  791. package/dist/forms/use-field-array.d.ts.map +0 -1
  792. package/dist/forms/use-field-array.js +0 -20
  793. package/dist/forms/use-form-draft.d.ts +0 -76
  794. package/dist/forms/use-form-draft.d.ts.map +0 -1
  795. package/dist/forms/use-form-draft.js +0 -92
  796. package/dist/forms/use-form-submit.d.ts +0 -88
  797. package/dist/forms/use-form-submit.d.ts.map +0 -1
  798. package/dist/forms/use-form-submit.js +0 -63
  799. package/dist/notifications/bell.d.ts.map +0 -1
  800. package/dist/notifications/center.d.ts.map +0 -1
  801. package/dist/notifications/define-notifications.d.ts.map +0 -1
  802. package/dist/notifications/index.d.ts +0 -40
  803. package/dist/notifications/index.d.ts.map +0 -1
  804. package/dist/notifications/index.js +0 -54
  805. package/dist/notifications/mount-guard.d.ts +0 -8
  806. package/dist/notifications/mount-guard.d.ts.map +0 -1
  807. package/dist/notifications/mount-guard.js +0 -18
  808. package/dist/notifications/notify.d.ts +0 -149
  809. package/dist/notifications/notify.d.ts.map +0 -1
  810. package/dist/notifications/notify.js +0 -171
  811. package/dist/notifications/store.d.ts.map +0 -1
  812. package/dist/provider/connectivity-indicator.d.ts +0 -13
  813. package/dist/provider/connectivity-indicator.d.ts.map +0 -1
  814. package/dist/provider/connectivity-indicator.js +0 -205
  815. package/dist/provider/connectivity-provider.d.ts +0 -7
  816. package/dist/provider/connectivity-provider.d.ts.map +0 -1
  817. package/dist/provider/connectivity-provider.js +0 -128
  818. package/dist/provider/connectivity-types.d.ts +0 -36
  819. package/dist/provider/connectivity-types.d.ts.map +0 -1
  820. package/dist/provider/use-connectivity.d.ts +0 -3
  821. package/dist/provider/use-connectivity.d.ts.map +0 -1
  822. package/dist/provider/use-connectivity.js +0 -14
  823. package/dist/query-devtools.d.ts +0 -21
  824. package/dist/query-devtools.d.ts.map +0 -1
  825. package/dist/query-devtools.js +0 -13
  826. package/src/agent/adapter.ts +0 -945
  827. package/src/agent/use-agent-stream.ts +0 -154
  828. package/src/agent-chat/index.ts +0 -54
  829. package/src/agent-chat/thread-detail-panel.tsx +0 -201
  830. package/src/agent-chat/thread-workspace.tsx +0 -279
  831. package/src/charts/cursor/resolve.ts +0 -198
  832. package/src/charts/cursor/scope.tsx +0 -35
  833. package/src/charts/cursor/store.ts +0 -58
  834. package/src/charts/cursor/touch-pin.ts +0 -138
  835. package/src/charts/hooks/use-discrete-cursor.ts +0 -335
  836. package/src/charts/hooks/use-hysteresis.ts +0 -26
  837. package/src/charts/hooks/useBandPlot.ts +0 -383
  838. package/src/charts/hooks/useChartCursor.ts +0 -367
  839. package/src/charts/hooks/useChartSize.ts +0 -35
  840. package/src/charts/kinds/BandStrip.tsx +0 -449
  841. package/src/charts/kinds/Bars.tsx +0 -589
  842. package/src/charts/kinds/Donut.tsx +0 -368
  843. package/src/charts/kinds/DualPanel.tsx +0 -712
  844. package/src/charts/kinds/Heatmap.tsx +0 -396
  845. package/src/charts/kinds/MirroredBars.tsx +0 -469
  846. package/src/charts/kinds/MultiLine.tsx +0 -322
  847. package/src/charts/kinds/StackedArea.tsx +0 -267
  848. package/src/charts/kinds/ZonedLine.tsx +0 -301
  849. package/src/charts/kinds/band-chrome.tsx +0 -91
  850. package/src/charts/kinds/donut-layout.ts +0 -82
  851. package/src/charts/layout/auto-margin.ts +0 -242
  852. package/src/charts/layout/end-labels.ts +0 -135
  853. package/src/charts/layout/log-ticks.ts +0 -90
  854. package/src/charts/primitives/AreaGradient.tsx +0 -26
  855. package/src/charts/primitives/Axes.tsx +0 -271
  856. package/src/charts/primitives/CartesianChart.tsx +0 -1002
  857. package/src/charts/primitives/ChartCard.tsx +0 -280
  858. package/src/charts/primitives/ChartFrame.tsx +0 -493
  859. package/src/charts/primitives/ChartLegend.tsx +0 -422
  860. package/src/charts/primitives/ChartPending.tsx +0 -243
  861. package/src/charts/primitives/ChartTooltip.tsx +0 -265
  862. package/src/charts/primitives/Crosshair.tsx +0 -43
  863. package/src/charts/primitives/HatchPattern.tsx +0 -55
  864. package/src/charts/primitives/HoverOverlay.module.css +0 -13
  865. package/src/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  866. package/src/charts/primitives/HoverOverlay.tsx +0 -109
  867. package/src/charts/primitives/XZoneRects.tsx +0 -132
  868. package/src/charts/primitives/ZoneRects.tsx +0 -67
  869. package/src/charts/primitives/chart-card-context.ts +0 -46
  870. package/src/charts/primitives/chart-frame-layout.ts +0 -430
  871. package/src/charts/primitives/chart-layout.ts +0 -318
  872. package/src/charts/primitives/chart-tier.tsx +0 -76
  873. package/src/charts/primitives/legend-disclosure.tsx +0 -178
  874. package/src/charts/series.ts +0 -276
  875. package/src/charts/sparklines/BarSparkline.tsx +0 -94
  876. package/src/charts/sparklines/LineSparkline.tsx +0 -71
  877. package/src/charts/sparklines/index.ts +0 -2
  878. package/src/charts/theme.tsx +0 -53
  879. package/src/charts/utils/domain.ts +0 -41
  880. package/src/charts/utils/format.ts +0 -19
  881. package/src/charts/utils/measure-text.ts +0 -109
  882. package/src/charts/utils/ticks.ts +0 -239
  883. package/src/commands/overlays-mount.tsx +0 -333
  884. package/src/commands/useCommandHotkeys.ts +0 -114
  885. package/src/content/article-actions.ts +0 -72
  886. package/src/content/article-card.module.css +0 -111
  887. package/src/content/article-card.tsx +0 -174
  888. package/src/content/mdx.tsx +0 -127
  889. package/src/controls/compare-filter.tsx +0 -81
  890. package/src/controls/slider-control.tsx +0 -159
  891. package/src/dashboard/widget-grid.module.css +0 -69
  892. package/src/dashboard/widget-grid.tsx +0 -146
  893. package/src/data/table.ts +0 -39
  894. package/src/data/virtual-list.tsx +0 -356
  895. package/src/data/virtual.ts +0 -26
  896. package/src/forms/FormErrorSummary.tsx +0 -71
  897. package/src/forms/use-field-array.ts +0 -94
  898. package/src/forms/use-form-draft.ts +0 -262
  899. package/src/forms/use-form-submit.ts +0 -199
  900. package/src/notifications/index.ts +0 -88
  901. package/src/notifications/mount-guard.ts +0 -38
  902. package/src/notifications/notify.tsx +0 -379
  903. package/src/provider/connectivity-indicator.tsx +0 -267
  904. package/src/provider/connectivity-provider.tsx +0 -189
  905. package/src/provider/connectivity-types.ts +0 -42
  906. package/src/provider/use-connectivity.ts +0 -26
  907. package/src/query-devtools.tsx +0 -40
  908. /package/dist/{agent-chat → agent/chat}/message-affordances.js +0 -0
  909. /package/dist/{agent-chat → agent/chat}/relative-time.d.ts +0 -0
  910. /package/dist/{agent-chat → agent/chat}/relative-time.js +0 -0
  911. /package/dist/{agent-chat → agent/chat}/use-keyboard-inset.d.ts +0 -0
  912. /package/dist/{agent-chat → agent/chat}/virtualize.js +0 -0
  913. /package/dist/{notifications → commands/notifications}/bell.js +0 -0
  914. /package/dist/{notifications → commands/notifications}/define-notifications.js +0 -0
  915. /package/dist/{provider/connectivity-types.js → controls/uncontrolled.js} +0 -0
  916. /package/dist/{data → table}/data-table.module.css +0 -0
  917. /package/dist/{data → table}/data-table.module.css.d.ts +0 -0
  918. /package/dist/{data → table}/query-branch.d.ts +0 -0
  919. /package/dist/{data → table}/query-branch.js +0 -0
  920. /package/src/{agent-chat → agent/chat}/relative-time.ts +0 -0
  921. /package/src/{data → table}/data-table.module.css +0 -0
  922. /package/src/{data → table}/data-table.module.css.d.ts +0 -0
  923. /package/src/{data → table}/query-branch.ts +0 -0
@@ -1,14 +1,14 @@
1
1
  import type { CSSVariablesResolver, MantineThemeOverride } from '@mantine/core';
2
2
  import type { RadiusValues, SpaceValues } from '../tokens/palette.js';
3
3
  import type { DeriveConfig } from '../tokens/derive.js';
4
- import type { BasaltFontsConfig } from '../tokens/index.js';
4
+ import type { BasaltFontsConfig } from '../tokens/core.js';
5
5
  /**
6
- * The `fonts` option's resolved shape — defined in `basalt-ui/tokens` (`BasaltFontsConfig`,
7
- * paired with its pure builder `buildFontsCss` there); re-exported here since
6
+ * The `fonts` option's resolved shape — defined in `../tokens/core` (`BasaltFontsConfig`, paired
7
+ * with its pure builder `buildFontsCss` there, internal to the package); re-exported here since
8
8
  * `CreateBasaltThemeOptions.fonts` below is its primary production entry point. See
9
9
  * {@link CreateBasaltThemeOptions.fonts}.
10
10
  */
11
- export type { BasaltFontsConfig } from '../tokens/index.js';
11
+ export type { BasaltFontsConfig } from '../tokens/core.js';
12
12
  export { useBasaltSpacing } from './use-basalt-spacing.js';
13
13
  export { CTL_THEME, CtlSlot, type CtlSlotProps } from './ctl-theme.js';
14
14
  declare module '@mantine/core' {
@@ -22,6 +22,10 @@ declare module '@mantine/core' {
22
22
  /** The static, shipped-identity theme — `buildTheme` evaluated once at
23
23
  * `DEFAULT_DERIVE_CONFIG` (memoized by `buildPaletteData`), not per import. */
24
24
  export declare const baseTheme: MantineThemeOverride;
25
+ /** `radius` knob: an integer level, so an out-of-range value is a tsc error (V2-SPEC §3). */
26
+ export type BasaltRadiusLevel = -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5;
27
+ /** `density` knob: an integer level, so an out-of-range value is a tsc error (V2-SPEC §3). */
28
+ export type BasaltDensityLevel = -3 | -2 | -1 | 0 | 1 | 2 | 3;
25
29
  /** The static, shipped-identity resolver — `buildCssVariablesResolver` evaluated once at
26
30
  * `DEFAULT_DERIVE_CONFIG`. Unchanged call signature (`cssVariablesResolver(theme)`), so it drops
27
31
  * straight into `<MantineProvider cssVariablesResolver={cssVariablesResolver}>` as before. */
@@ -76,7 +80,7 @@ export type CreateBasaltThemeOptions = {
76
80
  * @example
77
81
  * createBasaltTheme(undefined, { radius: 2 })
78
82
  */
79
- radius?: number;
83
+ radius?: BasaltRadiusLevel;
80
84
  /**
81
85
  * Retune spacing DENSITY from a single integer level in `[-3, 3]` (default `0` = the shipped
82
86
  * identity) — narrower than `radius`'s `[-5, 5]` on purpose (see `deriveSpacing`'s JSDoc,
@@ -98,22 +102,7 @@ export type CreateBasaltThemeOptions = {
98
102
  * @example
99
103
  * createBasaltTheme(undefined, { density: -2 })
100
104
  */
101
- density?: number;
102
- /**
103
- * Input sizing for the platform the app runs on. `'touch'` (default) keeps the shipped identity:
104
- * `md` inputs (42px) with the 16px font floor that stops iOS Safari's focus-zoom. `'desktop'` is
105
- * for an app that never runs in a mobile browser (a Tauri/Electron shell): the Input family
106
- * (`TextInput`, `NumberInput`, `PasswordInput`, `Select`, `Textarea`, `Input`) defaults to
107
- * Mantine's `sm` (36px, `--vx-text-sm` font) and the provider drops the 16px floor, so every
108
- * input Mantine ships — `MultiSelect`/`TagsInput`/pills included, they already default to `sm` —
109
- * renders at its own size. An explicit `size` prop still wins. Stashed on
110
- * `theme.other.basaltInputs` (only when non-default); `BasaltProvider` emits the floor override,
111
- * so `injectPalette={false}` also opts it out.
112
- *
113
- * @example
114
- * createBasaltTheme(undefined, { inputs: 'desktop' })
115
- */
116
- inputs?: 'touch' | 'desktop';
105
+ density?: BasaltDensityLevel;
117
106
  };
118
107
  /**
119
108
  * Build the Basalt theme, optionally merged with consumer overrides. Overrides win on conflict
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EACV,oBAAoB,EAGpB,oBAAoB,EAErB,MAAM,eAAe,CAAA;AAStB,OAAO,KAAK,EAAe,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAQlD;;;;;GAKG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAIlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAMvD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAgBnE,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAU,iBAAiB;QACzB,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,WAAW,CAAC,EAAE,iBAAiB,CAAA;QAC/B,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,aAAa,CAAC,EAAE,WAAW,CAAA;KAC5B;CACF;AAuiCD;+EAC+E;AAC/E,eAAO,MAAM,SAAS,EAAE,oBAAuD,CAAA;AAkU/E;;8FAE8F;AAC9F,eAAO,MAAM,oBAAoB,EAAE,oBACc,CAAA;AAEjD,kEAAkE;AAClE,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAE9B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAEzB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC7B,CAAA;AA0BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,EACrD,OAAO,CAAC,EAAE,wBAAwB,GACjC,oBAAoB,CAmCtB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/theme/index.ts"],"names":[],"mappings":"AAiEA,OAAO,KAAK,EACV,oBAAoB,EAGpB,oBAAoB,EAErB,MAAM,eAAe,CAAA;AAStB,OAAO,KAAK,EAAe,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAGpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAQvD;;;;;GAKG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAIvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAMvD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAenE,OAAO,QAAQ,eAAe,CAAC;IAC7B,UAAU,iBAAiB;QACzB,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,WAAW,CAAC,EAAE,iBAAiB,CAAA;QAC/B,YAAY,CAAC,EAAE,YAAY,CAAA;QAC3B,aAAa,CAAC,EAAE,WAAW,CAAA;KAC5B;CACF;AAyiCD;+EAC+E;AAC/E,eAAO,MAAM,SAAS,EAAE,oBAAuD,CAAA;AA8O/E,6FAA6F;AAC7F,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAE9E,8FAA8F;AAC9F,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAsF7D;;8FAE8F;AAC9F,eAAO,MAAM,oBAAoB,EAAE,oBACc,CAAA;AAEjD,kEAAkE;AAClE,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;IAE9B;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAA;IAEzB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAE1B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B,CAAA;AAYD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,EACrD,OAAO,CAAC,EAAE,wBAAwB,GACjC,oBAAoB,CAiCtB"}
@@ -55,7 +55,7 @@ import {
55
55
  SPACE_FIXED
56
56
  } from "../tokens/palette.js";
57
57
  import { DEFAULT_DERIVE_CONFIG, isDefaultDeriveConfig, resolveDeriveConfig } from "../tokens/derive.js";
58
- import { pxRem, VX } from "../tokens/index.js";
58
+ import { pxRem, VX } from "../tokens/core.js";
59
59
  import { SIZE_CLASS_BREAKPOINTS } from "../tokens/size-classes.js";
60
60
  import controlsClasses from "./controls.module.css";
61
61
  import floatingClasses from "./floating.module.css";
@@ -181,6 +181,8 @@ function buildTheme(data, options = {}) {
181
181
  // Mantine's dark `--mantine-color-{c}-text`, which is hardcoded to shade 4 = `ACCENT.accent.dark`.
182
182
  primaryShade: 6,
183
183
  autoContrast: true,
184
+ // V2-SPEC § 5: Mantine's own transitions (modal, drawer, popover, menu) follow the OS setting.
185
+ respectReducedMotion: true,
184
186
  luminanceThreshold: 0.45,
185
187
  // Force the `light` variant to a faint, AA-legible tint in both schemes (see resolver above).
186
188
  variantColorResolver: basaltVariantColorResolver,
@@ -1056,17 +1058,6 @@ const cssVariablesResolver = buildCssVariablesResolver(DEFAULT_PALETTE_DATA);
1056
1058
  function hasFontsConfig(fonts) {
1057
1059
  return fonts !== void 0 && Object.values(fonts).some((value) => value !== void 0);
1058
1060
  }
1059
- const DESKTOP_INPUTS_THEME = {
1060
- components: {
1061
- Input: Input.extend({ defaultProps: { size: "sm" } }),
1062
- TextInput: TextInput.extend({ defaultProps: { size: "sm" } }),
1063
- NumberInput: NumberInput.extend({ defaultProps: { size: "sm" } }),
1064
- PasswordInput: PasswordInput.extend({ defaultProps: { size: "sm" } }),
1065
- Select: Select.extend({ defaultProps: { size: "sm" } }),
1066
- Textarea: Textarea.extend({ defaultProps: { size: "sm" } })
1067
- },
1068
- other: { basaltInputs: "desktop" }
1069
- };
1070
1061
  function createBasaltTheme(overrides, options) {
1071
1062
  const resolvedConfig = resolveDeriveConfig(options?.derive);
1072
1063
  const radiusLevel = options?.radius ?? 0;
@@ -1076,7 +1067,6 @@ function createBasaltTheme(overrides, options) {
1076
1067
  const spaceValues = deriveSpacing(densityLevel);
1077
1068
  const isDefaultDensity = densityLevel === 0;
1078
1069
  const isDefaultDerive = isDefaultDeriveConfig(resolvedConfig);
1079
- const desktopInputs = options?.inputs === "desktop";
1080
1070
  let theme;
1081
1071
  if (isDefaultDerive && isDefaultRadius && isDefaultDensity) {
1082
1072
  theme = baseTheme;
@@ -1097,7 +1087,6 @@ function createBasaltTheme(overrides, options) {
1097
1087
  if (hasFontsConfig(fontsConfig)) {
1098
1088
  theme = mergeThemeOverrides(theme, { other: { basaltFonts: fontsConfig } });
1099
1089
  }
1100
- if (desktopInputs) theme = mergeThemeOverrides(theme, DESKTOP_INPUTS_THEME);
1101
1090
  if (!overrides) return theme;
1102
1091
  return { ...mergeThemeOverrides(theme, overrides), breakpoints: SIZE_CLASS_BREAKPOINTS };
1103
1092
  }
@@ -1 +1 @@
1
- {"version":3,"file":"theme-toggle.d.ts","sourceRoot":"","sources":["../../src/theme/theme-toggle.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAqFlD,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAOD,wBAAgB,WAAW,CAAC,EAC1B,SAAe,EACf,UAAgB,EAChB,SAAS,EACT,KAAK,GACN,GAAE,gBAAqB,+BA+DvB"}
1
+ {"version":3,"file":"theme-toggle.d.ts","sourceRoot":"","sources":["../../src/theme/theme-toggle.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AA8DlD,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAC3C,qFAAqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAOD,wBAAgB,WAAW,CAAC,EAC1B,SAAe,EACf,UAAgB,EAChB,SAAS,EACT,KAAK,GACN,GAAE,gBAAqB,+BA8DvB"}
@@ -1,16 +1,13 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import {
3
3
  ActionIcon,
4
- Center,
5
4
  Popover,
6
5
  SegmentedControl,
7
6
  useComputedColorScheme,
8
7
  useMantineColorScheme
9
8
  } from "@mantine/core";
10
- import { useReducedMotion } from "@mantine/hooks";
11
- import { AnimatePresence, motion } from "motion/react";
12
9
  import { useRef, useState } from "react";
13
- import { MOTION_SPRING } from "../common/motion.js";
10
+ import classes from "./theme-toggle.module.css";
14
11
  const CYCLE = ["light", "dark", "auto"];
15
12
  const LABEL = {
16
13
  light: "Light",
@@ -53,33 +50,11 @@ function MoonGlyph() {
53
50
  }
54
51
  ) });
55
52
  }
56
- function SchemeGlyph({ dark, reduceMotion }) {
57
- if (reduceMotion) {
58
- return /* @__PURE__ */ jsx(Center, { component: "span", inline: true, children: dark ? /* @__PURE__ */ jsx(MoonGlyph, {}) : /* @__PURE__ */ jsx(SunGlyph, {}) });
59
- }
60
- return /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", initial: false, children: dark ? /* @__PURE__ */ jsx(
61
- motion.span,
62
- {
63
- style: { display: "inline-flex" },
64
- initial: { opacity: 0, scale: 0.6, rotate: 30 },
65
- animate: { opacity: 1, scale: 1, rotate: 0 },
66
- exit: { opacity: 0, scale: 0.6, rotate: -30 },
67
- transition: MOTION_SPRING,
68
- children: /* @__PURE__ */ jsx(MoonGlyph, {})
69
- },
70
- "moon"
71
- ) : /* @__PURE__ */ jsx(
72
- motion.span,
73
- {
74
- style: { display: "inline-flex" },
75
- initial: { opacity: 0, scale: 0.6, rotate: -30 },
76
- animate: { opacity: 1, scale: 1, rotate: 0 },
77
- exit: { opacity: 0, scale: 0.6, rotate: 30 },
78
- transition: MOTION_SPRING,
79
- children: /* @__PURE__ */ jsx(SunGlyph, {})
80
- },
81
- "sun"
82
- ) });
53
+ function SchemeGlyph({ dark }) {
54
+ return /* @__PURE__ */ jsxs("span", { className: classes.glyph, "data-dark": dark, children: [
55
+ /* @__PURE__ */ jsx("span", { className: classes.sun, children: /* @__PURE__ */ jsx(SunGlyph, {}) }),
56
+ /* @__PURE__ */ jsx("span", { className: classes.moon, children: /* @__PURE__ */ jsx(MoonGlyph, {}) })
57
+ ] });
83
58
  }
84
59
  function nextScheme(current) {
85
60
  return CYCLE[(CYCLE.indexOf(current) + 1) % CYCLE.length];
@@ -92,7 +67,6 @@ function ThemeToggle({
92
67
  } = {}) {
93
68
  const { colorScheme, setColorScheme } = useMantineColorScheme();
94
69
  const resolved = useComputedColorScheme("dark");
95
- const reduceMotion = useReducedMotion();
96
70
  const [opened, setOpened] = useState(false);
97
71
  const timer = useRef(void 0);
98
72
  const scheduleOpen = () => {
@@ -127,7 +101,7 @@ function ThemeToggle({
127
101
  onMouseLeave: scheduleClose,
128
102
  onFocus: scheduleOpen,
129
103
  onBlur: scheduleClose,
130
- children: /* @__PURE__ */ jsx(SchemeGlyph, { dark, reduceMotion })
104
+ children: /* @__PURE__ */ jsx(SchemeGlyph, { dark })
131
105
  }
132
106
  ) }),
133
107
  /* @__PURE__ */ jsx(
@@ -0,0 +1,30 @@
1
+ /*
2
+ * The sun/moon glyph: both icons stacked in one grid cell, the inactive one faded, shrunk and
3
+ * rotated away. A CSS transition, not `motion` (V2-SPEC § 5); reduced motion swaps instantly.
4
+ */
5
+ .glyph {
6
+ display: inline-grid;
7
+ place-items: center;
8
+ }
9
+
10
+ .sun,
11
+ .moon {
12
+ grid-area: 1 / 1;
13
+ display: inline-flex;
14
+ transition:
15
+ opacity 150ms ease,
16
+ transform 250ms cubic-bezier(0.4, 0, 0.2, 1);
17
+ }
18
+
19
+ .glyph[data-dark='true'] .sun,
20
+ .glyph[data-dark='false'] .moon {
21
+ opacity: 0;
22
+ transform: scale(0.6) rotate(30deg);
23
+ }
24
+
25
+ @media (prefers-reduced-motion: reduce) {
26
+ .sun,
27
+ .moon {
28
+ transition: none;
29
+ }
30
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Typed CSS-module declaration (the S4 CSS-modules path). Named string props — not an index
3
+ * signature — so dot access stays verbatim under the package's strict flags.
4
+ */
5
+ declare const classes: {
6
+ readonly glyph: string
7
+ readonly sun: string
8
+ readonly moon: string
9
+ }
10
+ export default classes
@@ -1 +1 @@
1
- {"version":3,"file":"derive-controls.d.ts","sourceRoot":"","sources":["../../src/theme-lab/derive-controls.tsx"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAiBtC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAiDpG,MAAM,MAAM,mBAAmB,GAAG;IAChC,uFAAuF;IACvF,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,mBAAmB,+BA0FhE"}
1
+ {"version":3,"file":"derive-controls.d.ts","sourceRoot":"","sources":["../../src/theme-lab/derive-controls.tsx"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAiBtC,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAiDpG,MAAM,MAAM,mBAAmB,GAAG;IAChC,uFAAuF;IACvF,SAAS,CAAC,EAAE,SAAS,CAAA;CACtB,CAAA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,mBAAmB,+BA4FhE"}
@@ -10,7 +10,7 @@ import {
10
10
  Text
11
11
  } from "@mantine/core";
12
12
  import { useEffect, useState } from "react";
13
- import { buildDensityCss, buildPaletteCss, buildRadiusCss } from "../tokens/index.js";
13
+ import { buildDensityCss, buildPaletteCss, buildRadiusCss } from "../tokens/core.js";
14
14
  import { buildPaletteData, deriveRadius, deriveSpacing } from "../tokens/palette.js";
15
15
  import {
16
16
  DEFAULT_STATE,
@@ -56,9 +56,11 @@ if (typeof document !== "undefined") {
56
56
  function DeriveControls({ resetIcon }) {
57
57
  const [state, setState] = useDeriveControlsState();
58
58
  const [accentDraft, setAccentDraft] = useState(state.accent);
59
- useEffect(() => {
59
+ const [draftSource, setDraftSource] = useState(state.accent);
60
+ if (draftSource !== state.accent) {
61
+ setDraftSource(state.accent);
60
62
  setAccentDraft(state.accent);
61
- }, [state.accent]);
63
+ }
62
64
  const handleAccentChange = (value) => {
63
65
  setAccentDraft(value);
64
66
  if (isAccentHex(value)) setState({ ...state, accent: value });
@@ -1 +1 @@
1
- {"version":3,"file":"derive-state.d.ts","sourceRoot":"","sources":["../../src/theme-lab/derive-state.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AASpD,mGAAmG;AACnG,eAAO,MAAM,eAAe;;;GAK3B,CAAA;AAKD,uGAAuG;AACvG,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,OAA6B,CAAA;AAEzE,mGAAmG;AACnG,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,oBAK3B,CAAA;AAWD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CA2BrF;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,6EAgBjC,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhG;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,cAAc,GAAG,IAAI,CAcnF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,cAAc,GAAG,IAAI,CAGjE"}
1
+ {"version":3,"file":"derive-state.d.ts","sourceRoot":"","sources":["../../src/theme-lab/derive-state.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AASpD,mGAAmG;AACnG,eAAO,MAAM,eAAe;;;GAK3B,CAAA;AAKD,uGAAuG;AACvG,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,OAA6B,CAAA;AAEzE,mGAAmG;AACnG,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,oBAK3B,CAAA;AAWD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,oBAAoB,GAAG,IAAI,CA2BrF;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,6EAgBjC,CAAA;AAEF;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhG;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,GAAG,cAAc,GAAG,IAAI,CAcnF;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,cAAc,GAAG,IAAI,CAGjE"}
@@ -1,4 +1,5 @@
1
- import { createPersistedState, readPersistedValue } from "../state.js";
1
+ import { createPersistedState } from "../state.js";
2
+ import { readPersistedValue } from "../state/persisted.js";
2
3
  import { DEFAULT_DERIVE_CONFIG, resolveDeriveConfig } from "../tokens/derive.js";
3
4
  const STORAGE_KEY = "theme-lab-derive";
4
5
  const STORAGE_VERSION = 4;
@@ -0,0 +1,360 @@
1
+ /**
2
+ * Mantine-free token + palette layer.
3
+ *
4
+ * This module is PURE DATA + string helpers — ZERO `@mantine/*` imports (lint-enforced).
5
+ * Colors are CSS custom properties under the `--vx-*` prefix (do NOT rename the prefix).
6
+ * They resolve per color scheme in CSS, so `VX.*` works in components AND in non-component
7
+ * files. Apply opacity via `alpha(token, a)` (never raw `rgba()`) so the hue keeps resolving.
8
+ *
9
+ * Grounded in argo `packages/charts/src/{tokens,palette,theme-vars,utils/color}.ts`.
10
+ */
11
+ import type { PaletteData, RadiusValues, SpaceValues } from './palette.js';
12
+ export { BP, p } from './palette.js';
13
+ export { DEFAULT_DERIVE_CONFIG, deriveTokens, resolveDeriveConfig } from './derive.js';
14
+ export type { DeriveConfig, DerivedPalette } from './derive.js';
15
+ export { deriveRadius } from './palette.js';
16
+ export type { RadiusValues } from './palette.js';
17
+ export { deriveSpacing } from './palette.js';
18
+ export type { SpaceValues } from './palette.js';
19
+ export { CONTAINER_CLASSES, CONTAINER_GRID_BREAKPOINTS, CONTAINER_KEYS, resolveContainerClass, SIZE_CLASSES, } from './size-classes.js';
20
+ export type { ContainerClass } from './size-classes.js';
21
+ /** A per-theme color pair: a hue keeps its identity but shifts shade across schemes. */
22
+ export type ColorPair = {
23
+ light: string;
24
+ dark: string;
25
+ };
26
+ /** A map of token name → per-theme color pair (the input shape for series/group builders). */
27
+ export type SeriesMap = Record<string, ColorPair>;
28
+ /**
29
+ * Apply opacity to any palette token, theme-aware. Use instead of raw `rgba()` so the
30
+ * underlying hue still resolves per color scheme.
31
+ *
32
+ * alpha(VX.neutral, 0.5) // muted hairline
33
+ * alpha(VX.status.warn, 0.1) // zone-band fill
34
+ */
35
+ export declare const alpha: (token: string, a: number) => string;
36
+ export declare const VX: {
37
+ readonly lineWidth: 2.5;
38
+ readonly line2Width: 2;
39
+ readonly axisFont: 11;
40
+ readonly dotR: number;
41
+ readonly dashArray: "6 4";
42
+ readonly legendGap: number;
43
+ readonly legendFontSize: 13.5;
44
+ readonly text: {
45
+ readonly nano: 10;
46
+ readonly micro: 11;
47
+ readonly xs: 12.5;
48
+ readonly sm: 13.5;
49
+ readonly md: 15;
50
+ readonly lg: 16;
51
+ readonly xl: 18;
52
+ readonly h2: 21;
53
+ readonly kpi: 24;
54
+ readonly h1: 26;
55
+ readonly display: 30;
56
+ };
57
+ readonly radiusCard: "var(--vx-radius-card)";
58
+ readonly radiusCtrl: "var(--vx-radius-ctrl)";
59
+ readonly radiusPill: "var(--vx-radius-pill)";
60
+ readonly hit: "var(--vx-hit)";
61
+ readonly space: {
62
+ readonly controlHeightTag: "var(--vx-space-control-height-tag)";
63
+ readonly controlHeightWidget: "var(--vx-space-control-height-widget)";
64
+ readonly controlHeightCtl: "var(--vx-space-control-height-ctl)";
65
+ readonly pageBarRowHeight: "var(--vx-space-page-bar-row-height)";
66
+ readonly sectionHeaderHeight: "var(--vx-space-section-header-height)";
67
+ readonly widgetHeaderHeight: "var(--vx-space-widget-header-height)";
68
+ readonly sidebarBlockRowHeight: "var(--vx-space-sidebar-block-row-height)";
69
+ readonly controlGap: "var(--vx-space-control-gap)";
70
+ readonly sheetRowHeight: "var(--vx-space-sheet-row-height)";
71
+ };
72
+ readonly line2Dark: "var(--vx-line2)";
73
+ readonly good: "var(--vx-good)";
74
+ readonly goodSoft: "var(--vx-good-soft)";
75
+ readonly bad: "var(--vx-bad)";
76
+ readonly warn: "var(--vx-warn)";
77
+ readonly goodSolid: "var(--vx-good-solid)";
78
+ readonly badSolid: "var(--vx-bad-solid)";
79
+ readonly warnSolid: "var(--vx-warn-solid)";
80
+ readonly goodRef: "var(--vx-good-ref)";
81
+ readonly badRef: "var(--vx-bad-ref)";
82
+ readonly warnRef: "var(--vx-warn-ref)";
83
+ readonly line: "var(--vx-line)";
84
+ readonly line2: "var(--vx-line2)";
85
+ readonly axis: "var(--vx-axis)";
86
+ readonly axisStroke: "var(--vx-axis-stroke)";
87
+ readonly grid: "var(--vx-grid)";
88
+ readonly crosshair: "var(--vx-crosshair)";
89
+ readonly dotStroke: "var(--vx-dot-stroke)";
90
+ readonly legendText: "var(--vx-legend-text)";
91
+ readonly tooltipMuted: "var(--vx-tooltip-muted)";
92
+ readonly neutral: "var(--vx-neutral)";
93
+ readonly ink: "var(--vx-ink)";
94
+ readonly ink2: "var(--vx-ink2)";
95
+ readonly muted: "var(--vx-muted)";
96
+ readonly faint: "var(--vx-faint)";
97
+ readonly accent: "var(--vx-accent)";
98
+ readonly accentHover: "var(--vx-accent-hover)";
99
+ readonly accentFill: "var(--vx-accent-fill)";
100
+ readonly accentFillHover: "var(--vx-accent-fill-hover)";
101
+ readonly onAccent: "var(--vx-on-accent)";
102
+ readonly divider: "var(--vx-divider)";
103
+ readonly shadowCard: "var(--vx-shadow-card)";
104
+ readonly shadowCtrl: "var(--vx-shadow-ctrl)";
105
+ readonly shadowRaised: "var(--vx-shadow-raised)";
106
+ readonly shadowOverlay: "var(--vx-shadow-overlay)";
107
+ readonly surface: {
108
+ readonly bg: "var(--vx-surface-bg)";
109
+ readonly panel: "var(--vx-surface-panel)";
110
+ readonly panelHover: "var(--vx-surface-panel-hover)";
111
+ readonly elevated: "var(--vx-surface-elevated)";
112
+ readonly subtle: "var(--vx-surface-subtle)";
113
+ readonly overlay: "var(--vx-surface-overlay)";
114
+ readonly field: "var(--vx-surface-field)";
115
+ readonly border: "var(--vx-surface-border)";
116
+ readonly hairline: "var(--vx-surface-hairline)";
117
+ };
118
+ readonly status: {
119
+ readonly excellent: "var(--vx-status-excellent)";
120
+ readonly good: "var(--vx-status-good)";
121
+ readonly warn: "var(--vx-status-warn)";
122
+ readonly bad: "var(--vx-status-bad)";
123
+ readonly neutral: "var(--vx-status-neutral)";
124
+ };
125
+ readonly margin: {
126
+ readonly top: number;
127
+ readonly right: number;
128
+ readonly bottom: number;
129
+ readonly left: number;
130
+ };
131
+ readonly minPxPerTick: 55;
132
+ /**
133
+ * Floor on a chart's plot rect height, in px (the 1.x chart frame). A legend wrapping to five rows at
134
+ * phone width used to eat a fixed `height={240}` toward zero and the plot simply stopped
135
+ * rendering — the plot never shrinks past this, the frame grows instead (or, under `fill`, the
136
+ * legend rolls up).
137
+ */
138
+ readonly minPlotHeight: 120;
139
+ /** Every floating chart overlay portalled to `document.body` — a pinned tooltip, the legend's
140
+ * `All N` disclosure and its backdrop — shares one stacking value, so they always stack the same
141
+ * way relative to page chrome and to each other. */
142
+ readonly zIndexFloating: 9999;
143
+ };
144
+ /**
145
+ * Layout breakpoints, in px, for the places CSS cannot read a custom property.
146
+ *
147
+ * A `@media` query's condition is resolved before custom properties exist, so
148
+ * `@media (max-width: var(--x))` is invalid CSS — a stylesheet with a responsive rule has no
149
+ * choice but to write the number. This constant is the other half of that literal: the CSS states
150
+ * the number and names the token beside it, and a test asserts the two agree
151
+ * (`content/article-layout.breakpoint.test.ts`, the same "literal must match the token" idiom as
152
+ * `styles.floor.test.ts`).
153
+ *
154
+ * Only breakpoints that are genuinely a CSS-authored `@media` belong here. A component that can
155
+ * measure its own box uses the measurement instead (`CONTAINER_CLASSES`), and Mantine chrome uses
156
+ * `theme.breakpoints`.
157
+ */
158
+ export declare const BREAKPOINTS: {
159
+ /**
160
+ * `content/article-layout.module.css` — below this the TOC rail is dropped and the article
161
+ * collapses to a single centred column. Well above the `sm` (52.5em/840px) shell breakpoint on
162
+ * purpose: the rail needs the prose measure PLUS its own width plus the column gap, which runs
163
+ * out long before the shell goes mobile.
164
+ */
165
+ readonly article: 1200;
166
+ };
167
+ /**
168
+ * A px number expressed as the plain rem STRING literal (16px base: `pxRem(6)` → `'0.375rem'`) —
169
+ * NOT Mantine's own `rem()` helper, which instead emits a `calc(...)` expression bound to
170
+ * `--mantine-scale` (a different value; that scaling happens at the Mantine-coupled call site
171
+ * instead — see `theme/index.ts`'s `Input.extend` `vars` for why `--vx-space-input-height` needs
172
+ * both halves). The SINGLE source for this conversion — `theme/index.ts` imports this instead of
173
+ * keeping its own copy, so the radius/spacing size-scale steps and this module's own rem-emitting
174
+ * vars (`--vx-space-input-height`) can never compute the conversion two different ways.
175
+ */
176
+ export declare function pxRem(px: number): string;
177
+ /**
178
+ * Wrap a map of `{ name: ColorPair }` into `var(--vx-<prefix><name>)` token refs — the runtime
179
+ * companion to `buildPaletteCss`. Lets a consumer define its own series and read stable refs.
180
+ *
181
+ * Returns an exact-keyed object: the return type mirrors the keys of the input map, so a renamed
182
+ * or removed key becomes a tsc error rather than silently widening to `Record<string, string>`.
183
+ */
184
+ export declare function seriesTokens<const T extends SeriesMap>(map: T, prefix?: string): {
185
+ [K in keyof T]: string;
186
+ };
187
+ /**
188
+ * Define a named series map. Identity passthrough — gives consumers a typed authoring entry
189
+ * point and preserves the exact literal keys of the input (const-generic so callers get back T,
190
+ * not the widened SeriesMap, enabling downstream exact-key checks in groupTokens / seriesTokens).
191
+ */
192
+ export declare function defineSeries<const T extends SeriesMap>(map: T): T;
193
+ /** Runtime key of the {@link SeriesGroup} brand. */
194
+ declare const SERIES_GROUP: unique symbol;
195
+ /**
196
+ * The brand `groupTokens` puts on its return value. `BuildPaletteOpts.groups` takes these, so the
197
+ * `${name}-` key that emits the variables and the one that references them come from one call and
198
+ * cannot be spelled two ways.
199
+ */
200
+ export type SeriesGroup = {
201
+ readonly [SERIES_GROUP]: {
202
+ readonly prefix: string;
203
+ readonly map: SeriesMap;
204
+ };
205
+ };
206
+ /**
207
+ * Build a single namespaced group's token refs (`var(--vx-<name>-<key>)`).
208
+ *
209
+ * Returns an exact-keyed object matching the keys of `map` — a stale or renamed key is a tsc
210
+ * error at the call site rather than a silent `Record<string, string>` widening.
211
+ */
212
+ export declare function groupTokens<const T extends SeriesMap>(name: string, map: T): {
213
+ [K in keyof T]: string;
214
+ } & SeriesGroup;
215
+ /**
216
+ * The attribute + values the per-scheme blocks key off. Defaults reproduce Mantine's own toggle
217
+ * (`data-mantine-color-scheme` = `dark` / `light`), so a consumer only names the axis it differs
218
+ * on. Supplying this object at all switches the emitter onto the framework-neutral selector shape
219
+ * — see {@link BuildPaletteOpts.scheme}.
220
+ */
221
+ export type ColorSchemeSelector = {
222
+ attribute?: string;
223
+ darkValue?: string;
224
+ lightValue?: string;
225
+ };
226
+ /** Options for {@link buildPaletteCss}. */
227
+ export type BuildPaletteOpts = {
228
+ /** Extra named series maps to emit under the given prefixes (each one is the return value of `groupTokens`). */
229
+ groups?: readonly SeriesGroup[];
230
+ /** Theme-independent derived declarations (gradients, semantic fills) emitted once on `:root`. */
231
+ derived?: string[];
232
+ /**
233
+ * Attribute + values the per-scheme blocks key off — for a consumer whose scheme toggle is not
234
+ * Mantine's (a static site on `data-theme`, say). Default: Mantine's own
235
+ * `data-mantine-color-scheme` = `dark` / `light`.
236
+ *
237
+ * Setting ANY of `scheme` / `defaultScheme` / `mediaFallback` moves the emitter off the legacy
238
+ * `html[…]` selector onto `:root[…]`. That is deliberate and load-bearing, NOT cosmetic:
239
+ *
240
+ * `:root[data-theme='dark']` 0-2-0 ← what this path emits
241
+ * `html[data-theme='dark']` 0-1-1
242
+ * `[data-theme='dark']` 0-1-0 ← same as a bare `:root`, so source order decides
243
+ *
244
+ * A light-default site whose own `:root` block happens to come last would beat the third form
245
+ * outright — dark mode silently does nothing. `:root[…]` sits above both a bare `:root` and
246
+ * `html[…]`, and carries no assumption about the element the attribute lands on.
247
+ *
248
+ * The no-options path keeps emitting `html[data-mantine-color-scheme='…']` verbatim, because a
249
+ * basalt consumer may already override `--vx-*` under that exact selector — raising basalt's own
250
+ * specificity would silently win over their override.
251
+ */
252
+ scheme?: ColorSchemeSelector;
253
+ /**
254
+ * Which scheme rides along on the bare `:root` block — the one that applies when the attribute
255
+ * is absent. Default: `'dark'` (the framework's own default scheme).
256
+ *
257
+ * `'none'` emits no bare-`:root` primitives at all: each scheme gets only its attribute block,
258
+ * and an unattributed document falls back to the theme-independent scalars alone. Pair it with
259
+ * `mediaFallback` unless the consumer always sets the attribute.
260
+ */
261
+ defaultScheme?: 'dark' | 'light' | 'none';
262
+ /**
263
+ * Also emit an `@media (prefers-color-scheme: …)` block for every scheme that is not the bare
264
+ * `:root` default, so a document with no attribute set follows the OS. Default: `false`.
265
+ *
266
+ * The block is a bare `:root` (0-1-0), so an explicit attribute block (0-2-0) always wins over
267
+ * it regardless of source order — the OS preference is a fallback, never an override.
268
+ */
269
+ mediaFallback?: boolean;
270
+ /**
271
+ * How much of the SPACING set to emit. Default: `'all'` (every one of the 108 `--vx-space-*`
272
+ * declarations the framework's own components read).
273
+ *
274
+ * `'core'` keeps the 9 generic anchors — the stack rhythm, the two control heights, the row
275
+ * insets — and drops the 99 named for a specific basalt component
276
+ * (`--vx-space-agent-transcript-inset`, `--vx-space-toc-sub-indent`, …), taking the emitted set
277
+ * from 204 variables to 105. Nothing outside basalt's own React components reads those, so a
278
+ * framework-free consumer is carrying them for nothing.
279
+ *
280
+ * This is a SPACING filter only: color, radius, shadow, type and status variables are identical
281
+ * in both modes. The partition is derived from the `SPACE` key set rather than a maintained list
282
+ * — see {@link CORE_SPACE_VARS}.
283
+ */
284
+ only?: 'core' | 'all';
285
+ /**
286
+ * Whether to also emit the 32 deprecated camelCase aliases (`--vx-accentFill`, `--vx-tooltipBg`,
287
+ * `--vx-fillHover-gray`, …) alongside the canonical kebab-case names the 1.4.0 normalization
288
+ * introduced. Default: `true`, so an existing consumer's hand-written CSS referencing a
289
+ * camelCase name keeps resolving. Each alias is defined as `var(--vx-<canonical>)` — it can
290
+ * never drift from the value it aliases. Pass `false` once every reference in your own code has
291
+ * migrated to the kebab names to drop the extra 32 lines.
292
+ */
293
+ legacyAliases?: boolean;
294
+ };
295
+ /**
296
+ * Emit the `--vx-*` stylesheet: a `:root` block of theme-independent scalars, then the
297
+ * dark (default) and light primitive blocks under `html[data-mantine-color-scheme='…']`.
298
+ *
299
+ * The framework chrome (STATUS/SEMANTIC/SURFACE pairs + the framework DERIVED defaults) is
300
+ * built in, so an empty `buildPaletteCss()` already emits every framework var. Consumer
301
+ * `opts.groups` / `opts.derived` append on top (e.g. argo's domain SERIES/ACTIVITY/USAGE).
302
+ *
303
+ * `data` defaults to the static, shipped palette (`buildPaletteData()` at `DEFAULT_DERIVE_CONFIG`)
304
+ * — pass the result of `buildPaletteData(config)` to emit CSS for a retuned derive config instead
305
+ * (this is how `BasaltProvider` follows `createBasaltTheme`'s `{ derive }` option; see `../theme`
306
+ * and `../provider`).
307
+ *
308
+ * Dark is the default (`:root`) since the framework defaults to dark; the
309
+ * `[data-mantine-color-scheme]` selectors track Mantine's toggle on `<html>`.
310
+ *
311
+ * A non-Mantine consumer retargets all three of those choices — the attribute, which scheme rides
312
+ * the bare `:root`, and whether the OS preference is honoured — via `opts.scheme` /
313
+ * `opts.defaultScheme` / `opts.mediaFallback`. Setting any of them also moves the per-scheme
314
+ * selector from `html[…]` to the framework-neutral, higher-specificity `:root[…]`; see
315
+ * `BuildPaletteOpts.scheme` for why that is not cosmetic. With none of them set the output is
316
+ * byte-identical to what the framework has always emitted (pinned by
317
+ * `tests/palette-css.test.ts`).
318
+ */
319
+ export declare function buildPaletteCss(opts?: BuildPaletteOpts, data?: PaletteData): string;
320
+ /**
321
+ * The `fonts` option's resolved shape — a full CSS font-family stack string per slot (with its own
322
+ * fallback chain), riding the `--basalt-font-sans/head/mono` override seam `styles.css` ships
323
+ * fallbacks for. Omitted keys keep the shipped fallback untouched. Lives here (not in `../theme`,
324
+ * which only re-exports the type) because its builder `buildFontsCss` below is a pure, Mantine-free
325
+ * string builder that belongs in the tokens layer — see `../theme`'s
326
+ * `CreateBasaltThemeOptions.fonts` for the production entry point that sets it.
327
+ */
328
+ export type BasaltFontsConfig = {
329
+ sans?: string;
330
+ head?: string;
331
+ mono?: string;
332
+ };
333
+ /**
334
+ * Build the `:root` block of `--basalt-font-*` declarations for a resolved `basaltFonts` config —
335
+ * only for the keys the consumer actually set (`createBasaltTheme(overrides, { fonts })`); an
336
+ * omitted key keeps the shipped `styles.css` fallback chain untouched. Empty string when `fonts` is
337
+ * absent or every key is omitted, so callers can unconditionally concatenate the result. Internal
338
+ * (not on the `basalt-ui/tokens` barrel) — `BasaltProvider`'s bridge (`../provider`) calls this
339
+ * directly to append declarations to its injected `<style>`.
340
+ */
341
+ export declare function buildFontsCss(fonts: BasaltFontsConfig | undefined): string;
342
+ /**
343
+ * Build the `:root` block of overriding `--vx-radius-*` declarations for a resolved
344
+ * `basaltRadius` value (`createBasaltTheme(overrides, { radius })`) — analog of {@link buildFontsCss}.
345
+ * Empty string when `radius` is absent (the default level-0 path never sets `theme.other.basaltRadius`
346
+ * in the first place), so callers can unconditionally concatenate the result. Internal, like
347
+ * `buildFontsCss` above.
348
+ */
349
+ export declare function buildRadiusCss(radius: RadiusValues | undefined): string;
350
+ /**
351
+ * Build the `:root` block of overriding `--vx-space-*` declarations for a resolved `basaltDensity`
352
+ * value (`createBasaltTheme(overrides, { density })`) — analog of {@link buildRadiusCss}, reusing
353
+ * the SAME `spaceDecls` list `frameworkDerived` emits the shipped defaults from (so the two can
354
+ * never drift). Empty string when `space` is absent (the default level-0 path never sets
355
+ * `theme.other.basaltDensity` in the first place), so callers can unconditionally concatenate the
356
+ * result. Importable from `basalt-ui/tokens`, same SSR/custom-injection use as `buildRadiusCss`
357
+ * above.
358
+ */
359
+ export declare function buildDensityCss(space: SpaceValues | undefined): string;
360
+ //# sourceMappingURL=core.d.ts.map