basalt-ui 1.41.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (914) hide show
  1. package/AGENTS.md +46 -43
  2. package/CHANGELOG.md +535 -518
  3. package/MIGRATING.md +945 -37
  4. package/README.md +171 -366
  5. package/agent/rules/basalt-batteries.md +19 -74
  6. package/agent/rules/basalt-charts.md +21 -95
  7. package/agent/rules/basalt-controls.md +23 -131
  8. package/agent/rules/basalt-mantine.md +26 -99
  9. package/agent/rules/basalt-state.md +21 -103
  10. package/agent/rules/basalt-tokens.md +33 -114
  11. package/agent/skills/basalt-app/SKILL.md +229 -72
  12. package/agent/skills/basalt-charts/SKILL.md +23 -57
  13. package/agent/skills/basalt-design/SKILL.md +12 -70
  14. package/agent/templates/AGENTS-block.md.tpl +16 -26
  15. package/agent/templates/DESIGN.md.tpl +1 -1
  16. package/agent/templates/__root.tpl +9 -16
  17. package/agent/templates/main.tpl +21 -0
  18. package/agent/templates/nav.tpl +18 -0
  19. package/configs/oxlint-basalt.json +4 -10
  20. package/configs/oxlint-plugin.js +465 -844
  21. package/configs/oxlint-plugin.test.ts +661 -709
  22. package/configs/oxlint.json +10 -2
  23. package/dist/agent/ai-sdk-transport.d.ts +19 -7
  24. package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
  25. package/dist/agent/ai-sdk-transport.js +10 -7
  26. package/dist/{agent-chat → agent/chat}/composer.d.ts +16 -16
  27. package/dist/agent/chat/composer.d.ts.map +1 -0
  28. package/dist/{agent-chat → agent/chat}/composer.js +10 -9
  29. package/dist/{agent-chat → agent/chat}/message-affordances.d.ts +7 -6
  30. package/dist/agent/chat/message-affordances.d.ts.map +1 -0
  31. package/dist/agent/chat/relative-time.d.ts.map +1 -0
  32. package/dist/{agent-chat → agent/chat}/thread-feed-row.d.ts +18 -16
  33. package/dist/agent/chat/thread-feed-row.d.ts.map +1 -0
  34. package/dist/{agent-chat → agent/chat}/thread-feed-row.js +12 -11
  35. package/dist/{agent-chat → agent/chat}/thread-feed.d.ts +8 -8
  36. package/dist/agent/chat/thread-feed.d.ts.map +1 -0
  37. package/dist/{agent-chat → agent/chat}/thread-feed.js +12 -10
  38. package/dist/{agent-chat → agent/chat}/thread-message.d.ts +12 -9
  39. package/dist/agent/chat/thread-message.d.ts.map +1 -0
  40. package/dist/{agent-chat → agent/chat}/thread-message.js +15 -13
  41. package/dist/{agent-chat → agent/chat}/thread-outcome-card.d.ts +2 -2
  42. package/dist/agent/chat/thread-outcome-card.d.ts.map +1 -0
  43. package/dist/{agent-chat → agent/chat}/thread-outcome-card.js +3 -3
  44. package/dist/{agent-chat → agent/chat}/tool-chip.d.ts +5 -5
  45. package/dist/agent/chat/tool-chip.d.ts.map +1 -0
  46. package/dist/{agent-chat → agent/chat}/tool-chip.js +4 -4
  47. package/dist/agent/chat/use-keyboard-inset.d.ts.map +1 -0
  48. package/dist/{agent-chat → agent/chat}/use-keyboard-inset.js +1 -1
  49. package/dist/{agent-chat → agent/chat}/virtualize.d.ts +7 -7
  50. package/dist/agent/chat/virtualize.d.ts.map +1 -0
  51. package/dist/agent/error.d.ts +31 -0
  52. package/dist/agent/error.d.ts.map +1 -0
  53. package/dist/agent/error.js +18 -0
  54. package/dist/agent/history.d.ts +2 -36
  55. package/dist/agent/history.d.ts.map +1 -1
  56. package/dist/agent/history.js +0 -32
  57. package/dist/agent/id.d.ts +4 -5
  58. package/dist/agent/id.d.ts.map +1 -1
  59. package/dist/agent/index.d.ts +19 -52
  60. package/dist/agent/index.d.ts.map +1 -1
  61. package/dist/agent/index.js +10 -32
  62. package/dist/agent/outcome.d.ts +3 -14
  63. package/dist/agent/outcome.d.ts.map +1 -1
  64. package/dist/agent/outcome.js +0 -30
  65. package/dist/agent/part-list.d.ts +3 -3
  66. package/dist/agent/part-list.d.ts.map +1 -1
  67. package/dist/agent/parts.d.ts +23 -24
  68. package/dist/agent/parts.d.ts.map +1 -1
  69. package/dist/agent/run-committer.d.ts +23 -0
  70. package/dist/agent/run-committer.d.ts.map +1 -0
  71. package/dist/agent/run-committer.js +41 -0
  72. package/dist/agent/run-records.d.ts +77 -0
  73. package/dist/agent/run-records.d.ts.map +1 -0
  74. package/dist/agent/run-records.js +69 -0
  75. package/dist/agent/thread.d.ts +23 -47
  76. package/dist/agent/thread.d.ts.map +1 -1
  77. package/dist/agent/thread.js +3 -134
  78. package/dist/agent/transport.d.ts +6 -69
  79. package/dist/agent/transport.d.ts.map +1 -1
  80. package/dist/agent/transport.js +0 -18
  81. package/dist/agent/use-agent-thread-runs.d.ts +63 -26
  82. package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
  83. package/dist/agent/use-agent-thread-runs.js +202 -66
  84. package/dist/charts/BandStrip.d.ts +46 -0
  85. package/dist/charts/BandStrip.d.ts.map +1 -0
  86. package/dist/charts/BandStrip.js +151 -0
  87. package/dist/charts/Bars.d.ts +19 -0
  88. package/dist/charts/Bars.d.ts.map +1 -0
  89. package/dist/charts/Bars.js +77 -0
  90. package/dist/charts/CartesianChart.d.ts +57 -0
  91. package/dist/charts/CartesianChart.d.ts.map +1 -0
  92. package/dist/charts/CartesianChart.js +121 -0
  93. package/dist/charts/ChartCard.d.ts +34 -0
  94. package/dist/charts/ChartCard.d.ts.map +1 -0
  95. package/dist/charts/ChartCard.js +115 -0
  96. package/dist/charts/Donut.d.ts +25 -0
  97. package/dist/charts/Donut.d.ts.map +1 -0
  98. package/dist/charts/Donut.js +191 -0
  99. package/dist/charts/DualPanel.d.ts +47 -0
  100. package/dist/charts/DualPanel.d.ts.map +1 -0
  101. package/dist/charts/DualPanel.js +214 -0
  102. package/dist/charts/Heatmap.d.ts +41 -0
  103. package/dist/charts/Heatmap.d.ts.map +1 -0
  104. package/dist/charts/Heatmap.js +216 -0
  105. package/dist/charts/Lines.d.ts +11 -0
  106. package/dist/charts/Lines.d.ts.map +1 -0
  107. package/dist/charts/Lines.js +114 -0
  108. package/dist/charts/MirroredBars.d.ts +44 -0
  109. package/dist/charts/MirroredBars.d.ts.map +1 -0
  110. package/dist/charts/MirroredBars.js +190 -0
  111. package/dist/charts/Sparkline.d.ts +22 -0
  112. package/dist/charts/Sparkline.d.ts.map +1 -0
  113. package/dist/charts/Sparkline.js +129 -0
  114. package/dist/charts/StackedArea.d.ts +15 -0
  115. package/dist/charts/StackedArea.d.ts.map +1 -0
  116. package/dist/charts/StackedArea.js +46 -0
  117. package/dist/charts/box.d.ts +38 -0
  118. package/dist/charts/box.d.ts.map +1 -0
  119. package/dist/charts/box.js +72 -0
  120. package/dist/charts/card-context.d.ts +3 -0
  121. package/dist/charts/card-context.d.ts.map +1 -0
  122. package/dist/charts/card-context.js +7 -0
  123. package/dist/charts/chart-box.module.css +64 -0
  124. package/{src/content/article-card.module.css.d.ts → dist/charts/chart-box.module.css.d.ts} +5 -9
  125. package/dist/charts/chart-card.module.css +25 -0
  126. package/dist/{dashboard/widget-grid.module.css.d.ts → charts/chart-card.module.css.d.ts} +1 -3
  127. package/dist/charts/chart-legend.module.css +38 -0
  128. package/{src/dashboard/widget-grid.module.css.d.ts → dist/charts/chart-legend.module.css.d.ts} +3 -3
  129. package/dist/charts/compile.d.ts +62 -0
  130. package/dist/charts/compile.d.ts.map +1 -0
  131. package/dist/charts/compile.js +386 -0
  132. package/dist/charts/cursor.d.ts +50 -0
  133. package/dist/charts/cursor.d.ts.map +1 -0
  134. package/dist/charts/cursor.js +157 -0
  135. package/dist/charts/curves.d.ts +12 -0
  136. package/dist/charts/curves.d.ts.map +1 -0
  137. package/dist/charts/curves.js +86 -0
  138. package/dist/charts/donut.module.css +54 -0
  139. package/dist/{content/article-card.module.css.d.ts → charts/donut.module.css.d.ts} +2 -9
  140. package/dist/charts/host.d.ts +17 -0
  141. package/dist/charts/host.d.ts.map +1 -0
  142. package/dist/charts/host.js +35 -0
  143. package/dist/charts/index.d.ts +18 -53
  144. package/dist/charts/index.d.ts.map +1 -1
  145. package/dist/charts/index.js +17 -189
  146. package/dist/charts/legend.d.ts +23 -0
  147. package/dist/charts/legend.d.ts.map +1 -0
  148. package/dist/charts/legend.js +160 -0
  149. package/dist/charts/marks.d.ts +25 -0
  150. package/dist/charts/marks.d.ts.map +1 -0
  151. package/dist/charts/marks.js +128 -0
  152. package/dist/charts/panel.d.ts +56 -0
  153. package/dist/charts/panel.d.ts.map +1 -0
  154. package/dist/charts/panel.js +123 -0
  155. package/dist/charts/scales.d.ts +44 -0
  156. package/dist/charts/scales.d.ts.map +1 -0
  157. package/dist/charts/scales.js +163 -0
  158. package/dist/charts/sizing.d.ts +12 -0
  159. package/dist/charts/sizing.d.ts.map +1 -0
  160. package/dist/charts/sizing.js +33 -0
  161. package/dist/charts/state.d.ts +17 -0
  162. package/dist/charts/state.d.ts.map +1 -0
  163. package/dist/charts/state.js +53 -0
  164. package/dist/charts/theme.d.ts +38 -19
  165. package/dist/charts/theme.d.ts.map +1 -1
  166. package/dist/charts/theme.js +48 -26
  167. package/dist/charts/types.d.ts +227 -0
  168. package/dist/charts/types.d.ts.map +1 -0
  169. package/dist/charts/types.js +4 -0
  170. package/dist/cli/audit-allows.d.ts +4 -17
  171. package/dist/cli/audit-allows.d.ts.map +1 -1
  172. package/dist/cli/config.d.ts +14 -43
  173. package/dist/cli/config.d.ts.map +1 -1
  174. package/dist/cli/doctor-upgrade.d.ts +31 -0
  175. package/dist/cli/doctor-upgrade.d.ts.map +1 -0
  176. package/dist/cli/doctor-upgrade.js +269 -0
  177. package/dist/cli/doctor.d.ts +13 -29
  178. package/dist/cli/doctor.d.ts.map +1 -1
  179. package/dist/cli/doctor.js +51 -9
  180. package/dist/cli/help.d.ts.map +1 -1
  181. package/dist/cli/help.js +2 -4
  182. package/dist/cli/index.d.ts +48 -172
  183. package/dist/cli/index.d.ts.map +1 -1
  184. package/dist/cli/index.js +39 -132
  185. package/dist/cli/init.d.ts.map +1 -1
  186. package/dist/cli/init.js +43 -37
  187. package/dist/cli/sync.d.ts +5 -21
  188. package/dist/cli/sync.d.ts.map +1 -1
  189. package/dist/cli/sync.js +4 -23
  190. package/dist/cli/tokens-css.d.ts +7 -28
  191. package/dist/cli/tokens-css.d.ts.map +1 -1
  192. package/dist/commands/ShortcutsHelp.d.ts.map +1 -1
  193. package/dist/commands/ShortcutsHelp.js +4 -5
  194. package/dist/commands/define-commands.d.ts +15 -31
  195. package/dist/commands/define-commands.d.ts.map +1 -1
  196. package/dist/commands/define-commands.js +1 -11
  197. package/dist/commands/define-overlays.d.ts +5 -19
  198. package/dist/commands/define-overlays.d.ts.map +1 -1
  199. package/dist/commands/define-overlays.js +3 -11
  200. package/dist/commands/index.d.ts +10 -40
  201. package/dist/commands/index.d.ts.map +1 -1
  202. package/dist/commands/index.js +9 -46
  203. package/dist/{notifications → commands/notifications}/bell.d.ts +1 -1
  204. package/dist/commands/notifications/bell.d.ts.map +1 -0
  205. package/dist/{notifications → commands/notifications}/center.d.ts +2 -2
  206. package/dist/commands/notifications/center.d.ts.map +1 -0
  207. package/dist/{notifications → commands/notifications}/center.js +2 -2
  208. package/dist/{notifications → commands/notifications}/define-notifications.d.ts +3 -3
  209. package/dist/commands/notifications/define-notifications.d.ts.map +1 -0
  210. package/dist/commands/notifications/notify.d.ts +44 -0
  211. package/dist/commands/notifications/notify.d.ts.map +1 -0
  212. package/dist/commands/notifications/notify.js +79 -0
  213. package/dist/{notifications → commands/notifications}/store.d.ts +2 -0
  214. package/dist/commands/notifications/store.d.ts.map +1 -0
  215. package/dist/{notifications → commands/notifications}/store.js +4 -0
  216. package/dist/commands/projectors.d.ts +1 -131
  217. package/dist/commands/projectors.d.ts.map +1 -1
  218. package/dist/commands/projectors.js +2 -73
  219. package/dist/commands/shell-bridge.d.ts +3 -3
  220. package/dist/commands/shortcut-format.d.ts +5 -4
  221. package/dist/commands/shortcut-format.d.ts.map +1 -1
  222. package/dist/common/errors.d.ts +3 -3
  223. package/dist/common/use-measured-widths.d.ts.map +1 -1
  224. package/dist/common/use-measured-widths.js +5 -3
  225. package/dist/common/validate.d.ts +2 -2
  226. package/dist/content/article-layout.d.ts.map +1 -1
  227. package/dist/content/article-layout.js +3 -3
  228. package/dist/content/article-model.d.ts +1 -46
  229. package/dist/content/article-model.d.ts.map +1 -1
  230. package/dist/content/article-model.js +1 -29
  231. package/dist/content/index.d.ts +11 -41
  232. package/dist/content/index.d.ts.map +1 -1
  233. package/dist/content/index.js +3 -35
  234. package/dist/content/markdown.d.ts +1 -1
  235. package/dist/content/markdown.d.ts.map +1 -1
  236. package/dist/content/markdown.js +1 -1
  237. package/dist/content/mermaid.d.ts.map +1 -1
  238. package/dist/content/mermaid.js +7 -7
  239. package/dist/content/slug.d.ts +1 -8
  240. package/dist/content/slug.d.ts.map +1 -1
  241. package/dist/content/slug.js +1 -8
  242. package/dist/content/url-hardening.d.ts +2 -2
  243. package/dist/content/url-hardening.d.ts.map +1 -1
  244. package/dist/content/url-hardening.js +2 -0
  245. package/dist/controls/actions.d.ts +16 -1
  246. package/dist/controls/actions.d.ts.map +1 -1
  247. package/dist/controls/enum-filter.d.ts +1 -1
  248. package/dist/controls/enum-filter.d.ts.map +1 -1
  249. package/dist/controls/filter-context.d.ts.map +1 -1
  250. package/dist/controls/filter-context.js +3 -1
  251. package/dist/controls/filter-set.js +4 -6
  252. package/dist/controls/form-layout.d.ts +1 -1
  253. package/dist/controls/form-layout.d.ts.map +1 -1
  254. package/dist/controls/form-layout.js +1 -1
  255. package/dist/controls/glyphs.d.ts +0 -2
  256. package/dist/controls/glyphs.d.ts.map +1 -1
  257. package/dist/controls/glyphs.js +0 -7
  258. package/dist/controls/index.d.ts +12 -17
  259. package/dist/controls/index.d.ts.map +1 -1
  260. package/dist/controls/index.js +5 -39
  261. package/dist/controls/multi-select-filter.d.ts +4 -3
  262. package/dist/controls/multi-select-filter.d.ts.map +1 -1
  263. package/dist/controls/number-filter.d.ts +4 -3
  264. package/dist/controls/number-filter.d.ts.map +1 -1
  265. package/dist/controls/number-filter.js +3 -1
  266. package/dist/controls/range-filter.d.ts +4 -3
  267. package/dist/controls/range-filter.d.ts.map +1 -1
  268. package/dist/controls/search-filter.d.ts +4 -3
  269. package/dist/controls/search-filter.d.ts.map +1 -1
  270. package/dist/controls/search-filter.js +19 -14
  271. package/dist/controls/select-filter.d.ts +4 -3
  272. package/dist/controls/select-filter.d.ts.map +1 -1
  273. package/dist/controls/sync-button.d.ts.map +1 -1
  274. package/dist/controls/sync-button.js +12 -15
  275. package/dist/controls/toggle-filter.d.ts +4 -3
  276. package/dist/controls/toggle-filter.d.ts.map +1 -1
  277. package/dist/controls/uncontrolled.d.ts +12 -0
  278. package/dist/controls/uncontrolled.d.ts.map +1 -0
  279. package/dist/controls/view-tabs.d.ts +2 -2
  280. package/dist/controls/view-tabs.d.ts.map +1 -1
  281. package/dist/controls-dates/index.d.ts +0 -1
  282. package/dist/controls-dates/index.d.ts.map +1 -1
  283. package/dist/dashboard/index.d.ts +7 -9
  284. package/dist/dashboard/index.d.ts.map +1 -1
  285. package/dist/dashboard/index.js +3 -23
  286. package/dist/dashboard/section.d.ts +4 -6
  287. package/dist/dashboard/section.d.ts.map +1 -1
  288. package/dist/dashboard/section.js +4 -10
  289. package/dist/dashboard/stat-card.d.ts +4 -4
  290. package/dist/dashboard/stat-card.d.ts.map +1 -1
  291. package/dist/dashboard/stat-card.js +3 -3
  292. package/dist/dashboard/widget-header.module.css +9 -7
  293. package/dist/dev-dock.d.ts.map +1 -1
  294. package/dist/dev-dock.js +6 -1
  295. package/dist/format/date.d.ts +0 -34
  296. package/dist/format/date.d.ts.map +1 -1
  297. package/dist/format/date.js +0 -54
  298. package/dist/format/index.d.ts +7 -22
  299. package/dist/format/index.d.ts.map +1 -1
  300. package/dist/format/index.js +2 -43
  301. package/dist/format/number.d.ts +3 -14
  302. package/dist/format/number.d.ts.map +1 -1
  303. package/dist/format/number.js +0 -13
  304. package/dist/format/shared.d.ts +2 -3
  305. package/dist/format/shared.d.ts.map +1 -1
  306. package/dist/forms/index.d.ts +0 -11
  307. package/dist/forms/index.d.ts.map +1 -1
  308. package/dist/forms/index.js +1 -14
  309. package/dist/guard/index.d.ts +6 -21
  310. package/dist/guard/index.d.ts.map +1 -1
  311. package/dist/guard/index.js +27 -115
  312. package/dist/guard/types.d.ts +7 -18
  313. package/dist/guard/types.d.ts.map +1 -1
  314. package/dist/index.d.ts +16 -48
  315. package/dist/index.d.ts.map +1 -1
  316. package/dist/index.js +21 -117
  317. package/dist/provider/create-router.d.ts +44 -0
  318. package/dist/provider/create-router.d.ts.map +1 -0
  319. package/dist/provider/create-router.js +62 -0
  320. package/dist/provider/hotkeys.d.ts +8 -0
  321. package/dist/provider/hotkeys.d.ts.map +1 -0
  322. package/dist/provider/hotkeys.js +50 -0
  323. package/dist/provider/index.d.ts +33 -110
  324. package/dist/provider/index.d.ts.map +1 -1
  325. package/dist/provider/index.js +182 -82
  326. package/dist/provider/lab-theme.d.ts.map +1 -1
  327. package/dist/provider/route-transition.d.ts +76 -0
  328. package/dist/provider/route-transition.d.ts.map +1 -0
  329. package/dist/provider/route-transition.js +98 -0
  330. package/dist/provider/spotlight-actions.d.ts +10 -0
  331. package/dist/provider/spotlight-actions.d.ts.map +1 -0
  332. package/dist/provider/spotlight-actions.js +55 -0
  333. package/dist/provider/test-router.d.ts +6 -0
  334. package/dist/provider/test-router.d.ts.map +1 -0
  335. package/dist/provider/test-router.js +18 -0
  336. package/dist/query-client.d.ts +4 -20
  337. package/dist/query-client.d.ts.map +1 -1
  338. package/dist/query-client.js +2 -2
  339. package/dist/router-tanstack/index.d.ts +18 -64
  340. package/dist/router-tanstack/index.d.ts.map +1 -1
  341. package/dist/router-tanstack/index.js +2 -16
  342. package/dist/router-tanstack/nav.d.ts +12 -1
  343. package/dist/router-tanstack/nav.d.ts.map +1 -1
  344. package/dist/router-tanstack/nav.js +8 -1
  345. package/dist/router-tanstack/search-store.d.ts +1 -1
  346. package/dist/router-tanstack/search-store.d.ts.map +1 -1
  347. package/dist/router-tanstack/use-nav.d.ts +8 -9
  348. package/dist/router-tanstack/use-nav.d.ts.map +1 -1
  349. package/dist/router-tanstack/use-nav.js +20 -1
  350. package/dist/shell/app-mobile-nav.d.ts.map +1 -1
  351. package/dist/shell/app-sidebar.js +1 -1
  352. package/dist/shell/index.d.ts +31 -10
  353. package/dist/shell/index.d.ts.map +1 -1
  354. package/dist/shell/index.js +14 -3
  355. package/dist/shell/page-aside.d.ts +2 -2
  356. package/dist/shell/page-aside.d.ts.map +1 -1
  357. package/dist/shell/page-aside.js +31 -12
  358. package/dist/shell/page-bar.d.ts +2 -2
  359. package/dist/shell/page-bar.d.ts.map +1 -1
  360. package/dist/shell/page-bar.js +1 -1
  361. package/dist/state.d.ts +10 -12
  362. package/dist/state.d.ts.map +1 -1
  363. package/dist/state.js +4 -6
  364. package/dist/styles.css +107 -7
  365. package/dist/surfaces.d.ts +28 -103
  366. package/dist/surfaces.d.ts.map +1 -1
  367. package/dist/surfaces.js +54 -143
  368. package/dist/{data → table}/data-table-state.d.ts +1 -1
  369. package/dist/table/data-table-state.d.ts.map +1 -0
  370. package/dist/{data → table}/data-table-state.js +4 -3
  371. package/dist/{data → table}/data-table.d.ts +28 -49
  372. package/dist/table/data-table.d.ts.map +1 -0
  373. package/dist/{data → table}/data-table.js +74 -60
  374. package/dist/table/index.d.ts +18 -0
  375. package/dist/table/index.d.ts.map +1 -0
  376. package/dist/{data/table.js → table/index.js} +1 -1
  377. package/dist/table/query-branch.d.ts.map +1 -0
  378. package/dist/table/table-features.d.ts +69 -0
  379. package/dist/table/table-features.d.ts.map +1 -0
  380. package/dist/table/table-features.js +49 -0
  381. package/dist/telemetry.d.ts +77 -0
  382. package/dist/telemetry.d.ts.map +1 -0
  383. package/dist/telemetry.js +33 -0
  384. package/dist/theme/index.d.ts +10 -21
  385. package/dist/theme/index.d.ts.map +1 -1
  386. package/dist/theme/index.js +3 -14
  387. package/dist/theme/theme-toggle.d.ts.map +1 -1
  388. package/dist/theme/theme-toggle.js +7 -33
  389. package/dist/theme/theme-toggle.module.css +30 -0
  390. package/dist/theme/theme-toggle.module.css.d.ts +10 -0
  391. package/dist/theme-lab/derive-controls.d.ts.map +1 -1
  392. package/dist/theme-lab/derive-controls.js +5 -3
  393. package/dist/theme-lab/derive-state.d.ts.map +1 -1
  394. package/dist/theme-lab/derive-state.js +2 -1
  395. package/dist/tokens/core.d.ts +360 -0
  396. package/dist/tokens/core.d.ts.map +1 -0
  397. package/dist/tokens/core.js +708 -0
  398. package/dist/tokens/derive.d.ts +1 -1
  399. package/dist/tokens/derive.d.ts.map +1 -1
  400. package/dist/tokens/index.d.ts +5 -373
  401. package/dist/tokens/index.d.ts.map +1 -1
  402. package/dist/tokens/index.js +8 -700
  403. package/dist/tokens/palette.d.ts +2 -6
  404. package/dist/tokens/palette.d.ts.map +1 -1
  405. package/dist/tokens/palette.js +1 -4
  406. package/dist/vite.d.ts +4 -3
  407. package/dist/vite.d.ts.map +1 -1
  408. package/llms.txt +43 -85
  409. package/package.json +77 -170
  410. package/src/agent/ai-sdk-transport.ts +57 -37
  411. package/src/{agent-chat → agent/chat}/composer.tsx +29 -30
  412. package/src/{agent-chat → agent/chat}/message-affordances.ts +8 -5
  413. package/src/{agent-chat → agent/chat}/thread-feed-row.tsx +30 -35
  414. package/src/{agent-chat → agent/chat}/thread-feed.tsx +40 -35
  415. package/src/{agent-chat → agent/chat}/thread-message.tsx +37 -35
  416. package/src/{agent-chat → agent/chat}/thread-outcome-card.tsx +5 -5
  417. package/src/{agent-chat → agent/chat}/tool-chip.tsx +12 -12
  418. package/src/{agent-chat → agent/chat}/use-keyboard-inset.ts +1 -1
  419. package/src/{agent-chat → agent/chat}/virtualize.ts +5 -5
  420. package/src/agent/error.ts +43 -0
  421. package/src/agent/history.ts +2 -107
  422. package/src/agent/id.ts +4 -5
  423. package/src/agent/index.ts +23 -112
  424. package/src/agent/outcome.ts +3 -56
  425. package/src/agent/part-list.tsx +3 -3
  426. package/src/agent/parts.ts +23 -22
  427. package/src/agent/run-committer.ts +64 -0
  428. package/src/agent/run-records.ts +147 -0
  429. package/src/agent/thread.ts +24 -231
  430. package/src/agent/transport.ts +6 -96
  431. package/src/agent/use-agent-thread-runs.ts +364 -199
  432. package/src/charts/BandStrip.tsx +276 -0
  433. package/src/charts/Bars.tsx +141 -0
  434. package/src/charts/CartesianChart.tsx +206 -0
  435. package/src/charts/ChartCard.tsx +178 -0
  436. package/src/charts/Donut.tsx +256 -0
  437. package/src/charts/DualPanel.tsx +326 -0
  438. package/src/charts/Heatmap.tsx +282 -0
  439. package/src/charts/Lines.tsx +151 -0
  440. package/src/charts/MirroredBars.tsx +303 -0
  441. package/src/charts/Sparkline.tsx +176 -0
  442. package/src/charts/StackedArea.tsx +80 -0
  443. package/src/charts/box.tsx +96 -0
  444. package/src/charts/card-context.ts +11 -0
  445. package/src/charts/chart-box.module.css +64 -0
  446. package/src/charts/chart-box.module.css.d.ts +12 -0
  447. package/src/charts/chart-card.module.css +25 -0
  448. package/src/charts/chart-card.module.css.d.ts +8 -0
  449. package/src/charts/chart-legend.module.css +38 -0
  450. package/src/charts/chart-legend.module.css.d.ts +10 -0
  451. package/src/charts/compile.ts +585 -0
  452. package/src/charts/cursor.ts +282 -0
  453. package/src/charts/curves.ts +111 -0
  454. package/src/charts/donut.module.css +54 -0
  455. package/src/charts/donut.module.css.d.ts +9 -0
  456. package/src/charts/host.tsx +60 -0
  457. package/src/charts/index.ts +41 -178
  458. package/src/charts/legend.tsx +204 -0
  459. package/src/charts/marks.ts +201 -0
  460. package/src/charts/panel.tsx +227 -0
  461. package/src/charts/scales.ts +237 -0
  462. package/src/charts/sizing.ts +47 -0
  463. package/src/charts/state.tsx +80 -0
  464. package/src/charts/theme.ts +65 -0
  465. package/src/charts/types.ts +242 -0
  466. package/src/cli/audit-allows.ts +8 -30
  467. package/src/cli/config.ts +14 -43
  468. package/src/cli/doctor-upgrade.ts +392 -0
  469. package/src/cli/doctor.ts +81 -72
  470. package/src/cli/help.ts +2 -4
  471. package/src/cli/index.ts +100 -384
  472. package/src/cli/init.ts +60 -51
  473. package/src/cli/sync.ts +13 -68
  474. package/src/cli/tokens-css.ts +7 -28
  475. package/src/commands/ShortcutsHelp.tsx +8 -9
  476. package/src/commands/define-commands.ts +16 -43
  477. package/src/commands/define-overlays.ts +12 -36
  478. package/src/commands/index.ts +11 -94
  479. package/src/{notifications → commands/notifications}/bell.tsx +2 -2
  480. package/src/{notifications → commands/notifications}/center.tsx +7 -5
  481. package/src/{notifications → commands/notifications}/define-notifications.ts +3 -3
  482. package/src/commands/notifications/notify.tsx +158 -0
  483. package/src/{notifications → commands/notifications}/store.ts +10 -2
  484. package/src/commands/projectors.ts +5 -225
  485. package/src/commands/shell-bridge.ts +5 -5
  486. package/src/commands/shortcut-format.ts +5 -4
  487. package/src/common/errors.ts +3 -3
  488. package/src/common/use-measured-widths.ts +6 -3
  489. package/src/common/validate.ts +2 -2
  490. package/src/content/article-layout.tsx +37 -38
  491. package/src/content/article-model.ts +1 -84
  492. package/src/content/index.ts +12 -83
  493. package/src/content/markdown.tsx +4 -3
  494. package/src/content/mermaid.tsx +9 -7
  495. package/src/content/slug.ts +1 -16
  496. package/src/content/url-hardening.ts +8 -2
  497. package/src/controls/actions.tsx +24 -1
  498. package/src/controls/enum-filter.tsx +1 -1
  499. package/src/controls/filter-context.tsx +3 -1
  500. package/src/controls/filter-set.tsx +5 -7
  501. package/src/controls/form-layout.tsx +2 -2
  502. package/src/controls/glyphs.tsx +0 -10
  503. package/src/controls/index.ts +13 -64
  504. package/src/controls/multi-select-filter.tsx +5 -4
  505. package/src/controls/number-filter.tsx +8 -4
  506. package/src/controls/range-filter.tsx +5 -4
  507. package/src/controls/search-filter.tsx +25 -19
  508. package/src/controls/select-filter.tsx +5 -4
  509. package/src/controls/sync-button.tsx +18 -20
  510. package/src/controls/toggle-filter.tsx +5 -4
  511. package/src/controls/uncontrolled.ts +12 -0
  512. package/src/controls/view-tabs.tsx +3 -3
  513. package/src/controls-dates/date-range-picker.tsx +1 -1
  514. package/src/controls-dates/index.ts +0 -1
  515. package/src/dashboard/index.ts +7 -48
  516. package/src/dashboard/section.tsx +11 -40
  517. package/src/dashboard/stat-card.tsx +14 -16
  518. package/src/dashboard/widget-header.module.css +9 -7
  519. package/src/dev-dock.tsx +14 -27
  520. package/src/format/date.ts +2 -92
  521. package/src/format/index.ts +7 -53
  522. package/src/format/number.ts +3 -26
  523. package/src/format/shared.ts +2 -3
  524. package/src/forms/index.ts +0 -23
  525. package/src/guard/index.ts +36 -191
  526. package/src/guard/types.ts +6 -19
  527. package/src/index.ts +30 -282
  528. package/src/provider/create-router.tsx +138 -0
  529. package/src/provider/hotkeys.ts +70 -0
  530. package/src/provider/index.tsx +260 -230
  531. package/src/provider/lab-theme.ts +3 -2
  532. package/src/provider/route-transition.ts +199 -0
  533. package/src/provider/spotlight-actions.tsx +69 -0
  534. package/src/provider/test-router.tsx +25 -0
  535. package/src/query-client.ts +4 -22
  536. package/src/router-tanstack/index.ts +18 -112
  537. package/src/router-tanstack/nav.ts +28 -2
  538. package/src/router-tanstack/search-store.ts +9 -2
  539. package/src/router-tanstack/use-nav.ts +47 -13
  540. package/src/shell/app-mobile-nav.tsx +3 -2
  541. package/src/shell/app-sidebar.tsx +1 -1
  542. package/src/shell/aside-docking.ts +1 -1
  543. package/src/shell/index.tsx +61 -20
  544. package/src/shell/page-aside.tsx +47 -23
  545. package/src/shell/page-bar.tsx +3 -3
  546. package/src/shell/page-title.tsx +1 -1
  547. package/src/state.ts +11 -37
  548. package/src/styles.css +107 -7
  549. package/src/surfaces.ts +56 -151
  550. package/src/{data → table}/data-table-state.ts +5 -4
  551. package/src/{data → table}/data-table.tsx +170 -161
  552. package/src/table/index.ts +18 -0
  553. package/src/table/table-features.ts +102 -0
  554. package/src/telemetry.ts +110 -0
  555. package/src/theme/index.ts +22 -47
  556. package/src/theme/theme-toggle.module.css +30 -0
  557. package/src/theme/theme-toggle.module.css.d.ts +10 -0
  558. package/src/theme/theme-toggle.tsx +15 -43
  559. package/src/theme-lab/derive-controls.tsx +5 -3
  560. package/src/theme-lab/derive-state.ts +2 -1
  561. package/src/tokens/core.ts +1163 -0
  562. package/src/tokens/derive.ts +1 -1
  563. package/src/tokens/index.ts +14 -1181
  564. package/src/tokens/palette.ts +3 -7
  565. package/src/vite.ts +3 -3
  566. package/agent/templates/query-client.ts.tpl +0 -26
  567. package/dist/agent/adapter.d.ts +0 -150
  568. package/dist/agent/adapter.d.ts.map +0 -1
  569. package/dist/agent/adapter.js +0 -482
  570. package/dist/agent/use-agent-stream.d.ts +0 -35
  571. package/dist/agent/use-agent-stream.d.ts.map +0 -1
  572. package/dist/agent/use-agent-stream.js +0 -59
  573. package/dist/agent-chat/composer.d.ts.map +0 -1
  574. package/dist/agent-chat/index.d.ts +0 -31
  575. package/dist/agent-chat/index.d.ts.map +0 -1
  576. package/dist/agent-chat/index.js +0 -19
  577. package/dist/agent-chat/message-affordances.d.ts.map +0 -1
  578. package/dist/agent-chat/relative-time.d.ts.map +0 -1
  579. package/dist/agent-chat/thread-detail-panel.d.ts +0 -28
  580. package/dist/agent-chat/thread-detail-panel.d.ts.map +0 -1
  581. package/dist/agent-chat/thread-detail-panel.js +0 -115
  582. package/dist/agent-chat/thread-feed-row.d.ts.map +0 -1
  583. package/dist/agent-chat/thread-feed.d.ts.map +0 -1
  584. package/dist/agent-chat/thread-message.d.ts.map +0 -1
  585. package/dist/agent-chat/thread-outcome-card.d.ts.map +0 -1
  586. package/dist/agent-chat/thread-workspace.d.ts +0 -44
  587. package/dist/agent-chat/thread-workspace.d.ts.map +0 -1
  588. package/dist/agent-chat/thread-workspace.js +0 -153
  589. package/dist/agent-chat/tool-chip.d.ts.map +0 -1
  590. package/dist/agent-chat/use-keyboard-inset.d.ts.map +0 -1
  591. package/dist/agent-chat/virtualize.d.ts.map +0 -1
  592. package/dist/charts/cursor/resolve.d.ts +0 -75
  593. package/dist/charts/cursor/resolve.d.ts.map +0 -1
  594. package/dist/charts/cursor/resolve.js +0 -91
  595. package/dist/charts/cursor/scope.d.ts +0 -20
  596. package/dist/charts/cursor/scope.d.ts.map +0 -1
  597. package/dist/charts/cursor/scope.js +0 -20
  598. package/dist/charts/cursor/store.d.ts +0 -35
  599. package/dist/charts/cursor/store.d.ts.map +0 -1
  600. package/dist/charts/cursor/store.js +0 -25
  601. package/dist/charts/cursor/touch-pin.d.ts +0 -45
  602. package/dist/charts/cursor/touch-pin.d.ts.map +0 -1
  603. package/dist/charts/cursor/touch-pin.js +0 -79
  604. package/dist/charts/hooks/use-discrete-cursor.d.ts +0 -66
  605. package/dist/charts/hooks/use-discrete-cursor.d.ts.map +0 -1
  606. package/dist/charts/hooks/use-discrete-cursor.js +0 -198
  607. package/dist/charts/hooks/use-hysteresis.d.ts +0 -18
  608. package/dist/charts/hooks/use-hysteresis.d.ts.map +0 -1
  609. package/dist/charts/hooks/use-hysteresis.js +0 -12
  610. package/dist/charts/hooks/useBandPlot.d.ts +0 -145
  611. package/dist/charts/hooks/useBandPlot.d.ts.map +0 -1
  612. package/dist/charts/hooks/useBandPlot.js +0 -178
  613. package/dist/charts/hooks/useChartCursor.d.ts +0 -75
  614. package/dist/charts/hooks/useChartCursor.d.ts.map +0 -1
  615. package/dist/charts/hooks/useChartCursor.js +0 -200
  616. package/dist/charts/hooks/useChartSize.d.ts +0 -29
  617. package/dist/charts/hooks/useChartSize.d.ts.map +0 -1
  618. package/dist/charts/hooks/useChartSize.js +0 -8
  619. package/dist/charts/kinds/BandStrip.d.ts +0 -132
  620. package/dist/charts/kinds/BandStrip.d.ts.map +0 -1
  621. package/dist/charts/kinds/BandStrip.js +0 -241
  622. package/dist/charts/kinds/Bars.d.ts +0 -141
  623. package/dist/charts/kinds/Bars.d.ts.map +0 -1
  624. package/dist/charts/kinds/Bars.js +0 -343
  625. package/dist/charts/kinds/Donut.d.ts +0 -77
  626. package/dist/charts/kinds/Donut.d.ts.map +0 -1
  627. package/dist/charts/kinds/Donut.js +0 -245
  628. package/dist/charts/kinds/DualPanel.d.ts +0 -111
  629. package/dist/charts/kinds/DualPanel.d.ts.map +0 -1
  630. package/dist/charts/kinds/DualPanel.js +0 -471
  631. package/dist/charts/kinds/Heatmap.d.ts +0 -85
  632. package/dist/charts/kinds/Heatmap.d.ts.map +0 -1
  633. package/dist/charts/kinds/Heatmap.js +0 -243
  634. package/dist/charts/kinds/MirroredBars.d.ts +0 -98
  635. package/dist/charts/kinds/MirroredBars.d.ts.map +0 -1
  636. package/dist/charts/kinds/MirroredBars.js +0 -292
  637. package/dist/charts/kinds/MultiLine.d.ts +0 -87
  638. package/dist/charts/kinds/MultiLine.d.ts.map +0 -1
  639. package/dist/charts/kinds/MultiLine.js +0 -176
  640. package/dist/charts/kinds/StackedArea.d.ts +0 -73
  641. package/dist/charts/kinds/StackedArea.d.ts.map +0 -1
  642. package/dist/charts/kinds/StackedArea.js +0 -135
  643. package/dist/charts/kinds/ZonedLine.d.ts +0 -97
  644. package/dist/charts/kinds/ZonedLine.d.ts.map +0 -1
  645. package/dist/charts/kinds/ZonedLine.js +0 -155
  646. package/dist/charts/kinds/band-chrome.d.ts +0 -31
  647. package/dist/charts/kinds/band-chrome.d.ts.map +0 -1
  648. package/dist/charts/kinds/band-chrome.js +0 -71
  649. package/dist/charts/kinds/donut-layout.d.ts +0 -47
  650. package/dist/charts/kinds/donut-layout.d.ts.map +0 -1
  651. package/dist/charts/kinds/donut-layout.js +0 -52
  652. package/dist/charts/layout/auto-margin.d.ts +0 -122
  653. package/dist/charts/layout/auto-margin.d.ts.map +0 -1
  654. package/dist/charts/layout/auto-margin.js +0 -81
  655. package/dist/charts/layout/end-labels.d.ts +0 -64
  656. package/dist/charts/layout/end-labels.d.ts.map +0 -1
  657. package/dist/charts/layout/end-labels.js +0 -76
  658. package/dist/charts/layout/log-ticks.d.ts +0 -27
  659. package/dist/charts/layout/log-ticks.d.ts.map +0 -1
  660. package/dist/charts/layout/log-ticks.js +0 -42
  661. package/dist/charts/primitives/AreaGradient.d.ts +0 -18
  662. package/dist/charts/primitives/AreaGradient.d.ts.map +0 -1
  663. package/dist/charts/primitives/AreaGradient.js +0 -13
  664. package/dist/charts/primitives/Axes.d.ts +0 -83
  665. package/dist/charts/primitives/Axes.d.ts.map +0 -1
  666. package/dist/charts/primitives/Axes.js +0 -168
  667. package/dist/charts/primitives/CartesianChart.d.ts +0 -257
  668. package/dist/charts/primitives/CartesianChart.d.ts.map +0 -1
  669. package/dist/charts/primitives/CartesianChart.js +0 -549
  670. package/dist/charts/primitives/ChartCard.d.ts +0 -66
  671. package/dist/charts/primitives/ChartCard.d.ts.map +0 -1
  672. package/dist/charts/primitives/ChartCard.js +0 -143
  673. package/dist/charts/primitives/ChartFrame.d.ts +0 -156
  674. package/dist/charts/primitives/ChartFrame.d.ts.map +0 -1
  675. package/dist/charts/primitives/ChartFrame.js +0 -241
  676. package/dist/charts/primitives/ChartLegend.d.ts +0 -67
  677. package/dist/charts/primitives/ChartLegend.d.ts.map +0 -1
  678. package/dist/charts/primitives/ChartLegend.js +0 -292
  679. package/dist/charts/primitives/ChartPending.d.ts +0 -113
  680. package/dist/charts/primitives/ChartPending.d.ts.map +0 -1
  681. package/dist/charts/primitives/ChartPending.js +0 -117
  682. package/dist/charts/primitives/ChartTooltip.d.ts +0 -59
  683. package/dist/charts/primitives/ChartTooltip.d.ts.map +0 -1
  684. package/dist/charts/primitives/ChartTooltip.js +0 -197
  685. package/dist/charts/primitives/Crosshair.d.ts +0 -26
  686. package/dist/charts/primitives/Crosshair.d.ts.map +0 -1
  687. package/dist/charts/primitives/Crosshair.js +0 -23
  688. package/dist/charts/primitives/HatchPattern.d.ts +0 -31
  689. package/dist/charts/primitives/HatchPattern.d.ts.map +0 -1
  690. package/dist/charts/primitives/HatchPattern.js +0 -31
  691. package/dist/charts/primitives/HoverOverlay.d.ts +0 -45
  692. package/dist/charts/primitives/HoverOverlay.d.ts.map +0 -1
  693. package/dist/charts/primitives/HoverOverlay.js +0 -72
  694. package/dist/charts/primitives/HoverOverlay.module.css +0 -13
  695. package/dist/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  696. package/dist/charts/primitives/XZoneRects.d.ts +0 -54
  697. package/dist/charts/primitives/XZoneRects.d.ts.map +0 -1
  698. package/dist/charts/primitives/XZoneRects.js +0 -65
  699. package/dist/charts/primitives/ZoneRects.d.ts +0 -38
  700. package/dist/charts/primitives/ZoneRects.d.ts.map +0 -1
  701. package/dist/charts/primitives/ZoneRects.js +0 -30
  702. package/dist/charts/primitives/chart-card-context.d.ts +0 -33
  703. package/dist/charts/primitives/chart-card-context.d.ts.map +0 -1
  704. package/dist/charts/primitives/chart-card-context.js +0 -18
  705. package/dist/charts/primitives/chart-frame-layout.d.ts +0 -185
  706. package/dist/charts/primitives/chart-frame-layout.d.ts.map +0 -1
  707. package/dist/charts/primitives/chart-frame-layout.js +0 -175
  708. package/dist/charts/primitives/chart-layout.d.ts +0 -112
  709. package/dist/charts/primitives/chart-layout.d.ts.map +0 -1
  710. package/dist/charts/primitives/chart-layout.js +0 -175
  711. package/dist/charts/primitives/chart-tier.d.ts +0 -16
  712. package/dist/charts/primitives/chart-tier.d.ts.map +0 -1
  713. package/dist/charts/primitives/chart-tier.js +0 -44
  714. package/dist/charts/primitives/legend-disclosure.d.ts +0 -27
  715. package/dist/charts/primitives/legend-disclosure.d.ts.map +0 -1
  716. package/dist/charts/primitives/legend-disclosure.js +0 -153
  717. package/dist/charts/series.d.ts +0 -189
  718. package/dist/charts/series.d.ts.map +0 -1
  719. package/dist/charts/series.js +0 -84
  720. package/dist/charts/sparklines/BarSparkline.d.ts +0 -37
  721. package/dist/charts/sparklines/BarSparkline.d.ts.map +0 -1
  722. package/dist/charts/sparklines/BarSparkline.js +0 -53
  723. package/dist/charts/sparklines/LineSparkline.d.ts +0 -15
  724. package/dist/charts/sparklines/LineSparkline.d.ts.map +0 -1
  725. package/dist/charts/sparklines/LineSparkline.js +0 -51
  726. package/dist/charts/sparklines/index.d.ts +0 -3
  727. package/dist/charts/sparklines/index.d.ts.map +0 -1
  728. package/dist/charts/sparklines/index.js +0 -6
  729. package/dist/charts/utils/domain.d.ts +0 -35
  730. package/dist/charts/utils/domain.d.ts.map +0 -1
  731. package/dist/charts/utils/domain.js +0 -12
  732. package/dist/charts/utils/format.d.ts +0 -8
  733. package/dist/charts/utils/format.d.ts.map +0 -1
  734. package/dist/charts/utils/format.js +0 -20
  735. package/dist/charts/utils/measure-text.d.ts +0 -25
  736. package/dist/charts/utils/measure-text.d.ts.map +0 -1
  737. package/dist/charts/utils/measure-text.js +0 -64
  738. package/dist/charts/utils/ticks.d.ts +0 -103
  739. package/dist/charts/utils/ticks.d.ts.map +0 -1
  740. package/dist/charts/utils/ticks.js +0 -92
  741. package/dist/commands/overlays-mount.d.ts +0 -122
  742. package/dist/commands/overlays-mount.d.ts.map +0 -1
  743. package/dist/commands/overlays-mount.js +0 -125
  744. package/dist/commands/useCommandHotkeys.d.ts +0 -14
  745. package/dist/commands/useCommandHotkeys.d.ts.map +0 -1
  746. package/dist/commands/useCommandHotkeys.js +0 -45
  747. package/dist/content/article-actions.d.ts +0 -39
  748. package/dist/content/article-actions.d.ts.map +0 -1
  749. package/dist/content/article-actions.js +0 -28
  750. package/dist/content/article-card.d.ts +0 -58
  751. package/dist/content/article-card.d.ts.map +0 -1
  752. package/dist/content/article-card.js +0 -79
  753. package/dist/content/article-card.module.css +0 -111
  754. package/dist/content/mdx.d.ts +0 -20
  755. package/dist/content/mdx.d.ts.map +0 -1
  756. package/dist/content/mdx.js +0 -64
  757. package/dist/controls/compare-filter.d.ts +0 -42
  758. package/dist/controls/compare-filter.d.ts.map +0 -1
  759. package/dist/controls/compare-filter.js +0 -38
  760. package/dist/controls/slider-control.d.ts +0 -36
  761. package/dist/controls/slider-control.d.ts.map +0 -1
  762. package/dist/controls/slider-control.js +0 -64
  763. package/dist/dashboard/widget-grid.d.ts +0 -27
  764. package/dist/dashboard/widget-grid.d.ts.map +0 -1
  765. package/dist/dashboard/widget-grid.js +0 -40
  766. package/dist/dashboard/widget-grid.module.css +0 -69
  767. package/dist/data/data-table-state.d.ts.map +0 -1
  768. package/dist/data/data-table.d.ts.map +0 -1
  769. package/dist/data/query-branch.d.ts.map +0 -1
  770. package/dist/data/table.d.ts +0 -24
  771. package/dist/data/table.d.ts.map +0 -1
  772. package/dist/data/virtual-list.d.ts +0 -133
  773. package/dist/data/virtual-list.d.ts.map +0 -1
  774. package/dist/data/virtual-list.js +0 -157
  775. package/dist/data/virtual.d.ts +0 -21
  776. package/dist/data/virtual.d.ts.map +0 -1
  777. package/dist/data/virtual.js +0 -4
  778. package/dist/forms/FormErrorSummary.d.ts +0 -30
  779. package/dist/forms/FormErrorSummary.d.ts.map +0 -1
  780. package/dist/forms/FormErrorSummary.js +0 -30
  781. package/dist/forms/use-field-array.d.ts +0 -60
  782. package/dist/forms/use-field-array.d.ts.map +0 -1
  783. package/dist/forms/use-field-array.js +0 -20
  784. package/dist/forms/use-form-draft.d.ts +0 -76
  785. package/dist/forms/use-form-draft.d.ts.map +0 -1
  786. package/dist/forms/use-form-draft.js +0 -92
  787. package/dist/forms/use-form-submit.d.ts +0 -88
  788. package/dist/forms/use-form-submit.d.ts.map +0 -1
  789. package/dist/forms/use-form-submit.js +0 -63
  790. package/dist/notifications/bell.d.ts.map +0 -1
  791. package/dist/notifications/center.d.ts.map +0 -1
  792. package/dist/notifications/define-notifications.d.ts.map +0 -1
  793. package/dist/notifications/index.d.ts +0 -40
  794. package/dist/notifications/index.d.ts.map +0 -1
  795. package/dist/notifications/index.js +0 -54
  796. package/dist/notifications/mount-guard.d.ts +0 -8
  797. package/dist/notifications/mount-guard.d.ts.map +0 -1
  798. package/dist/notifications/mount-guard.js +0 -18
  799. package/dist/notifications/notify.d.ts +0 -149
  800. package/dist/notifications/notify.d.ts.map +0 -1
  801. package/dist/notifications/notify.js +0 -171
  802. package/dist/notifications/store.d.ts.map +0 -1
  803. package/dist/provider/connectivity-indicator.d.ts +0 -13
  804. package/dist/provider/connectivity-indicator.d.ts.map +0 -1
  805. package/dist/provider/connectivity-indicator.js +0 -205
  806. package/dist/provider/connectivity-provider.d.ts +0 -7
  807. package/dist/provider/connectivity-provider.d.ts.map +0 -1
  808. package/dist/provider/connectivity-provider.js +0 -128
  809. package/dist/provider/connectivity-types.d.ts +0 -36
  810. package/dist/provider/connectivity-types.d.ts.map +0 -1
  811. package/dist/provider/use-connectivity.d.ts +0 -3
  812. package/dist/provider/use-connectivity.d.ts.map +0 -1
  813. package/dist/provider/use-connectivity.js +0 -14
  814. package/dist/query-devtools.d.ts +0 -21
  815. package/dist/query-devtools.d.ts.map +0 -1
  816. package/dist/query-devtools.js +0 -13
  817. package/src/agent/adapter.ts +0 -945
  818. package/src/agent/use-agent-stream.ts +0 -154
  819. package/src/agent-chat/index.ts +0 -54
  820. package/src/agent-chat/thread-detail-panel.tsx +0 -201
  821. package/src/agent-chat/thread-workspace.tsx +0 -279
  822. package/src/charts/cursor/resolve.ts +0 -198
  823. package/src/charts/cursor/scope.tsx +0 -35
  824. package/src/charts/cursor/store.ts +0 -58
  825. package/src/charts/cursor/touch-pin.ts +0 -138
  826. package/src/charts/hooks/use-discrete-cursor.ts +0 -335
  827. package/src/charts/hooks/use-hysteresis.ts +0 -26
  828. package/src/charts/hooks/useBandPlot.ts +0 -383
  829. package/src/charts/hooks/useChartCursor.ts +0 -367
  830. package/src/charts/hooks/useChartSize.ts +0 -35
  831. package/src/charts/kinds/BandStrip.tsx +0 -449
  832. package/src/charts/kinds/Bars.tsx +0 -589
  833. package/src/charts/kinds/Donut.tsx +0 -368
  834. package/src/charts/kinds/DualPanel.tsx +0 -712
  835. package/src/charts/kinds/Heatmap.tsx +0 -396
  836. package/src/charts/kinds/MirroredBars.tsx +0 -469
  837. package/src/charts/kinds/MultiLine.tsx +0 -322
  838. package/src/charts/kinds/StackedArea.tsx +0 -267
  839. package/src/charts/kinds/ZonedLine.tsx +0 -301
  840. package/src/charts/kinds/band-chrome.tsx +0 -91
  841. package/src/charts/kinds/donut-layout.ts +0 -82
  842. package/src/charts/layout/auto-margin.ts +0 -242
  843. package/src/charts/layout/end-labels.ts +0 -135
  844. package/src/charts/layout/log-ticks.ts +0 -90
  845. package/src/charts/primitives/AreaGradient.tsx +0 -26
  846. package/src/charts/primitives/Axes.tsx +0 -271
  847. package/src/charts/primitives/CartesianChart.tsx +0 -1002
  848. package/src/charts/primitives/ChartCard.tsx +0 -280
  849. package/src/charts/primitives/ChartFrame.tsx +0 -493
  850. package/src/charts/primitives/ChartLegend.tsx +0 -422
  851. package/src/charts/primitives/ChartPending.tsx +0 -243
  852. package/src/charts/primitives/ChartTooltip.tsx +0 -265
  853. package/src/charts/primitives/Crosshair.tsx +0 -43
  854. package/src/charts/primitives/HatchPattern.tsx +0 -55
  855. package/src/charts/primitives/HoverOverlay.module.css +0 -13
  856. package/src/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
  857. package/src/charts/primitives/HoverOverlay.tsx +0 -109
  858. package/src/charts/primitives/XZoneRects.tsx +0 -132
  859. package/src/charts/primitives/ZoneRects.tsx +0 -67
  860. package/src/charts/primitives/chart-card-context.ts +0 -46
  861. package/src/charts/primitives/chart-frame-layout.ts +0 -430
  862. package/src/charts/primitives/chart-layout.ts +0 -318
  863. package/src/charts/primitives/chart-tier.tsx +0 -76
  864. package/src/charts/primitives/legend-disclosure.tsx +0 -178
  865. package/src/charts/series.ts +0 -276
  866. package/src/charts/sparklines/BarSparkline.tsx +0 -94
  867. package/src/charts/sparklines/LineSparkline.tsx +0 -71
  868. package/src/charts/sparklines/index.ts +0 -2
  869. package/src/charts/theme.tsx +0 -53
  870. package/src/charts/utils/domain.ts +0 -41
  871. package/src/charts/utils/format.ts +0 -19
  872. package/src/charts/utils/measure-text.ts +0 -109
  873. package/src/charts/utils/ticks.ts +0 -239
  874. package/src/commands/overlays-mount.tsx +0 -333
  875. package/src/commands/useCommandHotkeys.ts +0 -114
  876. package/src/content/article-actions.ts +0 -72
  877. package/src/content/article-card.module.css +0 -111
  878. package/src/content/article-card.tsx +0 -174
  879. package/src/content/mdx.tsx +0 -127
  880. package/src/controls/compare-filter.tsx +0 -81
  881. package/src/controls/slider-control.tsx +0 -159
  882. package/src/dashboard/widget-grid.module.css +0 -69
  883. package/src/dashboard/widget-grid.tsx +0 -146
  884. package/src/data/table.ts +0 -39
  885. package/src/data/virtual-list.tsx +0 -356
  886. package/src/data/virtual.ts +0 -26
  887. package/src/forms/FormErrorSummary.tsx +0 -71
  888. package/src/forms/use-field-array.ts +0 -94
  889. package/src/forms/use-form-draft.ts +0 -262
  890. package/src/forms/use-form-submit.ts +0 -199
  891. package/src/notifications/index.ts +0 -88
  892. package/src/notifications/mount-guard.ts +0 -38
  893. package/src/notifications/notify.tsx +0 -379
  894. package/src/provider/connectivity-indicator.tsx +0 -267
  895. package/src/provider/connectivity-provider.tsx +0 -189
  896. package/src/provider/connectivity-types.ts +0 -42
  897. package/src/provider/use-connectivity.ts +0 -26
  898. package/src/query-devtools.tsx +0 -40
  899. /package/dist/{agent-chat → agent/chat}/message-affordances.js +0 -0
  900. /package/dist/{agent-chat → agent/chat}/relative-time.d.ts +0 -0
  901. /package/dist/{agent-chat → agent/chat}/relative-time.js +0 -0
  902. /package/dist/{agent-chat → agent/chat}/use-keyboard-inset.d.ts +0 -0
  903. /package/dist/{agent-chat → agent/chat}/virtualize.js +0 -0
  904. /package/dist/{notifications → commands/notifications}/bell.js +0 -0
  905. /package/dist/{notifications → commands/notifications}/define-notifications.js +0 -0
  906. /package/dist/{provider/connectivity-types.js → controls/uncontrolled.js} +0 -0
  907. /package/dist/{data → table}/data-table.module.css +0 -0
  908. /package/dist/{data → table}/data-table.module.css.d.ts +0 -0
  909. /package/dist/{data → table}/query-branch.d.ts +0 -0
  910. /package/dist/{data → table}/query-branch.js +0 -0
  911. /package/src/{agent-chat → agent/chat}/relative-time.ts +0 -0
  912. /package/src/{data → table}/data-table.module.css +0 -0
  913. /package/src/{data → table}/data-table.module.css.d.ts +0 -0
  914. /package/src/{data → table}/query-branch.ts +0 -0
@@ -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
  };