basalt-ui 1.41.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +46 -43
- package/CHANGELOG.md +542 -518
- package/MIGRATING.md +964 -37
- package/README.md +171 -366
- package/agent/rules/basalt-batteries.md +19 -74
- package/agent/rules/basalt-charts.md +21 -95
- package/agent/rules/basalt-controls.md +23 -131
- package/agent/rules/basalt-mantine.md +26 -99
- package/agent/rules/basalt-state.md +21 -103
- package/agent/rules/basalt-tokens.md +33 -114
- package/agent/skills/basalt-app/SKILL.md +229 -72
- package/agent/skills/basalt-charts/SKILL.md +23 -57
- package/agent/skills/basalt-design/SKILL.md +12 -70
- package/agent/templates/AGENTS-block.md.tpl +16 -26
- package/agent/templates/DESIGN.md.tpl +1 -1
- package/agent/templates/__root.tpl +9 -16
- package/agent/templates/main.tpl +21 -0
- package/agent/templates/nav.tpl +18 -0
- package/configs/oxlint-basalt.json +4 -10
- package/configs/oxlint-plugin.js +465 -844
- package/configs/oxlint-plugin.test.ts +661 -709
- package/configs/oxlint.json +10 -2
- package/dist/agent/ai-sdk-transport.d.ts +19 -7
- package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
- package/dist/agent/ai-sdk-transport.js +10 -7
- package/dist/{agent-chat → agent/chat}/composer.d.ts +16 -16
- package/dist/agent/chat/composer.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/composer.js +10 -9
- package/dist/{agent-chat → agent/chat}/message-affordances.d.ts +7 -6
- package/dist/agent/chat/message-affordances.d.ts.map +1 -0
- package/dist/agent/chat/relative-time.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/thread-feed-row.d.ts +18 -16
- package/dist/agent/chat/thread-feed-row.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/thread-feed-row.js +12 -11
- package/dist/{agent-chat → agent/chat}/thread-feed.d.ts +8 -8
- package/dist/agent/chat/thread-feed.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/thread-feed.js +12 -10
- package/dist/{agent-chat → agent/chat}/thread-message.d.ts +12 -9
- package/dist/agent/chat/thread-message.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/thread-message.js +15 -13
- package/dist/{agent-chat → agent/chat}/thread-outcome-card.d.ts +2 -2
- package/dist/agent/chat/thread-outcome-card.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/thread-outcome-card.js +3 -3
- package/dist/{agent-chat → agent/chat}/tool-chip.d.ts +5 -5
- package/dist/agent/chat/tool-chip.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/tool-chip.js +4 -4
- package/dist/agent/chat/use-keyboard-inset.d.ts.map +1 -0
- package/dist/{agent-chat → agent/chat}/use-keyboard-inset.js +1 -1
- package/dist/{agent-chat → agent/chat}/virtualize.d.ts +7 -7
- package/dist/agent/chat/virtualize.d.ts.map +1 -0
- package/dist/agent/error.d.ts +31 -0
- package/dist/agent/error.d.ts.map +1 -0
- package/dist/agent/error.js +18 -0
- package/dist/agent/history.d.ts +2 -36
- package/dist/agent/history.d.ts.map +1 -1
- package/dist/agent/history.js +0 -32
- package/dist/agent/id.d.ts +4 -5
- package/dist/agent/id.d.ts.map +1 -1
- package/dist/agent/index.d.ts +19 -52
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +10 -32
- package/dist/agent/outcome.d.ts +3 -14
- package/dist/agent/outcome.d.ts.map +1 -1
- package/dist/agent/outcome.js +0 -30
- package/dist/agent/part-list.d.ts +3 -3
- package/dist/agent/part-list.d.ts.map +1 -1
- package/dist/agent/parts.d.ts +23 -24
- package/dist/agent/parts.d.ts.map +1 -1
- package/dist/agent/run-committer.d.ts +23 -0
- package/dist/agent/run-committer.d.ts.map +1 -0
- package/dist/agent/run-committer.js +41 -0
- package/dist/agent/run-records.d.ts +77 -0
- package/dist/agent/run-records.d.ts.map +1 -0
- package/dist/agent/run-records.js +69 -0
- package/dist/agent/thread.d.ts +23 -47
- package/dist/agent/thread.d.ts.map +1 -1
- package/dist/agent/thread.js +3 -134
- package/dist/agent/transport.d.ts +6 -69
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/transport.js +0 -18
- package/dist/agent/use-agent-thread-runs.d.ts +63 -26
- package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
- package/dist/agent/use-agent-thread-runs.js +202 -66
- package/dist/charts/BandStrip.d.ts +46 -0
- package/dist/charts/BandStrip.d.ts.map +1 -0
- package/dist/charts/BandStrip.js +151 -0
- package/dist/charts/Bars.d.ts +19 -0
- package/dist/charts/Bars.d.ts.map +1 -0
- package/dist/charts/Bars.js +77 -0
- package/dist/charts/CartesianChart.d.ts +57 -0
- package/dist/charts/CartesianChart.d.ts.map +1 -0
- package/dist/charts/CartesianChart.js +121 -0
- package/dist/charts/ChartCard.d.ts +34 -0
- package/dist/charts/ChartCard.d.ts.map +1 -0
- package/dist/charts/ChartCard.js +115 -0
- package/dist/charts/Donut.d.ts +25 -0
- package/dist/charts/Donut.d.ts.map +1 -0
- package/dist/charts/Donut.js +191 -0
- package/dist/charts/DualPanel.d.ts +47 -0
- package/dist/charts/DualPanel.d.ts.map +1 -0
- package/dist/charts/DualPanel.js +214 -0
- package/dist/charts/Heatmap.d.ts +41 -0
- package/dist/charts/Heatmap.d.ts.map +1 -0
- package/dist/charts/Heatmap.js +216 -0
- package/dist/charts/Lines.d.ts +11 -0
- package/dist/charts/Lines.d.ts.map +1 -0
- package/dist/charts/Lines.js +114 -0
- package/dist/charts/MirroredBars.d.ts +44 -0
- package/dist/charts/MirroredBars.d.ts.map +1 -0
- package/dist/charts/MirroredBars.js +190 -0
- package/dist/charts/Sparkline.d.ts +22 -0
- package/dist/charts/Sparkline.d.ts.map +1 -0
- package/dist/charts/Sparkline.js +129 -0
- package/dist/charts/StackedArea.d.ts +15 -0
- package/dist/charts/StackedArea.d.ts.map +1 -0
- package/dist/charts/StackedArea.js +46 -0
- package/dist/charts/box.d.ts +38 -0
- package/dist/charts/box.d.ts.map +1 -0
- package/dist/charts/box.js +72 -0
- package/dist/charts/card-context.d.ts +3 -0
- package/dist/charts/card-context.d.ts.map +1 -0
- package/dist/charts/card-context.js +7 -0
- package/dist/charts/chart-box.module.css +64 -0
- package/{src/content/article-card.module.css.d.ts → dist/charts/chart-box.module.css.d.ts} +5 -9
- package/dist/charts/chart-card.module.css +25 -0
- package/dist/{dashboard/widget-grid.module.css.d.ts → charts/chart-card.module.css.d.ts} +1 -3
- package/dist/charts/chart-legend.module.css +38 -0
- package/{src/dashboard/widget-grid.module.css.d.ts → dist/charts/chart-legend.module.css.d.ts} +3 -3
- package/dist/charts/compile.d.ts +62 -0
- package/dist/charts/compile.d.ts.map +1 -0
- package/dist/charts/compile.js +386 -0
- package/dist/charts/cursor.d.ts +50 -0
- package/dist/charts/cursor.d.ts.map +1 -0
- package/dist/charts/cursor.js +157 -0
- package/dist/charts/curves.d.ts +12 -0
- package/dist/charts/curves.d.ts.map +1 -0
- package/dist/charts/curves.js +86 -0
- package/dist/charts/donut.module.css +54 -0
- package/dist/{content/article-card.module.css.d.ts → charts/donut.module.css.d.ts} +2 -9
- package/dist/charts/host.d.ts +17 -0
- package/dist/charts/host.d.ts.map +1 -0
- package/dist/charts/host.js +35 -0
- package/dist/charts/index.d.ts +18 -53
- package/dist/charts/index.d.ts.map +1 -1
- package/dist/charts/index.js +17 -189
- package/dist/charts/legend.d.ts +23 -0
- package/dist/charts/legend.d.ts.map +1 -0
- package/dist/charts/legend.js +160 -0
- package/dist/charts/marks.d.ts +25 -0
- package/dist/charts/marks.d.ts.map +1 -0
- package/dist/charts/marks.js +128 -0
- package/dist/charts/panel.d.ts +56 -0
- package/dist/charts/panel.d.ts.map +1 -0
- package/dist/charts/panel.js +123 -0
- package/dist/charts/scales.d.ts +44 -0
- package/dist/charts/scales.d.ts.map +1 -0
- package/dist/charts/scales.js +163 -0
- package/dist/charts/sizing.d.ts +12 -0
- package/dist/charts/sizing.d.ts.map +1 -0
- package/dist/charts/sizing.js +33 -0
- package/dist/charts/state.d.ts +17 -0
- package/dist/charts/state.d.ts.map +1 -0
- package/dist/charts/state.js +53 -0
- package/dist/charts/theme.d.ts +38 -19
- package/dist/charts/theme.d.ts.map +1 -1
- package/dist/charts/theme.js +48 -26
- package/dist/charts/types.d.ts +227 -0
- package/dist/charts/types.d.ts.map +1 -0
- package/dist/charts/types.js +4 -0
- package/dist/cli/audit-allows.d.ts +4 -17
- package/dist/cli/audit-allows.d.ts.map +1 -1
- package/dist/cli/config.d.ts +18 -43
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/config.js +6 -0
- package/dist/cli/doctor-upgrade.d.ts +43 -0
- package/dist/cli/doctor-upgrade.d.ts.map +1 -0
- package/dist/cli/doctor-upgrade.js +314 -0
- package/dist/cli/doctor.d.ts +14 -29
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +58 -9
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +2 -4
- package/dist/cli/index.d.ts +48 -172
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +39 -132
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +43 -37
- package/dist/cli/sync.d.ts +5 -21
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +4 -23
- package/dist/cli/tokens-css.d.ts +7 -28
- package/dist/cli/tokens-css.d.ts.map +1 -1
- package/dist/commands/ShortcutsHelp.d.ts.map +1 -1
- package/dist/commands/ShortcutsHelp.js +4 -5
- package/dist/commands/define-commands.d.ts +15 -31
- package/dist/commands/define-commands.d.ts.map +1 -1
- package/dist/commands/define-commands.js +1 -11
- package/dist/commands/define-overlays.d.ts +5 -19
- package/dist/commands/define-overlays.d.ts.map +1 -1
- package/dist/commands/define-overlays.js +3 -11
- package/dist/commands/index.d.ts +10 -40
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +9 -46
- package/dist/{notifications → commands/notifications}/bell.d.ts +1 -1
- package/dist/commands/notifications/bell.d.ts.map +1 -0
- package/dist/{notifications → commands/notifications}/center.d.ts +2 -2
- package/dist/commands/notifications/center.d.ts.map +1 -0
- package/dist/{notifications → commands/notifications}/center.js +2 -2
- package/dist/{notifications → commands/notifications}/define-notifications.d.ts +3 -3
- package/dist/commands/notifications/define-notifications.d.ts.map +1 -0
- package/dist/commands/notifications/notify.d.ts +44 -0
- package/dist/commands/notifications/notify.d.ts.map +1 -0
- package/dist/commands/notifications/notify.js +79 -0
- package/dist/{notifications → commands/notifications}/store.d.ts +2 -0
- package/dist/commands/notifications/store.d.ts.map +1 -0
- package/dist/{notifications → commands/notifications}/store.js +4 -0
- package/dist/commands/projectors.d.ts +1 -131
- package/dist/commands/projectors.d.ts.map +1 -1
- package/dist/commands/projectors.js +2 -73
- package/dist/commands/shell-bridge.d.ts +3 -3
- package/dist/commands/shortcut-format.d.ts +5 -4
- package/dist/commands/shortcut-format.d.ts.map +1 -1
- package/dist/common/errors.d.ts +3 -3
- package/dist/common/use-measured-widths.d.ts.map +1 -1
- package/dist/common/use-measured-widths.js +5 -3
- package/dist/common/validate.d.ts +2 -2
- package/dist/content/article-layout.d.ts.map +1 -1
- package/dist/content/article-layout.js +3 -3
- package/dist/content/article-model.d.ts +1 -46
- package/dist/content/article-model.d.ts.map +1 -1
- package/dist/content/article-model.js +1 -29
- package/dist/content/index.d.ts +11 -41
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +3 -35
- package/dist/content/markdown.d.ts +1 -1
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +1 -1
- package/dist/content/mermaid.d.ts.map +1 -1
- package/dist/content/mermaid.js +7 -7
- package/dist/content/slug.d.ts +1 -8
- package/dist/content/slug.d.ts.map +1 -1
- package/dist/content/slug.js +1 -8
- package/dist/content/url-hardening.d.ts +2 -2
- package/dist/content/url-hardening.d.ts.map +1 -1
- package/dist/content/url-hardening.js +2 -0
- package/dist/controls/actions.d.ts +16 -1
- package/dist/controls/actions.d.ts.map +1 -1
- package/dist/controls/enum-filter.d.ts +1 -1
- package/dist/controls/enum-filter.d.ts.map +1 -1
- package/dist/controls/filter-context.d.ts.map +1 -1
- package/dist/controls/filter-context.js +3 -1
- package/dist/controls/filter-set.js +4 -6
- package/dist/controls/form-layout.d.ts +1 -1
- package/dist/controls/form-layout.d.ts.map +1 -1
- package/dist/controls/form-layout.js +1 -1
- package/dist/controls/glyphs.d.ts +0 -2
- package/dist/controls/glyphs.d.ts.map +1 -1
- package/dist/controls/glyphs.js +0 -7
- package/dist/controls/index.d.ts +12 -17
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +5 -39
- package/dist/controls/multi-select-filter.d.ts +4 -3
- package/dist/controls/multi-select-filter.d.ts.map +1 -1
- package/dist/controls/number-filter.d.ts +4 -3
- package/dist/controls/number-filter.d.ts.map +1 -1
- package/dist/controls/number-filter.js +3 -1
- package/dist/controls/range-filter.d.ts +4 -3
- package/dist/controls/range-filter.d.ts.map +1 -1
- package/dist/controls/search-filter.d.ts +4 -3
- package/dist/controls/search-filter.d.ts.map +1 -1
- package/dist/controls/search-filter.js +19 -14
- package/dist/controls/select-filter.d.ts +4 -3
- package/dist/controls/select-filter.d.ts.map +1 -1
- package/dist/controls/sync-button.d.ts.map +1 -1
- package/dist/controls/sync-button.js +12 -15
- package/dist/controls/toggle-filter.d.ts +4 -3
- package/dist/controls/toggle-filter.d.ts.map +1 -1
- package/dist/controls/uncontrolled.d.ts +12 -0
- package/dist/controls/uncontrolled.d.ts.map +1 -0
- package/dist/controls/view-tabs.d.ts +2 -2
- package/dist/controls/view-tabs.d.ts.map +1 -1
- package/dist/controls-dates/index.d.ts +0 -1
- package/dist/controls-dates/index.d.ts.map +1 -1
- package/dist/dashboard/index.d.ts +7 -9
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +3 -23
- package/dist/dashboard/section.d.ts +4 -6
- package/dist/dashboard/section.d.ts.map +1 -1
- package/dist/dashboard/section.js +4 -10
- package/dist/dashboard/stat-card.d.ts +4 -4
- package/dist/dashboard/stat-card.d.ts.map +1 -1
- package/dist/dashboard/stat-card.js +3 -3
- package/dist/dashboard/widget-header.module.css +9 -7
- package/dist/dev-dock.d.ts.map +1 -1
- package/dist/dev-dock.js +6 -1
- package/dist/format/date.d.ts +0 -34
- package/dist/format/date.d.ts.map +1 -1
- package/dist/format/date.js +0 -54
- package/dist/format/index.d.ts +7 -22
- package/dist/format/index.d.ts.map +1 -1
- package/dist/format/index.js +2 -43
- package/dist/format/number.d.ts +3 -14
- package/dist/format/number.d.ts.map +1 -1
- package/dist/format/number.js +0 -13
- package/dist/format/shared.d.ts +2 -3
- package/dist/format/shared.d.ts.map +1 -1
- package/dist/forms/index.d.ts +0 -11
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +1 -14
- package/dist/guard/index.d.ts +6 -21
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +27 -115
- package/dist/guard/types.d.ts +7 -18
- package/dist/guard/types.d.ts.map +1 -1
- package/dist/index.d.ts +16 -48
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -117
- package/dist/provider/create-router.d.ts +44 -0
- package/dist/provider/create-router.d.ts.map +1 -0
- package/dist/provider/create-router.js +62 -0
- package/dist/provider/hotkeys.d.ts +8 -0
- package/dist/provider/hotkeys.d.ts.map +1 -0
- package/dist/provider/hotkeys.js +50 -0
- package/dist/provider/index.d.ts +33 -110
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +182 -82
- package/dist/provider/lab-theme.d.ts.map +1 -1
- package/dist/provider/route-transition.d.ts +76 -0
- package/dist/provider/route-transition.d.ts.map +1 -0
- package/dist/provider/route-transition.js +98 -0
- package/dist/provider/spotlight-actions.d.ts +10 -0
- package/dist/provider/spotlight-actions.d.ts.map +1 -0
- package/dist/provider/spotlight-actions.js +55 -0
- package/dist/provider/test-router.d.ts +6 -0
- package/dist/provider/test-router.d.ts.map +1 -0
- package/dist/provider/test-router.js +18 -0
- package/dist/query-client.d.ts +4 -20
- package/dist/query-client.d.ts.map +1 -1
- package/dist/query-client.js +2 -2
- package/dist/router-tanstack/index.d.ts +18 -64
- package/dist/router-tanstack/index.d.ts.map +1 -1
- package/dist/router-tanstack/index.js +2 -16
- package/dist/router-tanstack/nav.d.ts +12 -1
- package/dist/router-tanstack/nav.d.ts.map +1 -1
- package/dist/router-tanstack/nav.js +8 -1
- package/dist/router-tanstack/search-store.d.ts +1 -1
- package/dist/router-tanstack/search-store.d.ts.map +1 -1
- package/dist/router-tanstack/use-nav.d.ts +8 -9
- package/dist/router-tanstack/use-nav.d.ts.map +1 -1
- package/dist/router-tanstack/use-nav.js +20 -1
- package/dist/shell/app-mobile-nav.d.ts.map +1 -1
- package/dist/shell/app-sidebar.js +1 -1
- package/dist/shell/index.d.ts +31 -10
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +14 -3
- package/dist/shell/page-aside.d.ts +2 -2
- package/dist/shell/page-aside.d.ts.map +1 -1
- package/dist/shell/page-aside.js +31 -12
- package/dist/shell/page-bar.d.ts +2 -2
- package/dist/shell/page-bar.d.ts.map +1 -1
- package/dist/shell/page-bar.js +1 -1
- package/dist/state.d.ts +10 -12
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +4 -6
- package/dist/styles.css +107 -7
- package/dist/surfaces.d.ts +28 -103
- package/dist/surfaces.d.ts.map +1 -1
- package/dist/surfaces.js +54 -143
- package/dist/{data → table}/data-table-state.d.ts +1 -1
- package/dist/table/data-table-state.d.ts.map +1 -0
- package/dist/{data → table}/data-table-state.js +4 -3
- package/dist/{data → table}/data-table.d.ts +28 -49
- package/dist/table/data-table.d.ts.map +1 -0
- package/dist/{data → table}/data-table.js +74 -60
- package/dist/table/index.d.ts +18 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/{data/table.js → table/index.js} +1 -1
- package/dist/table/query-branch.d.ts.map +1 -0
- package/dist/table/table-features.d.ts +69 -0
- package/dist/table/table-features.d.ts.map +1 -0
- package/dist/table/table-features.js +49 -0
- package/dist/telemetry.d.ts +77 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +33 -0
- package/dist/theme/index.d.ts +10 -21
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +3 -14
- package/dist/theme/theme-toggle.d.ts.map +1 -1
- package/dist/theme/theme-toggle.js +7 -33
- package/dist/theme/theme-toggle.module.css +30 -0
- package/dist/theme/theme-toggle.module.css.d.ts +10 -0
- package/dist/theme-lab/derive-controls.d.ts.map +1 -1
- package/dist/theme-lab/derive-controls.js +5 -3
- package/dist/theme-lab/derive-state.d.ts.map +1 -1
- package/dist/theme-lab/derive-state.js +2 -1
- package/dist/tokens/core.d.ts +360 -0
- package/dist/tokens/core.d.ts.map +1 -0
- package/dist/tokens/core.js +708 -0
- package/dist/tokens/derive.d.ts +1 -1
- package/dist/tokens/derive.d.ts.map +1 -1
- package/dist/tokens/index.d.ts +5 -373
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +8 -700
- package/dist/tokens/palette.d.ts +2 -6
- package/dist/tokens/palette.d.ts.map +1 -1
- package/dist/tokens/palette.js +1 -4
- package/dist/vite.d.ts +4 -3
- package/dist/vite.d.ts.map +1 -1
- package/llms.txt +43 -85
- package/package.json +80 -173
- package/src/agent/ai-sdk-transport.ts +57 -37
- package/src/{agent-chat → agent/chat}/composer.tsx +29 -30
- package/src/{agent-chat → agent/chat}/message-affordances.ts +8 -5
- package/src/{agent-chat → agent/chat}/thread-feed-row.tsx +30 -35
- package/src/{agent-chat → agent/chat}/thread-feed.tsx +40 -35
- package/src/{agent-chat → agent/chat}/thread-message.tsx +37 -35
- package/src/{agent-chat → agent/chat}/thread-outcome-card.tsx +5 -5
- package/src/{agent-chat → agent/chat}/tool-chip.tsx +12 -12
- package/src/{agent-chat → agent/chat}/use-keyboard-inset.ts +1 -1
- package/src/{agent-chat → agent/chat}/virtualize.ts +5 -5
- package/src/agent/error.ts +43 -0
- package/src/agent/history.ts +2 -107
- package/src/agent/id.ts +4 -5
- package/src/agent/index.ts +23 -112
- package/src/agent/outcome.ts +3 -56
- package/src/agent/part-list.tsx +3 -3
- package/src/agent/parts.ts +23 -22
- package/src/agent/run-committer.ts +64 -0
- package/src/agent/run-records.ts +147 -0
- package/src/agent/thread.ts +24 -231
- package/src/agent/transport.ts +6 -96
- package/src/agent/use-agent-thread-runs.ts +364 -199
- package/src/charts/BandStrip.tsx +276 -0
- package/src/charts/Bars.tsx +141 -0
- package/src/charts/CartesianChart.tsx +206 -0
- package/src/charts/ChartCard.tsx +178 -0
- package/src/charts/Donut.tsx +256 -0
- package/src/charts/DualPanel.tsx +326 -0
- package/src/charts/Heatmap.tsx +282 -0
- package/src/charts/Lines.tsx +151 -0
- package/src/charts/MirroredBars.tsx +303 -0
- package/src/charts/Sparkline.tsx +176 -0
- package/src/charts/StackedArea.tsx +80 -0
- package/src/charts/box.tsx +96 -0
- package/src/charts/card-context.ts +11 -0
- package/src/charts/chart-box.module.css +64 -0
- package/src/charts/chart-box.module.css.d.ts +12 -0
- package/src/charts/chart-card.module.css +25 -0
- package/src/charts/chart-card.module.css.d.ts +8 -0
- package/src/charts/chart-legend.module.css +38 -0
- package/src/charts/chart-legend.module.css.d.ts +10 -0
- package/src/charts/compile.ts +585 -0
- package/src/charts/cursor.ts +282 -0
- package/src/charts/curves.ts +111 -0
- package/src/charts/donut.module.css +54 -0
- package/src/charts/donut.module.css.d.ts +9 -0
- package/src/charts/host.tsx +60 -0
- package/src/charts/index.ts +41 -178
- package/src/charts/legend.tsx +204 -0
- package/src/charts/marks.ts +201 -0
- package/src/charts/panel.tsx +227 -0
- package/src/charts/scales.ts +237 -0
- package/src/charts/sizing.ts +47 -0
- package/src/charts/state.tsx +80 -0
- package/src/charts/theme.ts +65 -0
- package/src/charts/types.ts +242 -0
- package/src/cli/audit-allows.ts +8 -30
- package/src/cli/config.ts +26 -43
- package/src/cli/doctor-upgrade.ts +457 -0
- package/src/cli/doctor.ts +89 -72
- package/src/cli/help.ts +2 -4
- package/src/cli/index.ts +100 -384
- package/src/cli/init.ts +60 -51
- package/src/cli/sync.ts +13 -68
- package/src/cli/tokens-css.ts +7 -28
- package/src/commands/ShortcutsHelp.tsx +8 -9
- package/src/commands/define-commands.ts +16 -43
- package/src/commands/define-overlays.ts +12 -36
- package/src/commands/index.ts +11 -94
- package/src/{notifications → commands/notifications}/bell.tsx +2 -2
- package/src/{notifications → commands/notifications}/center.tsx +7 -5
- package/src/{notifications → commands/notifications}/define-notifications.ts +3 -3
- package/src/commands/notifications/notify.tsx +158 -0
- package/src/{notifications → commands/notifications}/store.ts +10 -2
- package/src/commands/projectors.ts +5 -225
- package/src/commands/shell-bridge.ts +5 -5
- package/src/commands/shortcut-format.ts +5 -4
- package/src/common/errors.ts +3 -3
- package/src/common/use-measured-widths.ts +6 -3
- package/src/common/validate.ts +2 -2
- package/src/content/article-layout.tsx +37 -38
- package/src/content/article-model.ts +1 -84
- package/src/content/index.ts +12 -83
- package/src/content/markdown.tsx +4 -3
- package/src/content/mermaid.tsx +9 -7
- package/src/content/slug.ts +1 -16
- package/src/content/url-hardening.ts +8 -2
- package/src/controls/actions.tsx +24 -1
- package/src/controls/enum-filter.tsx +1 -1
- package/src/controls/filter-context.tsx +3 -1
- package/src/controls/filter-set.tsx +5 -7
- package/src/controls/form-layout.tsx +2 -2
- package/src/controls/glyphs.tsx +0 -10
- package/src/controls/index.ts +13 -64
- package/src/controls/multi-select-filter.tsx +5 -4
- package/src/controls/number-filter.tsx +8 -4
- package/src/controls/range-filter.tsx +5 -4
- package/src/controls/search-filter.tsx +25 -19
- package/src/controls/select-filter.tsx +5 -4
- package/src/controls/sync-button.tsx +18 -20
- package/src/controls/toggle-filter.tsx +5 -4
- package/src/controls/uncontrolled.ts +12 -0
- package/src/controls/view-tabs.tsx +3 -3
- package/src/controls-dates/date-range-picker.tsx +1 -1
- package/src/controls-dates/index.ts +0 -1
- package/src/dashboard/index.ts +7 -48
- package/src/dashboard/section.tsx +11 -40
- package/src/dashboard/stat-card.tsx +14 -16
- package/src/dashboard/widget-header.module.css +9 -7
- package/src/dev-dock.tsx +14 -27
- package/src/format/date.ts +2 -92
- package/src/format/index.ts +7 -53
- package/src/format/number.ts +3 -26
- package/src/format/shared.ts +2 -3
- package/src/forms/index.ts +0 -23
- package/src/guard/index.ts +36 -191
- package/src/guard/types.ts +6 -19
- package/src/index.ts +30 -282
- package/src/provider/create-router.tsx +138 -0
- package/src/provider/hotkeys.ts +70 -0
- package/src/provider/index.tsx +260 -230
- package/src/provider/lab-theme.ts +3 -2
- package/src/provider/route-transition.ts +199 -0
- package/src/provider/spotlight-actions.tsx +69 -0
- package/src/provider/test-router.tsx +25 -0
- package/src/query-client.ts +4 -22
- package/src/router-tanstack/index.ts +18 -112
- package/src/router-tanstack/nav.ts +28 -2
- package/src/router-tanstack/search-store.ts +9 -2
- package/src/router-tanstack/use-nav.ts +47 -13
- package/src/shell/app-mobile-nav.tsx +3 -2
- package/src/shell/app-sidebar.tsx +1 -1
- package/src/shell/aside-docking.ts +1 -1
- package/src/shell/index.tsx +61 -20
- package/src/shell/page-aside.tsx +47 -23
- package/src/shell/page-bar.tsx +3 -3
- package/src/shell/page-title.tsx +1 -1
- package/src/state.ts +11 -37
- package/src/styles.css +107 -7
- package/src/surfaces.ts +56 -151
- package/src/{data → table}/data-table-state.ts +5 -4
- package/src/{data → table}/data-table.tsx +170 -161
- package/src/table/index.ts +18 -0
- package/src/table/table-features.ts +102 -0
- package/src/telemetry.ts +110 -0
- package/src/theme/index.ts +22 -47
- package/src/theme/theme-toggle.module.css +30 -0
- package/src/theme/theme-toggle.module.css.d.ts +10 -0
- package/src/theme/theme-toggle.tsx +15 -43
- package/src/theme-lab/derive-controls.tsx +5 -3
- package/src/theme-lab/derive-state.ts +2 -1
- package/src/tokens/core.ts +1163 -0
- package/src/tokens/derive.ts +1 -1
- package/src/tokens/index.ts +14 -1181
- package/src/tokens/palette.ts +3 -7
- package/src/vite.ts +3 -3
- package/agent/templates/query-client.ts.tpl +0 -26
- package/dist/agent/adapter.d.ts +0 -150
- package/dist/agent/adapter.d.ts.map +0 -1
- package/dist/agent/adapter.js +0 -482
- package/dist/agent/use-agent-stream.d.ts +0 -35
- package/dist/agent/use-agent-stream.d.ts.map +0 -1
- package/dist/agent/use-agent-stream.js +0 -59
- package/dist/agent-chat/composer.d.ts.map +0 -1
- package/dist/agent-chat/index.d.ts +0 -31
- package/dist/agent-chat/index.d.ts.map +0 -1
- package/dist/agent-chat/index.js +0 -19
- package/dist/agent-chat/message-affordances.d.ts.map +0 -1
- package/dist/agent-chat/relative-time.d.ts.map +0 -1
- package/dist/agent-chat/thread-detail-panel.d.ts +0 -28
- package/dist/agent-chat/thread-detail-panel.d.ts.map +0 -1
- package/dist/agent-chat/thread-detail-panel.js +0 -115
- package/dist/agent-chat/thread-feed-row.d.ts.map +0 -1
- package/dist/agent-chat/thread-feed.d.ts.map +0 -1
- package/dist/agent-chat/thread-message.d.ts.map +0 -1
- package/dist/agent-chat/thread-outcome-card.d.ts.map +0 -1
- package/dist/agent-chat/thread-workspace.d.ts +0 -44
- package/dist/agent-chat/thread-workspace.d.ts.map +0 -1
- package/dist/agent-chat/thread-workspace.js +0 -153
- package/dist/agent-chat/tool-chip.d.ts.map +0 -1
- package/dist/agent-chat/use-keyboard-inset.d.ts.map +0 -1
- package/dist/agent-chat/virtualize.d.ts.map +0 -1
- package/dist/charts/cursor/resolve.d.ts +0 -75
- package/dist/charts/cursor/resolve.d.ts.map +0 -1
- package/dist/charts/cursor/resolve.js +0 -91
- package/dist/charts/cursor/scope.d.ts +0 -20
- package/dist/charts/cursor/scope.d.ts.map +0 -1
- package/dist/charts/cursor/scope.js +0 -20
- package/dist/charts/cursor/store.d.ts +0 -35
- package/dist/charts/cursor/store.d.ts.map +0 -1
- package/dist/charts/cursor/store.js +0 -25
- package/dist/charts/cursor/touch-pin.d.ts +0 -45
- package/dist/charts/cursor/touch-pin.d.ts.map +0 -1
- package/dist/charts/cursor/touch-pin.js +0 -79
- package/dist/charts/hooks/use-discrete-cursor.d.ts +0 -66
- package/dist/charts/hooks/use-discrete-cursor.d.ts.map +0 -1
- package/dist/charts/hooks/use-discrete-cursor.js +0 -198
- package/dist/charts/hooks/use-hysteresis.d.ts +0 -18
- package/dist/charts/hooks/use-hysteresis.d.ts.map +0 -1
- package/dist/charts/hooks/use-hysteresis.js +0 -12
- package/dist/charts/hooks/useBandPlot.d.ts +0 -145
- package/dist/charts/hooks/useBandPlot.d.ts.map +0 -1
- package/dist/charts/hooks/useBandPlot.js +0 -178
- package/dist/charts/hooks/useChartCursor.d.ts +0 -75
- package/dist/charts/hooks/useChartCursor.d.ts.map +0 -1
- package/dist/charts/hooks/useChartCursor.js +0 -200
- package/dist/charts/hooks/useChartSize.d.ts +0 -29
- package/dist/charts/hooks/useChartSize.d.ts.map +0 -1
- package/dist/charts/hooks/useChartSize.js +0 -8
- package/dist/charts/kinds/BandStrip.d.ts +0 -132
- package/dist/charts/kinds/BandStrip.d.ts.map +0 -1
- package/dist/charts/kinds/BandStrip.js +0 -241
- package/dist/charts/kinds/Bars.d.ts +0 -141
- package/dist/charts/kinds/Bars.d.ts.map +0 -1
- package/dist/charts/kinds/Bars.js +0 -343
- package/dist/charts/kinds/Donut.d.ts +0 -77
- package/dist/charts/kinds/Donut.d.ts.map +0 -1
- package/dist/charts/kinds/Donut.js +0 -245
- package/dist/charts/kinds/DualPanel.d.ts +0 -111
- package/dist/charts/kinds/DualPanel.d.ts.map +0 -1
- package/dist/charts/kinds/DualPanel.js +0 -471
- package/dist/charts/kinds/Heatmap.d.ts +0 -85
- package/dist/charts/kinds/Heatmap.d.ts.map +0 -1
- package/dist/charts/kinds/Heatmap.js +0 -243
- package/dist/charts/kinds/MirroredBars.d.ts +0 -98
- package/dist/charts/kinds/MirroredBars.d.ts.map +0 -1
- package/dist/charts/kinds/MirroredBars.js +0 -292
- package/dist/charts/kinds/MultiLine.d.ts +0 -87
- package/dist/charts/kinds/MultiLine.d.ts.map +0 -1
- package/dist/charts/kinds/MultiLine.js +0 -176
- package/dist/charts/kinds/StackedArea.d.ts +0 -73
- package/dist/charts/kinds/StackedArea.d.ts.map +0 -1
- package/dist/charts/kinds/StackedArea.js +0 -135
- package/dist/charts/kinds/ZonedLine.d.ts +0 -97
- package/dist/charts/kinds/ZonedLine.d.ts.map +0 -1
- package/dist/charts/kinds/ZonedLine.js +0 -155
- package/dist/charts/kinds/band-chrome.d.ts +0 -31
- package/dist/charts/kinds/band-chrome.d.ts.map +0 -1
- package/dist/charts/kinds/band-chrome.js +0 -71
- package/dist/charts/kinds/donut-layout.d.ts +0 -47
- package/dist/charts/kinds/donut-layout.d.ts.map +0 -1
- package/dist/charts/kinds/donut-layout.js +0 -52
- package/dist/charts/layout/auto-margin.d.ts +0 -122
- package/dist/charts/layout/auto-margin.d.ts.map +0 -1
- package/dist/charts/layout/auto-margin.js +0 -81
- package/dist/charts/layout/end-labels.d.ts +0 -64
- package/dist/charts/layout/end-labels.d.ts.map +0 -1
- package/dist/charts/layout/end-labels.js +0 -76
- package/dist/charts/layout/log-ticks.d.ts +0 -27
- package/dist/charts/layout/log-ticks.d.ts.map +0 -1
- package/dist/charts/layout/log-ticks.js +0 -42
- package/dist/charts/primitives/AreaGradient.d.ts +0 -18
- package/dist/charts/primitives/AreaGradient.d.ts.map +0 -1
- package/dist/charts/primitives/AreaGradient.js +0 -13
- package/dist/charts/primitives/Axes.d.ts +0 -83
- package/dist/charts/primitives/Axes.d.ts.map +0 -1
- package/dist/charts/primitives/Axes.js +0 -168
- package/dist/charts/primitives/CartesianChart.d.ts +0 -257
- package/dist/charts/primitives/CartesianChart.d.ts.map +0 -1
- package/dist/charts/primitives/CartesianChart.js +0 -549
- package/dist/charts/primitives/ChartCard.d.ts +0 -66
- package/dist/charts/primitives/ChartCard.d.ts.map +0 -1
- package/dist/charts/primitives/ChartCard.js +0 -143
- package/dist/charts/primitives/ChartFrame.d.ts +0 -156
- package/dist/charts/primitives/ChartFrame.d.ts.map +0 -1
- package/dist/charts/primitives/ChartFrame.js +0 -241
- package/dist/charts/primitives/ChartLegend.d.ts +0 -67
- package/dist/charts/primitives/ChartLegend.d.ts.map +0 -1
- package/dist/charts/primitives/ChartLegend.js +0 -292
- package/dist/charts/primitives/ChartPending.d.ts +0 -113
- package/dist/charts/primitives/ChartPending.d.ts.map +0 -1
- package/dist/charts/primitives/ChartPending.js +0 -117
- package/dist/charts/primitives/ChartTooltip.d.ts +0 -59
- package/dist/charts/primitives/ChartTooltip.d.ts.map +0 -1
- package/dist/charts/primitives/ChartTooltip.js +0 -197
- package/dist/charts/primitives/Crosshair.d.ts +0 -26
- package/dist/charts/primitives/Crosshair.d.ts.map +0 -1
- package/dist/charts/primitives/Crosshair.js +0 -23
- package/dist/charts/primitives/HatchPattern.d.ts +0 -31
- package/dist/charts/primitives/HatchPattern.d.ts.map +0 -1
- package/dist/charts/primitives/HatchPattern.js +0 -31
- package/dist/charts/primitives/HoverOverlay.d.ts +0 -45
- package/dist/charts/primitives/HoverOverlay.d.ts.map +0 -1
- package/dist/charts/primitives/HoverOverlay.js +0 -72
- package/dist/charts/primitives/HoverOverlay.module.css +0 -13
- package/dist/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
- package/dist/charts/primitives/XZoneRects.d.ts +0 -54
- package/dist/charts/primitives/XZoneRects.d.ts.map +0 -1
- package/dist/charts/primitives/XZoneRects.js +0 -65
- package/dist/charts/primitives/ZoneRects.d.ts +0 -38
- package/dist/charts/primitives/ZoneRects.d.ts.map +0 -1
- package/dist/charts/primitives/ZoneRects.js +0 -30
- package/dist/charts/primitives/chart-card-context.d.ts +0 -33
- package/dist/charts/primitives/chart-card-context.d.ts.map +0 -1
- package/dist/charts/primitives/chart-card-context.js +0 -18
- package/dist/charts/primitives/chart-frame-layout.d.ts +0 -185
- package/dist/charts/primitives/chart-frame-layout.d.ts.map +0 -1
- package/dist/charts/primitives/chart-frame-layout.js +0 -175
- package/dist/charts/primitives/chart-layout.d.ts +0 -112
- package/dist/charts/primitives/chart-layout.d.ts.map +0 -1
- package/dist/charts/primitives/chart-layout.js +0 -175
- package/dist/charts/primitives/chart-tier.d.ts +0 -16
- package/dist/charts/primitives/chart-tier.d.ts.map +0 -1
- package/dist/charts/primitives/chart-tier.js +0 -44
- package/dist/charts/primitives/legend-disclosure.d.ts +0 -27
- package/dist/charts/primitives/legend-disclosure.d.ts.map +0 -1
- package/dist/charts/primitives/legend-disclosure.js +0 -153
- package/dist/charts/series.d.ts +0 -189
- package/dist/charts/series.d.ts.map +0 -1
- package/dist/charts/series.js +0 -84
- package/dist/charts/sparklines/BarSparkline.d.ts +0 -37
- package/dist/charts/sparklines/BarSparkline.d.ts.map +0 -1
- package/dist/charts/sparklines/BarSparkline.js +0 -53
- package/dist/charts/sparklines/LineSparkline.d.ts +0 -15
- package/dist/charts/sparklines/LineSparkline.d.ts.map +0 -1
- package/dist/charts/sparklines/LineSparkline.js +0 -51
- package/dist/charts/sparklines/index.d.ts +0 -3
- package/dist/charts/sparklines/index.d.ts.map +0 -1
- package/dist/charts/sparklines/index.js +0 -6
- package/dist/charts/utils/domain.d.ts +0 -35
- package/dist/charts/utils/domain.d.ts.map +0 -1
- package/dist/charts/utils/domain.js +0 -12
- package/dist/charts/utils/format.d.ts +0 -8
- package/dist/charts/utils/format.d.ts.map +0 -1
- package/dist/charts/utils/format.js +0 -20
- package/dist/charts/utils/measure-text.d.ts +0 -25
- package/dist/charts/utils/measure-text.d.ts.map +0 -1
- package/dist/charts/utils/measure-text.js +0 -64
- package/dist/charts/utils/ticks.d.ts +0 -103
- package/dist/charts/utils/ticks.d.ts.map +0 -1
- package/dist/charts/utils/ticks.js +0 -92
- package/dist/commands/overlays-mount.d.ts +0 -122
- package/dist/commands/overlays-mount.d.ts.map +0 -1
- package/dist/commands/overlays-mount.js +0 -125
- package/dist/commands/useCommandHotkeys.d.ts +0 -14
- package/dist/commands/useCommandHotkeys.d.ts.map +0 -1
- package/dist/commands/useCommandHotkeys.js +0 -45
- package/dist/content/article-actions.d.ts +0 -39
- package/dist/content/article-actions.d.ts.map +0 -1
- package/dist/content/article-actions.js +0 -28
- package/dist/content/article-card.d.ts +0 -58
- package/dist/content/article-card.d.ts.map +0 -1
- package/dist/content/article-card.js +0 -79
- package/dist/content/article-card.module.css +0 -111
- package/dist/content/mdx.d.ts +0 -20
- package/dist/content/mdx.d.ts.map +0 -1
- package/dist/content/mdx.js +0 -64
- package/dist/controls/compare-filter.d.ts +0 -42
- package/dist/controls/compare-filter.d.ts.map +0 -1
- package/dist/controls/compare-filter.js +0 -38
- package/dist/controls/slider-control.d.ts +0 -36
- package/dist/controls/slider-control.d.ts.map +0 -1
- package/dist/controls/slider-control.js +0 -64
- package/dist/dashboard/widget-grid.d.ts +0 -27
- package/dist/dashboard/widget-grid.d.ts.map +0 -1
- package/dist/dashboard/widget-grid.js +0 -40
- package/dist/dashboard/widget-grid.module.css +0 -69
- package/dist/data/data-table-state.d.ts.map +0 -1
- package/dist/data/data-table.d.ts.map +0 -1
- package/dist/data/query-branch.d.ts.map +0 -1
- package/dist/data/table.d.ts +0 -24
- package/dist/data/table.d.ts.map +0 -1
- package/dist/data/virtual-list.d.ts +0 -133
- package/dist/data/virtual-list.d.ts.map +0 -1
- package/dist/data/virtual-list.js +0 -157
- package/dist/data/virtual.d.ts +0 -21
- package/dist/data/virtual.d.ts.map +0 -1
- package/dist/data/virtual.js +0 -4
- package/dist/forms/FormErrorSummary.d.ts +0 -30
- package/dist/forms/FormErrorSummary.d.ts.map +0 -1
- package/dist/forms/FormErrorSummary.js +0 -30
- package/dist/forms/use-field-array.d.ts +0 -60
- package/dist/forms/use-field-array.d.ts.map +0 -1
- package/dist/forms/use-field-array.js +0 -20
- package/dist/forms/use-form-draft.d.ts +0 -76
- package/dist/forms/use-form-draft.d.ts.map +0 -1
- package/dist/forms/use-form-draft.js +0 -92
- package/dist/forms/use-form-submit.d.ts +0 -88
- package/dist/forms/use-form-submit.d.ts.map +0 -1
- package/dist/forms/use-form-submit.js +0 -63
- package/dist/notifications/bell.d.ts.map +0 -1
- package/dist/notifications/center.d.ts.map +0 -1
- package/dist/notifications/define-notifications.d.ts.map +0 -1
- package/dist/notifications/index.d.ts +0 -40
- package/dist/notifications/index.d.ts.map +0 -1
- package/dist/notifications/index.js +0 -54
- package/dist/notifications/mount-guard.d.ts +0 -8
- package/dist/notifications/mount-guard.d.ts.map +0 -1
- package/dist/notifications/mount-guard.js +0 -18
- package/dist/notifications/notify.d.ts +0 -149
- package/dist/notifications/notify.d.ts.map +0 -1
- package/dist/notifications/notify.js +0 -171
- package/dist/notifications/store.d.ts.map +0 -1
- package/dist/provider/connectivity-indicator.d.ts +0 -13
- package/dist/provider/connectivity-indicator.d.ts.map +0 -1
- package/dist/provider/connectivity-indicator.js +0 -205
- package/dist/provider/connectivity-provider.d.ts +0 -7
- package/dist/provider/connectivity-provider.d.ts.map +0 -1
- package/dist/provider/connectivity-provider.js +0 -128
- package/dist/provider/connectivity-types.d.ts +0 -36
- package/dist/provider/connectivity-types.d.ts.map +0 -1
- package/dist/provider/use-connectivity.d.ts +0 -3
- package/dist/provider/use-connectivity.d.ts.map +0 -1
- package/dist/provider/use-connectivity.js +0 -14
- package/dist/query-devtools.d.ts +0 -21
- package/dist/query-devtools.d.ts.map +0 -1
- package/dist/query-devtools.js +0 -13
- package/src/agent/adapter.ts +0 -945
- package/src/agent/use-agent-stream.ts +0 -154
- package/src/agent-chat/index.ts +0 -54
- package/src/agent-chat/thread-detail-panel.tsx +0 -201
- package/src/agent-chat/thread-workspace.tsx +0 -279
- package/src/charts/cursor/resolve.ts +0 -198
- package/src/charts/cursor/scope.tsx +0 -35
- package/src/charts/cursor/store.ts +0 -58
- package/src/charts/cursor/touch-pin.ts +0 -138
- package/src/charts/hooks/use-discrete-cursor.ts +0 -335
- package/src/charts/hooks/use-hysteresis.ts +0 -26
- package/src/charts/hooks/useBandPlot.ts +0 -383
- package/src/charts/hooks/useChartCursor.ts +0 -367
- package/src/charts/hooks/useChartSize.ts +0 -35
- package/src/charts/kinds/BandStrip.tsx +0 -449
- package/src/charts/kinds/Bars.tsx +0 -589
- package/src/charts/kinds/Donut.tsx +0 -368
- package/src/charts/kinds/DualPanel.tsx +0 -712
- package/src/charts/kinds/Heatmap.tsx +0 -396
- package/src/charts/kinds/MirroredBars.tsx +0 -469
- package/src/charts/kinds/MultiLine.tsx +0 -322
- package/src/charts/kinds/StackedArea.tsx +0 -267
- package/src/charts/kinds/ZonedLine.tsx +0 -301
- package/src/charts/kinds/band-chrome.tsx +0 -91
- package/src/charts/kinds/donut-layout.ts +0 -82
- package/src/charts/layout/auto-margin.ts +0 -242
- package/src/charts/layout/end-labels.ts +0 -135
- package/src/charts/layout/log-ticks.ts +0 -90
- package/src/charts/primitives/AreaGradient.tsx +0 -26
- package/src/charts/primitives/Axes.tsx +0 -271
- package/src/charts/primitives/CartesianChart.tsx +0 -1002
- package/src/charts/primitives/ChartCard.tsx +0 -280
- package/src/charts/primitives/ChartFrame.tsx +0 -493
- package/src/charts/primitives/ChartLegend.tsx +0 -422
- package/src/charts/primitives/ChartPending.tsx +0 -243
- package/src/charts/primitives/ChartTooltip.tsx +0 -265
- package/src/charts/primitives/Crosshair.tsx +0 -43
- package/src/charts/primitives/HatchPattern.tsx +0 -55
- package/src/charts/primitives/HoverOverlay.module.css +0 -13
- package/src/charts/primitives/HoverOverlay.module.css.d.ts +0 -8
- package/src/charts/primitives/HoverOverlay.tsx +0 -109
- package/src/charts/primitives/XZoneRects.tsx +0 -132
- package/src/charts/primitives/ZoneRects.tsx +0 -67
- package/src/charts/primitives/chart-card-context.ts +0 -46
- package/src/charts/primitives/chart-frame-layout.ts +0 -430
- package/src/charts/primitives/chart-layout.ts +0 -318
- package/src/charts/primitives/chart-tier.tsx +0 -76
- package/src/charts/primitives/legend-disclosure.tsx +0 -178
- package/src/charts/series.ts +0 -276
- package/src/charts/sparklines/BarSparkline.tsx +0 -94
- package/src/charts/sparklines/LineSparkline.tsx +0 -71
- package/src/charts/sparklines/index.ts +0 -2
- package/src/charts/theme.tsx +0 -53
- package/src/charts/utils/domain.ts +0 -41
- package/src/charts/utils/format.ts +0 -19
- package/src/charts/utils/measure-text.ts +0 -109
- package/src/charts/utils/ticks.ts +0 -239
- package/src/commands/overlays-mount.tsx +0 -333
- package/src/commands/useCommandHotkeys.ts +0 -114
- package/src/content/article-actions.ts +0 -72
- package/src/content/article-card.module.css +0 -111
- package/src/content/article-card.tsx +0 -174
- package/src/content/mdx.tsx +0 -127
- package/src/controls/compare-filter.tsx +0 -81
- package/src/controls/slider-control.tsx +0 -159
- package/src/dashboard/widget-grid.module.css +0 -69
- package/src/dashboard/widget-grid.tsx +0 -146
- package/src/data/table.ts +0 -39
- package/src/data/virtual-list.tsx +0 -356
- package/src/data/virtual.ts +0 -26
- package/src/forms/FormErrorSummary.tsx +0 -71
- package/src/forms/use-field-array.ts +0 -94
- package/src/forms/use-form-draft.ts +0 -262
- package/src/forms/use-form-submit.ts +0 -199
- package/src/notifications/index.ts +0 -88
- package/src/notifications/mount-guard.ts +0 -38
- package/src/notifications/notify.tsx +0 -379
- package/src/provider/connectivity-indicator.tsx +0 -267
- package/src/provider/connectivity-provider.tsx +0 -189
- package/src/provider/connectivity-types.ts +0 -42
- package/src/provider/use-connectivity.ts +0 -26
- package/src/query-devtools.tsx +0 -40
- /package/dist/{agent-chat → agent/chat}/message-affordances.js +0 -0
- /package/dist/{agent-chat → agent/chat}/relative-time.d.ts +0 -0
- /package/dist/{agent-chat → agent/chat}/relative-time.js +0 -0
- /package/dist/{agent-chat → agent/chat}/use-keyboard-inset.d.ts +0 -0
- /package/dist/{agent-chat → agent/chat}/virtualize.js +0 -0
- /package/dist/{notifications → commands/notifications}/bell.js +0 -0
- /package/dist/{notifications → commands/notifications}/define-notifications.js +0 -0
- /package/dist/{provider/connectivity-types.js → controls/uncontrolled.js} +0 -0
- /package/dist/{data → table}/data-table.module.css +0 -0
- /package/dist/{data → table}/data-table.module.css.d.ts +0 -0
- /package/dist/{data → table}/query-branch.d.ts +0 -0
- /package/dist/{data → table}/query-branch.js +0 -0
- /package/src/{agent-chat → agent/chat}/relative-time.ts +0 -0
- /package/src/{data → table}/data-table.module.css +0 -0
- /package/src/{data → table}/data-table.module.css.d.ts +0 -0
- /package/src/{data → table}/query-branch.ts +0 -0
package/MIGRATING.md
CHANGED
|
@@ -66,26 +66,953 @@ There is one row per SURFACE, not per export, and a surface earns a row once any
|
|
|
66
66
|
shipped lefthook preset both changed in 1.30.0 with no row that owned them — which is how a
|
|
67
67
|
consumer read this index, found nothing, and diffed a KPI row that had silently gone 4-up → 2-up.
|
|
68
68
|
|
|
69
|
-
| Surface
|
|
70
|
-
| ----------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ---------------------------------- | ------ | ------ | -------------------------------------------------------------------------------------------- | ------ | ------ | ------ | ------ | ------ | ----------------------------------------------- | ------ | ------ | ------ | ------ | ------------------------------------------------------------ | ---------- | --- |
|
|
71
|
-
| **tokens** (`./tokens`)
|
|
72
|
-
| **charts** (`./charts`)
|
|
73
|
-
| **shell** (`.`)
|
|
74
|
-
| **controls** (`./controls`)
|
|
75
|
-
| **forms** (`./forms`)
|
|
76
|
-
| **data** (`./data/table`)
|
|
77
|
-
| **dashboard** (`.`)
|
|
78
|
-
| **toolchain** (`./configs/*`) | —
|
|
79
|
-
| **CLI** (`basalt-ui`)
|
|
80
|
-
| **guards**
|
|
69
|
+
| Surface | 1.27.0 | 1.28.0 | 1.29.0 | 1.30.0 | 1.30.1 | 1.30.2 | 1.31.0 | 1.32.0 | 1.32.1 | 1.33.0 | 1.34.0 | 1.34.1 | 1.35.0 | 1.36.0 | 1.36.1 | 1.37.0 | 1.37.1 | 1.38.0 | 1.38.1 | 1.39.0 | 1.40.0 | 1.40.1 | 1.40.2 | 1.40.3 | 1.41.0 | 2.0.0 | 2.0.1 | Unreleased |
|
|
70
|
+
| ----------------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ---------------------------------- | ------ | ------ | -------------------------------------------------------------------------------------------- | ------ | ------ | ------ | ------ | ------ | ----------------------------------------------- | ------ | ------ | ------ | ------ | ------------------------------------------------------------ | ---------- | --- | --- | --- |
|
|
71
|
+
| **tokens** (`./tokens`) | — | `--vx-divider` → `rgba()` on both schemes (§ Shell) | `--vx-space-touch-target` added (§ Additions) | eight spacing numbers (§ Chrome) | — | — | `--vx-hit` replaces the touch vars; `SIZE_CLASSES` (§ 1.31.0) | — | `SIZE_CLASSES`/`CONTAINER_CLASSES` actually exported (§ Fixes) | `CONTAINER_GRID_BREAKPOINTS`; `raw-breakpoint` trusts it (§ 1.33.0) | `CONTAINER_KEYS` (§ 1.34.0) | — | — | — | — | — | — | — | | `appShellInset` 20 → 16 (§ 1.38.1) | — | — | — | — | — | — | — | — | — |
|
|
72
|
+
| **charts** (`./charts`) | — | phone tier, `curve`, formatters, `state`, log axis (§ preamble) | `ChartState.empty: string`, `AxisBottomNumeric` (§ Additions) | responsive `height`, `legend.maxRows` (§ Charts) | `height` reaches the kinds; `maxRows` beats the `fill` fit (§ Charts) | — | container-class tier + `height` keys (§ 1.31.0) | — | `ResponsiveChartHeight` `sm` → key (§ Container recipes) | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
|
|
73
|
+
| **shell** (`.`) | — | scrollport, region seams, **the brand left the sidebar** (§§ scrollport, brand, Shell) | `PageTitle`, `BasaltDevDock`, `useBreakpoint` (§ Additions) | More popover, aside pill, the responsive gutter, `useBasaltSpacing` (§ Chrome) | — | — | `theme.breakpoints` derived, `useSizeClass`, `data-basalt-host`, `useBreakpoint` on notice (§ 1.31.0) | `useBreakpoint` removal → 1.33.0; `useSizeClass` is shell-only (§ 1.32.0) | shell-less `shell/` gutter, `AppShell` breakpoints, `useSizeClass` for overlays (§§ Shell-less, `useSizeClass`) | — | `useBreakpoint` removed (§ 1.34.0) | — | — | `useCoarsePointer()` (§ `useCoarsePointer()`) | — | — | — | — | | content gutter 16, block 8 from `sm` (§ 1.38.1) | — | — | — | — | — | — | — | — | — |
|
|
74
|
+
| **controls** (`./controls`) | `NumberFilter`, `field.number` (§ Controls) | sheet renders panel rows; `PanelRow`, `SliderControl` (§ `basalt-ui/controls`) | — | — | — | — | — | — | — | `NumberFilter clearable`; `createSearchStore` `resets` (§ State and controls) | — | — | — | `FormSection`/`FormRow`/`FormGroup`/`FormActions` move here (§ The form layout moves) | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
|
|
75
|
+
| **forms** (`./forms`) | — | `field` → `inputProps`, **`inputProps` drops `key`**, the layout tier (§ `inputProps`) | `field` DELETED — and the `--fix` recipe no longer works (§ Consolidation) | — | — | — | — | — | `FormGroup` row no longer stretches (§ Fixes) | — | — | — | — | the layout + `useForm`/`schemaResolver` deprecated, removed 1.37.0 (§ The form layout moves) | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
|
|
76
|
+
| **data** (`./data/table`) | — | root is a `<div>`, row selection, `getItemKey` required (§ `basalt-ui/data`) | `./data` + `./query` + `./connectivity` dropped (§ Consolidation) | — | — | — | — | — | `renderCard` documented (§ `renderCard`) | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
|
|
77
|
+
| **dashboard** (`.`) | `StatCard`: `unit`, `breakdown`, delta format (§ `StatCard`) | `StatGroup`, `WidgetGrid`, query-aware `StatCard` — additive | — | **the column law keys on the CONTAINER; `cols={4}` is 2-up at `sm`** (§ Dashboard) | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
|
|
78
|
+
| **toolchain** (`./configs/*`) | — | — | the shipped lefthook preset's `check-theme` BROKE — the CLI resolver stopped ascending (§ CLI) | the preset's default bin, and the `root:` recipe (§ Toolchain) | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
|
|
79
|
+
| **CLI** (`basalt-ui`) | — | — | **resolver stops relocating; `doctor` loses 6 of 10 checks** (§ CLI) | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | — | the managed block moves `CLAUDE.md` → `AGENTS.md` (§ 1.41.0) | — | — | — |
|
|
80
|
+
| **guards** | five rules → `error` (§ Guards) | six new ids at `warn` (§ preamble) | `query-dual-import` retired in 1.29.1 (§ Guards) | four rules → `error` (§ Guards) | — | — | — | `raw-breakpoint`: the container-grid answer, `error` at 1.33.0 (§ 1.32.0) | `FormRow`/`FormGroup` homes in both lanes; `basalt-main` dropped (§ Fixes) | C1 + breakpoint pairs → `error`; `unknown-vx-token` `warn` (§ Guards) | — | — | — | `unknown-vx-token` → `error`; the token factories throw (§ Guards) | — | — | — | — | — | — | — | — | — | — | — | — | — | — |
|
|
81
81
|
|
|
82
82
|
---
|
|
83
83
|
|
|
84
|
+
## 2.0.0
|
|
85
|
+
|
|
86
|
+
Contract: `docs/V2-SPEC.md`. Every removal and move is one row, grouped by area. 1.x is frozen at v1.41.0; 2.0.0 is the only major.
|
|
87
|
+
|
|
88
|
+
### Upgrading from 1.x
|
|
89
|
+
|
|
90
|
+
1. Go to `1.41.0` first and clear its deprecations: 2.0 retires the lifecycle, so nothing deprecated survives.
|
|
91
|
+
2. Install `basalt-ui@2` and the now-required peers (§ Subpaths, peers and gates); delete only the
|
|
92
|
+
`@mantine/{core,notifications,spotlight}/styles.layer.css` imports, because `basalt-ui/styles.css`
|
|
93
|
+
`@import`s exactly those three. Keep every extension package's layer CSS (`@mantine/dates`,
|
|
94
|
+
`@mantine/schedule`, …) imported AFTER `basalt-ui/styles.css`.
|
|
95
|
+
3. Replace the hand-built root (providers, `QueryClient`, router) with `BasaltProvider` +
|
|
96
|
+
`createBasaltRouter` (§ Provider and wiring).
|
|
97
|
+
4. Rewrite imports by area, using the tables below. A `move` changes only the specifier.
|
|
98
|
+
5. Run `bunx basalt-ui sync`, then `bunx basalt-ui doctor`, and take the lint findings one at a time.
|
|
99
|
+
|
|
100
|
+
### AI, content, commands, state and table (`w3/delete-agent-data`)
|
|
101
|
+
|
|
102
|
+
Subpath folds: `basalt-ui/agent-chat` → `basalt-ui/agent`, `basalt-ui/notifications` → `basalt-ui/commands`, `basalt-ui/data/table` → `basalt-ui/table`. `basalt-ui/data/virtual` is removed. A `move` changes only the import specifier; the name is unchanged.
|
|
103
|
+
|
|
104
|
+
| Old import | New | Why |
|
|
105
|
+
| --------------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
106
|
+
| `basalt-ui/commands`: `defineCommand` | deleted | no consumer outside the playground |
|
|
107
|
+
| `basalt-ui/commands`: `runCommand` | deleted | no consumer outside the playground |
|
|
108
|
+
| `basalt-ui/commands`: `CommandMap` | deleted | type removed (`'idle' \| 'submitted' \| 'streaming' \| 'done' \| 'error'`); derive with `NonNullable<ComponentProps<typeof ThreadFeedRow>['liveStatus']>` |
|
|
109
|
+
| `basalt-ui/commands`: `CommandId` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
110
|
+
| `basalt-ui/commands`: `CommandRunContext` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
111
|
+
| `basalt-ui/commands`: `defineOverlay` | deleted | no consumer outside the playground |
|
|
112
|
+
| `basalt-ui/commands`: `registerModalsProvider` | deleted | provider-internal (§ 2) |
|
|
113
|
+
| `basalt-ui/commands`: `Overlay` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
114
|
+
| `basalt-ui/commands`: `OverlayMap` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
115
|
+
| `basalt-ui/commands`: `OverlayKey` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
116
|
+
| `basalt-ui/commands`: `ConfirmOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
117
|
+
| `basalt-ui/commands`: `ConfirmDeleteOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
118
|
+
| `basalt-ui/commands`: `toSpotlightActions` | deleted | provider-internal |
|
|
119
|
+
| `basalt-ui/commands`: `toRouteActions` | deleted | no consumer outside the playground |
|
|
120
|
+
| `basalt-ui/commands`: `toShortcutList` | deleted | no consumer outside the playground |
|
|
121
|
+
| `basalt-ui/commands`: `toHotkeyBindings` | deleted | provider-internal (§ 2); § 8 replaces the mirrored hotkey types |
|
|
122
|
+
| `basalt-ui/commands`: `RouteActionItem` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
123
|
+
| `basalt-ui/commands`: `RouteActionSection` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
124
|
+
| `basalt-ui/commands`: `ToRouteActionsOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
125
|
+
| `basalt-ui/commands`: `ShortcutEntry` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
126
|
+
| `basalt-ui/commands`: `HotkeyBinding` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
127
|
+
| `basalt-ui/commands`: `ColorScheme` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
128
|
+
| `basalt-ui/commands`: `ColorSchemeSetter` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
129
|
+
| `basalt-ui/commands`: `SidebarToggle` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
130
|
+
| `basalt-ui/commands`: `parseShortcut` | deleted | no consumer outside the playground |
|
|
131
|
+
| `basalt-ui/commands`: `detectMac` | deleted | no consumer outside the playground |
|
|
132
|
+
| `basalt-ui/commands`: `formatShortcutDisplay` | deleted | no consumer outside the playground |
|
|
133
|
+
| `basalt-ui/commands`: `useCommandHotkeys` | deleted | provider binds the `defineCommands` registry, Hotkeys 0.13 loaded lazily (§ 2, § 8) |
|
|
134
|
+
| `basalt-ui/commands`: `ShortcutsHelpProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
135
|
+
| `basalt-ui/commands`: `BasaltOverlays` | deleted | `BasaltProvider` mounts modals, spotlight, hotkeys, notifications (§ 2) |
|
|
136
|
+
| `basalt-ui/commands`: `BasaltOverlaysProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
137
|
+
| `basalt-ui/commands`: `basaltSpotlight` | deleted | no consumer outside the playground |
|
|
138
|
+
| `basalt-ui/commands`: `openSpotlight` | deleted | no consumer outside the playground |
|
|
139
|
+
| `basalt-ui/commands`: `closeSpotlight` | deleted | no consumer outside the playground |
|
|
140
|
+
| `basalt-ui/notifications`: `notify` | deleted | no consumer outside the playground |
|
|
141
|
+
| `basalt-ui/notifications`: `notifySuccess` | deleted | no consumer outside the playground |
|
|
142
|
+
| `basalt-ui/notifications`: `notifyError` | deleted | no consumer outside the playground |
|
|
143
|
+
| `basalt-ui/notifications`: `notifyWarning` | deleted | no consumer outside the playground |
|
|
144
|
+
| `basalt-ui/notifications`: `notifyInfo` | deleted | no consumer outside the playground |
|
|
145
|
+
| `basalt-ui/notifications`: `notifyPromise` | deleted | no consumer outside the playground |
|
|
146
|
+
| `basalt-ui/notifications`: `notifyUndo` | deleted | no consumer outside the playground |
|
|
147
|
+
| `basalt-ui/notifications`: `notifyUndoable` | deleted | no consumer outside the playground |
|
|
148
|
+
| `basalt-ui/notifications`: `NotifyOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
149
|
+
| `basalt-ui/notifications`: `NotifyPromiseMessages` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
150
|
+
| `basalt-ui/notifications`: `NotifyUndoOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
151
|
+
| `basalt-ui/notifications`: `NotifyUndoHandle` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
152
|
+
| `basalt-ui/notifications`: `defineNotification` | deleted | no consumer outside the playground |
|
|
153
|
+
| `basalt-ui/notifications`: `defineNotifications` | `basalt-ui/commands` | ./notifications folds into ./commands |
|
|
154
|
+
| `basalt-ui/notifications`: `emit` | `basalt-ui/commands` | ./notifications folds into ./commands |
|
|
155
|
+
| `basalt-ui/notifications`: `resolveAction` | deleted | no consumer outside the playground |
|
|
156
|
+
| `basalt-ui/notifications`: `NotificationAction` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
157
|
+
| `basalt-ui/notifications`: `NotificationKind` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
158
|
+
| `basalt-ui/notifications`: `NotificationSpec` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
159
|
+
| `basalt-ui/notifications`: `NotificationSpecMap` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
160
|
+
| `basalt-ui/notifications`: `NotificationIntent` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
161
|
+
| `basalt-ui/notifications`: `add` | deleted | no consumer outside the playground |
|
|
162
|
+
| `basalt-ui/notifications`: `markRead` | deleted | no consumer outside the playground |
|
|
163
|
+
| `basalt-ui/notifications`: `markAllRead` | deleted | no consumer outside the playground |
|
|
164
|
+
| `basalt-ui/notifications`: `dismiss` | deleted | no consumer outside the playground |
|
|
165
|
+
| `basalt-ui/notifications`: `dismissAll` | deleted | no consumer outside the playground |
|
|
166
|
+
| `basalt-ui/notifications`: `remove` | deleted | no consumer outside the playground |
|
|
167
|
+
| `basalt-ui/notifications`: `clear` | deleted | no consumer outside the playground |
|
|
168
|
+
| `basalt-ui/notifications`: `needsAttention` | deleted | no consumer outside the playground |
|
|
169
|
+
| `basalt-ui/notifications`: `useNotificationHistory` | deleted | no consumer outside the playground |
|
|
170
|
+
| `basalt-ui/notifications`: `NotificationActionRef` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
171
|
+
| `basalt-ui/notifications`: `NotificationHistoryItem` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
172
|
+
| `basalt-ui/notifications`: `NotificationHistoryState` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
173
|
+
| `basalt-ui/notifications`: `UseNotificationHistoryReturn` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
174
|
+
| `basalt-ui/notifications`: `NotificationBell` | `basalt-ui/commands` | ./notifications folds into ./commands |
|
|
175
|
+
| `basalt-ui/notifications`: `NotificationBellProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
176
|
+
| `basalt-ui/notifications`: `NotificationCenter` | deleted | no consumer outside the playground |
|
|
177
|
+
| `basalt-ui/notifications`: `NotificationCenterProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
178
|
+
| `basalt-ui/data/table`: `BasaltDataTable` | `basalt-ui/table` | ./data/table folds into ./table |
|
|
179
|
+
| `basalt-ui/data/table`: `BasaltDataTableProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
180
|
+
| `basalt-ui/data/table`: `BasaltDataTableSlot` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
181
|
+
| `basalt-ui/data/table`: `DataTableAlign` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
182
|
+
| `basalt-ui/data/table`: `DataTableColumnId` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
183
|
+
| `basalt-ui/data/table`: `DataTableColumnPinning` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
184
|
+
| `basalt-ui/data/table`: `DataTableFacet` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
185
|
+
| `basalt-ui/data/table`: `DataTableFacetOption` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
186
|
+
| `basalt-ui/data/table`: `createColumnHelper` | `basalt-ui/table` | becomes basalt-owned: `createColumnHelper<Row>()` over Table v9 (§ 8) |
|
|
187
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualList` | deleted | no consumer; Virtual stays an internal dep of the transcript/table |
|
|
188
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualListHandle` | deleted | no consumer outside the playground |
|
|
189
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualListProps` | deleted | no consumer outside the playground |
|
|
190
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualListSlot` | deleted | no consumer outside the playground |
|
|
191
|
+
| `basalt-ui/agent`: `AgentPartDraft` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
192
|
+
| `basalt-ui/agent`: `Drafted` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
193
|
+
| `basalt-ui/agent`: `StartPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
194
|
+
| `basalt-ui/agent`: `TextPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
195
|
+
| `basalt-ui/agent`: `ReasoningPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
196
|
+
| `basalt-ui/agent`: `ToolCallState` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
197
|
+
| `basalt-ui/agent`: `SourcePart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
198
|
+
| `basalt-ui/agent`: `ErrorPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
199
|
+
| `basalt-ui/agent`: `isStartPart` | deleted | no consumer outside the playground |
|
|
200
|
+
| `basalt-ui/agent`: `isToolCallSettled` | deleted | no consumer outside the playground |
|
|
201
|
+
| `basalt-ui/agent`: `TERMINAL_TOOL_STATES` | deleted | no consumer outside the playground |
|
|
202
|
+
| `basalt-ui/agent`: `mergePart` | deleted | no consumer outside the playground |
|
|
203
|
+
| `basalt-ui/agent`: `withPartIds` | deleted | no consumer outside the playground |
|
|
204
|
+
| `basalt-ui/agent`: `coalesceParts` | deleted | no consumer outside the playground |
|
|
205
|
+
| `basalt-ui/agent`: `definePartRenderers` | deleted | no consumer outside the playground |
|
|
206
|
+
| `basalt-ui/agent`: `narrowAgentPart` | deleted | no consumer outside the playground |
|
|
207
|
+
| `basalt-ui/agent`: `ConsumerPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
208
|
+
| `basalt-ui/agent`: `PartRenderContext` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
209
|
+
| `basalt-ui/agent`: `AgentTransport` | kept | still exported from `basalt-ui/agent` (W9: the DX trial needed it to type a mock or custom transport) |
|
|
210
|
+
| `basalt-ui/agent`: `ResumableAgentTransport` | kept | still exported from `basalt-ui/agent` (W9: the DX trial needed it to type a mock or custom transport) |
|
|
211
|
+
| `basalt-ui/agent`: `edenTransport` | deleted | no consumer; `aiSdkTransport` is the one transport (§ 6) |
|
|
212
|
+
| `basalt-ui/agent`: `isResumable` | deleted | no consumer outside the playground |
|
|
213
|
+
| `basalt-ui/agent`: `AiSdkTransport` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
214
|
+
| `basalt-ui/agent`: `AiSdkTransportOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
215
|
+
| `basalt-ui/agent`: `useAgentStream` | deleted | no consumer; `useAgentThreadRuns` is the one runner |
|
|
216
|
+
| `basalt-ui/agent`: `StreamStatus` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
217
|
+
| `basalt-ui/agent`: `UseAgentStreamReturn` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
218
|
+
| `basalt-ui/agent`: `UseAgentThreadRunsArgs` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
219
|
+
| `basalt-ui/agent`: `UseAgentThreadRunsReturn` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
220
|
+
| `basalt-ui/agent`: `PartList` | deleted | no consumer outside the playground |
|
|
221
|
+
| `basalt-ui/agent`: `PartListProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
222
|
+
| `basalt-ui/agent`: `AgentPartRenderers` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
223
|
+
| `basalt-ui/agent`: `TextPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
224
|
+
| `basalt-ui/agent`: `ReasoningPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
225
|
+
| `basalt-ui/agent`: `ToolCallPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
226
|
+
| `basalt-ui/agent`: `SourcePartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
227
|
+
| `basalt-ui/agent`: `ErrorPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
228
|
+
| `basalt-ui/agent`: `BasaltStickToBottom` | deleted | no consumer outside the playground |
|
|
229
|
+
| `basalt-ui/agent`: `BasaltStickToBottomProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
230
|
+
| `basalt-ui/agent`: `createChatHistoryStore` | deleted | no consumer outside the playground |
|
|
231
|
+
| `basalt-ui/agent`: `ChatHistoryStore` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
232
|
+
| `basalt-ui/agent`: `ChatHistoryStoreOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
233
|
+
| `basalt-ui/agent`: `createThreadsStore` | deleted | no consumer outside the playground |
|
|
234
|
+
| `basalt-ui/agent`: `ThreadsStoreOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
235
|
+
| `basalt-ui/agent`: `heuristicOutcome` | deleted | no consumer outside the playground |
|
|
236
|
+
| `basalt-ui/agent`: `createAdapterThreadsStore` | deleted | no consumer outside the playground |
|
|
237
|
+
| `basalt-ui/agent`: `threadsStoreAdapterContract` | deleted | no consumer outside the playground |
|
|
238
|
+
| `basalt-ui/agent`: `AdapterThreadsStoreOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
239
|
+
| `basalt-ui/agent`: `ThreadsStoreAdapter` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
240
|
+
| `basalt-ui/agent`: `ThreadsStoreAdapterContractCase` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
241
|
+
| `basalt-ui/agent-chat`: `ThreadWorkspace` | deleted | no consumer |
|
|
242
|
+
| `basalt-ui/agent-chat`: `ThreadWorkspaceProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
243
|
+
| `basalt-ui/agent-chat`: `ThreadFeed` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
244
|
+
| `basalt-ui/agent-chat`: `ThreadFeedProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
245
|
+
| `basalt-ui/agent-chat`: `ThreadFeedRow` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
246
|
+
| `basalt-ui/agent-chat`: `ThreadFeedRowProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
247
|
+
| `basalt-ui/agent-chat`: `MessageAffordances` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
248
|
+
| `basalt-ui/agent-chat`: `RowHeightProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
249
|
+
| `basalt-ui/agent-chat`: `VirtualizeOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
250
|
+
| `basalt-ui/agent-chat`: `VirtualizeProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
251
|
+
| `basalt-ui/agent-chat`: `ThreadOutcomeCard` | deleted | no consumer outside the playground |
|
|
252
|
+
| `basalt-ui/agent-chat`: `ThreadOutcomeCardProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
253
|
+
| `basalt-ui/agent-chat`: `ThreadDetailPanel` | deleted | no consumer outside the playground |
|
|
254
|
+
| `basalt-ui/agent-chat`: `ThreadDetailPanelProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
255
|
+
| `basalt-ui/agent-chat`: `Composer` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
256
|
+
| `basalt-ui/agent-chat`: `ComposerAttachment` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
257
|
+
| `basalt-ui/agent-chat`: `ComposerHandle` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
258
|
+
| `basalt-ui/agent-chat`: `ComposerProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
259
|
+
| `basalt-ui/agent-chat`: `ComposerSubmit` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
260
|
+
| `basalt-ui/agent-chat`: `threadPartRenderers` | deleted | no consumer outside the playground |
|
|
261
|
+
| `basalt-ui/agent-chat`: `ThreadTranscript` | deleted | no consumer; argo renders turns through `ThreadFeedRow` |
|
|
262
|
+
| `basalt-ui/agent-chat`: `ThreadTranscriptProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
263
|
+
| `basalt-ui/agent-chat`: `ToolChip` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
264
|
+
| `basalt-ui/agent-chat`: `ToolChipProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
265
|
+
| `basalt-ui/content`: `ProseDensity` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
266
|
+
| `basalt-ui/content`: `ProseProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
267
|
+
| `basalt-ui/content`: `CodeBlock` | deleted | rendered by `Markdown` fences; no direct consumer |
|
|
268
|
+
| `basalt-ui/content`: `CodeBlockProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
269
|
+
| `basalt-ui/content`: `CalloutProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
270
|
+
| `basalt-ui/content`: `TableOfContentsProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
271
|
+
| `basalt-ui/content`: `ReadingProgress` | deleted | no consumer outside the playground |
|
|
272
|
+
| `basalt-ui/content`: `ReadingProgressProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
273
|
+
| `basalt-ui/content`: `headingSlug` | deleted | no consumer outside the playground |
|
|
274
|
+
| `basalt-ui/content`: `readingTime` | deleted | no consumer outside the playground |
|
|
275
|
+
| `basalt-ui/content`: `SlugTracker` | deleted | no consumer outside the playground |
|
|
276
|
+
| `basalt-ui/content`: `ReadingTime` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
277
|
+
| `basalt-ui/content`: `HeadingAnchor` | deleted | no consumer outside the playground |
|
|
278
|
+
| `basalt-ui/content`: `HeadingAnchorProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
279
|
+
| `basalt-ui/content`: `FenceRenderContext` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
280
|
+
| `basalt-ui/content`: `MarkdownContentTrust` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
281
|
+
| `basalt-ui/content`: `BASALT_SANITIZE_SCHEMA` | deleted | no consumer outside the playground |
|
|
282
|
+
| `basalt-ui/content`: `SanitizePropertyDefinition` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
283
|
+
| `basalt-ui/content`: `SanitizeSchema` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
284
|
+
| `basalt-ui/content`: `MermaidDiagram` | deleted | rendered by `Markdown` fences; no direct consumer |
|
|
285
|
+
| `basalt-ui/content`: `MermaidDiagramProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
286
|
+
| `basalt-ui/content`: `blockSplit` | deleted | no consumer outside the playground |
|
|
287
|
+
| `basalt-ui/content`: `createMdxComponents` | deleted | no consumer outside the playground |
|
|
288
|
+
| `basalt-ui/content`: `mdxComponents` | deleted | no consumer outside the playground |
|
|
289
|
+
| `basalt-ui/content`: `CreateMdxComponentsOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
290
|
+
| `basalt-ui/content`: `ArticleLayoutProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
291
|
+
| `basalt-ui/content`: `ArticleNavTarget` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
292
|
+
| `basalt-ui/content`: `ArticleCard` | deleted | no consumer outside the playground |
|
|
293
|
+
| `basalt-ui/content`: `ArticleGrid` | deleted | no consumer outside the playground |
|
|
294
|
+
| `basalt-ui/content`: `ArticleCardProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
295
|
+
| `basalt-ui/content`: `ArticleGridProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
296
|
+
| `basalt-ui/content`: `filterArticles` | deleted | no consumer outside the playground |
|
|
297
|
+
| `basalt-ui/content`: `formatArticleDate` | deleted | no consumer outside the playground |
|
|
298
|
+
| `basalt-ui/content`: `sortArticles` | deleted | no consumer outside the playground |
|
|
299
|
+
| `basalt-ui/content`: `Article` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
300
|
+
| `basalt-ui/content`: `ArticleFilterQuery` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
301
|
+
| `basalt-ui/content`: `ArticleOrder` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
302
|
+
| `basalt-ui/content`: `toArticleActions` | deleted | no consumer outside the playground |
|
|
303
|
+
| `basalt-ui/content`: `ToArticleActionsOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
304
|
+
| `basalt-ui/content`: `FilterSet` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
305
|
+
| `basalt-ui/content`: `MultiSelectFilter` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
306
|
+
| `basalt-ui/content`: `ViewTabs` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
307
|
+
| `basalt-ui/content`: `FilterSetProps` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
308
|
+
| `basalt-ui/content`: `MultiSelectFilterProps` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
309
|
+
| `basalt-ui/content`: `ViewTabsOption` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
310
|
+
| `basalt-ui/content`: `ViewTabsProps` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
311
|
+
| `basalt-ui/content`: `GuideDrawer` | deleted | no consumer outside the playground |
|
|
312
|
+
| `basalt-ui/content`: `GuideDrawerProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
313
|
+
| `basalt-ui/content`: `GuideLinkProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
314
|
+
| `basalt-ui/state`: `PersistedStateOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
315
|
+
| `basalt-ui/state`: `readPersistedValue` | deleted | no consumer outside the playground |
|
|
316
|
+
| `basalt-ui/state`: `LocalStore` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
317
|
+
| `basalt-ui/state`: `FieldLane` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
318
|
+
| `basalt-ui/state`: `ResolvedLane` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
319
|
+
| `basalt-ui/state`: `ResolveLane` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
320
|
+
| `basalt-ui/state`: `RangeValue` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
321
|
+
| `basalt-ui/state`: `RangeParams` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
322
|
+
| `basalt-ui/state`: `RangePresets` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
323
|
+
| `basalt-ui/state`: `RangeWindows` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
324
|
+
| `basalt-ui/state`: `FieldFallback` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
325
|
+
| `basalt-ui/state`: `FieldSetOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
326
|
+
| `basalt-ui/state`: `MultiField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
327
|
+
| `basalt-ui/state`: `RangeField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
328
|
+
| `basalt-ui/state`: `NumberField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
329
|
+
| `basalt-ui/state`: `BooleanField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
330
|
+
| `basalt-ui/state`: `StringField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
331
|
+
| `basalt-ui/state`: `AnyField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
332
|
+
| `basalt-ui/state`: `FieldValue` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
333
|
+
| `basalt-ui/state`: `FieldOption` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
334
|
+
| `basalt-ui/state`: `SearchValues` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
335
|
+
| `basalt-ui/state`: `StoredValues` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
336
|
+
|
|
337
|
+
### Lint (`w9/lint`)
|
|
338
|
+
|
|
339
|
+
Every `basalt/*` rule is `error` in 2.0.0 (the major is the channel). Edit your `.oxlintrc.json`
|
|
340
|
+
accordingly; an unknown `basalt/<id>` is a hard oxlint config error.
|
|
341
|
+
|
|
342
|
+
| Rule | Change | Consumer action |
|
|
343
|
+
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
344
|
+
| `basalt/provider-above-router` | removed | delete it from `.oxlintrc.json`; `BasaltProvider` mounts `RouterProvider`, so the inverted tree cannot be written |
|
|
345
|
+
| `basalt/page-bar-budget` | removed | delete it; `PageBar.actions` and `Section.actions` are tuple types, so a sixth/second-primary/fourth action is a tsc error. A second `PageBar` in one tree and two filled buttons in one slot are no longer linted |
|
|
346
|
+
| `basalt/agent-resume-guard` | removed | delete it; `resumeStream` exists only on `useChat`/`Chat`, both banned by `agent-no-raw-usechat` |
|
|
347
|
+
| `basalt/deprecated-export` | removed | delete it; 2.0.0 ships no deprecations, every removal is a row in this file. Returns with the first 2.x deprecation |
|
|
348
|
+
| `basalt/shadow-basalt-export` | `warn` → `error` | rename the fork to compose the basalt export, or `theme-allow shadow-basalt-export — <why>` |
|
|
349
|
+
| `basalt/agent-no-raw-usechat` | widened to the `Chat` class | import `Chat` from neither `@ai-sdk/react` nor `ai/react`; use `useAgentStream` / `useAgentThreadRuns` |
|
|
350
|
+
| `basalt/no-dev-helper` | new, repo-local only (not in the preset) | none |
|
|
351
|
+
| `basalt/no-import-meta-env` | repo-local only, now enabled | none |
|
|
352
|
+
| `configs/oxlint.json` (generic preset) | the six `react/*` compiler rules (`globals`, `immutability`, `incompatible-library`, `preserve-manual-memoization`, `refs`, `set-state-in-effect`), `no-constant-binary-expression` and `typescript/no-explicit-any` are `error` | fix the findings; to turn one down for a path add `{ "overrides": [{ "files": ["src/legacy/**"], "rules": { "react/refs": "off" } }] }` to your own `.oxlintrc.json`, or write `// oxlint-disable-next-line react/refs -- <why>` |
|
|
353
|
+
|
|
354
|
+
### Table v9 (`w6/table-v9`)
|
|
355
|
+
|
|
356
|
+
`BasaltDataTable` runs on `@tanstack/react-table` **9.2.8, exact** (peer and dev pin; 9.3.x waits on the `table-parity` / `table-v9.test` gate).
|
|
357
|
+
|
|
358
|
+
- Move your own `@tanstack/react-table` to `9.2.8` exact. Raw v8 helpers and `ColumnDef` no longer type-check against `columns`.
|
|
359
|
+
- `createColumnHelper` stays `import { createColumnHelper } from 'basalt-ui/table'` with the same one-generic call, `createColumnHelper<Row>()`. Do not import the helper from `@tanstack/react-table`: its v9 form needs `<TFeatures, TData>`.
|
|
360
|
+
- The table's registry is closed: sort functions `alphanumeric`, `text`, `datetime`, `basic`; filter function `includesString` (global search and facets). A column naming another built-in `sortFn` / `filterFn` falls back to the default with a dev-only warning.
|
|
361
|
+
- The `@tanstack/react-virtual` peer floor moves to `>=3.14.0 <4`.
|
|
362
|
+
- `initialColumnPinning` is logical: `{ left, right }` → `{ start, end }`.
|
|
363
|
+
- `meta.align` / `numeral` / `priority` are typed by the table's own `columnMeta` slot; the global `declare module '@tanstack/react-table'` augmentation is gone, so it no longer leaks into your own TanStack types.
|
|
364
|
+
- The global search now filters 250 ms after the last keystroke; `onGlobalFilterChange` fires at the same moment.
|
|
365
|
+
|
|
366
|
+
### Transitions (`w7/transitions`)
|
|
367
|
+
|
|
368
|
+
Contract: `docs/V2-SPEC.md` § 5. React 19.3 is required (`ViewTransition`, `Activity`).
|
|
369
|
+
|
|
370
|
+
- Route changes animate through the router: `createBasaltRouter` sets `defaultViewTransition` with a direction from your `defineNav` order, only where `:active-view-transition-type()` is supported (Chrome 125 / Safari 18.2 / Firefox 147); elsewhere navigation does not animate. A `<ViewTransition>` around `<Outlet>` never fired (the router commits through `useSyncExternalStore`) and is now an error, `basalt/route-view-transition`: delete it. `<ViewTransition>` stays for in-page changes (`docs/waves/evidence/w10/transitions.md`).
|
|
371
|
+
- `PageAside` folds inside `startTransition` with a `<ViewTransition>` on the region, and the folded body is hidden under `<Activity>` instead of unmounted. Scroll, input values and `useState` survive a fold. A hidden `Activity` runs the body's effect cleanups and re-runs the effects on expand, so a subscribing or streaming child resumes from its own state; whatever an effect set up (timer, socket) is torn down while folded.
|
|
372
|
+
- `ThemeToggle` animates with a CSS transition, not `motion`. `motion` is no longer reached from the package root; it is required only by `basalt-ui/agent`.
|
|
373
|
+
- `styles.css` sets `animation: none` on `::view-transition-group(*)`, `-old(*)` and `-new(*)` under `prefers-reduced-motion: reduce`, and the base theme sets Mantine `respectReducedMotion: true`. A consumer theme that sets `respectReducedMotion: false` opts Mantine's own transitions back out.
|
|
374
|
+
|
|
375
|
+
### Content streaming (`w8/content-streaming`)
|
|
376
|
+
|
|
377
|
+
`Markdown` no longer drops a blocked or unfinished image silently: when the `src` is refused (an off-origin image under `contentTrust="untrusted"`, or remend's `streamdown:incomplete-image` placeholder mid-stream) it renders the `alt` text as a plain `<span>` instead of an empty `<span aria-label>`. No `<img>` and no URL reaches the DOM either way. No action needed; a test that asserted the empty span must assert the alt text.
|
|
378
|
+
|
|
379
|
+
### Agent runtime (`w8/agent-runtime`)
|
|
380
|
+
|
|
381
|
+
Behavior changes to symbols that stay; no import changes. Contract: V2-SPEC § 6, § 7.
|
|
382
|
+
|
|
383
|
+
| Symbol | Change |
|
|
384
|
+
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
385
|
+
| `ThreadRunState.status` | `'submitted' \| 'streaming' \| 'error'`. A fresh turn is `'submitted'` until its first text, reasoning or tool part, so `status === 'streaming'` no longer holds from the send. `NonNullable<ComponentProps<typeof ThreadFeedRow>['liveStatus']>` gains `'submitted'`, and the chat rows treat `'submitted'` and `'streaming'` as live, so `liveStatus={runs.get(id)?.status}` stays correct. For your own liveness check use `run?.status === 'submitted' \|\| run?.status === 'streaming'`. |
|
|
386
|
+
| `ThreadRunState.error` (new), `AgentError` (new) | A failed turn KEEPS its `runs` entry (`status: 'error'`, the parts so far, `error`) until the next `start()`/`retry()` replaces it or `stop()`/`stopAll()` dismisses it. `runs.has(id)` no longer means live: test `run.status`. `onError` still receives the raw thrown value, and now also fires for an abort that `stop()`/supersede/unmount did not issue. |
|
|
387
|
+
| `aiSdkTransport` failures | A non-2xx response, an `error` chunk and a malformed chunk now reject the stream. They used to end it as if the turn had completed. The run's `error` carries `kind: 'http'` / `'server'` / `'stream'`. |
|
|
388
|
+
| `aiSdkTransport({ transport })` (new form) | Any AI SDK `ChatTransport<UIMessage>` is used as-is, e.g. a `WebSocketChatTransport`. `{ api, headers?, credentials?, fetch? }` is unchanged. |
|
|
389
|
+
| `useAgentThreadRuns({ throttle, telemetry })` | `throttle` (ms, default `100`; pass `0` to commit every part) batches part commits like `useChat`. A completed or failed turn emits one `chat.turn` event (a `stop()`ped turn emits none) to `telemetry`, which defaults to the enclosing `BasaltProvider`'s sink. |
|
|
390
|
+
| Optional props of `basalt-ui/agent` | Every optional prop and field in the public types is `?: T \| undefined`, so a maybe-undefined value (`summary={maybe}`, `Partial<AgentThread>` with `resumeToken: undefined`) compiles under `exactOptionalPropertyTypes`. `undefined` means absent. Drop any omit-destructure or `''` workaround. Exceptions: the `?: never` discriminant markers and optional function parameters, which the option does not govern. |
|
|
391
|
+
|
|
392
|
+
### Root, shell, controls, dashboard, format, forms, tokens, theme (W3 delete-core)
|
|
393
|
+
|
|
394
|
+
Source of the rows: `docs/waves/v2-surface.md`. A deleted export has no replacement unless the
|
|
395
|
+
row names one; a deleted type is derived with `ComponentProps<typeof X>` / `Parameters<typeof f>[0]`.
|
|
396
|
+
|
|
397
|
+
Behaviour and type changes (`docs/V2-SPEC.md` §§ 3–4):
|
|
398
|
+
|
|
399
|
+
| Was | Now |
|
|
400
|
+
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
401
|
+
| `<PageBar actions={{ primary, secondary: [...] }} />` | `actions` is a tuple: the first entry carries `primary: true`, then up to four more (`PageBarActions`); a missing or second primary and a sixth entry are tsc errors |
|
|
402
|
+
| `<Section actions={...} />` taking a `ReactNode` or `BarAction[]` | `actions` is a tuple of at most three `BarAction`s (`SectionActions`); wrap a custom node as `{ key, kind: 'custom', node }` |
|
|
403
|
+
| a filter or tab given `value`, `onChange` or `size` | still an error, now named: the slots are typed `never` on every filter and `ViewTabs` |
|
|
404
|
+
| `createBasaltTheme(_, { radius: number, density: number })` | `radius` is `-5 … 5`, `density` is `-3 … 3` (literal unions) |
|
|
405
|
+
| `createBasaltTheme(_, { inputs: 'desktop' })` | deleted — four dimensions: `derive`, `fonts`, `radius`, `density` |
|
|
406
|
+
| `paletteOptions.groups` as a string-keyed record | `SeriesGroup[]`: pass what `groupTokens` returned, so the `name-` key is written once |
|
|
407
|
+
| `Section` dev warning for a fourth action | gone — the tuple type rejects it |
|
|
408
|
+
|
|
409
|
+
Removed or moved exports (old import → new):
|
|
410
|
+
|
|
411
|
+
| Was | Now |
|
|
412
|
+
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
413
|
+
| `BasaltProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
414
|
+
| `SlotClassNames` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
415
|
+
| `SlotStylesProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
416
|
+
| `Tone` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
417
|
+
| `ToneWithNeutral` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
418
|
+
| `Tier` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
419
|
+
| `cx` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
420
|
+
| `SCROLLPORT_ATTRIBUTE` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
421
|
+
| `baseTheme` — `basalt-ui` | deleted — provider-internal |
|
|
422
|
+
| `cssVariablesResolver` — `basalt-ui` | deleted — provider-internal; a second resolver is the misuse it invites |
|
|
423
|
+
| `BasaltFontsConfig` — `basalt-ui` | deleted — duplicate of ./tokens; one import path per symbol |
|
|
424
|
+
| `CreateBasaltThemeOptions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
425
|
+
| `CTL_THEME` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
426
|
+
| `CtlSlot` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
427
|
+
| `CtlSlotProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
428
|
+
| `useBasaltSpacing` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
429
|
+
| `ThemeToggleProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
430
|
+
| `ActionGroup` — `basalt-ui` | deleted — duplicate of ./controls; one import path per symbol |
|
|
431
|
+
| `BarAction` — `basalt-ui` | import from `basalt-ui/controls` instead — duplicate of ./controls; one import path per symbol |
|
|
432
|
+
| `ActionGroupProps` — `basalt-ui` | deleted — duplicate of ./controls; one import path per symbol |
|
|
433
|
+
| `GlobalAction` — `basalt-ui` | import from `basalt-ui/controls` instead — duplicate of ./controls; one import path per symbol |
|
|
434
|
+
| `MOTION_DURATION` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
435
|
+
| `MOTION_SPRING` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
436
|
+
| `MOTION_EASE_STANDARD` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
437
|
+
| `NavCountBadge` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
438
|
+
| `NavCountBadgeProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
439
|
+
| `AppSidebar` — `basalt-ui` | deleted — BasaltShell is the one mount (§ 3) |
|
|
440
|
+
| `SidebarSearch` — `basalt-ui` | deleted — BasaltShell search prop |
|
|
441
|
+
| `SidebarSearchProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
442
|
+
| `SidebarSearchConfig` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
443
|
+
| `SidebarSearchActions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
444
|
+
| `SidebarAccount` — `basalt-ui` | deleted — BasaltShell account prop |
|
|
445
|
+
| `MobileNav` — `basalt-ui` | deleted — BasaltShell is the one mount (§ 3) |
|
|
446
|
+
| `MobileNavProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
447
|
+
| `projectMobileNav` — `basalt-ui` | deleted — shell-internal |
|
|
448
|
+
| `ProjectMobileNavOptions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
449
|
+
| `MOBILE_MAX_TABS_DEFAULT` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
450
|
+
| `MOBILE_MENU_MAX_DEFAULT` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
451
|
+
| `MOBILE_MORE_KEY` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
452
|
+
| `AppBreadcrumbs` — `basalt-ui` | deleted — BasaltShell is the one mount (§ 3) |
|
|
453
|
+
| `AppBreadcrumbsProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
454
|
+
| `PageBarProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
455
|
+
| `PageBarSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
456
|
+
| `PageAsideProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
457
|
+
| `PageAsideSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
458
|
+
| `SizeClass` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
459
|
+
| `PageTitleProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
460
|
+
| `PageTitleSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
461
|
+
| `SidebarSection` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
462
|
+
| `SidebarItem` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
463
|
+
| `SidebarBlockItem` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
464
|
+
| `SidebarBlockTone` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
465
|
+
| `SidebarListBlock` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
466
|
+
| `SidebarProgressBlock` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
467
|
+
| `SidebarCustomBlock` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
468
|
+
| `NavAnchor` — `basalt-ui` | deleted — duplicate of ./router-tanstack; one import path per symbol |
|
|
469
|
+
| `NavAnchorProps` — `basalt-ui` | deleted — duplicate of ./router-tanstack; one import path per symbol |
|
|
470
|
+
| `NavMobilePlacement` — `basalt-ui` | deleted — duplicate of ./router-tanstack; one import path per symbol |
|
|
471
|
+
| `NavSectionMobile` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
472
|
+
| `MobileNavConfig` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
473
|
+
| `MobileNavGroup` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
474
|
+
| `MobileNavModel` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
475
|
+
| `MobileNavSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
476
|
+
| `MobileNavSurface` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
477
|
+
| `BasaltShellProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
478
|
+
| `BrandConfig` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
479
|
+
| `AppSidebarProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
480
|
+
| `AccountBadgeTone` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
481
|
+
| `BasaltIdentity` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
482
|
+
| `BasaltRole` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
483
|
+
| `BasaltPlan` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
484
|
+
| `AccountMenuItem` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
485
|
+
| `BasaltAccountState` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
486
|
+
| `BasaltAccountActions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
487
|
+
| `BasaltAccountProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
488
|
+
| `Slot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
489
|
+
| `Series` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
490
|
+
| `SeriesKey` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
491
|
+
| `AsyncState` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
492
|
+
| `assertNever` — `basalt-ui` | deleted — no consumer; x satisfies never needs no import |
|
|
493
|
+
| `StandardSchemaV1` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
494
|
+
| `createPersistedState` — `basalt-ui` | import from `basalt-ui/state` instead — duplicate of ./state; one import path per symbol |
|
|
495
|
+
| `PersistedStateOptions` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
496
|
+
| `readPersistedValue` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
497
|
+
| `createLocalStore` — `basalt-ui` | import from `basalt-ui/state` instead — duplicate of ./state; one import path per symbol |
|
|
498
|
+
| `LocalStore` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
499
|
+
| `AnyField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
500
|
+
| `BooleanField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
501
|
+
| `EnumField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
502
|
+
| `FieldFallback` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
503
|
+
| `FieldHandle` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
504
|
+
| `FieldLane` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
505
|
+
| `FieldOption` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
506
|
+
| `FieldSetOptions` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
507
|
+
| `FieldValue` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
508
|
+
| `MultiField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
509
|
+
| `NumberField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
510
|
+
| `RangeField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
511
|
+
| `RangeParams` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
512
|
+
| `RangePresets` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
513
|
+
| `RangeValue` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
514
|
+
| `RangeWindow` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
515
|
+
| `RangeWindows` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
516
|
+
| `ResolvedLane` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
517
|
+
| `ResolveLane` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
518
|
+
| `SearchValues` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
519
|
+
| `StoredValues` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
520
|
+
| `StringField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
521
|
+
| `WidgetHeaderDeltaProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
522
|
+
| `WidgetHeaderMetricProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
523
|
+
| `WidgetHeaderProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
524
|
+
| `WidgetHeaderSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
525
|
+
| `WidgetHeaderTier` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
526
|
+
| `WidgetHeaderTitleProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
527
|
+
| `DeltaBadgeProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
528
|
+
| `DeltaPolarity` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
529
|
+
| `SectionProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
530
|
+
| `SectionSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
531
|
+
| `StatCardProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
532
|
+
| `StatCardSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
533
|
+
| `WidgetGrid` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
534
|
+
| `WidgetGridCols` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
535
|
+
| `WidgetGridItemProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
536
|
+
| `WidgetGridProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
537
|
+
| `StatGroupCols` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
538
|
+
| `StatGroupProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
539
|
+
| `EmptyStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
540
|
+
| `EmptyStateSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
541
|
+
| `SettingsSectionProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
542
|
+
| `SettingsSectionSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
543
|
+
| `SettingsRowProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
544
|
+
| `SettingsRowSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
545
|
+
| `DangerZoneProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
546
|
+
| `QueryState` — `basalt-ui` | deleted — router defaultPendingComponent/defaultErrorComponent + suspense queries replace it (§ 2) |
|
|
547
|
+
| `QueryStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
548
|
+
| `QueryStateLike` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
549
|
+
| `QueryStateSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
550
|
+
| `QueryStateTier` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
551
|
+
| `QueryEmptyCopy` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
552
|
+
| `LoadingState` — `basalt-ui` | deleted — router defaultPendingComponent (§ 2) |
|
|
553
|
+
| `LoadingStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
554
|
+
| `ErrorState` — `basalt-ui` | deleted — router defaultErrorComponent (§ 2) |
|
|
555
|
+
| `ErrorStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
556
|
+
| `SurfaceSpec` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
557
|
+
| `RuleName` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
558
|
+
| `SkillName` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
559
|
+
| `GuardKind` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
560
|
+
| `ThreadWorkspace` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
561
|
+
| `ThreadFeed` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
562
|
+
| `ThreadFeedRow` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
563
|
+
| `ThreadOutcomeCard` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
564
|
+
| `ThreadDetailPanel` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
565
|
+
| `Composer` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
566
|
+
| `threadPartRenderers` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
567
|
+
| `ThreadTranscript` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
568
|
+
| `ToolChip` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
569
|
+
| `ThreadWorkspaceProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
570
|
+
| `ThreadFeedProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
571
|
+
| `ThreadFeedRowProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
572
|
+
| `ThreadOutcomeCardProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
573
|
+
| `ThreadDetailPanelProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
574
|
+
| `ComposerProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
575
|
+
| `ComposerSubmit` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
576
|
+
| `ComposerAttachment` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
577
|
+
| `ComposerHandle` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
578
|
+
| `ThreadTranscriptProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
579
|
+
| `MessageAffordances` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
580
|
+
| `VirtualizeOptions` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
581
|
+
| `VirtualizeProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
582
|
+
| `RowHeightProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
583
|
+
| `ToolChipProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
584
|
+
| `createAdapterThreadsStore` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
585
|
+
| `createThreadsStore` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
586
|
+
| `heuristicOutcome` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
587
|
+
| `threadsStoreAdapterContract` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
588
|
+
| `useAgentThreadRuns` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
589
|
+
| `AdapterThreadsStoreOptions` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
590
|
+
| `AgentThread` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
591
|
+
| `AgentOutcome` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
592
|
+
| `ThreadStatus` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
593
|
+
| `ThreadsStore` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
594
|
+
| `ThreadsStoreAdapter` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
595
|
+
| `ThreadsStoreAdapterContractCase` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
596
|
+
| `ThreadsStoreOptions` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
597
|
+
| `OutcomeResolver` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
598
|
+
| `ChatMessage` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
599
|
+
| `AgentPart` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
600
|
+
| `AgentTransport` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
601
|
+
| `pxRem` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
602
|
+
| `buildFontsCss` — `basalt-ui/tokens` | deleted — provider/CLI-internal |
|
|
603
|
+
| `buildRadiusCss` — `basalt-ui/tokens` | deleted — provider/CLI-internal |
|
|
604
|
+
| `buildDensityCss` — `basalt-ui/tokens` | deleted — provider/CLI-internal |
|
|
605
|
+
| `DEFAULT_DERIVE_CONFIG` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
606
|
+
| `deriveTokens` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
607
|
+
| `resolveDeriveConfig` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
608
|
+
| `DeriveConfig` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
609
|
+
| `DerivedPalette` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
610
|
+
| `deriveRadius` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
611
|
+
| `RadiusValues` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
612
|
+
| `deriveSpacing` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
613
|
+
| `SpaceValues` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
614
|
+
| `resolveContainerClass` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
615
|
+
| `SIZE_CLASSES` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
616
|
+
| `ContainerClass` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
617
|
+
| `BREAKPOINTS` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
618
|
+
| `ColorSchemeSelector` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
619
|
+
| `BuildPaletteOpts` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
620
|
+
| `BasaltFontsConfig` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
621
|
+
| `ThemeLabControls` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
622
|
+
| `DeriveControls` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
623
|
+
| `DeriveControlsProps` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
624
|
+
| `applyOverrides` — `basalt-ui/theme-lab` | deleted — provider applies persisted lab overrides in dev (§ 2) (no longer a subpath) |
|
|
625
|
+
| `AREA_BOTTOM_VAR` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
626
|
+
| `AREA_TOP_VAR` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
627
|
+
| `COLOR_GROUPS` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
628
|
+
| `loadOverrides` — `basalt-ui/theme-lab` | deleted — provider applies persisted lab overrides in dev (§ 2) (no longer a subpath) |
|
|
629
|
+
| `readVar` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
630
|
+
| `saveOverrides` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
631
|
+
| `ColorGroup` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
632
|
+
| `ColorTunable` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
633
|
+
| `Overrides` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
634
|
+
| `ThemeLabControlsProps` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
635
|
+
| `BasaltViteOptions` — `basalt-ui/vite` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
636
|
+
| `BasaltAppIcon` — `basalt-ui/vite` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
637
|
+
| `BasaltAppOptions` — `basalt-ui/vite` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
638
|
+
| `unmatchedExemptPatterns` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
639
|
+
| `guardKindRemedy` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
640
|
+
| `guardWaiverHint` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
641
|
+
| `checkSource` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
642
|
+
| `findAllowAnnotations` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
643
|
+
| `neutralizeAllowAnnotation` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
644
|
+
| `Finding` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
645
|
+
| `GuardConfig` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
646
|
+
| `GuardKind` — `basalt-ui/guard` | deleted — duplicate of .; one import path per symbol (no longer a subpath) |
|
|
647
|
+
| `GuardSeverity` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
648
|
+
| `DEFAULT_GUARD_CONFIG` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
649
|
+
| `GraceEntry` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
650
|
+
| `GRACE_PERIOD_KINDS` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
651
|
+
| `UnmatchedExemptPattern` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
652
|
+
| `PLUGIN_RULE_IDS` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
653
|
+
| `WAIVER_ID_ALIASES` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
654
|
+
| `GENERATED_HEADER_LINE` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
655
|
+
| `TOKENS_ONLY_DISABLED_KINDS` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
656
|
+
| `GUARD_RULES` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
657
|
+
| `AllowAnnotationSite` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
658
|
+
| `NEUTRALIZED_ALLOW_TOKEN` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
659
|
+
| `compact` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
660
|
+
| `deltaPct` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
661
|
+
| `DeltaPctOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
662
|
+
| `fmtCompact` — `basalt-ui/format` | deleted — alias of compact — one name per formatter |
|
|
663
|
+
| `FmtCompactOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
664
|
+
| `fmtCurrency` — `basalt-ui/format` | deleted — alias of money |
|
|
665
|
+
| `FmtCurrencyOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
666
|
+
| `fmtInt` — `basalt-ui/format` | deleted — alias of integer |
|
|
667
|
+
| `fmtPercent` — `basalt-ui/format` | deleted — alias of percent |
|
|
668
|
+
| `FmtPercentOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
669
|
+
| `LocaleOption` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
670
|
+
| `NON_FINITE` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
671
|
+
| `clock` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
672
|
+
| `ClockOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
673
|
+
| `duration` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
674
|
+
| `DurationOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
675
|
+
| `DurationUnit` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
676
|
+
| `RelativeTimeOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
677
|
+
| `WeekdayOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
678
|
+
| `KcalOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
679
|
+
| `KmOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
680
|
+
| `UseBasaltFormOptions` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
681
|
+
| `useFormSubmit` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
682
|
+
| `isFieldErrorEnvelope` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
683
|
+
| `FormFieldErrors` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
684
|
+
| `UseFormSubmitOptions` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
685
|
+
| `UseFormSubmitReturn` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
686
|
+
| `FormStateProvider` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
687
|
+
| `useFormState` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
688
|
+
| `FormState` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
689
|
+
| `FormStateProviderProps` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
690
|
+
| `useFieldArray` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
691
|
+
| `UseFieldArrayReturn` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
692
|
+
| `FormErrorSummary` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
693
|
+
| `FormErrorSummaryProps` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
694
|
+
| `useFormDraft` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
695
|
+
| `DEFAULT_AUTOSAVE_DEBOUNCE_MS` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
696
|
+
| `UseFormDraftOptions` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
697
|
+
| `UseFormDraftReturn` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
698
|
+
| `ActionGroup` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
699
|
+
| `OverflowMenu` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
700
|
+
| `MOBILE_GLOBAL_BAR_MAX` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
701
|
+
| `barActionMobile` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
702
|
+
| `globalActionMobile` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
703
|
+
| `BarActionItem` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
704
|
+
| `BarActionMenu` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
705
|
+
| `BarActionCustom` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
706
|
+
| `ActionGroupProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
707
|
+
| `OverflowMenuProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
708
|
+
| `formatAge` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
709
|
+
| `AGE_REFRESH_MS` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
710
|
+
| `SyncButtonProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
711
|
+
| `ControlGroup` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
712
|
+
| `ControlGroupProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
713
|
+
| `FilterSetProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
714
|
+
| `RangeCustomPickerProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
715
|
+
| `RangeFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
716
|
+
| `CompareFilter` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
717
|
+
| `COMPARE_VALUES` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
718
|
+
| `CompareFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
719
|
+
| `CompareValue` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
720
|
+
| `FilterOption` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
721
|
+
| `SelectFilterEnumProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
722
|
+
| `SelectFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
723
|
+
| `SelectFilterStringProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
724
|
+
| `MultiSelectFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
725
|
+
| `NumberFilterOption` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
726
|
+
| `NumberFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
727
|
+
| `SearchFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
728
|
+
| `ToggleFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
729
|
+
| `ViewTabsOption` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
730
|
+
| `ViewTabsProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
731
|
+
| `PanelRow` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
732
|
+
| `PanelRowProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
733
|
+
| `SliderControl` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
734
|
+
| `SliderControlProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
735
|
+
| `FormSection` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
736
|
+
| `FormActions` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
737
|
+
| `FormSectionProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
738
|
+
| `FormSectionSlot` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
739
|
+
| `FormRowProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
740
|
+
| `FormRowSlot` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
741
|
+
| `FormGroupProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
742
|
+
| `FormActionsProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
743
|
+
| `RangeCustomPickerProps` — `basalt-ui/controls-dates` | deleted — duplicate of ./controls; one import path per symbol |
|
|
744
|
+
|
|
745
|
+
Still exported from `basalt-ui` in this wave, because the provider, query and dev-dock lanes replace them (V2-SPEC §§ 2, 7): `BasaltProviderProps`, `BasaltErrorBoundary`(`Props`), `BasaltErrorContext`, the `Connectivity*` family, `createBasaltQueryClient`, `BasaltQueryDevtools`, `toErrorMessage`, `errorStatus`, `BasaltDevDock`(`Props`/`Tool`). `BasaltRegister` is also kept: `declare module` augmentation only merges when the entry exports it.
|
|
746
|
+
|
|
747
|
+
### CLI (`w9/cli`)
|
|
748
|
+
|
|
749
|
+
`basalt-ui sync` carries a 1.x install forward: untouched rules, skills and the `AGENTS.md` block are rewritten, a locally edited file is reported and left alone (`--force` overwrites it), and the manifest's `basaltVersion` moves. `sync --check` goes green once nothing is stale.
|
|
750
|
+
|
|
751
|
+
`basalt-ui doctor` gains three hard checks, each failure printing a `Fix:` line:
|
|
752
|
+
|
|
753
|
+
- `tsconfig-base`: `tsconfig.json` (or a config it references) must extend `basalt-ui/configs/tsconfig.react-app.json` or `tsconfig.base.json`; the 2.0 types assume `strict`, `exactOptionalPropertyTypes` and `noUncheckedIndexedAccess`.
|
|
754
|
+
- `retired-lint-rules`: `.oxlintrc.json` (and local `extends`) sets a `basalt/<id>` the installed plugin no longer registers; delete the entry.
|
|
755
|
+
- `dropped-subpaths`: a source file under `basalt.roots` imports a `basalt-ui/<subpath>` the install's `exports` lacks; reported as `file:line`.
|
|
756
|
+
|
|
757
|
+
A check that cannot run (an unloadable plugin, an unresolvable `extends`) prints `SKIPPED` and exits non-zero. `doctor` loads the ESM lint plugin with `require`: the bin runs under Bun, and under Node that needs ≥ 20.19 / 22.12. `init` seeds `src/main.tsx` (when absent, with both TanStack peers: `defineNav` rejects every call until its `Register` augmentation exists) and inserts `extends` into the tsconfig that covers `src`. Removed: the pre-1.41 `CLAUDE.md` → `AGENTS.md` block migration; `doctor` still warns about a leftover `CLAUDE.md`, delete its block by hand.
|
|
758
|
+
|
|
759
|
+
- `init` always seeds `src/main.tsx`, `src/routes/__root.tsx` and `src/lib/nav.tsx`: `@tanstack/react-router` and `@tanstack/react-query` are required peers of `.`, so `--with-router` and `--with-query` are deleted (passing either exits 1).
|
|
760
|
+
- `init` splices the shipped preset into an existing `.oxlintrc.json` by default (a stock create-vite one); `--merge-lint` is deleted and `--no-merge-lint` opts out. A child `plugins` list unions with the preset's, so `jsx-a11y` stays on. A config with comments is left as is and the line names the `extends` to add.
|
|
761
|
+
- `doctor` gains the hard check `app-wiring`: the entry `index.html` loads (default `src/main.tsx`) must mount `BasaltProvider` on a `createBasaltRouter` router, and the TanStack router plugin must be in the vite config (or `src/routeTree.gen.*` exist). A stock create-vite `main.tsx` is kept by `init`, so this is the check that turns red until it matches `agent/templates/main.tpl`.
|
|
762
|
+
- `init` rewrites create-vite's stock `"build": "tsc -b && vite build"` to `vite build && tsc -b` (vite's router plugin generates `routeTree.gen.ts`, which `tsc` needs); any other build script that runs `tsc` is left as is with a one-line advice.
|
|
763
|
+
- The shipped preset sets `react/only-export-components` to `["warn", { "allowExportNames": ["Route"] }]` so TanStack route files stop warning, and `init`'s lint merge adds `"Route"` to your own setting of that rule (its level and other options are kept).
|
|
764
|
+
|
|
765
|
+
### Charts
|
|
766
|
+
|
|
767
|
+
Contract: `docs/V2-SPEC.md` § 9. `basalt-ui/charts` moved from visx to TanStack Charts. `@tanstack/charts` `1.1.0` and `d3-scale` `4.0.2` are exact, optional peers of `./charts`; visx is no dependency, peer or re-export. The public surface is `CartesianChart`, `ChartCard`, `chartCursor` and nine kinds (`Lines`, `Bars`, `StackedArea`, `Sparkline`, `BandStrip`, `Donut`, `Heatmap`, `DualPanel`, `MirroredBars`), plus their prop types. `ariaLabel` is required on every chart. The x scale follows the value `x` returns (`Date` → proportional time, which closes 1.x issue #52; `number` → linear; `string` → point or band). Engine marks for `marks` come from the allowed `@tanstack/charts/*` subpaths (`basalt/chart-engine-boundary`); basalt re-exports none.
|
|
768
|
+
|
|
769
|
+
Lint: `basalt/visx-boundary`, `basalt/visx-tooltip`, `basalt/hand-rolled-plot`, `basalt/chart-legend-literal` and the guard kinds `raw-visx-axis` and `chart-missing-aria-label` are deleted. `basalt/chart-engine-boundary` replaces the first two; the rest have no replacement (the rung and the required prop make them unreachable). A `theme-allow` naming a deleted id waives nothing (an unrecognised id is unknown); delete it. The guard has 26 kinds (was 28), and `profile: 'tokens-only'` disables 16 of them (was 18, the two deleted kinds having been Mantine-coupled). `basalt/chart-in-raw-surface` now names `Lines` and `Sparkline` (was `MultiLine`, `ZonedLine`, `LineSparkline`, `BarSparkline`). New: `basalt/chart-host-single` (repo-local) keeps `@tanstack/charts/react` inside `src/charts/host.tsx`.
|
|
770
|
+
|
|
771
|
+
| Old import | New | Why |
|
|
772
|
+
| ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
773
|
+
| `basalt-ui/charts`: `LinePath` | `lineY` (`@tanstack/charts/line`) in `CartesianChart`'s `marks`, or a `Lines` series | visx is gone: no dependency, peer or re-export |
|
|
774
|
+
| `basalt-ui/charts`: `AreaClosed` | `areaY` (`@tanstack/charts/area`) in `marks`, or `ChartSeries.area` | visx is gone: no dependency, peer or re-export |
|
|
775
|
+
| `basalt-ui/charts`: `AreaStack` | `StackedArea`, or `areaY` + `stack` (`@tanstack/charts/stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
776
|
+
| `basalt-ui/charts`: `Threshold` (the visx component) | `Lines` `thresholds`, or `differenceY` (`@tanstack/charts/difference`) in `marks`; `Threshold` is now basalt's type for a `thresholds` entry | visx is gone: no dependency, peer or re-export |
|
|
777
|
+
| `basalt-ui/charts`: `Bar` | `Bars`, or `barY` (`@tanstack/charts/bar`, plus `stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
778
|
+
| `basalt-ui/charts`: `BarStack` | `Bars`, or `barY` (`@tanstack/charts/bar`, plus `stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
779
|
+
| `basalt-ui/charts`: `BarGroup` | `Bars`, or `barY` (`@tanstack/charts/bar`, plus `stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
780
|
+
| `basalt-ui/charts`: `Line` | `ruleX`/`ruleY` (`@tanstack/charts/rule`), `link` (`@tanstack/charts/link`) or `refLines` | visx is gone: no dependency, peer or re-export |
|
|
781
|
+
| `basalt-ui/charts`: `Pie` | `Donut` | visx is gone: no dependency, peer or re-export |
|
|
782
|
+
| `basalt-ui/charts`: `Group` | deleted; marks carry their own position | visx is gone: no dependency, peer or re-export |
|
|
783
|
+
| `basalt-ui/charts`: `GridRows` | deleted; `AxisConfig.grid` | visx is gone: no dependency, peer or re-export |
|
|
784
|
+
| `basalt-ui/charts`: `GridColumns` | deleted; `AxisConfig.grid` | visx is gone: no dependency, peer or re-export |
|
|
785
|
+
| `basalt-ui/charts`: `scaleLinear` | deleted; the x scale follows `x`'s value type; `@tanstack/charts/scales/*` or `d3-scale` (a peer) inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
786
|
+
| `basalt-ui/charts`: `scaleBand` | deleted; the x scale follows `x`'s value type; `@tanstack/charts/scales/*` or `d3-scale` (a peer) inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
787
|
+
| `basalt-ui/charts`: `scalePoint` | deleted; the x scale follows `x`'s value type; `@tanstack/charts/scales/*` or `d3-scale` (a peer) inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
788
|
+
| `basalt-ui/charts`: `scaleTime` | deleted; the x scale follows `x`'s value type; `@tanstack/charts/scales/*` or `d3-scale` (a peer) inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
789
|
+
| `basalt-ui/charts`: `curveMonotoneX` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
790
|
+
| `basalt-ui/charts`: `curveLinear` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
791
|
+
| `basalt-ui/charts`: `curveCatmullRom` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
792
|
+
| `basalt-ui/charts`: `curveStep` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
793
|
+
| `basalt-ui/charts`: `curveStepAfter` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
794
|
+
| `basalt-ui/charts`: `curveStepBefore` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
795
|
+
| `basalt-ui/charts`: `curveBasis` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
796
|
+
| `basalt-ui/charts`: `ZonedLine` | `Lines`; `getX` + `chartId` → `x`, `isPending` → `state`, `areaFill` → `ChartSeries.area` | `ZonedLine` and `MultiLine` merged: zones, x-zones, ref lines and `y2` moved to the rung |
|
|
797
|
+
| `basalt-ui/charts`: `ZonedLineProps` | `LinesProps` | merged with `MultiLine` |
|
|
798
|
+
| `basalt-ui/charts`: `ZonedLineThreshold` | `Threshold` | renamed |
|
|
799
|
+
| `basalt-ui/charts`: `ZonedLineRefLine` | `RefLine` | one reference-line type for every kind |
|
|
800
|
+
| `basalt-ui/charts`: `BarsRefLine` | `RefLine` | one reference-line type for every kind |
|
|
801
|
+
| `basalt-ui/charts`: `MultiLine` | `Lines` | merged with `ZonedLine` |
|
|
802
|
+
| `basalt-ui/charts`: `MultiLineProps` | `LinesProps` | merged with `ZonedLineProps` |
|
|
803
|
+
| `basalt-ui/charts`: `Bars` | `Bars`, same name, new props: `positiveBars`/`negativeBars`/`getValue(d, key)` → `bars: BarsBar<T>[]` (each with its own `getValue`), `barLayout` → `layout: 'stacked' \| 'grouped' \| 'normalized'`, `getX`+`chartId`→`x` | contract change (V2-SPEC § 9.3) |
|
|
804
|
+
| `basalt-ui/charts`: `BarsProps` | kept, reshaped with `Bars` | contract change (V2-SPEC § 9.3) |
|
|
805
|
+
| `basalt-ui/charts`: `BarsBar` | kept, reshaped with `Bars` | contract change (V2-SPEC § 9.3) |
|
|
806
|
+
| `basalt-ui/charts`: `BarsLine` | kept, reshaped with `Bars` | contract change (V2-SPEC § 9.3) |
|
|
807
|
+
| `basalt-ui/charts`: `StackedArea` | `StackedArea`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
808
|
+
| `basalt-ui/charts`: `StackedAreaProps` | `StackedArea`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
809
|
+
| `basalt-ui/charts`: `DualPanel` | `DualPanel`, rebuilt on this engine (compiled through `composeViews`) | rebuilt in W5 (props in § 9.3) |
|
|
810
|
+
| `basalt-ui/charts`: `DualPanelProps` | `DualPanel`, rebuilt on this engine (compiled through `composeViews`) | rebuilt in W5 (props in § 9.3) |
|
|
811
|
+
| `basalt-ui/charts`: `MirroredBars` | `MirroredBars`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
812
|
+
| `basalt-ui/charts`: `MirroredBarsProps` | `MirroredBars`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
813
|
+
| `basalt-ui/charts`: `MirroredBarPane` | `MirroredBars`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
814
|
+
| `basalt-ui/charts`: `BandStrip` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
815
|
+
| `basalt-ui/charts`: `BandStripProps` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
816
|
+
| `basalt-ui/charts`: `BandStripSeries` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
817
|
+
| `basalt-ui/charts`: `BandSpan` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
818
|
+
| `basalt-ui/charts`: `BandFold` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
819
|
+
| `basalt-ui/charts`: `Donut` | `Donut`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
820
|
+
| `basalt-ui/charts`: `DonutProps` | `Donut`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
821
|
+
| `basalt-ui/charts`: `DonutDatum` | `Donut`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
822
|
+
| `basalt-ui/charts`: `Heatmap` | `Heatmap`, rebuilt on this engine, unless the 3 bespoke grids are cheaper | no TanStack Charts port in W4; the 1.x kind had no consumer |
|
|
823
|
+
| `basalt-ui/charts`: `HeatmapProps` | `Heatmap`, rebuilt on this engine, unless the 3 bespoke grids are cheaper | no TanStack Charts port in W4; the 1.x kind had no consumer |
|
|
824
|
+
| `basalt-ui/charts`: `LineSparkline` | `Sparkline`, rebuilt on this engine (`mark: 'line' \| 'bar'`) | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
825
|
+
| `basalt-ui/charts`: `BarSparkline` | `Sparkline`, rebuilt on this engine (`mark: 'line' \| 'bar'`) | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
826
|
+
| `basalt-ui/charts`: `LineSparklineProps` | `SparklineProps`, rebuilt on this engine | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
827
|
+
| `basalt-ui/charts`: `BarSparklineProps` | `SparklineProps`, rebuilt on this engine | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
828
|
+
| `basalt-ui/charts`: `CartesianChart` | kept, new contract: `children(ctx)` → `marks(plot)`, `getX` + `chartId` → `x`, `isPending` → `state`, `ariaLabel` is required | a definition compiler plus one host (V2-SPEC § 9.2) |
|
|
829
|
+
| `basalt-ui/charts`: `CartesianChartProps` | kept names, new contract | V2-SPEC § 9.2 |
|
|
830
|
+
| `basalt-ui/charts`: `AxisConfig` | kept names, new contract | V2-SPEC § 9.2 |
|
|
831
|
+
| `basalt-ui/charts`: `PlotContext` | kept names, new contract | V2-SPEC § 9.2 |
|
|
832
|
+
| `basalt-ui/charts`: `resolveAxisDomain` | internal | the rung owns the y domains |
|
|
833
|
+
| `basalt-ui/charts`: `ChartFrame` | deleted; the host is private. A bespoke body moves to `CartesianChart` `marks`, a matrix to W5 `Heatmap` | the engine owns the frame |
|
|
834
|
+
| `basalt-ui/charts`: `ChartFrameProps` | deleted; the host is private. A bespoke body moves to `CartesianChart` `marks`, a matrix to W5 `Heatmap` | the engine owns the frame |
|
|
835
|
+
| `basalt-ui/charts`: `ChartFrameLegend` | deleted; the host is private. A bespoke body moves to `CartesianChart` `marks`, a matrix to W5 `Heatmap` | the engine owns the frame |
|
|
836
|
+
| `basalt-ui/charts`: `PlotRect` | deleted; the host is private. A bespoke body moves to `CartesianChart` `marks`, a matrix to W5 `Heatmap` | the engine owns the frame |
|
|
837
|
+
| `basalt-ui/charts`: `resolveLegend` | deleted; the host is private. A bespoke body moves to `CartesianChart` `marks`, a matrix to W5 `Heatmap` | the engine owns the frame |
|
|
838
|
+
| `basalt-ui/charts`: `ResponsiveChartHeight` | kept | unchanged |
|
|
839
|
+
| `basalt-ui/charts`: `ChartState` | kept; the `isPending` alias is deleted (use `state={{ pending }}`) | one state type |
|
|
840
|
+
| `basalt-ui/charts`: `ChartCenter` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
841
|
+
| `basalt-ui/charts`: `ChartPending` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
842
|
+
| `basalt-ui/charts`: `ChartEmpty` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
843
|
+
| `basalt-ui/charts`: `ChartError` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
844
|
+
| `basalt-ui/charts`: `ChartCenterProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
845
|
+
| `basalt-ui/charts`: `ChartPendingProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
846
|
+
| `basalt-ui/charts`: `ChartEmptyProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
847
|
+
| `basalt-ui/charts`: `ChartErrorProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
848
|
+
| `basalt-ui/charts`: `ResolvedChartState` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
849
|
+
| `basalt-ui/charts`: `resolveChartState` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
850
|
+
| `basalt-ui/charts`: `ChartCard` | kept | unchanged |
|
|
851
|
+
| `basalt-ui/charts`: `ChartCardProps` | kept | unchanged |
|
|
852
|
+
| `basalt-ui/charts`: `ChartCardSlot` | kept | unchanged |
|
|
853
|
+
| `basalt-ui/charts`: `ChartCard` `placeholderHeight` | default is the chart height law (the box an unsized chart takes), no longer `240`; it is a `number | ResponsiveChartHeight`. Pass the chart's own `height`when it states one, so a`<Suspense>` fallback reserves the final size | a pending card is a streamed section's fallback and must take the final box |
|
|
854
|
+
| `basalt-ui/charts`: `Donut` side legend | the legend sits beside the ring in a 480px-or-wider container (CSS), no longer when the frame is wider than 1.5 × its height; a stated `height` above 320px now gets the side layout too | the layout is a container query, so the server HTML is the hydrated layout |
|
|
855
|
+
| `basalt-ui/charts`: `ChartCard` short fold | a chart that states `height` ≤ 180px marks the card short in the server HTML (subtitle folds, KPI numeral `lg`, header top inset trims); no longer decided from a rendered height under 280px. A body that is not a chart is still measured | the fold is in the markup, so hydration does not re-fold the header |
|
|
856
|
+
| `basalt-ui/charts`: `legend.placement: 'header'` markup | the legend is drawn at the top of the chart body, spaced as the header's legend row; `[data-basalt-legend-slot]` and the legend inside the card's header element are gone, so a selector or test on the slot reads the chart body instead | the legend is in the chart's own markup, so it is in the server HTML and the header never grows on hydration |
|
|
857
|
+
| `basalt-ui/charts`: `[data-basalt-chart-legend]` value | reads `auto` (both swatches render, the container picks none / dots / chips); it was `dots` or `chips` | the mode is a container query, so the server HTML carries the right legend; read the computed `display` of the swatches for the effective mode |
|
|
858
|
+
| `basalt-ui/charts`: `ChartCursorScope` | the `cursorGroup` prop | no provider: one controller per group in a module map |
|
|
859
|
+
| `basalt-ui/charts`: `ChartCursorScopeProps` | the `cursorGroup` prop | no provider: one controller per group in a module map |
|
|
860
|
+
| `basalt-ui/charts`: `globalCursorStore` | `chartCursor(group?)`; read it with `useSyncExternalStore(controller.subscribe, controller.getState, () => null)` | the 1.x store is replaced by TanStack's cursor controller |
|
|
861
|
+
| `basalt-ui/charts`: `createCursorStore` | `chartCursor(group?)`; read it with `useSyncExternalStore(controller.subscribe, controller.getState, () => null)` | the 1.x store is replaced by TanStack's cursor controller |
|
|
862
|
+
| `basalt-ui/charts`: `CursorStore` | `chartCursor(group?)`; read it with `useSyncExternalStore(controller.subscribe, controller.getState, () => null)` | the 1.x store is replaced by TanStack's cursor controller |
|
|
863
|
+
| `basalt-ui/charts`: `CursorState` | `chartCursor(group?)`; read it with `useSyncExternalStore(controller.subscribe, controller.getState, () => null)` | the 1.x store is replaced by TanStack's cursor controller |
|
|
864
|
+
| `basalt-ui/charts`: `useCursorState` | `chartCursor(group?)`; read it with `useSyncExternalStore(controller.subscribe, controller.getState, () => null)` | the 1.x store is replaced by TanStack's cursor controller |
|
|
865
|
+
| `basalt-ui/charts`: `useChartCursor` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
866
|
+
| `basalt-ui/charts`: `ChartCursor` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
867
|
+
| `basalt-ui/charts`: `CursorAnchor` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
868
|
+
| `basalt-ui/charts`: `DomainKind` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
869
|
+
| `basalt-ui/charts`: `CursorResolution` | kept (`'exact' \| 'nearest' \| 'leading'`) | unchanged |
|
|
870
|
+
| `basalt-ui/charts`: `Crosshair` | deleted; the engine's crosshair, focus ring and keyboard focus | the engine owns the overlay |
|
|
871
|
+
| `basalt-ui/charts`: `SeriesDot` | deleted; the engine's crosshair, focus ring and keyboard focus | the engine owns the overlay |
|
|
872
|
+
| `basalt-ui/charts`: `HoverOverlay` | deleted; the engine's crosshair, focus ring and keyboard focus | the engine owns the overlay |
|
|
873
|
+
| `basalt-ui/charts`: `AxisBottomDate` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
874
|
+
| `basalt-ui/charts`: `AxisBottomNumeric` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
875
|
+
| `basalt-ui/charts`: `AxisLeftNumeric` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
876
|
+
| `basalt-ui/charts`: `AxisRightNumeric` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
877
|
+
| `basalt-ui/charts`: `ZoneRects` | deleted; `zones` / `xZones` props take `ZoneSpec` / `XZoneSpec`, which are kept | the rung compiles zones |
|
|
878
|
+
| `basalt-ui/charts`: `XZoneRects` | deleted; `zones` / `xZones` props take `ZoneSpec` / `XZoneSpec`, which are kept | the rung compiles zones |
|
|
879
|
+
| `basalt-ui/charts`: `AreaGradient` | `ChartSeries.area` | the engine owns SVG resources |
|
|
880
|
+
| `basalt-ui/charts`: `areaFillUrl` | `ChartSeries.area` | the engine owns SVG resources |
|
|
881
|
+
| `basalt-ui/charts`: `HatchPattern` | deleted; absent-state paint is a flat fill (V2-SPEC § 9 Open item: hatch) | TanStack's SVG resources are gradients and clips only |
|
|
882
|
+
| `basalt-ui/charts`: `hatchFill` | deleted; absent-state paint is a flat fill (V2-SPEC § 9 Open item: hatch) | TanStack's SVG resources are gradients and clips only |
|
|
883
|
+
| `basalt-ui/charts`: `hatchSizeFor` | deleted; absent-state paint is a flat fill (V2-SPEC § 9 Open item: hatch) | TanStack's SVG resources are gradients and clips only |
|
|
884
|
+
| `basalt-ui/charts`: `ChartTooltipFloat` | deleted; rows are `ChartTooltipRow` data from `tooltip.rows(d, { visible, hidden })`, the title is `tooltip.formatHeader(x, d)` | the tooltip surface is TanStack's |
|
|
885
|
+
| `basalt-ui/charts`: `TooltipHeader` | deleted; rows are `ChartTooltipRow` data from `tooltip.rows(d, { visible, hidden })`, the title is `tooltip.formatHeader(x, d)` | the tooltip surface is TanStack's |
|
|
886
|
+
| `basalt-ui/charts`: `TooltipRow` | deleted; rows are `ChartTooltipRow` data from `tooltip.rows(d, { visible, hidden })`, the title is `tooltip.formatHeader(x, d)` | the tooltip surface is TanStack's |
|
|
887
|
+
| `basalt-ui/charts`: `TooltipBody` | deleted; rows are `ChartTooltipRow` data from `tooltip.rows(d, { visible, hidden })`, the title is `tooltip.formatHeader(x, d)` | the tooltip surface is TanStack's |
|
|
888
|
+
| `basalt-ui/charts`: `CartesianTooltipConfig` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
889
|
+
| `basalt-ui/charts`: `CartesianTooltipRowContext` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
890
|
+
| `basalt-ui/charts`: `BandTooltipConfig` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
891
|
+
| `basalt-ui/charts`: `BandTooltipRowContext` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
892
|
+
| `basalt-ui/charts`: `ChartLegend` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
893
|
+
| `basalt-ui/charts`: `LegendEntry` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
894
|
+
| `basalt-ui/charts`: `deriveLegend` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
895
|
+
| `basalt-ui/charts`: `deriveTooltipRows` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
896
|
+
| `basalt-ui/charts`: `ChartLegendConfig` | kept; `LegendPlacement` is inlined | unchanged shape |
|
|
897
|
+
| `basalt-ui/charts`: `LegendPlacement` | inlined in `ChartLegendConfig` (`'top' \| 'bottom' \| 'header'`) | one legend type |
|
|
898
|
+
| `basalt-ui/charts`: `ChartSeries` | kept; absorbs `SeriesStyle`, plus `area` | one series descriptor |
|
|
899
|
+
| `basalt-ui/charts`: `SeriesStyle` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
900
|
+
| `basalt-ui/charts`: `SeriesMark` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
901
|
+
| `basalt-ui/charts`: `SeriesDash` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
902
|
+
| `basalt-ui/charts`: `SeriesCurve` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
903
|
+
| `basalt-ui/charts`: `SeriesRole` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
904
|
+
| `basalt-ui/charts`: `curveFor` | internal | `ChartSeries.curve` is the public seam |
|
|
905
|
+
| `basalt-ui/charts`: `foldBands` | internal | returns with W5 `BandStrip` |
|
|
906
|
+
| `basalt-ui/charts`: `useChartSize` | deleted; the host measures the width | the host owns sizing |
|
|
907
|
+
| `basalt-ui/charts`: `UseChartSizeResult` | deleted; the host measures the width | the host owns sizing |
|
|
908
|
+
| `basalt-ui/charts`: `ChartSize` | deleted; the host measures the width | the host owns sizing |
|
|
909
|
+
| `basalt-ui/charts`: `autoMargin` | deleted | TanStack's measured guides own the margins |
|
|
910
|
+
| `basalt-ui/charts`: `probeAxisLabels` | deleted | TanStack's measured guides own the margins |
|
|
911
|
+
| `basalt-ui/charts`: `AutoMarginInput` | deleted | TanStack's measured guides own the margins |
|
|
912
|
+
| `basalt-ui/charts`: `measureText` | deleted | TanStack's measured guides own the margins |
|
|
913
|
+
| `basalt-ui/charts`: `maxTextWidth` | deleted | TanStack's measured guides own the margins |
|
|
914
|
+
| `basalt-ui/charts`: `smartTicks` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
915
|
+
| `basalt-ui/charts`: `smartTicksEvery` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
916
|
+
| `basalt-ui/charts`: `xLabelPxFor` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
917
|
+
| `basalt-ui/charts`: `autoXLabelRotate` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
918
|
+
| `basalt-ui/charts`: `chartMargin` | deleted; margins are measured, band kinds own their top inset | the engine owns the margins |
|
|
919
|
+
| `basalt-ui/charts`: `ChartMargin` | deleted; margins are measured, band kinds own their top inset | the engine owns the margins |
|
|
920
|
+
| `basalt-ui/charts`: `fmtAxisDate` | deleted (also from `basalt-ui/format`); `formatX` and `tooltip.formatHeader` default to the date formats | one home for formatters |
|
|
921
|
+
| `basalt-ui/charts`: `fmtTooltipDate` | deleted (also from `basalt-ui/format`); `formatX` and `tooltip.formatHeader` default to the date formats | one home for formatters |
|
|
922
|
+
| `basalt-ui/charts`: `fmtCompact` | deleted; `AxisConfig.format` defaults to compact numbers | one home for formatters |
|
|
923
|
+
| `basalt-ui/charts`: `FmtCompactOptions` | deleted; `AxisConfig.format` defaults to compact numbers | one home for formatters |
|
|
924
|
+
| `basalt-ui/charts`: `fmtPercent` | `percent` from `basalt-ui/format` | one home for formatters |
|
|
925
|
+
| `basalt-ui/charts`: `FmtPercentOptions` | `percent` from `basalt-ui/format` | one home for formatters |
|
|
926
|
+
| `basalt-ui/charts`: `fmtCurrency` | `money` from `basalt-ui/format` | one home for formatters |
|
|
927
|
+
| `basalt-ui/charts`: `FmtCurrencyOptions` | `money` from `basalt-ui/format` | one home for formatters |
|
|
928
|
+
| `basalt-ui/charts`: `fmtInt` | `integer` from `basalt-ui/format` | one home for formatters |
|
|
929
|
+
| `basalt-ui/charts`: `formatters` | deleted; `basalt-ui/format` | one home for formatters |
|
|
930
|
+
| `basalt-ui/charts`: `VX` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
931
|
+
| `basalt-ui/charts`: `alpha` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
932
|
+
| `basalt-ui/charts`: `buildPaletteCss` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
933
|
+
| `basalt-ui/charts`: `seriesTokens` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
934
|
+
| `basalt-ui/charts`: `defineSeries` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
935
|
+
| `basalt-ui/charts`: `groupTokens` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
936
|
+
| `basalt-ui/charts`: `ColorPair` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
937
|
+
| `basalt-ui/charts`: `SeriesMap` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
938
|
+
| `basalt-ui/charts`: `SeriesKey` | `basalt-ui/tokens` or `basalt-ui` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
939
|
+
| `basalt-ui/charts`: `VxThemeProvider` | deleted; every chart paint is a `var(--vx-*)` reference | no theme context |
|
|
940
|
+
| `basalt-ui/charts`: `useVxTheme` | deleted; every chart paint is a `var(--vx-*)` reference | no theme context |
|
|
941
|
+
| `basalt-ui/charts`: `VxTheme` | deleted; every chart paint is a `var(--vx-*)` reference | no theme context |
|
|
942
|
+
|
|
943
|
+
### Subpaths, peers and gates (W3 gates)
|
|
944
|
+
|
|
945
|
+
| 1.41 import | 2.0 | Reason |
|
|
946
|
+
| ---------------------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------- |
|
|
947
|
+
| `basalt-ui/agent-chat` | `basalt-ui/agent` | the chat UI folds into `./agent`; `motion` is subpath-required there |
|
|
948
|
+
| `basalt-ui/notifications` | `basalt-ui/commands` | no new peer: `BasaltProvider` mounts `Notifications`, `ModalsProvider`, `Spotlight` |
|
|
949
|
+
| `basalt-ui/router-tanstack` (nav half) | `basalt-ui` | nav lives in the root barrel |
|
|
950
|
+
| `basalt-ui/router-tanstack` (store half) | `basalt-ui/state` | stores live with `field` and the search store |
|
|
951
|
+
| `basalt-ui/data/table` | `basalt-ui/table` | renamed; `@tanstack/react-table` is subpath-required |
|
|
952
|
+
| `basalt-ui/data/virtual` | deleted | 0 imports across the fleet |
|
|
953
|
+
| `basalt-ui/guard` | deleted | CLI-internal |
|
|
954
|
+
| `basalt-ui/theme-lab` | deleted | provider-mounted in dev |
|
|
955
|
+
| `basalt-ui/tokens.css` | `basalt-ui tokens:css` (CLI) | weatherorb 1.30 and rollhook 1.36 only |
|
|
956
|
+
| `basalt-ui/llms.txt`, `basalt-ui/package.json` | deleted from `exports` | 0 imports; both files stay in the tarball |
|
|
957
|
+
|
|
958
|
+
Peers: `react`, `react-dom`, `@mantine/{core,hooks,modals,notifications,spotlight}`,
|
|
959
|
+
`@tanstack/{react-router,react-query}` and the three `@fontsource-variable/*` are now **required**
|
|
960
|
+
(no longer `optional`). `@ai-sdk/provider` (`./agent`) and `dayjs` (`./controls-dates`) are new
|
|
961
|
+
optional, subpath-required peers.
|
|
962
|
+
|
|
963
|
+
### Provider and wiring
|
|
964
|
+
|
|
965
|
+
| Old import | New / deleted | Why |
|
|
966
|
+
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
|
|
967
|
+
| `BasaltProvider` `children`, `onError`, `connectivity` props | `router` (required), `telemetry?`, `fallback?`; `theme` defaults to `createBasaltTheme()` | the provider mounts the router and every overlay (V2-SPEC § 2) |
|
|
968
|
+
| `createBasaltQueryClient` (`basalt-ui`) | `createBasaltRouter({ routeTree, context?, query? })` | one QueryClient per router, 1.x defaults kept, `query` merges over them |
|
|
969
|
+
| `BasaltErrorBoundary`, `BasaltErrorBoundaryProps` | deleted: `BasaltProvider fallback` + telemetry `render.error`; routes get `defaultErrorComponent` | the provider mounts the root boundary |
|
|
970
|
+
| `BasaltErrorContext` | `BasaltEvent` (type) | `onError` is replaced by the `telemetry` seam (V2-SPEC § 7) |
|
|
971
|
+
| `BasaltOverlays`, `useCommandHotkeys` glue (`basalt-ui/commands`) | deleted: the provider mounts `ModalsProvider` (wrapping the router), `Notifications`, `Spotlight`, and binds registry hotkeys | no second mount, no `modals={false}` escape |
|
|
972
|
+
| `BasaltQueryDevtools`, `BasaltDevDock`, `BasaltDevDockProps`, `BasaltDevDockTool` | deleted: the provider mounts one dev dock in dev (router + query devtools, theme lab) behind a literal `NODE_ENV` gate; Spotlight commands `dev.router` / `dev.query` / `dev.theme` open it | one dock, never in production |
|
|
973
|
+
| `ConnectivityProvider`, `ConnectivityIndicator`, `useConnectivity` and their types | deleted | no consumer; the auto-mount is gone |
|
|
974
|
+
| `toErrorMessage`, `errorStatus` (`basalt-ui`) | deleted | no consumer outside the playground |
|
|
975
|
+
| `queryClient` seed `agent/templates/query-client.ts.tpl` | deleted; `__root.tpl` seeds `createRootRouteWithContext<BasaltRouterContext>()` | the router owns the client |
|
|
976
|
+
| `@mantine/{core,notifications,spotlight}/styles.layer.css` imports in the app | delete them: `basalt-ui/styles.css` now `@import`s all three, so keeping yours emits the bundle twice. With `basalt-ui/controls-dates`, import `@mantine/dates/styles.layer.css` AFTER `basalt-ui/styles.css` | the provider mounts `Notifications` and `Spotlight`, so their layers ship with it |
|
|
977
|
+
|
|
978
|
+
### Router bridge (`basalt-ui/router-tanstack`)
|
|
979
|
+
|
|
980
|
+
| Old import | New / deleted | Why |
|
|
981
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
|
|
982
|
+
| `defineNav`, `navGroup`, `navTarget`, `flattenNav`, `useBasaltNav`, `NavItemId` | move to `basalt-ui` | `./router-tanstack` folds into `.` |
|
|
983
|
+
| `createSearchStore` | `basalt-ui/state` | the store half folds into `./state` |
|
|
984
|
+
| `field` and the 20 `Field`/`Range*`/`Search*` types re-exported here | `basalt-ui/state` (same names) | one import path per symbol |
|
|
985
|
+
| `defineNav(config)` without the `Register` augmentation | compile error: the parameter becomes `'basalt: declare Register { router }'` | the definition validated nothing (V2-SPEC § 3) |
|
|
986
|
+
| `useRouterBreadcrumbs`, `BasaltBreadcrumb`, `BasaltNav` | deleted | shell-internal / unnamed |
|
|
987
|
+
| `NavItemMeta`, `NavGroupMeta`, `AnyNavItem`, `AnyNavGroup`, `AnyNavLink`, `FlatNavItem`, `NavConfig`, `NavGroupId`, `NavTabId`, `NavIndex`, `UseNavOptions`, `NavBinding`, `NavAnchor`, `NavAnchorProps`, `NavMobilePlacement` | deleted | no consumer names them; derive with `ComponentProps` / `Parameters` |
|
|
988
|
+
| `useNav`, and `BasaltShell`'s `sections` / `mobileNav` props | deleted: pass `nav={NAV}` (plus `badges`, `isActive`, `getScrollElement` — the old `useNav` options) to `BasaltShell`; it resolves the sidebar, the mobile bar and the breadcrumb itself. `mobileNav` tuning moves to `defineNav`'s `mobile`. argo `apps/dashboard/src/routes/__root.tsx`: replace `const nav = useNav(NAV, { badges })` + `{...nav}` with `nav={NAV} badges={…}` (migrates in W12; 1.x consumers stay on their pinned version until then) |
|
|
989
|
+
|
|
84
990
|
## Unreleased
|
|
85
991
|
|
|
86
992
|
_Nothing yet. Author the next section under this heading as `## Unreleased — <title>`; the
|
|
87
993
|
release renames it and opens a new one here._
|
|
88
994
|
|
|
995
|
+
## 2.0.1
|
|
996
|
+
|
|
997
|
+
_Nothing to migrate in this release._
|
|
998
|
+
|
|
999
|
+
## Next patch — doctor reads the peers and the config
|
|
1000
|
+
|
|
1001
|
+
- `doctor` gains `exact-peers`: for each exact-pinned peer of the installed basalt-ui (the three
|
|
1002
|
+
`@fontsource-variable/*`, `motion`, `remend`, …) it compares your installed version and prints a
|
|
1003
|
+
one-line `bun add <pkg>@<version>` fix on a mismatch. `bun add` accepts the mismatch silently.
|
|
1004
|
+
The three font peers now pin `5.3.0`.
|
|
1005
|
+
- `doctor` gains `config-keys`: a key in the package.json `basalt` object that the config does not
|
|
1006
|
+
read fails with its fix. `basalt.chartMissingAriaLabel` is gone with its guard kind; `ariaLabel`
|
|
1007
|
+
is required on a chart now, so delete the key.
|
|
1008
|
+
- Corrected the § 2.0 "Upgrading from 1.x" step 2: delete only the core, notifications and
|
|
1009
|
+
spotlight layer imports; extension packages (`@mantine/dates`, `@mantine/schedule`) stay, after
|
|
1010
|
+
`basalt-ui/styles.css`.
|
|
1011
|
+
|
|
1012
|
+
## 2.0.0
|
|
1013
|
+
|
|
1014
|
+
_Nothing to migrate in this release._
|
|
1015
|
+
|
|
89
1016
|
## 1.41.0 — the managed block moves to AGENTS.md
|
|
90
1017
|
|
|
91
1018
|
**Changed: `init` and `sync` splice the `<!-- basalt:begin … -->` block into `AGENTS.md`, not
|
|
@@ -901,7 +1828,7 @@ claim to have already done this was false. **Consumer-visible consequence:** the
|
|
|
901
1828
|
an installed tarball carries its own version number. If it says `Unreleased`, file it.
|
|
902
1829
|
|
|
903
1830
|
**§ 1.30.0 § Guards carries a corrected number**, restated here because a published measurement
|
|
904
|
-
moved:
|
|
1831
|
+
moved: weatherorb is 5 `control-outside-home` incumbents, not 0, and the fleet total is 34, not 29 — the
|
|
905
1832
|
zero was a failed `npx --no-install oxlint` invocation read as "no findings". The four promotions to
|
|
906
1833
|
`error` are unaffected and stand as shipped; only the extended C1 pair's count changed.
|
|
907
1834
|
|
|
@@ -1097,23 +2024,23 @@ That measurement was taken 2026-09-09, with all seven consumers freshly migrated
|
|
|
1097
2024
|
basalt built from `master`, by running `npx oxlint .` in each repo and counting by rule id — a
|
|
1098
2025
|
method that failed open in one of them, see the correction under the table:
|
|
1099
2026
|
|
|
1100
|
-
| Rule | argo | image-gen | image-share | rb | linewatch |
|
|
1101
|
-
| ----------------------------------------------------------------- | ---- | --------- | ----------- | --- | --------- |
|
|
1102
|
-
| `basalt/provider-above-router` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1103
|
-
| `basalt/forms-field-key` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1104
|
-
| `basalt/query-fn-unwrap` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1105
|
-
| `basalt/bound-control-outside-home` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1106
|
-
| `basalt/control-outside-home` + `raw-selection-control` (one law) | 2 | 10 | 6 | 8 | 0 | 5
|
|
2027
|
+
| Rule | argo | image-gen | image-share | rb | linewatch | weatherorb | obsidian | playground | Verdict |
|
|
2028
|
+
| ----------------------------------------------------------------- | ---- | --------- | ----------- | --- | --------- | ---------- | -------- | ---------- | ------------ |
|
|
2029
|
+
| `basalt/provider-above-router` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2030
|
+
| `basalt/forms-field-key` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2031
|
+
| `basalt/query-fn-unwrap` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2032
|
+
| `basalt/bound-control-outside-home` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2033
|
+
| `basalt/control-outside-home` + `raw-selection-control` (one law) | 2 | 10 | 6 | 8 | 0 | 5 | 0 | 3 | stays `warn` |
|
|
1107
2034
|
|
|
1108
|
-
**Corrected at 1.30.1:
|
|
1109
|
-
1.30.0 was an artifact:
|
|
2035
|
+
**Corrected at 1.30.1: weatherorb is 5, not 0 — the fleet total is 34, not 29.** The zero published at
|
|
2036
|
+
1.30.0 was an artifact: weatherorb has no local oxlint binary, so `npx --no-install oxlint` failed there
|
|
1110
2037
|
with a package error and the counting pipeline read that failure as "no findings" — the same
|
|
1111
2038
|
silent-zero shape this file already warns about for `check-theme`'s fabricated roots, arrived at from the other side. The
|
|
1112
2039
|
five are real (`display-controls.tsx:258`, `stack-editor.tsx:301/323/337`, `forecast-tab.tsx:151`),
|
|
1113
2040
|
and re-measuring with a guaranteed-present binary is what found them. **The DECISION is unchanged**:
|
|
1114
|
-
all four promoted rules re-measured at zero in every repo including
|
|
2041
|
+
all four promoted rules re-measured at zero in every repo including weatherorb, so those four promotions
|
|
1115
2042
|
stand exactly as shipped — only the extended pair's count moved. A count taken through a repo's own
|
|
1116
|
-
`lint` script rather than a bare oxlint invocation is not a measurement;
|
|
2043
|
+
`lint` script rather than a bare oxlint invocation is not a measurement; weatherorb's `lint` is
|
|
1117
2044
|
`basalt-ui check-theme` alone and never runs oxlint at all.
|
|
1118
2045
|
|
|
1119
2046
|
**The four promotions cost nothing to take.** They were measured at zero, in every consumer, before
|
|
@@ -1170,7 +2097,7 @@ A patch, one export's TYPE only. Nothing renamed, nothing removed.
|
|
|
1170
2097
|
- **`unwrap` strips `null`/`undefined` from a union-typed Eden response again** — the single
|
|
1171
2098
|
conditional signature 1.29.1 landed still inferred `TData` off `Envelope<infer TData>`, and an Eden
|
|
1172
2099
|
Treaty response is a UNION of envelopes (`{ data: T; error: null } | { data: null; error:
|
|
1173
|
-
EdenFetchError }`), not one envelope with a nullable `data`; inferring through the wrapper type
|
|
2100
|
+
EdenFetchError }`), not one envelope with a nullable `data`; inferring through the wrapper type
|
|
1174
2101
|
read `T | null` at every Eden call site. `UnwrapResult` now infers the raw `data` field and wraps
|
|
1175
2102
|
it in `NonNullable`, which distributes over a union `R` — `unwrap(await api.x.get())` resolves to
|
|
1176
2103
|
`T` again, with no `| null`. Runtime unchanged.
|
|
@@ -1244,7 +2171,7 @@ annotation and rationale):
|
|
|
1244
2171
|
- `QueryStateVariant` and the `variant` prop on `QueryState`/`LoadingState`/`ErrorState`/`EmptyState`
|
|
1245
2172
|
— use `QueryStateTier` and `tier`. **Identical values, identical branch behaviour**, verified by
|
|
1246
2173
|
diffing `src/dashboard/query-state.tsx` at `v1.25.0` against 1.29.2: the union is `'page' |
|
|
1247
|
-
'section'` in both, and `'section'` takes the same bare/compact branch in both. A pure rename, so a
|
|
2174
|
+
'section'` in both, and `'section'` takes the same bare/compact branch in both. A pure rename, so a
|
|
1248
2175
|
`variant="section"` becomes `tier="section"` with nothing to eyeball afterwards.
|
|
1249
2176
|
`QueryStateTier`'s own JSDoc says "`'section'` meant two different things across the two
|
|
1250
2177
|
spellings" — that is the NAMING rationale for picking `tier` (audit B #19), not a behaviour
|
|
@@ -1286,7 +2213,7 @@ annotation and rationale):
|
|
|
1286
2213
|
|
|
1287
2214
|
**On notice for 1.30.0** — a public export with exactly one consumer (the playground) as of this
|
|
1288
2215
|
audit. Adopt-or-delete: gains a real consumer by 1.30.0 or is removed. Not a promise either way;
|
|
1289
|
-
|
|
2216
|
+
say so in an issue if you pick one up.
|
|
1290
2217
|
|
|
1291
2218
|
- **Threads/agent-chat composite tier**: `ThreadWorkspace`, `ThreadFeed`, `ThreadFeedRow`,
|
|
1292
2219
|
`ThreadDetailPanel`, `ThreadOutcomeCard`, `ThreadsStoreAdapter`, `createThreadsStore`,
|
|
@@ -1495,7 +2422,7 @@ What is new, one line each — nothing here renames or removes anything:
|
|
|
1495
2422
|
FLOORS to 0.75×, shrinks the crosshair dot, narrows the tooltip 140 → 110, and caps the legend at
|
|
1496
2423
|
two entries with a `+N more` rollup. **This moves rendering, but only below 480px of measured
|
|
1497
2424
|
width** — nothing at desktop width changes. Opt back out per chart with an explicit
|
|
1498
|
-
`legend.maxRows` / `margin` override. `docs/CHARTS-SPEC.md` §8.
|
|
2425
|
+
`legend.maxRows` / `margin` override. `docs/archive/CHARTS-SPEC.md` §8.
|
|
1499
2426
|
- **`xLabelRotate` accepts `0`**, and left UNSET now auto-rotates to 45 at the phone tier when the
|
|
1500
2427
|
measured labels cannot fit three ticks side by side. `0` is the documented opt-out. Also on every
|
|
1501
2428
|
rotated axis, at every width: the LEFT margin now clears the rotated label's leftward projection
|
|
@@ -1504,7 +2431,7 @@ What is new, one line each — nothing here renames or removes anything:
|
|
|
1504
2431
|
§1's measured-gutter law, so a rotated or a densely-labelled axis will lay out slightly
|
|
1505
2432
|
differently; an explicit `margin` / `xTicks` / `xTickValues` still wins.
|
|
1506
2433
|
- **`SeriesStyle.curve`** (`basalt-ui/charts`) — `'monotone' | 'linear' | 'step' | 'stepAfter' |
|
|
1507
|
-
'stepBefore'`, plus the `curveFor` mapper and the newly re-exported `curveStep`/`curveStepBefore`.
|
|
2434
|
+
'stepBefore'`, plus the `curveFor` mapper and the newly re-exported `curveStep`/`curveStepBefore`.
|
|
1508
2435
|
Default `'monotone'`, which is what every kind hard-coded, so an omitted `curve` moves nothing.
|
|
1509
2436
|
Honoured by `MultiLine`, `DualPanel`, `ZonedLine`, `StackedArea` and `BarsLine.curve`. Two of
|
|
1510
2437
|
those read ONE curve for a whole shape rather than one per series: `ZonedLine` takes the PRIMARY
|
|
@@ -1604,7 +2531,7 @@ What is new, one line each — nothing here renames or removes anything:
|
|
|
1604
2531
|
`QueryStateTier` is the new type name; `QueryStateVariant` stayed exported as an alias through
|
|
1605
2532
|
1.28.x and is **removed in 1.29.0** together with the `variant` prop (see § Consolidation).
|
|
1606
2533
|
- **`WidgetHeader` and `QueryState` gained slot classes** — `classNames={{ root, title, metric,
|
|
1607
|
-
icon }}` on the first, `classNames={{ root }}` on the second (the branch that is live). Additive.
|
|
2534
|
+
icon }}` on the first, `classNames={{ root }}` on the second (the branch that is live). Additive.
|
|
1608
2535
|
`Section` now OMITS `classNames` from the `WidgetHeaderProps` it re-publishes, so its slot union
|
|
1609
2536
|
stays exactly `root | header | body` — a `<Section classNames={{ metric: … }}>` that used to
|
|
1610
2537
|
type-check (and do nothing) is now a compile error. Reach the header's own slots on a
|
|
@@ -1661,10 +2588,10 @@ icon }}` on the first, `classNames={{ root }}` on the second (the branch that is
|
|
|
1661
2588
|
- **`overlays.confirm` / `overlays.confirmDelete`** (`basalt-ui/commands`) — the two-button dialog
|
|
1662
2589
|
every consumer was registering as a `defineOverlays` entry with its own button pair, now
|
|
1663
2590
|
registry-free: `confirm({ title, body?, confirmLabel?, cancelLabel?, danger?, onConfirm,
|
|
1664
|
-
onCancel? })` resolves `true`/`false` and fires exactly one callback, whichever exit the user takes
|
|
2591
|
+
onCancel? })` resolves `true`/`false` and fires exactly one callback, whichever exit the user takes
|
|
1665
2592
|
(cancel, escape, click-outside and the close button all count as `false`). `danger` paints the
|
|
1666
2593
|
confirm button in the theme's derived destructive family. `confirmDelete({ subject, count?,
|
|
1667
|
-
onConfirm })` is the counted one-liner over it ("Delete 3 items?"). Both REJECT with a named
|
|
2594
|
+
onConfirm })` is the counted one-liner over it ("Delete 3 items?"). Both REJECT with a named
|
|
1668
2595
|
`[basalt] overlays.confirm: …` error when the `@mantine/modals` peer is absent, or when no
|
|
1669
2596
|
`ModalsProvider` is live — previously either returned a promise nothing would ever settle, because
|
|
1670
2597
|
the imperative API is a window event bus with nothing subscribed. `@mantine/modals` stays lazily
|
|
@@ -1735,7 +2662,7 @@ onConfirm })` is the counted one-liner over it ("Delete 3 items?"). Both REJECT
|
|
|
1735
2662
|
- **Still subpath-only.** The root barrel re-exports none of this, so a consumer without
|
|
1736
2663
|
`@mantine/form` is unaffected by importing `basalt-ui`.
|
|
1737
2664
|
- **Mobile "More" sheet rows now 40px with the sidebar's own insets** — `--vx-space-mobile-nav-row-
|
|
1738
|
-
height` 44 → 40 (WCAG 2.5.5 AA touch floor, not the AAA figure the bar's own `mobileNavBarHeight`
|
|
2665
|
+
height` 44 → 40 (WCAG 2.5.5 AA touch floor, not the AAA figure the bar's own `mobileNavBarHeight`
|
|
1739
2666
|
still holds to). The rows themselves no longer force a bespoke touch padding over the theme's
|
|
1740
2667
|
`NavLink` styling; they now render with the SAME `--vx-space-row-inset-y`/`-x` padding and
|
|
1741
2668
|
`VX.text.md` the desktop sidebar row does. A nested (child) row gains the sidebar's own child
|
|
@@ -2727,7 +3654,7 @@ homes rather than shipped repo-wide. `basalt/shadow-basalt-export` gains a renam
|
|
|
2727
3654
|
→ `StatCard`), so a fork that RENAMED the export is visible too. It stays a permanent advisory
|
|
2728
3655
|
`warn`.
|
|
2729
3656
|
|
|
2730
|
-
**`profile: 'tokens-only'` now disables
|
|
3657
|
+
**`profile: 'tokens-only'` now disables 16 kinds** — Mantine-coupled kinds, count as of this write (drifts release to release; `TOKENS_ONLY_DISABLED_KINDS.size` in `src/guard/index.ts` is ground truth, this table isn't).
|
|
2731
3658
|
|
|
2732
3659
|
**`SURFACES` gains `pluginRules`** (`src/surfaces.ts`, internal — not a published subpath): every
|
|
2733
3660
|
doctrine surface names the oxlint rules that enforce it, every registered rule maps to exactly one
|
|
@@ -2820,7 +3747,7 @@ exact route is never visited still lights on a descendant route.
|
|
|
2820
3747
|
`$1294.9k ▲18.9%` rendered as `$129… ▲18.9%`, and truncating the number to protect the delta about
|
|
2821
3748
|
that number is the wrong way round. A short value still keeps its badge on the line.
|
|
2822
3749
|
- **`StatCard`'s `actions` slot is the 24px tier now, not 30px.** `CtlSlot` gained `tier?: 'ctl' |
|
|
2823
|
-
'widget'` (default `'ctl'`, so no existing call site changes), and `StatCard` mounts its header slot
|
|
3750
|
+
'widget'` (default `'ctl'`, so no existing call site changes), and `StatCard` mounts its header slot
|
|
2824
3751
|
at `'widget'` — the `size="icon"` step `--vx-space-control-height-widget` has always named as
|
|
2825
3752
|
"`WidgetHeader tier="widget"` actions". A raw `ActionIcon` there rendered at the 30px `ctl` tier
|
|
2826
3753
|
inside a 28px header row and grew it to 30, so a KPI card WITH a kebab sat 2px below the card
|
|
@@ -3102,7 +4029,7 @@ The shared choreography lives in an internal `useBandPlot` — **not exported**,
|
|
|
3102
4029
|
the kinds' contract with each other, not a public seam.
|
|
3103
4030
|
|
|
3104
4031
|
**`MirroredBars` reverses a recorded decision, and the recorded reason for it was wrong.** The old
|
|
3105
|
-
entry in `docs/CHARTS-SPEC.md` read _"no two-bar-pane kind with independent per-pane scales"_, with
|
|
4032
|
+
entry in `docs/archive/CHARTS-SPEC.md` read _"no two-bar-pane kind with independent per-pane scales"_, with
|
|
3106
4033
|
_"a second consumer asks"_ as its trigger. That trigger never fired. Round 4 framed the blocker as
|
|
3107
4034
|
independent SCALES; `DualPanel` already had `topYDomain`/`bottomYDomain`, so that was never it. The
|
|
3108
4035
|
real blockers are that `DualPanel`'s top pane is a LINE pane and its bottom takes one SIGNED
|
|
@@ -3412,7 +4339,7 @@ with the whole lint half off).
|
|
|
3412
4339
|
|
|
3413
4340
|
| Surface | Note |
|
|
3414
4341
|
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
3415
|
-
| `basalt.profile: 'tokens-only'` / `--tokens-only` | disables the
|
|
4342
|
+
| `basalt.profile: 'tokens-only'` / `--tokens-only` | disables the 16 kinds whose remedy is a Mantine component, prop or the React theme factory. `check-theme` requires it DECLARED; `doctor` infers it, because its profile only changes advice, never enforcement |
|
|
3416
4343
|
| `basalt.include: [...]` | scan a named file outside `roots` — and the only route to a `.json`, which is never blanket-scanned |
|
|
3417
4344
|
| `basalt.roots` + a `lint:basalt` script | written by `init` from the real layout; `init` on an existing app is a lint-debt event, not a no-op |
|
|
3418
4345
|
| `tokens:css --check`, `--selector-class <c>` (+ `--light-class`) | drift gate; the Tailwind `<html class="dark">` convention. There is no `scheme: { class }` API — the class form is CLI-only |
|