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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,EAAE,SAAS,EAAsB,MAAM,OAAO,CAAA;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAIjD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAIrE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAQjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,kBAAkB,GAC1B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAA;AAEnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,SAAS,CAAA;IACnB,oFAAoF;IACpF,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC;;;;;;;;;;;;;;;;;;OAkBG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;IAC/D;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC3D;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;OAKG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAA;IAC1D;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;CAC1B,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,OAAO,GAAG,oBAAoB,GAAG,sBAAsB,CAAC,CAAA;AAcpG;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,SAAS,CAAA;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC3D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAA;CACvD,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AA2B1D;;;;;;;;;GASG;AACH,qBAAa,mBAAoB,SAAQ,SAAS,CAAC,wBAAwB,EAAE,aAAa,CAAC;gBAC7E,KAAK,EAAE,wBAAwB;IAK3C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;IAIrD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAKxD,MAAM,IAAI,SAAS;CAS7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,SAAK,GACb,MAAM,CAER;AAYD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAmBvC;AAgID,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,KAAK,EACL,aAAoB,EACpB,cAAc,EACd,kBAA2B,EAC3B,OAAO,EACP,KAAK,EACL,YAAY,EACZ,aAAyB,EACzB,GAAG,IAAI,EACR,EAAE,mBAAmB,+BAsCrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider/index.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AASzD,OAAO,EAAE,SAAS,EAAqE,MAAM,OAAO,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAKjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAStD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,iBAAiB,CAAA;AAIxE,MAAM,MAAM,mBAAmB,GAAG;IAChC,qFAAqF;IACrF,MAAM,EAAE,YAAY,CAAA;IACpB,qFAAqF;IACrF,KAAK,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAA;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,yGAAyG;IACzG,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS,CAAC,CAAA;IACtD;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,cAAc,CAAC,EAAE,gBAAgB,CAAA;IACjC,8CAA8C;IAC9C,kBAAkB,CAAC,EAAE,oBAAoB,CAAC,oBAAoB,CAAC,CAAA;IAC/D;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;CAC1B,GAAG,IAAI,CAAC,oBAAoB,EAAE,UAAU,GAAG,OAAO,GAAG,oBAAoB,GAAG,sBAAsB,CAAC,CAAA;AAIpG,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,SAAS,CAAA;IACnB,IAAI,EAAE,SAAS,CAAA;IACf,QAAQ,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;CAC1C,CAAA;AAED,KAAK,aAAa,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAA;AAwB1D,mGAAmG;AACnG,qBAAa,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,aAAa,CAAC;gBAC/D,KAAK,EAAE,iBAAiB;IAKpC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa;IAIrD,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI;IAczD,MAAM,IAAI,SAAS;CAO7B;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AAYD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,IAAI,IAAI,CAmBvC;AAqMD,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,SAAS,EACT,QAAQ,EACR,aAAoB,EACpB,cAAc,EACd,kBAA2B,EAC3B,KAAK,EACL,aAAyB,EACzB,GAAG,IAAI,EACR,EAAE,mBAAmB,+BA6ErB"}
@@ -1,29 +1,26 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import {
3
- MantineProvider,
4
- useComputedColorScheme,
5
- useMantineColorScheme,
6
- useMantineTheme
7
- } from "@mantine/core";
8
- import { Component, useEffect, useMemo } from "react";
9
- import { VxThemeProvider } from "../charts/theme.js";
1
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
2
+ import { MantineProvider, useMantineColorScheme, useMantineTheme } from "@mantine/core";
3
+ import { ModalsProvider } from "@mantine/modals";
4
+ import { Notifications } from "@mantine/notifications";
5
+ import { Spotlight } from "@mantine/spotlight";
6
+ import { QueryClientProvider } from "@tanstack/react-query";
7
+ import { RouterProvider } from "@tanstack/react-router";
8
+ import { Component, Suspense, lazy, useCallback, useEffect, useMemo, useRef, useState } from "react";
10
9
  import fallbackClasses from "./error-fallback.module.css";
11
- import { ConnectivityProvider } from "./connectivity-provider.js";
12
10
  import { cssVariablesResolver } from "../theme/index.js";
13
11
  import { useLabTheme } from "./lab-theme.js";
14
- import { buildDensityCss, buildFontsCss, buildPaletteCss, buildRadiusCss } from "../tokens/index.js";
12
+ import { buildDensityCss, buildFontsCss, buildPaletteCss, buildRadiusCss } from "../tokens/core.js";
15
13
  import { isDefaultDeriveConfig } from "../tokens/derive.js";
16
14
  import { buildPaletteData } from "../tokens/palette.js";
17
15
  import { useMediaQuery } from "../common/use-media-query.js";
16
+ import { registerModalsProvider } from "../commands/define-overlays.js";
18
17
  import { registerColorSchemeSetter } from "../commands/shell-bridge.js";
19
18
  import { useIsomorphicLayoutEffect } from "../common/isomorphic-layout-effect.js";
20
19
  import { PageTitle } from "../shell/page-title.js";
21
20
  import { SizeClassHintContext } from "../shell/use-size-class.js";
22
- function defaultOnError(error, ctx) {
23
- if (process.env.NODE_ENV !== "production") {
24
- console.error("[BasaltProvider] unhandled error", ctx.kind, error);
25
- }
26
- }
21
+ import { TelemetryContext, bindRouterTelemetry, createEmitter, errorName, now } from "../telemetry.js";
22
+ import { useRegistryHotkeys } from "./hotkeys.js";
23
+ import { buildSpotlightActions } from "./spotlight-actions.js";
27
24
  function DefaultErrorFallback() {
28
25
  return /* @__PURE__ */ jsxs("div", { className: fallbackClasses.root, children: [
29
26
  /* @__PURE__ */ jsx(
@@ -44,7 +41,7 @@ function DefaultErrorFallback() {
44
41
  )
45
42
  ] });
46
43
  }
47
- class BasaltErrorBoundary extends Component {
44
+ class RootBoundary extends Component {
48
45
  constructor(props) {
49
46
  super(props);
50
47
  this.state = { hasError: false, error: void 0 };
@@ -52,22 +49,29 @@ class BasaltErrorBoundary extends Component {
52
49
  static getDerivedStateFromError(error) {
53
50
  return { hasError: true, error };
54
51
  }
55
- componentDidCatch(error, info) {
56
- const onError = this.props.onError ?? defaultOnError;
57
- onError(error, { kind: "render", info });
52
+ componentDidCatch(error, _info) {
53
+ if (process.env.NODE_ENV !== "production") console.error("[basalt] render error", error);
54
+ this.props.emit({
55
+ type: "render.error",
56
+ failed: true,
57
+ start: now(),
58
+ attributes: {
59
+ "exception.type": errorName(error),
60
+ "basalt.error.kind": "render",
61
+ "basalt.error.boundary": "root"
62
+ }
63
+ });
58
64
  }
59
65
  render() {
60
- if (this.state.hasError) {
61
- const { fallback } = this.props;
62
- if (fallback === void 0) return /* @__PURE__ */ jsx(DefaultErrorFallback, {});
63
- if (fallback === null) return null;
64
- return typeof fallback === "function" ? fallback(this.state.error) : fallback;
65
- }
66
- return this.props.children;
66
+ if (!this.state.hasError) return this.props.children;
67
+ const { fallback } = this.props;
68
+ if (fallback === void 0) return /* @__PURE__ */ jsx(DefaultErrorFallback, {});
69
+ if (fallback === null) return null;
70
+ return typeof fallback === "function" ? fallback(this.state.error) : fallback;
67
71
  }
68
72
  }
69
- function composeInjectedCss(base, fontsCss, radiusCss, densityCss, inputsCss = "") {
70
- return [base, fontsCss, radiusCss, densityCss, inputsCss].filter(Boolean).join("\n");
73
+ function composeInjectedCss(base, fontsCss, radiusCss, densityCss) {
74
+ return [base, fontsCss, radiusCss, densityCss].filter(Boolean).join("\n");
71
75
  }
72
76
  function createMountCounter() {
73
77
  let count = 0;
@@ -92,10 +96,8 @@ function BasaltBridge({
92
96
  children,
93
97
  injectPalette,
94
98
  paletteOptions,
95
- nonce,
96
- onError
99
+ nonce
97
100
  }) {
98
- const resolved = useComputedColorScheme("dark");
99
101
  const { setColorScheme: setMantineColorScheme } = useMantineColorScheme();
100
102
  useEffect(() => {
101
103
  registerColorSchemeSetter(setMantineColorScheme);
@@ -106,7 +108,6 @@ function BasaltBridge({
106
108
  const fontsConfig = theme.other?.basaltFonts;
107
109
  const radiusConfig = theme.other?.basaltRadius;
108
110
  const densityConfig = theme.other?.basaltDensity;
109
- const desktopInputs = theme.other?.["basaltInputs"] === "desktop";
110
111
  const paletteCss = useMemo(() => {
111
112
  if (!injectPalette) return "";
112
113
  const base = deriveConfig === void 0 || isDefaultDeriveConfig(deriveConfig) ? buildPaletteCss(paletteOptions) : (
@@ -114,36 +115,14 @@ function BasaltBridge({
114
115
  // per-render re-derivation once a given config has been built once.
115
116
  buildPaletteCss(paletteOptions, buildPaletteData(deriveConfig))
116
117
  );
117
- const fontsCss = buildFontsCss(fontsConfig);
118
- const radiusCss = buildRadiusCss(radiusConfig);
119
- const densityCss = buildDensityCss(densityConfig);
120
- const inputsCss = desktopInputs ? ":root {\n--basalt-input-fz-floor: 0px;\n}" : "";
121
- return composeInjectedCss(base, fontsCss, radiusCss, densityCss, inputsCss);
122
- }, [
123
- injectPalette,
124
- deriveConfig,
125
- fontsConfig,
126
- radiusConfig,
127
- densityConfig,
128
- desktopInputs,
129
- paletteOptions
130
- ]);
131
- useEffect(() => {
132
- if (typeof window === "undefined") return;
133
- const handleError = (e) => {
134
- onError(e.error ?? e, { kind: "window", event: e });
135
- };
136
- const handleUnhandledRejection = (e) => {
137
- onError(e.reason, { kind: "unhandledrejection", reason: e.reason });
138
- };
139
- window.addEventListener("error", handleError);
140
- window.addEventListener("unhandledrejection", handleUnhandledRejection);
141
- return () => {
142
- window.removeEventListener("error", handleError);
143
- window.removeEventListener("unhandledrejection", handleUnhandledRejection);
144
- };
145
- }, [onError]);
146
- return /* @__PURE__ */ jsxs(VxThemeProvider, { colorScheme: resolved, children: [
118
+ return composeInjectedCss(
119
+ base,
120
+ buildFontsCss(fontsConfig),
121
+ buildRadiusCss(radiusConfig),
122
+ buildDensityCss(densityConfig)
123
+ );
124
+ }, [injectPalette, deriveConfig, fontsConfig, radiusConfig, densityConfig, paletteOptions]);
125
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
147
126
  injectPalette ? /* @__PURE__ */ jsx("style", { nonce, children: paletteCss }) : null,
148
127
  children
149
128
  ] });
@@ -153,34 +132,142 @@ function useDuplicateProviderGuard() {
153
132
  useEffect(() => {
154
133
  if (providerMounts.mount() > 1 && process.env.NODE_ENV !== "production") {
155
134
  console.warn(
156
- "[basalt] BasaltProvider: more than one instance is mounted at once \u2014 nested/duplicate BasaltProviders double-mount MantineProvider, the palette <style> and ConnectivityProvider. Mount exactly one, at the app root."
135
+ "[basalt] BasaltProvider: more than one instance is mounted at once \u2014 nested/duplicate BasaltProviders double-mount MantineProvider, the palette <style>, the router and the overlays. Mount exactly one, at the app root."
157
136
  );
158
137
  }
159
138
  return () => void providerMounts.unmount();
160
139
  }, []);
161
140
  }
141
+ function useWindowErrors(emit) {
142
+ useEffect(() => {
143
+ const report = (source, error) => {
144
+ if (process.env.NODE_ENV !== "production") console.error(`[basalt] ${source}`, error);
145
+ emit({
146
+ type: "window.error",
147
+ failed: true,
148
+ start: now(),
149
+ attributes: {
150
+ "exception.type": errorName(error),
151
+ "basalt.error.kind": source === "error" ? "window" : "unhandledrejection",
152
+ "basalt.error.source": source
153
+ }
154
+ });
155
+ };
156
+ const onError = (e) => report("error", e.error ?? e);
157
+ const onRejection = (e) => report("unhandledrejection", e.reason);
158
+ window.addEventListener("error", onError);
159
+ window.addEventListener("unhandledrejection", onRejection);
160
+ return () => {
161
+ window.removeEventListener("error", onError);
162
+ window.removeEventListener("unhandledrejection", onRejection);
163
+ };
164
+ }, [emit]);
165
+ }
166
+ function useDataTelemetry(router, client, emit) {
167
+ useEffect(() => {
168
+ const unbind = bindRouterTelemetry(router, emit);
169
+ let pending;
170
+ const offBefore = router.subscribe("onBeforeNavigate", (ev) => {
171
+ pending = { href: ev.toLocation.href, start: now(), from: ev.fromLocation?.pathname ?? "" };
172
+ });
173
+ const offResolved = router.subscribe("onResolved", (ev) => {
174
+ if (pending?.href !== ev.toLocation.href) return;
175
+ const { start, from } = pending;
176
+ pending = void 0;
177
+ emit({
178
+ type: "route.navigate",
179
+ failed: false,
180
+ start,
181
+ duration: now() - start,
182
+ attributes: {
183
+ "basalt.route.id": router.state.matches.at(-1)?.routeId ?? "unknown",
184
+ "basalt.route.from": from,
185
+ "url.path": ev.toLocation.pathname
186
+ }
187
+ });
188
+ });
189
+ const offQuery = client.getQueryCache().subscribe((ev) => {
190
+ if (ev.type !== "updated" || ev.action.type !== "error") return;
191
+ emit({
192
+ type: "query.error",
193
+ failed: true,
194
+ start: now(),
195
+ attributes: {
196
+ "basalt.query.hash": ev.query.queryHash,
197
+ "basalt.query.failure_count": ev.query.state.fetchFailureCount,
198
+ "exception.type": errorName(ev.action.error),
199
+ "basalt.error.kind": "query"
200
+ }
201
+ });
202
+ });
203
+ const offMutation = client.getMutationCache().subscribe((ev) => {
204
+ if (ev.type !== "updated" || ev.action.type !== "error") return;
205
+ emit({
206
+ type: "mutation.error",
207
+ failed: true,
208
+ start: now(),
209
+ attributes: {
210
+ "basalt.mutation.key": JSON.stringify(ev.mutation.options.mutationKey ?? null),
211
+ "exception.type": errorName(ev.action.error),
212
+ "basalt.error.kind": "mutation"
213
+ }
214
+ });
215
+ });
216
+ return () => {
217
+ unbind();
218
+ offBefore();
219
+ offResolved();
220
+ offQuery();
221
+ offMutation();
222
+ };
223
+ }, [router, client, emit]);
224
+ }
225
+ const LazyDevDock = lazy(() => import("../dev-dock.js").then((m) => ({ default: m.BasaltDevDock })));
226
+ function readQueryClient(router) {
227
+ const client = router.options.context?.queryClient;
228
+ if (client === void 0) {
229
+ throw new Error(
230
+ "[basalt] BasaltProvider: the router has no context.queryClient \u2014 create it with createBasaltRouter({ routeTree })."
231
+ );
232
+ }
233
+ return client;
234
+ }
162
235
  function BasaltProvider({
163
- children,
236
+ router,
164
237
  theme,
238
+ telemetry,
239
+ fallback,
165
240
  injectPalette = true,
166
241
  paletteOptions,
167
242
  defaultColorScheme = "dark",
168
- onError,
169
243
  nonce,
170
- connectivity,
171
244
  sizeClassHint = "compact",
172
245
  ...rest
173
246
  }) {
174
247
  useDuplicateProviderGuard();
175
248
  useHostAttribute();
176
- const errorHandler = onError ?? defaultOnError;
249
+ const sinkRef = useRef(telemetry);
250
+ useEffect(() => {
251
+ sinkRef.current = telemetry;
252
+ });
253
+ const emit = useMemo(() => createEmitter((event) => sinkRef.current?.(event)), []);
254
+ useWindowErrors(emit);
255
+ useRegistryHotkeys();
256
+ useEffect(() => registerModalsProvider(), []);
257
+ const client = readQueryClient(router);
258
+ useDataTelemetry(router, client, emit);
259
+ const [devTool, setDevTool] = useState(null);
260
+ const [actions, setActions] = useState([]);
261
+ const refreshActions = useCallback(
262
+ () => setActions(buildSpotlightActions(router, setDevTool)),
263
+ [router]
264
+ );
265
+ useEffect(refreshActions, [refreshActions]);
177
266
  const resolvedTheme = useLabTheme(theme);
178
- const resolvedConnectivity = connectivity ?? {};
179
267
  return (
180
268
  // `...rest` spreads FIRST so a consumer's `MantineProviderProps` can never shadow the three
181
269
  // values that follow it — `cssVariablesResolver` in particular is the resolver the package
182
- // exists to install (F24); `theme`/`defaultColorScheme` are excluded from `rest`'s type too,
183
- // this is belt-and-braces against a widened rest at the call site.
270
+ // exists to install.
184
271
  /* @__PURE__ */ jsx(
185
272
  MantineProvider,
186
273
  {
@@ -188,23 +275,36 @@ function BasaltProvider({
188
275
  theme: resolvedTheme,
189
276
  cssVariablesResolver,
190
277
  defaultColorScheme,
191
- children: /* @__PURE__ */ jsx(BasaltErrorBoundary, { onError: errorHandler, children: /* @__PURE__ */ jsx(
192
- BasaltBridge,
193
- {
194
- injectPalette,
195
- paletteOptions,
196
- nonce,
197
- onError: errorHandler,
198
- children: /* @__PURE__ */ jsx(SizeClassHintContext.Provider, { value: sizeClassHint, children: /* @__PURE__ */ jsx(ConnectivityProvider, { ...resolvedConnectivity, children }) })
199
- }
200
- ) })
278
+ children: /* @__PURE__ */ jsx(RootBoundary, { emit, fallback, children: /* @__PURE__ */ jsx(BasaltBridge, { injectPalette, paletteOptions, nonce, children: /* @__PURE__ */ jsx(TelemetryContext.Provider, { value: emit, children: /* @__PURE__ */ jsxs(SizeClassHintContext.Provider, { value: sizeClassHint, children: [
279
+ /* @__PURE__ */ jsx(QueryClientProvider, { client, children: /* @__PURE__ */ jsxs(ModalsProvider, { children: [
280
+ /* @__PURE__ */ jsx(RouterProvider, { router }),
281
+ process.env.NODE_ENV !== "production" && /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(
282
+ LazyDevDock,
283
+ {
284
+ tool: devTool,
285
+ onClose: () => setDevTool(null),
286
+ router
287
+ }
288
+ ) })
289
+ ] }) }),
290
+ /* @__PURE__ */ jsx(Notifications, { position: "bottom-right", autoClose: 4e3, limit: 5 }),
291
+ /* @__PURE__ */ jsx(
292
+ Spotlight,
293
+ {
294
+ actions,
295
+ onSpotlightOpen: refreshActions,
296
+ shortcut: "mod + K",
297
+ maxHeight: 420
298
+ }
299
+ )
300
+ ] }) }) }) })
201
301
  }
202
302
  )
203
303
  );
204
304
  }
205
305
  export {
206
- BasaltErrorBoundary,
207
306
  BasaltProvider,
307
+ RootBoundary,
208
308
  composeInjectedCss,
209
309
  useHostAttribute
210
310
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lab-theme.d.ts","sourceRoot":"","sources":["../../src/provider/lab-theme.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAGzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AA2C/D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,CAEtB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,QAAQ,EAAE,cAAc,GAAG,IAAI,GAC9B,oBAAoB,CAWtB;AAuBD;;;;;;;;;GASG;AACH,iBAAS,cAAc,CAAC,SAAS,EAAE,oBAAoB,GAAG,SAAS,GAAG,oBAAoB,CAGzF;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,uBAA2E,CAAA"}
1
+ {"version":3,"file":"lab-theme.d.ts","sourceRoot":"","sources":["../../src/provider/lab-theme.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAGzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AA4C/D;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,CAEtB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,oBAAoB,GAAG,SAAS,EAC3C,QAAQ,EAAE,cAAc,GAAG,IAAI,GAC9B,oBAAoB,CAWtB;AAuBD;;;;;;;;;GASG;AACH,iBAAS,cAAc,CAAC,SAAS,EAAE,oBAAoB,GAAG,SAAS,GAAG,oBAAoB,CAGzF;AAOD;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,uBAA2E,CAAA"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Route view transitions (V2-SPEC § 5): the direction of a navigation, read off `BasaltShell` nav
3
+ * order, plus the guard that keeps the router's discarded `ViewTransition` promises quiet.
4
+ *
5
+ * The router owns the call (`router-core` `startViewTransition`, router.js:490-508): it passes
6
+ * `{ update, types }` to `document.startViewTransition` when the browser supports
7
+ * `:active-view-transition-type()`, a bare callback otherwise, and returns only `updateCallbackDone`,
8
+ * so `ready` and `finished` are dropped on the floor.
9
+ */
10
+ import type { AnyRouter } from '@tanstack/react-router';
11
+ import { flattenNav, getActiveNav } from '../router-tanstack/nav.js';
12
+ /** The three `:active-view-transition-type()` names `styles.css` animates. Namespaced: a consumer's own cannot collide. */
13
+ export declare const ROUTE_TRANSITION_TYPES: {
14
+ readonly forward: "basalt-forward";
15
+ readonly back: "basalt-back";
16
+ readonly sibling: "basalt-sibling";
17
+ };
18
+ /** The argument of the router's `types` callback, derived from its own option type. */
19
+ type RouterLocationChange = Parameters<Extract<Extract<AnyRouter['options']['defaultViewTransition'], object>['types'], (...args: never[]) => unknown>>[0];
20
+ /** The part of it the direction reads: two pathnames and whether the path changed. */
21
+ type LocationChange = Pick<RouterLocationChange, 'pathChanged'> & {
22
+ fromLocation?: Pick<NonNullable<RouterLocationChange['fromLocation']>, 'pathname'>;
23
+ toLocation: Pick<RouterLocationChange['toLocation'], 'pathname'>;
24
+ };
25
+ type ActiveNav = NonNullable<ReturnType<typeof getActiveNav>>;
26
+ type NavItem = ReturnType<typeof flattenNav>[number];
27
+ /**
28
+ * The flattened-nav index of the item that owns `pathname`, picked as the sidebar picks its active
29
+ * item: of the matches, the most specific (most non-empty segments in `link.to`) wins and the first
30
+ * in definition order takes a tie. `-1` when nothing matches.
31
+ *
32
+ * @internal exported for the corpus test against the router's real `matchRoute`.
33
+ */
34
+ export declare function navIndexOf(flat: ReadonlyArray<NavItem>, pathname: string): number;
35
+ /**
36
+ * The `types` callback for the router's `defaultViewTransition`. Pure: the nav is a parameter.
37
+ *
38
+ * - No `fromLocation`: the first load. The router also runs it through `startViewTransition`
39
+ * (load-client.js:916), but there is no previous page to animate from, so `false`.
40
+ * - Same path (search or hash only): `false`, the page does not change.
41
+ * - A later nav item than the one you left: `forward`; an earlier one: `back`.
42
+ * - Same item (a detail beneath it), or either side outside the nav: `sibling`, a plain crossfade.
43
+ */
44
+ export declare function routeTransitionTypes({ fromLocation, toLocation, pathChanged }: LocationChange, nav: ActiveNav | undefined): string[] | false;
45
+ /**
46
+ * The router's own gate for passing `types` (router.js:495): without it the callback is never
47
+ * called and every navigation, first load and filter changes included, gets the UA's full-page
48
+ * crossfade. So below this support line there is no route transition at all. Server: none.
49
+ */
50
+ export declare function supportsViewTransitionTypes(): boolean;
51
+ /** What `createBasaltRouter` hands the router as `defaultViewTransition`. */
52
+ export declare const routeViewTransition: {
53
+ types: (change: LocationChange) => false | string[];
54
+ };
55
+ /**
56
+ * Attaches a catch to `ready` and `finished` of every `document.startViewTransition` call, once per
57
+ * installed function (idempotent across routers). Router-core drops both (it returns only
58
+ * `updateCallbackDone`), and a superseded transition rejects them with `AbortError: Transition was
59
+ * skipped` (router discussion #7733), which `window` `unhandledrejection` — and so basalt's
60
+ * telemetry sink — would report.
61
+ *
62
+ * - `ready`: a skip is swallowed; any other reason goes to `reportError`, so it surfaces once, there
63
+ * (a throwing handler would create a second, unowned rejection).
64
+ * - `finished`: always swallowed. A non-skip reason is the update callback's error, which `ready`
65
+ * (and, for the router, its own `await updateCallbackDone`) already carries.
66
+ * - `updateCallbackDone` is left alone: the router awaits it, and a catch here would re-raise a
67
+ * real error from a derived promise nobody owns.
68
+ *
69
+ * Chosen over an `unhandledrejection` filter because it removes the rejection at its source: it
70
+ * never becomes unhandled, so no listener (basalt's, a consumer's, devtools) sees it, and
71
+ * `preventDefault()` on a shared event would hide real rejections from the others. The wrapper
72
+ * returns the original `ViewTransition`. A no-op where the API is absent, and on the server.
73
+ */
74
+ export declare function guardViewTransitionRejections(): void;
75
+ export {};
76
+ //# sourceMappingURL=route-transition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-transition.d.ts","sourceRoot":"","sources":["../../src/provider/route-transition.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AAEjE,2HAA2H;AAC3H,eAAO,MAAM,sBAAsB;;;;CAIzB,CAAA;AAEV,uFAAuF;AACvF,KAAK,oBAAoB,GAAG,UAAU,CACpC,OAAO,CACL,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,EACvE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAC9B,CACF,CAAC,CAAC,CAAC,CAAA;AAEJ,sFAAsF;AACtF,KAAK,cAAc,GAAG,IAAI,CAAC,oBAAoB,EAAE,aAAa,CAAC,GAAG;IAChE,YAAY,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAClF,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAA;CACjE,CAAA;AAED,KAAK,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAA;AAC7D,KAAK,OAAO,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAoDpD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAejF;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,cAAc,EACzD,GAAG,EAAE,SAAS,GAAG,SAAS,GACzB,MAAM,EAAE,GAAG,KAAK,CAQlB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAIrD;AAED,6EAA6E;AAC7E,eAAO,MAAM,mBAAmB;oBACd,cAAc;CAC/B,CAAA;AAqBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAYpD"}
@@ -0,0 +1,98 @@
1
+ import { flattenNav, getActiveNav } from "../router-tanstack/nav.js";
2
+ const ROUTE_TRANSITION_TYPES = {
3
+ forward: "basalt-forward",
4
+ back: "basalt-back",
5
+ sibling: "basalt-sibling"
6
+ };
7
+ const trimTrailingSlash = (path) => path.length > 1 && path.endsWith("/") ? path.slice(0, -1) : path;
8
+ const segmentsOf = (path) => path.split("/").filter(Boolean);
9
+ function patternOf(item) {
10
+ const params = item.link.params;
11
+ const given = typeof params === "object" && params !== null ? params : {};
12
+ return segmentsOf(item.link.to).map((segment) => {
13
+ if (segment === "$") return { kind: "splat" };
14
+ const param = /^\{?(-?)\$([\w-]+)\}?$/.exec(segment);
15
+ if (param === null) return { kind: "literal", text: segment.toLowerCase() };
16
+ const value = given[param[2] ?? ""];
17
+ if (value !== void 0) return { kind: "value", text: String(value) };
18
+ return { kind: param[1] === "-" ? "optional" : "param" };
19
+ });
20
+ }
21
+ function matchParts(parts, path, at, fuzzy) {
22
+ const [part, ...rest] = parts;
23
+ if (part === void 0) return fuzzy || at === path.length;
24
+ if (part.kind === "splat") return true;
25
+ if (part.kind === "optional" && matchParts(rest, path, at, fuzzy)) return true;
26
+ const actual = path[at];
27
+ if (actual === void 0) return false;
28
+ if (part.kind === "literal" && part.text !== actual.lower) return false;
29
+ if (part.kind === "value" && part.text !== actual.raw) return false;
30
+ return matchParts(rest, path, at + 1, fuzzy);
31
+ }
32
+ function onItem(item, path) {
33
+ const fuzzy = item.exact !== true && item.link.to !== "/";
34
+ return matchParts(patternOf(item), path, 0, fuzzy);
35
+ }
36
+ function navIndexOf(flat, pathname) {
37
+ const path = segmentsOf(trimTrailingSlash(pathname)).map((raw) => ({
38
+ raw,
39
+ lower: raw.toLowerCase()
40
+ }));
41
+ let winner = -1;
42
+ let winnerSpecificity = -1;
43
+ for (const [index, item] of flat.entries()) {
44
+ const specificity = segmentsOf(item.link.to).length;
45
+ if (specificity > winnerSpecificity && onItem(item, path)) {
46
+ winner = index;
47
+ winnerSpecificity = specificity;
48
+ }
49
+ }
50
+ return winner;
51
+ }
52
+ function routeTransitionTypes({ fromLocation, toLocation, pathChanged }, nav) {
53
+ if (!fromLocation || !pathChanged) return false;
54
+ const flat = nav ? flattenNav(nav) : [];
55
+ const fromIndex = navIndexOf(flat, fromLocation.pathname);
56
+ const toIndex = navIndexOf(flat, toLocation.pathname);
57
+ if (fromIndex === -1 || toIndex === -1 || fromIndex === toIndex)
58
+ return [ROUTE_TRANSITION_TYPES.sibling];
59
+ return [toIndex > fromIndex ? ROUTE_TRANSITION_TYPES.forward : ROUTE_TRANSITION_TYPES.back];
60
+ }
61
+ function supportsViewTransitionTypes() {
62
+ if (typeof window === "undefined") return false;
63
+ const css = window.CSS;
64
+ return css?.supports?.("selector(:active-view-transition-type(a))") === true;
65
+ }
66
+ const routeViewTransition = {
67
+ types: (change) => routeTransitionTypes(change, getActiveNav())
68
+ };
69
+ const SKIP_NAMES = /* @__PURE__ */ new Set(["AbortError", "InvalidStateError", "TimeoutError"]);
70
+ const isTransitionSkip = (reason) => reason instanceof DOMException && SKIP_NAMES.has(reason.name);
71
+ const reportOnce = (reason) => {
72
+ if (isTransitionSkip(reason)) return;
73
+ if (typeof reportError === "function") reportError(reason);
74
+ };
75
+ const ignore = () => {
76
+ };
77
+ const guarded = /* @__PURE__ */ new WeakSet();
78
+ function guardViewTransitionRejections() {
79
+ if (typeof document === "undefined" || typeof document.startViewTransition !== "function") return;
80
+ if (guarded.has(document.startViewTransition)) return;
81
+ const original = document.startViewTransition.bind(document);
82
+ const wrapped = (...args) => {
83
+ const transition = original(...args);
84
+ transition.ready.catch(reportOnce);
85
+ transition.finished.catch(ignore);
86
+ return transition;
87
+ };
88
+ guarded.add(wrapped);
89
+ document.startViewTransition = wrapped;
90
+ }
91
+ export {
92
+ ROUTE_TRANSITION_TYPES,
93
+ guardViewTransitionRejections,
94
+ navIndexOf,
95
+ routeTransitionTypes,
96
+ routeViewTransition,
97
+ supportsViewTransitionTypes
98
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * The provider's Spotlight list: the `defineCommands` registry, then the `defineNav` destinations
3
+ * (via `flattenNav`), then the three dev-dock commands in dev. A snapshot rebuilt each time Spotlight
4
+ * opens, so a command's `when()` is current. Not for use during render (`detectMac` reads `navigator`).
5
+ */
6
+ import type { SpotlightActionData } from '@mantine/spotlight';
7
+ import type { AnyRouter } from '@tanstack/react-router';
8
+ import type { BasaltDevDockTool } from '../dev-dock.js';
9
+ export declare function buildSpotlightActions(router: AnyRouter, openDevTool: (tool: BasaltDevDockTool) => void): SpotlightActionData[];
10
+ //# sourceMappingURL=spotlight-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotlight-actions.d.ts","sourceRoot":"","sources":["../../src/provider/spotlight-actions.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAIvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AASpD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,GAC7C,mBAAmB,EAAE,CA8CvB"}
@@ -0,0 +1,55 @@
1
+ import { getActiveCommands } from "../commands/define-commands.js";
2
+ import { detectMac, formatShortcutDisplay } from "../commands/shortcut-format.js";
3
+ import { flattenNav, getActiveNav } from "../router-tanstack/nav.js";
4
+ import { runCommandSafely } from "./hotkeys.js";
5
+ const DEV_TOOLS = [
6
+ { tool: "router", label: "Router devtools" },
7
+ { tool: "query", label: "Query devtools" },
8
+ { tool: "theme", label: "Theme lab" }
9
+ ];
10
+ function buildSpotlightActions(router, openDevTool) {
11
+ const actions = [];
12
+ for (const [id, cmd] of Object.entries(getActiveCommands())) {
13
+ if (cmd.when !== void 0 && !cmd.when()) continue;
14
+ actions.push({
15
+ id,
16
+ label: cmd.label,
17
+ leftSection: cmd.icon,
18
+ keywords: [cmd.group ?? "", id].join(" ").trim(),
19
+ ...cmd.group !== void 0 && { group: cmd.group },
20
+ ...cmd.shortcut !== void 0 && {
21
+ description: formatShortcutDisplay(cmd.shortcut, detectMac())
22
+ },
23
+ onClick: () => runCommandSafely(cmd)
24
+ });
25
+ }
26
+ const nav = getActiveNav();
27
+ if (nav !== void 0) {
28
+ for (const item of flattenNav(nav)) {
29
+ if (item.disabled === true) continue;
30
+ actions.push({
31
+ id: `nav.${item.id}`,
32
+ label: item.label,
33
+ group: item.groupLabel,
34
+ leftSection: item.icon,
35
+ // `link` is the destination's own `linkOptions`, so a store-backed `search` thunk restores
36
+ // the last selection exactly as the sidebar link does.
37
+ onClick: () => void router.navigate(item.link)
38
+ });
39
+ }
40
+ }
41
+ if (process.env.NODE_ENV !== "production") {
42
+ for (const { tool, label } of DEV_TOOLS) {
43
+ actions.push({
44
+ id: `dev.${tool}`,
45
+ label,
46
+ group: "Dev",
47
+ onClick: () => openDevTool(tool)
48
+ });
49
+ }
50
+ }
51
+ return actions;
52
+ }
53
+ export {
54
+ buildSpotlightActions
55
+ };
@@ -0,0 +1,6 @@
1
+ import type { AnyRouter } from '@tanstack/react-router';
2
+ import type { BasaltRouterContext } from './create-router.js';
3
+ /** The router's QueryClient — a plain root route declares no context type, so read it untyped. */
4
+ export declare const queryClientOf: (router: AnyRouter) => BasaltRouterContext["queryClient"];
5
+ export declare function testRouter(text?: string): import("./create-router.js").BasaltRouter<import("@tanstack/router-core").Route<import("@tanstack/router-core").Register, any, "/", "/", string, "__root__", undefined, {}, {}, import("@tanstack/router-core").AnyContext, import("@tanstack/router-core").AnyContext, {}, undefined, readonly [import("@tanstack/react-router").Route<unknown, import("@tanstack/react-router").RootRoute<import("@tanstack/router-core").Register, undefined, {}, import("@tanstack/router-core").AnyContext, import("@tanstack/router-core").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>, "/other", "/other", string, "/other", undefined, import("@tanstack/router-core").ResolveParams<"/other">, import("@tanstack/router-core").AnyContext, import("@tanstack/router-core").AnyContext, import("@tanstack/router-core").AnyContext, {}, undefined, unknown, unknown, unknown, unknown, undefined>], unknown, unknown, unknown, undefined>>;
6
+ //# sourceMappingURL=test-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-router.d.ts","sourceRoot":"","sources":["../../src/provider/test-router.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAEvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAE1D,kGAAkG;AAClG,eAAO,MAAM,aAAa,GAAI,QAAQ,SAAS,KAAG,mBAAmB,CAAC,aAAa,CACtB,CAAA;AAE7D,wBAAgB,UAAU,CAAC,IAAI,SAAY,i6BAW1C"}