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
@@ -1,715 +1,23 @@
1
- import {
2
- buildPaletteData,
3
- RADIUS,
4
- RADIUS_STEP,
5
- ROW_LINE_HEIGHT,
6
- SHADOW,
7
- SPACE,
8
- SPACE_SCALE,
9
- SPACE_STEP
10
- } from "./palette.js";
11
- import { SIZE_CLASSES, sizeClassMaxEm } from "./size-classes.js";
12
- import { HIT_COARSE, HIT_FINE } from "../common/hit-floor.js";
13
- import { BASALT_VX_FAMILIES } from "../common/vx-families.js";
14
- import { vxFamilyOf } from "../common/vx-family.js";
15
1
  import { BP, p } from "./palette.js";
16
- import { DEFAULT_DERIVE_CONFIG, deriveTokens, resolveDeriveConfig } from "./derive.js";
17
- import { deriveRadius } from "./palette.js";
18
- import { deriveSpacing } from "./palette.js";
2
+ import { CONTAINER_CLASSES, CONTAINER_GRID_BREAKPOINTS, CONTAINER_KEYS } from "./size-classes.js";
19
3
  import {
20
- CONTAINER_CLASSES,
21
- CONTAINER_GRID_BREAKPOINTS,
22
- CONTAINER_KEYS,
23
- resolveContainerClass,
24
- SIZE_CLASSES as SIZE_CLASSES2
25
- } from "./size-classes.js";
26
- const alpha = (token, a) => `color-mix(in srgb, ${token} ${Math.round(a * 100)}%, transparent)`;
27
- const TEXT = {
28
- nano: 10,
29
- // engraved/graphic label INSIDE a drawn object (a plate face, a dial, a chip) — never UI copy or prose
30
- micro: 11,
31
- // mono uppercase micro-label (table th, Menu.Label, sidebar/section headers, axis ticks)
32
- xs: 12.5,
33
- // delta badges, tooltip meta, dense chrome, StatCard labels
34
- sm: 13.5,
35
- // table/stat numerals, chart tooltip, legend
36
- md: 15,
37
- // BODY — nav rows, menu items, timeline, labels, prose; chart/card titles
38
- lg: 16,
39
- // breadcrumb current — ALSO the iOS input floor (do not lower)
40
- xl: 18,
41
- // section titles
42
- h2: 21,
43
- // article-density Prose h2 (docs/CONTENT-SPEC.md §5)
44
- kpi: 24,
45
- // the StatCard hero numeral (density pass: 31 → 24, tighter/less shouty)
46
- h1: 26,
47
- // article-density Prose h1 (docs/CONTENT-SPEC.md §5)
48
- display: 30
49
- // a numeral read at arm's length (a keypad readout, a timer, a kiosk figure) — not a heading
50
- };
51
- const VX = {
52
- // Non-color sizing constants
53
- // Stroke WEIGHTS, not spacing — deliberately fixed, never density-tracking (see
54
- // `SPACE_STEP_BASE`'s "charts" group doc in tokens/palette.ts).
55
- lineWidth: 2.5,
56
- line2Width: 2,
57
- axisFont: TEXT.micro,
58
- // A discrete visual footprint (not a stroke weight), so — unlike `lineWidth`/`line2Width` above —
59
- // it DOES track density; single-sourced from `SPACE_STEP.chartDotR` (see that constant's doc).
60
- dotR: SPACE_STEP.chartDotR,
61
- // The ONE dashed pattern — plotted stroke, legend swatch, tooltip swatch all read this.
62
- dashArray: "6 4",
63
- // Legend layout — single-sourced from `SPACE_STEP.chartLegendGap` (density-tracking; see that
64
- // constant's doc). Still a raw number here (not `var()`) — ChartLegend applies it via inline
65
- // `style`, and this is the one static (level-0) value; `createBasaltTheme({ density })` has no
66
- // wiring into chart render props yet, so this number does NOT move live with the knob (same
67
- // "dev slider/production JS defaultProps" gap as Timeline's `bulletSize` — see `deriveSpacing`'s
68
- // doc in tokens/palette.ts).
69
- legendGap: SPACE_STEP.chartLegendGap,
70
- legendFontSize: TEXT.sm,
71
- // The type scale (px numbers — see TEXT above). Use in inline styles and visx SVG props;
72
- // use `var(--vx-text-*)` in CSS modules.
73
- text: TEXT,
74
- // Single source for the card corner radius — shared by the Mantine-free ChartCard and the
75
- // Mantine chrome (Card/Paper resolve to this SAME token). One knob, so cards never diverge.
76
- radiusCard: "var(--vx-radius-card)",
77
- // Single source for the control corner radius (inputs, search, buttons, segmented track).
78
- radiusCtrl: "var(--vx-radius-ctrl)",
79
- // Fully-rounded pill affordance (scroll-to-bottom button, chips) — fixed, does not track the
80
- // radius knob (see `RADIUS_STEP.pill`'s doc in `tokens/palette.ts`).
81
- radiusPill: "var(--vx-radius-pill)",
82
- // The pointer-tier hit floor: 44px under `(pointer: coarse)` (WCAG 2.5.5), 24px otherwise
83
- // (2.5.8). Density-exempt; `[data-basalt-hit]::after` in `styles.css` reads it.
84
- hit: "var(--vx-hit)",
85
- // Controls tier sizing (`docs/CONTROLS-SPEC.md` §5) — `var()` refs onto the density-tracking
86
- // `--vx-space-*` declarations `spaceDecls` emits above (same ref pattern as `radiusCard`/
87
- // `radiusCtrl`), so a home/control reads ONE source for its tier height whether it's Mantine
88
- // chrome (`cssVariablesResolver`/`CTL_THEME`) or a Mantine-free composed layout.
89
- space: {
90
- controlHeightTag: "var(--vx-space-control-height-tag)",
91
- controlHeightWidget: "var(--vx-space-control-height-widget)",
92
- controlHeightCtl: "var(--vx-space-control-height-ctl)",
93
- pageBarRowHeight: "var(--vx-space-page-bar-row-height)",
94
- sectionHeaderHeight: "var(--vx-space-section-header-height)",
95
- widgetHeaderHeight: "var(--vx-space-widget-header-height)",
96
- sidebarBlockRowHeight: "var(--vx-space-sidebar-block-row-height)",
97
- controlGap: "var(--vx-space-control-gap)",
98
- sheetRowHeight: "var(--vx-space-sheet-row-height)"
99
- },
100
- // Secondary-line color (back-compat alias; now theme-aware via --vx-line2)
101
- line2Dark: "var(--vx-line2)",
102
- // Semantic fills — consistent opacity across all charts
103
- good: "var(--vx-good)",
104
- goodSoft: "var(--vx-good-soft)",
105
- bad: "var(--vx-bad)",
106
- warn: "var(--vx-warn)",
107
- goodSolid: "var(--vx-good-solid)",
108
- badSolid: "var(--vx-bad-solid)",
109
- warnSolid: "var(--vx-warn-solid)",
110
- // Reference/dashed lines for thresholds
111
- goodRef: "var(--vx-good-ref)",
112
- badRef: "var(--vx-bad-ref)",
113
- warnRef: "var(--vx-warn-ref)",
114
- // Neutral primary line/text color — the default for single-series, no-signal marks
115
- // ("white/gray per theme"). Same value as the NEUTRAL.line pair.
116
- line: "var(--vx-line)",
117
- line2: "var(--vx-line2)",
118
- // Axis label + axis stroke colors (theme-aware). Exposed as flat refs so a bespoke chart that
119
- // renders raw <text> labels or axis lines (without the Axis* primitives) needs no hook.
120
- axis: "var(--vx-axis)",
121
- axisStroke: "var(--vx-axis-stroke)",
122
- // Grid, hover, legend
123
- grid: "var(--vx-grid)",
124
- crosshair: "var(--vx-crosshair)",
125
- dotStroke: "var(--vx-dot-stroke)",
126
- legendText: "var(--vx-legend-text)",
127
- // Tooltip chrome — muted (secondary) text inside a bespoke tooltip. The other tooltip vars
128
- // (bg/text/border/shadow) are only exposed via `useVxTheme()` (see `charts/theme.tsx`); this
129
- // one is flattened onto `VX` too because bespoke-tooltip authors reached for `VX.muted` (the
130
- // general ink-ramp muted) instead and got the wrong token — same pattern as `VX.muted` below.
131
- tooltipMuted: "var(--vx-tooltip-muted)",
132
- // Base neutral for hairlines / muted text / overlays — apply opacity via alpha()
133
- neutral: "var(--vx-neutral)",
134
- // Ink text ramp (docs/DESIGN-SPEC.md §2) — primary/emphasis/secondary/tertiary body text.
135
- ink: "var(--vx-ink)",
136
- ink2: "var(--vx-ink2)",
137
- muted: "var(--vx-muted)",
138
- faint: "var(--vx-faint)",
139
- // The accent as INK — primary series, active-nav icon, links, focus rings. Read against the PAGE,
140
- // so it inverts across schemes (light on dark, deep on light).
141
- accent: "var(--vx-accent)",
142
- accentHover: "var(--vx-accent-hover)",
143
- // The accent as SURFACE — a filled control that carries a label. Squeezed between white-text
144
- // contrast and page contrast, so it is the same hex in both schemes (see ACCENT in palette.ts).
145
- // Mantine's `--mantine-color-<primary>-filled` is bridged onto this, so it drives ALL filled
146
- // chrome; a raw `--vx-accent` fill would be unreadable on dark. Fills use THIS, never `accent`.
147
- accentFill: "var(--vx-accent-fill)",
148
- accentFillHover: "var(--vx-accent-fill-hover)",
149
- onAccent: "var(--vx-on-accent)",
150
- // Layout separators (header bottom rule, sidebar child indent) — distinct from `surface.border`.
151
- divider: "var(--vx-divider)",
152
- // Depth shadows — a whisper shadow + a 1px ring baked into the value (never a `border` prop).
153
- shadowCard: "var(--vx-shadow-card)",
154
- shadowCtrl: "var(--vx-shadow-ctrl)",
155
- // Raised interactive controls — drop + a 1px INSET edge, the one depth every raised Button/
156
- // ActionIcon variant shares (works over a fill, a tint or a panel alike; see SHADOW.raised).
157
- shadowRaised: "var(--vx-shadow-raised)",
158
- // Floating-layer elevation (menus, popovers, tooltips, modals, drawers) — a real drop shadow.
159
- shadowOverlay: "var(--vx-shadow-overlay)",
160
- // App surfaces (cards, borders) — shared with the Mantine chrome
161
- surface: {
162
- bg: "var(--vx-surface-bg)",
163
- panel: "var(--vx-surface-panel)",
164
- panelHover: "var(--vx-surface-panel-hover)",
165
- elevated: "var(--vx-surface-elevated)",
166
- subtle: "var(--vx-surface-subtle)",
167
- overlay: "var(--vx-surface-overlay)",
168
- // floating layer (menus, popovers, modals, drawers)
169
- field: "var(--vx-surface-field)",
170
- // input field surface (slightly inset on a panel)
171
- border: "var(--vx-surface-border)",
172
- // "line" — strong border
173
- hairline: "var(--vx-surface-hairline)"
174
- // card ring only
175
- },
176
- // Score / zone status scale (excellent → poor)
177
- status: {
178
- excellent: "var(--vx-status-excellent)",
179
- good: "var(--vx-status-good)",
180
- warn: "var(--vx-status-warn)",
181
- bad: "var(--vx-status-bad)",
182
- neutral: "var(--vx-status-neutral)"
183
- },
184
- // Shared sizing — single-sourced from `SPACE_STEP.chartMargin*` (density-tracking; same
185
- // static-value/no-live-wiring note as `legendGap` above).
186
- margin: {
187
- top: SPACE_STEP.chartMarginTop,
188
- right: SPACE_STEP.chartMarginRight,
189
- bottom: SPACE_STEP.chartMarginBottom,
190
- left: SPACE_STEP.chartMarginLeft
191
- },
192
- minPxPerTick: 55,
193
- /**
194
- * Floor on a chart's plot rect height, in px (`ChartFrame`). A legend wrapping to five rows at
195
- * phone width used to eat a fixed `height={240}` toward zero and the plot simply stopped
196
- * rendering — the plot never shrinks past this, the frame grows instead (or, under `fill`, the
197
- * legend rolls up).
198
- */
199
- minPlotHeight: 120,
200
- /** Every floating chart overlay portalled to `document.body` — a pinned tooltip, the legend's
201
- * `All N` disclosure and its backdrop — shares one stacking value, so they always stack the same
202
- * way relative to page chrome and to each other. */
203
- zIndexFloating: 9999
204
- };
205
- const BREAKPOINTS = {
206
- /**
207
- * `content/article-layout.module.css` — below this the TOC rail is dropped and the article
208
- * collapses to a single centred column. Well above the `sm` (52.5em/840px) shell breakpoint on
209
- * purpose: the rail needs the prose measure PLUS its own width plus the column gap, which runs
210
- * out long before the shell goes mobile.
211
- */
212
- article: 1200
213
- };
214
- function chartMargin(opts) {
215
- const widenedRight = opts?.rightAxis ? Math.max(VX.margin.right, SPACE_STEP.chartMarginRightAxis) : VX.margin.right;
216
- return {
217
- top: opts?.top ?? VX.margin.top,
218
- right: opts?.right ?? widenedRight,
219
- bottom: opts?.bottom ?? VX.margin.bottom,
220
- left: opts?.left ?? VX.margin.left
221
- };
222
- }
223
- const decl = (name, value) => ` --vx-${name}: ${value};`;
224
- function pxRem(px) {
225
- return `${px / 16}rem`;
226
- }
227
- const groupSide = (prefix, map, side) => Object.entries(map).map(([key, pair]) => decl(`${prefix}${key}`, pair[side])).join("\n");
228
- function frameworkPrimitivesAliases() {
229
- return [
230
- " /* Deprecated camelCase aliases \u2014 removed in a future minor; migrate to the kebab names above. */",
231
- decl("goodSolid", "var(--vx-good-solid)"),
232
- decl("badSolid", "var(--vx-bad-solid)"),
233
- decl("warnSolid", "var(--vx-warn-solid)"),
234
- decl("axisStroke", "var(--vx-axis-stroke)"),
235
- decl("dotStroke", "var(--vx-dot-stroke)"),
236
- decl("tooltipBg", "var(--vx-tooltip-bg)"),
237
- decl("tooltipText", "var(--vx-tooltip-text)"),
238
- decl("tooltipMuted", "var(--vx-tooltip-muted)"),
239
- decl("tooltipBorder", "var(--vx-tooltip-border)"),
240
- decl("tooltipShadow", "var(--vx-tooltip-shadow)"),
241
- decl("legendText", "var(--vx-legend-text)"),
242
- decl("accentHover", "var(--vx-accent-hover)"),
243
- decl("accentFill", "var(--vx-accent-fill)"),
244
- decl("accentFillHover", "var(--vx-accent-fill-hover)"),
245
- decl("onAccent", "var(--vx-on-accent)"),
246
- decl("surface-panelHover", "var(--vx-surface-panel-hover)")
247
- ].join("\n");
248
- }
249
- function frameworkPrimitives(side, data, legacyAliases) {
250
- const n = data.NEUTRAL;
251
- const s = data.SEMANTIC;
252
- const su = data.SURFACE;
253
- const ink = data.INK;
254
- const ac = data.ACCENT;
255
- const canonical = [
256
- groupSide("status-", data.STATUS, side),
257
- decl("good-solid", s.good[side]),
258
- decl("bad-solid", s.bad[side]),
259
- decl("warn-solid", s.warn[side]),
260
- decl("neutral", n.neutral[side]),
261
- decl("line", n.line[side]),
262
- decl("line2", n.line2[side]),
263
- decl("axis", n.axis[side]),
264
- decl("axis-stroke", n.axisStroke[side]),
265
- decl("grid", n.grid[side]),
266
- decl("crosshair", n.crosshair[side]),
267
- decl("dot-stroke", n.dotStroke[side]),
268
- decl("tooltip-bg", n.tooltipBg[side]),
269
- decl("tooltip-text", n.tooltipText[side]),
270
- decl("tooltip-muted", n.tooltipMuted[side]),
271
- decl("tooltip-border", n.tooltipBorder[side]),
272
- decl("tooltip-shadow", n.tooltipShadow[side]),
273
- decl("legend-text", n.legendText[side]),
274
- decl("ink", ink.ink[side]),
275
- decl("ink2", ink.ink2[side]),
276
- decl("muted", ink.muted[side]),
277
- decl("faint", ink.faint[side]),
278
- decl("accent", ac.accent[side]),
279
- decl("accent-hover", ac.accentHover[side]),
280
- decl("accent-fill", ac.accentFill[side]),
281
- decl("accent-fill-hover", ac.accentFillHover[side]),
282
- decl("on-accent", ac.onAccent[side]),
283
- decl("divider", su.divider[side]),
284
- decl("shadow-card", SHADOW.card[side]),
285
- decl("shadow-ctrl", SHADOW.ctrl[side]),
286
- decl("shadow-raised", SHADOW.raised[side]),
287
- decl("shadow-overlay", SHADOW.overlay[side]),
288
- decl("surface-bg", su.bg[side]),
289
- decl("surface-panel", su.panel[side]),
290
- decl("surface-panel-hover", su.panelHover[side]),
291
- decl("surface-elevated", su.elevated[side]),
292
- decl("surface-subtle", su.subtle[side]),
293
- decl("surface-overlay", su.overlay[side]),
294
- decl("surface-field", su.field[side]),
295
- decl("surface-border", su.border[side]),
296
- decl("surface-hairline", su.hairline[side])
297
- ].join("\n");
298
- return legacyAliases ? `${canonical}
299
- ${frameworkPrimitivesAliases()}` : canonical;
300
- }
301
- function spaceDecls(space) {
302
- return [
303
- decl("space-row-inset-x", `${space.anchors.rowInsetX}px`),
304
- decl("space-row-inset-y", `${space.anchors.rowInsetY}px`),
305
- // Additive law, not the multiplier — see `deriveSpacing`'s doc in `tokens/palette.ts`. No unit:
306
- // `line-height` is a unitless CSS value.
307
- decl("space-row-line-height", `${space.rowLineHeight}`),
308
- // A `size: 'md'` Input's resolved height. Mantine's own `--input-height-md` is
309
- // `calc(2.625rem * var(--mantine-scale))` (BOTH `styles.css` and `styles.layer.css`, verified
310
- // in the installed package) — REM-relative to the root font size AND scale-aware, not a flat
311
- // px. Emitting this in REM (via `pxRem`, not a bare `${…}px`) preserves the rem half; the
312
- // `* var(--mantine-scale))` half is reconstructed at the Mantine-coupled call site
313
- // (`theme/index.ts`'s `Input.extend` `vars`, which wraps this var in the matching `calc(...)`)
314
- // — this module stays Mantine-free, so it cannot reference `--mantine-scale` itself. Flattening
315
- // either half into a flat px would desync input height from the user's root font size (an
316
- // accessibility regression) and from Mantine's global `--mantine-scale` knob.
317
- decl("space-input-height", pxRem(space.anchors.inputHeight)),
318
- // A `size: 'md'` Button's/ActionIcon's resolved height — SAME rem-plus-scale reasoning and
319
- // reconstruction as `space-input-height` above (`theme/index.ts`'s `Button.extend`/
320
- // `ActionIcon.extend` `vars`), single-sourced from the SAME `controlHeight` anchor
321
- // `space-input-height` reads from (`SPACE_ANCHORS_BASE`'s doc in `tokens/palette.ts`).
322
- decl("space-control-height", pxRem(space.anchors.controlHeight)),
323
- // Controls tier heights (`docs/CONTROLS-SPEC.md` §5) — same rem-plus-`--mantine-scale`
324
- // reconstruction as `space-input-height`/`space-control-height` above; `theme/ctl-theme.tsx`'s
325
- // `CTL_THEME` and the `cssVariablesResolver`'s `-ctl`/`-icon` var sets both wrap these in the
326
- // matching `calc(... * var(--mantine-scale))`.
327
- decl("space-control-height-tag", pxRem(space.anchors.controlHeightTag)),
328
- decl("space-control-height-widget", pxRem(space.anchors.controlHeightWidget)),
329
- decl("space-control-height-ctl", pxRem(space.anchors.controlHeightCtl)),
330
- decl("space-stack-xs", `${space.anchors.stackXs}px`),
331
- decl("space-stack-sm", `${space.anchors.stackSm}px`),
332
- decl("space-stack-md", `${space.anchors.stackMd}px`),
333
- decl("space-stack-lg", `${space.anchors.stackLg}px`),
334
- decl("space-stack-xl", `${space.anchors.stackXl}px`),
335
- // The CSS-module spacing sweep's one-offs (docs/STATUS.md) — same single-source reasoning,
336
- // grouped to match `SPACE_STEP_BASE`'s own grouping in tokens/palette.ts.
337
- // ONE value at every viewport since 1.26.0 — the AppShell header is a single
338
- // `appShellHeaderHeight` row (law C14), so the `-mobile` override of the old Decision-3
339
- // responsive pair is gone.
340
- decl("space-sticky-header-clearance", `${space.step.stickyHeaderClearance}px`),
341
- decl("space-nav-icon-gap", `${space.step.navIconGap}px`),
342
- decl("space-sidebar-region-gap", `${space.step.sidebarRegionGap}px`),
343
- decl("space-prose-quote-inset-y", `${space.step.proseQuoteInsetY}px`),
344
- decl("space-prose-quote-indent", `${space.step.proseQuoteIndent}px`),
345
- decl("space-prose-inline-code-inset-y", `${space.step.proseInlineCodeInsetY}px`),
346
- decl("space-prose-inline-code-inset-x", `${space.step.proseInlineCodeInsetX}px`),
347
- decl("space-prose-code-block-inset-y", `${space.step.proseCodeBlockInsetY}px`),
348
- decl("space-prose-code-block-inset-x", `${space.step.proseCodeBlockInsetX}px`),
349
- decl("space-prose-heading-anchor-gap", `${space.step.proseHeadingAnchorGap}px`),
350
- decl("space-prose-table-cell-inset-y", `${space.step.proseTableCellInsetY}px`),
351
- decl("space-prose-table-cell-inset-x", `${space.step.proseTableCellInsetX}px`),
352
- decl("space-prose-chat-list-gap-bottom", `${space.step.proseChatListGapBottom}px`),
353
- decl("space-prose-chat-list-indent", `${space.step.proseChatListIndent}px`),
354
- decl("space-prose-chat-list-item-gap", `${space.step.proseChatListItemGap}px`),
355
- decl("space-prose-chat-nested-list-gap", `${space.step.proseChatNestedListGap}px`),
356
- decl("space-prose-chat-heading-gap-top", `${space.step.proseChatHeadingGapTop}px`),
357
- decl("space-prose-chat-heading-gap-bottom", `${space.step.proseChatHeadingGapBottom}px`),
358
- decl("space-prose-article-paragraph-gap", `${space.step.proseArticleParagraphGap}px`),
359
- decl("space-prose-article-list-gap-top", `${space.step.proseArticleListGapTop}px`),
360
- decl("space-prose-article-list-gap-bottom", `${space.step.proseArticleListGapBottom}px`),
361
- decl("space-prose-article-list-indent", `${space.step.proseArticleListIndent}px`),
362
- decl("space-prose-article-h1-gap-top", `${space.step.proseArticleH1GapTop}px`),
363
- decl("space-prose-article-h1-gap-bottom", `${space.step.proseArticleH1GapBottom}px`),
364
- decl("space-prose-article-heading-gap-top", `${space.step.proseArticleHeadingGapTop}px`),
365
- decl("space-prose-article-heading-gap-bottom", `${space.step.proseArticleHeadingGapBottom}px`),
366
- decl("space-prose-article-h2-rule-gap", `${space.step.proseArticleH2RuleGap}px`),
367
- decl("space-prose-article-block-gap", `${space.step.proseArticleBlockGap}px`),
368
- decl("space-article-column-gap", `${space.step.articleColumnGap}px`),
369
- decl("space-article-toc-rail-width", `${space.step.articleTocRailWidth}px`),
370
- decl("space-article-header-gap", `${space.step.articleHeaderGap}px`),
371
- decl("space-article-header-padding-bottom", `${space.step.articleHeaderPaddingBottom}px`),
372
- decl("space-article-header-margin-bottom", `${space.step.articleHeaderMarginBottom}px`),
373
- decl("space-article-meta-row-gap", `${space.step.articleMetaRowGap}px`),
374
- decl("space-article-footer-gap", `${space.step.articleFooterGap}px`),
375
- decl("space-article-footer-margin-top", `${space.step.articleFooterMarginTop}px`),
376
- decl("space-article-footer-padding-top", `${space.step.articleFooterPaddingTop}px`),
377
- decl("space-article-nav-target-gap", `${space.step.articleNavTargetGap}px`),
378
- decl("space-code-block-header-gap", `${space.step.codeBlockHeaderGap}px`),
379
- decl("space-code-block-header-inset-y", `${space.step.codeBlockHeaderInsetY}px`),
380
- decl("space-code-block-header-inset-right", `${space.step.codeBlockHeaderInsetRight}px`),
381
- decl("space-code-block-content-inset-x", `${space.step.codeBlockContentInsetX}px`),
382
- decl("space-code-block-header-right-gap", `${space.step.codeBlockHeaderRightGap}px`),
383
- decl("space-code-block-body-inset-y", `${space.step.codeBlockBodyInsetY}px`),
384
- decl("space-code-block-floating-copy-offset", `${space.step.codeBlockFloatingCopyOffset}px`),
385
- decl("space-callout-inset-y", `${space.step.calloutInsetY}px`),
386
- decl("space-callout-inset-x", `${space.step.calloutInsetX}px`),
387
- decl("space-callout-title-row-gap", `${space.step.calloutTitleRowGap}px`),
388
- decl("space-toc-root-gap", `${space.step.tocRootGap}px`),
389
- decl("space-toc-link-inset-y", `${space.step.tocLinkInsetY}px`),
390
- decl("space-toc-link-indent", `${space.step.tocLinkIndent}px`),
391
- decl("space-toc-sub-indent", `${space.step.tocSubIndent}px`),
392
- decl("space-article-card-tags-gap", `${space.step.articleCardTagsGap}px`),
393
- decl("space-article-card-tag-inset-y", `${space.step.articleCardTagInsetY}px`),
394
- decl("space-article-card-tag-inset-x", `${space.step.articleCardTagInsetX}px`),
395
- decl("space-article-card-meta-gap-top", `${space.step.articleCardMetaGapTop}px`),
396
- decl("space-guide-body-gap-bottom", `${space.step.guideBodyGapBottom}px`),
397
- decl("space-guide-footer-gap-top", `${space.step.guideFooterGapTop}px`),
398
- decl("space-guide-footer-inset-top", `${space.step.guideFooterInsetTop}px`),
399
- decl("space-sidebar-search-gap", `${space.step.sidebarSearchGap}px`),
400
- decl("space-sidebar-search-trigger-height", `${space.step.sidebarSearchTriggerHeight}px`),
401
- decl("space-settings-row-inset-y", `${space.step.settingsRowInsetY}px`),
402
- decl("space-settings-row-gap", `${space.step.settingsRowGap}px`),
403
- decl("space-mermaid-container-inset", `${space.step.mermaidContainerInset}px`),
404
- decl("space-sidebar-brand-inset-x", `${space.step.sidebarBrandInsetX}px`),
405
- decl("space-sidebar-section-gap", `${space.step.sidebarSectionGap}px`),
406
- decl("space-sidebar-account-inset-top", `${space.step.sidebarAccountInsetTop}px`),
407
- decl("space-sidebar-account-inset-x", `${space.step.sidebarAccountInsetX}px`),
408
- decl("space-sidebar-account-inset-bottom", `${space.step.sidebarAccountInsetBottom}px`),
409
- decl("space-sidebar-avatar-size", `${space.step.sidebarAvatarSize}px`),
410
- decl("space-sidebar-section-label-gap", `${space.step.sidebarSectionLabelGap}px`),
411
- decl("space-sidebar-child-list-gap-top", `${space.step.sidebarChildListGapTop}px`),
412
- decl("space-sidebar-child-list-gap-bottom", `${space.step.sidebarChildListGapBottom}px`),
413
- decl("space-sidebar-child-list-indent", `${space.step.sidebarChildListIndent}px`),
414
- decl("space-sidebar-child-row-inset-y", `${space.step.sidebarChildRowInsetY}px`),
415
- decl("space-sidebar-child-row-indent", `${space.step.sidebarChildRowIndent}px`),
416
- // The page gutter — the ONE `appShell*` dimension that IS emitted, against the JS-number-only
417
- // rule its five neighbours follow (see the note at the bottom of this list). It earns the
418
- // exception because it is the most visible spacing number the framework ships — every page's
419
- // left edge — and it was, until now, the one number the `--vx-*` layer did not expose at all, so
420
- // a consumer retuning its identity through `createBasaltTheme` could not reach it and had to
421
- // reach past the token layer into `AppShell.Main`'s own styles. Emitted in PLAIN PX, like every
422
- // other inset/gap in this list and unlike the `pxRem` heights above it: the rem-plus-
423
- // `var(--mantine-scale)` reconstruction exists so a CONTROL's box tracks the root font size and
424
- // Mantine's global scale knob; a page gutter is a layout margin against a viewport, not a box
425
- // sized to text, so scaling it with the font would make a large-type user's content column
426
- // narrower rather than more legible.
427
- decl("space-app-shell-inset", `${space.step.appShellInset}px`),
428
- decl("space-app-shell-inset-mobile", `${space.step.appShellInsetMobile}px`),
429
- // The header's breadcrumb floor — emitted for the same reason as the gutter pair above it and
430
- // not for the JS-number reason its `appShell*` neighbours below are withheld for: this one has
431
- // a real CSS consumer (`shell/app-header.module.css`'s `.lead`), which is the whole test this
432
- // list applies. Plain px, like every other layout dimension here.
433
- decl("space-app-shell-header-lead-min", `${space.step.appShellHeaderLeadMin}px`),
434
- decl("space-mobile-nav-tab-gap", `${space.step.mobileNavTabGap}px`),
435
- decl("space-mobile-nav-icon-size", `${space.step.mobileNavIconSize}px`),
436
- decl("space-mobile-nav-tab-inset-y", `${space.step.mobileNavTabInsetY}px`),
437
- decl("space-mobile-nav-tab-inset-x", `${space.step.mobileNavTabInsetX}px`),
438
- decl("space-mobile-nav-row-height", `${space.step.mobileNavRowHeight}px`),
439
- decl("space-agent-rail-inset-x", `${space.step.agentRailInsetX}px`),
440
- decl("space-agent-part-gap-top", `${space.step.agentPartGapTop}px`),
441
- decl("space-agent-code-inset", `${space.step.agentCodeInset}px`),
442
- decl("space-agent-error-inset-y", `${space.step.agentErrorInsetY}px`),
443
- decl("space-agent-error-inset-x", `${space.step.agentErrorInsetX}px`),
444
- decl("space-agent-scroll-button-gap-top", `${space.step.agentScrollButtonGapTop}px`),
445
- decl("space-agent-message-inset-y", `${space.step.agentMessageInsetY}px`),
446
- decl("space-agent-message-inset-x", `${space.step.agentMessageInsetX}px`),
447
- decl("space-agent-transcript-inset", `${space.step.agentTranscriptInset}px`),
448
- decl("space-badge-inset-y", `${space.step.badgeInsetY}px`),
449
- decl("space-badge-inset-x", `${space.step.badgeInsetX}px`),
450
- decl("space-stat-card-gap", `${space.step.statCardGap}px`),
451
- // The card/section inset ladder — the three values `spaceMobileDecls` below re-points at `< sm`
452
- // (see its doc for where the law lives and why it lives there).
453
- decl("space-card-inset-y", `${space.step.cardInsetY}px`),
454
- decl("space-card-inset-x", `${space.step.cardInsetX}px`),
455
- decl("space-section-gap", `${space.step.sectionGap}px`),
456
- decl("space-virtual-row-inset-y", `${space.step.virtualRowInsetY}px`),
457
- decl("space-virtual-row-inset-x", `${space.step.virtualRowInsetX}px`),
458
- // Controls tier row/gap heights (`docs/CONTROLS-SPEC.md` §5) — the current commit's consumers
459
- // are `theme/ctl-theme.tsx` (`--vx-space-control-gap`) and the wave-3/4 homes (`PageBar`,
460
- // `WidgetHeader`, sidebar blocks, the mobile `Filters (n)` sheet) landing next.
461
- decl("space-page-bar-row-height", pxRem(space.step.pageBarRowHeight)),
462
- decl("space-section-header-height", pxRem(space.step.sectionHeaderHeight)),
463
- decl("space-widget-header-height", pxRem(space.step.widgetHeaderHeight)),
464
- decl("space-sidebar-block-row-height", pxRem(space.step.sidebarBlockRowHeight)),
465
- decl("space-control-gap", `${space.step.controlGap}px`),
466
- decl("space-sheet-row-height", pxRem(space.step.sheetRowHeight))
467
- // `chartLegendGap`/`chartMarginTop`/`chartMarginRight`/`chartMarginBottom`/`chartMarginLeft`/
468
- // `chartDotR`/`progressBarSize`/`timelineBullet` are DELIBERATELY absent — see this function's
469
- // doc for why (JS-number-only consumers, zero `var()` reads). `appShellHeaderHeight`/
470
- // `appShellNavbarWidth`/`appShellNavbarRailWidth`/`appShellAsideWidth`/`appShellAsideRailWidth`
471
- // join that list — but NOT `appShellInset`/`appShellInsetMobile`/`appShellHeaderLeadMin`, which
472
- // are emitted above and carry their own reason for the exception —
473
- // `shell/index.tsx` reads all five as JS numbers via `useBasaltSpacing()` (Mantine's `AppShell`
474
- // `header`/`navbar`/`aside` props take numbers, not `var()` strings), so a `--vx-space-app-shell-*`
475
- // decl here would have had zero consumers, framework-wide, the same dead-weight shape this function's
476
- // doc already calls out for the chart/Progress/Timeline group. `sidebarAccountMenuWidth`/
477
- // `sidebarSettingsMenuWidth` join it too — `app-sidebar-account.tsx`/`app-sidebar.tsx` read both
478
- // as JS numbers via `useBasaltSpacing()` (Mantine's `<Menu width={…}>` also takes a number).
479
- ];
480
- }
481
- const CORE_SPACE_VARS = new Set(
482
- Object.keys(SPACE).map((key) => `space-${key.replace(/[A-Z]/g, (c) => `-${c.toLowerCase()}`)}`)
483
- );
484
- function isCoreSpaceDecl(line) {
485
- const name = /^ {2}--vx-([\w-]+):/.exec(line)?.[1];
486
- return name !== void 0 && CORE_SPACE_VARS.has(name);
487
- }
488
- const DEFAULT_SPACE_VALUES = {
489
- anchors: SPACE,
490
- scale: SPACE_SCALE,
491
- step: SPACE_STEP,
492
- rowLineHeight: ROW_LINE_HEIGHT
493
- };
494
- function frameworkDerivedAliases(data) {
495
- return [
496
- " /* Deprecated camelCase aliases \u2014 removed in a future minor; migrate to the kebab names above. */",
497
- ...Object.keys(data.FILL).map(
498
- (name) => decl(`fillHover-${name}`, `var(--vx-fill-hover-${name})`)
499
- ),
500
- decl("goodSoft", "var(--vx-good-soft)"),
501
- decl("goodRef", "var(--vx-good-ref)"),
502
- decl("badRef", "var(--vx-bad-ref)"),
503
- decl("warnRef", "var(--vx-warn-ref)")
504
- ].join("\n");
505
- }
506
- function frameworkDerived(data, only, legacyAliases) {
507
- const space = spaceDecls(DEFAULT_SPACE_VALUES);
508
- const canonical = [
509
- decl("radius-card", `${RADIUS.card}px`),
510
- decl("radius-ctrl", `${RADIUS.ctrl}px`),
511
- // The two offset tiers (SegmentedControl indicator/Kbd/Code, Progress/scale-sm) — added so a
512
- // component's inline `styles`/`style` can read the SAME source as `RADIUS_STEP.tight`/`.fine`
513
- // instead of a hand-typed literal (see `theme/index.ts`'s component sweep).
514
- decl("radius-tight", `${RADIUS_STEP.tight}px`),
515
- decl("radius-fine", `${RADIUS_STEP.fine}px`),
516
- // The floating tier (Modal/Tooltip/Popover/Notification, content code/mermaid blocks).
517
- decl("radius-floating", `${RADIUS_STEP.floating}px`),
518
- // The pill affordance (scroll-to-bottom button, chips) — fixed, level-invariant, so it lives
519
- // only in this static block, never in `buildRadiusCss`'s dynamic override (see
520
- // `RADIUS_STEP.pill`'s doc).
521
- decl("radius-pill", `${RADIUS_STEP.pill}px`),
522
- // The pointer tier's fine default — density-EXEMPT, so it lives only in this static block
523
- // (same law as `radius-pill` above). `coarseHitBlock` re-points it to 44px.
524
- decl("hit", `${HIT_FINE}px`),
525
- ...only === "core" ? space.filter(isCoreSpaceDecl) : space,
526
- // Article-density Prose measure (docs/CONTENT-SPEC.md §5) — theme-independent, like the radii.
527
- decl("prose-measure", "72ch"),
528
- // The fill band (see FILL in palette.ts). Emitted on `:root`, NOT per scheme — a filled surface
529
- // is the same hex in both, which is the whole point: it is squeezed between its white label and
530
- // the page behind it, and only one luminance band satisfies both on both pages.
531
- ...Object.entries(data.FILL).map(([name, hex]) => decl(`fill-${name}`, hex)),
532
- // Hover is DERIVED from the fill, so retuning a fill (in the theme lab, or here) carries its
533
- // hover along instead of leaving a stale pair. 88% of the fill over black lands ~0.128 luminance:
534
- // a visible press-darkening that still clears AA for the white label (~5.9:1).
535
- ...Object.keys(data.FILL).map(
536
- (name) => decl(`fill-hover-${name}`, `color-mix(in srgb, var(--vx-fill-${name}) 88%, #000)`)
537
- ),
538
- // The type scale, emitted from the SAME `TEXT` object `VX.text` reads — CSS modules and the
539
- // Mantine theme consume these; inline styles / visx read the numbers. One ladder, two forms.
540
- ...Object.entries(TEXT).map(([step, px]) => decl(`text-${step}`, `${px}px`)),
541
- decl("area-top", "22%"),
542
- decl("area-bottom", "1%"),
543
- decl("good", "color-mix(in srgb, var(--vx-good-solid) 18%, transparent)"),
544
- decl("good-soft", "color-mix(in srgb, var(--vx-good-solid) 8%, transparent)"),
545
- decl("bad", "color-mix(in srgb, var(--vx-bad-solid) 18%, transparent)"),
546
- decl("warn", "color-mix(in srgb, var(--vx-warn-solid) 8%, transparent)"),
547
- decl("good-ref", "color-mix(in srgb, var(--vx-good-solid) 30%, transparent)"),
548
- decl("bad-ref", "color-mix(in srgb, var(--vx-bad-solid) 30%, transparent)"),
549
- decl("warn-ref", "color-mix(in srgb, var(--vx-warn-solid) 20%, transparent)")
550
- ].join("\n");
551
- return legacyAliases ? `${canonical}
552
- ${frameworkDerivedAliases(data)}` : canonical;
553
- }
554
- function assertConsumerVxName(name) {
555
- const family = vxFamilyOf(name);
556
- if (!BASALT_VX_FAMILIES.includes(family)) return;
557
- throw new Error(
558
- `[basalt] ${name} is inside basalt's own --vx-${family} family \u2014 name your series group something basalt does not own (groupTokens('app', \u2026)).`
559
- );
560
- }
561
- function seriesTokens(map, prefix = "") {
562
- const out = {};
563
- for (const key of Object.keys(map)) {
564
- if (process.env.NODE_ENV !== "production") assertConsumerVxName(`--vx-${prefix}${String(key)}`);
565
- out[key] = `var(--vx-${prefix}${String(key)})`;
566
- }
567
- return out;
568
- }
569
- function defineSeries(map) {
570
- return map;
571
- }
572
- function groupTokens(name, map) {
573
- return seriesTokens(map, `${name}-`);
574
- }
575
- const MANTINE_SCHEME_ATTRIBUTE = "data-mantine-color-scheme";
576
- const indent = (block) => block.split("\n").map((line) => line === "" ? line : ` ${line}`).join("\n");
577
- const MOBILE_MEDIA = `@media (max-width: ${sizeClassMaxEm(SIZE_CLASSES.medium)})`;
578
- const coarseHitBlock = `@media (pointer: coarse) {
579
- :root {
580
- --vx-hit: ${HIT_COARSE}px;
581
- }
582
- }`;
583
- function spaceMobileDecls(space) {
584
- return [
585
- decl("space-card-inset-x", `${space.scale.xs}px`),
586
- decl("space-section-gap", `${space.anchors.stackSm}px`)
587
- ];
588
- }
589
- function mobileLadderBlock(space) {
590
- return `${MOBILE_MEDIA} {
591
- :root {
592
- ${indent(spaceMobileDecls(space).join("\n"))}
593
- }
594
- }`;
595
- }
596
- function buildPaletteCss(opts = {}, data = buildPaletteData()) {
597
- const groups = opts.groups ?? {};
598
- const legacyAliases = opts.legacyAliases ?? true;
599
- const only = opts.only ?? "all";
600
- const extraDerived = (opts.derived ?? []).map((d) => ` ${d}`).join("\n");
601
- const derivedBlock = frameworkDerived(data, only, legacyAliases);
602
- const derived = extraDerived ? `${derivedBlock}
603
- ${extraDerived}` : derivedBlock;
604
- const side = (s) => {
605
- const extra = Object.entries(groups).map(([prefix, map]) => groupSide(prefix, map, s)).join("\n");
606
- const framework = frameworkPrimitives(s, data, legacyAliases);
607
- return extra ? `${framework}
608
- ${extra}` : framework;
609
- };
610
- const rootBlock = only === "core" ? `:root {
611
- ${derived}
612
- }
613
- ${coarseHitBlock}` : `:root {
614
- ${derived}
615
- }
616
- ${mobileLadderBlock(DEFAULT_SPACE_VALUES)}
617
- ${coarseHitBlock}`;
618
- if (opts.scheme === void 0 && opts.defaultScheme === void 0 && !opts.mediaFallback) {
619
- return `${rootBlock}
620
- :root,
621
- html[data-mantine-color-scheme='dark'] {
622
- ${side("dark")}
623
- }
624
- html[data-mantine-color-scheme='light'] {
625
- ${side("light")}
626
- }`;
627
- }
628
- const attribute = opts.scheme?.attribute ?? MANTINE_SCHEME_ATTRIBUTE;
629
- const value = {
630
- dark: opts.scheme?.darkValue ?? "dark",
631
- light: opts.scheme?.lightValue ?? "light"
632
- };
633
- const defaultScheme = opts.defaultScheme ?? "dark";
634
- const order = defaultScheme === "light" ? ["light", "dark"] : ["dark", "light"];
635
- const blocks = [rootBlock];
636
- for (const s of order) {
637
- const selector = s === defaultScheme ? `:root,
638
- :root[${attribute}='${value[s]}']` : `:root[${attribute}='${value[s]}']`;
639
- if (opts.mediaFallback === true && s !== defaultScheme) {
640
- blocks.push(`@media (prefers-color-scheme: ${s}) {
641
- :root {
642
- ${indent(side(s))}
643
- }
644
- }`);
645
- }
646
- blocks.push(`${selector} {
647
- ${side(s)}
648
- }`);
649
- }
650
- return blocks.join("\n");
651
- }
652
- const FONT_VAR_NAMES = {
653
- sans: "--basalt-font-sans",
654
- head: "--basalt-font-head",
655
- mono: "--basalt-font-mono"
656
- };
657
- function buildFontsCss(fonts) {
658
- if (!fonts) return "";
659
- const decls = Object.keys(FONT_VAR_NAMES).filter((key) => fonts[key] !== void 0).map((key) => {
660
- const value = fonts[key];
661
- if (/[{};]|\/\*/.test(value)) {
662
- throw new Error(
663
- `Invalid fonts.${key}: a font-family stack must not contain "{", "}", ";" or "/*" \u2014 got ${JSON.stringify(value)}`
664
- );
665
- }
666
- return ` ${FONT_VAR_NAMES[key]}: ${value};`;
667
- });
668
- if (decls.length === 0) return "";
669
- return `:root {
670
- ${decls.join("\n")}
671
- }`;
672
- }
673
- function buildRadiusCss(radius) {
674
- if (!radius) return "";
675
- return `:root {
676
- --vx-radius-card: ${radius.card}px;
677
- --vx-radius-ctrl: ${radius.ctrl}px;
678
- --vx-radius-tight: ${radius.tight}px;
679
- --vx-radius-fine: ${radius.fine}px;
680
- --vx-radius-floating: ${radius.floating}px;
681
- }`;
682
- }
683
- function buildDensityCss(space) {
684
- if (!space) return "";
685
- return `:root {
686
- ${spaceDecls(space).join("\n")}
687
- }
688
- ${mobileLadderBlock(space)}`;
689
- }
4
+ alpha,
5
+ buildPaletteCss,
6
+ defineSeries,
7
+ groupTokens,
8
+ seriesTokens,
9
+ VX
10
+ } from "./core.js";
690
11
  export {
691
12
  BP,
692
- BREAKPOINTS,
693
13
  CONTAINER_CLASSES,
694
14
  CONTAINER_GRID_BREAKPOINTS,
695
15
  CONTAINER_KEYS,
696
- DEFAULT_DERIVE_CONFIG,
697
- SIZE_CLASSES2 as SIZE_CLASSES,
698
16
  VX,
699
17
  alpha,
700
- buildDensityCss,
701
- buildFontsCss,
702
18
  buildPaletteCss,
703
- buildRadiusCss,
704
- chartMargin,
705
19
  defineSeries,
706
- deriveRadius,
707
- deriveSpacing,
708
- deriveTokens,
709
20
  groupTokens,
710
21
  p,
711
- pxRem,
712
- resolveContainerClass,
713
- resolveDeriveConfig,
714
22
  seriesTokens
715
23
  };