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
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { BasaltProps, SlotStylesProps } from '../common/props.js';
|
|
3
|
+
import type { DeltaPolarity } from './delta-badge.js';
|
|
4
|
+
export type WidgetHeaderTier = 'section' | 'widget' | 'group';
|
|
5
|
+
/**
|
|
6
|
+
* The four boxes a consumer can reach (`common/props.ts`): `root` is the header stack, `title` is
|
|
7
|
+
* the heading ELEMENT (`<h2>`/`<h3>`) rather than its row, `metric` is the hero `value`/`unit`/
|
|
8
|
+
* `delta` row, `icon` is the leading `IconSlot`.
|
|
9
|
+
*
|
|
10
|
+
* The other boxes this paints — the title row, the count tag, the actions span, the subtitle, the
|
|
11
|
+
* sparkline, the info bubble — are deliberately absent. Each is a one-shot readout basalt positions,
|
|
12
|
+
* not a layout box a consumer places, and `actions`/`sparkline` already take a `ReactNode` the
|
|
13
|
+
* caller can class itself.
|
|
14
|
+
*/
|
|
15
|
+
export type WidgetHeaderSlot = 'root' | 'title' | 'metric' | 'icon';
|
|
16
|
+
export type WidgetHeaderProps = BasaltProps & SlotStylesProps<WidgetHeaderSlot> & {
|
|
17
|
+
/** `section` renders an `<h2>` at the section-header height; `widget` renders an `<h3>` at the
|
|
18
|
+
* tighter icon-tier height, display-only; `group` also renders an `<h3>` but as the quietest
|
|
19
|
+
* heading rank on the page — mono micro uppercase faint, one step below `widget` — for an
|
|
20
|
+
* inspector/aside group label. `Section` resolves `group` automatically from the enclosing filter
|
|
21
|
+
* surface; it is never a call-site prop. */
|
|
22
|
+
tier: WidgetHeaderTier;
|
|
23
|
+
/** Head-font title (88% stretch, weight 550). */
|
|
24
|
+
title: string;
|
|
25
|
+
/** Optional leading icon, rendered before the title. Decorative — hidden from assistive tech. */
|
|
26
|
+
icon?: ReactNode;
|
|
27
|
+
/** Optional muted line rendered below the title row. */
|
|
28
|
+
subtitle?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Renders an info glyph BESIDE the heading (never inside it — this text would otherwise become
|
|
31
|
+
* part of the heading's accessible name, and an `info` paragraph read out in every headings list
|
|
32
|
+
* is what that cost). The glyph is named `More information`; the text itself reaches assistive
|
|
33
|
+
* tech through `aria-describedby` on a `role="tooltip"` bubble that opens on hover, focus and
|
|
34
|
+
* click — so a keyboard user gets it too. Mantine-free: a plain state bubble, not a Tooltip.
|
|
35
|
+
*/
|
|
36
|
+
info?: string;
|
|
37
|
+
/** Pre-formatted metric value (mono, hero size). Renders on its own row with `delta`, directly
|
|
38
|
+
* under the title row — never inline with the title. */
|
|
39
|
+
value?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The value's unit, rendered immediately after it on the hero row: muted, mono, `--vx-text-sm`.
|
|
42
|
+
*
|
|
43
|
+
* It exists because `value` is a pre-formatted `string` and a KPI's unit is not part of the
|
|
44
|
+
* number: `412` and `TSS` are two facts at two weights, and jamming them into one string paints
|
|
45
|
+
* the unit at the hero's 24px — which reads as a second numeral. `subtitle` was the only place a
|
|
46
|
+
* unit could go before this, and a unit on its own line under the value is a different claim (the
|
|
47
|
+
* BASIS: `7-day rolling`), so cards using both had to pick one.
|
|
48
|
+
*
|
|
49
|
+
* Never a substitute for the number's own formatting: a thousands separator, a currency symbol or
|
|
50
|
+
* a `%` belong in `value`, where they are part of how the numeral reads.
|
|
51
|
+
*/
|
|
52
|
+
unit?: string;
|
|
53
|
+
/** Signed delta rendered via `DeltaBadge`, on the same hero-metric row as `value`. */
|
|
54
|
+
delta?: number;
|
|
55
|
+
/** Comparison timeframe forwarded to `DeltaBadge` (e.g. `MoM`). */
|
|
56
|
+
deltaPeriod?: string;
|
|
57
|
+
/** Which sign reads as the good verdict — forwarded to `DeltaBadge`'s `polarity`. Defaults to
|
|
58
|
+
* `'up-good'` (today's behaviour). See {@link DeltaPolarity}. */
|
|
59
|
+
deltaPolarity?: DeltaPolarity;
|
|
60
|
+
/**
|
|
61
|
+
* Formats `delta` into the chip's label — forwarded to `DeltaBadge`'s `format`. Defaults to
|
|
62
|
+
* `${Math.abs(delta).toFixed(1)}%`.
|
|
63
|
+
*
|
|
64
|
+
* It exists because not every delta is a percentage: a pace card's trend is `0:12 /km` and a
|
|
65
|
+
* throughput card's is `0.3 km/h`, and the default printed both as a percent — a wrong unit on a
|
|
66
|
+
* KPI, which is worse than no chip. A FUNCTION rather than a label string, so the number stays the
|
|
67
|
+
* number: `delta` still drives the tone and the glyph, and there is exactly one place the sign is
|
|
68
|
+
* decided.
|
|
69
|
+
*
|
|
70
|
+
* The value arrives SIGNED, so a formatter that wants to print the sign itself (`−0:12 /km`) can —
|
|
71
|
+
* pair it with `deltaGlyph={false}` so the ▼ does not say the same thing twice.
|
|
72
|
+
*/
|
|
73
|
+
deltaFormat?: (delta: number) => string;
|
|
74
|
+
/** Render `DeltaBadge`'s ▲/▼ glyph. Defaults to `true`; a zero delta never shows one. Pass
|
|
75
|
+
* `false` when `deltaFormat` prints the sign itself. */
|
|
76
|
+
deltaGlyph?: boolean;
|
|
77
|
+
/** Trend visual slot, rendered below the metric row. Carries `data-placement="right"` so a
|
|
78
|
+
* wave-3 composer's `bleed` layout can select it. */
|
|
79
|
+
sparkline?: ReactNode;
|
|
80
|
+
/** Mono count tag rendered after the title (C11 — every table/list states its count). `0` is a
|
|
81
|
+
* real count and renders, distinct from omitting the prop entirely. */
|
|
82
|
+
count?: number;
|
|
83
|
+
/** Right-aligned slot (`margin-inline-start: auto`) — the C1/C5 home for header actions. */
|
|
84
|
+
actions?: ReactNode;
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* The named slices of {@link WidgetHeaderProps} its composers share, and the answer to audit B #2:
|
|
88
|
+
* four composers exposed four DIFFERENT subsets of the same base through four ad-hoc `Omit`s, so a
|
|
89
|
+
* consumer moving a KPI from `StatCard` → `ChartCard` → `Section` lost `unit`, `count`,
|
|
90
|
+
* `deltaFormat` or `deltaGlyph` with no compiler word about it. A slice is a `Pick` with a NAME:
|
|
91
|
+
* a composer states which slices it re-publishes, and an omission becomes a deliberate, readable
|
|
92
|
+
* line rather than an accident of whichever props the author happened to remember.
|
|
93
|
+
*
|
|
94
|
+
* The three are cut along the three ROWS `WidgetHeader` actually paints — the title row, the hero
|
|
95
|
+
* metric, and the delta chip on it — so "which slice does this composer take" and "which boxes does
|
|
96
|
+
* it draw" are the same question.
|
|
97
|
+
*
|
|
98
|
+
* Adopted by `StatCard` and `SettingsSection`. `Section` and `ChartCard` still cut their own
|
|
99
|
+
* subsets; both should compose these instead — the composer table in `docs/CONTROLS-SPEC.md` §2.2
|
|
100
|
+
* is the ledger of which one takes which.
|
|
101
|
+
*
|
|
102
|
+
* The title row: what every composer without exception publishes.
|
|
103
|
+
*/
|
|
104
|
+
export type WidgetHeaderTitleProps = Pick<WidgetHeaderProps, 'title' | 'icon' | 'subtitle' | 'info'>;
|
|
105
|
+
/**
|
|
106
|
+
* The hero metric row's value half. `value` is OPTIONAL here because it is on `WidgetHeader`; a
|
|
107
|
+
* composer whose whole reason to exist is the number (`StatCard`) redeclares it as required.
|
|
108
|
+
*/
|
|
109
|
+
export type WidgetHeaderMetricProps = Pick<WidgetHeaderProps, 'value' | 'unit'>;
|
|
110
|
+
/**
|
|
111
|
+
* The delta chip that rides the hero metric row — all five props together, never a subset. Splitting
|
|
112
|
+
* them is how `deltaFormat` came to type-check on `Section` and render nothing: a composer that
|
|
113
|
+
* publishes `delta` and not its formatter prints a percent sign over a pace.
|
|
114
|
+
*/
|
|
115
|
+
export type WidgetHeaderDeltaProps = Pick<WidgetHeaderProps, 'delta' | 'deltaPeriod' | 'deltaPolarity' | 'deltaFormat' | 'deltaGlyph'>;
|
|
116
|
+
/**
|
|
117
|
+
* The info affordance. A `title` attribute alone was never enough — it renders on hover only, so a
|
|
118
|
+
* keyboard user focusing the glyph saw nothing at all. This is the bubble `ChartCard` used to own
|
|
119
|
+
* before it composed `WidgetHeader`, moved down here so every tier gets the same behaviour:
|
|
120
|
+
* opens on hover/focus/click, closes on leave/blur/Escape/outside pointer-down, and is wired to the
|
|
121
|
+
* trigger with `aria-describedby` only while open.
|
|
122
|
+
*
|
|
123
|
+
* Exported from the MODULE but deliberately not from `src/widget-header/index.ts`: it is not a
|
|
124
|
+
* public primitive, it is the one info affordance basalt draws, and `controls/panel-row.tsx`
|
|
125
|
+
* composes it so an inspector row's `hint` is the same glyph, bubble and keyboard behaviour a
|
|
126
|
+
* `WidgetHeader`'s `info` is — not a second one that drifts.
|
|
127
|
+
*/
|
|
128
|
+
export declare function InfoGlyph({ text }: {
|
|
129
|
+
text: string;
|
|
130
|
+
}): import("react").JSX.Element;
|
|
131
|
+
export declare function WidgetHeader({ tier, title, icon, subtitle, info, value, unit, delta, deltaPeriod, deltaPolarity, deltaFormat, deltaGlyph, sparkline, count, actions, className, style, classNames, }: WidgetHeaderProps): import("react").JSX.Element;
|
|
132
|
+
//# sourceMappingURL=widget-header.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget-header.d.ts","sourceRoot":"","sources":["../../src/dashboard/widget-header.tsx"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAGlD,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE7D;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AAEnE,MAAM,MAAM,iBAAiB,GAAG,WAAW,GACzC,eAAe,CAAC,gBAAgB,CAAC,GAAG;IAClC;;;;gDAI4C;IAC5C,IAAI,EAAE,gBAAgB,CAAA;IACtB,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAA;IACb,iGAAiG;IACjG,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;4DACwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;qEACiE;IACjE,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAA;IACvC;4DACwD;IACxD,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;yDACqD;IACrD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;2EACuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,4FAA4F;IAC5F,OAAO,CAAC,EAAE,SAAS,CAAA;CACpB,CAAA;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC,CAAA;AAEpG;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,MAAM,CAAC,CAAA;AAE/E;;;;GAIG;AACH,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,iBAAiB,EACjB,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,aAAa,GAAG,YAAY,CACzE,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,+BA8CnD;AAED,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,KAAK,EACL,WAAW,EACX,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,KAAK,EACL,OAAO,EACP,SAAS,EACT,KAAK,EACL,UAAU,GACX,EAAE,iBAAiB,+BAoDnB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect, useId, useRef, useState } from "react";
|
|
3
|
+
import { cx } from "../common/props.js";
|
|
3
4
|
import { IconSlot } from "../theme/icon-slot.js";
|
|
4
5
|
import { DeltaBadge } from "./delta-badge.js";
|
|
5
6
|
import classes from "./widget-header.module.css";
|
|
@@ -50,40 +51,54 @@ function WidgetHeader({
|
|
|
50
51
|
unit,
|
|
51
52
|
delta,
|
|
52
53
|
deltaPeriod,
|
|
54
|
+
deltaPolarity,
|
|
53
55
|
deltaFormat,
|
|
54
56
|
deltaGlyph,
|
|
55
57
|
sparkline,
|
|
56
58
|
count,
|
|
57
|
-
actions
|
|
59
|
+
actions,
|
|
60
|
+
className,
|
|
61
|
+
style,
|
|
62
|
+
classNames
|
|
58
63
|
}) {
|
|
59
64
|
const Heading = tier === "section" ? "h2" : "h3";
|
|
60
|
-
return /* @__PURE__ */ jsxs(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
65
|
+
return /* @__PURE__ */ jsxs(
|
|
66
|
+
"div",
|
|
67
|
+
{
|
|
68
|
+
className: cx(classes.root, classNames?.root, className),
|
|
69
|
+
"data-tier": tier,
|
|
70
|
+
...style !== void 0 && { style },
|
|
71
|
+
children: [
|
|
72
|
+
/* @__PURE__ */ jsxs("div", { className: classes.titleRow, children: [
|
|
73
|
+
/* @__PURE__ */ jsxs(Heading, { className: cx(classes.heading, classNames?.title), children: [
|
|
74
|
+
icon !== void 0 && /* @__PURE__ */ jsx(IconSlot, { className: cx(classes.icon, classNames?.icon), children: icon }),
|
|
75
|
+
/* @__PURE__ */ jsx("span", { className: classes.titleText, children: title })
|
|
76
|
+
] }),
|
|
77
|
+
info !== void 0 && /* @__PURE__ */ jsx(InfoGlyph, { text: info }),
|
|
78
|
+
count !== void 0 && /* @__PURE__ */ jsx("span", { className: classes.count, children: count }),
|
|
79
|
+
actions !== void 0 && /* @__PURE__ */ jsx("span", { className: classes.actions, children: actions })
|
|
80
|
+
] }),
|
|
81
|
+
(value !== void 0 || delta !== void 0) && /* @__PURE__ */ jsxs("div", { className: cx(classes.metrics, classNames?.metric), children: [
|
|
82
|
+
value !== void 0 && /* @__PURE__ */ jsx("span", { className: classes.value, children: value }),
|
|
83
|
+
value !== void 0 && unit !== void 0 && /* @__PURE__ */ jsx("span", { className: classes.unit, children: unit }),
|
|
84
|
+
delta !== void 0 && /* @__PURE__ */ jsx(
|
|
85
|
+
DeltaBadge,
|
|
86
|
+
{
|
|
87
|
+
value: delta,
|
|
88
|
+
period: deltaPeriod,
|
|
89
|
+
...deltaPolarity !== void 0 && { polarity: deltaPolarity },
|
|
90
|
+
...deltaFormat !== void 0 && { format: deltaFormat },
|
|
91
|
+
...deltaGlyph !== void 0 && { withGlyph: deltaGlyph }
|
|
92
|
+
}
|
|
93
|
+
)
|
|
94
|
+
] }),
|
|
95
|
+
subtitle !== void 0 && /* @__PURE__ */ jsx("span", { className: classes.subtitle, children: subtitle }),
|
|
96
|
+
sparkline !== void 0 && /* @__PURE__ */ jsx("div", { className: classes.sparkline, "data-placement": "right", children: sparkline })
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
);
|
|
86
100
|
}
|
|
87
101
|
export {
|
|
102
|
+
InfoGlyph,
|
|
88
103
|
WidgetHeader
|
|
89
104
|
};
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* `--mantine-spacing-*` fallbacks.
|
|
11
11
|
*
|
|
12
12
|
* Layout: the title row holds title/icon/info/count/actions only. `value` + `delta` render on
|
|
13
|
-
* their own hero-metric row directly beneath it — for
|
|
13
|
+
* their own hero-metric row directly beneath it — for every tier, never inline with the title.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
.root {
|
|
@@ -40,24 +40,75 @@
|
|
|
40
40
|
flex-wrap: wrap;
|
|
41
41
|
row-gap: var(--vx-space-stack-sm);
|
|
42
42
|
}
|
|
43
|
+
|
|
44
|
+
/*
|
|
45
|
+
* WRAP ONLY WHEN IT DOES NOT FIT (M4 follow-up) — `flex: 1 1 100%` forced EVERY actions slot onto
|
|
46
|
+
* its own row, even a single 24px icon that fit beside the title fine (a KPI card's lone `···`
|
|
47
|
+
* menu dropped under the title and pushed the value down with it). `flex: 0 1 auto` restores
|
|
48
|
+
* ordinary flex sizing: no grow, so a short slot stays put beside the title on the shared row;
|
|
49
|
+
* `min-width: 0` plus `flex-shrink: 1` (part of the same shorthand, overriding the base rule's
|
|
50
|
+
* `flex-shrink: 0`) let it shrink and, once `.titleRow`'s own `flex-wrap: wrap` decides it truly
|
|
51
|
+
* does not fit, drop to its own line. `max-width: 100%` is the cap once it IS alone on that line —
|
|
52
|
+
* without it a `.actions` still carrying unshrinkable content (the `visibleFrom="sm"` control plus
|
|
53
|
+
* a nowrap switch `Group`, see below) can overflow the card rather than shrink into it. The base
|
|
54
|
+
* rule's `margin-inline-start: auto` still applies in both states — right-aligned beside the title
|
|
55
|
+
* when it fits, right-aligned as the lone item on its own wrapped line when it does not.
|
|
56
|
+
*
|
|
57
|
+
* `.actions` keeps its OWN `flex-wrap: wrap` from the prior fix: `Section` can hand it a `tabs`
|
|
58
|
+
* control (`CtlSlot`-wrapped) AND an `actions` control (another `CtlSlot`) in the same slot, and
|
|
59
|
+
* without this a nowrap `Group` of switches beside a view-switch control gets squeezed into one
|
|
60
|
+
* shared line and overflows below its own min-content width — the exact regression this rule
|
|
61
|
+
* once fixed. It is orthogonal to the row-level "wrap only when it does not fit" law above: with
|
|
62
|
+
* one child, wrapping has nothing to do, so a lone `···` menu still stays on the title line.
|
|
63
|
+
*
|
|
64
|
+
* The real flex items get `flex: 1 1 auto; min-width: 0` so they can shrink or (via the `> * > *`
|
|
65
|
+
* twin) stack within whatever width `.actions` itself resolves to — a full-width phone `Select`
|
|
66
|
+
* still reads as its own full-width line because the CONTROL sets that itself (`ViewTabs`'
|
|
67
|
+
* `fullWidth`/`.phoneSelect`), not because `.actions` forces it.
|
|
68
|
+
*
|
|
69
|
+
* The `> * > *` twin exists because `CtlSlot` (`theme/ctl-theme.tsx`) wraps a home's actions in a
|
|
70
|
+
* `display: contents` box — invisible to the flex box tree, so its OWN children (not it) are the
|
|
71
|
+
* real flex items. `display: contents` elements still match `.actions > *` by DOM structure but
|
|
72
|
+
* carry no box to apply `flex`/`min-width` to, hence styling one level deeper as well; a call site
|
|
73
|
+
* that skips `CtlSlot` and hands `actions` a real element directly gets the same rule from the
|
|
74
|
+
* first selector.
|
|
75
|
+
*/
|
|
76
|
+
.actions {
|
|
77
|
+
flex: 0 1 auto;
|
|
78
|
+
flex-wrap: wrap;
|
|
79
|
+
min-width: 0;
|
|
80
|
+
max-width: 100%;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.actions > *,
|
|
84
|
+
.actions > * > * {
|
|
85
|
+
flex: 1 1 auto;
|
|
86
|
+
min-width: 0;
|
|
87
|
+
}
|
|
43
88
|
}
|
|
44
89
|
|
|
45
90
|
.root[data-tier='section'] .titleRow {
|
|
46
91
|
min-height: var(--vx-space-section-header-height, 2.25rem);
|
|
47
92
|
}
|
|
48
93
|
|
|
49
|
-
|
|
94
|
+
/* `group` shares the `widget` tier's row height — an inspector/aside group label carries no more
|
|
95
|
+
* vertical weight than a card's own title. */
|
|
96
|
+
.root[data-tier='widget'] .titleRow,
|
|
97
|
+
.root[data-tier='group'] .titleRow {
|
|
50
98
|
min-height: var(--vx-space-widget-header-height, 1.75rem);
|
|
51
99
|
}
|
|
52
100
|
|
|
53
101
|
/*
|
|
54
|
-
* Section → h2, widget → h3, and the
|
|
55
|
-
* that is what flattened the page.
|
|
102
|
+
* Section → h2, widget → h3, group → h3, and the three tiers now read DIFFERENTLY on purpose — they
|
|
103
|
+
* did not, and that is what flattened the page.
|
|
56
104
|
*
|
|
57
105
|
* A `section` heading names a region of the page: 15px, weight 600, INK. A `widget` heading labels a
|
|
58
106
|
* number that is itself the thing being read (a KPI card's hero value, a chart card's total), so it
|
|
59
107
|
* is the quieter of the pair — one step down and MUTED, which is what lets the 24px mono value under
|
|
60
|
-
* it carry the card.
|
|
108
|
+
* it carry the card. A `group` heading is quieter still: the sidebar's own micro-label recipe (mono,
|
|
109
|
+
* uppercase, faint), because an inspector/aside group ("Presets", "Composition") must never outrank
|
|
110
|
+
* a canvas card's title. All three keep the shared head-font 88% stretch as their base, though
|
|
111
|
+
* `group` overrides every visual property of it (see below).
|
|
61
112
|
*
|
|
62
113
|
* Rendered identically (15px ink both) the hero value competed with its own label, four cards in a
|
|
63
114
|
* row read as four headings, and the section that grouped them read as one more of the same.
|
|
@@ -84,6 +135,18 @@
|
|
|
84
135
|
color: var(--vx-muted);
|
|
85
136
|
}
|
|
86
137
|
|
|
138
|
+
/* The `group` tier's heading — the sidebar `.sectionLabel` recipe (`shell/app-sidebar.module.css`),
|
|
139
|
+
* the quietest heading rank on the page. An inspector/aside group label, not a title. */
|
|
140
|
+
.root[data-tier='group'] .heading {
|
|
141
|
+
font-family: var(--basalt-font-mono);
|
|
142
|
+
font-stretch: normal;
|
|
143
|
+
font-size: var(--vx-text-micro);
|
|
144
|
+
font-weight: 500;
|
|
145
|
+
text-transform: uppercase;
|
|
146
|
+
letter-spacing: 0.08em;
|
|
147
|
+
color: var(--vx-faint);
|
|
148
|
+
}
|
|
149
|
+
|
|
87
150
|
.titleText {
|
|
88
151
|
overflow: hidden;
|
|
89
152
|
text-overflow: ellipsis;
|
|
@@ -106,7 +169,8 @@
|
|
|
106
169
|
color: var(--vx-faint);
|
|
107
170
|
}
|
|
108
171
|
|
|
109
|
-
.root[data-tier='widget'] .icon
|
|
172
|
+
.root[data-tier='widget'] .icon,
|
|
173
|
+
.root[data-tier='group'] .icon {
|
|
110
174
|
--vx-space-icon-size: 0.875rem;
|
|
111
175
|
}
|
|
112
176
|
|
|
@@ -139,7 +203,7 @@
|
|
|
139
203
|
}
|
|
140
204
|
|
|
141
205
|
/*
|
|
142
|
-
* The hero-metric row — value + delta, directly under the title row, for
|
|
206
|
+
* The hero-metric row — value + delta, directly under the title row, for every tier. The delta rides
|
|
143
207
|
* 4px off the value, not 8: it is a suffix ON the number (`$168,920 +47%`), and at 8px it read as a
|
|
144
208
|
* second, unrelated chip in the row. `baseline` alignment is what keeps the mono numeral and the
|
|
145
209
|
* badge's own smaller mono text sitting on one line.
|
|
@@ -221,6 +285,7 @@
|
|
|
221
285
|
align-items: center;
|
|
222
286
|
gap: var(--vx-space-control-gap, 0.375rem);
|
|
223
287
|
margin-inline-start: auto;
|
|
288
|
+
min-width: 0;
|
|
224
289
|
}
|
|
225
290
|
|
|
226
291
|
/* Directly under the title row, 4px off it — 1px put it inside the title's own line box, so a
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { MantineSpacing } from '@mantine/core';
|
|
2
|
-
import type { ColumnDef, ColumnFiltersState,
|
|
2
|
+
import type { ColumnDef, ColumnFiltersState, PaginationState, RowData, RowSelectionState, SortingState } from '@tanstack/react-table';
|
|
3
3
|
import type { ReactNode } from 'react';
|
|
4
|
+
import type { BasaltProps, SlotStylesProps } from '../common/props.js';
|
|
5
|
+
import type { BarAction, SlotActions } from '../controls/actions.js';
|
|
6
|
+
import type { QueryStateLike } from '../dashboard/query-state.js';
|
|
4
7
|
/** Horizontal alignment of a column's header AND its cells. */
|
|
5
8
|
export type DataTableAlign = 'left' | 'center' | 'right';
|
|
6
9
|
/**
|
|
@@ -31,20 +34,29 @@ export type DataTableFacetOption = {
|
|
|
31
34
|
/** Label shown in the pill's popover. */
|
|
32
35
|
label: string;
|
|
33
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* A TanStack column id typed off the row shape `T` where `accessor`/manual `id` inference allows
|
|
39
|
+
* it — `Extract<keyof T, string>` for a real field name, widened by `(string & {})` so a
|
|
40
|
+
* synthetic/derived column id (no matching key on `T`) still type-checks. Defaults to `unknown` so
|
|
41
|
+
* a bare `DataTableFacet[]` / `DataTableColumnPinning` (no type argument) keeps working exactly as
|
|
42
|
+
* before. Shared by {@link DataTableFacet}'s `columnId` and {@link DataTableColumnPinning}'s
|
|
43
|
+
* `left`/`right`.
|
|
44
|
+
*/
|
|
45
|
+
export type DataTableColumnId<T = unknown> = Extract<keyof T, string> | (string & {});
|
|
34
46
|
/**
|
|
35
47
|
* Declares one faceted column filter, rendered as an `EnumFilter` pill (or `MultiSelectFilter`
|
|
36
48
|
* when `multiple` is set) inside a `FilterSet` in the toolbar (`docs/CONTROLS-SPEC.md` §3).
|
|
37
49
|
*
|
|
38
50
|
* @example
|
|
39
|
-
* const facets: DataTableFacet[] = [
|
|
51
|
+
* const facets: DataTableFacet<Employee>[] = [
|
|
40
52
|
* { columnId: 'department', label: 'Department', options: [{ value: 'Engineering', label: 'Engineering' }] },
|
|
41
53
|
* { columnId: 'role', label: 'Role', multiple: true, options: roleOptions },
|
|
42
54
|
* ]
|
|
43
55
|
* <BasaltDataTable data={rows} columns={columns} facets={facets} />
|
|
44
56
|
*/
|
|
45
|
-
export type DataTableFacet = {
|
|
57
|
+
export type DataTableFacet<T = unknown> = {
|
|
46
58
|
/** The TanStack column id — the column's manual `id`, or its `accessorKey` string. */
|
|
47
|
-
columnId:
|
|
59
|
+
columnId: DataTableColumnId<T>;
|
|
48
60
|
/** The pill's label — read at rest (single-select) and as the `Filters`/count fallback (multi). */
|
|
49
61
|
label: string;
|
|
50
62
|
/** Selectable options for this facet. */
|
|
@@ -52,6 +64,22 @@ export type DataTableFacet = {
|
|
|
52
64
|
/** Render a `MultiSelectFilter` (any-of match) instead of an `EnumFilter` (exact match). @default false */
|
|
53
65
|
multiple?: boolean;
|
|
54
66
|
};
|
|
67
|
+
/**
|
|
68
|
+
* Column ids pinned to each edge — the same `T`-derived id union as {@link DataTableFacet}'s
|
|
69
|
+
* `columnId`, applied to TanStack's own `ColumnPinningState` shape (`{ left, right }`, each a bare
|
|
70
|
+
* `string[]` unrelated to any row type). Structurally assignable to `ColumnPinningState`, so no
|
|
71
|
+
* cast is needed where this flows into `useState<ColumnPinningState>`.
|
|
72
|
+
*/
|
|
73
|
+
export type DataTableColumnPinning<T = unknown> = {
|
|
74
|
+
left?: DataTableColumnId<T>[];
|
|
75
|
+
right?: DataTableColumnId<T>[];
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* The four boxes `BasaltDataTable` paints: `root` is the outer fragment's replacement wrapper,
|
|
79
|
+
* `toolbar` is the search/facets/actions row, `table` is the Mantine `Table` itself, `footer` is
|
|
80
|
+
* the pagination bar.
|
|
81
|
+
*/
|
|
82
|
+
export type BasaltDataTableSlot = 'root' | 'toolbar' | 'table' | 'footer';
|
|
55
83
|
/**
|
|
56
84
|
* Props for {@link BasaltDataTable}.
|
|
57
85
|
*
|
|
@@ -65,7 +93,7 @@ export type DataTableFacet = {
|
|
|
65
93
|
* emptyState: <Text c="dimmed">No results found.</Text>,
|
|
66
94
|
* }
|
|
67
95
|
*/
|
|
68
|
-
export type BasaltDataTableProps<T> = {
|
|
96
|
+
export type BasaltDataTableProps<T> = BasaltProps & SlotStylesProps<BasaltDataTableSlot> & {
|
|
69
97
|
/**
|
|
70
98
|
* Optional heading rendered above the toolbar via `WidgetHeader tier="widget"`. `count` always
|
|
71
99
|
* reads `table.getRowCount()` (C11) — never a raw `data.length` — so it tracks the row model
|
|
@@ -125,8 +153,30 @@ export type BasaltDataTableProps<T> = {
|
|
|
125
153
|
/**
|
|
126
154
|
* When true, renders skeleton placeholder rows instead of the empty-state branch.
|
|
127
155
|
* The header remains visible. Use while async data is loading.
|
|
156
|
+
*
|
|
157
|
+
* Superseded by `query`, which resolves this branch AND the two this prop cannot express — pass
|
|
158
|
+
* both and `query` wins, with a dev warning.
|
|
128
159
|
*/
|
|
129
160
|
isLoading?: boolean;
|
|
161
|
+
/**
|
|
162
|
+
* The result behind `data`, resolved into a body: pending → the skeleton rows below, error with
|
|
163
|
+
* no data → an `ErrorState` row spanning the table (with the query's own `refetch` behind
|
|
164
|
+
* Retry), anything else → the rows, or `emptyState` when none are visible.
|
|
165
|
+
*
|
|
166
|
+
* This is law C3's uniform container contract (`docs/CONTROLS-SPEC.md` §1). The table had NO
|
|
167
|
+
* error branch at all (components audit #3), so a 500 rendered *No data to display.* — the
|
|
168
|
+
* exact false claim `QueryState` was built to delete, one container over.
|
|
169
|
+
*
|
|
170
|
+
* The header, toolbar, `<thead>` and pagination bar stay drawn through every branch: only the
|
|
171
|
+
* `<tbody>` swaps, which is why this is not `QueryState` wrapped around the table. A refetch
|
|
172
|
+
* that fails while rows are already on screen keeps the rows — compose `QueryState` AROUND the
|
|
173
|
+
* table when you want its cached-data banner too.
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* const q = useQuery({ queryKey: ['rows'], queryFn: () => api.rows() })
|
|
177
|
+
* <BasaltDataTable data={q.data ?? []} columns={columns} query={q} />
|
|
178
|
+
*/
|
|
179
|
+
query?: QueryStateLike<unknown>;
|
|
130
180
|
/**
|
|
131
181
|
* Number of skeleton rows to render when `isLoading` is true.
|
|
132
182
|
* @default 5
|
|
@@ -178,7 +228,7 @@ export type BasaltDataTableProps<T> = {
|
|
|
178
228
|
* @example
|
|
179
229
|
* facets={[{ columnId: 'department', label: 'Department', options: departmentOptions }]}
|
|
180
230
|
*/
|
|
181
|
-
facets?: DataTableFacet[];
|
|
231
|
+
facets?: DataTableFacet<T>[];
|
|
182
232
|
/** Called whenever the faceted column filters change — the seam for server-side faceting. */
|
|
183
233
|
onColumnFiltersChange?: (filters: ColumnFiltersState) => void;
|
|
184
234
|
/**
|
|
@@ -195,8 +245,65 @@ export type BasaltDataTableProps<T> = {
|
|
|
195
245
|
* Right-aligned toolbar slot (e.g. an "Export" button). Renders the toolbar row even when no
|
|
196
246
|
* search input or facets are configured. Renamed from `toolbarActions` — the toolbar (search +
|
|
197
247
|
* facets + this slot) is wrapped in `CtlSlot` (C1/C5), so its controls resolve to the `ctl` tier.
|
|
248
|
+
*
|
|
249
|
+
* Two accepted forms (law C15): a typed `BarAction[]`, projected through the same row `PageBar`
|
|
250
|
+
* and `ActionGroup` use — ≤3 inline, the rest folded into `More`, one kebab below `sm` — or an
|
|
251
|
+
* opaque `ReactNode`, rendered verbatim exactly as before.
|
|
252
|
+
*/
|
|
253
|
+
actions?: SlotActions;
|
|
254
|
+
/**
|
|
255
|
+
* Makes each row openable — click, or Enter on a focused row — with the ROW's original datum.
|
|
256
|
+
* The hook that pairs a table with `PageAside`: row → detail, without the caller adding an
|
|
257
|
+
* `onClick` to every cell renderer.
|
|
258
|
+
*
|
|
259
|
+
* The row keeps its native `<tr>` semantics and takes `tabIndex=0` plus `data-activatable`,
|
|
260
|
+
* never `role="button"`: a role swap takes the row out of the table's row/cell semantics, so a
|
|
261
|
+
* screen reader stops announcing each cell's column header — which is the reason the data is in
|
|
262
|
+
* a table. Cursor and focus ring come from the module class.
|
|
263
|
+
*
|
|
264
|
+
* A click that originates inside the selection checkbox does NOT activate (the checkbox stops
|
|
265
|
+
* the event); a click on a control your own `cell` renders should do the same.
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* <BasaltDataTable data={rows} columns={columns} onRowActivate={(row) => setSelected(row)} />
|
|
198
269
|
*/
|
|
199
|
-
|
|
270
|
+
onRowActivate?: (row: T) => void;
|
|
271
|
+
/**
|
|
272
|
+
* Prepends a checkbox column (header = select-all on the page) and arms TanStack's row-selection
|
|
273
|
+
* feature. Selection is uncontrolled unless `rowSelection` is passed.
|
|
274
|
+
* @default false
|
|
275
|
+
*/
|
|
276
|
+
enableRowSelection?: boolean;
|
|
277
|
+
/**
|
|
278
|
+
* Controlled selection — TanStack's own `RowSelectionState` (`Record<rowId, boolean>`), keyed by
|
|
279
|
+
* `getRowId` (row index by default). Omit for uncontrolled selection held by the table.
|
|
280
|
+
*/
|
|
281
|
+
rowSelection?: RowSelectionState;
|
|
282
|
+
/** Called with the next `RowSelectionState` on every selection change, controlled or not. */
|
|
283
|
+
onRowSelectionChange?: (selection: RowSelectionState) => void;
|
|
284
|
+
/**
|
|
285
|
+
* Stable row id, handed to TanStack. Pass one whenever the selection must survive a re-sort, a
|
|
286
|
+
* page change or a refetch — the default id is the row's INDEX, so row 3 stays "selected" when a
|
|
287
|
+
* different record moves into position 3.
|
|
288
|
+
*/
|
|
289
|
+
getRowId?: (row: T, index: number) => string;
|
|
290
|
+
/**
|
|
291
|
+
* The actions a selection offers, rendered in a bar above the table while at least one row is
|
|
292
|
+
* selected — and nothing at all while none is.
|
|
293
|
+
*
|
|
294
|
+
* A FUNCTION of the selected rows, not a bare array, and that is the whole signature decision:
|
|
295
|
+
* `BarActionItem.onClick` is `() => void` (the one vocabulary every home shares, unforked), so
|
|
296
|
+
* the rows have to reach the handler through the closure the caller writes here. It also means
|
|
297
|
+
* an UNCONTROLLED table can offer bulk actions at all — the selection lives inside the table,
|
|
298
|
+
* and this is how it gets out.
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* bulkActions={(rows) => [
|
|
302
|
+
* { key: 'export', label: `Export ${rows.length}`, onClick: () => exportCsv(rows) },
|
|
303
|
+
* { key: 'delete', label: 'Delete', danger: true, onClick: () => remove(rows) },
|
|
304
|
+
* ]}
|
|
305
|
+
*/
|
|
306
|
+
bulkActions?: (rows: T[]) => BarAction[];
|
|
200
307
|
/**
|
|
201
308
|
* Enables the bottom pagination bar ("Showing X–Y of N", rows-per-page `Select`, Mantine
|
|
202
309
|
* `Pagination`) wired to TanStack's `pagination` state. Client-side by default — see
|
|
@@ -262,7 +369,7 @@ export type BasaltDataTableProps<T> = {
|
|
|
262
369
|
*/
|
|
263
370
|
enablePinning?: boolean;
|
|
264
371
|
/** Initial column-pinning state — which column ids stick to the left/right edge. */
|
|
265
|
-
initialColumnPinning?:
|
|
372
|
+
initialColumnPinning?: DataTableColumnPinning<T>;
|
|
266
373
|
/**
|
|
267
374
|
* Caps the scrolling body (px number or CSS length) so a long table cannot blow a card out
|
|
268
375
|
* vertically — the header stays put and the rows scroll under it. Renders Mantine's
|
|
@@ -277,12 +384,44 @@ export type BasaltDataTableProps<T> = {
|
|
|
277
384
|
maxHeight?: number | string;
|
|
278
385
|
/**
|
|
279
386
|
* `min-width` below which the body scrolls horizontally. Setting either this or `maxHeight`
|
|
280
|
-
* turns on the scroll container; `maxHeight` alone implies `minWidth: 0`.
|
|
387
|
+
* turns on the CAPPED scroll container; `maxHeight` alone implies `minWidth: 0`.
|
|
388
|
+
*
|
|
389
|
+
* It is a FLOOR, not the containment switch — since the shell made `AppShell.Main` the
|
|
390
|
+
* scrollport, every table renders inside a `Table.ScrollContainer type="native"` whether or not
|
|
391
|
+
* this is set (`minWidth: 0` when it is not), so a table wider than its column scrolls inside
|
|
392
|
+
* its own card instead of widening the page. Reach for this only to hold a MINIMUM table width
|
|
393
|
+
* — e.g. so eight columns keep their readable widths and scroll rather than compress.
|
|
394
|
+
*
|
|
395
|
+
* The one table whose wrapper is MEASURED rather than declared is `stickyHeader` with neither
|
|
396
|
+
* this nor `maxHeight`; see that prop and `useMeasuredContainment` in the implementation for
|
|
397
|
+
* why, and pair it with `maxHeight` if the table must both scroll and stick.
|
|
281
398
|
*/
|
|
282
399
|
minWidth?: number | string;
|
|
283
|
-
/**
|
|
400
|
+
/**
|
|
401
|
+
* Sticky header row. Pair with `maxHeight` to stick within the table rather than the page.
|
|
402
|
+
*
|
|
403
|
+
* On its own — no `maxHeight`, no `minWidth` — the header sticks against the page's scrollport
|
|
404
|
+
* (`AppShell.Main`) only while the table FITS its container, and basalt measures that: the
|
|
405
|
+
* wrapper declares no overflow while it fits and flips to `overflow-x: auto` once the table is
|
|
406
|
+
* wider, publishing `data-contained`. The columns stay reachable either way and the page never
|
|
407
|
+
* scrolls sideways, but a sticky header cannot stick inside an uncapped overflow box — it has
|
|
408
|
+
* no scroll range — so it is inert at that width. A dev warning states the trade; pair this
|
|
409
|
+
* with `maxHeight` for a table that must both scroll and stick at every width.
|
|
410
|
+
*/
|
|
284
411
|
stickyHeader?: boolean;
|
|
285
|
-
/**
|
|
412
|
+
/**
|
|
413
|
+
* Offset for a sticky header sitting under whatever chrome scrolls above it (px number or CSS
|
|
414
|
+
* length).
|
|
415
|
+
*
|
|
416
|
+
* PAGE-scroll only, and IGNORED whenever `maxHeight`/`minWidth` turn on the scroll container:
|
|
417
|
+
* that box is then the header's own scrollport, so an offset would park the `<thead>` that many
|
|
418
|
+
* pixels down inside the body — painting it over the rows instead of above them. Inside the
|
|
419
|
+
* container the header sticks to the scroller's own top edge.
|
|
420
|
+
*
|
|
421
|
+
* Inside `BasaltShell` the page's scrollport is `AppShell.Main`, and the app header sits
|
|
422
|
+
* OUTSIDE it — so the only chrome left to clear is `PageBar` row 2's band:
|
|
423
|
+
* `var(--basalt-page-bar-h, 0px)`, not the header height plus it.
|
|
424
|
+
*/
|
|
286
425
|
stickyHeaderOffset?: number | string;
|
|
287
426
|
/** Vertical cell padding. Forwarded to Mantine `Table`. */
|
|
288
427
|
verticalSpacing?: MantineSpacing;
|
|
@@ -333,5 +472,5 @@ export type BasaltDataTableProps<T> = {
|
|
|
333
472
|
* emptyState={<Text c="dimmed">No users found.</Text>}
|
|
334
473
|
* />
|
|
335
474
|
*/
|
|
336
|
-
export declare function BasaltDataTable<T>(
|
|
475
|
+
export declare function BasaltDataTable<T>(props: BasaltDataTableProps<T>): import("react").JSX.Element;
|
|
337
476
|
//# sourceMappingURL=data-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/data/data-table.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../src/data/data-table.tsx"],"names":[],"mappings":"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"}
|