basalt-ui 1.27.0 → 1.29.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 +28 -35
- package/CHANGELOG.md +72 -0
- package/MIGRATING.md +759 -22
- package/README.md +56 -69
- package/agent/rules/basalt-batteries.md +60 -168
- package/agent/rules/basalt-charts.md +56 -75
- package/agent/rules/basalt-controls.md +81 -87
- package/agent/rules/basalt-mantine.md +64 -98
- package/agent/rules/basalt-state.md +42 -60
- package/agent/rules/basalt-tokens.md +46 -67
- package/agent/skills/basalt-app/SKILL.md +2 -0
- package/agent/templates/CLAUDE-block.md.tpl +14 -14
- package/configs/oxlint-plugin.js +964 -33
- package/configs/oxlint-plugin.test.ts +902 -2
- package/configs/oxlint.json +6 -0
- package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
- package/dist/agent/ai-sdk-transport.js +7 -4
- package/dist/agent/coalesce.d.ts.map +1 -1
- package/dist/agent/coalesce.js +2 -1
- package/dist/agent/merge.d.ts.map +1 -1
- package/dist/agent/merge.js +2 -1
- package/dist/agent/part-list.d.ts.map +1 -1
- package/dist/agent/part-list.js +2 -0
- package/dist/agent/stick-to-bottom.d.ts +3 -6
- package/dist/agent/stick-to-bottom.d.ts.map +1 -1
- package/dist/agent/stick-to-bottom.js +6 -3
- package/dist/agent/transport.d.ts +13 -2
- package/dist/agent/transport.d.ts.map +1 -1
- package/dist/agent/use-agent-thread-runs.d.ts +12 -1
- package/dist/agent/use-agent-thread-runs.d.ts.map +1 -1
- package/dist/agent/use-agent-thread-runs.js +20 -6
- package/dist/agent-chat/composer.d.ts +6 -2
- package/dist/agent-chat/composer.d.ts.map +1 -1
- package/dist/agent-chat/composer.js +49 -33
- package/dist/agent-chat/index.d.ts +1 -1
- package/dist/agent-chat/index.d.ts.map +1 -1
- package/dist/agent-chat/relative-time.d.ts +0 -9
- package/dist/agent-chat/relative-time.d.ts.map +1 -1
- package/dist/agent-chat/relative-time.js +2 -1
- package/dist/agent-chat/thread-detail-panel.d.ts +3 -2
- package/dist/agent-chat/thread-detail-panel.d.ts.map +1 -1
- package/dist/agent-chat/thread-detail-panel.js +9 -6
- package/dist/agent-chat/thread-feed-row.d.ts +32 -6
- package/dist/agent-chat/thread-feed-row.d.ts.map +1 -1
- package/dist/agent-chat/thread-feed-row.js +61 -26
- package/dist/agent-chat/thread-feed.d.ts +13 -2
- package/dist/agent-chat/thread-feed.d.ts.map +1 -1
- package/dist/agent-chat/thread-feed.js +16 -7
- package/dist/agent-chat/thread-message.d.ts +4 -3
- package/dist/agent-chat/thread-message.d.ts.map +1 -1
- package/dist/agent-chat/thread-message.js +70 -31
- package/dist/agent-chat/thread-outcome-card.d.ts +3 -2
- package/dist/agent-chat/thread-outcome-card.d.ts.map +1 -1
- package/dist/agent-chat/thread-outcome-card.js +9 -2
- package/dist/agent-chat/thread-workspace.d.ts +7 -2
- package/dist/agent-chat/thread-workspace.d.ts.map +1 -1
- package/dist/agent-chat/thread-workspace.js +62 -29
- package/dist/agent-chat/tool-chip.d.ts +3 -2
- package/dist/agent-chat/tool-chip.d.ts.map +1 -1
- package/dist/agent-chat/tool-chip.js +7 -2
- package/dist/agent-chat/virtualize.d.ts +39 -0
- package/dist/agent-chat/virtualize.d.ts.map +1 -1
- package/dist/agent-chat/virtualize.js +15 -0
- package/dist/charts/hooks/useBandPlot.d.ts.map +1 -1
- package/dist/charts/hooks/useBandPlot.js +15 -8
- package/dist/charts/index.d.ts +11 -10
- package/dist/charts/index.d.ts.map +1 -1
- package/dist/charts/index.js +53 -9
- package/dist/charts/kinds/BandStrip.d.ts +10 -7
- package/dist/charts/kinds/BandStrip.d.ts.map +1 -1
- package/dist/charts/kinds/BandStrip.js +12 -7
- package/dist/charts/kinds/Bars.d.ts +13 -9
- package/dist/charts/kinds/Bars.d.ts.map +1 -1
- package/dist/charts/kinds/Bars.js +37 -11
- package/dist/charts/kinds/Donut.d.ts +6 -5
- package/dist/charts/kinds/Donut.d.ts.map +1 -1
- package/dist/charts/kinds/Donut.js +19 -2
- package/dist/charts/kinds/DualPanel.d.ts +9 -6
- package/dist/charts/kinds/DualPanel.d.ts.map +1 -1
- package/dist/charts/kinds/DualPanel.js +37 -9
- package/dist/charts/kinds/Heatmap.d.ts +10 -6
- package/dist/charts/kinds/Heatmap.d.ts.map +1 -1
- package/dist/charts/kinds/Heatmap.js +58 -31
- package/dist/charts/kinds/MirroredBars.d.ts +6 -5
- package/dist/charts/kinds/MirroredBars.d.ts.map +1 -1
- package/dist/charts/kinds/MirroredBars.js +9 -2
- package/dist/charts/kinds/MultiLine.d.ts +11 -6
- package/dist/charts/kinds/MultiLine.d.ts.map +1 -1
- package/dist/charts/kinds/MultiLine.js +24 -15
- package/dist/charts/kinds/StackedArea.d.ts +18 -8
- package/dist/charts/kinds/StackedArea.d.ts.map +1 -1
- package/dist/charts/kinds/StackedArea.js +29 -4
- package/dist/charts/kinds/ZonedLine.d.ts +13 -11
- package/dist/charts/kinds/ZonedLine.d.ts.map +1 -1
- package/dist/charts/kinds/ZonedLine.js +33 -23
- package/dist/charts/layout/auto-margin.d.ts +65 -8
- package/dist/charts/layout/auto-margin.d.ts.map +1 -1
- package/dist/charts/layout/auto-margin.js +45 -10
- package/dist/charts/layout/log-ticks.d.ts +27 -0
- package/dist/charts/layout/log-ticks.d.ts.map +1 -0
- package/dist/charts/layout/log-ticks.js +42 -0
- package/dist/charts/primitives/Axes.d.ts +32 -4
- package/dist/charts/primitives/Axes.d.ts.map +1 -1
- package/dist/charts/primitives/Axes.js +49 -7
- package/dist/charts/primitives/CartesianChart.d.ts +45 -7
- package/dist/charts/primitives/CartesianChart.d.ts.map +1 -1
- package/dist/charts/primitives/CartesianChart.js +86 -28
- package/dist/charts/primitives/ChartCard.d.ts +45 -4
- package/dist/charts/primitives/ChartCard.d.ts.map +1 -1
- package/dist/charts/primitives/ChartCard.js +70 -21
- package/dist/charts/primitives/ChartFrame.d.ts +30 -4
- package/dist/charts/primitives/ChartFrame.d.ts.map +1 -1
- package/dist/charts/primitives/ChartFrame.js +52 -15
- package/dist/charts/primitives/ChartLegend.d.ts +13 -2
- package/dist/charts/primitives/ChartLegend.d.ts.map +1 -1
- package/dist/charts/primitives/ChartLegend.js +33 -13
- package/dist/charts/primitives/ChartPending.d.ts +85 -6
- package/dist/charts/primitives/ChartPending.d.ts.map +1 -1
- package/dist/charts/primitives/ChartPending.js +100 -6
- package/dist/charts/primitives/ChartTooltip.d.ts +7 -0
- package/dist/charts/primitives/ChartTooltip.d.ts.map +1 -1
- package/dist/charts/primitives/ChartTooltip.js +18 -5
- package/dist/charts/primitives/Crosshair.d.ts +3 -0
- package/dist/charts/primitives/Crosshair.d.ts.map +1 -1
- package/dist/charts/primitives/Crosshair.js +3 -1
- package/dist/charts/primitives/chart-frame-layout.d.ts +95 -0
- package/dist/charts/primitives/chart-frame-layout.d.ts.map +1 -0
- package/dist/charts/primitives/chart-frame-layout.js +89 -0
- package/dist/charts/primitives/chart-tier.d.ts +16 -0
- package/dist/charts/primitives/chart-tier.d.ts.map +1 -0
- package/dist/charts/primitives/chart-tier.js +20 -0
- package/dist/charts/series.d.ts +55 -1
- package/dist/charts/series.d.ts.map +1 -1
- package/dist/charts/series.js +27 -1
- package/dist/charts/sparklines/BarSparkline.d.ts +3 -3
- package/dist/charts/sparklines/BarSparkline.d.ts.map +1 -1
- package/dist/charts/sparklines/BarSparkline.js +9 -3
- package/dist/charts/sparklines/LineSparkline.d.ts +3 -3
- package/dist/charts/sparklines/LineSparkline.d.ts.map +1 -1
- package/dist/charts/sparklines/LineSparkline.js +15 -3
- package/dist/charts/sparklines/index.d.ts +2 -2
- package/dist/charts/sparklines/index.d.ts.map +1 -1
- package/dist/charts/utils/format.d.ts +7 -4
- package/dist/charts/utils/format.d.ts.map +1 -1
- package/dist/charts/utils/format.js +17 -24
- package/dist/charts/utils/ticks.d.ts +81 -2
- package/dist/charts/utils/ticks.d.ts.map +1 -1
- package/dist/charts/utils/ticks.js +54 -4
- package/dist/cli/audit-allows.d.ts +24 -0
- package/dist/cli/audit-allows.d.ts.map +1 -0
- package/dist/cli/audit-allows.js +240 -0
- package/dist/cli/check-theme.d.ts +10 -0
- package/dist/cli/check-theme.d.ts.map +1 -0
- package/dist/cli/check-theme.js +139 -0
- package/dist/cli/doctor.d.ts +47 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +197 -0
- package/dist/cli/guard-hook.d.ts +9 -0
- package/dist/cli/guard-hook.d.ts.map +1 -0
- package/dist/cli/guard-hook.js +93 -0
- package/dist/cli/help.d.ts +9 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +53 -0
- package/dist/cli/index.d.ts +360 -270
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +85 -1901
- package/dist/cli/init.d.ts +4 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +165 -0
- package/dist/cli/sync.d.ts +43 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/sync.js +206 -0
- package/dist/cli/tokens-css.d.ts +51 -0
- package/dist/cli/tokens-css.d.ts.map +1 -0
- package/dist/cli/tokens-css.js +165 -0
- package/dist/commands/ShortcutsHelp.d.ts +3 -2
- package/dist/commands/ShortcutsHelp.d.ts.map +1 -1
- package/dist/commands/ShortcutsHelp.js +8 -2
- package/dist/commands/define-commands.d.ts.map +1 -1
- package/dist/commands/define-commands.js +2 -2
- package/dist/commands/define-overlays.d.ts +102 -0
- package/dist/commands/define-overlays.d.ts.map +1 -1
- package/dist/commands/define-overlays.js +102 -2
- package/dist/commands/index.d.ts +12 -2
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +9 -1
- package/dist/commands/overlays-mount.d.ts +16 -11
- package/dist/commands/overlays-mount.d.ts.map +1 -1
- package/dist/commands/overlays-mount.js +23 -14
- package/dist/commands/shell-bridge.d.ts +57 -0
- package/dist/commands/shell-bridge.d.ts.map +1 -0
- package/dist/commands/shell-bridge.js +32 -0
- package/dist/common/errors.d.ts +69 -0
- package/dist/common/errors.d.ts.map +1 -0
- package/dist/common/errors.js +64 -0
- package/dist/common/index.d.ts +17 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +35 -0
- package/dist/common/is-dev.d.ts +3 -0
- package/dist/common/is-dev.d.ts.map +1 -0
- package/dist/common/is-dev.js +6 -0
- package/dist/{motion/index.d.ts → common/motion.d.ts} +1 -1
- package/dist/common/motion.d.ts.map +1 -0
- package/dist/common/props.d.ts +63 -0
- package/dist/common/props.d.ts.map +1 -0
- package/dist/common/props.js +6 -0
- package/dist/common/query-state-like.d.ts +43 -0
- package/dist/common/query-state-like.d.ts.map +1 -0
- package/dist/common/query-state-like.js +20 -0
- package/dist/common/refs.d.ts +29 -0
- package/dist/common/refs.d.ts.map +1 -0
- package/dist/common/refs.js +29 -0
- package/dist/common/scroll-parent.d.ts +23 -0
- package/dist/common/scroll-parent.d.ts.map +1 -0
- package/dist/common/scroll-parent.js +21 -0
- package/dist/common/validate.d.ts +38 -0
- package/dist/common/validate.d.ts.map +1 -0
- package/dist/common/validate.js +36 -0
- package/dist/content/article-layout.module.css +11 -4
- package/dist/content/callout.d.ts +8 -4
- package/dist/content/callout.d.ts.map +1 -1
- package/dist/content/callout.js +15 -8
- package/dist/content/guide.d.ts +5 -4
- package/dist/content/guide.d.ts.map +1 -1
- package/dist/content/guide.js +13 -4
- package/dist/content/heading-anchor.d.ts +24 -2
- package/dist/content/heading-anchor.d.ts.map +1 -1
- package/dist/content/heading-anchor.js +23 -9
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/markdown.d.ts +3 -4
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +3 -4
- package/dist/content/prose.module.css +9 -7
- package/dist/content/reading-progress.d.ts +10 -4
- package/dist/content/reading-progress.d.ts.map +1 -1
- package/dist/content/reading-progress.js +26 -10
- package/dist/content/slug.d.ts +4 -0
- package/dist/content/slug.d.ts.map +1 -1
- package/dist/content/toc.d.ts +11 -0
- package/dist/content/toc.d.ts.map +1 -1
- package/dist/content/toc.js +23 -10
- package/dist/controls/actions.d.ts +50 -7
- package/dist/controls/actions.d.ts.map +1 -1
- package/dist/controls/actions.js +39 -8
- package/dist/controls/compare-filter.d.ts +3 -2
- package/dist/controls/compare-filter.d.ts.map +1 -1
- package/dist/controls/compare-filter.js +17 -2
- package/dist/controls/control-group.d.ts +3 -3
- package/dist/controls/control-group.d.ts.map +1 -1
- package/dist/controls/control-group.js +9 -2
- package/dist/controls/controls.module.css +169 -186
- package/dist/controls/controls.module.css.d.ts +9 -11
- package/dist/controls/enum-filter.d.ts +3 -2
- package/dist/controls/enum-filter.d.ts.map +1 -1
- package/dist/controls/enum-filter.js +28 -13
- package/dist/controls/filter-context.d.ts +8 -4
- package/dist/controls/filter-context.d.ts.map +1 -1
- package/dist/controls/filter-pill.d.ts +3 -3
- package/dist/controls/filter-pill.d.ts.map +1 -1
- package/dist/controls/filter-pill.js +4 -1
- package/dist/controls/filter-set.d.ts +3 -2
- package/dist/controls/filter-set.d.ts.map +1 -1
- package/dist/controls/filter-set.js +66 -41
- package/dist/controls/filter-sheet.d.ts +20 -80
- package/dist/controls/filter-sheet.d.ts.map +1 -1
- package/dist/controls/filter-sheet.js +9 -95
- package/dist/controls/index.d.ts +2 -0
- package/dist/controls/index.d.ts.map +1 -1
- package/dist/controls/index.js +4 -0
- package/dist/controls/multi-select-filter.d.ts +18 -2
- package/dist/controls/multi-select-filter.d.ts.map +1 -1
- package/dist/controls/multi-select-filter.js +122 -20
- package/dist/controls/number-filter.d.ts +7 -5
- package/dist/controls/number-filter.d.ts.map +1 -1
- package/dist/controls/number-filter.js +40 -11
- package/dist/controls/panel-row.d.ts +132 -0
- package/dist/controls/panel-row.d.ts.map +1 -0
- package/dist/controls/panel-row.js +173 -0
- package/dist/controls/panel-row.module.css +86 -0
- package/dist/controls/panel-row.module.css.d.ts +13 -0
- package/dist/controls/range-filter.d.ts +2 -1
- package/dist/controls/range-filter.d.ts.map +1 -1
- package/dist/controls/range-filter.js +57 -35
- package/dist/controls/search-filter.d.ts +3 -2
- package/dist/controls/search-filter.d.ts.map +1 -1
- package/dist/controls/search-filter.js +25 -10
- package/dist/controls/select-filter.d.ts +2 -1
- package/dist/controls/select-filter.d.ts.map +1 -1
- package/dist/controls/select-filter.js +4 -0
- package/dist/controls/slider-control.d.ts +36 -0
- package/dist/controls/slider-control.d.ts.map +1 -0
- package/dist/controls/slider-control.js +64 -0
- package/dist/controls/sync-button.d.ts +3 -2
- package/dist/controls/sync-button.d.ts.map +1 -1
- package/dist/controls/sync-button.js +16 -3
- package/dist/controls/toggle-filter.d.ts +3 -2
- package/dist/controls/toggle-filter.d.ts.map +1 -1
- package/dist/controls/toggle-filter.js +28 -11
- package/dist/controls/view-tabs.d.ts +3 -2
- package/dist/controls/view-tabs.d.ts.map +1 -1
- package/dist/controls/view-tabs.js +43 -11
- package/dist/controls-dates/date-range-picker.d.ts +1 -1
- package/dist/controls-dates/date-range-picker.d.ts.map +1 -1
- package/dist/controls-dates/date-range-picker.js +6 -1
- package/dist/dashboard/delta-badge.d.ts +18 -6
- package/dist/dashboard/delta-badge.d.ts.map +1 -1
- package/dist/dashboard/delta-badge.js +33 -1
- package/dist/dashboard/empty-state.d.ts +8 -4
- package/dist/dashboard/empty-state.d.ts.map +1 -1
- package/dist/dashboard/empty-state.js +36 -6
- package/dist/dashboard/index.d.ts +9 -5
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +13 -1
- package/dist/dashboard/query-state.d.ts +39 -27
- package/dist/dashboard/query-state.d.ts.map +1 -1
- package/dist/dashboard/query-state.js +109 -58
- package/dist/dashboard/section.d.ts +58 -0
- package/dist/dashboard/section.d.ts.map +1 -0
- package/dist/dashboard/section.js +118 -0
- package/dist/{section → dashboard}/section.module.css +11 -0
- package/dist/dashboard/settings-section.d.ts +19 -9
- package/dist/dashboard/settings-section.d.ts.map +1 -1
- package/dist/dashboard/settings-section.js +75 -26
- package/dist/dashboard/stat-card.d.ts +44 -38
- package/dist/dashboard/stat-card.d.ts.map +1 -1
- package/dist/dashboard/stat-card.js +56 -43
- package/dist/dashboard/stat-card.module.css +46 -31
- package/dist/dashboard/stat-card.module.css.d.ts +1 -0
- package/dist/dashboard/stat-group.d.ts +41 -0
- package/dist/dashboard/stat-group.d.ts.map +1 -0
- package/dist/dashboard/stat-group.js +30 -0
- package/dist/dashboard/stat-group.module.css +66 -0
- package/dist/dashboard/stat-group.module.css.d.ts +8 -0
- package/dist/dashboard/widget-grid.d.ts +27 -0
- package/dist/dashboard/widget-grid.d.ts.map +1 -0
- package/dist/dashboard/widget-grid.js +41 -0
- package/dist/dashboard/widget-grid.module.css +53 -0
- package/dist/dashboard/widget-grid.module.css.d.ts +9 -0
- package/dist/dashboard/widget-header.d.ts +132 -0
- package/dist/dashboard/widget-header.d.ts.map +1 -0
- package/dist/{widget-header → dashboard}/widget-header.js +42 -27
- package/dist/{widget-header → dashboard}/widget-header.module.css +72 -7
- package/dist/data/data-table.d.ts +151 -12
- package/dist/data/data-table.d.ts.map +1 -1
- package/dist/data/data-table.js +385 -139
- package/dist/data/data-table.module.css +64 -0
- package/dist/data/data-table.module.css.d.ts +11 -0
- package/dist/data/query-branch.d.ts +28 -0
- package/dist/data/query-branch.d.ts.map +1 -0
- package/dist/data/query-branch.js +10 -0
- package/dist/data/table.d.ts +2 -2
- package/dist/data/table.d.ts.map +1 -1
- package/dist/data/table.js +2 -16
- package/dist/data/virtual-list.d.ts +65 -6
- package/dist/data/virtual-list.d.ts.map +1 -1
- package/dist/data/virtual-list.js +89 -38
- package/dist/data/virtual.d.ts +4 -4
- package/dist/data/virtual.d.ts.map +1 -1
- package/dist/dev-dock.d.ts +28 -0
- package/dist/dev-dock.d.ts.map +1 -0
- package/dist/dev-dock.js +85 -0
- package/dist/format/date.d.ts +62 -0
- package/dist/format/date.d.ts.map +1 -0
- package/dist/format/date.js +106 -0
- package/dist/format/index.d.ts +39 -0
- package/dist/format/index.d.ts.map +1 -0
- package/dist/format/index.js +54 -0
- package/dist/format/measure.d.ts +15 -0
- package/dist/format/measure.d.ts.map +1 -0
- package/dist/format/measure.js +16 -0
- package/dist/format/number.d.ts +69 -0
- package/dist/format/number.d.ts.map +1 -0
- package/dist/format/number.js +62 -0
- package/dist/format/shared.d.ts +27 -0
- package/dist/format/shared.d.ts.map +1 -0
- package/dist/format/shared.js +29 -0
- package/dist/forms/FormErrorSummary.d.ts +4 -3
- package/dist/forms/FormErrorSummary.d.ts.map +1 -1
- package/dist/forms/FormErrorSummary.js +6 -4
- package/dist/forms/create-form.d.ts +2 -2
- package/dist/forms/field.d.ts +33 -9
- package/dist/forms/field.d.ts.map +1 -1
- package/dist/forms/field.js +7 -6
- package/dist/forms/form-layout.d.ts +142 -0
- package/dist/forms/form-layout.d.ts.map +1 -0
- package/dist/forms/form-layout.js +110 -0
- package/dist/forms/form-layout.module.css +145 -0
- package/dist/forms/form-layout.module.css.d.ts +20 -0
- package/dist/forms/form-state.d.ts +42 -0
- package/dist/forms/form-state.d.ts.map +1 -0
- package/dist/forms/form-state.js +26 -0
- package/dist/forms/index.d.ts +22 -6
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +19 -4
- package/dist/forms/use-field-array.d.ts +60 -0
- package/dist/forms/use-field-array.d.ts.map +1 -0
- package/dist/forms/use-field-array.js +20 -0
- package/dist/forms/use-form-draft.d.ts +25 -10
- package/dist/forms/use-form-draft.d.ts.map +1 -1
- package/dist/forms/use-form-draft.js +55 -18
- package/dist/forms/use-form-submit.d.ts +88 -0
- package/dist/forms/use-form-submit.d.ts.map +1 -0
- package/dist/forms/use-form-submit.js +63 -0
- package/dist/guard/index.d.ts +2 -9
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +38 -28
- package/dist/guard/types.d.ts +8 -10
- package/dist/guard/types.d.ts.map +1 -1
- package/dist/index.d.ts +21 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -6
- package/dist/notifications/bell.d.ts +3 -2
- package/dist/notifications/bell.d.ts.map +1 -1
- package/dist/notifications/bell.js +73 -56
- package/dist/notifications/center.d.ts +15 -4
- package/dist/notifications/center.d.ts.map +1 -1
- package/dist/notifications/center.js +5 -2
- package/dist/notifications/define-notifications.d.ts +56 -14
- package/dist/notifications/define-notifications.d.ts.map +1 -1
- package/dist/notifications/define-notifications.js +2 -1
- package/dist/notifications/index.d.ts +11 -7
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +5 -3
- package/dist/notifications/mount-guard.d.ts +8 -0
- package/dist/notifications/mount-guard.d.ts.map +1 -0
- package/dist/notifications/mount-guard.js +19 -0
- package/dist/notifications/notify.d.ts +58 -1
- package/dist/notifications/notify.d.ts.map +1 -1
- package/dist/notifications/notify.js +46 -2
- package/dist/notifications/store.d.ts +7 -0
- package/dist/notifications/store.d.ts.map +1 -1
- package/dist/provider/connectivity-indicator.d.ts +13 -0
- package/dist/provider/connectivity-indicator.d.ts.map +1 -0
- package/dist/{connectivity → provider}/connectivity-indicator.js +3 -1
- package/dist/{connectivity → provider}/connectivity-provider.d.ts +1 -1
- package/dist/provider/connectivity-provider.d.ts.map +1 -0
- package/dist/{connectivity → provider}/connectivity-provider.js +4 -1
- package/dist/{connectivity/types.d.ts → provider/connectivity-types.d.ts} +3 -3
- package/dist/provider/connectivity-types.d.ts.map +1 -0
- package/dist/provider/error-fallback.module.css +21 -0
- package/dist/provider/error-fallback.module.css.d.ts +9 -0
- package/dist/provider/index.d.ts +29 -13
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +82 -34
- package/dist/provider/lab-theme.d.ts.map +1 -1
- package/dist/provider/lab-theme.js +2 -1
- package/dist/provider/use-connectivity.d.ts +3 -0
- package/dist/provider/use-connectivity.d.ts.map +1 -0
- package/dist/query-client.d.ts +63 -0
- package/dist/query-client.d.ts.map +1 -0
- package/dist/query-client.js +33 -0
- package/dist/{query/devtools.d.ts → query-devtools.d.ts} +2 -2
- package/dist/query-devtools.d.ts.map +1 -0
- package/dist/{query/devtools.js → query-devtools.js} +1 -0
- package/dist/register.d.ts +17 -3
- package/dist/register.d.ts.map +1 -1
- package/dist/router-tanstack/index.d.ts +4 -7
- package/dist/router-tanstack/index.d.ts.map +1 -1
- package/dist/router-tanstack/index.js +1 -9
- package/dist/router-tanstack/nav.d.ts +1 -1
- package/dist/router-tanstack/nav.d.ts.map +1 -1
- package/dist/router-tanstack/search-store.d.ts +3 -6
- package/dist/router-tanstack/search-store.d.ts.map +1 -1
- package/dist/router-tanstack/search-store.js +1 -1
- package/dist/router-tanstack/use-nav.d.ts +1 -1
- package/dist/router-tanstack/use-nav.d.ts.map +1 -1
- package/dist/router-tanstack/use-nav.js +1 -1
- package/dist/shell/account-types.d.ts +5 -2
- package/dist/shell/account-types.d.ts.map +1 -1
- package/dist/shell/app-brand.d.ts +13 -0
- package/dist/shell/app-brand.d.ts.map +1 -0
- package/dist/shell/app-brand.js +94 -0
- package/dist/shell/app-brand.module.css +109 -0
- package/dist/shell/app-brand.module.css.d.ts +14 -0
- package/dist/shell/app-breadcrumbs.d.ts +5 -3
- package/dist/shell/app-breadcrumbs.d.ts.map +1 -1
- package/dist/shell/app-breadcrumbs.js +33 -22
- package/dist/shell/app-header.module.css +10 -5
- package/dist/shell/app-main.module.css +118 -0
- package/dist/shell/app-main.module.css.d.ts +11 -0
- package/dist/shell/app-mobile-nav.d.ts +4 -3
- package/dist/shell/app-mobile-nav.d.ts.map +1 -1
- package/dist/shell/app-mobile-nav.js +53 -17
- package/dist/shell/app-mobile-nav.module.css +48 -27
- package/dist/shell/app-mobile-nav.module.css.d.ts +0 -1
- package/dist/shell/app-sidebar-account.d.ts +2 -1
- package/dist/shell/app-sidebar-account.d.ts.map +1 -1
- package/dist/shell/app-sidebar-account.js +57 -22
- package/dist/shell/app-sidebar.d.ts +10 -4
- package/dist/shell/app-sidebar.d.ts.map +1 -1
- package/dist/shell/app-sidebar.js +78 -103
- package/dist/shell/app-sidebar.module.css +63 -96
- package/dist/shell/app-sidebar.module.css.d.ts +0 -5
- package/dist/shell/index.d.ts +24 -10
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +60 -29
- package/dist/shell/isomorphic-layout-effect.d.ts +14 -0
- package/dist/shell/isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/shell/isomorphic-layout-effect.js +5 -0
- package/dist/shell/mobile-nav-model.d.ts +1 -1
- package/dist/shell/mobile-nav-model.d.ts.map +1 -1
- package/dist/shell/mobile-nav-model.js +27 -6
- package/dist/shell/nav-count-badge.d.ts +5 -3
- package/dist/shell/nav-count-badge.d.ts.map +1 -1
- package/dist/shell/nav-count-badge.js +3 -1
- package/dist/{nav/types.d.ts → shell/nav-types.d.ts} +16 -7
- package/dist/shell/nav-types.d.ts.map +1 -0
- package/dist/shell/page-aside.d.ts +43 -0
- package/dist/shell/page-aside.d.ts.map +1 -0
- package/dist/shell/page-aside.js +175 -0
- package/dist/shell/page-aside.module.css +174 -0
- package/dist/shell/page-aside.module.css.d.ts +14 -0
- package/dist/shell/page-bar.d.ts +55 -15
- package/dist/shell/page-bar.d.ts.map +1 -1
- package/dist/shell/page-bar.js +130 -41
- package/dist/shell/page-bar.module.css +107 -13
- package/dist/shell/page-bar.module.css.d.ts +4 -1
- package/dist/shell/page-title.d.ts +14 -0
- package/dist/shell/page-title.d.ts.map +1 -0
- package/dist/shell/page-title.js +25 -0
- package/dist/shell/page-title.module.css +33 -0
- package/dist/shell/page-title.module.css.d.ts +11 -0
- package/dist/shell/sidebar-block-model.d.ts +1 -1
- package/dist/shell/sidebar-block-model.d.ts.map +1 -1
- package/dist/shell/sidebar-blocks.d.ts +1 -1
- package/dist/shell/sidebar-blocks.d.ts.map +1 -1
- package/dist/shell/sidebar-search.d.ts +4 -2
- package/dist/shell/sidebar-search.d.ts.map +1 -1
- package/dist/shell/sidebar-search.js +9 -4
- package/dist/shell/sidebar-search.module.css +1 -1
- package/dist/shell/use-breakpoint.d.ts +11 -0
- package/dist/shell/use-breakpoint.d.ts.map +1 -0
- package/dist/shell/use-breakpoint.js +33 -0
- package/dist/state/fields.d.ts +26 -22
- package/dist/state/fields.d.ts.map +1 -1
- package/dist/state/fields.js +19 -18
- package/dist/state/persisted-or-local.d.ts +9 -0
- package/dist/state/persisted-or-local.d.ts.map +1 -0
- package/dist/state/persisted-or-local.js +24 -0
- package/dist/state.d.ts +1 -1
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +2 -6
- package/dist/styles.css +36 -0
- package/dist/surfaces.d.ts +25 -47
- package/dist/surfaces.d.ts.map +1 -1
- package/dist/surfaces.js +72 -55
- package/dist/theme/ctl-theme.d.ts.map +1 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +102 -17
- package/dist/theme/nav-link.module.css +37 -26
- package/dist/theme/segmented-control.module.css +22 -0
- package/dist/theme/segmented-control.module.css.d.ts +1 -0
- package/dist/theme/theme-toggle.d.ts +9 -0
- package/dist/theme/theme-toggle.d.ts.map +1 -0
- package/dist/{theme-toggle/index.js → theme/theme-toggle.js} +9 -3
- package/dist/theme-lab/boot.d.ts +66 -0
- package/dist/theme-lab/boot.d.ts.map +1 -0
- package/dist/theme-lab/boot.js +82 -0
- package/dist/theme-lab/index.d.ts +4 -43
- package/dist/theme-lab/index.d.ts.map +1 -1
- package/dist/theme-lab/index.js +9 -69
- package/dist/tokens/index.d.ts +43 -0
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +45 -6
- package/dist/tokens/palette.d.ts +57 -25
- package/dist/tokens/palette.d.ts.map +1 -1
- package/dist/tokens/palette.js +44 -15
- package/dist/tokens.css +5 -5
- package/llms.txt +11 -26
- package/package.json +54 -34
- package/src/agent/ai-sdk-transport.ts +11 -4
- package/src/agent/coalesce.ts +2 -1
- package/src/agent/merge.ts +2 -1
- package/src/agent/part-list.tsx +2 -0
- package/src/agent/stick-to-bottom.tsx +9 -11
- package/src/agent/transport.ts +15 -2
- package/src/agent/use-agent-thread-runs.ts +65 -15
- package/src/agent-chat/composer.tsx +124 -103
- package/src/agent-chat/index.ts +6 -4
- package/src/agent-chat/relative-time.ts +2 -1
- package/src/agent-chat/thread-detail-panel.tsx +10 -6
- package/src/agent-chat/thread-feed-row.tsx +117 -34
- package/src/agent-chat/thread-feed.tsx +59 -27
- package/src/agent-chat/thread-message.tsx +48 -13
- package/src/agent-chat/thread-outcome-card.tsx +9 -1
- package/src/agent-chat/thread-workspace.tsx +72 -33
- package/src/agent-chat/tool-chip.tsx +8 -2
- package/src/agent-chat/virtualize.ts +48 -0
- package/src/charts/hooks/useBandPlot.ts +26 -8
- package/src/charts/index.ts +46 -14
- package/src/charts/kinds/BandStrip.tsx +36 -14
- package/src/charts/kinds/Bars.tsx +68 -20
- package/src/charts/kinds/Donut.tsx +30 -3
- package/src/charts/kinds/DualPanel.tsx +60 -13
- package/src/charts/kinds/Heatmap.tsx +90 -33
- package/src/charts/kinds/MirroredBars.tsx +21 -3
- package/src/charts/kinds/MultiLine.tsx +61 -18
- package/src/charts/kinds/StackedArea.tsx +77 -6
- package/src/charts/kinds/ZonedLine.tsx +72 -35
- package/src/charts/layout/auto-margin.ts +134 -21
- package/src/charts/layout/log-ticks.ts +90 -0
- package/src/charts/primitives/Axes.tsx +82 -5
- package/src/charts/primitives/CartesianChart.tsx +194 -41
- package/src/charts/primitives/ChartCard.tsx +111 -27
- package/src/charts/primitives/ChartFrame.tsx +111 -26
- package/src/charts/primitives/ChartLegend.tsx +43 -13
- package/src/charts/primitives/ChartPending.tsx +194 -10
- package/src/charts/primitives/ChartTooltip.tsx +37 -5
- package/src/charts/primitives/Crosshair.tsx +6 -3
- package/src/charts/primitives/chart-frame-layout.ts +212 -0
- package/src/charts/primitives/chart-tier.tsx +37 -0
- package/src/charts/series.ts +77 -1
- package/src/charts/sparklines/BarSparkline.tsx +11 -3
- package/src/charts/sparklines/LineSparkline.tsx +18 -4
- package/src/charts/sparklines/index.ts +2 -2
- package/src/charts/utils/format.ts +19 -27
- package/src/charts/utils/ticks.ts +149 -4
- package/src/cli/audit-allows.ts +371 -0
- package/src/cli/check-theme.ts +197 -0
- package/src/cli/doctor.ts +331 -0
- package/src/cli/guard-hook.ts +115 -0
- package/src/cli/help.ts +101 -0
- package/src/cli/index.ts +269 -3434
- package/src/cli/init.ts +247 -0
- package/src/cli/sync.ts +324 -0
- package/src/cli/tokens-css.ts +252 -0
- package/src/commands/ShortcutsHelp.tsx +10 -3
- package/src/commands/define-commands.ts +2 -2
- package/src/commands/define-overlays.ts +216 -1
- package/src/commands/index.ts +22 -1
- package/src/commands/overlays-mount.tsx +63 -31
- package/src/commands/shell-bridge.ts +86 -0
- package/src/common/errors.ts +143 -0
- package/src/common/index.ts +23 -0
- package/src/common/is-dev.ts +4 -0
- package/src/common/props.ts +71 -0
- package/src/common/query-state-like.ts +64 -0
- package/src/common/refs.ts +58 -0
- package/src/common/scroll-parent.ts +42 -0
- package/src/common/validate.ts +94 -0
- package/src/content/article-layout.module.css +11 -4
- package/src/content/callout.tsx +13 -7
- package/src/content/guide.tsx +14 -4
- package/src/content/heading-anchor.tsx +14 -3
- package/src/content/index.ts +2 -0
- package/src/content/markdown.tsx +6 -8
- package/src/content/prose.module.css +9 -7
- package/src/content/reading-progress.tsx +40 -15
- package/src/content/slug.ts +4 -0
- package/src/content/toc.tsx +47 -10
- package/src/controls/actions.tsx +90 -10
- package/src/controls/compare-filter.tsx +20 -3
- package/src/controls/control-group.tsx +11 -4
- package/src/controls/controls.module.css +169 -186
- package/src/controls/controls.module.css.d.ts +9 -11
- package/src/controls/enum-filter.tsx +32 -16
- package/src/controls/filter-context.tsx +14 -6
- package/src/controls/filter-pill.tsx +6 -3
- package/src/controls/filter-set.tsx +32 -13
- package/src/controls/filter-sheet.tsx +44 -194
- package/src/controls/index.ts +7 -0
- package/src/controls/multi-select-filter.tsx +177 -27
- package/src/controls/number-filter.tsx +61 -23
- package/src/controls/panel-row.module.css +86 -0
- package/src/controls/panel-row.module.css.d.ts +13 -0
- package/src/controls/panel-row.tsx +392 -0
- package/src/controls/range-filter.tsx +76 -39
- package/src/controls/search-filter.tsx +30 -12
- package/src/controls/select-filter.tsx +11 -1
- package/src/controls/slider-control.tsx +159 -0
- package/src/controls/sync-button.tsx +13 -3
- package/src/controls/toggle-filter.tsx +36 -16
- package/src/controls/view-tabs.tsx +63 -11
- package/src/controls-dates/date-range-picker.tsx +8 -1
- package/src/dashboard/delta-badge.tsx +75 -4
- package/src/dashboard/empty-state.tsx +67 -24
- package/src/dashboard/index.ts +24 -3
- package/src/dashboard/query-state.tsx +142 -85
- package/src/{section → dashboard}/section.module.css +11 -0
- package/src/dashboard/section.tsx +287 -0
- package/src/dashboard/settings-section.tsx +88 -32
- package/src/dashboard/stat-card.module.css +46 -31
- package/src/dashboard/stat-card.module.css.d.ts +1 -0
- package/src/dashboard/stat-card.tsx +186 -128
- package/src/dashboard/stat-group.module.css +66 -0
- package/src/dashboard/stat-group.module.css.d.ts +8 -0
- package/src/dashboard/stat-group.tsx +74 -0
- package/src/dashboard/widget-grid.module.css +53 -0
- package/src/dashboard/widget-grid.module.css.d.ts +9 -0
- package/src/dashboard/widget-grid.tsx +127 -0
- package/src/{widget-header → dashboard}/widget-header.module.css +72 -7
- package/src/dashboard/widget-header.tsx +292 -0
- package/src/data/data-table.module.css +64 -0
- package/src/data/data-table.module.css.d.ts +11 -0
- package/src/data/data-table.tsx +921 -348
- package/src/data/query-branch.ts +53 -0
- package/src/data/table.ts +9 -23
- package/src/data/virtual-list.tsx +190 -56
- package/src/data/virtual.ts +8 -4
- package/src/dev-dock.tsx +159 -0
- package/src/format/date.ts +184 -0
- package/src/format/index.ts +69 -0
- package/src/format/measure.ts +31 -0
- package/src/format/number.ts +129 -0
- package/src/format/shared.ts +63 -0
- package/src/forms/FormErrorSummary.tsx +13 -6
- package/src/forms/create-form.ts +2 -2
- package/src/forms/field.ts +42 -13
- package/src/forms/form-layout.module.css +145 -0
- package/src/forms/form-layout.module.css.d.ts +20 -0
- package/src/forms/form-layout.tsx +305 -0
- package/src/forms/form-state.tsx +94 -0
- package/src/forms/index.ts +37 -7
- package/src/forms/use-field-array.ts +94 -0
- package/src/forms/use-form-draft.ts +145 -53
- package/src/forms/use-form-submit.ts +199 -0
- package/src/guard/index.ts +99 -70
- package/src/guard/types.ts +7 -10
- package/src/index.ts +92 -19
- package/src/notifications/bell.tsx +18 -4
- package/src/notifications/center.tsx +18 -5
- package/src/notifications/define-notifications.ts +64 -18
- package/src/notifications/index.ts +17 -8
- package/src/notifications/mount-guard.ts +39 -0
- package/src/notifications/notify.tsx +122 -3
- package/src/notifications/store.ts +7 -0
- package/src/{connectivity → provider}/connectivity-indicator.tsx +7 -2
- package/src/{connectivity → provider}/connectivity-provider.tsx +5 -2
- package/src/{connectivity/types.ts → provider/connectivity-types.ts} +5 -2
- package/src/provider/error-fallback.module.css +21 -0
- package/src/provider/error-fallback.module.css.d.ts +9 -0
- package/src/provider/index.tsx +116 -28
- package/src/provider/lab-theme.ts +2 -1
- package/src/{connectivity → provider}/use-connectivity.ts +4 -3
- package/src/query-client.ts +100 -0
- package/src/{query/devtools.tsx → query-devtools.tsx} +6 -4
- package/src/register.ts +20 -4
- package/src/router-tanstack/index.ts +4 -15
- package/src/router-tanstack/nav.ts +1 -1
- package/src/router-tanstack/search-store.ts +6 -14
- package/src/router-tanstack/use-nav.ts +19 -14
- package/src/shell/account-types.ts +5 -2
- package/src/shell/app-brand.module.css +109 -0
- package/src/shell/app-brand.module.css.d.ts +14 -0
- package/src/shell/app-brand.tsx +140 -0
- package/src/shell/app-breadcrumbs.tsx +20 -10
- package/src/shell/app-header.module.css +10 -5
- package/src/shell/app-main.module.css +118 -0
- package/src/shell/app-main.module.css.d.ts +11 -0
- package/src/shell/app-mobile-nav.module.css +48 -27
- package/src/shell/app-mobile-nav.module.css.d.ts +0 -1
- package/src/shell/app-mobile-nav.tsx +71 -12
- package/src/shell/app-sidebar-account.tsx +29 -6
- package/src/shell/app-sidebar.module.css +63 -96
- package/src/shell/app-sidebar.module.css.d.ts +0 -5
- package/src/shell/app-sidebar.tsx +61 -105
- package/src/shell/index.tsx +179 -93
- package/src/shell/isomorphic-layout-effect.ts +14 -0
- package/src/shell/mobile-nav-model.ts +67 -11
- package/src/shell/nav-count-badge.tsx +6 -1
- package/src/{nav/types.ts → shell/nav-types.ts} +15 -6
- package/src/shell/page-aside.module.css +174 -0
- package/src/shell/page-aside.module.css.d.ts +14 -0
- package/src/shell/page-aside.tsx +327 -0
- package/src/shell/page-bar.module.css +107 -13
- package/src/shell/page-bar.module.css.d.ts +4 -1
- package/src/shell/page-bar.tsx +294 -94
- package/src/shell/page-title.module.css +33 -0
- package/src/shell/page-title.module.css.d.ts +11 -0
- package/src/shell/page-title.tsx +57 -0
- package/src/shell/sidebar-block-model.ts +1 -1
- package/src/shell/sidebar-blocks.tsx +1 -1
- package/src/shell/sidebar-search.module.css +1 -1
- package/src/shell/sidebar-search.tsx +13 -4
- package/src/shell/use-breakpoint.ts +73 -0
- package/src/state/fields.ts +50 -53
- package/src/state/persisted-or-local.ts +50 -0
- package/src/state.ts +0 -9
- package/src/styles.css +36 -0
- package/src/surfaces.ts +72 -57
- package/src/theme/ctl-theme.tsx +10 -0
- package/src/theme/index.ts +136 -16
- package/src/theme/nav-link.module.css +37 -26
- package/src/theme/segmented-control.module.css +22 -0
- package/src/theme/segmented-control.module.css.d.ts +1 -0
- package/src/{theme-toggle/index.tsx → theme/theme-toggle.tsx} +11 -4
- package/src/theme-lab/boot.ts +140 -0
- package/src/theme-lab/index.tsx +21 -112
- package/src/tokens/index.ts +60 -6
- package/src/tokens/palette.ts +70 -30
- package/dist/agent/adapter.test.d.ts +0 -2
- package/dist/agent/adapter.test.d.ts.map +0 -1
- package/dist/agent/ai-sdk-transport.test.d.ts +0 -2
- package/dist/agent/ai-sdk-transport.test.d.ts.map +0 -1
- package/dist/agent/coalesce.test.d.ts +0 -2
- package/dist/agent/coalesce.test.d.ts.map +0 -1
- package/dist/agent/foreign.test.d.ts +0 -2
- package/dist/agent/foreign.test.d.ts.map +0 -1
- package/dist/agent/id.test.d.ts +0 -2
- package/dist/agent/id.test.d.ts.map +0 -1
- package/dist/agent/merge.test.d.ts +0 -2
- package/dist/agent/merge.test.d.ts.map +0 -1
- package/dist/agent/part-list.test.d.ts +0 -2
- package/dist/agent/part-list.test.d.ts.map +0 -1
- package/dist/agent/parts.test.d.ts +0 -2
- package/dist/agent/parts.test.d.ts.map +0 -1
- package/dist/agent/thread.test.d.ts +0 -2
- package/dist/agent/thread.test.d.ts.map +0 -1
- package/dist/agent/transport.test.d.ts +0 -2
- package/dist/agent/transport.test.d.ts.map +0 -1
- package/dist/agent/use-agent-stream.test.d.ts +0 -2
- package/dist/agent/use-agent-stream.test.d.ts.map +0 -1
- package/dist/agent/use-agent-thread-runs.foreign.test.d.ts +0 -2
- package/dist/agent/use-agent-thread-runs.foreign.test.d.ts.map +0 -1
- package/dist/agent/use-agent-thread-runs.resume.test.d.ts +0 -2
- package/dist/agent/use-agent-thread-runs.resume.test.d.ts.map +0 -1
- package/dist/agent/use-agent-thread-runs.test.d.ts +0 -2
- package/dist/agent/use-agent-thread-runs.test.d.ts.map +0 -1
- package/dist/agent/use-agent-thread-runs.wedge.test.d.ts +0 -2
- package/dist/agent/use-agent-thread-runs.wedge.test.d.ts.map +0 -1
- package/dist/agent-chat/composer.test.d.ts +0 -2
- package/dist/agent-chat/composer.test.d.ts.map +0 -1
- package/dist/agent-chat/relative-time.test.d.ts +0 -2
- package/dist/agent-chat/relative-time.test.d.ts.map +0 -1
- package/dist/agent-chat/thread-feed-row.test.d.ts +0 -2
- package/dist/agent-chat/thread-feed-row.test.d.ts.map +0 -1
- package/dist/agent-chat/thread-feed.test.d.ts +0 -2
- package/dist/agent-chat/thread-feed.test.d.ts.map +0 -1
- package/dist/agent-chat/thread-message.test.d.ts +0 -2
- package/dist/agent-chat/thread-message.test.d.ts.map +0 -1
- package/dist/agent-chat/thread-workspace.test.d.ts +0 -2
- package/dist/agent-chat/thread-workspace.test.d.ts.map +0 -1
- package/dist/agent-chat/tool-chip.test.d.ts +0 -2
- package/dist/agent-chat/tool-chip.test.d.ts.map +0 -1
- package/dist/agent-chat/virtualize.type-guard.test.d.ts +0 -2
- package/dist/agent-chat/virtualize.type-guard.test.d.ts.map +0 -1
- package/dist/charts/cursor/resolve.test.d.ts +0 -2
- package/dist/charts/cursor/resolve.test.d.ts.map +0 -1
- package/dist/charts/cursor/store.test.d.ts +0 -2
- package/dist/charts/cursor/store.test.d.ts.map +0 -1
- package/dist/charts/kinds/BandStrip.test.d.ts +0 -2
- package/dist/charts/kinds/BandStrip.test.d.ts.map +0 -1
- package/dist/charts/kinds/Bars.test.d.ts +0 -2
- package/dist/charts/kinds/Bars.test.d.ts.map +0 -1
- package/dist/charts/kinds/DualPanel.test.d.ts +0 -2
- package/dist/charts/kinds/DualPanel.test.d.ts.map +0 -1
- package/dist/charts/kinds/MirroredBars.test.d.ts +0 -2
- package/dist/charts/kinds/MirroredBars.test.d.ts.map +0 -1
- package/dist/charts/kinds/MultiLine.test.d.ts +0 -2
- package/dist/charts/kinds/MultiLine.test.d.ts.map +0 -1
- package/dist/charts/kinds/StackedArea.test.d.ts +0 -2
- package/dist/charts/kinds/StackedArea.test.d.ts.map +0 -1
- package/dist/charts/kinds/ZonedLine.test.d.ts +0 -2
- package/dist/charts/kinds/ZonedLine.test.d.ts.map +0 -1
- package/dist/charts/layout/auto-margin.test.d.ts +0 -2
- package/dist/charts/layout/auto-margin.test.d.ts.map +0 -1
- package/dist/charts/primitives/CartesianChart.test.d.ts +0 -2
- package/dist/charts/primitives/CartesianChart.test.d.ts.map +0 -1
- package/dist/charts/primitives/ChartCard.test.d.ts +0 -2
- package/dist/charts/primitives/ChartCard.test.d.ts.map +0 -1
- package/dist/charts/primitives/ChartFrame.test.d.ts +0 -2
- package/dist/charts/primitives/ChartFrame.test.d.ts.map +0 -1
- package/dist/charts/primitives/ChartLegend.test.d.ts +0 -2
- package/dist/charts/primitives/ChartLegend.test.d.ts.map +0 -1
- package/dist/charts/primitives/ChartTooltip.test.d.ts +0 -2
- package/dist/charts/primitives/ChartTooltip.test.d.ts.map +0 -1
- package/dist/charts/primitives/XZoneRects.test.d.ts +0 -2
- package/dist/charts/primitives/XZoneRects.test.d.ts.map +0 -1
- package/dist/charts/series.test.d.ts +0 -2
- package/dist/charts/series.test.d.ts.map +0 -1
- package/dist/charts/utils/domain.test.d.ts +0 -2
- package/dist/charts/utils/domain.test.d.ts.map +0 -1
- package/dist/charts/utils/measure-text.test.d.ts +0 -2
- package/dist/charts/utils/measure-text.test.d.ts.map +0 -1
- package/dist/cli/check-coverage.test.d.ts +0 -2
- package/dist/cli/check-coverage.test.d.ts.map +0 -1
- package/dist/cli/check-theme.test.d.ts +0 -2
- package/dist/cli/check-theme.test.d.ts.map +0 -1
- package/dist/cli/help.test.d.ts +0 -2
- package/dist/cli/help.test.d.ts.map +0 -1
- package/dist/cli/init-sync.test.d.ts +0 -2
- package/dist/cli/init-sync.test.d.ts.map +0 -1
- package/dist/cli/placement-engine.test.d.ts +0 -2
- package/dist/cli/placement-engine.test.d.ts.map +0 -1
- package/dist/cli/shipped-versions.test.d.ts +0 -2
- package/dist/cli/shipped-versions.test.d.ts.map +0 -1
- package/dist/cli/tarball-parity.test.d.ts +0 -2
- package/dist/cli/tarball-parity.test.d.ts.map +0 -1
- package/dist/cli/template-format.test.d.ts +0 -2
- package/dist/cli/template-format.test.d.ts.map +0 -1
- package/dist/cli/template-ledger.test.d.ts +0 -2
- package/dist/cli/template-ledger.test.d.ts.map +0 -1
- package/dist/cli/tokens-css.test.d.ts +0 -2
- package/dist/cli/tokens-css.test.d.ts.map +0 -1
- package/dist/cli/toolchain-wiring.test.d.ts +0 -2
- package/dist/cli/toolchain-wiring.test.d.ts.map +0 -1
- package/dist/cli/waiver-audit.test.d.ts +0 -2
- package/dist/cli/waiver-audit.test.d.ts.map +0 -1
- package/dist/connectivity/connectivity-indicator.d.ts +0 -11
- package/dist/connectivity/connectivity-indicator.d.ts.map +0 -1
- package/dist/connectivity/connectivity-provider.d.ts.map +0 -1
- package/dist/connectivity/index.d.ts +0 -13
- package/dist/connectivity/index.d.ts.map +0 -1
- package/dist/connectivity/index.js +0 -8
- package/dist/connectivity/types.d.ts.map +0 -1
- package/dist/connectivity/use-connectivity.d.ts +0 -3
- package/dist/connectivity/use-connectivity.d.ts.map +0 -1
- package/dist/content/article-actions.test.d.ts +0 -2
- package/dist/content/article-actions.test.d.ts.map +0 -1
- package/dist/content/article-model.test.d.ts +0 -2
- package/dist/content/article-model.test.d.ts.map +0 -1
- package/dist/content/block-split.test.d.ts +0 -2
- package/dist/content/block-split.test.d.ts.map +0 -1
- package/dist/content/heading-components.test.d.ts +0 -2
- package/dist/content/heading-components.test.d.ts.map +0 -1
- package/dist/content/markdown.test.d.ts +0 -2
- package/dist/content/markdown.test.d.ts.map +0 -1
- package/dist/content/prose.module.css.test.d.ts +0 -2
- package/dist/content/prose.module.css.test.d.ts.map +0 -1
- package/dist/content/sanitize.test.d.ts +0 -2
- package/dist/content/sanitize.test.d.ts.map +0 -1
- package/dist/content/slug.test.d.ts +0 -2
- package/dist/content/slug.test.d.ts.map +0 -1
- package/dist/controls/actions.test.d.ts +0 -2
- package/dist/controls/actions.test.d.ts.map +0 -1
- package/dist/controls/actions.type-guard.test.d.ts +0 -2
- package/dist/controls/actions.type-guard.test.d.ts.map +0 -1
- package/dist/controls/control-group.test.d.ts +0 -2
- package/dist/controls/control-group.test.d.ts.map +0 -1
- package/dist/controls/controls.router.test.d.ts +0 -2
- package/dist/controls/controls.router.test.d.ts.map +0 -1
- package/dist/controls/filter-set.test.d.ts +0 -2
- package/dist/controls/filter-set.test.d.ts.map +0 -1
- package/dist/controls/peer-boundary.test.d.ts +0 -2
- package/dist/controls/peer-boundary.test.d.ts.map +0 -1
- package/dist/controls/props-contract.test.d.ts +0 -2
- package/dist/controls/props-contract.test.d.ts.map +0 -1
- package/dist/controls/range-filter.type-guard.test.d.ts +0 -2
- package/dist/controls/range-filter.type-guard.test.d.ts.map +0 -1
- package/dist/controls/sync-button.test.d.ts +0 -2
- package/dist/controls/sync-button.test.d.ts.map +0 -1
- package/dist/dashboard/query-state.test.d.ts +0 -2
- package/dist/dashboard/query-state.test.d.ts.map +0 -1
- package/dist/dashboard/settings-section.test.d.ts +0 -2
- package/dist/dashboard/settings-section.test.d.ts.map +0 -1
- package/dist/dashboard/stat-card.test.d.ts +0 -2
- package/dist/dashboard/stat-card.test.d.ts.map +0 -1
- package/dist/data/data-table.test.d.ts +0 -2
- package/dist/data/data-table.test.d.ts.map +0 -1
- package/dist/data/index.d.ts +0 -38
- package/dist/data/index.d.ts.map +0 -1
- package/dist/data/index.js +0 -2
- package/dist/guard/check-source.test.d.ts +0 -2
- package/dist/guard/check-source.test.d.ts.map +0 -1
- package/dist/guard/grace.test.d.ts +0 -20
- package/dist/guard/grace.test.d.ts.map +0 -1
- package/dist/guard/guard-hook.test.d.ts +0 -2
- package/dist/guard/guard-hook.test.d.ts.map +0 -1
- package/dist/motion/index.d.ts.map +0 -1
- package/dist/nav/types.d.ts.map +0 -1
- package/dist/notifications/overlay.d.ts +0 -20
- package/dist/notifications/overlay.d.ts.map +0 -1
- package/dist/notifications/overlay.js +0 -12
- package/dist/provider/index.test.d.ts +0 -2
- package/dist/provider/index.test.d.ts.map +0 -1
- package/dist/provider/lab-theme.test.d.ts +0 -2
- package/dist/provider/lab-theme.test.d.ts.map +0 -1
- package/dist/query/devtools.d.ts.map +0 -1
- package/dist/query/error-message.d.ts +0 -41
- package/dist/query/error-message.d.ts.map +0 -1
- package/dist/query/error-message.js +0 -30
- package/dist/query/error-message.test.d.ts +0 -2
- package/dist/query/error-message.test.d.ts.map +0 -1
- package/dist/query/index.d.ts +0 -47
- package/dist/query/index.d.ts.map +0 -1
- package/dist/query/index.js +0 -56
- package/dist/router-tanstack/field.d.ts +0 -14
- package/dist/router-tanstack/field.d.ts.map +0 -1
- package/dist/router-tanstack/field.js +0 -4
- package/dist/router-tanstack/multi-search-param-store.d.ts +0 -43
- package/dist/router-tanstack/multi-search-param-store.d.ts.map +0 -1
- package/dist/router-tanstack/multi-search-param-store.js +0 -30
- package/dist/router-tanstack/multi-search-param-store.test.d.ts +0 -2
- package/dist/router-tanstack/multi-search-param-store.test.d.ts.map +0 -1
- package/dist/router-tanstack/nav.test.d.ts +0 -2
- package/dist/router-tanstack/nav.test.d.ts.map +0 -1
- package/dist/router-tanstack/search-param-store.d.ts +0 -42
- package/dist/router-tanstack/search-param-store.d.ts.map +0 -1
- package/dist/router-tanstack/search-param-store.js +0 -25
- package/dist/router-tanstack/search-param-store.test.d.ts +0 -2
- package/dist/router-tanstack/search-param-store.test.d.ts.map +0 -1
- package/dist/router-tanstack/search-store.router.test.d.ts +0 -2
- package/dist/router-tanstack/search-store.router.test.d.ts.map +0 -1
- package/dist/router-tanstack/search-store.test.d.ts +0 -2
- package/dist/router-tanstack/search-store.test.d.ts.map +0 -1
- package/dist/router-tanstack/use-nav.test.d.ts +0 -2
- package/dist/router-tanstack/use-nav.test.d.ts.map +0 -1
- package/dist/section/index.d.ts +0 -2
- package/dist/section/index.d.ts.map +0 -1
- package/dist/section/index.js +0 -4
- package/dist/section/section.d.ts +0 -24
- package/dist/section/section.d.ts.map +0 -1
- package/dist/section/section.js +0 -126
- package/dist/section/section.test.d.ts +0 -2
- package/dist/section/section.test.d.ts.map +0 -1
- package/dist/shell/app-mobile-nav.test.d.ts +0 -2
- package/dist/shell/app-mobile-nav.test.d.ts.map +0 -1
- package/dist/shell/app-sidebar.test.d.ts +0 -2
- package/dist/shell/app-sidebar.test.d.ts.map +0 -1
- package/dist/shell/index.test.d.ts +0 -2
- package/dist/shell/index.test.d.ts.map +0 -1
- package/dist/shell/mobile-nav-model.test.d.ts +0 -2
- package/dist/shell/mobile-nav-model.test.d.ts.map +0 -1
- package/dist/shell/page-bar.test.d.ts +0 -2
- package/dist/shell/page-bar.test.d.ts.map +0 -1
- package/dist/state/fields.test.d.ts +0 -2
- package/dist/state/fields.test.d.ts.map +0 -1
- package/dist/state/persisted.test.d.ts +0 -2
- package/dist/state/persisted.test.d.ts.map +0 -1
- package/dist/styles.floor.test.d.ts +0 -2
- package/dist/styles.floor.test.d.ts.map +0 -1
- package/dist/theme/border-coverage.test.d.ts +0 -18
- package/dist/theme/border-coverage.test.d.ts.map +0 -1
- package/dist/theme/contrast.test.d.ts +0 -2
- package/dist/theme/contrast.test.d.ts.map +0 -1
- package/dist/theme/ctl-theme.test.d.ts +0 -2
- package/dist/theme/ctl-theme.test.d.ts.map +0 -1
- package/dist/theme/ctl-tier-coverage.test.d.ts +0 -2
- package/dist/theme/ctl-tier-coverage.test.d.ts.map +0 -1
- package/dist/theme/density-option.test.d.ts +0 -2
- package/dist/theme/density-option.test.d.ts.map +0 -1
- package/dist/theme/density-relations.test.d.ts +0 -2
- package/dist/theme/density-relations.test.d.ts.map +0 -1
- package/dist/theme/derive-theme.test.d.ts +0 -2
- package/dist/theme/derive-theme.test.d.ts.map +0 -1
- package/dist/theme/divider-law.test.d.ts +0 -2
- package/dist/theme/divider-law.test.d.ts.map +0 -1
- package/dist/theme/fonts-option.test.d.ts +0 -2
- package/dist/theme/fonts-option.test.d.ts.map +0 -1
- package/dist/theme/icon-slot.test.d.ts +0 -2
- package/dist/theme/icon-slot.test.d.ts.map +0 -1
- package/dist/theme/layout-rhythm-css.test.d.ts +0 -2
- package/dist/theme/layout-rhythm-css.test.d.ts.map +0 -1
- package/dist/theme/radius-option.test.d.ts +0 -2
- package/dist/theme/radius-option.test.d.ts.map +0 -1
- package/dist/theme/radius.test.d.ts +0 -2
- package/dist/theme/radius.test.d.ts.map +0 -1
- package/dist/theme/shadow-surfaces.test.d.ts +0 -26
- package/dist/theme/shadow-surfaces.test.d.ts.map +0 -1
- package/dist/theme/spacing.test.d.ts +0 -2
- package/dist/theme/spacing.test.d.ts.map +0 -1
- package/dist/theme/use-basalt-spacing.test.d.ts +0 -2
- package/dist/theme/use-basalt-spacing.test.d.ts.map +0 -1
- package/dist/theme-lab/derive-controls.test.d.ts +0 -2
- package/dist/theme-lab/derive-controls.test.d.ts.map +0 -1
- package/dist/theme-lab/derive-state.test.d.ts +0 -2
- package/dist/theme-lab/derive-state.test.d.ts.map +0 -1
- package/dist/theme-lab/theme-lab.test.d.ts +0 -2
- package/dist/theme-lab/theme-lab.test.d.ts.map +0 -1
- package/dist/theme-toggle/index.d.ts +0 -8
- package/dist/theme-toggle/index.d.ts.map +0 -1
- package/dist/tokens/build-fonts-css.test.d.ts +0 -2
- package/dist/tokens/build-fonts-css.test.d.ts.map +0 -1
- package/dist/tokens/build-radius-css.test.d.ts +0 -2
- package/dist/tokens/build-radius-css.test.d.ts.map +0 -1
- package/dist/tokens/chart-margin.test.d.ts +0 -2
- package/dist/tokens/chart-margin.test.d.ts.map +0 -1
- package/dist/tokens/density.test.d.ts +0 -2
- package/dist/tokens/density.test.d.ts.map +0 -1
- package/dist/tokens/derive-radius.test.d.ts +0 -2
- package/dist/tokens/derive-radius.test.d.ts.map +0 -1
- package/dist/tokens/derive.test.d.ts +0 -2
- package/dist/tokens/derive.test.d.ts.map +0 -1
- package/dist/tokens/palette.test.d.ts +0 -2
- package/dist/tokens/palette.test.d.ts.map +0 -1
- package/dist/tokens/text-scale.test.d.ts +0 -2
- package/dist/tokens/text-scale.test.d.ts.map +0 -1
- package/dist/vite-color-mix.test.d.ts +0 -2
- package/dist/vite-color-mix.test.d.ts.map +0 -1
- package/dist/vite.test.d.ts +0 -2
- package/dist/vite.test.d.ts.map +0 -1
- package/dist/widget-header/delta-badge.d.ts +0 -13
- package/dist/widget-header/delta-badge.d.ts.map +0 -1
- package/dist/widget-header/delta-badge.js +0 -29
- package/dist/widget-header/delta-badge.test.d.ts +0 -2
- package/dist/widget-header/delta-badge.test.d.ts.map +0 -1
- package/dist/widget-header/index.d.ts +0 -3
- package/dist/widget-header/index.d.ts.map +0 -1
- package/dist/widget-header/index.js +0 -6
- package/dist/widget-header/no-mantine.test.d.ts +0 -2
- package/dist/widget-header/no-mantine.test.d.ts.map +0 -1
- package/dist/widget-header/widget-header.d.ts +0 -67
- package/dist/widget-header/widget-header.d.ts.map +0 -1
- package/dist/widget-header/widget-header.test.d.ts +0 -2
- package/dist/widget-header/widget-header.test.d.ts.map +0 -1
- package/src/agent/adapter.test.ts +0 -1640
- package/src/agent/ai-sdk-transport.test.ts +0 -658
- package/src/agent/coalesce.test.ts +0 -387
- package/src/agent/foreign.test.ts +0 -51
- package/src/agent/id.test.ts +0 -169
- package/src/agent/merge.test.ts +0 -206
- package/src/agent/part-list.test.tsx +0 -112
- package/src/agent/parts.test.ts +0 -720
- package/src/agent/thread.test.ts +0 -220
- package/src/agent/transport.test.ts +0 -70
- package/src/agent/use-agent-stream.test.tsx +0 -287
- package/src/agent/use-agent-thread-runs.foreign.test.tsx +0 -138
- package/src/agent/use-agent-thread-runs.resume.test.tsx +0 -294
- package/src/agent/use-agent-thread-runs.test.tsx +0 -1120
- package/src/agent/use-agent-thread-runs.wedge.test.tsx +0 -387
- package/src/agent-chat/composer.test.tsx +0 -924
- package/src/agent-chat/relative-time.test.ts +0 -95
- package/src/agent-chat/thread-feed-row.test.tsx +0 -510
- package/src/agent-chat/thread-feed.test.tsx +0 -241
- package/src/agent-chat/thread-message.test.tsx +0 -1285
- package/src/agent-chat/thread-workspace.test.tsx +0 -169
- package/src/agent-chat/tool-chip.test.tsx +0 -139
- package/src/agent-chat/virtualize.type-guard.test.ts +0 -49
- package/src/charts/cursor/resolve.test.ts +0 -151
- package/src/charts/cursor/store.test.ts +0 -64
- package/src/charts/kinds/BandStrip.test.tsx +0 -282
- package/src/charts/kinds/Bars.test.tsx +0 -183
- package/src/charts/kinds/DualPanel.test.tsx +0 -527
- package/src/charts/kinds/MirroredBars.test.tsx +0 -232
- package/src/charts/kinds/MultiLine.test.tsx +0 -218
- package/src/charts/kinds/StackedArea.test.tsx +0 -114
- package/src/charts/kinds/ZonedLine.test.tsx +0 -147
- package/src/charts/layout/auto-margin.test.ts +0 -42
- package/src/charts/primitives/CartesianChart.test.tsx +0 -647
- package/src/charts/primitives/ChartCard.test.tsx +0 -66
- package/src/charts/primitives/ChartFrame.test.tsx +0 -142
- package/src/charts/primitives/ChartLegend.test.tsx +0 -78
- package/src/charts/primitives/ChartTooltip.test.tsx +0 -44
- package/src/charts/primitives/XZoneRects.test.tsx +0 -123
- package/src/charts/series.test.ts +0 -112
- package/src/charts/utils/domain.test.ts +0 -54
- package/src/charts/utils/measure-text.test.ts +0 -36
- package/src/cli/check-coverage.test.ts +0 -297
- package/src/cli/check-theme.test.ts +0 -837
- package/src/cli/help.test.ts +0 -170
- package/src/cli/init-sync.test.ts +0 -343
- package/src/cli/placement-engine.test.ts +0 -298
- package/src/cli/shipped-versions.test.ts +0 -83
- package/src/cli/tarball-parity.test.ts +0 -44
- package/src/cli/template-format.test.ts +0 -64
- package/src/cli/template-ledger.test.ts +0 -219
- package/src/cli/tokens-css.test.ts +0 -249
- package/src/cli/toolchain-wiring.test.ts +0 -1358
- package/src/cli/waiver-audit.test.ts +0 -215
- package/src/connectivity/index.ts +0 -18
- package/src/content/article-actions.test.ts +0 -78
- package/src/content/article-model.test.ts +0 -119
- package/src/content/block-split.test.ts +0 -75
- package/src/content/heading-components.test.tsx +0 -65
- package/src/content/markdown.test.tsx +0 -603
- package/src/content/prose.module.css.test.ts +0 -39
- package/src/content/sanitize.test.ts +0 -659
- package/src/content/slug.test.ts +0 -62
- package/src/controls/actions.test.tsx +0 -252
- package/src/controls/actions.type-guard.test.ts +0 -63
- package/src/controls/control-group.test.tsx +0 -229
- package/src/controls/controls.router.test.tsx +0 -1053
- package/src/controls/filter-set.test.tsx +0 -472
- package/src/controls/peer-boundary.test.ts +0 -85
- package/src/controls/props-contract.test.tsx +0 -137
- package/src/controls/range-filter.type-guard.test.tsx +0 -122
- package/src/controls/sync-button.test.tsx +0 -183
- package/src/dashboard/query-state.test.tsx +0 -152
- package/src/dashboard/settings-section.test.tsx +0 -56
- package/src/dashboard/stat-card.test.tsx +0 -385
- package/src/data/data-table.test.tsx +0 -434
- package/src/data/index.ts +0 -41
- package/src/guard/check-source.test.ts +0 -3388
- package/src/guard/grace.test.ts +0 -158
- package/src/guard/guard-hook.test.ts +0 -203
- package/src/notifications/overlay.tsx +0 -64
- package/src/provider/index.test.tsx +0 -101
- package/src/provider/lab-theme.test.ts +0 -147
- package/src/query/error-message.test.ts +0 -67
- package/src/query/error-message.ts +0 -70
- package/src/query/index.ts +0 -97
- package/src/router-tanstack/field.ts +0 -35
- package/src/router-tanstack/multi-search-param-store.test.ts +0 -124
- package/src/router-tanstack/multi-search-param-store.ts +0 -106
- package/src/router-tanstack/nav.test.ts +0 -111
- package/src/router-tanstack/search-param-store.test.ts +0 -135
- package/src/router-tanstack/search-param-store.ts +0 -100
- package/src/router-tanstack/search-store.router.test.tsx +0 -882
- package/src/router-tanstack/search-store.test.ts +0 -578
- package/src/router-tanstack/use-nav.test.tsx +0 -187
- package/src/section/index.ts +0 -1
- package/src/section/section.test.tsx +0 -204
- package/src/section/section.tsx +0 -220
- package/src/shell/app-mobile-nav.test.tsx +0 -403
- package/src/shell/app-sidebar.test.tsx +0 -509
- package/src/shell/index.test.tsx +0 -428
- package/src/shell/mobile-nav-model.test.ts +0 -517
- package/src/shell/page-bar.test.tsx +0 -316
- package/src/state/fields.test.tsx +0 -512
- package/src/state/persisted.test.ts +0 -91
- package/src/styles.floor.test.ts +0 -36
- package/src/theme/border-coverage.test.ts +0 -272
- package/src/theme/contrast.test.ts +0 -354
- package/src/theme/ctl-theme.test.tsx +0 -275
- package/src/theme/ctl-tier-coverage.test.ts +0 -170
- package/src/theme/density-option.test.ts +0 -96
- package/src/theme/density-relations.test.ts +0 -506
- package/src/theme/derive-theme.test.ts +0 -101
- package/src/theme/divider-law.test.ts +0 -259
- package/src/theme/fonts-option.test.ts +0 -75
- package/src/theme/icon-slot.test.tsx +0 -275
- package/src/theme/layout-rhythm-css.test.ts +0 -72
- package/src/theme/radius-option.test.ts +0 -86
- package/src/theme/radius.test.ts +0 -142
- package/src/theme/shadow-surfaces.test.ts +0 -488
- package/src/theme/spacing.test.ts +0 -495
- package/src/theme/use-basalt-spacing.test.tsx +0 -55
- package/src/theme-lab/derive-controls.test.ts +0 -94
- package/src/theme-lab/derive-state.test.ts +0 -71
- package/src/theme-lab/theme-lab.test.ts +0 -46
- package/src/tokens/build-fonts-css.test.ts +0 -52
- package/src/tokens/build-radius-css.test.ts +0 -25
- package/src/tokens/chart-margin.test.ts +0 -39
- package/src/tokens/density.test.ts +0 -259
- package/src/tokens/derive-radius.test.ts +0 -62
- package/src/tokens/derive.test.ts +0 -30
- package/src/tokens/palette.test.ts +0 -114
- package/src/tokens/text-scale.test.ts +0 -51
- package/src/vite-color-mix.test.ts +0 -46
- package/src/vite.test.ts +0 -423
- package/src/widget-header/delta-badge.test.tsx +0 -60
- package/src/widget-header/delta-badge.tsx +0 -57
- package/src/widget-header/index.ts +0 -2
- package/src/widget-header/no-mantine.test.ts +0 -33
- package/src/widget-header/widget-header.test.tsx +0 -187
- package/src/widget-header/widget-header.tsx +0 -213
- /package/dist/{motion/index.js → common/motion.js} +0 -0
- /package/dist/{section → dashboard}/section.module.css.d.ts +0 -0
- /package/dist/{widget-header → dashboard}/widget-header.module.css.d.ts +0 -0
- /package/dist/{connectivity/types.js → provider/connectivity-types.js} +0 -0
- /package/dist/{connectivity → provider}/use-connectivity.js +0 -0
- /package/dist/{nav/types.js → shell/nav-types.js} +0 -0
- /package/src/{motion/index.ts → common/motion.ts} +0 -0
- /package/src/{section → dashboard}/section.module.css.d.ts +0 -0
- /package/src/{widget-header → dashboard}/widget-header.module.css.d.ts +0 -0
package/src/surfaces.ts
CHANGED
|
@@ -48,18 +48,25 @@ export const PLUGIN_RULE_ID_LIST = [
|
|
|
48
48
|
'raw-scroll-container',
|
|
49
49
|
'hand-rolled-filter',
|
|
50
50
|
'control-outside-home',
|
|
51
|
+
'bound-control-outside-home',
|
|
51
52
|
'control-size-literal',
|
|
52
53
|
'page-bar-budget',
|
|
53
54
|
'in-body-page-title',
|
|
54
55
|
'responsive-twin',
|
|
55
56
|
'search-literal-link',
|
|
56
57
|
'use-search-from-literal',
|
|
58
|
+
'provider-above-router',
|
|
59
|
+
'query-dual-import',
|
|
60
|
+
'query-fn-unwrap',
|
|
61
|
+
'deprecated-export',
|
|
62
|
+
'forms-field-key',
|
|
57
63
|
'visx-boundary',
|
|
58
64
|
'visx-tooltip',
|
|
59
65
|
'token-layer-boundary',
|
|
60
66
|
'agent-resume-guard',
|
|
61
67
|
'agent-no-raw-usechat',
|
|
62
68
|
'ai-sdk-major',
|
|
69
|
+
'no-import-meta-env',
|
|
63
70
|
] as const
|
|
64
71
|
|
|
65
72
|
/** One registered oxlint plugin rule id — the literal union of {@link PLUGIN_RULE_ID_LIST}. */
|
|
@@ -78,7 +85,7 @@ export type SkillName = 'basalt-app' | 'basalt-design' | 'basalt-charts'
|
|
|
78
85
|
* @example
|
|
79
86
|
* const l: Layer = 'headless'
|
|
80
87
|
*/
|
|
81
|
-
export type Layer = 'mantine-coupled' | 'headless' | 'app-global' | 'non-js-asset'
|
|
88
|
+
export type Layer = 'mantine-coupled' | 'headless' | 'app-global' | 'non-js-asset' | 'build-tooling'
|
|
82
89
|
|
|
83
90
|
/**
|
|
84
91
|
* A single import ban. `{ctx}` in the message is filled per target so shipped/repo wording
|
|
@@ -226,7 +233,7 @@ const MANTINE_BANS = [
|
|
|
226
233
|
|
|
227
234
|
/**
|
|
228
235
|
* The one hard source for the enforcement seam. Keys split into two kinds:
|
|
229
|
-
* - JS-subpath keys (., ./charts, ./tokens, ./theme-lab, ./vite, ./guard, ./
|
|
236
|
+
* - JS-subpath keys (., ./charts, ./tokens, ./theme-lab, ./vite, ./guard, ./router-tanstack, ./forms, ./notifications, ./commands, ./data/table, ./data/virtual, ./agent, ./state) — real package.json exports. `./query`, `./connectivity` and bare `./data` are dropped (C1) — their public surface is absorbed onto `.`.
|
|
230
237
|
* - #-prefixed synthetic keys (#app) — the synthetic global app-wide ban layer. The #-prefix
|
|
231
238
|
* guarantees it is never mistaken for an export path.
|
|
232
239
|
*
|
|
@@ -267,9 +274,25 @@ export const SURFACES = {
|
|
|
267
274
|
'raw-scroll-container',
|
|
268
275
|
'page-bar-budget',
|
|
269
276
|
'shadow-basalt-export',
|
|
277
|
+
// The mount-order law, guarded as of 1.28.0 (F5) — same-file static ancestry, so `warn`.
|
|
278
|
+
// `deprecated-export` sits here too: the ledger it reads spans subpaths.
|
|
279
|
+
'provider-above-router',
|
|
280
|
+
'deprecated-export',
|
|
281
|
+
// `import.meta.env` is a Vite-ism that fails outside a Vite build (SSR/server code, Node
|
|
282
|
+
// scripts, tests) — process.env.NODE_ENV works everywhere basalt code runs. Repo-local,
|
|
283
|
+
// scoped to all of src/**, one surface required by coverage (C2 consolidation).
|
|
284
|
+
'no-import-meta-env',
|
|
285
|
+
],
|
|
286
|
+
// agent/rules/basalt-mantine.md — stated, not guarded. The other law that stood here gained
|
|
287
|
+
// `provider-above-router` at 1.28.0; this one has no AST form left to catch, because
|
|
288
|
+
// `cssVariablesResolver` is now `Omit`ted from the accepted prop type and a hand-built
|
|
289
|
+
// `createTheme` is a consumer's own call to make. (`duplicate-notifications-mount`, the
|
|
290
|
+
// other 1.28.0 mount-order rule, retired — `BasaltNotifications` no longer exists.)
|
|
291
|
+
advisoryLaws: [
|
|
292
|
+
"no second cssVariablesResolver — don't hand-build createTheme or re-add the resolver basalt already installs",
|
|
270
293
|
],
|
|
271
294
|
description:
|
|
272
|
-
'BasaltProvider, createBasaltTheme, BasaltShell + sidebar/mobile-nav/breadcrumbs, PageBar, NavCountBadge, ThemeToggle, ThreadWorkspace + thread-chat components, WidgetHeader, dashboard composites (DeltaBadge, StatCard with threshold tone, EmptyState, QueryState/LoadingState/ErrorState, SettingsSection/SettingsRow/DangerZone)',
|
|
295
|
+
'BasaltProvider, createBasaltTheme, BasaltShell + sidebar/mobile-nav/breadcrumbs, PageBar, PageAside, useBreakpoint, NavCountBadge, ThemeToggle, ThreadWorkspace + thread-chat components, WidgetHeader, dashboard composites (DeltaBadge, StatCard with threshold tone, EmptyState, QueryState/LoadingState/ErrorState, SettingsSection/SettingsRow/DangerZone), ConnectivityProvider/useConnectivity/ConnectivityIndicator (auto-mounted, C1: absorbed from the dropped ./connectivity), createBasaltQueryClient/unwrap/BasaltQueryDevtools (C1: absorbed from the dropped ./query), BasaltDevDock (C5: lazy Router/Query devtools + theme lab in one dock)',
|
|
273
296
|
optionalPeers: [
|
|
274
297
|
'react-markdown',
|
|
275
298
|
'remark-gfm',
|
|
@@ -277,6 +300,7 @@ export const SURFACES = {
|
|
|
277
300
|
'remend',
|
|
278
301
|
'shiki',
|
|
279
302
|
'beautiful-mermaid',
|
|
303
|
+
'@tanstack/react-router-devtools',
|
|
280
304
|
],
|
|
281
305
|
forbiddenImports: [], // the no-charts/tokens-reexport invariant is comment-only today; Phase-4 plugin
|
|
282
306
|
},
|
|
@@ -285,13 +309,7 @@ export const SURFACES = {
|
|
|
285
309
|
layer: 'headless',
|
|
286
310
|
rule: 'charts',
|
|
287
311
|
skill: ['basalt-charts'],
|
|
288
|
-
guardKinds: [
|
|
289
|
-
'raw-hex',
|
|
290
|
-
'raw-color-fn',
|
|
291
|
-
'raw-visx-axis',
|
|
292
|
-
'unframed-chart',
|
|
293
|
-
'chart-missing-aria-label',
|
|
294
|
-
],
|
|
312
|
+
guardKinds: ['raw-hex', 'raw-color-fn', 'raw-visx-axis', 'chart-missing-aria-label'],
|
|
295
313
|
pluginRules: [
|
|
296
314
|
'hand-rolled-plot',
|
|
297
315
|
'chart-legend-literal',
|
|
@@ -358,7 +376,7 @@ export const SURFACES = {
|
|
|
358
376
|
},
|
|
359
377
|
'./vite': {
|
|
360
378
|
kind: 'tooling',
|
|
361
|
-
layer: '
|
|
379
|
+
layer: 'build-tooling',
|
|
362
380
|
description:
|
|
363
381
|
'basaltViteConfig(opts) — Vite preset for basalt-ui consumer apps; basaltAppPlugin(opts) — PWA head, manifest, and icon metadata derived from the token palette',
|
|
364
382
|
optionalPeers: ['vite-plugin-pwa'],
|
|
@@ -375,20 +393,15 @@ export const SURFACES = {
|
|
|
375
393
|
// @visx/* ban dropped — `basalt/visx-boundary` now bans it universally outside charts.
|
|
376
394
|
forbiddenImports: [...MANTINE_BANS],
|
|
377
395
|
}, // 6th JS subpath
|
|
378
|
-
'./
|
|
379
|
-
kind: '
|
|
396
|
+
'./format': {
|
|
397
|
+
kind: 'tooling',
|
|
380
398
|
layer: 'headless',
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
guardKinds: [],
|
|
384
|
-
pluginRules: [],
|
|
385
|
-
description: 'createBasaltQueryClient, transport-agnostic unwrap, lazy BasaltQueryDevtools',
|
|
386
|
-
optionalPeers: ['@tanstack/react-query-devtools'],
|
|
399
|
+
description:
|
|
400
|
+
'money/percent/integer/compact/deltaPct/duration/durationClock/clock/relativeTime/weekday/km/kcal — Intl-backed, Mantine-free, React-free formatting; charts/utils/format.ts re-exports fmtCompact/fmtPercent/fmtCurrency/fmtInt/fmtAxisDate/fmtTooltipDate from here (C5 consolidation, one implementation)',
|
|
387
401
|
globs: {
|
|
388
402
|
shipped: [],
|
|
389
|
-
repo: ['packages/basalt-ui/src/
|
|
403
|
+
repo: ['packages/basalt-ui/src/format/**'],
|
|
390
404
|
},
|
|
391
|
-
// @visx/* ban dropped — `basalt/visx-boundary` now bans it universally outside charts.
|
|
392
405
|
forbiddenImports: [...MANTINE_BANS],
|
|
393
406
|
},
|
|
394
407
|
'./router-tanstack': {
|
|
@@ -400,7 +413,7 @@ export const SURFACES = {
|
|
|
400
413
|
// Law C10 — a nav link's `search` and a reader's `from` are both this bridge's contract.
|
|
401
414
|
pluginRules: ['search-literal-link', 'use-search-from-literal'],
|
|
402
415
|
description:
|
|
403
|
-
'TanStack Router bridge: defineNav/navGroup/navTarget (one typed nav definition) + useNav (sections + mobileNav, spread onto BasaltShell) + useBasaltNav (active route) + useRouterBreadcrumbs + createSearchStore (typed URL > localStorage > fallback store over field.enum/multi/range/number/boolean/string; deprecated createSearchParamStore/createMultiSearchParamStore wrappers
|
|
416
|
+
'TanStack Router bridge: defineNav/navGroup/navTarget (one typed nav definition) + useNav (sections + mobileNav, spread onto BasaltShell) + useBasaltNav (active route) + useRouterBreadcrumbs + createSearchStore (typed URL > localStorage > fallback store over field.enum/multi/range/number/boolean/string; the deprecated createSearchParamStore/createMultiSearchParamStore wrappers were removed in 1.29.0, C1 consolidation)',
|
|
404
417
|
optionalPeers: ['@tanstack/react-router'],
|
|
405
418
|
globs: {
|
|
406
419
|
shipped: [],
|
|
@@ -415,9 +428,13 @@ export const SURFACES = {
|
|
|
415
428
|
rule: 'batteries',
|
|
416
429
|
skill: ['basalt-design'],
|
|
417
430
|
guardKinds: [],
|
|
418
|
-
|
|
431
|
+
// The one change in the 1.28.0 forms minor a compiler cannot see: `inputProps` stopped
|
|
432
|
+
// returning `key`, and the pre-1.28.0 spread still type-checks, renders and validates — it
|
|
433
|
+
// only stops resetting. `warn` through the 1.30.0 grace because it fires on what every
|
|
434
|
+
// consumer ships today (`PLUGIN_RULE_GRACE`).
|
|
435
|
+
pluginRules: ['forms-field-key'],
|
|
419
436
|
description:
|
|
420
|
-
'Mantine form
|
|
437
|
+
'Mantine form layer: useBasaltForm + inputProps/fieldKey (two calls — a spread `key` is a React 19 warning; the deprecated `field` alias for `inputProps` was removed in 1.29.0, C1 consolidation), the FormSection/FormRow/FormGroup/FormActions layout (FormRow is law C1’s form row), useFormSubmit (submit state, decoded errors, server fieldErrors, focus-first-error, validateAsync), FormStateProvider disable propagation, useFieldArray, FormErrorSummary, useFormDraft with autosave (Standard Schema)',
|
|
421
438
|
optionalPeers: ['@mantine/form'],
|
|
422
439
|
forbiddenImports: [],
|
|
423
440
|
},
|
|
@@ -445,18 +462,6 @@ export const SURFACES = {
|
|
|
445
462
|
optionalPeers: ['@mantine/spotlight', '@mantine/modals', '@tanstack/react-hotkeys'],
|
|
446
463
|
forbiddenImports: [],
|
|
447
464
|
},
|
|
448
|
-
'./data': {
|
|
449
|
-
kind: 'doctrine',
|
|
450
|
-
layer: 'mantine-coupled',
|
|
451
|
-
rule: 'batteries',
|
|
452
|
-
skill: ['basalt-design'],
|
|
453
|
-
guardKinds: [],
|
|
454
|
-
pluginRules: [],
|
|
455
|
-
description:
|
|
456
|
-
'Convenience barrel pulling both TanStack Table + Virtual peer groups: BasaltDataTable, BasaltVirtualList (Mantine-rendered) — prefer ./data/table or ./data/virtual for per-feature opt-in',
|
|
457
|
-
optionalPeers: ['@tanstack/react-table', '@tanstack/react-virtual'],
|
|
458
|
-
forbiddenImports: [],
|
|
459
|
-
},
|
|
460
465
|
'./data/table': {
|
|
461
466
|
kind: 'doctrine',
|
|
462
467
|
layer: 'mantine-coupled',
|
|
@@ -554,12 +559,15 @@ export const SURFACES = {
|
|
|
554
559
|
// window, since a regex scan has no ancestry. Same law, same wave, same promotion.
|
|
555
560
|
guardKinds: ['raw-selection-control'],
|
|
556
561
|
// The control tier itself (laws C1/C3/C5/C9). `hand-rolled-filter`, `control-size-literal` and
|
|
557
|
-
// `responsive-twin` all ship `error`;
|
|
558
|
-
// `PLUGIN_RULE_GRACE`,
|
|
559
|
-
//
|
|
562
|
+
// `responsive-twin` all ship `error`; the two C1 placement rules are the grace entries in
|
|
563
|
+
// `PLUGIN_RULE_GRACE`, both promoting at 1.30.0 — `control-outside-home` re-dated against the
|
|
564
|
+
// wave-7 measurement, `bound-control-outside-home` new since 1.28.0 (ASIDE-SPEC G5: the basalt
|
|
565
|
+
// half of C1, where a bound control in a section body rendered as a stray pill). The budget
|
|
566
|
+
// rules live on `.` with `PageBar` itself.
|
|
560
567
|
pluginRules: [
|
|
561
568
|
'hand-rolled-filter',
|
|
562
569
|
'control-outside-home',
|
|
570
|
+
'bound-control-outside-home',
|
|
563
571
|
'control-size-literal',
|
|
564
572
|
'responsive-twin',
|
|
565
573
|
],
|
|
@@ -572,9 +580,26 @@ export const SURFACES = {
|
|
|
572
580
|
'C12 — one shape for refresh/sync (SyncButton); only the alias table sees a renamed copy',
|
|
573
581
|
],
|
|
574
582
|
description:
|
|
575
|
-
'The control tier (docs/CONTROLS-SPEC.md §3): FilterSet (nowrap row + measured +N fold + the mobile Filters (n) sheet), RangeFilter/CompareFilter/SelectFilter/MultiSelectFilter/NumberFilter/SearchFilter/ToggleFilter (each bound to a FieldHandle — no value/onChange/size, law C2/C5; NumberFilter is the field.number lane, a radio list over `options` or a stepper without), ViewTabs, and the action/sync family (ActionGroup, OverflowMenu, SyncButton, BarAction/GlobalAction). Every control owns its own desktop/mobile swap in CSS (C9) and renders size="ctl" internally. Resolves and renders with NO @mantine/dates installed — the custom date picker is injected through RangeFilter.customPicker from ./controls-dates.',
|
|
583
|
+
'The control tier (docs/CONTROLS-SPEC.md §3): FilterSet (nowrap row + measured +N fold + the mobile Filters (n) sheet), RangeFilter/CompareFilter/SelectFilter/MultiSelectFilter/NumberFilter/SearchFilter/ToggleFilter (each bound to a FieldHandle — no value/onChange/size, law C2/C5; NumberFilter is the field.number lane, a radio list over `options` or a stepper without), ViewTabs, and the action/sync family (ActionGroup, OverflowMenu, SyncButton, BarAction/GlobalAction). THREE surfaces, picked by the home and never by a prop (useFilterSurface): pill in a PageBar row, sheet in the mobile Filters (n) drawer, panel in a PageAside body — where every control renders an inspector/facet ROW instead of a chip (docs/ASIDE-SPEC.md §3). PanelRow is that row primitive (label above, hint, mono readout, an `end` control on the label line) and SliderControl is the one bound control with no pill form at all; the counts/max props on MultiSelectFilter render the Foundry facet list there. Every control owns its own desktop/mobile swap in CSS (C9) and renders size="ctl" internally. Resolves and renders with NO @mantine/dates installed — the custom date picker is injected through RangeFilter.customPicker from ./controls-dates.',
|
|
576
584
|
optionalPeers: [],
|
|
577
|
-
|
|
585
|
+
// `@mantine/dates` is an optional peer basaltViteConfig pre-bundles the whole @mantine scope
|
|
586
|
+
// for — a consumer without the peer (linewatch) must never resolve it through this surface.
|
|
587
|
+
// Nothing under src/controls may import it, statically or lazily — repo-local only, same
|
|
588
|
+
// pattern as MANTINE_BANS above (a shipped ban would be redundant with peerDependenciesMeta).
|
|
589
|
+
globs: {
|
|
590
|
+
shipped: [],
|
|
591
|
+
repo: ['packages/basalt-ui/src/controls/**'],
|
|
592
|
+
},
|
|
593
|
+
forbiddenImports: [
|
|
594
|
+
v(
|
|
595
|
+
'@mantine/dates',
|
|
596
|
+
'@mantine/dates is an OPTIONAL peer (docs/CONTROLS-SPEC.md §3) — ./controls must resolve with no @mantine/dates installed. The one reach lives in src/controls-dates/, injected into range-filter.tsx’s customPicker seam.',
|
|
597
|
+
),
|
|
598
|
+
vg(
|
|
599
|
+
'@mantine/dates/*',
|
|
600
|
+
'@mantine/dates is an OPTIONAL peer (docs/CONTROLS-SPEC.md §3) — ./controls must resolve with no @mantine/dates installed. The one reach lives in src/controls-dates/, injected into range-filter.tsx’s customPicker seam.',
|
|
601
|
+
),
|
|
602
|
+
],
|
|
578
603
|
},
|
|
579
604
|
'./controls-dates': {
|
|
580
605
|
kind: 'doctrine',
|
|
@@ -600,28 +625,15 @@ export const SURFACES = {
|
|
|
600
625
|
optionalPeers: [],
|
|
601
626
|
// Consumers import basalt-ui/state from node_modules (lint-ignored), so there is nothing to
|
|
602
627
|
// enforce consumer-side, and a shipped **/state* glob would wrongly hit consumers' own
|
|
603
|
-
// Mantine-using state files. Enforce
|
|
628
|
+
// Mantine-using state files. Enforce basalt's own barrel AND its implementation files.
|
|
604
629
|
globs: {
|
|
605
630
|
shipped: [],
|
|
606
|
-
repo: ['packages/basalt-ui/src/state.ts'],
|
|
631
|
+
repo: ['packages/basalt-ui/src/state.ts', 'packages/basalt-ui/src/state/**'],
|
|
607
632
|
},
|
|
608
633
|
// @visx/* ban dropped — `basalt/visx-boundary` now bans it universally outside charts.
|
|
609
634
|
forbiddenImports: [...MANTINE_BANS],
|
|
610
635
|
},
|
|
611
636
|
|
|
612
|
-
'./connectivity': {
|
|
613
|
-
kind: 'doctrine',
|
|
614
|
-
layer: 'mantine-coupled',
|
|
615
|
-
rule: 'mantine',
|
|
616
|
-
skill: ['basalt-app'],
|
|
617
|
-
guardKinds: [],
|
|
618
|
-
pluginRules: [],
|
|
619
|
-
description:
|
|
620
|
-
'ConnectivityProvider (aggregates browser online/offline, React Query onlineManager, SSE, and health-check pings into one status), useConnectivity, and ConnectivityIndicator — auto-mounted by BasaltProvider',
|
|
621
|
-
optionalPeers: [],
|
|
622
|
-
forbiddenImports: [],
|
|
623
|
-
},
|
|
624
|
-
|
|
625
637
|
// ── Non-JS published assets (ToolingSpec; not JS subpaths — check-coverage exempts these) ─────
|
|
626
638
|
'./styles.css': {
|
|
627
639
|
kind: 'tooling',
|
|
@@ -660,7 +672,10 @@ export const SURFACES = {
|
|
|
660
672
|
rule: 'batteries',
|
|
661
673
|
skill: ['basalt-app'],
|
|
662
674
|
guardKinds: [],
|
|
663
|
-
|
|
675
|
+
// query-dual-import / query-fn-unwrap: reassigned here from the now-dropped `./query` surface
|
|
676
|
+
// (C1 consolidation — createBasaltQueryClient/unwrap/BasaltQueryDevtools are root barrel
|
|
677
|
+
// exports now, but their doctrine stays `batteries` — "use the shipped thing" — not `mantine`).
|
|
678
|
+
pluginRules: ['query-dual-import', 'query-fn-unwrap'],
|
|
664
679
|
globs: {
|
|
665
680
|
// Shipped is a catch-all (not just src/**+app/**) so consumer code under components/, lib/,
|
|
666
681
|
// features/, etc. is also covered. The @visx/*-only-in-charts and Mantine-free charts/tokens
|
package/src/theme/ctl-theme.tsx
CHANGED
|
@@ -78,6 +78,16 @@ export const CTL_THEME: MantineThemeOverride = {
|
|
|
78
78
|
},
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
/**
|
|
82
|
+
* **`Slider` is deliberately NOT here, and `--slider-size-ctl` still is** (`theme/index.ts`). The
|
|
83
|
+
* tier's var set is what the size means, and `controls/slider-control.tsx` states `size="ctl"`
|
|
84
|
+
* itself the way every control on `./controls` does. Putting it in this map instead would widen
|
|
85
|
+
* `basalt/control-size-literal` — the rule is scoped to `CTL_THEME_TAGS`, ships at `error`, and a
|
|
86
|
+
* widened `error` rule lands its new form with no grace period at all (C16, `docs/CONTROLS-SPEC.md`
|
|
87
|
+
* §6). A `Slider` a consumer sizes by hand in a slot therefore keeps working; the one basalt draws
|
|
88
|
+
* is on the tier because it says so.
|
|
89
|
+
*/
|
|
90
|
+
|
|
81
91
|
/**
|
|
82
92
|
* The `tier="widget"` slot theme — ActionIcon-ONLY, at the 24px `size="icon"` step
|
|
83
93
|
* (`--ai-size-icon` → `--vx-space-control-height-widget`, `docs/CONTROLS-SPEC.md` §5).
|
package/src/theme/index.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
Accordion,
|
|
20
20
|
ActionIcon,
|
|
21
21
|
Alert,
|
|
22
|
+
AppShell,
|
|
22
23
|
Badge,
|
|
23
24
|
Breadcrumbs,
|
|
24
25
|
Button,
|
|
@@ -103,6 +104,13 @@ export { useBasaltSpacing } from './use-basalt-spacing'
|
|
|
103
104
|
// merge/precedence contract.
|
|
104
105
|
export { CTL_THEME, CtlSlot, type CtlSlotProps } from './ctl-theme'
|
|
105
106
|
|
|
107
|
+
// `ThemeToggle` moved into this directory (C1 consolidation, merging the former `theme-toggle/`
|
|
108
|
+
// dir) but is deliberately NOT re-exported from this barrel: it imports `motion/react` eagerly,
|
|
109
|
+
// and this file resolves from `./controls` (via `CtlSlot`) among others — re-exporting it here
|
|
110
|
+
// would make `motion` a hard transitive peer of every consumer of this barrel, not just of
|
|
111
|
+
// `ThemeToggle` itself. The root barrel (`src/index.ts`) imports it straight from
|
|
112
|
+
// `./theme/theme-toggle`, unchanged from before the merge.
|
|
113
|
+
|
|
106
114
|
// Typed `theme.other.basaltDerive` / `theme.other.basaltFonts` / `theme.other.basaltRadius` /
|
|
107
115
|
// `theme.other.basaltDensity` reads (Mantine's `MantineThemeOther` ships an index signature, so
|
|
108
116
|
// this merge is additive — no widening of the existing `[key: string]: any`). Set by
|
|
@@ -547,6 +555,24 @@ function buildTheme(data: PaletteData, options: BuildThemeOptions = {}): Mantine
|
|
|
547
555
|
},
|
|
548
556
|
},
|
|
549
557
|
}),
|
|
558
|
+
// Region seams (docs/DESIGN-SPEC.md §5, §8 #12): the ONE lever for every AppShell edge —
|
|
559
|
+
// Mantine declares `--app-shell-border-color` on the shell element per scheme, which beats
|
|
560
|
+
// an inherited `:root` value, so a theme-level `vars` override (merged into the root's
|
|
561
|
+
// inline style) wins. Sections keep their default `withBorder: true`; the color is this.
|
|
562
|
+
// `styles` would also land on the same root style attribute, just through Mantine's own
|
|
563
|
+
// `[key: string]: any` index rather than a typed field.
|
|
564
|
+
// Cast: `AppShellCssVariables` declares only `--app-shell-transition-duration` /
|
|
565
|
+
// `-timing-function`, yet Mantine's OWN AppShell.css sets `--app-shell-border-color` on the
|
|
566
|
+
// same root.
|
|
567
|
+
AppShell: AppShell.extend({
|
|
568
|
+
vars: () =>
|
|
569
|
+
({ root: { '--app-shell-border-color': 'var(--vx-divider)' } }) as unknown as {
|
|
570
|
+
root: Record<
|
|
571
|
+
'--app-shell-transition-duration' | '--app-shell-transition-timing-function',
|
|
572
|
+
string | undefined
|
|
573
|
+
>
|
|
574
|
+
},
|
|
575
|
+
}),
|
|
550
576
|
// "Ink earns its color" — a nav selection is UI state, not the identity accent on the LABEL.
|
|
551
577
|
// The active item is a SELECTED ROW, not a raised control: the same ink-tint idiom as the
|
|
552
578
|
// hover state (one step stronger, ink-9%), no panel fill and no `shadow-card` — a raised,
|
|
@@ -733,13 +759,32 @@ function buildTheme(data: PaletteData, options: BuildThemeOptions = {}): Mantine
|
|
|
733
759
|
classNames: (_theme, props) =>
|
|
734
760
|
(props.variant ?? 'filled') === 'filled' ? { label: controlsClasses.chipLabel } : {},
|
|
735
761
|
}),
|
|
736
|
-
// Track = ink-6% tint, radius 7, 2px padding; active segment = panel
|
|
737
|
-
// radius 5. `--sc-radius`/`--sc-color` don't reach the root track background
|
|
738
|
-
// hardcodes that to a raw gray step), so it's forced via `styles.root` same as
|
|
739
|
-
// The active-only ink label color + weight can't live in the flat `styles.label`
|
|
740
|
-
// (applies to every option regardless of state), so it's in segmented-control.module.css
|
|
762
|
+
// Track = ink-6% tint, radius 7, 2px padding; active segment = an ink-mixed panel fill +
|
|
763
|
+
// `shadow-ctrl`, radius 5. `--sc-radius`/`--sc-color` don't reach the root track background
|
|
764
|
+
// (Mantine hardcodes that to a raw gray step), so it's forced via `styles.root` same as
|
|
765
|
+
// Card/Paper. The active-only ink label color + weight can't live in the flat `styles.label`
|
|
766
|
+
// object (applies to every option regardless of state), so it's in segmented-control.module.css
|
|
741
767
|
// instead — same pattern as NavLink's active-icon accent.
|
|
742
768
|
//
|
|
769
|
+
// The indicator's fill is `color-mix(in srgb, var(--vx-ink) 12%, var(--vx-surface-panel))`,
|
|
770
|
+
// not a flat `--vx-surface-panel` — a flat panel fill is indistinguishable from the track's
|
|
771
|
+
// OWN parent on the one surface that IS `--vx-surface-panel` (the aside's `panel` filter
|
|
772
|
+
// surface, `docs/CONTROLS-SPEC.md` §3): the track (ink-6% over panel) and the indicator (panel,
|
|
773
|
+
// flat) then differ by 6% ink with no other cue, and `shadow-ctrl` alone (a bare
|
|
774
|
+
// `0 1px 2px` drop, no ring) reads as "barely there". This is NOT the `raised`-token doctrine
|
|
775
|
+
// in `tokens/palette.ts` (`SHADOW.raised`'s "a default control nested in a Card has no boundary
|
|
776
|
+
// but the drop — raise the drop, do not reintroduce an edge") — that doctrine is scoped to the
|
|
777
|
+
// shared Button/ActionIcon/Input depth token, whose fill is a real surface color a border would
|
|
778
|
+
// outline. The indicator's own fill has no such constraint, so a second ink-mix step (12%, double
|
|
779
|
+
// the track's) is the fix: it holds up on every surface the control mounts on, not only the
|
|
780
|
+
// panel-nested one.
|
|
781
|
+
//
|
|
782
|
+
// `.control`'s `min-width: 0` (`segmented-control.module.css`) is the other half of an even
|
|
783
|
+
// `fullWidth` split — Mantine's own `.control` ships `flex: 1` with no `min-width` override, so
|
|
784
|
+
// the initial `auto` floors every option at its min-content width and a `fullWidth` track splits
|
|
785
|
+
// UNEVENLY. The label already carries `overflow: hidden` + `text-overflow: ellipsis`, so a
|
|
786
|
+
// label that no longer fits its equal share truncates instead of forcing the column wide.
|
|
787
|
+
//
|
|
743
788
|
// The track's padding is `SPACE_FIXED.segmentedTrackInset`, a plain literal — NOT a
|
|
744
789
|
// `--vx-space-*` var — because it is density-EXEMPT: it is load-bearing for the nested-corner
|
|
745
790
|
// law (`RADIUS.card === RADIUS_STEP.tight + segmentedTrackInset`, see that constant's doc in
|
|
@@ -748,7 +793,10 @@ function buildTheme(data: PaletteData, options: BuildThemeOptions = {}): Mantine
|
|
|
748
793
|
// density.
|
|
749
794
|
SegmentedControl: SegmentedControl.extend({
|
|
750
795
|
defaultProps: { radius: radius.card },
|
|
751
|
-
classNames: {
|
|
796
|
+
classNames: {
|
|
797
|
+
label: segmentedControlClasses.label,
|
|
798
|
+
control: segmentedControlClasses.control,
|
|
799
|
+
},
|
|
752
800
|
// `label` gets a `ctl`-only min-height (function-form `styles`, same `props.size === …` gate
|
|
753
801
|
// as Button/ActionIcon/Input's `vars` overrides above) so a `size="ctl"` SegmentedControl
|
|
754
802
|
// matches the ctl Button/Input box exactly instead of following its own fixed padding — see
|
|
@@ -758,21 +806,57 @@ function buildTheme(data: PaletteData, options: BuildThemeOptions = {}): Mantine
|
|
|
758
806
|
root: {
|
|
759
807
|
backgroundColor: 'color-mix(in srgb, var(--vx-ink) 6%, transparent)',
|
|
760
808
|
padding: `${SPACE_FIXED.segmentedTrackInset}px`,
|
|
809
|
+
// The OUTER safety net a `.control`'s own `min-width: 0` (`segmented-control.module.css`)
|
|
810
|
+
// cannot provide by itself: that rule only lets each SEGMENT shrink below its own label's
|
|
811
|
+
// content width so `fullWidth` can split evenly — it does nothing to stop the WHOLE TRACK
|
|
812
|
+
// from being squeezed by an ANCESTOR flex row with room to spare (a `Section`/`StatCard`
|
|
813
|
+
// header's `actions` slot), which silently clipped "Absolute" to "Absolut" with no
|
|
814
|
+
// ellipsis at all. `min-width: max-content` pins the root to the sum of its labels'
|
|
815
|
+
// natural widths — it now OVERFLOWS a too-narrow ancestor instead of shrinking into it,
|
|
816
|
+
// which is also what makes the overflow MEASURABLE (`panel-row.tsx`'s `useTrackFits`
|
|
817
|
+
// compares the root's rendered width against its parent's available space). Inside that
|
|
818
|
+
// floor, `fullWidth` with room to spare still splits its segments evenly exactly as
|
|
819
|
+
// before — the floor only ever raises the STARTING point flex-grow distributes surplus
|
|
820
|
+
// from, never removes the segments' own equal-share arithmetic.
|
|
821
|
+
minWidth: 'max-content',
|
|
761
822
|
},
|
|
762
823
|
indicator: {
|
|
763
|
-
backgroundColor: 'var(--vx-surface-panel)',
|
|
824
|
+
backgroundColor: 'color-mix(in srgb, var(--vx-ink) 12%, var(--vx-surface-panel))',
|
|
764
825
|
boxShadow: 'var(--vx-shadow-ctrl)',
|
|
765
826
|
borderRadius: 'var(--vx-radius-tight)',
|
|
766
827
|
},
|
|
767
828
|
// Conditionally spread the WHOLE key (never a present `label: undefined`) — the package
|
|
768
829
|
// builds under `exactOptionalPropertyTypes`, which treats a key present-but-`undefined` as
|
|
769
830
|
// a type error distinct from the key being absent.
|
|
831
|
+
//
|
|
832
|
+
// `width: '100%'` + `minWidth: 0` are load-bearing, not cosmetic: `inline-flex` is a
|
|
833
|
+
// shrink-to-fit box by default (like `inline-block`), so switching `.label` to it for
|
|
834
|
+
// vertical centering ALSO switched its width from "fills `.control`'s box" (a plain
|
|
835
|
+
// `display: block`'s default) to "sized to its own content" — which is invisible until
|
|
836
|
+
// `fullWidth` forces every `.control` to an EQUAL share (`segmented-control.module.css`'s
|
|
837
|
+
// `min-width: 0`): a label wider than that equal share then rendered at its own full
|
|
838
|
+
// content width, overflowing its column and getting hard-clipped by the track's own
|
|
839
|
+
// `overflow: hidden` instead of ellipsizing inside it ("Same period last year" cut off
|
|
840
|
+
// mid-word). `width: 100%` makes the inline-flex box fill `.control` again, and `minWidth:
|
|
841
|
+
// 0` is the same flex-item footgun `.control` itself needed — `.label` is ALSO a flex
|
|
842
|
+
// container's item once `fullWidth`'s `.root { display: flex }` applies, so it inherits an
|
|
843
|
+
// `auto` (content-based) minimum unless told otherwise.
|
|
770
844
|
...(props.size === 'ctl'
|
|
771
845
|
? {
|
|
772
846
|
label: {
|
|
773
847
|
display: 'inline-flex',
|
|
774
848
|
alignItems: 'center',
|
|
775
849
|
minHeight: `calc(var(--vx-space-control-height-ctl) * var(--mantine-scale) - ${2 * SPACE_FIXED.segmentedTrackInset}px)`,
|
|
850
|
+
// `width: '100%'` only when `fullWidth` — it is what makes an EQUAL-SPLIT
|
|
851
|
+
// segment's label fill its column instead of shrink-to-fit around its own text
|
|
852
|
+
// (the "Same period last year" clipped-with-no-ellipsis case). A NON-`fullWidth`
|
|
853
|
+
// track (a header's `actions` slot, two or three options) wants the opposite: its
|
|
854
|
+
// label sized to its OWN content, so the root's `min-width: max-content` (below)
|
|
855
|
+
// measures the label's true natural width rather than an equal 1/2 or 1/3 share
|
|
856
|
+
// computed through `.control`'s `flex-basis: 0%` — forcing `width: 100%` there
|
|
857
|
+
// too under-computed the shrink-to-fit root by a few px ("Absolute" clipped to
|
|
858
|
+
// "Absolut" even with the floor in place).
|
|
859
|
+
...(props.fullWidth === true ? { width: '100%', minWidth: 0 } : {}),
|
|
776
860
|
},
|
|
777
861
|
}
|
|
778
862
|
: {}),
|
|
@@ -896,9 +980,13 @@ function buildTheme(data: PaletteData, options: BuildThemeOptions = {}): Mantine
|
|
|
896
980
|
},
|
|
897
981
|
},
|
|
898
982
|
}),
|
|
899
|
-
// Modal/Drawer: overlay surface + overlay shadow on the content
|
|
900
|
-
// Mantine
|
|
901
|
-
//
|
|
983
|
+
// Modal/Drawer: overlay surface + overlay shadow on the content, the SAME surface on the
|
|
984
|
+
// header. Mantine's header is `position: sticky` by default, painted `--mantine-color-body` —
|
|
985
|
+
// basalt used to drop that to `transparent`, which reads fine over a body that never scrolls
|
|
986
|
+
// under it but shows every scrolled row straight through the title once one does (the mobile
|
|
987
|
+
// filter sheet, the shell's "More" nav sheet). The header stays sticky; only its own
|
|
988
|
+
// background moves back to opaque, matching the content box it sits above rather than the page
|
|
989
|
+
// behind it. Title = head font; close button = the ghost idiom (floating.module.css).
|
|
902
990
|
Modal: Modal.extend({
|
|
903
991
|
defaultProps: { radius: radius.floating },
|
|
904
992
|
classNames: { close: floatingClasses.closeButton },
|
|
@@ -907,7 +995,7 @@ function buildTheme(data: PaletteData, options: BuildThemeOptions = {}): Mantine
|
|
|
907
995
|
backgroundColor: 'var(--vx-surface-overlay)',
|
|
908
996
|
boxShadow: 'var(--vx-shadow-overlay)',
|
|
909
997
|
},
|
|
910
|
-
header: { backgroundColor: '
|
|
998
|
+
header: { backgroundColor: 'var(--vx-surface-overlay)' },
|
|
911
999
|
title: {
|
|
912
1000
|
fontFamily: 'var(--basalt-font-head)',
|
|
913
1001
|
fontWeight: 550,
|
|
@@ -922,7 +1010,7 @@ function buildTheme(data: PaletteData, options: BuildThemeOptions = {}): Mantine
|
|
|
922
1010
|
backgroundColor: 'var(--vx-surface-overlay)',
|
|
923
1011
|
boxShadow: 'var(--vx-shadow-overlay)',
|
|
924
1012
|
},
|
|
925
|
-
header: { backgroundColor: '
|
|
1013
|
+
header: { backgroundColor: 'var(--vx-surface-overlay)' },
|
|
926
1014
|
title: {
|
|
927
1015
|
fontFamily: 'var(--basalt-font-head)',
|
|
928
1016
|
fontWeight: 550,
|
|
@@ -1153,13 +1241,30 @@ const CTL_INPUT_PADDING_Y = 4
|
|
|
1153
1241
|
const CTL_SEGMENT_PADDING_Y = 2.5
|
|
1154
1242
|
/** A `ctl` Combobox chevron. Mantine's own `xs` value; restated because it cannot be referenced. */
|
|
1155
1243
|
const CTL_CHEVRON_SIZE = 14
|
|
1244
|
+
/**
|
|
1245
|
+
* The `ctl` NumberInput's stepper column, in px — Mantine's own `xs` pair (`--ni-chevron-size-xs`,
|
|
1246
|
+
* `--ni-right-section-width-xs`; `NumberInput.css`), restated for the same reason `CTL_CHEVRON_SIZE`
|
|
1247
|
+
* is: `xs` is Mantine's own `--input-height-xs: 30px`, the ONE built-in size tier that already equals
|
|
1248
|
+
* the `ctl` height, so its stepper column is the size a 30px NumberInput was always meant to carry.
|
|
1249
|
+
* Both vars are load-bearing, not cosmetic — `NumberInput.mjs`'s `varsResolver` sets
|
|
1250
|
+
* `--ni-chevron-size` via `getSize(size, 'ni-chevron-size')` (undeclared at `:root` for a custom
|
|
1251
|
+
* size, so a `size="ctl"` NumberInput fell back to the property's initial value, and
|
|
1252
|
+
* `.controls { max-width: calc(var(--ni-chevron-size) * 1.7) }` — `NumberInput.css:21` — resolved to
|
|
1253
|
+
* an invalid `calc()` and dropped its `max-width` entirely, so the stacked chevrons stretched across
|
|
1254
|
+
* the whole right section), and `rightSectionWidth` defaults to a raw
|
|
1255
|
+
* `` `var(--ni-right-section-width-${size})` `` template (`NumberInput.mjs:412`) rather than a
|
|
1256
|
+
* `getSize` call, so `ctl-tier-coverage.test.ts`'s scan cannot discover it — it is declared here
|
|
1257
|
+
* because the CSS reads it, not because a scan requires it.
|
|
1258
|
+
*/
|
|
1259
|
+
const CTL_NUMBER_CHEVRON_SIZE = 10
|
|
1260
|
+
const CTL_NUMBER_RIGHT_SECTION_WIDTH = 17
|
|
1156
1261
|
/**
|
|
1157
1262
|
* The `ctl` tier's Radio/Checkbox indicator box, in px — 16, the SAME square
|
|
1158
1263
|
* `theme/icon-slot.module.css` gives every icon in the tier, and for the same reason: a 13.5px
|
|
1159
1264
|
* option label needs a mark it reads as part of the row rather than as a control beside it. Mantine's
|
|
1160
1265
|
* default is `sm` (20px) and its `md` is 24px, both of which made the popover a column of controls
|
|
1161
|
-
* (
|
|
1162
|
-
*
|
|
1266
|
+
* (the sheet/panel forms found the same thing and went further — `docs/CONTROLS-SPEC.md` §3's
|
|
1267
|
+
* `PanelChoice`/facet rows draw no Radio/Checkbox indicator at all, a hidden native input instead).
|
|
1163
1268
|
*/
|
|
1164
1269
|
const CTL_TOGGLE_SIZE = 16
|
|
1165
1270
|
/**
|
|
@@ -1183,6 +1288,14 @@ const CTL_SWITCH_THUMB_SIZE = 12
|
|
|
1183
1288
|
* the last tier whose label still fits an 18px track. */
|
|
1184
1289
|
const CTL_SWITCH_TRACK_LABEL_SIZE = 5
|
|
1185
1290
|
const CTL_SWITCH_TRACK_LABEL_PADDING = 2
|
|
1291
|
+
/**
|
|
1292
|
+
* The `ctl` Slider's TRACK height, in px. The thumb is not a second number: Mantine derives it as
|
|
1293
|
+
* `calc(var(--slider-size) * 2)` (`Slider.mjs`'s `varsResolver`), so 6 lands a 12px thumb — the same
|
|
1294
|
+
* moving part the `ctl` Switch carries, which is what makes a row of inspector rows read as one
|
|
1295
|
+
* family. Mantine's own `md` (8 → a 16px thumb) is the tier's whole icon box, and its `xs`
|
|
1296
|
+
* (4 → 8px) is smaller than the tier's radio dot.
|
|
1297
|
+
*/
|
|
1298
|
+
const CTL_SLIDER_TRACK_SIZE = 6
|
|
1186
1299
|
|
|
1187
1300
|
/**
|
|
1188
1301
|
* The `size="ctl"` / `size="icon"` Mantine size-tier var sets (`docs/CONTROLS-SPEC.md` §5, C5) —
|
|
@@ -1241,6 +1354,8 @@ function ctlSizeVars(): Record<string, string> {
|
|
|
1241
1354
|
'--sc-padding-ctl': `${pxRem(CTL_SEGMENT_PADDING_Y)} calc(${pxRem(CTL_PADDING_X)} * var(--mantine-scale))`,
|
|
1242
1355
|
'--combobox-option-padding-ctl': `${pxRem(CTL_SEGMENT_PADDING_Y)} ${pxRem(CTL_PADDING_X)}`,
|
|
1243
1356
|
'--combobox-chevron-size-ctl': pxRem(CTL_CHEVRON_SIZE),
|
|
1357
|
+
'--ni-chevron-size-ctl': pxRem(CTL_NUMBER_CHEVRON_SIZE),
|
|
1358
|
+
'--ni-right-section-width-ctl': `calc(${pxRem(CTL_NUMBER_RIGHT_SECTION_WIDTH)} * var(--mantine-scale))`,
|
|
1244
1359
|
'--badge-height-ctl': ctlHeight,
|
|
1245
1360
|
'--badge-padding-x-ctl': `calc(${pxRem(CTL_PADDING_X)} * var(--mantine-scale))`,
|
|
1246
1361
|
'--badge-fz-ctl': `calc(${pxRem(VX.text.xs)} * var(--mantine-scale))`,
|
|
@@ -1262,6 +1377,10 @@ function ctlSizeVars(): Record<string, string> {
|
|
|
1262
1377
|
'--switch-thumb-size-ctl': `calc(${pxRem(CTL_SWITCH_THUMB_SIZE)} * var(--mantine-scale))`,
|
|
1263
1378
|
'--switch-label-font-size-ctl': pxRem(CTL_SWITCH_TRACK_LABEL_SIZE),
|
|
1264
1379
|
'--switch-track-label-padding-ctl': pxRem(CTL_SWITCH_TRACK_LABEL_PADDING),
|
|
1380
|
+
// Slider — the inspector row's control (`SliderControl`, `docs/ASIDE-SPEC.md` §1). One prefix
|
|
1381
|
+
// only: `slider-size` is the track, and every other dimension (the thumb, the root's inline
|
|
1382
|
+
// padding, the vertical hit box) is derived from it in `Slider.css`.
|
|
1383
|
+
'--slider-size-ctl': `calc(${pxRem(CTL_SLIDER_TRACK_SIZE)} * var(--mantine-scale))`,
|
|
1265
1384
|
}
|
|
1266
1385
|
}
|
|
1267
1386
|
|
|
@@ -1303,7 +1422,8 @@ function buildCssVariablesResolver(data: PaletteData): CSSVariablesResolver {
|
|
|
1303
1422
|
'--mantine-color-default-border': 'transparent',
|
|
1304
1423
|
'--mantine-color-dimmed': `var(--vx-neutral, ${NEUTRAL.neutral.light})`, // secondary / muted text
|
|
1305
1424
|
'--mantine-color-text': `var(--vx-ink, ${INK.ink.light})`, // primary body/heading text
|
|
1306
|
-
|
|
1425
|
+
// `--app-shell-border-color` is set by `components.AppShell.extend({ vars })` above — this
|
|
1426
|
+
// entry was dead (an element-level declaration always beats an inherited `:root` value).
|
|
1307
1427
|
// THE strict-surface lever. Mantine components do NOT chain border/surface colors through
|
|
1308
1428
|
// `--mantine-color-default-*`; each hardcodes a RAW ramp step (`--mantine-color-gray-{2,3,4}`
|
|
1309
1429
|
// on light) directly — which is why AppShell/Table/Input/Divider/Tabs/Popover/Accordion borders
|
|
@@ -1330,7 +1450,7 @@ function buildCssVariablesResolver(data: PaletteData): CSSVariablesResolver {
|
|
|
1330
1450
|
'--mantine-color-default-border': 'transparent',
|
|
1331
1451
|
'--mantine-color-dimmed': `var(--vx-neutral, ${NEUTRAL.neutral.dark})`,
|
|
1332
1452
|
'--mantine-color-text': `var(--vx-ink, ${INK.ink.dark})`,
|
|
1333
|
-
|
|
1453
|
+
// See the light block above — `--app-shell-border-color` is set by `AppShell.extend` now.
|
|
1334
1454
|
// Dark components read `--mantine-color-dark-4` (border) raw. `buildDarkTuple` already sets
|
|
1335
1455
|
// dark-4, but to a slightly lighter step than the hairline token, so layout borders read
|
|
1336
1456
|
// marginally heavier than card borders. Pin dark-4 to the SAME "line" token for parity.
|