@jovertical/mise-design-system 0.0.0-stage → 1.1.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/LICENSE +21 -0
- package/LICENSES/shadcn-svelte.txt +23 -0
- package/LICENSES/shadcn-ui.txt +21 -0
- package/LICENSES/tailwindcss.txt +21 -0
- package/README.md +127 -2
- package/bin/mise-theme.js +12 -0
- package/dist/components/actions/button/button-variants.d.ts +37 -0
- package/dist/components/actions/button/button-variants.js +99 -0
- package/dist/components/actions/button/button.svelte +84 -0
- package/dist/components/actions/button/button.svelte.d.ts +17 -0
- package/dist/components/actions/button/index.d.ts +2 -0
- package/dist/components/actions/button/index.js +2 -0
- package/dist/components/actions/command/command-dialog.svelte +60 -0
- package/dist/components/actions/command/command-dialog.svelte.d.ts +17 -0
- package/dist/components/actions/command/command-empty.svelte +24 -0
- package/dist/components/actions/command/command-empty.svelte.d.ts +6 -0
- package/dist/components/actions/command/command-group.svelte +43 -0
- package/dist/components/actions/command/command-group.svelte.d.ts +8 -0
- package/dist/components/actions/command/command-input.svelte +38 -0
- package/dist/components/actions/command/command-input.svelte.d.ts +6 -0
- package/dist/components/actions/command/command-item.svelte +27 -0
- package/dist/components/actions/command/command-item.svelte.d.ts +6 -0
- package/dist/components/actions/command/command-list.svelte +24 -0
- package/dist/components/actions/command/command-list.svelte.d.ts +6 -0
- package/dist/components/actions/command/command-separator.svelte +24 -0
- package/dist/components/actions/command/command-separator.svelte.d.ts +6 -0
- package/dist/components/actions/command/command-shortcut.svelte +33 -0
- package/dist/components/actions/command/command-shortcut.svelte.d.ts +7 -0
- package/dist/components/actions/command/command.svelte +37 -0
- package/dist/components/actions/command/command.svelte.d.ts +10 -0
- package/dist/components/actions/command/index.d.ts +9 -0
- package/dist/components/actions/command/index.js +9 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-checkbox-item.svelte +52 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +9 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-content.svelte +38 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-content.svelte.d.ts +8 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-group.svelte +16 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-group.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-item.svelte +39 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-item.svelte.d.ts +9 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-label.svelte +37 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-label.svelte.d.ts +8 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-portal.svelte +16 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-portal.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-radio-group.svelte +25 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-radio-item.svelte +50 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +9 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-separator.svelte +23 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-separator.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-shortcut.svelte +32 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-shortcut.svelte.d.ts +6 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-sub-content.svelte +26 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-sub-trigger.svelte +41 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-sub.svelte +16 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-sub.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-trigger.svelte +16 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu.svelte +16 -0
- package/dist/components/actions/dropdown-menu/dropdown-menu.svelte.d.ts +5 -0
- package/dist/components/actions/dropdown-menu/index.d.ts +15 -0
- package/dist/components/actions/dropdown-menu/index.js +15 -0
- package/dist/components/actions/theme-toggle/index.d.ts +3 -0
- package/dist/components/actions/theme-toggle/index.js +3 -0
- package/dist/components/actions/theme-toggle/theme-provider.svelte +49 -0
- package/dist/components/actions/theme-toggle/theme-provider.svelte.d.ts +19 -0
- package/dist/components/actions/theme-toggle/theme-toggle.svelte +48 -0
- package/dist/components/actions/theme-toggle/theme-toggle.svelte.d.ts +13 -0
- package/dist/components/actions/theme-toggle/theme.svelte.d.ts +17 -0
- package/dist/components/actions/theme-toggle/theme.svelte.js +45 -0
- package/dist/components/data-display/avatar/avatar-fallback.svelte +29 -0
- package/dist/components/data-display/avatar/avatar-fallback.svelte.d.ts +6 -0
- package/dist/components/data-display/avatar/avatar-image.svelte +23 -0
- package/dist/components/data-display/avatar/avatar-image.svelte.d.ts +5 -0
- package/dist/components/data-display/avatar/avatar-status.svelte +48 -0
- package/dist/components/data-display/avatar/avatar-status.svelte.d.ts +16 -0
- package/dist/components/data-display/avatar/avatar.svelte +24 -0
- package/dist/components/data-display/avatar/avatar.svelte.d.ts +6 -0
- package/dist/components/data-display/avatar/index.d.ts +5 -0
- package/dist/components/data-display/avatar/index.js +5 -0
- package/dist/components/data-display/avatar/presence-dot.svelte +42 -0
- package/dist/components/data-display/avatar/presence-dot.svelte.d.ts +14 -0
- package/dist/components/data-display/badge/badge-variants.d.ts +6 -0
- package/dist/components/data-display/badge/badge-variants.js +53 -0
- package/dist/components/data-display/badge/badge.svelte +66 -0
- package/dist/components/data-display/badge/badge.svelte.d.ts +29 -0
- package/dist/components/data-display/badge/index.d.ts +2 -0
- package/dist/components/data-display/badge/index.js +2 -0
- package/dist/components/data-display/chart/chart-defaults.d.ts +22 -0
- package/dist/components/data-display/chart/chart-defaults.js +19 -0
- package/dist/components/data-display/chart/chart-style.svelte +49 -0
- package/dist/components/data-display/chart/chart-style.svelte.d.ts +9 -0
- package/dist/components/data-display/chart/chart-tooltip.svelte +201 -0
- package/dist/components/data-display/chart/chart-tooltip.svelte.d.ts +30 -0
- package/dist/components/data-display/chart/chart-utils.d.ts +42 -0
- package/dist/components/data-display/chart/chart-utils.js +42 -0
- package/dist/components/data-display/chart/chart.svelte +105 -0
- package/dist/components/data-display/chart/chart.svelte.d.ts +15 -0
- package/dist/components/data-display/chart/index.d.ts +5 -0
- package/dist/components/data-display/chart/index.js +5 -0
- package/dist/components/data-display/checklist/checklist-card.svelte +157 -0
- package/dist/components/data-display/checklist/checklist-card.svelte.d.ts +47 -0
- package/dist/components/data-display/checklist/checklist-row-heading.svelte +56 -0
- package/dist/components/data-display/checklist/checklist-row-heading.svelte.d.ts +10 -0
- package/dist/components/data-display/checklist/checklist-task-row.svelte +101 -0
- package/dist/components/data-display/checklist/checklist-task-row.svelte.d.ts +9 -0
- package/dist/components/data-display/checklist/checklist-types.d.ts +51 -0
- package/dist/components/data-display/checklist/checklist-types.js +6 -0
- package/dist/components/data-display/checklist/checklist.svelte +78 -0
- package/dist/components/data-display/checklist/checklist.svelte.d.ts +24 -0
- package/dist/components/data-display/checklist/index.d.ts +3 -0
- package/dist/components/data-display/checklist/index.js +2 -0
- package/dist/components/data-display/data-table/data-table-column-header.svelte +99 -0
- package/dist/components/data-display/data-table/data-table-column-header.svelte.d.ts +38 -0
- package/dist/components/data-display/data-table/data-table-column-toggle.svelte +68 -0
- package/dist/components/data-display/data-table/data-table-column-toggle.svelte.d.ts +33 -0
- package/dist/components/data-display/data-table/data-table-export-menu.svelte +93 -0
- package/dist/components/data-display/data-table/data-table-export-menu.svelte.d.ts +18 -0
- package/dist/components/data-display/data-table/data-table-faceted-filter.svelte +133 -0
- package/dist/components/data-display/data-table/data-table-faceted-filter.svelte.d.ts +50 -0
- package/dist/components/data-display/data-table/data-table-row-actions.svelte +79 -0
- package/dist/components/data-display/data-table/data-table-row-actions.svelte.d.ts +28 -0
- package/dist/components/data-display/data-table/data-table-toolbar.svelte +180 -0
- package/dist/components/data-display/data-table/data-table-toolbar.svelte.d.ts +70 -0
- package/dist/components/data-display/data-table/data-table-view-toggle.svelte +39 -0
- package/dist/components/data-display/data-table/data-table-view-toggle.svelte.d.ts +12 -0
- package/dist/components/data-display/data-table/data-table.svelte +468 -0
- package/dist/components/data-display/data-table/data-table.svelte.d.ts +103 -0
- package/dist/components/data-display/data-table/features.d.ts +51 -0
- package/dist/components/data-display/data-table/features.js +27 -0
- package/dist/components/data-display/data-table/index.d.ts +9 -0
- package/dist/components/data-display/data-table/index.js +9 -0
- package/dist/components/data-display/delta-badge/delta-badge.svelte +87 -0
- package/dist/components/data-display/delta-badge/delta-badge.svelte.d.ts +39 -0
- package/dist/components/data-display/delta-badge/index.d.ts +1 -0
- package/dist/components/data-display/delta-badge/index.js +1 -0
- package/dist/components/data-display/entity-label/entity-label.svelte +77 -0
- package/dist/components/data-display/entity-label/entity-label.svelte.d.ts +33 -0
- package/dist/components/data-display/entity-label/index.d.ts +1 -0
- package/dist/components/data-display/entity-label/index.js +1 -0
- package/dist/components/data-display/fact-list/fact-list-item.svelte +113 -0
- package/dist/components/data-display/fact-list/fact-list-item.svelte.d.ts +43 -0
- package/dist/components/data-display/fact-list/fact-list.svelte +48 -0
- package/dist/components/data-display/fact-list/fact-list.svelte.d.ts +21 -0
- package/dist/components/data-display/fact-list/index.d.ts +2 -0
- package/dist/components/data-display/fact-list/index.js +2 -0
- package/dist/components/data-display/icon-chip/icon-chip-variants.d.ts +21 -0
- package/dist/components/data-display/icon-chip/icon-chip-variants.js +44 -0
- package/dist/components/data-display/icon-chip/icon-chip.svelte +53 -0
- package/dist/components/data-display/icon-chip/icon-chip.svelte.d.ts +23 -0
- package/dist/components/data-display/icon-chip/index.d.ts +2 -0
- package/dist/components/data-display/icon-chip/index.js +2 -0
- package/dist/components/data-display/item/index.d.ts +11 -0
- package/dist/components/data-display/item/index.js +11 -0
- package/dist/components/data-display/item/item-actions.svelte +27 -0
- package/dist/components/data-display/item/item-actions.svelte.d.ts +6 -0
- package/dist/components/data-display/item/item-content.svelte +27 -0
- package/dist/components/data-display/item/item-content.svelte.d.ts +6 -0
- package/dist/components/data-display/item/item-description.svelte +39 -0
- package/dist/components/data-display/item/item-description.svelte.d.ts +7 -0
- package/dist/components/data-display/item/item-footer.svelte +27 -0
- package/dist/components/data-display/item/item-footer.svelte.d.ts +6 -0
- package/dist/components/data-display/item/item-group.svelte +34 -0
- package/dist/components/data-display/item/item-group.svelte.d.ts +11 -0
- package/dist/components/data-display/item/item-header.svelte +27 -0
- package/dist/components/data-display/item/item-header.svelte.d.ts +6 -0
- package/dist/components/data-display/item/item-media.svelte +63 -0
- package/dist/components/data-display/item/item-media.svelte.d.ts +23 -0
- package/dist/components/data-display/item/item-separator.svelte +25 -0
- package/dist/components/data-display/item/item-separator.svelte.d.ts +5 -0
- package/dist/components/data-display/item/item-title.svelte +27 -0
- package/dist/components/data-display/item/item-title.svelte.d.ts +6 -0
- package/dist/components/data-display/item/item-variants.d.ts +17 -0
- package/dist/components/data-display/item/item-variants.js +37 -0
- package/dist/components/data-display/item/item.svelte +70 -0
- package/dist/components/data-display/item/item.svelte.d.ts +30 -0
- package/dist/components/data-display/metric-bar/index.d.ts +2 -0
- package/dist/components/data-display/metric-bar/index.js +2 -0
- package/dist/components/data-display/metric-bar/metric-bar.svelte +122 -0
- package/dist/components/data-display/metric-bar/metric-bar.svelte.d.ts +41 -0
- package/dist/components/data-display/metric-bar/metric-rank.svelte +33 -0
- package/dist/components/data-display/metric-bar/metric-rank.svelte.d.ts +12 -0
- package/dist/components/data-display/metric-grid/index.d.ts +1 -0
- package/dist/components/data-display/metric-grid/index.js +1 -0
- package/dist/components/data-display/metric-grid/metric-grid.svelte +66 -0
- package/dist/components/data-display/metric-grid/metric-grid.svelte.d.ts +35 -0
- package/dist/components/data-display/metric-row/index.d.ts +1 -0
- package/dist/components/data-display/metric-row/index.js +1 -0
- package/dist/components/data-display/metric-row/metric-row.svelte +175 -0
- package/dist/components/data-display/metric-row/metric-row.svelte.d.ts +58 -0
- package/dist/components/data-display/radial-stat/index.d.ts +1 -0
- package/dist/components/data-display/radial-stat/index.js +1 -0
- package/dist/components/data-display/radial-stat/radial-stat.svelte +113 -0
- package/dist/components/data-display/radial-stat/radial-stat.svelte.d.ts +35 -0
- package/dist/components/data-display/readiness/index.d.ts +3 -0
- package/dist/components/data-display/readiness/index.js +3 -0
- package/dist/components/data-display/readiness/readiness-summarise.d.ts +40 -0
- package/dist/components/data-display/readiness/readiness-summarise.js +25 -0
- package/dist/components/data-display/readiness/readiness-summary.svelte +65 -0
- package/dist/components/data-display/readiness/readiness-summary.svelte.d.ts +19 -0
- package/dist/components/data-display/readiness/readiness.svelte +102 -0
- package/dist/components/data-display/readiness/readiness.svelte.d.ts +22 -0
- package/dist/components/data-display/segmented-bar/index.d.ts +1 -0
- package/dist/components/data-display/segmented-bar/index.js +1 -0
- package/dist/components/data-display/segmented-bar/segmented-bar.svelte +116 -0
- package/dist/components/data-display/segmented-bar/segmented-bar.svelte.d.ts +34 -0
- package/dist/components/data-display/segmented-code/index.d.ts +1 -0
- package/dist/components/data-display/segmented-code/index.js +1 -0
- package/dist/components/data-display/segmented-code/segmented-code.svelte +84 -0
- package/dist/components/data-display/segmented-code/segmented-code.svelte.d.ts +27 -0
- package/dist/components/data-display/sparkline/index.d.ts +1 -0
- package/dist/components/data-display/sparkline/index.js +1 -0
- package/dist/components/data-display/sparkline/sparkline.svelte +98 -0
- package/dist/components/data-display/sparkline/sparkline.svelte.d.ts +22 -0
- package/dist/components/data-display/stat-tile/index.d.ts +1 -0
- package/dist/components/data-display/stat-tile/index.js +1 -0
- package/dist/components/data-display/stat-tile/stat-tile.svelte +328 -0
- package/dist/components/data-display/stat-tile/stat-tile.svelte.d.ts +125 -0
- package/dist/components/data-display/table/context.d.ts +2 -0
- package/dist/components/data-display/table/context.js +16 -0
- package/dist/components/data-display/table/index.d.ts +8 -0
- package/dist/components/data-display/table/index.js +8 -0
- package/dist/components/data-display/table/table-body.svelte +28 -0
- package/dist/components/data-display/table/table-body.svelte.d.ts +7 -0
- package/dist/components/data-display/table/table-caption.svelte +28 -0
- package/dist/components/data-display/table/table-caption.svelte.d.ts +7 -0
- package/dist/components/data-display/table/table-cell.svelte +45 -0
- package/dist/components/data-display/table/table-cell.svelte.d.ts +9 -0
- package/dist/components/data-display/table/table-footer.svelte +28 -0
- package/dist/components/data-display/table/table-footer.svelte.d.ts +7 -0
- package/dist/components/data-display/table/table-head.svelte +54 -0
- package/dist/components/data-display/table/table-head.svelte.d.ts +15 -0
- package/dist/components/data-display/table/table-header.svelte +28 -0
- package/dist/components/data-display/table/table-header.svelte.d.ts +7 -0
- package/dist/components/data-display/table/table-row.svelte +31 -0
- package/dist/components/data-display/table/table-row.svelte.d.ts +7 -0
- package/dist/components/data-display/table/table.svelte +47 -0
- package/dist/components/data-display/table/table.svelte.d.ts +14 -0
- package/dist/components/data-display/timeline/index.d.ts +8 -0
- package/dist/components/data-display/timeline/index.js +8 -0
- package/dist/components/data-display/timeline/timeline-connector.svelte +33 -0
- package/dist/components/data-display/timeline/timeline-connector.svelte.d.ts +11 -0
- package/dist/components/data-display/timeline/timeline-content.svelte +35 -0
- package/dist/components/data-display/timeline/timeline-content.svelte.d.ts +7 -0
- package/dist/components/data-display/timeline/timeline-dot.svelte +57 -0
- package/dist/components/data-display/timeline/timeline-dot.svelte.d.ts +21 -0
- package/dist/components/data-display/timeline/timeline-item.svelte +26 -0
- package/dist/components/data-display/timeline/timeline-item.svelte.d.ts +6 -0
- package/dist/components/data-display/timeline/timeline-skeleton.svelte +43 -0
- package/dist/components/data-display/timeline/timeline-skeleton.svelte.d.ts +9 -0
- package/dist/components/data-display/timeline/timeline-title.svelte +30 -0
- package/dist/components/data-display/timeline/timeline-title.svelte.d.ts +7 -0
- package/dist/components/data-display/timeline/timeline-variants.d.ts +12 -0
- package/dist/components/data-display/timeline/timeline-variants.js +34 -0
- package/dist/components/data-display/timeline/timeline.svelte +38 -0
- package/dist/components/data-display/timeline/timeline.svelte.d.ts +18 -0
- package/dist/components/data-display/tree-leaf/index.d.ts +1 -0
- package/dist/components/data-display/tree-leaf/index.js +1 -0
- package/dist/components/data-display/tree-leaf/tree-leaf.svelte +87 -0
- package/dist/components/data-display/tree-leaf/tree-leaf.svelte.d.ts +30 -0
- package/dist/components/feedback/alert/alert-action.svelte +36 -0
- package/dist/components/feedback/alert/alert-action.svelte.d.ts +11 -0
- package/dist/components/feedback/alert/alert-description.svelte +38 -0
- package/dist/components/feedback/alert/alert-description.svelte.d.ts +9 -0
- package/dist/components/feedback/alert/alert-title.svelte +30 -0
- package/dist/components/feedback/alert/alert-title.svelte.d.ts +9 -0
- package/dist/components/feedback/alert/alert-variants.d.ts +11 -0
- package/dist/components/feedback/alert/alert-variants.js +26 -0
- package/dist/components/feedback/alert/alert.svelte +38 -0
- package/dist/components/feedback/alert/alert.svelte.d.ts +15 -0
- package/dist/components/feedback/alert/index.d.ts +5 -0
- package/dist/components/feedback/alert/index.js +5 -0
- package/dist/components/feedback/empty/empty-content.svelte +30 -0
- package/dist/components/feedback/empty/empty-content.svelte.d.ts +6 -0
- package/dist/components/feedback/empty/empty-description.svelte +35 -0
- package/dist/components/feedback/empty/empty-description.svelte.d.ts +6 -0
- package/dist/components/feedback/empty/empty-header.svelte +27 -0
- package/dist/components/feedback/empty/empty-header.svelte.d.ts +6 -0
- package/dist/components/feedback/empty/empty-media.svelte +43 -0
- package/dist/components/feedback/empty/empty-media.svelte.d.ts +14 -0
- package/dist/components/feedback/empty/empty-title.svelte +27 -0
- package/dist/components/feedback/empty/empty-title.svelte.d.ts +6 -0
- package/dist/components/feedback/empty/empty-variants.d.ts +10 -0
- package/dist/components/feedback/empty/empty-variants.js +20 -0
- package/dist/components/feedback/empty/empty.svelte +36 -0
- package/dist/components/feedback/empty/empty.svelte.d.ts +11 -0
- package/dist/components/feedback/empty/index.d.ts +7 -0
- package/dist/components/feedback/empty/index.js +7 -0
- package/dist/components/feedback/empty-state/empty-state.svelte +45 -0
- package/dist/components/feedback/empty-state/empty-state.svelte.d.ts +19 -0
- package/dist/components/feedback/empty-state/index.d.ts +1 -0
- package/dist/components/feedback/empty-state/index.js +1 -0
- package/dist/components/feedback/error-state/error-state.svelte +102 -0
- package/dist/components/feedback/error-state/error-state.svelte.d.ts +37 -0
- package/dist/components/feedback/error-state/index.d.ts +1 -0
- package/dist/components/feedback/error-state/index.js +1 -0
- package/dist/components/feedback/feature-preview/feature-preview.svelte +102 -0
- package/dist/components/feedback/feature-preview/feature-preview.svelte.d.ts +34 -0
- package/dist/components/feedback/feature-preview/index.d.ts +1 -0
- package/dist/components/feedback/feature-preview/index.js +1 -0
- package/dist/components/feedback/loading-state/index.d.ts +1 -0
- package/dist/components/feedback/loading-state/index.js +1 -0
- package/dist/components/feedback/loading-state/loading-state.svelte +48 -0
- package/dist/components/feedback/loading-state/loading-state.svelte.d.ts +18 -0
- package/dist/components/feedback/locked-overlay/index.d.ts +1 -0
- package/dist/components/feedback/locked-overlay/index.js +1 -0
- package/dist/components/feedback/locked-overlay/locked-overlay.svelte +77 -0
- package/dist/components/feedback/locked-overlay/locked-overlay.svelte.d.ts +31 -0
- package/dist/components/feedback/navigation-progress/index.d.ts +1 -0
- package/dist/components/feedback/navigation-progress/index.js +1 -0
- package/dist/components/feedback/navigation-progress/navigation-progress.svelte +93 -0
- package/dist/components/feedback/navigation-progress/navigation-progress.svelte.d.ts +20 -0
- package/dist/components/feedback/progress/index.d.ts +1 -0
- package/dist/components/feedback/progress/index.js +1 -0
- package/dist/components/feedback/progress/progress.svelte +48 -0
- package/dist/components/feedback/progress/progress.svelte.d.ts +12 -0
- package/dist/components/feedback/skeleton/index.d.ts +1 -0
- package/dist/components/feedback/skeleton/index.js +1 -0
- package/dist/components/feedback/skeleton/skeleton.svelte +33 -0
- package/dist/components/feedback/skeleton/skeleton.svelte.d.ts +10 -0
- package/dist/components/feedback/sonner/index.d.ts +2 -0
- package/dist/components/feedback/sonner/index.js +2 -0
- package/dist/components/feedback/sonner/sonner.svelte +87 -0
- package/dist/components/feedback/sonner/sonner.svelte.d.ts +6 -0
- package/dist/components/feedback/spinner/index.d.ts +1 -0
- package/dist/components/feedback/spinner/index.js +1 -0
- package/dist/components/feedback/spinner/spinner.svelte +50 -0
- package/dist/components/feedback/spinner/spinner.svelte.d.ts +17 -0
- package/dist/components/forms/button-group/button-group-separator.svelte +31 -0
- package/dist/components/forms/button-group/button-group-separator.svelte.d.ts +6 -0
- package/dist/components/forms/button-group/button-group-text.svelte +46 -0
- package/dist/components/forms/button-group/button-group-text.svelte.d.ts +12 -0
- package/dist/components/forms/button-group/button-group-variants.d.ts +13 -0
- package/dist/components/forms/button-group/button-group-variants.js +20 -0
- package/dist/components/forms/button-group/button-group.svelte +46 -0
- package/dist/components/forms/button-group/button-group.svelte.d.ts +14 -0
- package/dist/components/forms/button-group/index.d.ts +4 -0
- package/dist/components/forms/button-group/index.js +4 -0
- package/dist/components/forms/calendar/calendar-caption.svelte +103 -0
- package/dist/components/forms/calendar/calendar-caption.svelte.d.ts +16 -0
- package/dist/components/forms/calendar/calendar-classes.d.ts +23 -0
- package/dist/components/forms/calendar/calendar-classes.js +36 -0
- package/dist/components/forms/calendar/calendar.svelte +120 -0
- package/dist/components/forms/calendar/calendar.svelte.d.ts +21 -0
- package/dist/components/forms/calendar/index.d.ts +3 -0
- package/dist/components/forms/calendar/index.js +2 -0
- package/dist/components/forms/calendar/range-calendar.svelte +114 -0
- package/dist/components/forms/calendar/range-calendar.svelte.d.ts +18 -0
- package/dist/components/forms/checkbox/checkbox.svelte +55 -0
- package/dist/components/forms/checkbox/checkbox.svelte.d.ts +6 -0
- package/dist/components/forms/checkbox/index.d.ts +1 -0
- package/dist/components/forms/checkbox/index.js +1 -0
- package/dist/components/forms/choice-row/choice-row-readonly.svelte +56 -0
- package/dist/components/forms/choice-row/choice-row-readonly.svelte.d.ts +17 -0
- package/dist/components/forms/choice-row/choice-row.svelte +129 -0
- package/dist/components/forms/choice-row/choice-row.svelte.d.ts +53 -0
- package/dist/components/forms/choice-row/index.d.ts +2 -0
- package/dist/components/forms/choice-row/index.js +2 -0
- package/dist/components/forms/combobox/combobox-chip.svelte +65 -0
- package/dist/components/forms/combobox/combobox-chip.svelte.d.ts +14 -0
- package/dist/components/forms/combobox/combobox-chips-input.svelte +23 -0
- package/dist/components/forms/combobox/combobox-chips-input.svelte.d.ts +6 -0
- package/dist/components/forms/combobox/combobox-chips.svelte +35 -0
- package/dist/components/forms/combobox/combobox-chips.svelte.d.ts +10 -0
- package/dist/components/forms/combobox/combobox-content.svelte +52 -0
- package/dist/components/forms/combobox/combobox-content.svelte.d.ts +11 -0
- package/dist/components/forms/combobox/combobox-context.d.ts +6 -0
- package/dist/components/forms/combobox/combobox-context.js +9 -0
- package/dist/components/forms/combobox/combobox-empty.svelte +28 -0
- package/dist/components/forms/combobox/combobox-empty.svelte.d.ts +6 -0
- package/dist/components/forms/combobox/combobox-group.svelte +15 -0
- package/dist/components/forms/combobox/combobox-group.svelte.d.ts +5 -0
- package/dist/components/forms/combobox/combobox-input.svelte +98 -0
- package/dist/components/forms/combobox/combobox-input.svelte.d.ts +16 -0
- package/dist/components/forms/combobox/combobox-item.svelte +61 -0
- package/dist/components/forms/combobox/combobox-item.svelte.d.ts +9 -0
- package/dist/components/forms/combobox/combobox-label.svelte +25 -0
- package/dist/components/forms/combobox/combobox-label.svelte.d.ts +5 -0
- package/dist/components/forms/combobox/combobox-list.svelte +27 -0
- package/dist/components/forms/combobox/combobox-list.svelte.d.ts +5 -0
- package/dist/components/forms/combobox/combobox-separator.svelte +22 -0
- package/dist/components/forms/combobox/combobox-separator.svelte.d.ts +5 -0
- package/dist/components/forms/combobox/combobox-trigger.svelte +36 -0
- package/dist/components/forms/combobox/combobox-trigger.svelte.d.ts +6 -0
- package/dist/components/forms/combobox/combobox.svelte +49 -0
- package/dist/components/forms/combobox/combobox.svelte.d.ts +23 -0
- package/dist/components/forms/combobox/index.d.ts +13 -0
- package/dist/components/forms/combobox/index.js +13 -0
- package/dist/components/forms/date-picker/date-picker.svelte +149 -0
- package/dist/components/forms/date-picker/date-picker.svelte.d.ts +45 -0
- package/dist/components/forms/date-picker/index.d.ts +1 -0
- package/dist/components/forms/date-picker/index.js +1 -0
- package/dist/components/forms/field/field-content.svelte +27 -0
- package/dist/components/forms/field/field-content.svelte.d.ts +6 -0
- package/dist/components/forms/field/field-description.svelte +40 -0
- package/dist/components/forms/field/field-description.svelte.d.ts +6 -0
- package/dist/components/forms/field/field-error.svelte +57 -0
- package/dist/components/forms/field/field-error.svelte.d.ts +15 -0
- package/dist/components/forms/field/field-group.svelte +30 -0
- package/dist/components/forms/field/field-group.svelte.d.ts +6 -0
- package/dist/components/forms/field/field-label.svelte +49 -0
- package/dist/components/forms/field/field-label.svelte.d.ts +12 -0
- package/dist/components/forms/field/field-legend.svelte +44 -0
- package/dist/components/forms/field/field-legend.svelte.d.ts +8 -0
- package/dist/components/forms/field/field-separator.svelte +37 -0
- package/dist/components/forms/field/field-separator.svelte.d.ts +6 -0
- package/dist/components/forms/field/field-set.svelte +31 -0
- package/dist/components/forms/field/field-set.svelte.d.ts +6 -0
- package/dist/components/forms/field/field-title.svelte +30 -0
- package/dist/components/forms/field/field-title.svelte.d.ts +6 -0
- package/dist/components/forms/field/field-variants.d.ts +10 -0
- package/dist/components/forms/field/field-variants.js +26 -0
- package/dist/components/forms/field/field.svelte +45 -0
- package/dist/components/forms/field/field.svelte.d.ts +14 -0
- package/dist/components/forms/field/index.d.ts +11 -0
- package/dist/components/forms/field/index.js +11 -0
- package/dist/components/forms/form/form-button.svelte +19 -0
- package/dist/components/forms/form/form-button.svelte.d.ts +6 -0
- package/dist/components/forms/form/form-description.svelte +28 -0
- package/dist/components/forms/form/form-description.svelte.d.ts +7 -0
- package/dist/components/forms/form/form-element-field.svelte +47 -0
- package/dist/components/forms/form/form-element-field.svelte.d.ts +35 -0
- package/dist/components/forms/form/form-field-errors.svelte +48 -0
- package/dist/components/forms/form/form-field-errors.svelte.d.ts +9 -0
- package/dist/components/forms/form/form-field.svelte +56 -0
- package/dist/components/forms/form/form-field.svelte.d.ts +42 -0
- package/dist/components/forms/form/form-fieldset.svelte +41 -0
- package/dist/components/forms/form/form-fieldset.svelte.d.ts +29 -0
- package/dist/components/forms/form/form-label.svelte +47 -0
- package/dist/components/forms/form/form-label.svelte.d.ts +10 -0
- package/dist/components/forms/form/form-legend.svelte +28 -0
- package/dist/components/forms/form/form-legend.svelte.d.ts +7 -0
- package/dist/components/forms/form/form-types.d.ts +13 -0
- package/dist/components/forms/form/form-types.js +1 -0
- package/dist/components/forms/form/form.svelte +38 -0
- package/dist/components/forms/form/form.svelte.d.ts +38 -0
- package/dist/components/forms/form/index.d.ts +11 -0
- package/dist/components/forms/form/index.js +10 -0
- package/dist/components/forms/input/index.d.ts +1 -0
- package/dist/components/forms/input/index.js +1 -0
- package/dist/components/forms/input/input.svelte +58 -0
- package/dist/components/forms/input/input.svelte.d.ts +13 -0
- package/dist/components/forms/input-group/index.d.ts +7 -0
- package/dist/components/forms/input-group/index.js +7 -0
- package/dist/components/forms/input-group/input-group-addon.svelte +51 -0
- package/dist/components/forms/input-group/input-group-addon.svelte.d.ts +10 -0
- package/dist/components/forms/input-group/input-group-button.svelte +39 -0
- package/dist/components/forms/input-group/input-group-button.svelte.d.ts +8 -0
- package/dist/components/forms/input-group/input-group-input.svelte +33 -0
- package/dist/components/forms/input-group/input-group-input.svelte.d.ts +5 -0
- package/dist/components/forms/input-group/input-group-text.svelte +30 -0
- package/dist/components/forms/input-group/input-group-text.svelte.d.ts +7 -0
- package/dist/components/forms/input-group/input-group-textarea.svelte +39 -0
- package/dist/components/forms/input-group/input-group-textarea.svelte.d.ts +11 -0
- package/dist/components/forms/input-group/input-group-variants.d.ts +14 -0
- package/dist/components/forms/input-group/input-group-variants.js +32 -0
- package/dist/components/forms/input-group/input-group.svelte +44 -0
- package/dist/components/forms/input-group/input-group.svelte.d.ts +11 -0
- package/dist/components/forms/input-otp/index.d.ts +4 -0
- package/dist/components/forms/input-otp/index.js +4 -0
- package/dist/components/forms/input-otp/input-otp-group.svelte +40 -0
- package/dist/components/forms/input-otp/input-otp-group.svelte.d.ts +12 -0
- package/dist/components/forms/input-otp/input-otp-separator.svelte +28 -0
- package/dist/components/forms/input-otp/input-otp-separator.svelte.d.ts +6 -0
- package/dist/components/forms/input-otp/input-otp-slot.svelte +56 -0
- package/dist/components/forms/input-otp/input-otp-slot.svelte.d.ts +8 -0
- package/dist/components/forms/input-otp/input-otp.svelte +40 -0
- package/dist/components/forms/input-otp/input-otp.svelte.d.ts +10 -0
- package/dist/components/forms/label/index.d.ts +1 -0
- package/dist/components/forms/label/index.js +1 -0
- package/dist/components/forms/label/label.svelte +26 -0
- package/dist/components/forms/label/label.svelte.d.ts +5 -0
- package/dist/components/forms/media-dropzone/index.d.ts +2 -0
- package/dist/components/forms/media-dropzone/index.js +1 -0
- package/dist/components/forms/media-dropzone/media-dropzone.svelte +248 -0
- package/dist/components/forms/media-dropzone/media-dropzone.svelte.d.ts +42 -0
- package/dist/components/forms/media-dropzone/media-uploader.svelte.d.ts +81 -0
- package/dist/components/forms/media-dropzone/media-uploader.svelte.js +177 -0
- package/dist/components/forms/number-input/index.d.ts +3 -0
- package/dist/components/forms/number-input/index.js +2 -0
- package/dist/components/forms/number-input/number-input-field.svelte +157 -0
- package/dist/components/forms/number-input/number-input-field.svelte.d.ts +21 -0
- package/dist/components/forms/number-input/number-input-math.d.ts +21 -0
- package/dist/components/forms/number-input/number-input-math.js +43 -0
- package/dist/components/forms/number-input/number-input.svelte +175 -0
- package/dist/components/forms/number-input/number-input.svelte.d.ts +53 -0
- package/dist/components/forms/quantity-input/index.d.ts +1 -0
- package/dist/components/forms/quantity-input/index.js +1 -0
- package/dist/components/forms/quantity-input/quantity-input.svelte +262 -0
- package/dist/components/forms/quantity-input/quantity-input.svelte.d.ts +75 -0
- package/dist/components/forms/radio-group/index.d.ts +2 -0
- package/dist/components/forms/radio-group/index.js +2 -0
- package/dist/components/forms/radio-group/radio-group-item.svelte +41 -0
- package/dist/components/forms/radio-group/radio-group-item.svelte.d.ts +6 -0
- package/dist/components/forms/radio-group/radio-group.svelte +30 -0
- package/dist/components/forms/radio-group/radio-group.svelte.d.ts +5 -0
- package/dist/components/forms/select/index.d.ts +10 -0
- package/dist/components/forms/select/index.js +10 -0
- package/dist/components/forms/select/select-content.svelte +53 -0
- package/dist/components/forms/select/select-content.svelte.d.ts +9 -0
- package/dist/components/forms/select/select-group.svelte +16 -0
- package/dist/components/forms/select/select-group.svelte.d.ts +5 -0
- package/dist/components/forms/select/select-item.svelte +67 -0
- package/dist/components/forms/select/select-item.svelte.d.ts +13 -0
- package/dist/components/forms/select/select-label.svelte +23 -0
- package/dist/components/forms/select/select-label.svelte.d.ts +5 -0
- package/dist/components/forms/select/select-scroll-down-button.svelte +30 -0
- package/dist/components/forms/select/select-scroll-down-button.svelte.d.ts +6 -0
- package/dist/components/forms/select/select-scroll-up-button.svelte +30 -0
- package/dist/components/forms/select/select-scroll-up-button.svelte.d.ts +6 -0
- package/dist/components/forms/select/select-separator.svelte +26 -0
- package/dist/components/forms/select/select-separator.svelte.d.ts +6 -0
- package/dist/components/forms/select/select-trigger.svelte +48 -0
- package/dist/components/forms/select/select-trigger.svelte.d.ts +14 -0
- package/dist/components/forms/select/select-value.svelte +16 -0
- package/dist/components/forms/select/select-value.svelte.d.ts +5 -0
- package/dist/components/forms/select/select.svelte +33 -0
- package/dist/components/forms/select/select.svelte.d.ts +20 -0
- package/dist/components/forms/switch/index.d.ts +1 -0
- package/dist/components/forms/switch/index.js +1 -0
- package/dist/components/forms/switch/switch.svelte +41 -0
- package/dist/components/forms/switch/switch.svelte.d.ts +7 -0
- package/dist/components/forms/switch-field/index.d.ts +1 -0
- package/dist/components/forms/switch-field/index.js +1 -0
- package/dist/components/forms/switch-field/switch-field.svelte +124 -0
- package/dist/components/forms/switch-field/switch-field.svelte.d.ts +51 -0
- package/dist/components/forms/textarea/index.d.ts +1 -0
- package/dist/components/forms/textarea/index.js +1 -0
- package/dist/components/forms/textarea/textarea.svelte +70 -0
- package/dist/components/forms/textarea/textarea.svelte.d.ts +12 -0
- package/dist/components/forms/time-picker/index.d.ts +1 -0
- package/dist/components/forms/time-picker/index.js +1 -0
- package/dist/components/forms/time-picker/time-picker.svelte +127 -0
- package/dist/components/forms/time-picker/time-picker.svelte.d.ts +20 -0
- package/dist/components/forms/toggle/index.d.ts +2 -0
- package/dist/components/forms/toggle/index.js +2 -0
- package/dist/components/forms/toggle/toggle-variants.d.ts +13 -0
- package/dist/components/forms/toggle/toggle-variants.js +63 -0
- package/dist/components/forms/toggle/toggle.svelte +48 -0
- package/dist/components/forms/toggle/toggle.svelte.d.ts +16 -0
- package/dist/components/forms/toggle-group/index.d.ts +2 -0
- package/dist/components/forms/toggle-group/index.js +2 -0
- package/dist/components/forms/toggle-group/toggle-group-item.svelte +60 -0
- package/dist/components/forms/toggle-group/toggle-group-item.svelte.d.ts +9 -0
- package/dist/components/forms/toggle-group/toggle-group.svelte +82 -0
- package/dist/components/forms/toggle-group/toggle-group.svelte.d.ts +21 -0
- package/dist/components/layout/aside-card/aside-card.svelte +76 -0
- package/dist/components/layout/aside-card/aside-card.svelte.d.ts +19 -0
- package/dist/components/layout/aside-card/index.d.ts +1 -0
- package/dist/components/layout/aside-card/index.js +1 -0
- package/dist/components/layout/card/card-action.svelte +33 -0
- package/dist/components/layout/card/card-action.svelte.d.ts +12 -0
- package/dist/components/layout/card/card-content.svelte +48 -0
- package/dist/components/layout/card/card-content.svelte.d.ts +19 -0
- package/dist/components/layout/card/card-description.svelte +32 -0
- package/dist/components/layout/card/card-description.svelte.d.ts +6 -0
- package/dist/components/layout/card/card-footer.svelte +62 -0
- package/dist/components/layout/card/card-footer.svelte.d.ts +23 -0
- package/dist/components/layout/card/card-header.svelte +48 -0
- package/dist/components/layout/card/card-header.svelte.d.ts +17 -0
- package/dist/components/layout/card/card-title.svelte +61 -0
- package/dist/components/layout/card/card-title.svelte.d.ts +26 -0
- package/dist/components/layout/card/card.svelte +60 -0
- package/dist/components/layout/card/card.svelte.d.ts +19 -0
- package/dist/components/layout/card/index.d.ts +7 -0
- package/dist/components/layout/card/index.js +7 -0
- package/dist/components/layout/card-grid/card-grid-cell.svelte +32 -0
- package/dist/components/layout/card-grid/card-grid-cell.svelte.d.ts +11 -0
- package/dist/components/layout/card-grid/card-grid.svelte +51 -0
- package/dist/components/layout/card-grid/card-grid.svelte.d.ts +17 -0
- package/dist/components/layout/card-grid/index.d.ts +2 -0
- package/dist/components/layout/card-grid/index.js +2 -0
- package/dist/components/layout/card-list/card-list.svelte +59 -0
- package/dist/components/layout/card-list/card-list.svelte.d.ts +27 -0
- package/dist/components/layout/card-list/index.d.ts +1 -0
- package/dist/components/layout/card-list/index.js +1 -0
- package/dist/components/layout/collapsible/collapsible-content.svelte +16 -0
- package/dist/components/layout/collapsible/collapsible-content.svelte.d.ts +5 -0
- package/dist/components/layout/collapsible/collapsible-trigger.svelte +16 -0
- package/dist/components/layout/collapsible/collapsible-trigger.svelte.d.ts +5 -0
- package/dist/components/layout/collapsible/collapsible.svelte +22 -0
- package/dist/components/layout/collapsible/collapsible.svelte.d.ts +10 -0
- package/dist/components/layout/collapsible/index.d.ts +3 -0
- package/dist/components/layout/collapsible/index.js +3 -0
- package/dist/components/layout/page-header/index.d.ts +1 -0
- package/dist/components/layout/page-header/index.js +1 -0
- package/dist/components/layout/page-header/page-header.svelte +118 -0
- package/dist/components/layout/page-header/page-header.svelte.d.ts +34 -0
- package/dist/components/layout/page-layout/index.d.ts +1 -0
- package/dist/components/layout/page-layout/index.js +1 -0
- package/dist/components/layout/page-layout/page-layout.svelte +30 -0
- package/dist/components/layout/page-layout/page-layout.svelte.d.ts +10 -0
- package/dist/components/layout/separator/index.d.ts +1 -0
- package/dist/components/layout/separator/index.js +1 -0
- package/dist/components/layout/separator/separator.svelte +34 -0
- package/dist/components/layout/separator/separator.svelte.d.ts +5 -0
- package/dist/components/layout/summary-card/index.d.ts +1 -0
- package/dist/components/layout/summary-card/index.js +1 -0
- package/dist/components/layout/summary-card/summary-card.svelte +51 -0
- package/dist/components/layout/summary-card/summary-card.svelte.d.ts +23 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-ellipsis.svelte +38 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-ellipsis.svelte.d.ts +9 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-item.svelte +30 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-item.svelte.d.ts +10 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-link.svelte +42 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-link.svelte.d.ts +12 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-list.svelte +26 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-list.svelte.d.ts +6 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-page.svelte +31 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-page.svelte.d.ts +10 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-separator.svelte +39 -0
- package/dist/components/navigation/breadcrumb/breadcrumb-separator.svelte.d.ts +9 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.svelte +32 -0
- package/dist/components/navigation/breadcrumb/breadcrumb.svelte.d.ts +11 -0
- package/dist/components/navigation/breadcrumb/index.d.ts +7 -0
- package/dist/components/navigation/breadcrumb/index.js +7 -0
- package/dist/components/navigation/sidebar/context.svelte.d.ts +26 -0
- package/dist/components/navigation/sidebar/context.svelte.js +61 -0
- package/dist/components/navigation/sidebar/index.d.ts +25 -0
- package/dist/components/navigation/sidebar/index.js +25 -0
- package/dist/components/navigation/sidebar/sidebar-content.svelte +32 -0
- package/dist/components/navigation/sidebar/sidebar-content.svelte.d.ts +7 -0
- package/dist/components/navigation/sidebar/sidebar-footer.svelte +28 -0
- package/dist/components/navigation/sidebar/sidebar-footer.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-group-action.svelte +50 -0
- package/dist/components/navigation/sidebar/sidebar-group-action.svelte.d.ts +12 -0
- package/dist/components/navigation/sidebar/sidebar-group-content.svelte +36 -0
- package/dist/components/navigation/sidebar/sidebar-group-content.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-group-label.svelte +51 -0
- package/dist/components/navigation/sidebar/sidebar-group-label.svelte.d.ts +12 -0
- package/dist/components/navigation/sidebar/sidebar-group.svelte +32 -0
- package/dist/components/navigation/sidebar/sidebar-group.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-header.svelte +33 -0
- package/dist/components/navigation/sidebar/sidebar-header.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-input.svelte +31 -0
- package/dist/components/navigation/sidebar/sidebar-input.svelte.d.ts +5 -0
- package/dist/components/navigation/sidebar/sidebar-inset.svelte +32 -0
- package/dist/components/navigation/sidebar/sidebar-inset.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-menu-action.svelte +58 -0
- package/dist/components/navigation/sidebar/sidebar-menu-action.svelte.d.ts +14 -0
- package/dist/components/navigation/sidebar/sidebar-menu-badge.svelte +42 -0
- package/dist/components/navigation/sidebar/sidebar-menu-badge.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-menu-button.svelte +97 -0
- package/dist/components/navigation/sidebar/sidebar-menu-button.svelte.d.ts +20 -0
- package/dist/components/navigation/sidebar/sidebar-menu-item.svelte +33 -0
- package/dist/components/navigation/sidebar/sidebar-menu-item.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-menu-skeleton.svelte +46 -0
- package/dist/components/navigation/sidebar/sidebar-menu-skeleton.svelte.d.ts +8 -0
- package/dist/components/navigation/sidebar/sidebar-menu-sub-button.svelte +64 -0
- package/dist/components/navigation/sidebar/sidebar-menu-sub-button.svelte.d.ts +14 -0
- package/dist/components/navigation/sidebar/sidebar-menu-sub-item.svelte +33 -0
- package/dist/components/navigation/sidebar/sidebar-menu-sub-item.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-menu-sub.svelte +37 -0
- package/dist/components/navigation/sidebar/sidebar-menu-sub.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-menu.svelte +28 -0
- package/dist/components/navigation/sidebar/sidebar-menu.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-provider.svelte +74 -0
- package/dist/components/navigation/sidebar/sidebar-provider.svelte.d.ts +19 -0
- package/dist/components/navigation/sidebar/sidebar-rail.svelte +42 -0
- package/dist/components/navigation/sidebar/sidebar-rail.svelte.d.ts +6 -0
- package/dist/components/navigation/sidebar/sidebar-separator.svelte +29 -0
- package/dist/components/navigation/sidebar/sidebar-separator.svelte.d.ts +5 -0
- package/dist/components/navigation/sidebar/sidebar-trigger.svelte +40 -0
- package/dist/components/navigation/sidebar/sidebar-trigger.svelte.d.ts +5 -0
- package/dist/components/navigation/sidebar/sidebar-variants.d.ts +11 -0
- package/dist/components/navigation/sidebar/sidebar-variants.js +40 -0
- package/dist/components/navigation/sidebar/sidebar.svelte +152 -0
- package/dist/components/navigation/sidebar/sidebar.svelte.d.ts +17 -0
- package/dist/components/navigation/stepper/index.d.ts +2 -0
- package/dist/components/navigation/stepper/index.js +2 -0
- package/dist/components/navigation/stepper/stepper-chip.svelte +42 -0
- package/dist/components/navigation/stepper/stepper-chip.svelte.d.ts +16 -0
- package/dist/components/navigation/stepper/stepper-navigation.svelte +112 -0
- package/dist/components/navigation/stepper/stepper-navigation.svelte.d.ts +36 -0
- package/dist/components/navigation/stepper/stepper.svelte +364 -0
- package/dist/components/navigation/stepper/stepper.svelte.d.ts +65 -0
- package/dist/components/navigation/tabs/index.d.ts +4 -0
- package/dist/components/navigation/tabs/index.js +4 -0
- package/dist/components/navigation/tabs/tabs-content.svelte +23 -0
- package/dist/components/navigation/tabs/tabs-content.svelte.d.ts +5 -0
- package/dist/components/navigation/tabs/tabs-list.svelte +24 -0
- package/dist/components/navigation/tabs/tabs-list.svelte.d.ts +5 -0
- package/dist/components/navigation/tabs/tabs-trigger.svelte +24 -0
- package/dist/components/navigation/tabs/tabs-trigger.svelte.d.ts +5 -0
- package/dist/components/navigation/tabs/tabs.svelte +30 -0
- package/dist/components/navigation/tabs/tabs.svelte.d.ts +5 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-action.svelte +50 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-action.svelte.d.ts +7 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-cancel.svelte +34 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-cancel.svelte.d.ts +7 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-content.svelte +45 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-content.svelte.d.ts +12 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-description.svelte +23 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-description.svelte.d.ts +5 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.svelte +35 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-footer.svelte.d.ts +6 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-header.svelte +35 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-header.svelte.d.ts +6 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-media.svelte +35 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-media.svelte.d.ts +6 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-overlay.svelte +26 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-overlay.svelte.d.ts +5 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-portal.svelte +16 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-portal.svelte.d.ts +5 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-title.svelte +26 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-title.svelte.d.ts +5 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-trigger.svelte +16 -0
- package/dist/components/overlays/alert-dialog/alert-dialog-trigger.svelte.d.ts +5 -0
- package/dist/components/overlays/alert-dialog/alert-dialog.svelte +34 -0
- package/dist/components/overlays/alert-dialog/alert-dialog.svelte.d.ts +12 -0
- package/dist/components/overlays/alert-dialog/index.d.ts +12 -0
- package/dist/components/overlays/alert-dialog/index.js +12 -0
- package/dist/components/overlays/dialog/dialog-close.svelte +16 -0
- package/dist/components/overlays/dialog/dialog-close.svelte.d.ts +5 -0
- package/dist/components/overlays/dialog/dialog-content.svelte +79 -0
- package/dist/components/overlays/dialog/dialog-content.svelte.d.ts +26 -0
- package/dist/components/overlays/dialog/dialog-description.svelte +23 -0
- package/dist/components/overlays/dialog/dialog-description.svelte.d.ts +5 -0
- package/dist/components/overlays/dialog/dialog-footer.svelte +27 -0
- package/dist/components/overlays/dialog/dialog-footer.svelte.d.ts +6 -0
- package/dist/components/overlays/dialog/dialog-header.svelte +27 -0
- package/dist/components/overlays/dialog/dialog-header.svelte.d.ts +6 -0
- package/dist/components/overlays/dialog/dialog-overlay.svelte +26 -0
- package/dist/components/overlays/dialog/dialog-overlay.svelte.d.ts +5 -0
- package/dist/components/overlays/dialog/dialog-portal.svelte +16 -0
- package/dist/components/overlays/dialog/dialog-portal.svelte.d.ts +5 -0
- package/dist/components/overlays/dialog/dialog-title.svelte +23 -0
- package/dist/components/overlays/dialog/dialog-title.svelte.d.ts +5 -0
- package/dist/components/overlays/dialog/dialog-trigger.svelte +16 -0
- package/dist/components/overlays/dialog/dialog-trigger.svelte.d.ts +5 -0
- package/dist/components/overlays/dialog/dialog.svelte +16 -0
- package/dist/components/overlays/dialog/dialog.svelte.d.ts +5 -0
- package/dist/components/overlays/dialog/index.d.ts +10 -0
- package/dist/components/overlays/dialog/index.js +10 -0
- package/dist/components/overlays/drawer/drawer-close.svelte +16 -0
- package/dist/components/overlays/drawer/drawer-close.svelte.d.ts +5 -0
- package/dist/components/overlays/drawer/drawer-content.svelte +50 -0
- package/dist/components/overlays/drawer/drawer-content.svelte.d.ts +8 -0
- package/dist/components/overlays/drawer/drawer-description.svelte +23 -0
- package/dist/components/overlays/drawer/drawer-description.svelte.d.ts +5 -0
- package/dist/components/overlays/drawer/drawer-footer.svelte +27 -0
- package/dist/components/overlays/drawer/drawer-footer.svelte.d.ts +6 -0
- package/dist/components/overlays/drawer/drawer-header.svelte +30 -0
- package/dist/components/overlays/drawer/drawer-header.svelte.d.ts +6 -0
- package/dist/components/overlays/drawer/drawer-overlay.svelte +26 -0
- package/dist/components/overlays/drawer/drawer-overlay.svelte.d.ts +5 -0
- package/dist/components/overlays/drawer/drawer-portal.svelte +16 -0
- package/dist/components/overlays/drawer/drawer-portal.svelte.d.ts +5 -0
- package/dist/components/overlays/drawer/drawer-title.svelte +23 -0
- package/dist/components/overlays/drawer/drawer-title.svelte.d.ts +5 -0
- package/dist/components/overlays/drawer/drawer-trigger.svelte +16 -0
- package/dist/components/overlays/drawer/drawer-trigger.svelte.d.ts +5 -0
- package/dist/components/overlays/drawer/drawer.svelte +28 -0
- package/dist/components/overlays/drawer/drawer.svelte.d.ts +11 -0
- package/dist/components/overlays/drawer/index.d.ts +10 -0
- package/dist/components/overlays/drawer/index.js +10 -0
- package/dist/components/overlays/hint/hint.svelte +69 -0
- package/dist/components/overlays/hint/hint.svelte.d.ts +32 -0
- package/dist/components/overlays/hint/index.d.ts +1 -0
- package/dist/components/overlays/hint/index.js +1 -0
- package/dist/components/overlays/hover-card/hover-card-content.svelte +46 -0
- package/dist/components/overlays/hover-card/hover-card-content.svelte.d.ts +12 -0
- package/dist/components/overlays/hover-card/hover-card-trigger.svelte +18 -0
- package/dist/components/overlays/hover-card/hover-card-trigger.svelte.d.ts +5 -0
- package/dist/components/overlays/hover-card/hover-card.svelte +22 -0
- package/dist/components/overlays/hover-card/hover-card.svelte.d.ts +10 -0
- package/dist/components/overlays/hover-card/index.d.ts +3 -0
- package/dist/components/overlays/hover-card/index.js +3 -0
- package/dist/components/overlays/popover/index.d.ts +3 -0
- package/dist/components/overlays/popover/index.js +3 -0
- package/dist/components/overlays/popover/popover-content.svelte +54 -0
- package/dist/components/overlays/popover/popover-content.svelte.d.ts +19 -0
- package/dist/components/overlays/popover/popover-trigger.svelte +16 -0
- package/dist/components/overlays/popover/popover-trigger.svelte.d.ts +5 -0
- package/dist/components/overlays/popover/popover.svelte +22 -0
- package/dist/components/overlays/popover/popover.svelte.d.ts +10 -0
- package/dist/components/overlays/sheet/index.d.ts +8 -0
- package/dist/components/overlays/sheet/index.js +8 -0
- package/dist/components/overlays/sheet/sheet-close.svelte +16 -0
- package/dist/components/overlays/sheet/sheet-close.svelte.d.ts +5 -0
- package/dist/components/overlays/sheet/sheet-content.svelte +71 -0
- package/dist/components/overlays/sheet/sheet-content.svelte.d.ts +18 -0
- package/dist/components/overlays/sheet/sheet-description.svelte +23 -0
- package/dist/components/overlays/sheet/sheet-description.svelte.d.ts +5 -0
- package/dist/components/overlays/sheet/sheet-footer.svelte +27 -0
- package/dist/components/overlays/sheet/sheet-footer.svelte.d.ts +6 -0
- package/dist/components/overlays/sheet/sheet-header.svelte +27 -0
- package/dist/components/overlays/sheet/sheet-header.svelte.d.ts +6 -0
- package/dist/components/overlays/sheet/sheet-title.svelte +23 -0
- package/dist/components/overlays/sheet/sheet-title.svelte.d.ts +5 -0
- package/dist/components/overlays/sheet/sheet-trigger.svelte +16 -0
- package/dist/components/overlays/sheet/sheet-trigger.svelte.d.ts +5 -0
- package/dist/components/overlays/sheet/sheet.svelte +20 -0
- package/dist/components/overlays/sheet/sheet.svelte.d.ts +9 -0
- package/dist/components/overlays/tooltip/index.d.ts +4 -0
- package/dist/components/overlays/tooltip/index.js +4 -0
- package/dist/components/overlays/tooltip/tooltip-content.svelte +58 -0
- package/dist/components/overlays/tooltip/tooltip-content.svelte.d.ts +14 -0
- package/dist/components/overlays/tooltip/tooltip-provider.svelte +16 -0
- package/dist/components/overlays/tooltip/tooltip-provider.svelte.d.ts +5 -0
- package/dist/components/overlays/tooltip/tooltip-trigger.svelte +16 -0
- package/dist/components/overlays/tooltip/tooltip-trigger.svelte.d.ts +5 -0
- package/dist/components/overlays/tooltip/tooltip.svelte +21 -0
- package/dist/components/overlays/tooltip/tooltip.svelte.d.ts +5 -0
- package/dist/components/typography/heading/heading.svelte +60 -0
- package/dist/components/typography/heading/heading.svelte.d.ts +23 -0
- package/dist/components/typography/heading/index.d.ts +1 -0
- package/dist/components/typography/heading/index.js +1 -0
- package/dist/components/typography/text/index.d.ts +1 -0
- package/dist/components/typography/text/index.js +1 -0
- package/dist/components/typography/text/text.svelte +84 -0
- package/dist/components/typography/text/text.svelte.d.ts +31 -0
- package/dist/form.d.ts +9 -0
- package/dist/form.js +9 -0
- package/dist/hooks/is-mobile.svelte.d.ts +15 -0
- package/dist/hooks/is-mobile.svelte.js +17 -0
- package/dist/index.d.ts +94 -0
- package/dist/index.js +101 -0
- package/dist/styles/components.css +192 -0
- package/dist/theme.css +535 -0
- package/dist/tokens/cli.d.ts +11 -0
- package/dist/tokens/cli.js +58 -0
- package/dist/tokens/config.d.ts +39 -0
- package/dist/tokens/config.js +46 -0
- package/dist/tokens/emit-web.d.ts +11 -0
- package/dist/tokens/emit-web.js +172 -0
- package/dist/tokens/geometry.d.ts +62 -0
- package/dist/tokens/geometry.js +67 -0
- package/dist/tokens/info.d.ts +10 -0
- package/dist/tokens/info.js +62 -0
- package/dist/tokens/presets.d.ts +51 -0
- package/dist/tokens/presets.js +35 -0
- package/dist/tokens/semantic.d.ts +32 -0
- package/dist/tokens/semantic.js +158 -0
- package/dist/tokens/tailwind-palette.d.ts +356 -0
- package/dist/tokens/tailwind-palette.js +352 -0
- package/dist/tokens.d.ts +11 -0
- package/dist/tokens.js +11 -0
- package/dist/utils/cn.d.ts +11 -0
- package/dist/utils/cn.js +14 -0
- package/dist/utils/monotone-path.d.ts +10 -0
- package/dist/utils/monotone-path.js +52 -0
- package/dist/utils/segmented-control.d.ts +47 -0
- package/dist/utils/segmented-control.js +53 -0
- package/dist/utils/tone.d.ts +78 -0
- package/dist/utils/tone.js +119 -0
- package/dist/utils/types.d.ts +17 -0
- package/dist/utils/types.js +6 -0
- package/package.json +124 -3
- package/skills/mise/SKILL.md +159 -0
- package/skills/mise/components/actions.md +200 -0
- package/skills/mise/components/data-display.md +728 -0
- package/skills/mise/components/feedback.md +198 -0
- package/skills/mise/components/forms.md +712 -0
- package/skills/mise/components/layout.md +178 -0
- package/skills/mise/components/navigation.md +250 -0
- package/skills/mise/components/overlays.md +291 -0
- package/skills/mise/components/typography.md +36 -0
- package/skills/mise/recipes/dashboard-page.md +40 -0
- package/skills/mise/recipes/dashboard-page.svelte +132 -0
- package/skills/mise/recipes/data-table.md +39 -0
- package/skills/mise/recipes/data-table.svelte +130 -0
- package/skills/mise/recipes/form-sveltekit.svelte +79 -0
- package/skills/mise/recipes/form.md +82 -0
- package/skills/mise/recipes/form.svelte +158 -0
- package/skills/mise/setup.md +99 -0
- package/skills/mise/theming.md +82 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `sparkline.tsx`
|
|
3
|
+
Diverged: plain SVG rather than recharts (round 4a, R4-3). The curve is the
|
|
4
|
+
same monotone one, from `utils/monotone-path.ts`, drawn into a stretched
|
|
5
|
+
`viewBox` with a non-scaling stroke. Takes `class` and spreads the rest onto
|
|
6
|
+
the root, as every component does.
|
|
7
|
+
-->
|
|
8
|
+
<script lang="ts" module>
|
|
9
|
+
import type { HTMLAttributes } from 'svelte/elements'
|
|
10
|
+
|
|
11
|
+
import type { Tone } from '../../../utils/tone.js'
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A figure's recent shape, drawn small enough to sit beside it. No axes, no
|
|
15
|
+
* grid, no tooltip, no labels: it answers "is that number climbing or
|
|
16
|
+
* falling" in the space of a word. Anything that invites closer reading
|
|
17
|
+
* belongs in a chart on its own card.
|
|
18
|
+
*
|
|
19
|
+
* The tone is the series' identity, not a verdict on its direction.
|
|
20
|
+
*/
|
|
21
|
+
export type SparklineProps = HTMLAttributes<HTMLDivElement> & {
|
|
22
|
+
/** The series, oldest first. Fewer than two points draws nothing. */
|
|
23
|
+
data: number[]
|
|
24
|
+
tone?: Tone
|
|
25
|
+
/** Height in pixels. The width comes from whatever holds it. */
|
|
26
|
+
height?: number
|
|
27
|
+
/** Read by assistive tech: the shape says nothing without it. */
|
|
28
|
+
'aria-label'?: string
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** The viewBox is 100 units each way, stretched to whatever box holds it. */
|
|
32
|
+
const SIZE = 100
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* One id per instance. The gradient lives in `defs`, and two sparklines
|
|
36
|
+
* sharing an id would paint the second with the first's colour.
|
|
37
|
+
*/
|
|
38
|
+
let instances = 0
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<script lang="ts">
|
|
42
|
+
import { cn } from '../../../utils/cn.js'
|
|
43
|
+
import { monotonePath } from '../../../utils/monotone-path.js'
|
|
44
|
+
import { TONE_CSS_VAR } from '../../../utils/tone.js'
|
|
45
|
+
|
|
46
|
+
let { data, tone = 'primary', height = 40, class: className, ...rest }: SparklineProps = $props()
|
|
47
|
+
|
|
48
|
+
const gradientId = `sparkline-${++instances}`
|
|
49
|
+
|
|
50
|
+
const colour = $derived(TONE_CSS_VAR[tone])
|
|
51
|
+
|
|
52
|
+
/** 2px of room above and below, so the stroke is not clipped at an extreme. */
|
|
53
|
+
const points = $derived.by(() => {
|
|
54
|
+
const margin = (2 / height) * SIZE
|
|
55
|
+
const low = Math.min(...data)
|
|
56
|
+
const range = Math.max(...data) - low
|
|
57
|
+
return data.map((value, index): [number, number] => [
|
|
58
|
+
(index / (data.length - 1)) * SIZE,
|
|
59
|
+
range === 0 ? SIZE / 2 : SIZE - margin - ((value - low) / range) * (SIZE - 2 * margin),
|
|
60
|
+
])
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
const line = $derived(monotonePath(points))
|
|
64
|
+
const area = $derived(`${line}L${SIZE},${SIZE}L0,${SIZE}Z`)
|
|
65
|
+
</script>
|
|
66
|
+
|
|
67
|
+
{#if data.length >= 2}
|
|
68
|
+
<div data-slot="sparkline" role="img" class={cn(className)} style:height="{height}px" {...rest}>
|
|
69
|
+
<svg
|
|
70
|
+
viewBox="0 0 {SIZE} {SIZE}"
|
|
71
|
+
preserveAspectRatio="none"
|
|
72
|
+
class="block size-full overflow-visible"
|
|
73
|
+
aria-hidden="true"
|
|
74
|
+
>
|
|
75
|
+
<defs>
|
|
76
|
+
<!--
|
|
77
|
+
A gradient, where a full-size chart uses a flat wash: at 40px a flat
|
|
78
|
+
fill reads as a solid block with a bumpy top, and the fade keeps the
|
|
79
|
+
line legible as the line.
|
|
80
|
+
-->
|
|
81
|
+
<linearGradient id={gradientId} x1="0" y1="0" x2="0" y2="1">
|
|
82
|
+
<stop offset="0%" stop-color={colour} stop-opacity="0.35" />
|
|
83
|
+
<stop offset="100%" stop-color={colour} stop-opacity="0" />
|
|
84
|
+
</linearGradient>
|
|
85
|
+
</defs>
|
|
86
|
+
<path d={area} fill="url(#{gradientId})" />
|
|
87
|
+
<path
|
|
88
|
+
d={line}
|
|
89
|
+
fill="none"
|
|
90
|
+
stroke={colour}
|
|
91
|
+
stroke-width="2"
|
|
92
|
+
stroke-linecap="round"
|
|
93
|
+
stroke-linejoin="round"
|
|
94
|
+
vector-effect="non-scaling-stroke"
|
|
95
|
+
/>
|
|
96
|
+
</svg>
|
|
97
|
+
</div>
|
|
98
|
+
{/if}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
2
|
+
import type { Tone } from '../../../utils/tone.js';
|
|
3
|
+
/**
|
|
4
|
+
* A figure's recent shape, drawn small enough to sit beside it. No axes, no
|
|
5
|
+
* grid, no tooltip, no labels: it answers "is that number climbing or
|
|
6
|
+
* falling" in the space of a word. Anything that invites closer reading
|
|
7
|
+
* belongs in a chart on its own card.
|
|
8
|
+
*
|
|
9
|
+
* The tone is the series' identity, not a verdict on its direction.
|
|
10
|
+
*/
|
|
11
|
+
export type SparklineProps = HTMLAttributes<HTMLDivElement> & {
|
|
12
|
+
/** The series, oldest first. Fewer than two points draws nothing. */
|
|
13
|
+
data: number[];
|
|
14
|
+
tone?: Tone;
|
|
15
|
+
/** Height in pixels. The width comes from whatever holds it. */
|
|
16
|
+
height?: number;
|
|
17
|
+
/** Read by assistive tech: the shape says nothing without it. */
|
|
18
|
+
'aria-label'?: string;
|
|
19
|
+
};
|
|
20
|
+
declare const Sparkline: import("svelte").Component<SparklineProps, {}, "">;
|
|
21
|
+
type Sparkline = ReturnType<typeof Sparkline>;
|
|
22
|
+
export default Sparkline;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as StatTile, type StatIconAlignment, type StatIconSize, type StatRow, type StatSize, type StatSurface, type StatTileProps, } from './stat-tile.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as StatTile, } from './stat-tile.svelte';
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `stat-tile.tsx`
|
|
3
|
+
Diverged: the rows are a `FactList` of `FactListItem`s, each ruled by a top
|
|
4
|
+
border, where React put a `Separator` and a `FactRow` together in a `div`
|
|
5
|
+
inside the `dl`, which a `dl` does not allow. The rule sits in the same
|
|
6
|
+
places: above the first row and between rows, never below the last. `icon`,
|
|
7
|
+
`hint`, `delta`, `action`, `visual` and `footer` are snippets, and `value`,
|
|
8
|
+
`unit`, `description` and a row's `label` and `value` take a string or a
|
|
9
|
+
snippet, as R4-5 has a ReactNode prop. Takes `class` and spreads the rest
|
|
10
|
+
onto the root, as every component does.
|
|
11
|
+
-->
|
|
12
|
+
<script lang="ts" module>
|
|
13
|
+
import type { Snippet } from 'svelte'
|
|
14
|
+
import type { HTMLAttributes } from 'svelte/elements'
|
|
15
|
+
|
|
16
|
+
import type { Tone } from '../../../utils/tone.js'
|
|
17
|
+
import type { IconChipShape } from '../icon-chip/icon-chip-variants.js'
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* How big the figure is, named for the density it is drawn for rather than a
|
|
21
|
+
* type step: `sm` a dense row or a figure inside another card, `md` (the
|
|
22
|
+
* default) four across, `lg` one or two across or the point of the screen.
|
|
23
|
+
*/
|
|
24
|
+
export type StatSize = 'sm' | 'md' | 'lg'
|
|
25
|
+
|
|
26
|
+
const SIZE_CLASS: Record<StatSize, string> = { sm: 'text-xl', md: 'text-2xl', lg: 'text-3xl' }
|
|
27
|
+
const SIZE_SKELETON_CLASS: Record<StatSize, string> = {
|
|
28
|
+
sm: 'h-6 w-16',
|
|
29
|
+
md: 'h-7 w-20',
|
|
30
|
+
lg: 'h-9 w-24',
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The chip's footprint, apart from the figure's density. `IconChip`'s sizes
|
|
35
|
+
* are 32 / 40 / 48px and the tile's chip was 40 / 48 / 48, so `sm` maps to the
|
|
36
|
+
* chip's `md` and `md` and `lg` to its `lg`. Defaults to `size`.
|
|
37
|
+
*/
|
|
38
|
+
export type StatIconSize = StatSize
|
|
39
|
+
|
|
40
|
+
const ICON_CHIP_SIZE: Record<StatIconSize, 'md' | 'lg'> = { sm: 'md', md: 'lg', lg: 'lg' }
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* `center`, the default, centres the chip against the label, figure and
|
|
44
|
+
* description; `top` pins it level with the label, for a column a delta or a
|
|
45
|
+
* long description has made tall.
|
|
46
|
+
*/
|
|
47
|
+
export type StatIconAlignment = 'center' | 'top'
|
|
48
|
+
|
|
49
|
+
const ICON_ROW_ALIGN_CLASS: Record<StatIconAlignment, string> = {
|
|
50
|
+
center: 'items-center',
|
|
51
|
+
top: 'items-start',
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* `card` is a tile in its own right, one of a row. `inset` is the summary at
|
|
56
|
+
* the top of a card whose chart or table is the evidence: recessed, no
|
|
57
|
+
* shadow, its caption small and upper-case so it does not compete with the
|
|
58
|
+
* card's own title.
|
|
59
|
+
*/
|
|
60
|
+
export type StatSurface = 'card' | 'inset'
|
|
61
|
+
|
|
62
|
+
export type StatRow = {
|
|
63
|
+
/** Stable key. Labels repeat across tiles, so they are not one. */
|
|
64
|
+
id: string
|
|
65
|
+
label: string | Snippet
|
|
66
|
+
value: string | number | Snippet | null
|
|
67
|
+
/**
|
|
68
|
+
* Colours the value: "this figure has a direction". For a directional
|
|
69
|
+
* pair (stock in against stock out), not the parts of a total. Leave it
|
|
70
|
+
* off unless every row in the group has one; a single tinted row reads as
|
|
71
|
+
* an alert.
|
|
72
|
+
*/
|
|
73
|
+
tone?: Tone
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* The dashboard's headline number. One tile states one figure, and the rest
|
|
78
|
+
* qualifies it: a unit, a delta, a description, a sparkline, a few rows. The
|
|
79
|
+
* icon sits in a chip so the eye lands on the number, and colour is kept for
|
|
80
|
+
* tone; a tile merely reporting a total stays in ink.
|
|
81
|
+
*
|
|
82
|
+
* Loading and error are the tile's business. An error renders the em dash a
|
|
83
|
+
* missing value does, and the tile keeps its height either way: a row of four
|
|
84
|
+
* where one has collapsed is worse than one where a tile has no answer.
|
|
85
|
+
*/
|
|
86
|
+
export type StatTileProps = HTMLAttributes<HTMLDivElement> & {
|
|
87
|
+
/** A short caption above the figure. */
|
|
88
|
+
label: string
|
|
89
|
+
/**
|
|
90
|
+
* The figure, already formatted: the package has no opinion about
|
|
91
|
+
* currencies or locales. `null` renders an em dash.
|
|
92
|
+
*/
|
|
93
|
+
value: string | number | Snippet | null
|
|
94
|
+
/**
|
|
95
|
+
* What the figure is counted in: `orders`, `per order`. Its own small line
|
|
96
|
+
* under the figure, since beside it a delta and a visual made every tile in
|
|
97
|
+
* a row wrap at a different point.
|
|
98
|
+
*/
|
|
99
|
+
unit?: string | Snippet
|
|
100
|
+
/** The unabbreviated figure, on hover: `$45,612.40` under `$45.6k`. */
|
|
101
|
+
exactValue?: string
|
|
102
|
+
icon?: Snippet
|
|
103
|
+
/** An explanation trigger after the label; it belongs to the caption it explains. */
|
|
104
|
+
hint?: Snippet
|
|
105
|
+
/**
|
|
106
|
+
* Colours the figure only, never the chip or the card: "this figure has a
|
|
107
|
+
* direction", not "this is a problem".
|
|
108
|
+
*/
|
|
109
|
+
tone?: Tone
|
|
110
|
+
size?: StatSize
|
|
111
|
+
surface?: StatSurface
|
|
112
|
+
/**
|
|
113
|
+
* `square` by default. A chip holding a face or initials is a circle; for
|
|
114
|
+
* icon chips the screen picks, and every chip in the row takes the same one.
|
|
115
|
+
*/
|
|
116
|
+
iconShape?: IconChipShape
|
|
117
|
+
/** A muted line under the figure. */
|
|
118
|
+
description?: string | Snippet
|
|
119
|
+
/**
|
|
120
|
+
* After the figure, on its line: a `DeltaBadge`, so `$45.6k ↗ +15.7%` reads
|
|
121
|
+
* as one statement. Dropped on error.
|
|
122
|
+
*/
|
|
123
|
+
delta?: Snippet
|
|
124
|
+
/**
|
|
125
|
+
* Top right, on the label's line: a link out to what the figure summarises.
|
|
126
|
+
* Keep it short; the label is the one that wraps.
|
|
127
|
+
*/
|
|
128
|
+
action?: Snippet
|
|
129
|
+
/**
|
|
130
|
+
* A shape beside the figure, a `Sparkline` usually. It takes half the row
|
|
131
|
+
* and yields: a long figure squeezes the shape, never the reverse.
|
|
132
|
+
*/
|
|
133
|
+
visual?: Snippet
|
|
134
|
+
/** Supporting facts under the figure, ruled off from it and from each other. */
|
|
135
|
+
rows?: StatRow[]
|
|
136
|
+
/** Below everything else: a bar, a total. */
|
|
137
|
+
footer?: Snippet
|
|
138
|
+
/**
|
|
139
|
+
* Right by default: the icon is ornament, so label, figure and description
|
|
140
|
+
* run straight down the left edge. Left for an icon that carries meaning.
|
|
141
|
+
*/
|
|
142
|
+
iconPosition?: 'left' | 'right'
|
|
143
|
+
iconAlignment?: StatIconAlignment
|
|
144
|
+
iconTone?: Tone
|
|
145
|
+
iconSize?: StatIconSize
|
|
146
|
+
/**
|
|
147
|
+
* Lets the chip follow `tone`, so one threshold colours both and the two
|
|
148
|
+
* cannot drift into an ink figure in a red chip. Off by default: a tinted
|
|
149
|
+
* chip beside a tinted figure says the same thing twice. Supersedes
|
|
150
|
+
* `iconTone`.
|
|
151
|
+
*/
|
|
152
|
+
applyToneToIcon?: boolean
|
|
153
|
+
loading?: boolean
|
|
154
|
+
error?: boolean
|
|
155
|
+
}
|
|
156
|
+
</script>
|
|
157
|
+
|
|
158
|
+
<script lang="ts">
|
|
159
|
+
import { cn } from '../../../utils/cn.js'
|
|
160
|
+
import { TONE_TEXT_CLASS } from '../../../utils/tone.js'
|
|
161
|
+
import Skeleton from '../../feedback/skeleton/skeleton.svelte'
|
|
162
|
+
import Card from '../../layout/card/card.svelte'
|
|
163
|
+
import FactList from '../fact-list/fact-list.svelte'
|
|
164
|
+
import FactListItem from '../fact-list/fact-list-item.svelte'
|
|
165
|
+
import IconChip from '../icon-chip/icon-chip.svelte'
|
|
166
|
+
|
|
167
|
+
let {
|
|
168
|
+
label,
|
|
169
|
+
value,
|
|
170
|
+
unit,
|
|
171
|
+
exactValue,
|
|
172
|
+
icon,
|
|
173
|
+
hint,
|
|
174
|
+
tone = 'neutral',
|
|
175
|
+
size = 'md',
|
|
176
|
+
surface = 'card',
|
|
177
|
+
iconPosition = 'right',
|
|
178
|
+
iconAlignment = 'center',
|
|
179
|
+
iconTone = 'neutral',
|
|
180
|
+
iconSize,
|
|
181
|
+
iconShape = 'square',
|
|
182
|
+
applyToneToIcon = false,
|
|
183
|
+
description,
|
|
184
|
+
delta,
|
|
185
|
+
action,
|
|
186
|
+
visual,
|
|
187
|
+
rows,
|
|
188
|
+
footer,
|
|
189
|
+
loading = false,
|
|
190
|
+
error = false,
|
|
191
|
+
class: className,
|
|
192
|
+
...rest
|
|
193
|
+
}: StatTileProps = $props()
|
|
194
|
+
|
|
195
|
+
const inset = $derived(surface === 'inset')
|
|
196
|
+
const hasValue = $derived(!error && value !== null && value !== undefined)
|
|
197
|
+
const chipTone = $derived(applyToneToIcon ? tone : iconTone)
|
|
198
|
+
const padded = $derived(inset ? '' : 'px-(--card-spacing)')
|
|
199
|
+
</script>
|
|
200
|
+
|
|
201
|
+
{#snippet content(node: string | number | Snippet)}
|
|
202
|
+
{#if typeof node === 'function'}
|
|
203
|
+
{@render node()}
|
|
204
|
+
{:else}
|
|
205
|
+
{node}
|
|
206
|
+
{/if}
|
|
207
|
+
{/snippet}
|
|
208
|
+
|
|
209
|
+
{#snippet chip()}
|
|
210
|
+
{#if icon}
|
|
211
|
+
<IconChip size={ICON_CHIP_SIZE[iconSize ?? size]} shape={iconShape} tone={chipTone}>
|
|
212
|
+
{@render icon()}
|
|
213
|
+
</IconChip>
|
|
214
|
+
{/if}
|
|
215
|
+
{/snippet}
|
|
216
|
+
|
|
217
|
+
{#snippet body()}
|
|
218
|
+
<div class={cn('flex gap-4', ICON_ROW_ALIGN_CLASS[iconAlignment], padded)}>
|
|
219
|
+
{#if iconPosition === 'left'}
|
|
220
|
+
{@render chip()}
|
|
221
|
+
{/if}
|
|
222
|
+
|
|
223
|
+
<div class="min-w-0 flex-1">
|
|
224
|
+
<!-- The action sits on the label's line, so it does not take the label's width. -->
|
|
225
|
+
<div class="flex items-start justify-between gap-2">
|
|
226
|
+
<div
|
|
227
|
+
class={cn(
|
|
228
|
+
'flex min-w-0 items-center gap-1.5',
|
|
229
|
+
inset ? 'text-muted-foreground text-xs tracking-wide uppercase' : 'text-foreground',
|
|
230
|
+
)}
|
|
231
|
+
>
|
|
232
|
+
<p class={cn(!inset && 'text-sm font-medium')}>{label}</p>
|
|
233
|
+
{@render hint?.()}
|
|
234
|
+
</div>
|
|
235
|
+
{#if action}
|
|
236
|
+
<div class="-mt-1 shrink-0">{@render action()}</div>
|
|
237
|
+
{/if}
|
|
238
|
+
</div>
|
|
239
|
+
|
|
240
|
+
{#if loading}
|
|
241
|
+
<Skeleton class={cn('mt-1.5', SIZE_SKELETON_CLASS[size])} />
|
|
242
|
+
{:else}
|
|
243
|
+
<div class="mt-0.5">
|
|
244
|
+
<div class="flex min-w-0 items-center justify-between gap-3">
|
|
245
|
+
<div class="min-w-0 flex-1">
|
|
246
|
+
<!-- The figure and its delta, and nothing else: one statement. -->
|
|
247
|
+
<div class="flex flex-wrap items-baseline gap-2">
|
|
248
|
+
<div
|
|
249
|
+
class={cn(
|
|
250
|
+
'font-heading font-bold tabular-nums',
|
|
251
|
+
SIZE_CLASS[size],
|
|
252
|
+
TONE_TEXT_CLASS[tone],
|
|
253
|
+
)}
|
|
254
|
+
title={hasValue ? exactValue : undefined}
|
|
255
|
+
>
|
|
256
|
+
{#if hasValue && value !== null}
|
|
257
|
+
{@render content(value)}
|
|
258
|
+
{:else}
|
|
259
|
+
—
|
|
260
|
+
{/if}
|
|
261
|
+
</div>
|
|
262
|
+
{#if delta && !error}
|
|
263
|
+
{@render delta()}
|
|
264
|
+
{/if}
|
|
265
|
+
</div>
|
|
266
|
+
{#if unit}
|
|
267
|
+
<div class="text-muted-foreground mt-0.5 text-xs">{@render content(unit)}</div>
|
|
268
|
+
{/if}
|
|
269
|
+
</div>
|
|
270
|
+
{#if visual}
|
|
271
|
+
<div class="w-1/2 min-w-0 shrink">{@render visual()}</div>
|
|
272
|
+
{/if}
|
|
273
|
+
</div>
|
|
274
|
+
</div>
|
|
275
|
+
{/if}
|
|
276
|
+
</div>
|
|
277
|
+
|
|
278
|
+
{#if iconPosition === 'right'}
|
|
279
|
+
{@render chip()}
|
|
280
|
+
{/if}
|
|
281
|
+
</div>
|
|
282
|
+
|
|
283
|
+
{#if description}
|
|
284
|
+
<div class={cn('text-muted-foreground mt-1 text-xs', padded)}>
|
|
285
|
+
{#if loading}
|
|
286
|
+
<Skeleton class="h-4 w-40" />
|
|
287
|
+
{:else}
|
|
288
|
+
{@render content(description)}
|
|
289
|
+
{/if}
|
|
290
|
+
</div>
|
|
291
|
+
{/if}
|
|
292
|
+
|
|
293
|
+
{#if rows && rows.length > 0}
|
|
294
|
+
<!-- Ruled above the first row and between rows, never below the last. -->
|
|
295
|
+
<FactList class={cn('mt-4 gap-3', padded)}>
|
|
296
|
+
{#each rows as row (row.id)}
|
|
297
|
+
<FactListItem
|
|
298
|
+
class="border-t pt-3"
|
|
299
|
+
label={row.label}
|
|
300
|
+
value={error ? null : row.value}
|
|
301
|
+
valueClass={error ? undefined : TONE_TEXT_CLASS[row.tone ?? 'neutral']}
|
|
302
|
+
/>
|
|
303
|
+
{/each}
|
|
304
|
+
</FactList>
|
|
305
|
+
{/if}
|
|
306
|
+
|
|
307
|
+
{#if footer}
|
|
308
|
+
<div class={cn('mt-3', padded)}>{@render footer()}</div>
|
|
309
|
+
{/if}
|
|
310
|
+
{/snippet}
|
|
311
|
+
|
|
312
|
+
{#if inset}
|
|
313
|
+
<div
|
|
314
|
+
data-slot="stat-tile"
|
|
315
|
+
class={cn('bg-muted/40 flex flex-col rounded-xl border p-4', className)}
|
|
316
|
+
{...rest}
|
|
317
|
+
>
|
|
318
|
+
{@render body()}
|
|
319
|
+
</div>
|
|
320
|
+
{:else}
|
|
321
|
+
<!--
|
|
322
|
+
`shadow-md` lifts the tile a step above `Card`'s default: a dashboard's tiles
|
|
323
|
+
are the one surface meant to sit above the page.
|
|
324
|
+
-->
|
|
325
|
+
<Card data-stat-tile="" class={cn('gap-0 shadow-md', className)} {...rest}>
|
|
326
|
+
{@render body()}
|
|
327
|
+
</Card>
|
|
328
|
+
{/if}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
+
import type { Tone } from '../../../utils/tone.js';
|
|
4
|
+
import type { IconChipShape } from '../icon-chip/icon-chip-variants.js';
|
|
5
|
+
/**
|
|
6
|
+
* How big the figure is, named for the density it is drawn for rather than a
|
|
7
|
+
* type step: `sm` a dense row or a figure inside another card, `md` (the
|
|
8
|
+
* default) four across, `lg` one or two across or the point of the screen.
|
|
9
|
+
*/
|
|
10
|
+
export type StatSize = 'sm' | 'md' | 'lg';
|
|
11
|
+
/**
|
|
12
|
+
* The chip's footprint, apart from the figure's density. `IconChip`'s sizes
|
|
13
|
+
* are 32 / 40 / 48px and the tile's chip was 40 / 48 / 48, so `sm` maps to the
|
|
14
|
+
* chip's `md` and `md` and `lg` to its `lg`. Defaults to `size`.
|
|
15
|
+
*/
|
|
16
|
+
export type StatIconSize = StatSize;
|
|
17
|
+
/**
|
|
18
|
+
* `center`, the default, centres the chip against the label, figure and
|
|
19
|
+
* description; `top` pins it level with the label, for a column a delta or a
|
|
20
|
+
* long description has made tall.
|
|
21
|
+
*/
|
|
22
|
+
export type StatIconAlignment = 'center' | 'top';
|
|
23
|
+
/**
|
|
24
|
+
* `card` is a tile in its own right, one of a row. `inset` is the summary at
|
|
25
|
+
* the top of a card whose chart or table is the evidence: recessed, no
|
|
26
|
+
* shadow, its caption small and upper-case so it does not compete with the
|
|
27
|
+
* card's own title.
|
|
28
|
+
*/
|
|
29
|
+
export type StatSurface = 'card' | 'inset';
|
|
30
|
+
export type StatRow = {
|
|
31
|
+
/** Stable key. Labels repeat across tiles, so they are not one. */
|
|
32
|
+
id: string;
|
|
33
|
+
label: string | Snippet;
|
|
34
|
+
value: string | number | Snippet | null;
|
|
35
|
+
/**
|
|
36
|
+
* Colours the value: "this figure has a direction". For a directional
|
|
37
|
+
* pair (stock in against stock out), not the parts of a total. Leave it
|
|
38
|
+
* off unless every row in the group has one; a single tinted row reads as
|
|
39
|
+
* an alert.
|
|
40
|
+
*/
|
|
41
|
+
tone?: Tone;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The dashboard's headline number. One tile states one figure, and the rest
|
|
45
|
+
* qualifies it: a unit, a delta, a description, a sparkline, a few rows. The
|
|
46
|
+
* icon sits in a chip so the eye lands on the number, and colour is kept for
|
|
47
|
+
* tone; a tile merely reporting a total stays in ink.
|
|
48
|
+
*
|
|
49
|
+
* Loading and error are the tile's business. An error renders the em dash a
|
|
50
|
+
* missing value does, and the tile keeps its height either way: a row of four
|
|
51
|
+
* where one has collapsed is worse than one where a tile has no answer.
|
|
52
|
+
*/
|
|
53
|
+
export type StatTileProps = HTMLAttributes<HTMLDivElement> & {
|
|
54
|
+
/** A short caption above the figure. */
|
|
55
|
+
label: string;
|
|
56
|
+
/**
|
|
57
|
+
* The figure, already formatted: the package has no opinion about
|
|
58
|
+
* currencies or locales. `null` renders an em dash.
|
|
59
|
+
*/
|
|
60
|
+
value: string | number | Snippet | null;
|
|
61
|
+
/**
|
|
62
|
+
* What the figure is counted in: `orders`, `per order`. Its own small line
|
|
63
|
+
* under the figure, since beside it a delta and a visual made every tile in
|
|
64
|
+
* a row wrap at a different point.
|
|
65
|
+
*/
|
|
66
|
+
unit?: string | Snippet;
|
|
67
|
+
/** The unabbreviated figure, on hover: `$45,612.40` under `$45.6k`. */
|
|
68
|
+
exactValue?: string;
|
|
69
|
+
icon?: Snippet;
|
|
70
|
+
/** An explanation trigger after the label; it belongs to the caption it explains. */
|
|
71
|
+
hint?: Snippet;
|
|
72
|
+
/**
|
|
73
|
+
* Colours the figure only, never the chip or the card: "this figure has a
|
|
74
|
+
* direction", not "this is a problem".
|
|
75
|
+
*/
|
|
76
|
+
tone?: Tone;
|
|
77
|
+
size?: StatSize;
|
|
78
|
+
surface?: StatSurface;
|
|
79
|
+
/**
|
|
80
|
+
* `square` by default. A chip holding a face or initials is a circle; for
|
|
81
|
+
* icon chips the screen picks, and every chip in the row takes the same one.
|
|
82
|
+
*/
|
|
83
|
+
iconShape?: IconChipShape;
|
|
84
|
+
/** A muted line under the figure. */
|
|
85
|
+
description?: string | Snippet;
|
|
86
|
+
/**
|
|
87
|
+
* After the figure, on its line: a `DeltaBadge`, so `$45.6k ↗ +15.7%` reads
|
|
88
|
+
* as one statement. Dropped on error.
|
|
89
|
+
*/
|
|
90
|
+
delta?: Snippet;
|
|
91
|
+
/**
|
|
92
|
+
* Top right, on the label's line: a link out to what the figure summarises.
|
|
93
|
+
* Keep it short; the label is the one that wraps.
|
|
94
|
+
*/
|
|
95
|
+
action?: Snippet;
|
|
96
|
+
/**
|
|
97
|
+
* A shape beside the figure, a `Sparkline` usually. It takes half the row
|
|
98
|
+
* and yields: a long figure squeezes the shape, never the reverse.
|
|
99
|
+
*/
|
|
100
|
+
visual?: Snippet;
|
|
101
|
+
/** Supporting facts under the figure, ruled off from it and from each other. */
|
|
102
|
+
rows?: StatRow[];
|
|
103
|
+
/** Below everything else: a bar, a total. */
|
|
104
|
+
footer?: Snippet;
|
|
105
|
+
/**
|
|
106
|
+
* Right by default: the icon is ornament, so label, figure and description
|
|
107
|
+
* run straight down the left edge. Left for an icon that carries meaning.
|
|
108
|
+
*/
|
|
109
|
+
iconPosition?: 'left' | 'right';
|
|
110
|
+
iconAlignment?: StatIconAlignment;
|
|
111
|
+
iconTone?: Tone;
|
|
112
|
+
iconSize?: StatIconSize;
|
|
113
|
+
/**
|
|
114
|
+
* Lets the chip follow `tone`, so one threshold colours both and the two
|
|
115
|
+
* cannot drift into an ink figure in a red chip. Off by default: a tinted
|
|
116
|
+
* chip beside a tinted figure says the same thing twice. Supersedes
|
|
117
|
+
* `iconTone`.
|
|
118
|
+
*/
|
|
119
|
+
applyToneToIcon?: boolean;
|
|
120
|
+
loading?: boolean;
|
|
121
|
+
error?: boolean;
|
|
122
|
+
};
|
|
123
|
+
declare const StatTile: import("svelte").Component<StatTileProps, {}, "">;
|
|
124
|
+
type StatTile = ReturnType<typeof StatTile>;
|
|
125
|
+
export default StatTile;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Origin: the React package 2.23.0 `table.tsx` (`TableDensityContext`)
|
|
3
|
+
* Diverged: Svelte context holding a getter, where React's held the boolean.
|
|
4
|
+
*/
|
|
5
|
+
import { getContext, setContext } from 'svelte';
|
|
6
|
+
/**
|
|
7
|
+
* Row density, set once on `Table` and read by every head and cell beneath it.
|
|
8
|
+
* Context rather than a prop per cell: density is a property of the table.
|
|
9
|
+
*/
|
|
10
|
+
const KEY = Symbol('mise-table-density');
|
|
11
|
+
export function setTableDensity(compact) {
|
|
12
|
+
setContext(KEY, compact);
|
|
13
|
+
}
|
|
14
|
+
export function useTableCompact() {
|
|
15
|
+
return getContext(KEY) ?? (() => false);
|
|
16
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as Table, type TableProps } from './table.svelte';
|
|
2
|
+
export { default as TableBody, type TableBodyProps } from './table-body.svelte';
|
|
3
|
+
export { default as TableCaption, type TableCaptionProps } from './table-caption.svelte';
|
|
4
|
+
export { default as TableCell, type TableCellProps } from './table-cell.svelte';
|
|
5
|
+
export { default as TableFooter, type TableFooterProps } from './table-footer.svelte';
|
|
6
|
+
export { default as TableHead, type TableHeadProps } from './table-head.svelte';
|
|
7
|
+
export { default as TableHeader, type TableHeaderProps } from './table-header.svelte';
|
|
8
|
+
export { default as TableRow, type TableRowProps } from './table-row.svelte';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as Table } from './table.svelte';
|
|
2
|
+
export { default as TableBody } from './table-body.svelte';
|
|
3
|
+
export { default as TableCaption } from './table-caption.svelte';
|
|
4
|
+
export { default as TableCell } from './table-cell.svelte';
|
|
5
|
+
export { default as TableFooter } from './table-footer.svelte';
|
|
6
|
+
export { default as TableHead } from './table-head.svelte';
|
|
7
|
+
export { default as TableHeader } from './table-header.svelte';
|
|
8
|
+
export { default as TableRow } from './table-row.svelte';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `table.tsx` (`TableBody`), itself shadcn/ui new-york `table`
|
|
3
|
+
Svelte: shadcn-svelte `table`
|
|
4
|
+
Diverged: none beyond the port.
|
|
5
|
+
-->
|
|
6
|
+
<script lang="ts" module>
|
|
7
|
+
import type { HTMLAttributes } from 'svelte/elements'
|
|
8
|
+
|
|
9
|
+
import type { WithElementRef } from '../../../utils/types.js'
|
|
10
|
+
|
|
11
|
+
/** The rows. The last row drops its rule; the table edge is enough. */
|
|
12
|
+
export type TableBodyProps = WithElementRef<HTMLAttributes<HTMLTableSectionElement>>
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import { cn } from '../../../utils/cn.js'
|
|
17
|
+
|
|
18
|
+
let { ref = $bindable(null), class: className, children, ...rest }: TableBodyProps = $props()
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<tbody
|
|
22
|
+
bind:this={ref}
|
|
23
|
+
data-slot="table-body"
|
|
24
|
+
class={cn('bg-card [&_tr:last-child]:border-0', className)}
|
|
25
|
+
{...rest}
|
|
26
|
+
>
|
|
27
|
+
{@render children?.()}
|
|
28
|
+
</tbody>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
2
|
+
import type { WithElementRef } from '../../../utils/types.js';
|
|
3
|
+
/** The rows. The last row drops its rule; the table edge is enough. */
|
|
4
|
+
export type TableBodyProps = WithElementRef<HTMLAttributes<HTMLTableSectionElement>>;
|
|
5
|
+
declare const TableBody: import("svelte").Component<TableBodyProps, {}, "ref">;
|
|
6
|
+
type TableBody = ReturnType<typeof TableBody>;
|
|
7
|
+
export default TableBody;
|