basalt-ui 1.40.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +50 -45
- package/CHANGELOG.md +543 -513
- package/MIGRATING.md +969 -37
- package/README.md +172 -367
- 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 +30 -0
- package/agent/templates/DESIGN.md.tpl +2 -2
- package/agent/templates/__root.tpl +9 -16
- package/agent/templates/main.tpl +21 -0
- package/agent/templates/nav.tpl +18 -0
- package/configs/check.yml +1 -1
- package/configs/oxlint-basalt.json +4 -10
- package/configs/oxlint-plugin.js +468 -847
- package/configs/oxlint-plugin.test.ts +662 -710
- 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/foreign.d.ts +3 -2
- package/dist/agent/foreign.d.ts.map +1 -1
- 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 +14 -43
- package/dist/cli/config.d.ts.map +1 -1
- package/dist/cli/doctor-upgrade.d.ts +31 -0
- package/dist/cli/doctor-upgrade.d.ts.map +1 -0
- package/dist/cli/doctor-upgrade.js +269 -0
- package/dist/cli/doctor.d.ts +13 -26
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +79 -8
- package/dist/cli/help.d.ts.map +1 -1
- package/dist/cli/help.js +2 -4
- package/dist/cli/index.d.ts +68 -135
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +89 -76
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +43 -27
- package/dist/cli/sync.d.ts +5 -21
- package/dist/cli/sync.d.ts.map +1 -1
- package/dist/cli/sync.js +4 -6
- 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/copy-action.d.ts +1 -1
- package/dist/content/glyphs.d.ts +1 -1
- 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 +77 -170
- 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/foreign.ts +3 -2
- 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 +14 -43
- package/src/cli/doctor-upgrade.ts +392 -0
- package/src/cli/doctor.ts +120 -68
- package/src/cli/help.ts +2 -4
- package/src/cli/index.ts +161 -276
- package/src/cli/init.ts +60 -37
- package/src/cli/sync.ts +13 -45
- 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/copy-action.tsx +1 -1
- package/src/content/glyphs.tsx +1 -1
- 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 +37 -192
- 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/CLAUDE-block.md.tpl +0 -40
- 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,958 @@ 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 | 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 your
|
|
92
|
+
`@mantine/*/styles.layer.css` imports, because `basalt-ui/styles.css` carries them.
|
|
93
|
+
3. Replace the hand-built root (providers, `QueryClient`, router) with `BasaltProvider` +
|
|
94
|
+
`createBasaltRouter` (§ Provider and wiring).
|
|
95
|
+
4. Rewrite imports by area, using the tables below. A `move` changes only the specifier.
|
|
96
|
+
5. Run `bunx basalt-ui sync`, then `bunx basalt-ui doctor`, and take the lint findings one at a time.
|
|
97
|
+
|
|
98
|
+
### AI, content, commands, state and table (`w3/delete-agent-data`)
|
|
99
|
+
|
|
100
|
+
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.
|
|
101
|
+
|
|
102
|
+
| Old import | New | Why |
|
|
103
|
+
| --------------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
104
|
+
| `basalt-ui/commands`: `defineCommand` | deleted | no consumer outside the playground |
|
|
105
|
+
| `basalt-ui/commands`: `runCommand` | deleted | no consumer outside the playground |
|
|
106
|
+
| `basalt-ui/commands`: `CommandMap` | deleted | type removed (`'idle' \| 'submitted' \| 'streaming' \| 'done' \| 'error'`); derive with `NonNullable<ComponentProps<typeof ThreadFeedRow>['liveStatus']>` |
|
|
107
|
+
| `basalt-ui/commands`: `CommandId` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
108
|
+
| `basalt-ui/commands`: `CommandRunContext` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
109
|
+
| `basalt-ui/commands`: `defineOverlay` | deleted | no consumer outside the playground |
|
|
110
|
+
| `basalt-ui/commands`: `registerModalsProvider` | deleted | provider-internal (§ 2) |
|
|
111
|
+
| `basalt-ui/commands`: `Overlay` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
112
|
+
| `basalt-ui/commands`: `OverlayMap` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
113
|
+
| `basalt-ui/commands`: `OverlayKey` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
114
|
+
| `basalt-ui/commands`: `ConfirmOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
115
|
+
| `basalt-ui/commands`: `ConfirmDeleteOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
116
|
+
| `basalt-ui/commands`: `toSpotlightActions` | deleted | provider-internal |
|
|
117
|
+
| `basalt-ui/commands`: `toRouteActions` | deleted | no consumer outside the playground |
|
|
118
|
+
| `basalt-ui/commands`: `toShortcutList` | deleted | no consumer outside the playground |
|
|
119
|
+
| `basalt-ui/commands`: `toHotkeyBindings` | deleted | provider-internal (§ 2); § 8 replaces the mirrored hotkey types |
|
|
120
|
+
| `basalt-ui/commands`: `RouteActionItem` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
121
|
+
| `basalt-ui/commands`: `RouteActionSection` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
122
|
+
| `basalt-ui/commands`: `ToRouteActionsOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
123
|
+
| `basalt-ui/commands`: `ShortcutEntry` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
124
|
+
| `basalt-ui/commands`: `HotkeyBinding` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
125
|
+
| `basalt-ui/commands`: `ColorScheme` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
126
|
+
| `basalt-ui/commands`: `ColorSchemeSetter` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
127
|
+
| `basalt-ui/commands`: `SidebarToggle` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
128
|
+
| `basalt-ui/commands`: `parseShortcut` | deleted | no consumer outside the playground |
|
|
129
|
+
| `basalt-ui/commands`: `detectMac` | deleted | no consumer outside the playground |
|
|
130
|
+
| `basalt-ui/commands`: `formatShortcutDisplay` | deleted | no consumer outside the playground |
|
|
131
|
+
| `basalt-ui/commands`: `useCommandHotkeys` | deleted | provider binds the `defineCommands` registry, Hotkeys 0.13 loaded lazily (§ 2, § 8) |
|
|
132
|
+
| `basalt-ui/commands`: `ShortcutsHelpProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
133
|
+
| `basalt-ui/commands`: `BasaltOverlays` | deleted | `BasaltProvider` mounts modals, spotlight, hotkeys, notifications (§ 2) |
|
|
134
|
+
| `basalt-ui/commands`: `BasaltOverlaysProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
135
|
+
| `basalt-ui/commands`: `basaltSpotlight` | deleted | no consumer outside the playground |
|
|
136
|
+
| `basalt-ui/commands`: `openSpotlight` | deleted | no consumer outside the playground |
|
|
137
|
+
| `basalt-ui/commands`: `closeSpotlight` | deleted | no consumer outside the playground |
|
|
138
|
+
| `basalt-ui/notifications`: `notify` | deleted | no consumer outside the playground |
|
|
139
|
+
| `basalt-ui/notifications`: `notifySuccess` | deleted | no consumer outside the playground |
|
|
140
|
+
| `basalt-ui/notifications`: `notifyError` | deleted | no consumer outside the playground |
|
|
141
|
+
| `basalt-ui/notifications`: `notifyWarning` | deleted | no consumer outside the playground |
|
|
142
|
+
| `basalt-ui/notifications`: `notifyInfo` | deleted | no consumer outside the playground |
|
|
143
|
+
| `basalt-ui/notifications`: `notifyPromise` | deleted | no consumer outside the playground |
|
|
144
|
+
| `basalt-ui/notifications`: `notifyUndo` | deleted | no consumer outside the playground |
|
|
145
|
+
| `basalt-ui/notifications`: `notifyUndoable` | deleted | no consumer outside the playground |
|
|
146
|
+
| `basalt-ui/notifications`: `NotifyOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
147
|
+
| `basalt-ui/notifications`: `NotifyPromiseMessages` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
148
|
+
| `basalt-ui/notifications`: `NotifyUndoOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
149
|
+
| `basalt-ui/notifications`: `NotifyUndoHandle` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
150
|
+
| `basalt-ui/notifications`: `defineNotification` | deleted | no consumer outside the playground |
|
|
151
|
+
| `basalt-ui/notifications`: `defineNotifications` | `basalt-ui/commands` | ./notifications folds into ./commands |
|
|
152
|
+
| `basalt-ui/notifications`: `emit` | `basalt-ui/commands` | ./notifications folds into ./commands |
|
|
153
|
+
| `basalt-ui/notifications`: `resolveAction` | deleted | no consumer outside the playground |
|
|
154
|
+
| `basalt-ui/notifications`: `NotificationAction` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
155
|
+
| `basalt-ui/notifications`: `NotificationKind` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
156
|
+
| `basalt-ui/notifications`: `NotificationSpec` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
157
|
+
| `basalt-ui/notifications`: `NotificationSpecMap` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
158
|
+
| `basalt-ui/notifications`: `NotificationIntent` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
159
|
+
| `basalt-ui/notifications`: `add` | deleted | no consumer outside the playground |
|
|
160
|
+
| `basalt-ui/notifications`: `markRead` | deleted | no consumer outside the playground |
|
|
161
|
+
| `basalt-ui/notifications`: `markAllRead` | deleted | no consumer outside the playground |
|
|
162
|
+
| `basalt-ui/notifications`: `dismiss` | deleted | no consumer outside the playground |
|
|
163
|
+
| `basalt-ui/notifications`: `dismissAll` | deleted | no consumer outside the playground |
|
|
164
|
+
| `basalt-ui/notifications`: `remove` | deleted | no consumer outside the playground |
|
|
165
|
+
| `basalt-ui/notifications`: `clear` | deleted | no consumer outside the playground |
|
|
166
|
+
| `basalt-ui/notifications`: `needsAttention` | deleted | no consumer outside the playground |
|
|
167
|
+
| `basalt-ui/notifications`: `useNotificationHistory` | deleted | no consumer outside the playground |
|
|
168
|
+
| `basalt-ui/notifications`: `NotificationActionRef` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
169
|
+
| `basalt-ui/notifications`: `NotificationHistoryItem` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
170
|
+
| `basalt-ui/notifications`: `NotificationHistoryState` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
171
|
+
| `basalt-ui/notifications`: `UseNotificationHistoryReturn` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
172
|
+
| `basalt-ui/notifications`: `NotificationBell` | `basalt-ui/commands` | ./notifications folds into ./commands |
|
|
173
|
+
| `basalt-ui/notifications`: `NotificationBellProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
174
|
+
| `basalt-ui/notifications`: `NotificationCenter` | deleted | no consumer outside the playground |
|
|
175
|
+
| `basalt-ui/notifications`: `NotificationCenterProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
176
|
+
| `basalt-ui/data/table`: `BasaltDataTable` | `basalt-ui/table` | ./data/table folds into ./table |
|
|
177
|
+
| `basalt-ui/data/table`: `BasaltDataTableProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
178
|
+
| `basalt-ui/data/table`: `BasaltDataTableSlot` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
179
|
+
| `basalt-ui/data/table`: `DataTableAlign` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
180
|
+
| `basalt-ui/data/table`: `DataTableColumnId` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
181
|
+
| `basalt-ui/data/table`: `DataTableColumnPinning` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
182
|
+
| `basalt-ui/data/table`: `DataTableFacet` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
183
|
+
| `basalt-ui/data/table`: `DataTableFacetOption` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
184
|
+
| `basalt-ui/data/table`: `createColumnHelper` | `basalt-ui/table` | becomes basalt-owned: `createColumnHelper<Row>()` over Table v9 (§ 8) |
|
|
185
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualList` | deleted | no consumer; Virtual stays an internal dep of the transcript/table |
|
|
186
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualListHandle` | deleted | no consumer outside the playground |
|
|
187
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualListProps` | deleted | no consumer outside the playground |
|
|
188
|
+
| `basalt-ui/data/virtual`: `BasaltVirtualListSlot` | deleted | no consumer outside the playground |
|
|
189
|
+
| `basalt-ui/agent`: `AgentPartDraft` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
190
|
+
| `basalt-ui/agent`: `Drafted` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
191
|
+
| `basalt-ui/agent`: `StartPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
192
|
+
| `basalt-ui/agent`: `TextPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
193
|
+
| `basalt-ui/agent`: `ReasoningPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
194
|
+
| `basalt-ui/agent`: `ToolCallState` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
195
|
+
| `basalt-ui/agent`: `SourcePart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
196
|
+
| `basalt-ui/agent`: `ErrorPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
197
|
+
| `basalt-ui/agent`: `isStartPart` | deleted | no consumer outside the playground |
|
|
198
|
+
| `basalt-ui/agent`: `isToolCallSettled` | deleted | no consumer outside the playground |
|
|
199
|
+
| `basalt-ui/agent`: `TERMINAL_TOOL_STATES` | deleted | no consumer outside the playground |
|
|
200
|
+
| `basalt-ui/agent`: `mergePart` | deleted | no consumer outside the playground |
|
|
201
|
+
| `basalt-ui/agent`: `withPartIds` | deleted | no consumer outside the playground |
|
|
202
|
+
| `basalt-ui/agent`: `coalesceParts` | deleted | no consumer outside the playground |
|
|
203
|
+
| `basalt-ui/agent`: `definePartRenderers` | deleted | no consumer outside the playground |
|
|
204
|
+
| `basalt-ui/agent`: `narrowAgentPart` | deleted | no consumer outside the playground |
|
|
205
|
+
| `basalt-ui/agent`: `ConsumerPart` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
206
|
+
| `basalt-ui/agent`: `PartRenderContext` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
207
|
+
| `basalt-ui/agent`: `AgentTransport` | kept | still exported from `basalt-ui/agent` (W9: the DX trial needed it to type a mock or custom transport) |
|
|
208
|
+
| `basalt-ui/agent`: `ResumableAgentTransport` | kept | still exported from `basalt-ui/agent` (W9: the DX trial needed it to type a mock or custom transport) |
|
|
209
|
+
| `basalt-ui/agent`: `edenTransport` | deleted | no consumer; `aiSdkTransport` is the one transport (§ 6) |
|
|
210
|
+
| `basalt-ui/agent`: `isResumable` | deleted | no consumer outside the playground |
|
|
211
|
+
| `basalt-ui/agent`: `AiSdkTransport` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
212
|
+
| `basalt-ui/agent`: `AiSdkTransportOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
213
|
+
| `basalt-ui/agent`: `useAgentStream` | deleted | no consumer; `useAgentThreadRuns` is the one runner |
|
|
214
|
+
| `basalt-ui/agent`: `StreamStatus` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
215
|
+
| `basalt-ui/agent`: `UseAgentStreamReturn` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
216
|
+
| `basalt-ui/agent`: `UseAgentThreadRunsArgs` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
217
|
+
| `basalt-ui/agent`: `UseAgentThreadRunsReturn` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
218
|
+
| `basalt-ui/agent`: `PartList` | deleted | no consumer outside the playground |
|
|
219
|
+
| `basalt-ui/agent`: `PartListProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
220
|
+
| `basalt-ui/agent`: `AgentPartRenderers` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
221
|
+
| `basalt-ui/agent`: `TextPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
222
|
+
| `basalt-ui/agent`: `ReasoningPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
223
|
+
| `basalt-ui/agent`: `ToolCallPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
224
|
+
| `basalt-ui/agent`: `SourcePartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
225
|
+
| `basalt-ui/agent`: `ErrorPartRenderer` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
226
|
+
| `basalt-ui/agent`: `BasaltStickToBottom` | deleted | no consumer outside the playground |
|
|
227
|
+
| `basalt-ui/agent`: `BasaltStickToBottomProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
228
|
+
| `basalt-ui/agent`: `createChatHistoryStore` | deleted | no consumer outside the playground |
|
|
229
|
+
| `basalt-ui/agent`: `ChatHistoryStore` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
230
|
+
| `basalt-ui/agent`: `ChatHistoryStoreOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
231
|
+
| `basalt-ui/agent`: `createThreadsStore` | deleted | no consumer outside the playground |
|
|
232
|
+
| `basalt-ui/agent`: `ThreadsStoreOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
233
|
+
| `basalt-ui/agent`: `heuristicOutcome` | deleted | no consumer outside the playground |
|
|
234
|
+
| `basalt-ui/agent`: `createAdapterThreadsStore` | deleted | no consumer outside the playground |
|
|
235
|
+
| `basalt-ui/agent`: `threadsStoreAdapterContract` | deleted | no consumer outside the playground |
|
|
236
|
+
| `basalt-ui/agent`: `AdapterThreadsStoreOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
237
|
+
| `basalt-ui/agent`: `ThreadsStoreAdapter` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
238
|
+
| `basalt-ui/agent`: `ThreadsStoreAdapterContractCase` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
239
|
+
| `basalt-ui/agent-chat`: `ThreadWorkspace` | deleted | no consumer |
|
|
240
|
+
| `basalt-ui/agent-chat`: `ThreadWorkspaceProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
241
|
+
| `basalt-ui/agent-chat`: `ThreadFeed` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
242
|
+
| `basalt-ui/agent-chat`: `ThreadFeedProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
243
|
+
| `basalt-ui/agent-chat`: `ThreadFeedRow` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
244
|
+
| `basalt-ui/agent-chat`: `ThreadFeedRowProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
245
|
+
| `basalt-ui/agent-chat`: `MessageAffordances` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
246
|
+
| `basalt-ui/agent-chat`: `RowHeightProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
247
|
+
| `basalt-ui/agent-chat`: `VirtualizeOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
248
|
+
| `basalt-ui/agent-chat`: `VirtualizeProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
249
|
+
| `basalt-ui/agent-chat`: `ThreadOutcomeCard` | deleted | no consumer outside the playground |
|
|
250
|
+
| `basalt-ui/agent-chat`: `ThreadOutcomeCardProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
251
|
+
| `basalt-ui/agent-chat`: `ThreadDetailPanel` | deleted | no consumer outside the playground |
|
|
252
|
+
| `basalt-ui/agent-chat`: `ThreadDetailPanelProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
253
|
+
| `basalt-ui/agent-chat`: `Composer` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
254
|
+
| `basalt-ui/agent-chat`: `ComposerAttachment` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
255
|
+
| `basalt-ui/agent-chat`: `ComposerHandle` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
256
|
+
| `basalt-ui/agent-chat`: `ComposerProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
257
|
+
| `basalt-ui/agent-chat`: `ComposerSubmit` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
258
|
+
| `basalt-ui/agent-chat`: `threadPartRenderers` | deleted | no consumer outside the playground |
|
|
259
|
+
| `basalt-ui/agent-chat`: `ThreadTranscript` | deleted | no consumer; argo renders turns through `ThreadFeedRow` |
|
|
260
|
+
| `basalt-ui/agent-chat`: `ThreadTranscriptProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
261
|
+
| `basalt-ui/agent-chat`: `ToolChip` | `basalt-ui/agent` | ./agent-chat folds into ./agent |
|
|
262
|
+
| `basalt-ui/agent-chat`: `ToolChipProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
263
|
+
| `basalt-ui/content`: `ProseDensity` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
264
|
+
| `basalt-ui/content`: `ProseProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
265
|
+
| `basalt-ui/content`: `CodeBlock` | deleted | rendered by `Markdown` fences; no direct consumer |
|
|
266
|
+
| `basalt-ui/content`: `CodeBlockProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
267
|
+
| `basalt-ui/content`: `CalloutProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
268
|
+
| `basalt-ui/content`: `TableOfContentsProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
269
|
+
| `basalt-ui/content`: `ReadingProgress` | deleted | no consumer outside the playground |
|
|
270
|
+
| `basalt-ui/content`: `ReadingProgressProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
271
|
+
| `basalt-ui/content`: `headingSlug` | deleted | no consumer outside the playground |
|
|
272
|
+
| `basalt-ui/content`: `readingTime` | deleted | no consumer outside the playground |
|
|
273
|
+
| `basalt-ui/content`: `SlugTracker` | deleted | no consumer outside the playground |
|
|
274
|
+
| `basalt-ui/content`: `ReadingTime` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
275
|
+
| `basalt-ui/content`: `HeadingAnchor` | deleted | no consumer outside the playground |
|
|
276
|
+
| `basalt-ui/content`: `HeadingAnchorProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
277
|
+
| `basalt-ui/content`: `FenceRenderContext` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
278
|
+
| `basalt-ui/content`: `MarkdownContentTrust` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
279
|
+
| `basalt-ui/content`: `BASALT_SANITIZE_SCHEMA` | deleted | no consumer outside the playground |
|
|
280
|
+
| `basalt-ui/content`: `SanitizePropertyDefinition` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
281
|
+
| `basalt-ui/content`: `SanitizeSchema` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
282
|
+
| `basalt-ui/content`: `MermaidDiagram` | deleted | rendered by `Markdown` fences; no direct consumer |
|
|
283
|
+
| `basalt-ui/content`: `MermaidDiagramProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
284
|
+
| `basalt-ui/content`: `blockSplit` | deleted | no consumer outside the playground |
|
|
285
|
+
| `basalt-ui/content`: `createMdxComponents` | deleted | no consumer outside the playground |
|
|
286
|
+
| `basalt-ui/content`: `mdxComponents` | deleted | no consumer outside the playground |
|
|
287
|
+
| `basalt-ui/content`: `CreateMdxComponentsOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
288
|
+
| `basalt-ui/content`: `ArticleLayoutProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
289
|
+
| `basalt-ui/content`: `ArticleNavTarget` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
290
|
+
| `basalt-ui/content`: `ArticleCard` | deleted | no consumer outside the playground |
|
|
291
|
+
| `basalt-ui/content`: `ArticleGrid` | deleted | no consumer outside the playground |
|
|
292
|
+
| `basalt-ui/content`: `ArticleCardProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
293
|
+
| `basalt-ui/content`: `ArticleGridProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
294
|
+
| `basalt-ui/content`: `filterArticles` | deleted | no consumer outside the playground |
|
|
295
|
+
| `basalt-ui/content`: `formatArticleDate` | deleted | no consumer outside the playground |
|
|
296
|
+
| `basalt-ui/content`: `sortArticles` | deleted | no consumer outside the playground |
|
|
297
|
+
| `basalt-ui/content`: `Article` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
298
|
+
| `basalt-ui/content`: `ArticleFilterQuery` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
299
|
+
| `basalt-ui/content`: `ArticleOrder` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
300
|
+
| `basalt-ui/content`: `toArticleActions` | deleted | no consumer outside the playground |
|
|
301
|
+
| `basalt-ui/content`: `ToArticleActionsOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
302
|
+
| `basalt-ui/content`: `FilterSet` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
303
|
+
| `basalt-ui/content`: `MultiSelectFilter` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
304
|
+
| `basalt-ui/content`: `ViewTabs` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
305
|
+
| `basalt-ui/content`: `FilterSetProps` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
306
|
+
| `basalt-ui/content`: `MultiSelectFilterProps` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
307
|
+
| `basalt-ui/content`: `ViewTabsOption` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
308
|
+
| `basalt-ui/content`: `ViewTabsProps` | deleted | duplicate of `./controls`; one import path per symbol |
|
|
309
|
+
| `basalt-ui/content`: `GuideDrawer` | deleted | no consumer outside the playground |
|
|
310
|
+
| `basalt-ui/content`: `GuideDrawerProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
311
|
+
| `basalt-ui/content`: `GuideLinkProps` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
312
|
+
| `basalt-ui/state`: `PersistedStateOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
313
|
+
| `basalt-ui/state`: `readPersistedValue` | deleted | no consumer outside the playground |
|
|
314
|
+
| `basalt-ui/state`: `LocalStore` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
315
|
+
| `basalt-ui/state`: `FieldLane` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
316
|
+
| `basalt-ui/state`: `ResolvedLane` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
317
|
+
| `basalt-ui/state`: `ResolveLane` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
318
|
+
| `basalt-ui/state`: `RangeValue` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
319
|
+
| `basalt-ui/state`: `RangeParams` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
320
|
+
| `basalt-ui/state`: `RangePresets` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
321
|
+
| `basalt-ui/state`: `RangeWindows` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
322
|
+
| `basalt-ui/state`: `FieldFallback` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
323
|
+
| `basalt-ui/state`: `FieldSetOptions` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
324
|
+
| `basalt-ui/state`: `MultiField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
325
|
+
| `basalt-ui/state`: `RangeField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
326
|
+
| `basalt-ui/state`: `NumberField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
327
|
+
| `basalt-ui/state`: `BooleanField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
328
|
+
| `basalt-ui/state`: `StringField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
329
|
+
| `basalt-ui/state`: `AnyField` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
330
|
+
| `basalt-ui/state`: `FieldValue` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
331
|
+
| `basalt-ui/state`: `FieldOption` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
332
|
+
| `basalt-ui/state`: `SearchValues` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
333
|
+
| `basalt-ui/state`: `StoredValues` | deleted | type removed; derive with `ComponentProps`/`Parameters` |
|
|
334
|
+
|
|
335
|
+
### Lint (`w9/lint`)
|
|
336
|
+
|
|
337
|
+
Every `basalt/*` rule is `error` in 2.0.0 (the major is the channel). Edit your `.oxlintrc.json`
|
|
338
|
+
accordingly; an unknown `basalt/<id>` is a hard oxlint config error.
|
|
339
|
+
|
|
340
|
+
| Rule | Change | Consumer action |
|
|
341
|
+
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
342
|
+
| `basalt/provider-above-router` | removed | delete it from `.oxlintrc.json`; `BasaltProvider` mounts `RouterProvider`, so the inverted tree cannot be written |
|
|
343
|
+
| `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 |
|
|
344
|
+
| `basalt/agent-resume-guard` | removed | delete it; `resumeStream` exists only on `useChat`/`Chat`, both banned by `agent-no-raw-usechat` |
|
|
345
|
+
| `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 |
|
|
346
|
+
| `basalt/shadow-basalt-export` | `warn` → `error` | rename the fork to compose the basalt export, or `theme-allow shadow-basalt-export — <why>` |
|
|
347
|
+
| `basalt/agent-no-raw-usechat` | widened to the `Chat` class | import `Chat` from neither `@ai-sdk/react` nor `ai/react`; use `useAgentStream` / `useAgentThreadRuns` |
|
|
348
|
+
| `basalt/no-dev-helper` | new, repo-local only (not in the preset) | none |
|
|
349
|
+
| `basalt/no-import-meta-env` | repo-local only, now enabled | none |
|
|
350
|
+
| `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>` |
|
|
351
|
+
|
|
352
|
+
### Table v9 (`w6/table-v9`)
|
|
353
|
+
|
|
354
|
+
`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).
|
|
355
|
+
|
|
356
|
+
- Move your own `@tanstack/react-table` to `9.2.8` exact. Raw v8 helpers and `ColumnDef` no longer type-check against `columns`.
|
|
357
|
+
- `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>`.
|
|
358
|
+
- 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.
|
|
359
|
+
- The `@tanstack/react-virtual` peer floor moves to `>=3.14.0 <4`.
|
|
360
|
+
- `initialColumnPinning` is logical: `{ left, right }` → `{ start, end }`.
|
|
361
|
+
- `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.
|
|
362
|
+
- The global search now filters 250 ms after the last keystroke; `onGlobalFilterChange` fires at the same moment.
|
|
363
|
+
|
|
364
|
+
### Transitions (`w7/transitions`)
|
|
365
|
+
|
|
366
|
+
Contract: `docs/V2-SPEC.md` § 5. React 19.3 is required (`ViewTransition`, `Activity`).
|
|
367
|
+
|
|
368
|
+
- 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`).
|
|
369
|
+
- `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.
|
|
370
|
+
- `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`.
|
|
371
|
+
- `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.
|
|
372
|
+
|
|
373
|
+
### Content streaming (`w8/content-streaming`)
|
|
374
|
+
|
|
375
|
+
`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.
|
|
376
|
+
|
|
377
|
+
### Agent runtime (`w8/agent-runtime`)
|
|
378
|
+
|
|
379
|
+
Behavior changes to symbols that stay; no import changes. Contract: V2-SPEC § 6, § 7.
|
|
380
|
+
|
|
381
|
+
| Symbol | Change |
|
|
382
|
+
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
383
|
+
| `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'`. |
|
|
384
|
+
| `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. |
|
|
385
|
+
| `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'`. |
|
|
386
|
+
| `aiSdkTransport({ transport })` (new form) | Any AI SDK `ChatTransport<UIMessage>` is used as-is, e.g. a `WebSocketChatTransport`. `{ api, headers?, credentials?, fetch? }` is unchanged. |
|
|
387
|
+
| `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. |
|
|
388
|
+
| 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. |
|
|
389
|
+
|
|
390
|
+
### Root, shell, controls, dashboard, format, forms, tokens, theme (W3 delete-core)
|
|
391
|
+
|
|
392
|
+
Source of the rows: `docs/waves/v2-surface.md`. A deleted export has no replacement unless the
|
|
393
|
+
row names one; a deleted type is derived with `ComponentProps<typeof X>` / `Parameters<typeof f>[0]`.
|
|
394
|
+
|
|
395
|
+
Behaviour and type changes (`docs/V2-SPEC.md` §§ 3–4):
|
|
396
|
+
|
|
397
|
+
| Was | Now |
|
|
398
|
+
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
399
|
+
| `<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 |
|
|
400
|
+
| `<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 }` |
|
|
401
|
+
| a filter or tab given `value`, `onChange` or `size` | still an error, now named: the slots are typed `never` on every filter and `ViewTabs` |
|
|
402
|
+
| `createBasaltTheme(_, { radius: number, density: number })` | `radius` is `-5 … 5`, `density` is `-3 … 3` (literal unions) |
|
|
403
|
+
| `createBasaltTheme(_, { inputs: 'desktop' })` | deleted — four dimensions: `derive`, `fonts`, `radius`, `density` |
|
|
404
|
+
| `paletteOptions.groups` as a string-keyed record | `SeriesGroup[]`: pass what `groupTokens` returned, so the `name-` key is written once |
|
|
405
|
+
| `Section` dev warning for a fourth action | gone — the tuple type rejects it |
|
|
406
|
+
|
|
407
|
+
Removed or moved exports (old import → new):
|
|
408
|
+
|
|
409
|
+
| Was | Now |
|
|
410
|
+
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
|
411
|
+
| `BasaltProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
412
|
+
| `SlotClassNames` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
413
|
+
| `SlotStylesProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
414
|
+
| `Tone` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
415
|
+
| `ToneWithNeutral` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
416
|
+
| `Tier` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
417
|
+
| `cx` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
418
|
+
| `SCROLLPORT_ATTRIBUTE` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
419
|
+
| `baseTheme` — `basalt-ui` | deleted — provider-internal |
|
|
420
|
+
| `cssVariablesResolver` — `basalt-ui` | deleted — provider-internal; a second resolver is the misuse it invites |
|
|
421
|
+
| `BasaltFontsConfig` — `basalt-ui` | deleted — duplicate of ./tokens; one import path per symbol |
|
|
422
|
+
| `CreateBasaltThemeOptions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
423
|
+
| `CTL_THEME` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
424
|
+
| `CtlSlot` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
425
|
+
| `CtlSlotProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
426
|
+
| `useBasaltSpacing` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
427
|
+
| `ThemeToggleProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
428
|
+
| `ActionGroup` — `basalt-ui` | deleted — duplicate of ./controls; one import path per symbol |
|
|
429
|
+
| `BarAction` — `basalt-ui` | import from `basalt-ui/controls` instead — duplicate of ./controls; one import path per symbol |
|
|
430
|
+
| `ActionGroupProps` — `basalt-ui` | deleted — duplicate of ./controls; one import path per symbol |
|
|
431
|
+
| `GlobalAction` — `basalt-ui` | import from `basalt-ui/controls` instead — duplicate of ./controls; one import path per symbol |
|
|
432
|
+
| `MOTION_DURATION` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
433
|
+
| `MOTION_SPRING` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
434
|
+
| `MOTION_EASE_STANDARD` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
435
|
+
| `NavCountBadge` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
436
|
+
| `NavCountBadgeProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
437
|
+
| `AppSidebar` — `basalt-ui` | deleted — BasaltShell is the one mount (§ 3) |
|
|
438
|
+
| `SidebarSearch` — `basalt-ui` | deleted — BasaltShell search prop |
|
|
439
|
+
| `SidebarSearchProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
440
|
+
| `SidebarSearchConfig` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
441
|
+
| `SidebarSearchActions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
442
|
+
| `SidebarAccount` — `basalt-ui` | deleted — BasaltShell account prop |
|
|
443
|
+
| `MobileNav` — `basalt-ui` | deleted — BasaltShell is the one mount (§ 3) |
|
|
444
|
+
| `MobileNavProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
445
|
+
| `projectMobileNav` — `basalt-ui` | deleted — shell-internal |
|
|
446
|
+
| `ProjectMobileNavOptions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
447
|
+
| `MOBILE_MAX_TABS_DEFAULT` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
448
|
+
| `MOBILE_MENU_MAX_DEFAULT` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
449
|
+
| `MOBILE_MORE_KEY` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
450
|
+
| `AppBreadcrumbs` — `basalt-ui` | deleted — BasaltShell is the one mount (§ 3) |
|
|
451
|
+
| `AppBreadcrumbsProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
452
|
+
| `PageBarProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
453
|
+
| `PageBarSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
454
|
+
| `PageAsideProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
455
|
+
| `PageAsideSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
456
|
+
| `SizeClass` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
457
|
+
| `PageTitleProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
458
|
+
| `PageTitleSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
459
|
+
| `SidebarSection` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
460
|
+
| `SidebarItem` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
461
|
+
| `SidebarBlockItem` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
462
|
+
| `SidebarBlockTone` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
463
|
+
| `SidebarListBlock` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
464
|
+
| `SidebarProgressBlock` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
465
|
+
| `SidebarCustomBlock` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
466
|
+
| `NavAnchor` — `basalt-ui` | deleted — duplicate of ./router-tanstack; one import path per symbol |
|
|
467
|
+
| `NavAnchorProps` — `basalt-ui` | deleted — duplicate of ./router-tanstack; one import path per symbol |
|
|
468
|
+
| `NavMobilePlacement` — `basalt-ui` | deleted — duplicate of ./router-tanstack; one import path per symbol |
|
|
469
|
+
| `NavSectionMobile` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
470
|
+
| `MobileNavConfig` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
471
|
+
| `MobileNavGroup` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
472
|
+
| `MobileNavModel` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
473
|
+
| `MobileNavSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
474
|
+
| `MobileNavSurface` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
475
|
+
| `BasaltShellProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
476
|
+
| `BrandConfig` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
477
|
+
| `AppSidebarProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
478
|
+
| `AccountBadgeTone` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
479
|
+
| `BasaltIdentity` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
480
|
+
| `BasaltRole` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
481
|
+
| `BasaltPlan` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
482
|
+
| `AccountMenuItem` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
483
|
+
| `BasaltAccountState` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
484
|
+
| `BasaltAccountActions` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
485
|
+
| `BasaltAccountProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
486
|
+
| `Slot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
487
|
+
| `Series` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
488
|
+
| `SeriesKey` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
489
|
+
| `AsyncState` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
490
|
+
| `assertNever` — `basalt-ui` | deleted — no consumer; x satisfies never needs no import |
|
|
491
|
+
| `StandardSchemaV1` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
492
|
+
| `createPersistedState` — `basalt-ui` | import from `basalt-ui/state` instead — duplicate of ./state; one import path per symbol |
|
|
493
|
+
| `PersistedStateOptions` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
494
|
+
| `readPersistedValue` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
495
|
+
| `createLocalStore` — `basalt-ui` | import from `basalt-ui/state` instead — duplicate of ./state; one import path per symbol |
|
|
496
|
+
| `LocalStore` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
497
|
+
| `AnyField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
498
|
+
| `BooleanField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
499
|
+
| `EnumField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
500
|
+
| `FieldFallback` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
501
|
+
| `FieldHandle` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
502
|
+
| `FieldLane` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
503
|
+
| `FieldOption` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
504
|
+
| `FieldSetOptions` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
505
|
+
| `FieldValue` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
506
|
+
| `MultiField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
507
|
+
| `NumberField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
508
|
+
| `RangeField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
509
|
+
| `RangeParams` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
510
|
+
| `RangePresets` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
511
|
+
| `RangeValue` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
512
|
+
| `RangeWindow` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
513
|
+
| `RangeWindows` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
514
|
+
| `ResolvedLane` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
515
|
+
| `ResolveLane` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
516
|
+
| `SearchValues` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
517
|
+
| `StoredValues` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
518
|
+
| `StringField` — `basalt-ui` | deleted — duplicate of ./state; one import path per symbol |
|
|
519
|
+
| `WidgetHeaderDeltaProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
520
|
+
| `WidgetHeaderMetricProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
521
|
+
| `WidgetHeaderProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
522
|
+
| `WidgetHeaderSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
523
|
+
| `WidgetHeaderTier` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
524
|
+
| `WidgetHeaderTitleProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
525
|
+
| `DeltaBadgeProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
526
|
+
| `DeltaPolarity` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
527
|
+
| `SectionProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
528
|
+
| `SectionSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
529
|
+
| `StatCardProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
530
|
+
| `StatCardSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
531
|
+
| `WidgetGrid` — `basalt-ui` | deleted — no consumer outside the playground |
|
|
532
|
+
| `WidgetGridCols` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
533
|
+
| `WidgetGridItemProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
534
|
+
| `WidgetGridProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
535
|
+
| `StatGroupCols` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
536
|
+
| `StatGroupProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
537
|
+
| `EmptyStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
538
|
+
| `EmptyStateSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
539
|
+
| `SettingsSectionProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
540
|
+
| `SettingsSectionSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
541
|
+
| `SettingsRowProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
542
|
+
| `SettingsRowSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
543
|
+
| `DangerZoneProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
544
|
+
| `QueryState` — `basalt-ui` | deleted — router defaultPendingComponent/defaultErrorComponent + suspense queries replace it (§ 2) |
|
|
545
|
+
| `QueryStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
546
|
+
| `QueryStateLike` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
547
|
+
| `QueryStateSlot` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
548
|
+
| `QueryStateTier` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
549
|
+
| `QueryEmptyCopy` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
550
|
+
| `LoadingState` — `basalt-ui` | deleted — router defaultPendingComponent (§ 2) |
|
|
551
|
+
| `LoadingStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
552
|
+
| `ErrorState` — `basalt-ui` | deleted — router defaultErrorComponent (§ 2) |
|
|
553
|
+
| `ErrorStateProps` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
554
|
+
| `SurfaceSpec` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
555
|
+
| `RuleName` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
556
|
+
| `SkillName` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
557
|
+
| `GuardKind` — `basalt-ui` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
558
|
+
| `ThreadWorkspace` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
559
|
+
| `ThreadFeed` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
560
|
+
| `ThreadFeedRow` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
561
|
+
| `ThreadOutcomeCard` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
562
|
+
| `ThreadDetailPanel` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
563
|
+
| `Composer` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
564
|
+
| `threadPartRenderers` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
565
|
+
| `ThreadTranscript` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
566
|
+
| `ToolChip` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
567
|
+
| `ThreadWorkspaceProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
568
|
+
| `ThreadFeedProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
569
|
+
| `ThreadFeedRowProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
570
|
+
| `ThreadOutcomeCardProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
571
|
+
| `ThreadDetailPanelProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
572
|
+
| `ComposerProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
573
|
+
| `ComposerSubmit` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
574
|
+
| `ComposerAttachment` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
575
|
+
| `ComposerHandle` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
576
|
+
| `ThreadTranscriptProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
577
|
+
| `MessageAffordances` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
578
|
+
| `VirtualizeOptions` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
579
|
+
| `VirtualizeProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
580
|
+
| `RowHeightProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
581
|
+
| `ToolChipProps` — `basalt-ui` | deleted — duplicate of ./agent-chat; one import path per symbol |
|
|
582
|
+
| `createAdapterThreadsStore` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
583
|
+
| `createThreadsStore` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
584
|
+
| `heuristicOutcome` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
585
|
+
| `threadsStoreAdapterContract` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
586
|
+
| `useAgentThreadRuns` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
587
|
+
| `AdapterThreadsStoreOptions` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
588
|
+
| `AgentThread` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
589
|
+
| `AgentOutcome` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
590
|
+
| `ThreadStatus` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
591
|
+
| `ThreadsStore` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
592
|
+
| `ThreadsStoreAdapter` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
593
|
+
| `ThreadsStoreAdapterContractCase` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
594
|
+
| `ThreadsStoreOptions` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
595
|
+
| `OutcomeResolver` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
596
|
+
| `ChatMessage` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
597
|
+
| `AgentPart` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
598
|
+
| `AgentTransport` — `basalt-ui` | deleted — duplicate of ./agent; one import path per symbol |
|
|
599
|
+
| `pxRem` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
600
|
+
| `buildFontsCss` — `basalt-ui/tokens` | deleted — provider/CLI-internal |
|
|
601
|
+
| `buildRadiusCss` — `basalt-ui/tokens` | deleted — provider/CLI-internal |
|
|
602
|
+
| `buildDensityCss` — `basalt-ui/tokens` | deleted — provider/CLI-internal |
|
|
603
|
+
| `DEFAULT_DERIVE_CONFIG` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
604
|
+
| `deriveTokens` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
605
|
+
| `resolveDeriveConfig` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
606
|
+
| `DeriveConfig` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
607
|
+
| `DerivedPalette` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
608
|
+
| `deriveRadius` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
609
|
+
| `RadiusValues` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
610
|
+
| `deriveSpacing` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
611
|
+
| `SpaceValues` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
612
|
+
| `resolveContainerClass` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
613
|
+
| `SIZE_CLASSES` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
614
|
+
| `ContainerClass` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
615
|
+
| `BREAKPOINTS` — `basalt-ui/tokens` | deleted — no consumer outside the playground |
|
|
616
|
+
| `ColorSchemeSelector` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
617
|
+
| `BuildPaletteOpts` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
618
|
+
| `BasaltFontsConfig` — `basalt-ui/tokens` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
619
|
+
| `ThemeLabControls` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
620
|
+
| `DeriveControls` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
621
|
+
| `DeriveControlsProps` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
622
|
+
| `applyOverrides` — `basalt-ui/theme-lab` | deleted — provider applies persisted lab overrides in dev (§ 2) (no longer a subpath) |
|
|
623
|
+
| `AREA_BOTTOM_VAR` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
624
|
+
| `AREA_TOP_VAR` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
625
|
+
| `COLOR_GROUPS` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
626
|
+
| `loadOverrides` — `basalt-ui/theme-lab` | deleted — provider applies persisted lab overrides in dev (§ 2) (no longer a subpath) |
|
|
627
|
+
| `readVar` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
628
|
+
| `saveOverrides` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
629
|
+
| `ColorGroup` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
630
|
+
| `ColorTunable` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
631
|
+
| `Overrides` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
632
|
+
| `ThemeLabControlsProps` — `basalt-ui/theme-lab` | deleted — dev-only; provider-internal (§ 2) (no longer a subpath) |
|
|
633
|
+
| `BasaltViteOptions` — `basalt-ui/vite` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
634
|
+
| `BasaltAppIcon` — `basalt-ui/vite` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
635
|
+
| `BasaltAppOptions` — `basalt-ui/vite` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
636
|
+
| `unmatchedExemptPatterns` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
637
|
+
| `guardKindRemedy` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
638
|
+
| `guardWaiverHint` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
639
|
+
| `checkSource` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
640
|
+
| `findAllowAnnotations` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
641
|
+
| `neutralizeAllowAnnotation` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
642
|
+
| `Finding` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
643
|
+
| `GuardConfig` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
644
|
+
| `GuardKind` — `basalt-ui/guard` | deleted — duplicate of .; one import path per symbol (no longer a subpath) |
|
|
645
|
+
| `GuardSeverity` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
646
|
+
| `DEFAULT_GUARD_CONFIG` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
647
|
+
| `GraceEntry` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
648
|
+
| `GRACE_PERIOD_KINDS` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
649
|
+
| `UnmatchedExemptPattern` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
650
|
+
| `PLUGIN_RULE_IDS` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
651
|
+
| `WAIVER_ID_ALIASES` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
652
|
+
| `GENERATED_HEADER_LINE` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
653
|
+
| `TOKENS_ONLY_DISABLED_KINDS` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
654
|
+
| `GUARD_RULES` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
655
|
+
| `AllowAnnotationSite` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
656
|
+
| `NEUTRALIZED_ALLOW_TOKEN` — `basalt-ui/guard` | deleted — CLI-internal; no import consumer (no longer a subpath) |
|
|
657
|
+
| `compact` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
658
|
+
| `deltaPct` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
659
|
+
| `DeltaPctOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
660
|
+
| `fmtCompact` — `basalt-ui/format` | deleted — alias of compact — one name per formatter |
|
|
661
|
+
| `FmtCompactOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
662
|
+
| `fmtCurrency` — `basalt-ui/format` | deleted — alias of money |
|
|
663
|
+
| `FmtCurrencyOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
664
|
+
| `fmtInt` — `basalt-ui/format` | deleted — alias of integer |
|
|
665
|
+
| `fmtPercent` — `basalt-ui/format` | deleted — alias of percent |
|
|
666
|
+
| `FmtPercentOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
667
|
+
| `LocaleOption` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
668
|
+
| `NON_FINITE` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
669
|
+
| `clock` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
670
|
+
| `ClockOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
671
|
+
| `duration` — `basalt-ui/format` | deleted — no consumer outside the playground |
|
|
672
|
+
| `DurationOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
673
|
+
| `DurationUnit` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
674
|
+
| `RelativeTimeOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
675
|
+
| `WeekdayOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
676
|
+
| `KcalOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
677
|
+
| `KmOptions` — `basalt-ui/format` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
678
|
+
| `UseBasaltFormOptions` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
679
|
+
| `useFormSubmit` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
680
|
+
| `isFieldErrorEnvelope` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
681
|
+
| `FormFieldErrors` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
682
|
+
| `UseFormSubmitOptions` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
683
|
+
| `UseFormSubmitReturn` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
684
|
+
| `FormStateProvider` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
685
|
+
| `useFormState` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
686
|
+
| `FormState` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
687
|
+
| `FormStateProviderProps` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
688
|
+
| `useFieldArray` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
689
|
+
| `UseFieldArrayReturn` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
690
|
+
| `FormErrorSummary` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
691
|
+
| `FormErrorSummaryProps` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
692
|
+
| `useFormDraft` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
693
|
+
| `DEFAULT_AUTOSAVE_DEBOUNCE_MS` — `basalt-ui/forms` | deleted — no consumer outside the playground |
|
|
694
|
+
| `UseFormDraftOptions` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
695
|
+
| `UseFormDraftReturn` — `basalt-ui/forms` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
696
|
+
| `ActionGroup` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
697
|
+
| `OverflowMenu` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
698
|
+
| `MOBILE_GLOBAL_BAR_MAX` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
699
|
+
| `barActionMobile` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
700
|
+
| `globalActionMobile` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
701
|
+
| `BarActionItem` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
702
|
+
| `BarActionMenu` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
703
|
+
| `BarActionCustom` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
704
|
+
| `ActionGroupProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
705
|
+
| `OverflowMenuProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
706
|
+
| `formatAge` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
707
|
+
| `AGE_REFRESH_MS` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
708
|
+
| `SyncButtonProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
709
|
+
| `ControlGroup` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
710
|
+
| `ControlGroupProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
711
|
+
| `FilterSetProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
712
|
+
| `RangeCustomPickerProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
713
|
+
| `RangeFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
714
|
+
| `CompareFilter` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
715
|
+
| `COMPARE_VALUES` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
716
|
+
| `CompareFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
717
|
+
| `CompareValue` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
718
|
+
| `FilterOption` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
719
|
+
| `SelectFilterEnumProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
720
|
+
| `SelectFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
721
|
+
| `SelectFilterStringProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
722
|
+
| `MultiSelectFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
723
|
+
| `NumberFilterOption` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
724
|
+
| `NumberFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
725
|
+
| `SearchFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
726
|
+
| `ToggleFilterProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
727
|
+
| `ViewTabsOption` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
728
|
+
| `ViewTabsProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
729
|
+
| `PanelRow` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
730
|
+
| `PanelRowProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
731
|
+
| `SliderControl` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
732
|
+
| `SliderControlProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
733
|
+
| `FormSection` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
734
|
+
| `FormActions` — `basalt-ui/controls` | deleted — no consumer outside the playground |
|
|
735
|
+
| `FormSectionProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
736
|
+
| `FormSectionSlot` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
737
|
+
| `FormRowProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
738
|
+
| `FormRowSlot` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
739
|
+
| `FormGroupProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
740
|
+
| `FormActionsProps` — `basalt-ui/controls` | deleted — type only; derive it with `ComponentProps`/`Parameters` |
|
|
741
|
+
| `RangeCustomPickerProps` — `basalt-ui/controls-dates` | deleted — duplicate of ./controls; one import path per symbol |
|
|
742
|
+
|
|
743
|
+
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.
|
|
744
|
+
|
|
745
|
+
### CLI (`w9/cli`)
|
|
746
|
+
|
|
747
|
+
`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.
|
|
748
|
+
|
|
749
|
+
`basalt-ui doctor` gains three hard checks, each failure printing a `Fix:` line:
|
|
750
|
+
|
|
751
|
+
- `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`.
|
|
752
|
+
- `retired-lint-rules`: `.oxlintrc.json` (and local `extends`) sets a `basalt/<id>` the installed plugin no longer registers; delete the entry.
|
|
753
|
+
- `dropped-subpaths`: a source file under `basalt.roots` imports a `basalt-ui/<subpath>` the install's `exports` lacks; reported as `file:line`.
|
|
754
|
+
|
|
755
|
+
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.
|
|
756
|
+
|
|
757
|
+
- `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).
|
|
758
|
+
- `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.
|
|
759
|
+
- `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`.
|
|
760
|
+
- `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.
|
|
761
|
+
- 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).
|
|
762
|
+
|
|
763
|
+
### Charts
|
|
764
|
+
|
|
765
|
+
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.
|
|
766
|
+
|
|
767
|
+
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`.
|
|
768
|
+
|
|
769
|
+
| Old import | New | Why |
|
|
770
|
+
| ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
771
|
+
| `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 |
|
|
772
|
+
| `basalt-ui/charts`: `AreaClosed` | `areaY` (`@tanstack/charts/area`) in `marks`, or `ChartSeries.area` | visx is gone: no dependency, peer or re-export |
|
|
773
|
+
| `basalt-ui/charts`: `AreaStack` | `StackedArea`, or `areaY` + `stack` (`@tanstack/charts/stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
774
|
+
| `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 |
|
|
775
|
+
| `basalt-ui/charts`: `Bar` | `Bars`, or `barY` (`@tanstack/charts/bar`, plus `stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
776
|
+
| `basalt-ui/charts`: `BarStack` | `Bars`, or `barY` (`@tanstack/charts/bar`, plus `stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
777
|
+
| `basalt-ui/charts`: `BarGroup` | `Bars`, or `barY` (`@tanstack/charts/bar`, plus `stack`) in `marks` | visx is gone: no dependency, peer or re-export |
|
|
778
|
+
| `basalt-ui/charts`: `Line` | `ruleX`/`ruleY` (`@tanstack/charts/rule`), `link` (`@tanstack/charts/link`) or `refLines` | visx is gone: no dependency, peer or re-export |
|
|
779
|
+
| `basalt-ui/charts`: `Pie` | `Donut` | visx is gone: no dependency, peer or re-export |
|
|
780
|
+
| `basalt-ui/charts`: `Group` | deleted; marks carry their own position | visx is gone: no dependency, peer or re-export |
|
|
781
|
+
| `basalt-ui/charts`: `GridRows` | deleted; `AxisConfig.grid` | visx is gone: no dependency, peer or re-export |
|
|
782
|
+
| `basalt-ui/charts`: `GridColumns` | deleted; `AxisConfig.grid` | visx is gone: no dependency, peer or re-export |
|
|
783
|
+
| `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 |
|
|
784
|
+
| `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 |
|
|
785
|
+
| `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 |
|
|
786
|
+
| `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 |
|
|
787
|
+
| `basalt-ui/charts`: `curveMonotoneX` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
788
|
+
| `basalt-ui/charts`: `curveLinear` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
789
|
+
| `basalt-ui/charts`: `curveCatmullRom` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
790
|
+
| `basalt-ui/charts`: `curveStep` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
791
|
+
| `basalt-ui/charts`: `curveStepAfter` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
792
|
+
| `basalt-ui/charts`: `curveStepBefore` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
793
|
+
| `basalt-ui/charts`: `curveBasis` | `ChartSeries.curve`; `d3Curve` from `@tanstack/charts/d3/shape` inside `marks` | visx is gone: no dependency, peer or re-export |
|
|
794
|
+
| `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 |
|
|
795
|
+
| `basalt-ui/charts`: `ZonedLineProps` | `LinesProps` | merged with `MultiLine` |
|
|
796
|
+
| `basalt-ui/charts`: `ZonedLineThreshold` | `Threshold` | renamed |
|
|
797
|
+
| `basalt-ui/charts`: `ZonedLineRefLine` | `RefLine` | one reference-line type for every kind |
|
|
798
|
+
| `basalt-ui/charts`: `BarsRefLine` | `RefLine` | one reference-line type for every kind |
|
|
799
|
+
| `basalt-ui/charts`: `MultiLine` | `Lines` | merged with `ZonedLine` |
|
|
800
|
+
| `basalt-ui/charts`: `MultiLineProps` | `LinesProps` | merged with `ZonedLineProps` |
|
|
801
|
+
| `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) |
|
|
802
|
+
| `basalt-ui/charts`: `BarsProps` | kept, reshaped with `Bars` | contract change (V2-SPEC § 9.3) |
|
|
803
|
+
| `basalt-ui/charts`: `BarsBar` | kept, reshaped with `Bars` | contract change (V2-SPEC § 9.3) |
|
|
804
|
+
| `basalt-ui/charts`: `BarsLine` | kept, reshaped with `Bars` | contract change (V2-SPEC § 9.3) |
|
|
805
|
+
| `basalt-ui/charts`: `StackedArea` | `StackedArea`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
806
|
+
| `basalt-ui/charts`: `StackedAreaProps` | `StackedArea`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
807
|
+
| `basalt-ui/charts`: `DualPanel` | `DualPanel`, rebuilt on this engine (compiled through `composeViews`) | rebuilt in W5 (props in § 9.3) |
|
|
808
|
+
| `basalt-ui/charts`: `DualPanelProps` | `DualPanel`, rebuilt on this engine (compiled through `composeViews`) | rebuilt in W5 (props in § 9.3) |
|
|
809
|
+
| `basalt-ui/charts`: `MirroredBars` | `MirroredBars`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
810
|
+
| `basalt-ui/charts`: `MirroredBarsProps` | `MirroredBars`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
811
|
+
| `basalt-ui/charts`: `MirroredBarPane` | `MirroredBars`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
812
|
+
| `basalt-ui/charts`: `BandStrip` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
813
|
+
| `basalt-ui/charts`: `BandStripProps` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
814
|
+
| `basalt-ui/charts`: `BandStripSeries` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
815
|
+
| `basalt-ui/charts`: `BandSpan` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
816
|
+
| `basalt-ui/charts`: `BandFold` | `BandStrip`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
817
|
+
| `basalt-ui/charts`: `Donut` | `Donut`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
818
|
+
| `basalt-ui/charts`: `DonutProps` | `Donut`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
819
|
+
| `basalt-ui/charts`: `DonutDatum` | `Donut`, rebuilt on this engine | rebuilt in W5 (props in § 9.3) |
|
|
820
|
+
| `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 |
|
|
821
|
+
| `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 |
|
|
822
|
+
| `basalt-ui/charts`: `LineSparkline` | `Sparkline`, rebuilt on this engine (`mark: 'line' \| 'bar'`) | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
823
|
+
| `basalt-ui/charts`: `BarSparkline` | `Sparkline`, rebuilt on this engine (`mark: 'line' \| 'bar'`) | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
824
|
+
| `basalt-ui/charts`: `LineSparklineProps` | `SparklineProps`, rebuilt on this engine | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
825
|
+
| `basalt-ui/charts`: `BarSparklineProps` | `SparklineProps`, rebuilt on this engine | the two sparklines merge; rebuilt in W5 (props in § 9.3) |
|
|
826
|
+
| `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) |
|
|
827
|
+
| `basalt-ui/charts`: `CartesianChartProps` | kept names, new contract | V2-SPEC § 9.2 |
|
|
828
|
+
| `basalt-ui/charts`: `AxisConfig` | kept names, new contract | V2-SPEC § 9.2 |
|
|
829
|
+
| `basalt-ui/charts`: `PlotContext` | kept names, new contract | V2-SPEC § 9.2 |
|
|
830
|
+
| `basalt-ui/charts`: `resolveAxisDomain` | internal | the rung owns the y domains |
|
|
831
|
+
| `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 |
|
|
832
|
+
| `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 |
|
|
833
|
+
| `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 |
|
|
834
|
+
| `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 |
|
|
835
|
+
| `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 |
|
|
836
|
+
| `basalt-ui/charts`: `ResponsiveChartHeight` | kept | unchanged |
|
|
837
|
+
| `basalt-ui/charts`: `ChartState` | kept; the `isPending` alias is deleted (use `state={{ pending }}`) | one state type |
|
|
838
|
+
| `basalt-ui/charts`: `ChartCenter` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
839
|
+
| `basalt-ui/charts`: `ChartPending` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
840
|
+
| `basalt-ui/charts`: `ChartEmpty` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
841
|
+
| `basalt-ui/charts`: `ChartError` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
842
|
+
| `basalt-ui/charts`: `ChartCenterProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
843
|
+
| `basalt-ui/charts`: `ChartPendingProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
844
|
+
| `basalt-ui/charts`: `ChartEmptyProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
845
|
+
| `basalt-ui/charts`: `ChartErrorProps` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
846
|
+
| `basalt-ui/charts`: `ResolvedChartState` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
847
|
+
| `basalt-ui/charts`: `resolveChartState` | internal to the host and `ChartCard`; render a state with the `state` prop | the host owns the placeholders |
|
|
848
|
+
| `basalt-ui/charts`: `ChartCard` | kept | unchanged |
|
|
849
|
+
| `basalt-ui/charts`: `ChartCardProps` | kept | unchanged |
|
|
850
|
+
| `basalt-ui/charts`: `ChartCardSlot` | kept | unchanged |
|
|
851
|
+
| `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 |
|
|
852
|
+
| `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 |
|
|
853
|
+
| `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 |
|
|
854
|
+
| `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 |
|
|
855
|
+
| `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 |
|
|
856
|
+
| `basalt-ui/charts`: `ChartCursorScope` | the `cursorGroup` prop | no provider: one controller per group in a module map |
|
|
857
|
+
| `basalt-ui/charts`: `ChartCursorScopeProps` | the `cursorGroup` prop | no provider: one controller per group in a module map |
|
|
858
|
+
| `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 |
|
|
859
|
+
| `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 |
|
|
860
|
+
| `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 |
|
|
861
|
+
| `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 |
|
|
862
|
+
| `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 |
|
|
863
|
+
| `basalt-ui/charts`: `useChartCursor` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
864
|
+
| `basalt-ui/charts`: `ChartCursor` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
865
|
+
| `basalt-ui/charts`: `CursorAnchor` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
866
|
+
| `basalt-ui/charts`: `DomainKind` | deleted; TanStack focus plus basalt's cursor resolution | the engine owns the pointer and keyboard model |
|
|
867
|
+
| `basalt-ui/charts`: `CursorResolution` | kept (`'exact' \| 'nearest' \| 'leading'`) | unchanged |
|
|
868
|
+
| `basalt-ui/charts`: `Crosshair` | deleted; the engine's crosshair, focus ring and keyboard focus | the engine owns the overlay |
|
|
869
|
+
| `basalt-ui/charts`: `SeriesDot` | deleted; the engine's crosshair, focus ring and keyboard focus | the engine owns the overlay |
|
|
870
|
+
| `basalt-ui/charts`: `HoverOverlay` | deleted; the engine's crosshair, focus ring and keyboard focus | the engine owns the overlay |
|
|
871
|
+
| `basalt-ui/charts`: `AxisBottomDate` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
872
|
+
| `basalt-ui/charts`: `AxisBottomNumeric` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
873
|
+
| `basalt-ui/charts`: `AxisLeftNumeric` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
874
|
+
| `basalt-ui/charts`: `AxisRightNumeric` | deleted; `AxisConfig` (`y`, `y2`), `xTicks`, `formatX` | the engine draws the guides |
|
|
875
|
+
| `basalt-ui/charts`: `ZoneRects` | deleted; `zones` / `xZones` props take `ZoneSpec` / `XZoneSpec`, which are kept | the rung compiles zones |
|
|
876
|
+
| `basalt-ui/charts`: `XZoneRects` | deleted; `zones` / `xZones` props take `ZoneSpec` / `XZoneSpec`, which are kept | the rung compiles zones |
|
|
877
|
+
| `basalt-ui/charts`: `AreaGradient` | `ChartSeries.area` | the engine owns SVG resources |
|
|
878
|
+
| `basalt-ui/charts`: `areaFillUrl` | `ChartSeries.area` | the engine owns SVG resources |
|
|
879
|
+
| `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 |
|
|
880
|
+
| `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 |
|
|
881
|
+
| `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 |
|
|
882
|
+
| `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 |
|
|
883
|
+
| `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 |
|
|
884
|
+
| `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 |
|
|
885
|
+
| `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 |
|
|
886
|
+
| `basalt-ui/charts`: `CartesianTooltipConfig` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
887
|
+
| `basalt-ui/charts`: `CartesianTooltipRowContext` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
888
|
+
| `basalt-ui/charts`: `BandTooltipConfig` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
889
|
+
| `basalt-ui/charts`: `BandTooltipRowContext` | `ChartTooltipConfig` (one type for every kind) | `label` / `prependRows` / `extraRows` / `TooltipRow` collapse into `tooltip.rows` |
|
|
890
|
+
| `basalt-ui/charts`: `ChartLegend` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
891
|
+
| `basalt-ui/charts`: `LegendEntry` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
892
|
+
| `basalt-ui/charts`: `deriveLegend` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
893
|
+
| `basalt-ui/charts`: `deriveTooltipRows` | internal; an external legend is `legend.placement: 'header'` | legend and tooltip rows derive from `series` inside the host |
|
|
894
|
+
| `basalt-ui/charts`: `ChartLegendConfig` | kept; `LegendPlacement` is inlined | unchanged shape |
|
|
895
|
+
| `basalt-ui/charts`: `LegendPlacement` | inlined in `ChartLegendConfig` (`'top' \| 'bottom' \| 'header'`) | one legend type |
|
|
896
|
+
| `basalt-ui/charts`: `ChartSeries` | kept; absorbs `SeriesStyle`, plus `area` | one series descriptor |
|
|
897
|
+
| `basalt-ui/charts`: `SeriesStyle` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
898
|
+
| `basalt-ui/charts`: `SeriesMark` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
899
|
+
| `basalt-ui/charts`: `SeriesDash` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
900
|
+
| `basalt-ui/charts`: `SeriesCurve` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
901
|
+
| `basalt-ui/charts`: `SeriesRole` | folded into `ChartSeries` (`ChartSeries['curve']`, …) | one series descriptor |
|
|
902
|
+
| `basalt-ui/charts`: `curveFor` | internal | `ChartSeries.curve` is the public seam |
|
|
903
|
+
| `basalt-ui/charts`: `foldBands` | internal | returns with W5 `BandStrip` |
|
|
904
|
+
| `basalt-ui/charts`: `useChartSize` | deleted; the host measures the width | the host owns sizing |
|
|
905
|
+
| `basalt-ui/charts`: `UseChartSizeResult` | deleted; the host measures the width | the host owns sizing |
|
|
906
|
+
| `basalt-ui/charts`: `ChartSize` | deleted; the host measures the width | the host owns sizing |
|
|
907
|
+
| `basalt-ui/charts`: `autoMargin` | deleted | TanStack's measured guides own the margins |
|
|
908
|
+
| `basalt-ui/charts`: `probeAxisLabels` | deleted | TanStack's measured guides own the margins |
|
|
909
|
+
| `basalt-ui/charts`: `AutoMarginInput` | deleted | TanStack's measured guides own the margins |
|
|
910
|
+
| `basalt-ui/charts`: `measureText` | deleted | TanStack's measured guides own the margins |
|
|
911
|
+
| `basalt-ui/charts`: `maxTextWidth` | deleted | TanStack's measured guides own the margins |
|
|
912
|
+
| `basalt-ui/charts`: `smartTicks` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
913
|
+
| `basalt-ui/charts`: `smartTicksEvery` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
914
|
+
| `basalt-ui/charts`: `xLabelPxFor` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
915
|
+
| `basalt-ui/charts`: `autoXLabelRotate` | deleted; `xTicks` (a count or the values) plus `tickLabels.thin`; labels never rotate | the engine thins colliding labels |
|
|
916
|
+
| `basalt-ui/charts`: `chartMargin` | deleted; margins are measured, band kinds own their top inset | the engine owns the margins |
|
|
917
|
+
| `basalt-ui/charts`: `ChartMargin` | deleted; margins are measured, band kinds own their top inset | the engine owns the margins |
|
|
918
|
+
| `basalt-ui/charts`: `fmtAxisDate` | deleted (also from `basalt-ui/format`); `formatX` and `tooltip.formatHeader` default to the date formats | one home for formatters |
|
|
919
|
+
| `basalt-ui/charts`: `fmtTooltipDate` | deleted (also from `basalt-ui/format`); `formatX` and `tooltip.formatHeader` default to the date formats | one home for formatters |
|
|
920
|
+
| `basalt-ui/charts`: `fmtCompact` | deleted; `AxisConfig.format` defaults to compact numbers | one home for formatters |
|
|
921
|
+
| `basalt-ui/charts`: `FmtCompactOptions` | deleted; `AxisConfig.format` defaults to compact numbers | one home for formatters |
|
|
922
|
+
| `basalt-ui/charts`: `fmtPercent` | `percent` from `basalt-ui/format` | one home for formatters |
|
|
923
|
+
| `basalt-ui/charts`: `FmtPercentOptions` | `percent` from `basalt-ui/format` | one home for formatters |
|
|
924
|
+
| `basalt-ui/charts`: `fmtCurrency` | `money` from `basalt-ui/format` | one home for formatters |
|
|
925
|
+
| `basalt-ui/charts`: `FmtCurrencyOptions` | `money` from `basalt-ui/format` | one home for formatters |
|
|
926
|
+
| `basalt-ui/charts`: `fmtInt` | `integer` from `basalt-ui/format` | one home for formatters |
|
|
927
|
+
| `basalt-ui/charts`: `formatters` | deleted; `basalt-ui/format` | one home for formatters |
|
|
928
|
+
| `basalt-ui/charts`: `VX` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
929
|
+
| `basalt-ui/charts`: `alpha` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
930
|
+
| `basalt-ui/charts`: `buildPaletteCss` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
931
|
+
| `basalt-ui/charts`: `seriesTokens` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
932
|
+
| `basalt-ui/charts`: `defineSeries` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
933
|
+
| `basalt-ui/charts`: `groupTokens` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
934
|
+
| `basalt-ui/charts`: `ColorPair` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
935
|
+
| `basalt-ui/charts`: `SeriesMap` | `basalt-ui/tokens` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
936
|
+
| `basalt-ui/charts`: `SeriesKey` | `basalt-ui/tokens` or `basalt-ui` (a move: the name is unchanged) | `basalt-ui/charts` re-exports no tokens |
|
|
937
|
+
| `basalt-ui/charts`: `VxThemeProvider` | deleted; every chart paint is a `var(--vx-*)` reference | no theme context |
|
|
938
|
+
| `basalt-ui/charts`: `useVxTheme` | deleted; every chart paint is a `var(--vx-*)` reference | no theme context |
|
|
939
|
+
| `basalt-ui/charts`: `VxTheme` | deleted; every chart paint is a `var(--vx-*)` reference | no theme context |
|
|
940
|
+
|
|
941
|
+
### Subpaths, peers and gates (W3 gates)
|
|
942
|
+
|
|
943
|
+
| 1.41 import | 2.0 | Reason |
|
|
944
|
+
| ---------------------------------------------- | ---------------------------- | ----------------------------------------------------------------------------------- |
|
|
945
|
+
| `basalt-ui/agent-chat` | `basalt-ui/agent` | the chat UI folds into `./agent`; `motion` is subpath-required there |
|
|
946
|
+
| `basalt-ui/notifications` | `basalt-ui/commands` | no new peer: `BasaltProvider` mounts `Notifications`, `ModalsProvider`, `Spotlight` |
|
|
947
|
+
| `basalt-ui/router-tanstack` (nav half) | `basalt-ui` | nav lives in the root barrel |
|
|
948
|
+
| `basalt-ui/router-tanstack` (store half) | `basalt-ui/state` | stores live with `field` and the search store |
|
|
949
|
+
| `basalt-ui/data/table` | `basalt-ui/table` | renamed; `@tanstack/react-table` is subpath-required |
|
|
950
|
+
| `basalt-ui/data/virtual` | deleted | 0 imports across the fleet |
|
|
951
|
+
| `basalt-ui/guard` | deleted | CLI-internal |
|
|
952
|
+
| `basalt-ui/theme-lab` | deleted | provider-mounted in dev |
|
|
953
|
+
| `basalt-ui/tokens.css` | `basalt-ui tokens:css` (CLI) | weatherorb 1.30 and rollhook 1.36 only |
|
|
954
|
+
| `basalt-ui/llms.txt`, `basalt-ui/package.json` | deleted from `exports` | 0 imports; both files stay in the tarball |
|
|
955
|
+
|
|
956
|
+
Peers: `react`, `react-dom`, `@mantine/{core,hooks,modals,notifications,spotlight}`,
|
|
957
|
+
`@tanstack/{react-router,react-query}` and the three `@fontsource-variable/*` are now **required**
|
|
958
|
+
(no longer `optional`). `@ai-sdk/provider` (`./agent`) and `dayjs` (`./controls-dates`) are new
|
|
959
|
+
optional, subpath-required peers.
|
|
960
|
+
|
|
961
|
+
### Provider and wiring
|
|
962
|
+
|
|
963
|
+
| Old import | New / deleted | Why |
|
|
964
|
+
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
|
|
965
|
+
| `BasaltProvider` `children`, `onError`, `connectivity` props | `router` (required), `telemetry?`, `fallback?`; `theme` defaults to `createBasaltTheme()` | the provider mounts the router and every overlay (V2-SPEC § 2) |
|
|
966
|
+
| `createBasaltQueryClient` (`basalt-ui`) | `createBasaltRouter({ routeTree, context?, query? })` | one QueryClient per router, 1.x defaults kept, `query` merges over them |
|
|
967
|
+
| `BasaltErrorBoundary`, `BasaltErrorBoundaryProps` | deleted: `BasaltProvider fallback` + telemetry `render.error`; routes get `defaultErrorComponent` | the provider mounts the root boundary |
|
|
968
|
+
| `BasaltErrorContext` | `BasaltEvent` (type) | `onError` is replaced by the `telemetry` seam (V2-SPEC § 7) |
|
|
969
|
+
| `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 |
|
|
970
|
+
| `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 |
|
|
971
|
+
| `ConnectivityProvider`, `ConnectivityIndicator`, `useConnectivity` and their types | deleted | no consumer; the auto-mount is gone |
|
|
972
|
+
| `toErrorMessage`, `errorStatus` (`basalt-ui`) | deleted | no consumer outside the playground |
|
|
973
|
+
| `queryClient` seed `agent/templates/query-client.ts.tpl` | deleted; `__root.tpl` seeds `createRootRouteWithContext<BasaltRouterContext>()` | the router owns the client |
|
|
974
|
+
| `@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 |
|
|
975
|
+
|
|
976
|
+
### Router bridge (`basalt-ui/router-tanstack`)
|
|
977
|
+
|
|
978
|
+
| Old import | New / deleted | Why |
|
|
979
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
|
|
980
|
+
| `defineNav`, `navGroup`, `navTarget`, `flattenNav`, `useBasaltNav`, `NavItemId` | move to `basalt-ui` | `./router-tanstack` folds into `.` |
|
|
981
|
+
| `createSearchStore` | `basalt-ui/state` | the store half folds into `./state` |
|
|
982
|
+
| `field` and the 20 `Field`/`Range*`/`Search*` types re-exported here | `basalt-ui/state` (same names) | one import path per symbol |
|
|
983
|
+
| `defineNav(config)` without the `Register` augmentation | compile error: the parameter becomes `'basalt: declare Register { router }'` | the definition validated nothing (V2-SPEC § 3) |
|
|
984
|
+
| `useRouterBreadcrumbs`, `BasaltBreadcrumb`, `BasaltNav` | deleted | shell-internal / unnamed |
|
|
985
|
+
| `NavItemMeta`, `NavGroupMeta`, `AnyNavItem`, `AnyNavGroup`, `AnyNavLink`, `FlatNavItem`, `NavConfig`, `NavGroupId`, `NavTabId`, `NavIndex`, `UseNavOptions`, `NavBinding`, `NavAnchor`, `NavAnchorProps`, `NavMobilePlacement` | deleted | no consumer names them; derive with `ComponentProps` / `Parameters` |
|
|
986
|
+
| `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) |
|
|
987
|
+
|
|
84
988
|
## Unreleased
|
|
85
989
|
|
|
86
990
|
_Nothing yet. Author the next section under this heading as `## Unreleased — <title>`; the
|
|
87
991
|
release renames it and opens a new one here._
|
|
88
992
|
|
|
993
|
+
## 2.0.0
|
|
994
|
+
|
|
995
|
+
_Nothing to migrate in this release._
|
|
996
|
+
|
|
997
|
+
## 1.41.0 — the managed block moves to AGENTS.md
|
|
998
|
+
|
|
999
|
+
**Changed: `init` and `sync` splice the `<!-- basalt:begin … -->` block into `AGENTS.md`, not
|
|
1000
|
+
`CLAUDE.md`.** Claude Code loads a repo-root `AGENTS.md` directly, but any `CLAUDE.md` in or above
|
|
1001
|
+
the working directory suppresses it — so the block can no longer be the reason a `CLAUDE.md` exists.
|
|
1002
|
+
The shipped template is renamed `agent/templates/AGENTS-block.md.tpl`, and the manifest key moves
|
|
1003
|
+
from `CLAUDE.md` to `AGENTS.md`.
|
|
1004
|
+
|
|
1005
|
+
**Migration is automatic — run `basalt-ui sync` once.** If `CLAUDE.md` carries a basalt block:
|
|
1006
|
+
|
|
1007
|
+
- the block is cut out of `CLAUDE.md` and spliced into `AGENTS.md` (created if missing);
|
|
1008
|
+
- a `CLAUDE.md` left empty, or holding only `@AGENTS.md`, is deleted; anything else in it is
|
|
1009
|
+
yours and stays — move it into `AGENTS.md` and delete the file, or Claude Code keeps loading
|
|
1010
|
+
`CLAUDE.md` instead of `AGENTS.md`;
|
|
1011
|
+
- a hand-edited block is carried over as it is and treated as drift (skipped, reported;
|
|
1012
|
+
`sync --force` restores the shipped text) — the same rule every other managed unit follows;
|
|
1013
|
+
- `sync --check` exits 1 until the move has happened, then 0;
|
|
1014
|
+
- nothing is discarded silently: if `AGENTS.md` already has a block that differs from the one in
|
|
1015
|
+
`CLAUDE.md`, or either file has duplicate or unterminated markers, `sync` and `sync --check` exit 1
|
|
1016
|
+
naming the file, and both files stay untouched until you resolve it by hand.
|
|
1017
|
+
|
|
1018
|
+
`doctor` now warns (never fails) when a project-root `CLAUDE.md` does not import `@AGENTS.md` — it
|
|
1019
|
+
suppresses `AGENTS.md` — or still carries a basalt block.
|
|
1020
|
+
|
|
89
1021
|
## 1.40.3
|
|
90
1022
|
|
|
91
1023
|
_Nothing to migrate in this release._
|
|
@@ -877,7 +1809,7 @@ claim to have already done this was false. **Consumer-visible consequence:** the
|
|
|
877
1809
|
an installed tarball carries its own version number. If it says `Unreleased`, file it.
|
|
878
1810
|
|
|
879
1811
|
**§ 1.30.0 § Guards carries a corrected number**, restated here because a published measurement
|
|
880
|
-
moved:
|
|
1812
|
+
moved: weatherorb is 5 `control-outside-home` incumbents, not 0, and the fleet total is 34, not 29 — the
|
|
881
1813
|
zero was a failed `npx --no-install oxlint` invocation read as "no findings". The four promotions to
|
|
882
1814
|
`error` are unaffected and stand as shipped; only the extended C1 pair's count changed.
|
|
883
1815
|
|
|
@@ -1073,23 +2005,23 @@ That measurement was taken 2026-09-09, with all seven consumers freshly migrated
|
|
|
1073
2005
|
basalt built from `master`, by running `npx oxlint .` in each repo and counting by rule id — a
|
|
1074
2006
|
method that failed open in one of them, see the correction under the table:
|
|
1075
2007
|
|
|
1076
|
-
| Rule | argo | image-gen | image-share | rb | linewatch |
|
|
1077
|
-
| ----------------------------------------------------------------- | ---- | --------- | ----------- | --- | --------- |
|
|
1078
|
-
| `basalt/provider-above-router` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1079
|
-
| `basalt/forms-field-key` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1080
|
-
| `basalt/query-fn-unwrap` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1081
|
-
| `basalt/bound-control-outside-home` | 0 | 0 | 0 | 0 | 0 | 0
|
|
1082
|
-
| `basalt/control-outside-home` + `raw-selection-control` (one law) | 2 | 10 | 6 | 8 | 0 | 5
|
|
2008
|
+
| Rule | argo | image-gen | image-share | rb | linewatch | weatherorb | obsidian | playground | Verdict |
|
|
2009
|
+
| ----------------------------------------------------------------- | ---- | --------- | ----------- | --- | --------- | ---------- | -------- | ---------- | ------------ |
|
|
2010
|
+
| `basalt/provider-above-router` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2011
|
+
| `basalt/forms-field-key` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2012
|
+
| `basalt/query-fn-unwrap` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2013
|
+
| `basalt/bound-control-outside-home` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | → `error` |
|
|
2014
|
+
| `basalt/control-outside-home` + `raw-selection-control` (one law) | 2 | 10 | 6 | 8 | 0 | 5 | 0 | 3 | stays `warn` |
|
|
1083
2015
|
|
|
1084
|
-
**Corrected at 1.30.1:
|
|
1085
|
-
1.30.0 was an artifact:
|
|
2016
|
+
**Corrected at 1.30.1: weatherorb is 5, not 0 — the fleet total is 34, not 29.** The zero published at
|
|
2017
|
+
1.30.0 was an artifact: weatherorb has no local oxlint binary, so `npx --no-install oxlint` failed there
|
|
1086
2018
|
with a package error and the counting pipeline read that failure as "no findings" — the same
|
|
1087
2019
|
silent-zero shape this file already warns about for `check-theme`'s fabricated roots, arrived at from the other side. The
|
|
1088
2020
|
five are real (`display-controls.tsx:258`, `stack-editor.tsx:301/323/337`, `forecast-tab.tsx:151`),
|
|
1089
2021
|
and re-measuring with a guaranteed-present binary is what found them. **The DECISION is unchanged**:
|
|
1090
|
-
all four promoted rules re-measured at zero in every repo including
|
|
2022
|
+
all four promoted rules re-measured at zero in every repo including weatherorb, so those four promotions
|
|
1091
2023
|
stand exactly as shipped — only the extended pair's count moved. A count taken through a repo's own
|
|
1092
|
-
`lint` script rather than a bare oxlint invocation is not a measurement;
|
|
2024
|
+
`lint` script rather than a bare oxlint invocation is not a measurement; weatherorb's `lint` is
|
|
1093
2025
|
`basalt-ui check-theme` alone and never runs oxlint at all.
|
|
1094
2026
|
|
|
1095
2027
|
**The four promotions cost nothing to take.** They were measured at zero, in every consumer, before
|
|
@@ -1146,7 +2078,7 @@ A patch, one export's TYPE only. Nothing renamed, nothing removed.
|
|
|
1146
2078
|
- **`unwrap` strips `null`/`undefined` from a union-typed Eden response again** — the single
|
|
1147
2079
|
conditional signature 1.29.1 landed still inferred `TData` off `Envelope<infer TData>`, and an Eden
|
|
1148
2080
|
Treaty response is a UNION of envelopes (`{ data: T; error: null } | { data: null; error:
|
|
1149
|
-
EdenFetchError }`), not one envelope with a nullable `data`; inferring through the wrapper type
|
|
2081
|
+
EdenFetchError }`), not one envelope with a nullable `data`; inferring through the wrapper type
|
|
1150
2082
|
read `T | null` at every Eden call site. `UnwrapResult` now infers the raw `data` field and wraps
|
|
1151
2083
|
it in `NonNullable`, which distributes over a union `R` — `unwrap(await api.x.get())` resolves to
|
|
1152
2084
|
`T` again, with no `| null`. Runtime unchanged.
|
|
@@ -1220,7 +2152,7 @@ annotation and rationale):
|
|
|
1220
2152
|
- `QueryStateVariant` and the `variant` prop on `QueryState`/`LoadingState`/`ErrorState`/`EmptyState`
|
|
1221
2153
|
— use `QueryStateTier` and `tier`. **Identical values, identical branch behaviour**, verified by
|
|
1222
2154
|
diffing `src/dashboard/query-state.tsx` at `v1.25.0` against 1.29.2: the union is `'page' |
|
|
1223
|
-
'section'` in both, and `'section'` takes the same bare/compact branch in both. A pure rename, so a
|
|
2155
|
+
'section'` in both, and `'section'` takes the same bare/compact branch in both. A pure rename, so a
|
|
1224
2156
|
`variant="section"` becomes `tier="section"` with nothing to eyeball afterwards.
|
|
1225
2157
|
`QueryStateTier`'s own JSDoc says "`'section'` meant two different things across the two
|
|
1226
2158
|
spellings" — that is the NAMING rationale for picking `tier` (audit B #19), not a behaviour
|
|
@@ -1262,7 +2194,7 @@ annotation and rationale):
|
|
|
1262
2194
|
|
|
1263
2195
|
**On notice for 1.30.0** — a public export with exactly one consumer (the playground) as of this
|
|
1264
2196
|
audit. Adopt-or-delete: gains a real consumer by 1.30.0 or is removed. Not a promise either way;
|
|
1265
|
-
|
|
2197
|
+
say so in an issue if you pick one up.
|
|
1266
2198
|
|
|
1267
2199
|
- **Threads/agent-chat composite tier**: `ThreadWorkspace`, `ThreadFeed`, `ThreadFeedRow`,
|
|
1268
2200
|
`ThreadDetailPanel`, `ThreadOutcomeCard`, `ThreadsStoreAdapter`, `createThreadsStore`,
|
|
@@ -1471,7 +2403,7 @@ What is new, one line each — nothing here renames or removes anything:
|
|
|
1471
2403
|
FLOORS to 0.75×, shrinks the crosshair dot, narrows the tooltip 140 → 110, and caps the legend at
|
|
1472
2404
|
two entries with a `+N more` rollup. **This moves rendering, but only below 480px of measured
|
|
1473
2405
|
width** — nothing at desktop width changes. Opt back out per chart with an explicit
|
|
1474
|
-
`legend.maxRows` / `margin` override. `docs/CHARTS-SPEC.md` §8.
|
|
2406
|
+
`legend.maxRows` / `margin` override. `docs/archive/CHARTS-SPEC.md` §8.
|
|
1475
2407
|
- **`xLabelRotate` accepts `0`**, and left UNSET now auto-rotates to 45 at the phone tier when the
|
|
1476
2408
|
measured labels cannot fit three ticks side by side. `0` is the documented opt-out. Also on every
|
|
1477
2409
|
rotated axis, at every width: the LEFT margin now clears the rotated label's leftward projection
|
|
@@ -1480,7 +2412,7 @@ What is new, one line each — nothing here renames or removes anything:
|
|
|
1480
2412
|
§1's measured-gutter law, so a rotated or a densely-labelled axis will lay out slightly
|
|
1481
2413
|
differently; an explicit `margin` / `xTicks` / `xTickValues` still wins.
|
|
1482
2414
|
- **`SeriesStyle.curve`** (`basalt-ui/charts`) — `'monotone' | 'linear' | 'step' | 'stepAfter' |
|
|
1483
|
-
'stepBefore'`, plus the `curveFor` mapper and the newly re-exported `curveStep`/`curveStepBefore`.
|
|
2415
|
+
'stepBefore'`, plus the `curveFor` mapper and the newly re-exported `curveStep`/`curveStepBefore`.
|
|
1484
2416
|
Default `'monotone'`, which is what every kind hard-coded, so an omitted `curve` moves nothing.
|
|
1485
2417
|
Honoured by `MultiLine`, `DualPanel`, `ZonedLine`, `StackedArea` and `BarsLine.curve`. Two of
|
|
1486
2418
|
those read ONE curve for a whole shape rather than one per series: `ZonedLine` takes the PRIMARY
|
|
@@ -1580,7 +2512,7 @@ What is new, one line each — nothing here renames or removes anything:
|
|
|
1580
2512
|
`QueryStateTier` is the new type name; `QueryStateVariant` stayed exported as an alias through
|
|
1581
2513
|
1.28.x and is **removed in 1.29.0** together with the `variant` prop (see § Consolidation).
|
|
1582
2514
|
- **`WidgetHeader` and `QueryState` gained slot classes** — `classNames={{ root, title, metric,
|
|
1583
|
-
icon }}` on the first, `classNames={{ root }}` on the second (the branch that is live). Additive.
|
|
2515
|
+
icon }}` on the first, `classNames={{ root }}` on the second (the branch that is live). Additive.
|
|
1584
2516
|
`Section` now OMITS `classNames` from the `WidgetHeaderProps` it re-publishes, so its slot union
|
|
1585
2517
|
stays exactly `root | header | body` — a `<Section classNames={{ metric: … }}>` that used to
|
|
1586
2518
|
type-check (and do nothing) is now a compile error. Reach the header's own slots on a
|
|
@@ -1637,10 +2569,10 @@ icon }}` on the first, `classNames={{ root }}` on the second (the branch that is
|
|
|
1637
2569
|
- **`overlays.confirm` / `overlays.confirmDelete`** (`basalt-ui/commands`) — the two-button dialog
|
|
1638
2570
|
every consumer was registering as a `defineOverlays` entry with its own button pair, now
|
|
1639
2571
|
registry-free: `confirm({ title, body?, confirmLabel?, cancelLabel?, danger?, onConfirm,
|
|
1640
|
-
onCancel? })` resolves `true`/`false` and fires exactly one callback, whichever exit the user takes
|
|
2572
|
+
onCancel? })` resolves `true`/`false` and fires exactly one callback, whichever exit the user takes
|
|
1641
2573
|
(cancel, escape, click-outside and the close button all count as `false`). `danger` paints the
|
|
1642
2574
|
confirm button in the theme's derived destructive family. `confirmDelete({ subject, count?,
|
|
1643
|
-
onConfirm })` is the counted one-liner over it ("Delete 3 items?"). Both REJECT with a named
|
|
2575
|
+
onConfirm })` is the counted one-liner over it ("Delete 3 items?"). Both REJECT with a named
|
|
1644
2576
|
`[basalt] overlays.confirm: …` error when the `@mantine/modals` peer is absent, or when no
|
|
1645
2577
|
`ModalsProvider` is live — previously either returned a promise nothing would ever settle, because
|
|
1646
2578
|
the imperative API is a window event bus with nothing subscribed. `@mantine/modals` stays lazily
|
|
@@ -1711,7 +2643,7 @@ onConfirm })` is the counted one-liner over it ("Delete 3 items?"). Both REJECT
|
|
|
1711
2643
|
- **Still subpath-only.** The root barrel re-exports none of this, so a consumer without
|
|
1712
2644
|
`@mantine/form` is unaffected by importing `basalt-ui`.
|
|
1713
2645
|
- **Mobile "More" sheet rows now 40px with the sidebar's own insets** — `--vx-space-mobile-nav-row-
|
|
1714
|
-
height` 44 → 40 (WCAG 2.5.5 AA touch floor, not the AAA figure the bar's own `mobileNavBarHeight`
|
|
2646
|
+
height` 44 → 40 (WCAG 2.5.5 AA touch floor, not the AAA figure the bar's own `mobileNavBarHeight`
|
|
1715
2647
|
still holds to). The rows themselves no longer force a bespoke touch padding over the theme's
|
|
1716
2648
|
`NavLink` styling; they now render with the SAME `--vx-space-row-inset-y`/`-x` padding and
|
|
1717
2649
|
`VX.text.md` the desktop sidebar row does. A nested (child) row gains the sidebar's own child
|
|
@@ -2703,7 +3635,7 @@ homes rather than shipped repo-wide. `basalt/shadow-basalt-export` gains a renam
|
|
|
2703
3635
|
→ `StatCard`), so a fork that RENAMED the export is visible too. It stays a permanent advisory
|
|
2704
3636
|
`warn`.
|
|
2705
3637
|
|
|
2706
|
-
**`profile: 'tokens-only'` now disables
|
|
3638
|
+
**`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).
|
|
2707
3639
|
|
|
2708
3640
|
**`SURFACES` gains `pluginRules`** (`src/surfaces.ts`, internal — not a published subpath): every
|
|
2709
3641
|
doctrine surface names the oxlint rules that enforce it, every registered rule maps to exactly one
|
|
@@ -2796,7 +3728,7 @@ exact route is never visited still lights on a descendant route.
|
|
|
2796
3728
|
`$1294.9k ▲18.9%` rendered as `$129… ▲18.9%`, and truncating the number to protect the delta about
|
|
2797
3729
|
that number is the wrong way round. A short value still keeps its badge on the line.
|
|
2798
3730
|
- **`StatCard`'s `actions` slot is the 24px tier now, not 30px.** `CtlSlot` gained `tier?: 'ctl' |
|
|
2799
|
-
'widget'` (default `'ctl'`, so no existing call site changes), and `StatCard` mounts its header slot
|
|
3731
|
+
'widget'` (default `'ctl'`, so no existing call site changes), and `StatCard` mounts its header slot
|
|
2800
3732
|
at `'widget'` — the `size="icon"` step `--vx-space-control-height-widget` has always named as
|
|
2801
3733
|
"`WidgetHeader tier="widget"` actions". A raw `ActionIcon` there rendered at the 30px `ctl` tier
|
|
2802
3734
|
inside a 28px header row and grew it to 30, so a KPI card WITH a kebab sat 2px below the card
|
|
@@ -3078,7 +4010,7 @@ The shared choreography lives in an internal `useBandPlot` — **not exported**,
|
|
|
3078
4010
|
the kinds' contract with each other, not a public seam.
|
|
3079
4011
|
|
|
3080
4012
|
**`MirroredBars` reverses a recorded decision, and the recorded reason for it was wrong.** The old
|
|
3081
|
-
entry in `docs/CHARTS-SPEC.md` read _"no two-bar-pane kind with independent per-pane scales"_, with
|
|
4013
|
+
entry in `docs/archive/CHARTS-SPEC.md` read _"no two-bar-pane kind with independent per-pane scales"_, with
|
|
3082
4014
|
_"a second consumer asks"_ as its trigger. That trigger never fired. Round 4 framed the blocker as
|
|
3083
4015
|
independent SCALES; `DualPanel` already had `topYDomain`/`bottomYDomain`, so that was never it. The
|
|
3084
4016
|
real blockers are that `DualPanel`'s top pane is a LINE pane and its bottom takes one SIGNED
|
|
@@ -3388,7 +4320,7 @@ with the whole lint half off).
|
|
|
3388
4320
|
|
|
3389
4321
|
| Surface | Note |
|
|
3390
4322
|
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
3391
|
-
| `basalt.profile: 'tokens-only'` / `--tokens-only` | disables the
|
|
4323
|
+
| `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 |
|
|
3392
4324
|
| `basalt.include: [...]` | scan a named file outside `roots` — and the only route to a `.json`, which is never blanket-scanned |
|
|
3393
4325
|
| `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 |
|
|
3394
4326
|
| `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 |
|