basalt-ui 1.28.0 → 1.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -19
- package/CHANGELOG.md +23 -0
- package/MIGRATING.md +171 -7
- package/README.md +66 -105
- package/agent/rules/basalt-batteries.md +60 -183
- package/agent/rules/basalt-charts.md +56 -75
- package/agent/rules/basalt-controls.md +38 -69
- package/agent/rules/basalt-mantine.md +58 -103
- 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/agent/templates/query-client.ts.tpl +1 -1
- package/configs/oxlint-plugin.js +84 -254
- package/configs/oxlint-plugin.test.ts +23 -266
- package/configs/oxlint.json +0 -2
- package/dist/agent/ai-sdk-transport.d.ts.map +1 -1
- package/dist/agent/ai-sdk-transport.js +7 -4
- package/dist/agent/coalesce.js +1 -1
- package/dist/agent/merge.js +1 -1
- 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/index.d.ts +1 -1
- package/dist/agent-chat/index.d.ts.map +1 -1
- package/dist/agent-chat/relative-time.js +1 -1
- package/dist/agent-chat/thread-detail-panel.js +1 -1
- package/dist/agent-chat/thread-feed-row.d.ts +32 -7
- package/dist/agent-chat/thread-feed-row.d.ts.map +1 -1
- package/dist/agent-chat/thread-feed-row.js +121 -86
- package/dist/agent-chat/thread-feed.d.ts +11 -1
- package/dist/agent-chat/thread-feed.d.ts.map +1 -1
- package/dist/agent-chat/thread-feed.js +10 -6
- package/dist/agent-chat/thread-message.js +1 -1
- 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/index.d.ts +3 -3
- package/dist/charts/index.d.ts.map +1 -1
- package/dist/charts/index.js +8 -4
- package/dist/charts/kinds/BandStrip.js +1 -1
- package/dist/charts/kinds/Bars.d.ts +1 -3
- package/dist/charts/kinds/Bars.d.ts.map +1 -1
- package/dist/charts/kinds/Bars.js +1 -1
- package/dist/charts/kinds/DualPanel.d.ts +3 -1
- package/dist/charts/kinds/DualPanel.d.ts.map +1 -1
- package/dist/charts/kinds/DualPanel.js +1 -1
- package/dist/charts/kinds/StackedArea.js +1 -1
- package/dist/charts/kinds/ZonedLine.d.ts +1 -3
- package/dist/charts/kinds/ZonedLine.d.ts.map +1 -1
- package/dist/charts/primitives/Axes.d.ts +21 -2
- package/dist/charts/primitives/Axes.d.ts.map +1 -1
- package/dist/charts/primitives/Axes.js +34 -2
- package/dist/charts/primitives/ChartCard.d.ts +20 -4
- package/dist/charts/primitives/ChartCard.d.ts.map +1 -1
- package/dist/charts/primitives/ChartCard.js +62 -33
- package/dist/charts/primitives/ChartFrame.d.ts.map +1 -1
- package/dist/charts/primitives/ChartFrame.js +8 -1
- package/dist/charts/primitives/ChartPending.d.ts +12 -6
- package/dist/charts/primitives/ChartPending.d.ts.map +1 -1
- package/dist/charts/primitives/ChartPending.js +1 -1
- package/dist/charts/utils/format.d.ts +5 -92
- package/dist/charts/utils/format.d.ts.map +1 -1
- package/dist/charts/utils/format.js +10 -80
- 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/define-commands.js +1 -1
- package/dist/commands/define-overlays.js +1 -1
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +6 -0
- package/dist/commands/overlays-mount.d.ts +7 -9
- package/dist/commands/overlays-mount.d.ts.map +1 -1
- 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 +35 -0
- package/dist/common/errors.d.ts.map +1 -1
- package/dist/common/errors.js +29 -1
- package/dist/common/index.d.ts +2 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +6 -0
- package/dist/common/is-dev.d.ts.map +1 -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 +1 -1
- package/dist/common/props.d.ts.map +1 -1
- package/dist/common/validate.js +1 -1
- package/dist/content/markdown.d.ts +3 -4
- package/dist/content/markdown.d.ts.map +1 -1
- package/dist/content/markdown.js +1 -4
- package/dist/controls/actions.d.ts +1 -1
- package/dist/controls/actions.d.ts.map +1 -1
- package/dist/controls/panel-row.js +1 -1
- package/dist/controls/range-filter.js +1 -1
- package/dist/dashboard/delta-badge.d.ts +18 -10
- 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 +1 -4
- package/dist/dashboard/empty-state.d.ts.map +1 -1
- package/dist/dashboard/empty-state.js +1 -2
- package/dist/dashboard/index.d.ts +4 -2
- package/dist/dashboard/index.d.ts.map +1 -1
- package/dist/dashboard/index.js +7 -1
- package/dist/dashboard/query-state.d.ts +4 -13
- package/dist/dashboard/query-state.d.ts.map +1 -1
- package/dist/dashboard/query-state.js +4 -7
- package/dist/{section → dashboard}/section.d.ts +2 -2
- package/dist/{section → dashboard}/section.d.ts.map +1 -1
- package/dist/{section → dashboard}/section.js +2 -2
- package/dist/dashboard/settings-section.d.ts +1 -1
- package/dist/dashboard/settings-section.d.ts.map +1 -1
- package/dist/dashboard/settings-section.js +1 -1
- package/dist/dashboard/stat-card.d.ts +1 -1
- package/dist/dashboard/stat-card.d.ts.map +1 -1
- package/dist/dashboard/stat-card.js +1 -1
- package/dist/dashboard/widget-header.d.ts.map +1 -0
- package/dist/data/data-table.js +2 -2
- package/dist/data/table.d.ts +1 -1
- package/dist/data/table.d.ts.map +1 -1
- package/dist/data/table.js +2 -16
- package/dist/data/virtual.d.ts +3 -3
- package/dist/dev-dock.d.ts +26 -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/field.d.ts +4 -20
- package/dist/forms/field.d.ts.map +1 -1
- package/dist/forms/field.js +0 -4
- package/dist/forms/form-layout.d.ts +1 -1
- package/dist/forms/form-layout.d.ts.map +1 -1
- package/dist/forms/form-layout.js +1 -1
- package/dist/forms/index.d.ts +1 -1
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +1 -2
- package/dist/forms/use-form-submit.d.ts +1 -1
- package/dist/forms/use-form-submit.js +1 -1
- package/dist/guard/index.d.ts +2 -9
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +53 -32
- package/dist/guard/types.d.ts +8 -10
- package/dist/guard/types.d.ts.map +1 -1
- package/dist/index.d.ts +16 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -29
- package/dist/notifications/index.d.ts +5 -5
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +0 -2
- package/dist/notifications/mount-guard.d.ts.map +1 -1
- package/dist/notifications/mount-guard.js +2 -2
- package/dist/provider/connectivity-indicator.d.ts.map +1 -0
- package/dist/{connectivity → provider}/connectivity-provider.d.ts +1 -1
- package/dist/provider/connectivity-provider.d.ts.map +1 -0
- package/dist/{connectivity/types.d.ts → provider/connectivity-types.d.ts} +1 -1
- 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 +20 -36
- package/dist/provider/index.d.ts.map +1 -1
- package/dist/provider/index.js +42 -32
- package/dist/provider/lab-theme.js +1 -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 +67 -0
- package/dist/query-client.d.ts.map +1 -0
- package/dist/query-client.js +35 -0
- package/dist/{query/devtools.d.ts → query-devtools.d.ts} +2 -2
- package/dist/query-devtools.d.ts.map +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/use-nav.d.ts +1 -1
- package/dist/router-tanstack/use-nav.d.ts.map +1 -1
- package/dist/shell/app-breadcrumbs.d.ts +1 -1
- package/dist/shell/app-breadcrumbs.d.ts.map +1 -1
- package/dist/shell/app-main.module.css +11 -0
- package/dist/shell/app-mobile-nav.d.ts +1 -1
- package/dist/shell/app-mobile-nav.d.ts.map +1 -1
- package/dist/shell/app-mobile-nav.js +24 -2
- package/dist/shell/app-sidebar.d.ts +1 -1
- package/dist/shell/app-sidebar.d.ts.map +1 -1
- package/dist/shell/app-sidebar.js +31 -2
- package/dist/shell/app-sidebar.module.css +10 -0
- package/dist/shell/index.d.ts +10 -4
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +13 -17
- package/dist/shell/mobile-nav-model.d.ts +1 -1
- package/dist/shell/mobile-nav-model.d.ts.map +1 -1
- package/dist/{nav/types.d.ts → shell/nav-types.d.ts} +1 -1
- package/dist/shell/nav-types.d.ts.map +1 -0
- package/dist/shell/page-aside.d.ts.map +1 -1
- package/dist/shell/page-aside.js +2 -29
- 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/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 +3 -19
- package/dist/state/fields.d.ts.map +1 -1
- package/dist/state/fields.js +6 -16
- package/dist/styles.css +36 -0
- package/dist/surfaces.d.ts +18 -41
- package/dist/surfaces.d.ts.map +1 -1
- package/dist/surfaces.js +48 -60
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/{theme-toggle/index.d.ts → theme/theme-toggle.d.ts} +1 -1
- package/dist/theme/theme-toggle.d.ts.map +1 -0
- package/dist/{theme-toggle/index.js → theme/theme-toggle.js} +1 -1
- package/dist/tokens/index.d.ts +1 -0
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +10 -0
- package/dist/tokens/palette.d.ts +12 -0
- package/dist/tokens/palette.d.ts.map +1 -1
- package/dist/tokens/palette.js +13 -1
- package/dist/tokens.css +1 -0
- package/llms.txt +9 -24
- package/package.json +12 -16
- package/src/agent/ai-sdk-transport.ts +11 -4
- package/src/agent/coalesce.ts +1 -1
- package/src/agent/merge.ts +1 -1
- package/src/agent/transport.ts +15 -2
- package/src/agent/use-agent-thread-runs.ts +65 -15
- package/src/agent-chat/index.ts +6 -4
- package/src/agent-chat/relative-time.ts +1 -1
- package/src/agent-chat/thread-detail-panel.tsx +1 -1
- package/src/agent-chat/thread-feed-row.tsx +105 -30
- package/src/agent-chat/thread-feed.tsx +51 -25
- package/src/agent-chat/thread-message.tsx +1 -1
- package/src/agent-chat/virtualize.ts +48 -0
- package/src/charts/index.ts +7 -10
- package/src/charts/kinds/BandStrip.tsx +1 -1
- package/src/charts/kinds/Bars.tsx +2 -5
- package/src/charts/kinds/DualPanel.tsx +4 -3
- package/src/charts/kinds/StackedArea.tsx +1 -1
- package/src/charts/kinds/ZonedLine.tsx +1 -4
- package/src/charts/primitives/Axes.tsx +49 -0
- package/src/charts/primitives/ChartCard.tsx +49 -6
- package/src/charts/primitives/ChartFrame.tsx +5 -1
- package/src/charts/primitives/ChartPending.tsx +14 -8
- package/src/charts/utils/format.ts +17 -186
- 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 -3439
- 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/define-commands.ts +1 -1
- package/src/commands/define-overlays.ts +1 -1
- package/src/commands/index.ts +10 -1
- package/src/commands/overlays-mount.tsx +8 -10
- package/src/commands/shell-bridge.ts +86 -0
- package/src/common/errors.ts +70 -0
- package/src/common/index.ts +2 -0
- package/src/common/props.ts +1 -1
- package/src/common/validate.ts +1 -1
- package/src/content/markdown.tsx +4 -8
- package/src/controls/actions.tsx +1 -1
- package/src/controls/panel-row.tsx +1 -1
- package/src/controls/range-filter.tsx +1 -1
- package/src/dashboard/delta-badge.tsx +74 -7
- package/src/dashboard/empty-state.tsx +2 -6
- package/src/dashboard/index.ts +11 -2
- package/src/dashboard/query-state.tsx +5 -18
- package/src/{section → dashboard}/section.tsx +4 -4
- package/src/dashboard/settings-section.tsx +2 -2
- package/src/dashboard/stat-card.tsx +2 -2
- package/src/data/data-table.tsx +3 -3
- package/src/data/table.ts +6 -25
- package/src/data/virtual-list.tsx +1 -1
- package/src/data/virtual.ts +3 -3
- package/src/dev-dock.tsx +162 -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/field.ts +4 -24
- package/src/forms/form-layout.tsx +2 -2
- package/src/forms/index.ts +1 -2
- package/src/forms/use-form-submit.ts +2 -2
- package/src/guard/index.ts +80 -69
- package/src/guard/types.ts +7 -10
- package/src/index.ts +38 -29
- package/src/notifications/index.ts +5 -7
- package/src/notifications/mount-guard.ts +7 -9
- package/src/{connectivity → provider}/connectivity-indicator.tsx +1 -1
- package/src/{connectivity → provider}/connectivity-provider.tsx +1 -1
- 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 +71 -71
- package/src/provider/lab-theme.ts +1 -1
- package/src/{connectivity → provider}/use-connectivity.ts +3 -3
- package/src/query-client.ts +105 -0
- package/src/{query/devtools.tsx → query-devtools.tsx} +5 -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 +3 -4
- package/src/router-tanstack/use-nav.ts +1 -1
- package/src/shell/app-breadcrumbs.tsx +1 -1
- package/src/shell/app-main.module.css +11 -0
- package/src/shell/app-mobile-nav.tsx +28 -1
- package/src/shell/app-sidebar.module.css +10 -0
- package/src/shell/app-sidebar.tsx +31 -2
- package/src/shell/index.tsx +23 -28
- package/src/shell/mobile-nav-model.ts +1 -1
- package/src/shell/page-aside.tsx +2 -52
- 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/use-breakpoint.ts +73 -0
- package/src/state/fields.ts +7 -43
- package/src/styles.css +36 -0
- package/src/surfaces.ts +47 -61
- package/src/theme/index.ts +7 -0
- package/src/{theme-toggle/index.tsx → theme/theme-toggle.tsx} +1 -1
- package/src/tokens/index.ts +10 -0
- package/src/tokens/palette.ts +12 -0
- 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 -14
- 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/data/index.d.ts +0 -38
- package/dist/data/index.d.ts.map +0 -1
- package/dist/data/index.js +0 -24
- 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 -14
- 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/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/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/section/index.d.ts +0 -2
- package/dist/section/index.d.ts.map +0 -1
- package/dist/section/index.js +0 -4
- package/dist/theme-toggle/index.d.ts.map +0 -1
- package/dist/utils/is-dev.d.ts.map +0 -1
- package/dist/widget-header/delta-badge.d.ts +0 -19
- package/dist/widget-header/delta-badge.d.ts.map +0 -1
- package/dist/widget-header/delta-badge.js +0 -36
- 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 -8
- package/dist/widget-header/widget-header.d.ts.map +0 -1
- package/src/connectivity/index.ts +0 -19
- package/src/data/index.ts +0 -69
- package/src/notifications/overlay.tsx +0 -66
- package/src/query/error-message.ts +0 -70
- package/src/query/index.ts +0 -97
- package/src/router-tanstack/field.ts +0 -36
- package/src/router-tanstack/multi-search-param-store.ts +0 -106
- package/src/router-tanstack/search-param-store.ts +0 -100
- package/src/section/index.ts +0 -1
- package/src/widget-header/delta-badge.tsx +0 -77
- package/src/widget-header/index.ts +0 -10
- /package/dist/{utils → common}/is-dev.d.ts +0 -0
- /package/dist/{utils → common}/is-dev.js +0 -0
- /package/dist/{motion/index.js → common/motion.js} +0 -0
- /package/dist/{section → dashboard}/section.module.css +0 -0
- /package/dist/{section → dashboard}/section.module.css.d.ts +0 -0
- /package/dist/{widget-header → dashboard}/widget-header.d.ts +0 -0
- /package/dist/{widget-header → dashboard}/widget-header.js +0 -0
- /package/dist/{widget-header → dashboard}/widget-header.module.css +0 -0
- /package/dist/{widget-header → dashboard}/widget-header.module.css.d.ts +0 -0
- /package/dist/{connectivity → provider}/connectivity-indicator.d.ts +0 -0
- /package/dist/{connectivity → provider}/connectivity-indicator.js +0 -0
- /package/dist/{connectivity → provider}/connectivity-provider.js +0 -0
- /package/dist/{connectivity/types.js → provider/connectivity-types.js} +0 -0
- /package/dist/{connectivity → provider}/use-connectivity.js +0 -0
- /package/dist/{query/devtools.js → query-devtools.js} +0 -0
- /package/dist/{nav/types.js → shell/nav-types.js} +0 -0
- /package/src/{utils → common}/is-dev.ts +0 -0
- /package/src/{motion/index.ts → common/motion.ts} +0 -0
- /package/src/{section → dashboard}/section.module.css +0 -0
- /package/src/{section → dashboard}/section.module.css.d.ts +0 -0
- /package/src/{widget-header → dashboard}/widget-header.module.css +0 -0
- /package/src/{widget-header → dashboard}/widget-header.module.css.d.ts +0 -0
- /package/src/{widget-header → dashboard}/widget-header.tsx +0 -0
- /package/src/{connectivity/types.ts → provider/connectivity-types.ts} +0 -0
- /package/src/{nav/types.ts → shell/nav-types.ts} +0 -0
package/src/surfaces.ts
CHANGED
|
@@ -56,8 +56,6 @@ export const PLUGIN_RULE_ID_LIST = [
|
|
|
56
56
|
'search-literal-link',
|
|
57
57
|
'use-search-from-literal',
|
|
58
58
|
'provider-above-router',
|
|
59
|
-
'duplicate-notifications-mount',
|
|
60
|
-
'query-dual-import',
|
|
61
59
|
'query-fn-unwrap',
|
|
62
60
|
'deprecated-export',
|
|
63
61
|
'forms-field-key',
|
|
@@ -67,6 +65,7 @@ export const PLUGIN_RULE_ID_LIST = [
|
|
|
67
65
|
'agent-resume-guard',
|
|
68
66
|
'agent-no-raw-usechat',
|
|
69
67
|
'ai-sdk-major',
|
|
68
|
+
'no-import-meta-env',
|
|
70
69
|
] as const
|
|
71
70
|
|
|
72
71
|
/** One registered oxlint plugin rule id — the literal union of {@link PLUGIN_RULE_ID_LIST}. */
|
|
@@ -233,7 +232,7 @@ const MANTINE_BANS = [
|
|
|
233
232
|
|
|
234
233
|
/**
|
|
235
234
|
* The one hard source for the enforcement seam. Keys split into two kinds:
|
|
236
|
-
* - JS-subpath keys (., ./charts, ./tokens, ./theme-lab, ./vite, ./guard, ./
|
|
235
|
+
* - JS-subpath keys (., ./charts, ./tokens, ./theme-lab, ./vite, ./guard, ./router-tanstack, ./forms, ./notifications, ./commands, ./data/table, ./data/virtual, ./agent, ./state) — real package.json exports. `./query`, `./connectivity` and bare `./data` are dropped (C1) — their public surface is absorbed onto `.`.
|
|
237
236
|
* - #-prefixed synthetic keys (#app) — the synthetic global app-wide ban layer. The #-prefix
|
|
238
237
|
* guarantees it is never mistaken for an export path.
|
|
239
238
|
*
|
|
@@ -274,22 +273,25 @@ export const SURFACES = {
|
|
|
274
273
|
'raw-scroll-container',
|
|
275
274
|
'page-bar-budget',
|
|
276
275
|
'shadow-basalt-export',
|
|
277
|
-
// The
|
|
278
|
-
//
|
|
279
|
-
// `BasaltProvider`'s three flattened connectivity props are most of it.
|
|
276
|
+
// The mount-order law, guarded as of 1.28.0 (F5) — same-file static ancestry, so `warn`.
|
|
277
|
+
// `deprecated-export` sits here too: the ledger it reads spans subpaths.
|
|
280
278
|
'provider-above-router',
|
|
281
|
-
'duplicate-notifications-mount',
|
|
282
279
|
'deprecated-export',
|
|
280
|
+
// `import.meta.env` is a Vite-ism that fails outside a Vite build (SSR/server code, Node
|
|
281
|
+
// scripts, tests) — process.env.NODE_ENV works everywhere basalt code runs. Repo-local,
|
|
282
|
+
// scoped to all of src/**, one surface required by coverage (C2 consolidation).
|
|
283
|
+
'no-import-meta-env',
|
|
283
284
|
],
|
|
284
|
-
// agent/rules/basalt-mantine.md — stated, not guarded. The other
|
|
285
|
-
//
|
|
286
|
-
//
|
|
287
|
-
//
|
|
285
|
+
// agent/rules/basalt-mantine.md — stated, not guarded. The other law that stood here gained
|
|
286
|
+
// `provider-above-router` at 1.28.0; this one has no AST form left to catch, because
|
|
287
|
+
// `cssVariablesResolver` is now `Omit`ted from the accepted prop type and a hand-built
|
|
288
|
+
// `createTheme` is a consumer's own call to make. (`duplicate-notifications-mount`, the
|
|
289
|
+
// other 1.28.0 mount-order rule, retired — `BasaltNotifications` no longer exists.)
|
|
288
290
|
advisoryLaws: [
|
|
289
291
|
"no second cssVariablesResolver — don't hand-build createTheme or re-add the resolver basalt already installs",
|
|
290
292
|
],
|
|
291
293
|
description:
|
|
292
|
-
'BasaltProvider, createBasaltTheme, BasaltShell + sidebar/mobile-nav/breadcrumbs, PageBar, PageAside, NavCountBadge, ThemeToggle, ThreadWorkspace + thread-chat components, WidgetHeader, dashboard composites (DeltaBadge, StatCard with threshold tone, EmptyState, QueryState/LoadingState/ErrorState, SettingsSection/SettingsRow/DangerZone)',
|
|
294
|
+
'BasaltProvider, createBasaltTheme, BasaltShell + sidebar/mobile-nav/breadcrumbs, PageBar, PageAside, useBreakpoint, NavCountBadge, ThemeToggle, ThreadWorkspace + thread-chat components, WidgetHeader, dashboard composites (DeltaBadge, StatCard with threshold tone, EmptyState, QueryState/LoadingState/ErrorState, SettingsSection/SettingsRow/DangerZone), ConnectivityProvider/useConnectivity/ConnectivityIndicator (auto-mounted, C1: absorbed from the dropped ./connectivity), createBasaltQueryClient/unwrap/BasaltQueryDevtools (C1: absorbed from the dropped ./query), BasaltDevDock (C5: lazy Router/Query devtools + theme lab in one dock)',
|
|
293
295
|
optionalPeers: [
|
|
294
296
|
'react-markdown',
|
|
295
297
|
'remark-gfm',
|
|
@@ -297,6 +299,7 @@ export const SURFACES = {
|
|
|
297
299
|
'remend',
|
|
298
300
|
'shiki',
|
|
299
301
|
'beautiful-mermaid',
|
|
302
|
+
'@tanstack/react-router-devtools',
|
|
300
303
|
],
|
|
301
304
|
forbiddenImports: [], // the no-charts/tokens-reexport invariant is comment-only today; Phase-4 plugin
|
|
302
305
|
},
|
|
@@ -305,13 +308,7 @@ export const SURFACES = {
|
|
|
305
308
|
layer: 'headless',
|
|
306
309
|
rule: 'charts',
|
|
307
310
|
skill: ['basalt-charts'],
|
|
308
|
-
guardKinds: [
|
|
309
|
-
'raw-hex',
|
|
310
|
-
'raw-color-fn',
|
|
311
|
-
'raw-visx-axis',
|
|
312
|
-
'unframed-chart',
|
|
313
|
-
'chart-missing-aria-label',
|
|
314
|
-
],
|
|
311
|
+
guardKinds: ['raw-hex', 'raw-color-fn', 'raw-visx-axis', 'chart-missing-aria-label'],
|
|
315
312
|
pluginRules: [
|
|
316
313
|
'hand-rolled-plot',
|
|
317
314
|
'chart-legend-literal',
|
|
@@ -395,23 +392,15 @@ export const SURFACES = {
|
|
|
395
392
|
// @visx/* ban dropped — `basalt/visx-boundary` now bans it universally outside charts.
|
|
396
393
|
forbiddenImports: [...MANTINE_BANS],
|
|
397
394
|
}, // 6th JS subpath
|
|
398
|
-
'./
|
|
399
|
-
kind: '
|
|
395
|
+
'./format': {
|
|
396
|
+
kind: 'tooling',
|
|
400
397
|
layer: 'headless',
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
guardKinds: [],
|
|
404
|
-
// Both laws this surface used to declare advisory (F5), guarded as of 1.28.0 and both `warn`:
|
|
405
|
-
// `query-dual-import`'s softer half reads intent ("this file is already a basalt file") and
|
|
406
|
-
// `query-fn-unwrap` is a text heuristic inside a syntactic range. See their grace entries.
|
|
407
|
-
pluginRules: ['query-dual-import', 'query-fn-unwrap'],
|
|
408
|
-
description: 'createBasaltQueryClient, transport-agnostic unwrap, lazy BasaltQueryDevtools',
|
|
409
|
-
optionalPeers: ['@tanstack/react-query-devtools'],
|
|
398
|
+
description:
|
|
399
|
+
'money/percent/integer/compact/deltaPct/duration/durationClock/clock/relativeTime/weekday/km/kcal — Intl-backed, Mantine-free, React-free formatting; charts/utils/format.ts re-exports fmtCompact/fmtPercent/fmtCurrency/fmtInt/fmtAxisDate/fmtTooltipDate from here (C5 consolidation, one implementation)',
|
|
410
400
|
globs: {
|
|
411
401
|
shipped: [],
|
|
412
|
-
repo: ['packages/basalt-ui/src/
|
|
402
|
+
repo: ['packages/basalt-ui/src/format/**'],
|
|
413
403
|
},
|
|
414
|
-
// @visx/* ban dropped — `basalt/visx-boundary` now bans it universally outside charts.
|
|
415
404
|
forbiddenImports: [...MANTINE_BANS],
|
|
416
405
|
},
|
|
417
406
|
'./router-tanstack': {
|
|
@@ -423,7 +412,7 @@ export const SURFACES = {
|
|
|
423
412
|
// Law C10 — a nav link's `search` and a reader's `from` are both this bridge's contract.
|
|
424
413
|
pluginRules: ['search-literal-link', 'use-search-from-literal'],
|
|
425
414
|
description:
|
|
426
|
-
'TanStack Router bridge: defineNav/navGroup/navTarget (one typed nav definition) + useNav (sections + mobileNav, spread onto BasaltShell) + useBasaltNav (active route) + useRouterBreadcrumbs + createSearchStore (typed URL > localStorage > fallback store over field.enum/multi/range/number/boolean/string; deprecated createSearchParamStore/createMultiSearchParamStore wrappers
|
|
415
|
+
'TanStack Router bridge: defineNav/navGroup/navTarget (one typed nav definition) + useNav (sections + mobileNav, spread onto BasaltShell) + useBasaltNav (active route) + useRouterBreadcrumbs + createSearchStore (typed URL > localStorage > fallback store over field.enum/multi/range/number/boolean/string; the deprecated createSearchParamStore/createMultiSearchParamStore wrappers were removed in 1.29.0, C1 consolidation)',
|
|
427
416
|
optionalPeers: ['@tanstack/react-router'],
|
|
428
417
|
globs: {
|
|
429
418
|
shipped: [],
|
|
@@ -444,7 +433,7 @@ export const SURFACES = {
|
|
|
444
433
|
// consumer ships today (`PLUGIN_RULE_GRACE`).
|
|
445
434
|
pluginRules: ['forms-field-key'],
|
|
446
435
|
description:
|
|
447
|
-
'Mantine form layer: useBasaltForm + inputProps/fieldKey (two calls — a spread `key` is a React 19 warning), the FormSection/FormRow/FormGroup/FormActions layout (FormRow is law C1’s form row), useFormSubmit (submit state, decoded errors, server fieldErrors, focus-first-error, validateAsync), FormStateProvider disable propagation, useFieldArray, FormErrorSummary, useFormDraft with autosave (Standard Schema
|
|
436
|
+
'Mantine form layer: useBasaltForm + inputProps/fieldKey (two calls — a spread `key` is a React 19 warning; the deprecated `field` alias for `inputProps` was removed in 1.29.0, C1 consolidation), the FormSection/FormRow/FormGroup/FormActions layout (FormRow is law C1’s form row), useFormSubmit (submit state, decoded errors, server fieldErrors, focus-first-error, validateAsync), FormStateProvider disable propagation, useFieldArray, FormErrorSummary, useFormDraft with autosave (Standard Schema)',
|
|
448
437
|
optionalPeers: ['@mantine/form'],
|
|
449
438
|
forbiddenImports: [],
|
|
450
439
|
},
|
|
@@ -472,18 +461,6 @@ export const SURFACES = {
|
|
|
472
461
|
optionalPeers: ['@mantine/spotlight', '@mantine/modals', '@tanstack/react-hotkeys'],
|
|
473
462
|
forbiddenImports: [],
|
|
474
463
|
},
|
|
475
|
-
'./data': {
|
|
476
|
-
kind: 'doctrine',
|
|
477
|
-
layer: 'mantine-coupled',
|
|
478
|
-
rule: 'batteries',
|
|
479
|
-
skill: ['basalt-design'],
|
|
480
|
-
guardKinds: [],
|
|
481
|
-
pluginRules: [],
|
|
482
|
-
description:
|
|
483
|
-
'Convenience barrel pulling both TanStack Table + Virtual peer groups: BasaltDataTable, BasaltVirtualList (Mantine-rendered) — prefer ./data/table or ./data/virtual for per-feature opt-in',
|
|
484
|
-
optionalPeers: ['@tanstack/react-table', '@tanstack/react-virtual'],
|
|
485
|
-
forbiddenImports: [],
|
|
486
|
-
},
|
|
487
464
|
'./data/table': {
|
|
488
465
|
kind: 'doctrine',
|
|
489
466
|
layer: 'mantine-coupled',
|
|
@@ -604,7 +581,24 @@ export const SURFACES = {
|
|
|
604
581
|
description:
|
|
605
582
|
'The control tier (docs/CONTROLS-SPEC.md §3): FilterSet (nowrap row + measured +N fold + the mobile Filters (n) sheet), RangeFilter/CompareFilter/SelectFilter/MultiSelectFilter/NumberFilter/SearchFilter/ToggleFilter (each bound to a FieldHandle — no value/onChange/size, law C2/C5; NumberFilter is the field.number lane, a radio list over `options` or a stepper without), ViewTabs, and the action/sync family (ActionGroup, OverflowMenu, SyncButton, BarAction/GlobalAction). THREE surfaces, picked by the home and never by a prop (useFilterSurface): pill in a PageBar row, sheet in the mobile Filters (n) drawer, panel in a PageAside body — where every control renders an inspector/facet ROW instead of a chip (docs/ASIDE-SPEC.md §3). PanelRow is that row primitive (label above, hint, mono readout, an `end` control on the label line) and SliderControl is the one bound control with no pill form at all; the counts/max props on MultiSelectFilter render the Foundry facet list there. Every control owns its own desktop/mobile swap in CSS (C9) and renders size="ctl" internally. Resolves and renders with NO @mantine/dates installed — the custom date picker is injected through RangeFilter.customPicker from ./controls-dates.',
|
|
606
583
|
optionalPeers: [],
|
|
607
|
-
|
|
584
|
+
// `@mantine/dates` is an optional peer basaltViteConfig pre-bundles the whole @mantine scope
|
|
585
|
+
// for — a consumer without the peer (linewatch) must never resolve it through this surface.
|
|
586
|
+
// Nothing under src/controls may import it, statically or lazily — repo-local only, same
|
|
587
|
+
// pattern as MANTINE_BANS above (a shipped ban would be redundant with peerDependenciesMeta).
|
|
588
|
+
globs: {
|
|
589
|
+
shipped: [],
|
|
590
|
+
repo: ['packages/basalt-ui/src/controls/**'],
|
|
591
|
+
},
|
|
592
|
+
forbiddenImports: [
|
|
593
|
+
v(
|
|
594
|
+
'@mantine/dates',
|
|
595
|
+
'@mantine/dates is an OPTIONAL peer (docs/CONTROLS-SPEC.md §3) — ./controls must resolve with no @mantine/dates installed. The one reach lives in src/controls-dates/, injected into range-filter.tsx’s customPicker seam.',
|
|
596
|
+
),
|
|
597
|
+
vg(
|
|
598
|
+
'@mantine/dates/*',
|
|
599
|
+
'@mantine/dates is an OPTIONAL peer (docs/CONTROLS-SPEC.md §3) — ./controls must resolve with no @mantine/dates installed. The one reach lives in src/controls-dates/, injected into range-filter.tsx’s customPicker seam.',
|
|
600
|
+
),
|
|
601
|
+
],
|
|
608
602
|
},
|
|
609
603
|
'./controls-dates': {
|
|
610
604
|
kind: 'doctrine',
|
|
@@ -639,19 +633,6 @@ export const SURFACES = {
|
|
|
639
633
|
forbiddenImports: [...MANTINE_BANS],
|
|
640
634
|
},
|
|
641
635
|
|
|
642
|
-
'./connectivity': {
|
|
643
|
-
kind: 'doctrine',
|
|
644
|
-
layer: 'mantine-coupled',
|
|
645
|
-
rule: 'mantine',
|
|
646
|
-
skill: ['basalt-app'],
|
|
647
|
-
guardKinds: [],
|
|
648
|
-
pluginRules: [],
|
|
649
|
-
description:
|
|
650
|
-
'ConnectivityProvider (aggregates browser online/offline, React Query onlineManager, SSE, and health-check pings into one status), useConnectivity, and ConnectivityIndicator — auto-mounted by BasaltProvider',
|
|
651
|
-
optionalPeers: [],
|
|
652
|
-
forbiddenImports: [],
|
|
653
|
-
},
|
|
654
|
-
|
|
655
636
|
// ── Non-JS published assets (ToolingSpec; not JS subpaths — check-coverage exempts these) ─────
|
|
656
637
|
'./styles.css': {
|
|
657
638
|
kind: 'tooling',
|
|
@@ -690,7 +671,12 @@ export const SURFACES = {
|
|
|
690
671
|
rule: 'batteries',
|
|
691
672
|
skill: ['basalt-app'],
|
|
692
673
|
guardKinds: [],
|
|
693
|
-
|
|
674
|
+
// query-fn-unwrap: reassigned here from the now-dropped `./query` surface (C1 consolidation —
|
|
675
|
+
// createBasaltQueryClient/unwrap/BasaltQueryDevtools are root barrel exports now, but their
|
|
676
|
+
// doctrine stays `batteries` — "use the shipped thing" — not `mantine`). `query-dual-import`
|
|
677
|
+
// was retired alongside it — its premise (a raw `@tanstack/react-query` import beside
|
|
678
|
+
// `basalt-ui/query`) is unreachable now that the `./query` subpath is gone.
|
|
679
|
+
pluginRules: ['query-fn-unwrap'],
|
|
694
680
|
globs: {
|
|
695
681
|
// Shipped is a catch-all (not just src/**+app/**) so consumer code under components/, lib/,
|
|
696
682
|
// features/, etc. is also covered. The @visx/*-only-in-charts and Mantine-free charts/tokens
|
package/src/theme/index.ts
CHANGED
|
@@ -104,6 +104,13 @@ export { useBasaltSpacing } from './use-basalt-spacing'
|
|
|
104
104
|
// merge/precedence contract.
|
|
105
105
|
export { CTL_THEME, CtlSlot, type CtlSlotProps } from './ctl-theme'
|
|
106
106
|
|
|
107
|
+
// `ThemeToggle` moved into this directory (C1 consolidation, merging the former `theme-toggle/`
|
|
108
|
+
// dir) but is deliberately NOT re-exported from this barrel: it imports `motion/react` eagerly,
|
|
109
|
+
// and this file resolves from `./controls` (via `CtlSlot`) among others — re-exporting it here
|
|
110
|
+
// would make `motion` a hard transitive peer of every consumer of this barrel, not just of
|
|
111
|
+
// `ThemeToggle` itself. The root barrel (`src/index.ts`) imports it straight from
|
|
112
|
+
// `./theme/theme-toggle`, unchanged from before the merge.
|
|
113
|
+
|
|
107
114
|
// Typed `theme.other.basaltDerive` / `theme.other.basaltFonts` / `theme.other.basaltRadius` /
|
|
108
115
|
// `theme.other.basaltDensity` reads (Mantine's `MantineThemeOther` ships an index signature, so
|
|
109
116
|
// this merge is additive — no widening of the existing `[key: string]: any`). Set by
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
import { useReducedMotion } from '@mantine/hooks'
|
|
24
24
|
import { AnimatePresence, motion } from 'motion/react'
|
|
25
25
|
import { useRef, useState } from 'react'
|
|
26
|
-
import { MOTION_SPRING } from '../motion'
|
|
26
|
+
import { MOTION_SPRING } from '../common/motion'
|
|
27
27
|
import type { BasaltProps } from '../common/props'
|
|
28
28
|
|
|
29
29
|
type Scheme = 'light' | 'dark' | 'auto'
|
package/src/tokens/index.ts
CHANGED
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
ROW_LINE_HEIGHT,
|
|
17
17
|
SHADOW,
|
|
18
18
|
SPACE,
|
|
19
|
+
SPACE_FIXED,
|
|
19
20
|
SPACE_SCALE,
|
|
20
21
|
SPACE_STEP,
|
|
21
22
|
} from './palette'
|
|
@@ -158,6 +159,11 @@ export const VX = {
|
|
|
158
159
|
// Fully-rounded pill affordance (scroll-to-bottom button, chips) — fixed, does not track the
|
|
159
160
|
// radius knob (see `RADIUS_STEP.pill`'s doc in `tokens/palette.ts`).
|
|
160
161
|
radiusPill: 'var(--vx-radius-pill)',
|
|
162
|
+
// The WCAG 2.5.5/2.5.8 touch-target floor (44px), fixed — does not track the density knob (see
|
|
163
|
+
// `SPACE_FIXED.spaceTouchTarget`'s doc in `tokens/palette.ts`). For a hit area with no `ctl`-tier
|
|
164
|
+
// home to size it — a consumer's own `@media (pointer: coarse)` CSS-module rule reads the same
|
|
165
|
+
// `--vx-space-touch-target` var this resolves to.
|
|
166
|
+
spaceTouchTarget: 'var(--vx-space-touch-target)',
|
|
161
167
|
|
|
162
168
|
// Controls tier sizing (`docs/CONTROLS-SPEC.md` §5) — `var()` refs onto the density-tracking
|
|
163
169
|
// `--vx-space-*` declarations `spaceDecls` emits above (same ref pattern as `radiusCard`/
|
|
@@ -743,6 +749,10 @@ function frameworkDerived(data: PaletteData, only: 'core' | 'all', legacyAliases
|
|
|
743
749
|
// only in this static block, never in `buildRadiusCss`'s dynamic override (see
|
|
744
750
|
// `RADIUS_STEP.pill`'s doc).
|
|
745
751
|
decl('radius-pill', `${RADIUS_STEP.pill}px`),
|
|
752
|
+
// The WCAG touch-target floor — fixed, density-EXEMPT, so it lives only in this static block,
|
|
753
|
+
// never in `buildDensityCss`'s dynamic override (same law as `radius-pill` above; see
|
|
754
|
+
// `SPACE_FIXED.spaceTouchTarget`'s doc).
|
|
755
|
+
decl('space-touch-target', `${SPACE_FIXED.spaceTouchTarget}px`),
|
|
746
756
|
...(only === 'core' ? space.filter(isCoreSpaceDecl) : space),
|
|
747
757
|
// Article-density Prose measure (docs/CONTENT-SPEC.md §5) — theme-independent, like the radii.
|
|
748
758
|
decl('prose-measure', '72ch'),
|
package/src/tokens/palette.ts
CHANGED
|
@@ -760,6 +760,18 @@ export const SPACE_FIXED = {
|
|
|
760
760
|
* `[-3, 3]` range can produce) for no compensating benefit, since the two radii it sits between
|
|
761
761
|
* never move independently of each other. */
|
|
762
762
|
segmentedTrackInset: 2,
|
|
763
|
+
/**
|
|
764
|
+
* The WCAG 2.5.5/2.5.8 touch-target floor (44px) for a hit area that has no `ctl`-tier home to
|
|
765
|
+
* size it — a raw CSS-module rule bumping a control's hit area under `@media (pointer: coarse)`
|
|
766
|
+
* (C5 consolidation: argo carried three such rules with a hand-picked 44/46px literal apiece).
|
|
767
|
+
* Density-exempt for the same reason `touchControlHeight`'s FLOOR is: a target this small must
|
|
768
|
+
* never shrink further, whatever the density knob says elsewhere. Unlike the rest of this
|
|
769
|
+
* object, this ONE key IS emitted as a `--vx-*` var (`tokens/index.ts`'s `space-touch-target`) —
|
|
770
|
+
* the others stay JS-only because nothing outside the framework's own components reads them, but
|
|
771
|
+
* this floor's whole purpose is being read by a CONSUMER's own `.module.css`, which cannot
|
|
772
|
+
* import a JS ref at all.
|
|
773
|
+
*/
|
|
774
|
+
spaceTouchTarget: 44,
|
|
763
775
|
} as const
|
|
764
776
|
|
|
765
777
|
/**
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connectivity-indicator.d.ts","sourceRoot":"","sources":["../../src/connectivity/connectivity-indicator.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAKlD,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAAA;AAyJpD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,GAAE,0BAA+B,+BAiF1F"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"connectivity-provider.d.ts","sourceRoot":"","sources":["../../src/connectivity/connectivity-provider.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAmB9E,eAAO,MAAM,mBAAmB,sDAAmD,CAAA;AAyBnF,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,MAAM,EACN,SAAS,EACT,gBAAyB,EACzB,QAAQ,GACT,EAAE,yBAAyB,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,+BAgIrD"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `./connectivity` — aggregated connectivity monitoring: browser online/offline, React Query
|
|
3
|
-
* onlineManager, SSE EventSource, and health-check pings folded into a single status with
|
|
4
|
-
* per-signal detail.
|
|
5
|
-
*
|
|
6
|
-
* Auto-mounted by BasaltProvider so basic browser detection requires zero consumer setup.
|
|
7
|
-
* SSE and health ping are opt-in via BasaltProvider props.
|
|
8
|
-
*/
|
|
9
|
-
export { ConnectivityProvider } from './connectivity-provider.js';
|
|
10
|
-
export { ConnectivityIndicator } from './connectivity-indicator.js';
|
|
11
|
-
export type { ConnectivityIndicatorProps } from './connectivity-indicator.js';
|
|
12
|
-
export { useConnectivity } from './use-connectivity.js';
|
|
13
|
-
export type { ConnectivityStatus, ConnectivitySnapshot, ConnectivityProviderProps, ConnectivityOverride, } from './types.js';
|
|
14
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectivity/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AAChE,YAAY,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,SAAS,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { ConnectivityProvider } from "./connectivity-provider.js";
|
|
2
|
-
import { ConnectivityIndicator } from "./connectivity-indicator.js";
|
|
3
|
-
import { useConnectivity } from "./use-connectivity.js";
|
|
4
|
-
export {
|
|
5
|
-
ConnectivityIndicator,
|
|
6
|
-
ConnectivityProvider,
|
|
7
|
-
useConnectivity
|
|
8
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/connectivity/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAA;AAElE,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,kBAAkB,CAAA;IAC1B,+DAA+D;IAC/D,OAAO,EAAE;QACP,aAAa,EAAE,OAAO,CAAA;QAItB,WAAW,EAAE,OAAO,CAAA;QACpB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;QACvB,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;KAC9B,CAAA;CACF,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,wGAAwG;IACxG,QAAQ,CAAC,EAAE,oBAAoB,CAAA;CAChC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-connectivity.d.ts","sourceRoot":"","sources":["../../src/connectivity/use-connectivity.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEnD,wBAAgB,eAAe,IAAI,oBAAoB,CAUtD"}
|
package/dist/data/index.d.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./data — TanStack Table + Virtual adapter battery for basalt-ui apps.
|
|
3
|
-
*
|
|
4
|
-
* Provides a sortable data table (BasaltDataTable — with opt-in search/facet toolbar, pagination,
|
|
5
|
-
* and column pinning) and a windowed virtual list (BasaltVirtualList), both rendered with Mantine
|
|
6
|
-
* primitives over headless TanStack logic.
|
|
7
|
-
*
|
|
8
|
-
* Optional peers:
|
|
9
|
-
* - @tanstack/react-table >=8 <9 (BasaltDataTable)
|
|
10
|
-
* - @tanstack/react-virtual >=3.13.26 <4 (BasaltVirtualList)
|
|
11
|
-
*
|
|
12
|
-
* BasaltVirtualList itself works on any 3.x; the declared floor is set by ./agent-chat's
|
|
13
|
-
* ThreadTranscript virtualize mode (it calls scrollToEnd/anchorTo, added in virtual-core 3.16.0,
|
|
14
|
-
* first pinned by react-virtual 3.13.26). npm has one peer range per package, so do not lower it.
|
|
15
|
-
*
|
|
16
|
-
* Install with:
|
|
17
|
-
* bun add @tanstack/react-table @tanstack/react-virtual
|
|
18
|
-
*
|
|
19
|
-
* Convenience barrel — pulls both peer groups. Use the fine subpaths
|
|
20
|
-
* (`basalt-ui/data/table`, `basalt-ui/data/virtual`) for per-feature opt-in.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* // Data table:
|
|
24
|
-
* import { BasaltDataTable, createColumnHelper } from 'basalt-ui/data'
|
|
25
|
-
* type Row = { name: string; score: number }
|
|
26
|
-
* const col = createColumnHelper<Row>()
|
|
27
|
-
* const columns = [col.accessor('name', { header: 'Name' }), col.accessor('score', { header: 'Score' })]
|
|
28
|
-
* <BasaltDataTable data={rows} columns={columns} />
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* // Virtual list:
|
|
32
|
-
* import { BasaltVirtualList } from 'basalt-ui/data'
|
|
33
|
-
* const items = Array.from({ length: 10_000 }, (_, i) => ({ id: i, label: `Row ${i}` }))
|
|
34
|
-
* <BasaltVirtualList items={items} height={400} renderItem={(item) => <div>{item.label}</div>} />
|
|
35
|
-
*/
|
|
36
|
-
export { BasaltDataTable, type BasaltDataTableProps, type BasaltDataTableSlot, type DataTableAlign, type DataTableColumnId, type DataTableColumnPinning, type DataTableFacet, type DataTableFacetOption, createColumnHelper, useReactTable, flexRender, getCoreRowModel, getSortedRowModel, getFilteredRowModel, getPaginationRowModel, type ColumnDef, type SortingState, type ColumnHelper, type PaginationState, type ColumnPinningState, type ColumnFiltersState, type RowSelectionState, } from './table.js';
|
|
37
|
-
export { BasaltVirtualList, type BasaltVirtualListHandle, type BasaltVirtualListProps, type BasaltVirtualListSlot, } from './virtual.js';
|
|
38
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/data/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,kBAAkB,EAClB,aAAa,EACb,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,SAAS,CAAA;AAGhB,OAAO,EACL,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAA"}
|
package/dist/data/index.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
BasaltDataTable,
|
|
3
|
-
createColumnHelper,
|
|
4
|
-
useReactTable,
|
|
5
|
-
flexRender,
|
|
6
|
-
getCoreRowModel,
|
|
7
|
-
getSortedRowModel,
|
|
8
|
-
getFilteredRowModel,
|
|
9
|
-
getPaginationRowModel
|
|
10
|
-
} from "./table.js";
|
|
11
|
-
import {
|
|
12
|
-
BasaltVirtualList
|
|
13
|
-
} from "./virtual.js";
|
|
14
|
-
export {
|
|
15
|
-
BasaltDataTable,
|
|
16
|
-
BasaltVirtualList,
|
|
17
|
-
createColumnHelper,
|
|
18
|
-
flexRender,
|
|
19
|
-
getCoreRowModel,
|
|
20
|
-
getFilteredRowModel,
|
|
21
|
-
getPaginationRowModel,
|
|
22
|
-
getSortedRowModel,
|
|
23
|
-
useReactTable
|
|
24
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/motion/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;CAIlB,CAAA;AAEV,6EAA6E;AAC7E,eAAO,MAAM,oBAAoB,2BAA4B,CAAA;AAE7D,4FAA4F;AAC5F,eAAO,MAAM,aAAa;;;;;CAAsE,CAAA"}
|
package/dist/nav/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/nav/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export type BasaltNotificationsProps = {
|
|
2
|
-
/** Toast position. Default: 'bottom-right'. */
|
|
3
|
-
position?: 'top-left' | 'top-right' | 'top-center' | 'bottom-left' | 'bottom-right' | 'bottom-center';
|
|
4
|
-
/** Auto-close delay (ms). Default: 4000. */
|
|
5
|
-
autoClose?: number | false;
|
|
6
|
-
/** Max visible toasts. Default: 5. */
|
|
7
|
-
limit?: number;
|
|
8
|
-
};
|
|
9
|
-
/**
|
|
10
|
-
* Mounts the Mantine Notifications overlay with basalt defaults.
|
|
11
|
-
* Render ONE instance per app — typically inside BasaltProvider, before the router.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* <BasaltProvider>
|
|
15
|
-
* <BasaltNotifications position="bottom-right" limit={5} />
|
|
16
|
-
* <RouterProvider router={router} />
|
|
17
|
-
* </BasaltProvider>
|
|
18
|
-
*/
|
|
19
|
-
export declare function BasaltNotifications({ position, autoClose, limit, }: BasaltNotificationsProps): import("react").JSX.Element;
|
|
20
|
-
//# sourceMappingURL=overlay.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"overlay.d.ts","sourceRoot":"","sources":["../../src/notifications/overlay.tsx"],"names":[],"mappings":"AAiCA,MAAM,MAAM,wBAAwB,GAAG;IACrC,+CAA+C;IAC/C,QAAQ,CAAC,EACL,UAAU,GACV,WAAW,GACX,YAAY,GACZ,aAAa,GACb,cAAc,GACd,eAAe,CAAA;IACnB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC1B,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,QAAyB,EACzB,SAAgB,EAChB,KAAS,GACV,EAAE,wBAAwB,+BAG1B"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Notifications } from "@mantine/notifications";
|
|
3
|
-
import { useNotificationsMountGuard } from "./mount-guard.js";
|
|
4
|
-
function BasaltNotifications({
|
|
5
|
-
position = "bottom-right",
|
|
6
|
-
autoClose = 4e3,
|
|
7
|
-
limit = 5
|
|
8
|
-
}) {
|
|
9
|
-
useNotificationsMountGuard();
|
|
10
|
-
return /* @__PURE__ */ jsx(Notifications, { position, autoClose, limit });
|
|
11
|
-
}
|
|
12
|
-
export {
|
|
13
|
-
BasaltNotifications
|
|
14
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/query/devtools.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAOxE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,kBAAkB,CAAC,sCAOnF"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Transport-agnostic error decoding. Deliberately a standalone module with NO
|
|
3
|
-
* `@tanstack/react-query` import — `dashboard/query-state.tsx` renders server messages and must
|
|
4
|
-
* not drag the query peer into the root barrel's graph to do it.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* The HTTP status behind a thrown envelope (Eden Treaty's `{ status, value }`, a `Response`-shaped
|
|
8
|
-
* throw), when there is one. Use it to BRANCH — 404 → "not found" copy — rather than to build a
|
|
9
|
-
* message; `toErrorMessage` already folds the status into its text when the body says nothing.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* if (errorStatus(err) === 404) return <EmptyState title="Gone" />
|
|
13
|
-
*/
|
|
14
|
-
export declare function errorStatus(err: unknown): number | undefined;
|
|
15
|
-
/**
|
|
16
|
-
* Extract a human-readable message from an unknown thrown value (e.g. the raw Eden envelope
|
|
17
|
-
* thrown by `unwrap`). Removes the 8-line three-branch boilerplate consumers duplicate.
|
|
18
|
-
*
|
|
19
|
-
* Resolution order:
|
|
20
|
-
* 1. `Error` instance → err.message
|
|
21
|
-
* 2. `{ message: string }` → message (Eden / Elysia error shape)
|
|
22
|
-
* 3. `{ value: ... }` → recursively (Eden nested value envelope)
|
|
23
|
-
* 4. plain string → itself
|
|
24
|
-
* 5. anything else → `JSON.stringify`
|
|
25
|
-
*
|
|
26
|
-
* **If that yields nothing a human can read** (`''`, `'{}'`, `'[]'`, `'null'`, `'undefined'`,
|
|
27
|
-
* `'[object Object]'` — the shapes `JSON.stringify` produces for an opaque envelope) the `fallback`
|
|
28
|
-
* is returned instead, with `(HTTP <status>)` appended when the envelope carries one. Without that
|
|
29
|
-
* guard the caller renders a literal `{}` at the user, or — for `toErrorMessage(undefined)` —
|
|
30
|
-
* the actual value `undefined`, since `JSON.stringify(undefined)` is not a string at all.
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* try {
|
|
34
|
-
* await unwrap(api.resource.post({ body }))
|
|
35
|
-
* } catch (e) {
|
|
36
|
-
* toast(toErrorMessage(e, 'Could not create share')) // → "slug already in use"
|
|
37
|
-
* // → "Could not create share (HTTP 502)"
|
|
38
|
-
* }
|
|
39
|
-
*/
|
|
40
|
-
export declare function toErrorMessage(err: unknown, fallback?: string): string;
|
|
41
|
-
//# sourceMappingURL=error-message.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-message.d.ts","sourceRoot":"","sources":["../../src/query/error-message.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI5D;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,SAAwB,GAAG,MAAM,CAKrF"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
function errorStatus(err) {
|
|
2
|
-
if (err === null || typeof err !== "object") return void 0;
|
|
3
|
-
const status = err.status;
|
|
4
|
-
return typeof status === "number" ? status : void 0;
|
|
5
|
-
}
|
|
6
|
-
const UNUSABLE = /* @__PURE__ */ new Set(["", "{}", "[]", "null", "undefined", "[object Object]"]);
|
|
7
|
-
function decode(err) {
|
|
8
|
-
if (err instanceof Error) return err.message;
|
|
9
|
-
if (typeof err === "string") return err;
|
|
10
|
-
if (typeof err === "object" && err !== null) {
|
|
11
|
-
const obj = err;
|
|
12
|
-
if (typeof obj["message"] === "string") return obj["message"];
|
|
13
|
-
if ("value" in obj) return decode(obj["value"]);
|
|
14
|
-
}
|
|
15
|
-
try {
|
|
16
|
-
return JSON.stringify(err) ?? "";
|
|
17
|
-
} catch {
|
|
18
|
-
return String(err);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function toErrorMessage(err, fallback = "The request failed.") {
|
|
22
|
-
const message = decode(err).trim();
|
|
23
|
-
if (!UNUSABLE.has(message)) return message;
|
|
24
|
-
const status = errorStatus(err);
|
|
25
|
-
return status === void 0 ? fallback : `${fallback} (HTTP ${status})`;
|
|
26
|
-
}
|
|
27
|
-
export {
|
|
28
|
-
errorStatus,
|
|
29
|
-
toErrorMessage
|
|
30
|
-
};
|
package/dist/query/index.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./query — thin TanStack Query adapter + transport-agnostic Eden unwrap.
|
|
3
|
-
* Optional peer: @tanstack/react-query.
|
|
4
|
-
*/
|
|
5
|
-
import { QueryClient } from '@tanstack/react-query';
|
|
6
|
-
import type { QueryClientConfig } from '@tanstack/react-query';
|
|
7
|
-
/**
|
|
8
|
-
* Wraps QueryClient with basalt dashboard defaults. All options are mergeable — consumer
|
|
9
|
-
* overrides win per-query, framework defaults are the fallback.
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* import { createBasaltQueryClient, QueryClientProvider } from 'basalt-ui/query'
|
|
13
|
-
* import { useState } from 'react'
|
|
14
|
-
*
|
|
15
|
-
* function Root({ children }: { children: React.ReactNode }) {
|
|
16
|
-
* const [client] = useState(() => createBasaltQueryClient())
|
|
17
|
-
* return <QueryClientProvider client={client}>{children}</QueryClientProvider>
|
|
18
|
-
* }
|
|
19
|
-
*/
|
|
20
|
-
export declare function createBasaltQueryClient(config?: QueryClientConfig): QueryClient;
|
|
21
|
-
/**
|
|
22
|
-
* Transport-agnostic unwrap for any `{ data, error }` envelope (Eden Treaty, raw fetch wrappers,
|
|
23
|
-
* etc.). TData is inferred from the data field. Throws on the error branch so failures surface
|
|
24
|
-
* to the nearest error boundary or TanStack Query's error state.
|
|
25
|
-
*
|
|
26
|
-
* Null guard: if `error` is falsy but `data` is `null`, unwrap throws with a descriptive message.
|
|
27
|
-
* This catches 204 No Content responses and silent transport failures that return `{ data: null,
|
|
28
|
-
* error: null }` — both signal an unexpected absence of data and should not silently resolve.
|
|
29
|
-
*
|
|
30
|
-
* @example
|
|
31
|
-
* import { unwrap } from 'basalt-ui/query'
|
|
32
|
-
*
|
|
33
|
-
* queryFn: () => unwrap(api.users.get({ query: params }))
|
|
34
|
-
* // mutation:
|
|
35
|
-
* mutationFn: (body) => unwrap(api.resource.post({ body }))
|
|
36
|
-
* // manual:
|
|
37
|
-
* const rows = await unwrap(api.users.get())
|
|
38
|
-
*/
|
|
39
|
-
export declare function unwrap<TData>(response: Promise<{
|
|
40
|
-
data: TData | null;
|
|
41
|
-
error: unknown;
|
|
42
|
-
}>): Promise<TData>;
|
|
43
|
-
export { toErrorMessage, errorStatus } from './error-message.js';
|
|
44
|
-
export { QueryClientProvider, QueryErrorResetBoundary, useQueryErrorResetBoundary, } from '@tanstack/react-query';
|
|
45
|
-
export { useQuery, useSuspenseQuery, useMutation, useQueryClient, useInfiniteQuery, queryOptions, } from '@tanstack/react-query';
|
|
46
|
-
export { BasaltQueryDevtools } from './devtools.js';
|
|
47
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/query/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAW9D;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,iBAAiB,GAAG,WAAW,CAQ/E;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,MAAM,CAAC,KAAK,EAChC,QAAQ,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,GACxD,OAAO,CAAC,KAAK,CAAC,CAQhB;AAID,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAK7D,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,YAAY,GACb,MAAM,uBAAuB,CAAA;AAI9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA"}
|