@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,105 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `chart.tsx` (`ChartContainer`), itself shadcn/ui new-york `chart`
|
|
3
|
+
Svelte: shadcn-svelte `chart`
|
|
4
|
+
Diverged: LayerChart for recharts. The classes that restyle the chart are
|
|
5
|
+
shadcn-svelte's, written against LayerChart's `lc-*` class names where
|
|
6
|
+
React's targeted recharts'; they take over React's `chartAxis` (no tick
|
|
7
|
+
lines, no axis line). The id comes from a module counter rather than
|
|
8
|
+
`$props.id()`, which needs Svelte 5.20 where the package supports any Svelte 5.
|
|
9
|
+
-->
|
|
10
|
+
<script lang="ts" module>
|
|
11
|
+
/**
|
|
12
|
+
* The frame a chart draws in: it writes the config's colours as
|
|
13
|
+
* `--color-<key>` for both schemes, scoped to this chart, and restyles
|
|
14
|
+
* LayerChart to the package's quiet axes and grid.
|
|
15
|
+
*/
|
|
16
|
+
import type { HTMLAttributes } from 'svelte/elements'
|
|
17
|
+
|
|
18
|
+
import type { WithElementRef } from '../../../utils/types.js'
|
|
19
|
+
import type { ChartConfig } from './chart-utils.js'
|
|
20
|
+
|
|
21
|
+
export type ChartContainerProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
|
|
22
|
+
/** Each series' label and colour; colours are written as `--color-<key>`. */
|
|
23
|
+
config: ChartConfig
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let instances = 0
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<script lang="ts">
|
|
30
|
+
import { cn } from '../../../utils/cn.js'
|
|
31
|
+
import ChartStyle from './chart-style.svelte'
|
|
32
|
+
import { setChartContext } from './chart-utils.js'
|
|
33
|
+
|
|
34
|
+
const uid = `${++instances}`
|
|
35
|
+
|
|
36
|
+
let {
|
|
37
|
+
ref = $bindable(null),
|
|
38
|
+
id = uid,
|
|
39
|
+
class: className,
|
|
40
|
+
children,
|
|
41
|
+
config,
|
|
42
|
+
...restProps
|
|
43
|
+
}: ChartContainerProps = $props()
|
|
44
|
+
|
|
45
|
+
const chartId = $derived(`chart-${id || uid.replace(/:/g, '')}`)
|
|
46
|
+
|
|
47
|
+
setChartContext({
|
|
48
|
+
get config() {
|
|
49
|
+
return config
|
|
50
|
+
},
|
|
51
|
+
})
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
<div
|
|
55
|
+
bind:this={ref}
|
|
56
|
+
data-chart={chartId}
|
|
57
|
+
data-slot="chart"
|
|
58
|
+
class={cn(
|
|
59
|
+
'flex aspect-video justify-center overflow-visible text-xs',
|
|
60
|
+
// Overrides
|
|
61
|
+
//
|
|
62
|
+
// Stroke around dots/marks when hovering
|
|
63
|
+
'[&_.lc-highlight-point]:stroke-transparent',
|
|
64
|
+
// override the default stroke color of lines
|
|
65
|
+
'[&_.lc-line]:stroke-border/50',
|
|
66
|
+
|
|
67
|
+
// by default, layerchart shows a line intersecting the point when hovering, this hides that
|
|
68
|
+
'[&_.lc-highlight-line]:stroke-0',
|
|
69
|
+
|
|
70
|
+
// by default, when you hover a point on a stacked series chart, it will drop the opacity
|
|
71
|
+
// of the other series, this overrides that
|
|
72
|
+
'[&_.lc-area-path]:opacity-100 [&_.lc-highlight-line]:opacity-100 [&_.lc-highlight-point]:opacity-100 [&_.lc-spline-path]:opacity-100 [&_.lc-text]:text-xs [&_.lc-text-svg]:overflow-visible',
|
|
73
|
+
|
|
74
|
+
// We don't want the little tick lines between the axis labels and the chart, so we remove
|
|
75
|
+
// the stroke. The alternative is to manually disable `tickMarks` on the x/y axis of every
|
|
76
|
+
// chart.
|
|
77
|
+
'[&_.lc-axis-tick]:stroke-0',
|
|
78
|
+
|
|
79
|
+
// We don't want to display the rule on the x/y axis, as there is already going to be
|
|
80
|
+
// a grid line there and rule ends up overlapping the marks because it is rendered after
|
|
81
|
+
// the marks
|
|
82
|
+
'[&_.lc-rule-x-line:not(.lc-grid-x-rule)]:stroke-0 [&_.lc-rule-y-line:not(.lc-grid-y-rule)]:stroke-0',
|
|
83
|
+
'[&_.lc-grid-x-radial-circle]:stroke-border [&_.lc-grid-x-radial-line]:stroke-border',
|
|
84
|
+
'[&_.lc-grid-y-radial-circle]:stroke-border [&_.lc-grid-y-radial-line]:stroke-border',
|
|
85
|
+
|
|
86
|
+
// Legend adjustments
|
|
87
|
+
'[&_.lc-legend-swatch-button]:items-center [&_.lc-legend-swatch-button]:gap-1.5',
|
|
88
|
+
'[&_.lc-legend-swatch-group]:items-center [&_.lc-legend-swatch-group]:gap-4',
|
|
89
|
+
'[&_.lc-legend-swatch]:size-2.5 [&_.lc-legend-swatch]:rounded-[2px]',
|
|
90
|
+
|
|
91
|
+
// Labels
|
|
92
|
+
'[&_.lc-labels-text:not([fill])]:fill-foreground [&_text]:stroke-transparent',
|
|
93
|
+
|
|
94
|
+
// Tick labels on th x/y axes
|
|
95
|
+
'[&_.lc-axis-tick-label]:fill-muted-foreground [&_.lc-axis-tick-label]:font-normal',
|
|
96
|
+
'[&_.lc-tooltip-rects-g]:fill-transparent',
|
|
97
|
+
'[&_.lc-layout-svg-g]:fill-transparent',
|
|
98
|
+
'[&_.lc-root-container]:w-full',
|
|
99
|
+
className,
|
|
100
|
+
)}
|
|
101
|
+
{...restProps}
|
|
102
|
+
>
|
|
103
|
+
<ChartStyle id={chartId} {config} />
|
|
104
|
+
{@render children?.()}
|
|
105
|
+
</div>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The frame a chart draws in: it writes the config's colours as
|
|
3
|
+
* `--color-<key>` for both schemes, scoped to this chart, and restyles
|
|
4
|
+
* LayerChart to the package's quiet axes and grid.
|
|
5
|
+
*/
|
|
6
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
7
|
+
import type { WithElementRef } from '../../../utils/types.js';
|
|
8
|
+
import type { ChartConfig } from './chart-utils.js';
|
|
9
|
+
export type ChartContainerProps = WithElementRef<HTMLAttributes<HTMLElement>> & {
|
|
10
|
+
/** Each series' label and colour; colours are written as `--color-<key>`. */
|
|
11
|
+
config: ChartConfig;
|
|
12
|
+
};
|
|
13
|
+
declare const Chart: import("svelte").Component<ChartContainerProps, {}, "ref">;
|
|
14
|
+
type Chart = ReturnType<typeof Chart>;
|
|
15
|
+
export default Chart;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { type ChartContainerProps, default as ChartContainer } from './chart.svelte';
|
|
2
|
+
export { chartAreaFillOpacity, chartComparisonSeriesClass, chartGrid, chartLineStrokeWidth, } from './chart-defaults.js';
|
|
3
|
+
export { type ChartStyleProps, default as ChartStyle } from './chart-style.svelte';
|
|
4
|
+
export { type ChartTooltipProps, default as ChartTooltip } from './chart-tooltip.svelte';
|
|
5
|
+
export { type ChartConfig, getPayloadConfigFromPayload, useChart } from './chart-utils.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as ChartContainer } from './chart.svelte';
|
|
2
|
+
export { chartAreaFillOpacity, chartComparisonSeriesClass, chartGrid, chartLineStrokeWidth, } from './chart-defaults.js';
|
|
3
|
+
export { default as ChartStyle } from './chart-style.svelte';
|
|
4
|
+
export { default as ChartTooltip } from './chart-tooltip.svelte';
|
|
5
|
+
export { getPayloadConfigFromPayload, useChart } from './chart-utils.js';
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `checklist-card.tsx`
|
|
3
|
+
Diverged: one of the checklist family (round 8 plan, R8-4), its rows drawn by
|
|
4
|
+
the family's shared row heading. `action`, `footer`, `collapsedControl` and
|
|
5
|
+
each item's `action` are snippets. Lucide's list-checks. Spreads the rest
|
|
6
|
+
onto the card, as every component does.
|
|
7
|
+
-->
|
|
8
|
+
<script lang="ts" module>
|
|
9
|
+
import type { Snippet } from 'svelte'
|
|
10
|
+
|
|
11
|
+
import type { CardProps } from '../../layout/card/card.svelte'
|
|
12
|
+
import type { ChecklistCardItem } from './checklist-types.js'
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* A progress card small enough to live above a sidebar's nav: a ring, a
|
|
16
|
+
* heading, and the next few unmet rows.
|
|
17
|
+
*
|
|
18
|
+
* Not `ReadinessChecklist`, which answers "what does this page still need
|
|
19
|
+
* from me" and tags rows Required in warning colour. This answers "what is
|
|
20
|
+
* worth doing next", where an untouched row is not a problem.
|
|
21
|
+
*
|
|
22
|
+
* The ring is `success` at the end and `primary` before it, and that is not
|
|
23
|
+
* a prop: a setup checklist has one finish line.
|
|
24
|
+
*/
|
|
25
|
+
export type ChecklistCardProps = Omit<CardProps, 'title' | 'children' | 'variant'> & {
|
|
26
|
+
title: string
|
|
27
|
+
/**
|
|
28
|
+
* 0–100, clamped, rounded for the figure only. Not derived from `items`:
|
|
29
|
+
* the card shows the next few rows and the ring counts all of them.
|
|
30
|
+
*/
|
|
31
|
+
percent: number
|
|
32
|
+
items: ChecklistCardItem[]
|
|
33
|
+
/**
|
|
34
|
+
* The sidebar's icon-rail mode: no card, just a solid icon button at a nav
|
|
35
|
+
* icon's width, with the share in its accessible name.
|
|
36
|
+
*/
|
|
37
|
+
collapsed?: boolean
|
|
38
|
+
/** Replaces the collapsed button, so it can match the caller's own nav buttons. */
|
|
39
|
+
collapsedControl?: Snippet
|
|
40
|
+
/**
|
|
41
|
+
* `md` for a card on its own; `sm` for one pinned above a sidebar's nav.
|
|
42
|
+
* `sm` scales the ring, the title, the rows and the card's padding together.
|
|
43
|
+
*/
|
|
44
|
+
size?: 'sm' | 'md'
|
|
45
|
+
/**
|
|
46
|
+
* `outline` drops the fill and the shadow for a visible ring: on a dark
|
|
47
|
+
* sidebar a dark fill barely reads as a card, and a border separates it.
|
|
48
|
+
*/
|
|
49
|
+
variant?: 'default' | 'outline'
|
|
50
|
+
/** The header's corner: a "Hide" button. */
|
|
51
|
+
action?: Snippet
|
|
52
|
+
/** The way to the full list: "See all steps". */
|
|
53
|
+
footer?: Snippet
|
|
54
|
+
}
|
|
55
|
+
</script>
|
|
56
|
+
|
|
57
|
+
<script lang="ts">
|
|
58
|
+
import ListChecksIcon from '@lucide/svelte/icons/list-checks'
|
|
59
|
+
|
|
60
|
+
import { cn } from '../../../utils/cn.js'
|
|
61
|
+
import Card from '../../layout/card/card.svelte'
|
|
62
|
+
import CardContent from '../../layout/card/card-content.svelte'
|
|
63
|
+
import CardFooter from '../../layout/card/card-footer.svelte'
|
|
64
|
+
import CardHeader from '../../layout/card/card-header.svelte'
|
|
65
|
+
import CardTitle from '../../layout/card/card-title.svelte'
|
|
66
|
+
import CardList from '../../layout/card-list/card-list.svelte'
|
|
67
|
+
import RadialStat from '../radial-stat/radial-stat.svelte'
|
|
68
|
+
import ChecklistRowHeading from './checklist-row-heading.svelte'
|
|
69
|
+
|
|
70
|
+
let {
|
|
71
|
+
title,
|
|
72
|
+
percent,
|
|
73
|
+
items,
|
|
74
|
+
collapsed = false,
|
|
75
|
+
collapsedControl,
|
|
76
|
+
size = 'md',
|
|
77
|
+
variant = 'default',
|
|
78
|
+
action,
|
|
79
|
+
footer,
|
|
80
|
+
class: className,
|
|
81
|
+
...rest
|
|
82
|
+
}: ChecklistCardProps = $props()
|
|
83
|
+
|
|
84
|
+
const bounded = $derived(Math.min(100, Math.max(0, percent)))
|
|
85
|
+
// Rounded for the figure only: 99.6% reads 100% while the ring keeps its gap
|
|
86
|
+
// and its unfinished colour.
|
|
87
|
+
const shown = $derived(Math.round(bounded))
|
|
88
|
+
const tone = $derived(bounded >= 100 ? 'success' : 'primary')
|
|
89
|
+
// Collapsed, the name carries the title; expanded, CardTitle is beside it.
|
|
90
|
+
const ringLabel = $derived(collapsed ? `${title}: ${shown}% complete` : `${shown}% complete`)
|
|
91
|
+
const small = $derived(size === 'sm')
|
|
92
|
+
</script>
|
|
93
|
+
|
|
94
|
+
{#if collapsed}
|
|
95
|
+
<div data-slot="checklist-card" class={cn('flex justify-center', className)}>
|
|
96
|
+
{#if collapsedControl}
|
|
97
|
+
{@render collapsedControl()}
|
|
98
|
+
{:else}
|
|
99
|
+
<!-- A solid icon rather than the bare ring: at 0% the ring is an empty
|
|
100
|
+
track, which reads as nothing against a dark rail. -->
|
|
101
|
+
<div
|
|
102
|
+
role="img"
|
|
103
|
+
aria-label={ringLabel}
|
|
104
|
+
class="bg-primary text-primary-foreground flex size-10 items-center justify-center rounded-md"
|
|
105
|
+
>
|
|
106
|
+
<ListChecksIcon aria-hidden="true" class="size-6" />
|
|
107
|
+
</div>
|
|
108
|
+
{/if}
|
|
109
|
+
</div>
|
|
110
|
+
{:else}
|
|
111
|
+
<Card
|
|
112
|
+
class={cn(
|
|
113
|
+
// `sm` tightens --card-spacing itself, so every Card part follows it.
|
|
114
|
+
small && '[--card-spacing:--spacing(3)]',
|
|
115
|
+
// ring-border rather than Card's hairline, which reads as nothing once
|
|
116
|
+
// the fill it separated from is gone too.
|
|
117
|
+
variant === 'outline' && 'bg-transparent shadow-none ring-1 ring-border',
|
|
118
|
+
className,
|
|
119
|
+
)}
|
|
120
|
+
{...rest}
|
|
121
|
+
>
|
|
122
|
+
<CardHeader class="flex items-center gap-3">
|
|
123
|
+
<RadialStat percent={bounded} {tone} diameter={small ? 40 : 48} aria-label={ringLabel} />
|
|
124
|
+
<CardTitle class={cn('flex-1', small && 'text-sm')}>{title}</CardTitle>
|
|
125
|
+
{@render action?.()}
|
|
126
|
+
</CardHeader>
|
|
127
|
+
|
|
128
|
+
{#if items.length > 0}
|
|
129
|
+
<CardContent>
|
|
130
|
+
<!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
|
|
131
|
+
<CardList compact role="list" class={small ? '[&>*]:py-2' : undefined}>
|
|
132
|
+
{#each items as item (item.id)}
|
|
133
|
+
<!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
|
|
134
|
+
<div
|
|
135
|
+
data-slot="checklist-card-item"
|
|
136
|
+
role="listitem"
|
|
137
|
+
class={cn('flex items-center gap-2', small ? 'text-xs' : 'text-sm')}
|
|
138
|
+
>
|
|
139
|
+
<ChecklistRowHeading
|
|
140
|
+
state={item.done ? 'completed' : 'pending'}
|
|
141
|
+
label={item.label}
|
|
142
|
+
{size}
|
|
143
|
+
/>
|
|
144
|
+
{#if item.action}
|
|
145
|
+
<div class="shrink-0 text-xs">{@render item.action()}</div>
|
|
146
|
+
{/if}
|
|
147
|
+
</div>
|
|
148
|
+
{/each}
|
|
149
|
+
</CardList>
|
|
150
|
+
</CardContent>
|
|
151
|
+
{/if}
|
|
152
|
+
|
|
153
|
+
{#if footer}
|
|
154
|
+
<CardFooter divided class={cn(small && 'text-xs')}>{@render footer()}</CardFooter>
|
|
155
|
+
{/if}
|
|
156
|
+
</Card>
|
|
157
|
+
{/if}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { CardProps } from '../../layout/card/card.svelte';
|
|
3
|
+
import type { ChecklistCardItem } from './checklist-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* A progress card small enough to live above a sidebar's nav: a ring, a
|
|
6
|
+
* heading, and the next few unmet rows.
|
|
7
|
+
*
|
|
8
|
+
* Not `ReadinessChecklist`, which answers "what does this page still need
|
|
9
|
+
* from me" and tags rows Required in warning colour. This answers "what is
|
|
10
|
+
* worth doing next", where an untouched row is not a problem.
|
|
11
|
+
*
|
|
12
|
+
* The ring is `success` at the end and `primary` before it, and that is not
|
|
13
|
+
* a prop: a setup checklist has one finish line.
|
|
14
|
+
*/
|
|
15
|
+
export type ChecklistCardProps = Omit<CardProps, 'title' | 'children' | 'variant'> & {
|
|
16
|
+
title: string;
|
|
17
|
+
/**
|
|
18
|
+
* 0–100, clamped, rounded for the figure only. Not derived from `items`:
|
|
19
|
+
* the card shows the next few rows and the ring counts all of them.
|
|
20
|
+
*/
|
|
21
|
+
percent: number;
|
|
22
|
+
items: ChecklistCardItem[];
|
|
23
|
+
/**
|
|
24
|
+
* The sidebar's icon-rail mode: no card, just a solid icon button at a nav
|
|
25
|
+
* icon's width, with the share in its accessible name.
|
|
26
|
+
*/
|
|
27
|
+
collapsed?: boolean;
|
|
28
|
+
/** Replaces the collapsed button, so it can match the caller's own nav buttons. */
|
|
29
|
+
collapsedControl?: Snippet;
|
|
30
|
+
/**
|
|
31
|
+
* `md` for a card on its own; `sm` for one pinned above a sidebar's nav.
|
|
32
|
+
* `sm` scales the ring, the title, the rows and the card's padding together.
|
|
33
|
+
*/
|
|
34
|
+
size?: 'sm' | 'md';
|
|
35
|
+
/**
|
|
36
|
+
* `outline` drops the fill and the shadow for a visible ring: on a dark
|
|
37
|
+
* sidebar a dark fill barely reads as a card, and a border separates it.
|
|
38
|
+
*/
|
|
39
|
+
variant?: 'default' | 'outline';
|
|
40
|
+
/** The header's corner: a "Hide" button. */
|
|
41
|
+
action?: Snippet;
|
|
42
|
+
/** The way to the full list: "See all steps". */
|
|
43
|
+
footer?: Snippet;
|
|
44
|
+
};
|
|
45
|
+
declare const ChecklistCard: import("svelte").Component<ChecklistCardProps, {}, "">;
|
|
46
|
+
type ChecklistCard = ReturnType<typeof ChecklistCard>;
|
|
47
|
+
export default ChecklistCard;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `task-checklist.tsx` (`TaskRowHeading`, `TaskStateIcon`), with `checklist-card.tsx`'s row
|
|
3
|
+
Diverged: one part for both components' rows (round 8 plan, R8-4): the icon,
|
|
4
|
+
the state a screen reader hears, and the truncating label. ChecklistCard's
|
|
5
|
+
`done` reads as `completed` and is announced "Completed:"/"Not started:",
|
|
6
|
+
where React's said "Done:"/"Not done:". Lucide's circle-check, filled by
|
|
7
|
+
class, for Tabler's filled check; circle-dashed and circle-minus. Not
|
|
8
|
+
exported.
|
|
9
|
+
-->
|
|
10
|
+
<script lang="ts" module>
|
|
11
|
+
import type { ChecklistTaskState } from './checklist-types.js'
|
|
12
|
+
|
|
13
|
+
export type ChecklistRowHeadingProps = {
|
|
14
|
+
state: ChecklistTaskState
|
|
15
|
+
label: string
|
|
16
|
+
/** `sm` for ChecklistCard's small size. */
|
|
17
|
+
size?: 'sm' | 'md'
|
|
18
|
+
}
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<script lang="ts">
|
|
22
|
+
import CircleCheckIcon from '@lucide/svelte/icons/circle-check'
|
|
23
|
+
import CircleDashedIcon from '@lucide/svelte/icons/circle-dashed'
|
|
24
|
+
import CircleMinusIcon from '@lucide/svelte/icons/circle-minus'
|
|
25
|
+
|
|
26
|
+
import { cn } from '../../../utils/cn.js'
|
|
27
|
+
import { CHECKLIST_STATE_LABEL } from './checklist-types.js'
|
|
28
|
+
|
|
29
|
+
let { state, label, size = 'md' }: ChecklistRowHeadingProps = $props()
|
|
30
|
+
|
|
31
|
+
const iconSize = $derived(size === 'sm' ? 'size-3.5' : 'size-4')
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
{#if state === 'completed'}
|
|
35
|
+
<!-- Filled: the circle takes the colour and the check is cut out of it. -->
|
|
36
|
+
<CircleCheckIcon
|
|
37
|
+
aria-hidden="true"
|
|
38
|
+
class={cn('text-success fill-current shrink-0 [&_path]:text-background', iconSize)}
|
|
39
|
+
/>
|
|
40
|
+
{:else if state === 'skipped'}
|
|
41
|
+
<CircleMinusIcon aria-hidden="true" class={cn('text-muted-foreground shrink-0', iconSize)} />
|
|
42
|
+
{:else}
|
|
43
|
+
<CircleDashedIcon aria-hidden="true" class={cn('text-muted-foreground shrink-0', iconSize)} />
|
|
44
|
+
{/if}
|
|
45
|
+
|
|
46
|
+
<!-- The state is a glyph and a colour, and neither reaches a screen reader. -->
|
|
47
|
+
<span class="sr-only">{CHECKLIST_STATE_LABEL[state]}</span>
|
|
48
|
+
|
|
49
|
+
<!-- `title` because the row truncates, and a long step name has no other way
|
|
50
|
+
to be read. -->
|
|
51
|
+
<span
|
|
52
|
+
title={label}
|
|
53
|
+
class={cn('min-w-0 flex-1 truncate', state !== 'pending' && 'text-muted-foreground')}
|
|
54
|
+
>
|
|
55
|
+
{label}
|
|
56
|
+
</span>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ChecklistTaskState } from './checklist-types.js';
|
|
2
|
+
export type ChecklistRowHeadingProps = {
|
|
3
|
+
state: ChecklistTaskState;
|
|
4
|
+
label: string;
|
|
5
|
+
/** `sm` for ChecklistCard's small size. */
|
|
6
|
+
size?: 'sm' | 'md';
|
|
7
|
+
};
|
|
8
|
+
declare const ChecklistRowHeading: import("svelte").Component<ChecklistRowHeadingProps, {}, "">;
|
|
9
|
+
type ChecklistRowHeading = ReturnType<typeof ChecklistRowHeading>;
|
|
10
|
+
export default ChecklistRowHeading;
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `task-checklist.tsx` (`TaskChecklistRow`)
|
|
3
|
+
Diverged: bits-ui Collapsible for Radix's; Lucide's chevron-down. Not exported.
|
|
4
|
+
-->
|
|
5
|
+
<script lang="ts" module>
|
|
6
|
+
import type { ChecklistTask } from './checklist-types.js'
|
|
7
|
+
|
|
8
|
+
export type ChecklistTaskRowProps = {
|
|
9
|
+
task: ChecklistTask
|
|
10
|
+
open: boolean
|
|
11
|
+
onExpandedChange?: (id: string | null) => void
|
|
12
|
+
}
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import ChevronDownIcon from '@lucide/svelte/icons/chevron-down'
|
|
17
|
+
import { Collapsible as CollapsiblePrimitive } from 'bits-ui'
|
|
18
|
+
|
|
19
|
+
import { cn } from '../../../utils/cn.js'
|
|
20
|
+
import CollapsibleContent from '../../layout/collapsible/collapsible-content.svelte'
|
|
21
|
+
import CollapsibleTrigger from '../../layout/collapsible/collapsible-trigger.svelte'
|
|
22
|
+
import Hint from '../../overlays/hint/hint.svelte'
|
|
23
|
+
import ChecklistRowHeading from './checklist-row-heading.svelte'
|
|
24
|
+
|
|
25
|
+
let { task, open, onExpandedChange }: ChecklistTaskRowProps = $props()
|
|
26
|
+
|
|
27
|
+
const hasBody = $derived(Boolean(task.description || task.media || task.learnMore))
|
|
28
|
+
const focusRing =
|
|
29
|
+
'focus-visible:border-ring focus-visible:ring-ring/50 rounded-md outline-none focus-visible:ring-[3px]'
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
{#snippet trailing()}
|
|
33
|
+
<!-- Sized to its own content, so the Hint reads as attached to the title; the
|
|
34
|
+
spacer after it pushes the actions to the row's far side. -->
|
|
35
|
+
{#if task.hint}
|
|
36
|
+
<Hint>{@render task.hint()}</Hint>
|
|
37
|
+
{/if}
|
|
38
|
+
<div class="min-w-0 flex-1"></div>
|
|
39
|
+
{#if task.actions}
|
|
40
|
+
<div class="shrink-0 text-sm">{@render task.actions()}</div>
|
|
41
|
+
{/if}
|
|
42
|
+
{/snippet}
|
|
43
|
+
|
|
44
|
+
{#if !hasBody}
|
|
45
|
+
<!-- A row with nothing to reveal is not a disclosure, so it does not render
|
|
46
|
+
as one: no chevron that does nothing, no aria-controls pointing nowhere. -->
|
|
47
|
+
<!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
|
|
48
|
+
<div data-slot="checklist-task" role="listitem" class="flex items-center gap-2">
|
|
49
|
+
<div class="flex min-w-0 items-center gap-2 text-sm">
|
|
50
|
+
<ChecklistRowHeading state={task.state} label={task.label} />
|
|
51
|
+
</div>
|
|
52
|
+
{@render trailing()}
|
|
53
|
+
</div>
|
|
54
|
+
{:else}
|
|
55
|
+
<!-- Controlled by the caller's `expandedId`, so the open row and the URL
|
|
56
|
+
fragment are the same fact. Closing reports null. -->
|
|
57
|
+
<!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
|
|
58
|
+
<CollapsiblePrimitive.Root
|
|
59
|
+
data-slot="checklist-task"
|
|
60
|
+
role="listitem"
|
|
61
|
+
{open}
|
|
62
|
+
onOpenChange={(next) => onExpandedChange?.(next ? task.id : null)}
|
|
63
|
+
>
|
|
64
|
+
<div class="flex items-center gap-2">
|
|
65
|
+
<CollapsibleTrigger
|
|
66
|
+
class={cn('flex min-w-0 items-center gap-2 text-left text-sm', focusRing)}
|
|
67
|
+
>
|
|
68
|
+
<ChecklistRowHeading state={task.state} label={task.label} />
|
|
69
|
+
</CollapsibleTrigger>
|
|
70
|
+
{@render trailing()}
|
|
71
|
+
<!-- A second trigger for the same row, in its far corner past the
|
|
72
|
+
actions; one control for a screen reader, two places to reach it. -->
|
|
73
|
+
<CollapsibleTrigger
|
|
74
|
+
class={cn('shrink-0', focusRing)}
|
|
75
|
+
aria-label={open ? 'Collapse' : 'Expand'}
|
|
76
|
+
>
|
|
77
|
+
<ChevronDownIcon
|
|
78
|
+
aria-hidden="true"
|
|
79
|
+
class={cn(
|
|
80
|
+
'text-muted-foreground size-4 shrink-0 transition-transform',
|
|
81
|
+
open && 'rotate-180',
|
|
82
|
+
)}
|
|
83
|
+
/>
|
|
84
|
+
</CollapsibleTrigger>
|
|
85
|
+
</div>
|
|
86
|
+
<CollapsibleContent>
|
|
87
|
+
<!-- Indented past the status icon, so the body hangs under the label. -->
|
|
88
|
+
<div class="flex flex-col gap-3 pt-3 pl-6 text-sm">
|
|
89
|
+
{#if task.description}
|
|
90
|
+
<p class="text-muted-foreground">{task.description}</p>
|
|
91
|
+
{/if}
|
|
92
|
+
{#if task.media}
|
|
93
|
+
<div>{@render task.media()}</div>
|
|
94
|
+
{/if}
|
|
95
|
+
{#if task.learnMore}
|
|
96
|
+
<div>{@render task.learnMore()}</div>
|
|
97
|
+
{/if}
|
|
98
|
+
</div>
|
|
99
|
+
</CollapsibleContent>
|
|
100
|
+
</CollapsiblePrimitive.Root>
|
|
101
|
+
{/if}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChecklistTask } from './checklist-types.js';
|
|
2
|
+
export type ChecklistTaskRowProps = {
|
|
3
|
+
task: ChecklistTask;
|
|
4
|
+
open: boolean;
|
|
5
|
+
onExpandedChange?: (id: string | null) => void;
|
|
6
|
+
};
|
|
7
|
+
declare const ChecklistTaskRow: import("svelte").Component<ChecklistTaskRowProps, {}, "">;
|
|
8
|
+
type ChecklistTaskRow = ReturnType<typeof ChecklistTaskRow>;
|
|
9
|
+
export default ChecklistTaskRow;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Origin: the React package 2.23.0 `task-checklist.tsx` and `checklist-card.tsx` (their item types)
|
|
3
|
+
* Diverged: the two components' row types side by side, sharing one state set
|
|
4
|
+
* (round 8 plan, R8-4). React's `ReactNode` fields are snippets.
|
|
5
|
+
*/
|
|
6
|
+
import type { Snippet } from 'svelte';
|
|
7
|
+
/**
|
|
8
|
+
* `skipped` is its own state rather than a flavour of `completed`. A step a
|
|
9
|
+
* location has no use for is finished with, but it was not *done*: folding the
|
|
10
|
+
* two together would claim work that never happened.
|
|
11
|
+
*/
|
|
12
|
+
export type ChecklistTaskState = 'completed' | 'skipped' | 'pending';
|
|
13
|
+
export type ChecklistTask = {
|
|
14
|
+
/**
|
|
15
|
+
* Stable, and the value `expandedId` matches on; unique across every group,
|
|
16
|
+
* since it can live in a URL fragment.
|
|
17
|
+
*/
|
|
18
|
+
id: string;
|
|
19
|
+
label: string;
|
|
20
|
+
/** Shown when the row is open: what the step is and why it is worth doing. */
|
|
21
|
+
description?: string;
|
|
22
|
+
/** The same kind of fact as `description`, read beside the title in a `Hint`. */
|
|
23
|
+
hint?: Snippet;
|
|
24
|
+
state: ChecklistTaskState;
|
|
25
|
+
/**
|
|
26
|
+
* At the end of the row, beside the disclosure rather than inside it (a
|
|
27
|
+
* button in a button is invalid): "Add a category".
|
|
28
|
+
*/
|
|
29
|
+
actions?: Snippet;
|
|
30
|
+
/** Revealed on open: a screenshot or a short clip of the step. */
|
|
31
|
+
media?: Snippet;
|
|
32
|
+
/** Revealed on open: the way to the documentation. */
|
|
33
|
+
learnMore?: Snippet;
|
|
34
|
+
};
|
|
35
|
+
export type ChecklistGroup = {
|
|
36
|
+
/** Stable across renders; the each-block key and nothing else. */
|
|
37
|
+
key: string;
|
|
38
|
+
label: string;
|
|
39
|
+
/** 0–100, clamped. The server's answer, not counted from `tasks`. */
|
|
40
|
+
percent: number;
|
|
41
|
+
tasks: ChecklistTask[];
|
|
42
|
+
};
|
|
43
|
+
export type ChecklistCardItem = {
|
|
44
|
+
id: string;
|
|
45
|
+
label: string;
|
|
46
|
+
done: boolean;
|
|
47
|
+
/** At the end of the row: "Start", pointing at wherever the step is done. */
|
|
48
|
+
action?: Snippet;
|
|
49
|
+
};
|
|
50
|
+
/** Prefixes a row's accessible name, so the states differ without the icon or its colour. */
|
|
51
|
+
export declare const CHECKLIST_STATE_LABEL: Record<ChecklistTaskState, string>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `task-checklist.tsx` (`TaskChecklist`)
|
|
3
|
+
Diverged: React's TaskChecklist, renamed Checklist in the checklist family
|
|
4
|
+
(round 8 plan, R8-4): "Task" said nothing the list does not. Its rows share
|
|
5
|
+
the family's row heading with ChecklistCard. Spreads the rest onto the
|
|
6
|
+
root, as every component does.
|
|
7
|
+
-->
|
|
8
|
+
<script lang="ts" module>
|
|
9
|
+
import type { HTMLAttributes } from 'svelte/elements'
|
|
10
|
+
|
|
11
|
+
import type { ChecklistGroup } from './checklist-types.js'
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* The full "Get started" list: setup steps grouped into cards, each row
|
|
15
|
+
* folding open to its description and whatever the caller hangs off it.
|
|
16
|
+
*
|
|
17
|
+
* The page-sized companion to `ChecklistCard`, which lives above a sidebar's
|
|
18
|
+
* nav and shows the next few rows of one flat list. Not `Readiness`, which
|
|
19
|
+
* answers "what does this page still need before I can save it".
|
|
20
|
+
*/
|
|
21
|
+
export type ChecklistProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
|
|
22
|
+
groups: ChecklistGroup[]
|
|
23
|
+
/**
|
|
24
|
+
* The `id` of the one open row, or nothing open. Controlled, with no
|
|
25
|
+
* internal fallback, so it can follow a URL fragment without disagreeing
|
|
26
|
+
* with it. One row at a time by construction.
|
|
27
|
+
*/
|
|
28
|
+
expandedId?: string
|
|
29
|
+
/** The id to move to, or `null` when the open row was closed. */
|
|
30
|
+
onExpandedChange?: (id: string | null) => void
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<script lang="ts">
|
|
35
|
+
import { cn } from '../../../utils/cn.js'
|
|
36
|
+
import Progress from '../../feedback/progress/progress.svelte'
|
|
37
|
+
import Card from '../../layout/card/card.svelte'
|
|
38
|
+
import CardContent from '../../layout/card/card-content.svelte'
|
|
39
|
+
import CardHeader from '../../layout/card/card-header.svelte'
|
|
40
|
+
import CardTitle from '../../layout/card/card-title.svelte'
|
|
41
|
+
import CardList from '../../layout/card-list/card-list.svelte'
|
|
42
|
+
import ChecklistTaskRow from './checklist-task-row.svelte'
|
|
43
|
+
|
|
44
|
+
let { groups, expandedId, onExpandedChange, class: className, ...rest }: ChecklistProps = $props()
|
|
45
|
+
|
|
46
|
+
const bound = (percent: number) => Math.min(100, Math.max(0, percent))
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<div data-slot="checklist" class={cn('flex flex-col gap-4', className)} {...rest}>
|
|
50
|
+
{#each groups as group (group.key)}
|
|
51
|
+
{@const percent = bound(group.percent)}
|
|
52
|
+
{@const shown = Math.round(percent)}
|
|
53
|
+
<Card>
|
|
54
|
+
<CardHeader class="gap-3">
|
|
55
|
+
<CardTitle class="justify-between">
|
|
56
|
+
<span title={group.label} class="min-w-0 truncate">{group.label}</span>
|
|
57
|
+
<span class="text-muted-foreground shrink-0 text-sm font-normal tabular-nums"
|
|
58
|
+
>{shown}%</span
|
|
59
|
+
>
|
|
60
|
+
</CardTitle>
|
|
61
|
+
<!-- The name carries the share as well as the group: the bar is the
|
|
62
|
+
sighted reading, the name the whole reading for everyone else. -->
|
|
63
|
+
<Progress value={percent} aria-label="{group.label}: {shown}% complete" />
|
|
64
|
+
</CardHeader>
|
|
65
|
+
{#if group.tasks.length > 0}
|
|
66
|
+
<CardContent>
|
|
67
|
+
<!-- compact: every row is one line until a reader opens it. -->
|
|
68
|
+
<!-- biome-ignore lint/a11y/useSemanticElements: CardList is a div, so full-bleed rules can cancel the card padding; a ul or li there would take the rules off the edges, and role list/listitem is the ARIA equivalent -->
|
|
69
|
+
<CardList compact role="list">
|
|
70
|
+
{#each group.tasks as task (task.id)}
|
|
71
|
+
<ChecklistTaskRow {task} open={task.id === expandedId} {onExpandedChange} />
|
|
72
|
+
{/each}
|
|
73
|
+
</CardList>
|
|
74
|
+
</CardContent>
|
|
75
|
+
{/if}
|
|
76
|
+
</Card>
|
|
77
|
+
{/each}
|
|
78
|
+
</div>
|