@jovertical/mise-design-system 0.0.0-stage → 1.0.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 +107 -2
- package/bin/mise-theme.js +9 -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 +37 -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/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 +122 -3
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `quantity-input.tsx`
|
|
3
|
+
Diverged: the amount is NumberInputField (`format="decimal"`), the field
|
|
4
|
+
NumberInput is built on, for React's bare DecimalInput (round 6 plan,
|
|
5
|
+
R6-4). `unit` and `quantity` are bindable, with `onUnitChange` and
|
|
6
|
+
`onQuantityChange` kept; React's `onBlur` is `onQuantityBlur`, since it
|
|
7
|
+
fires for the amount alone. `quantityStep` and `quantityMin` are numbers
|
|
8
|
+
(React kept strings so no existing caller changed). `menuFooter` is a
|
|
9
|
+
snippet handed `closeMenu`. The unit-first trigger shows bits-ui's
|
|
10
|
+
SelectValue, which needs `items`, passed from `units`. Its addon drops the
|
|
11
|
+
stock `pl-3`, so the trigger paints its fill out to the group's edge, as
|
|
12
|
+
the comment on it says, rather than an inset pill inside the padding.
|
|
13
|
+
-->
|
|
14
|
+
<script lang="ts" module>
|
|
15
|
+
import type { Snippet } from 'svelte'
|
|
16
|
+
import type { HTMLAttributes } from 'svelte/elements'
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* One unit a quantity can be expressed in.
|
|
20
|
+
*
|
|
21
|
+
* `label` names it, `short` is how it is written beside a number. Both are
|
|
22
|
+
* needed because they answer different questions: choosing from a list
|
|
23
|
+
* wants "Milliliter (ml)", the name disambiguated, and reading one back
|
|
24
|
+
* wants "15 ml". `short` falls back to `value`, which is already the short
|
|
25
|
+
* form for most unit sets.
|
|
26
|
+
*/
|
|
27
|
+
export type QuantityUnit = {
|
|
28
|
+
value: string
|
|
29
|
+
label: string
|
|
30
|
+
short?: string
|
|
31
|
+
/** A heading the unit is listed under: "Mass", "Volume". First-seen order. */
|
|
32
|
+
group?: string
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* `unit-first` puts the more considered decision first, which is what a
|
|
37
|
+
* stock movement wants: the unit governs what the number even means.
|
|
38
|
+
* `quantity-first` is for everywhere the amount is the thing being revised
|
|
39
|
+
* (a recipe line, a conversion), where "1250 g" is how the amount is written.
|
|
40
|
+
*/
|
|
41
|
+
export type QuantityInputLayout = 'unit-first' | 'quantity-first'
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* An amount and the unit it is measured in, as one control.
|
|
45
|
+
*
|
|
46
|
+
* Two fields fused rather than two beside each other, because they are one
|
|
47
|
+
* answer: a number without its unit is not a quantity, and a form that can
|
|
48
|
+
* submit one without the other has a state nobody meant.
|
|
49
|
+
*/
|
|
50
|
+
export type QuantityInputProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
|
|
51
|
+
/**
|
|
52
|
+
* The units on offer. A prop rather than a constant: a measurement enum is
|
|
53
|
+
* domain, and a package that shipped one would ship an application's
|
|
54
|
+
* contract.
|
|
55
|
+
*/
|
|
56
|
+
units: readonly QuantityUnit[]
|
|
57
|
+
layout?: QuantityInputLayout
|
|
58
|
+
unit?: string
|
|
59
|
+
quantity?: number | null
|
|
60
|
+
onUnitChange?: (unit: string) => void
|
|
61
|
+
onQuantityChange?: (quantity: number | null) => void
|
|
62
|
+
/**
|
|
63
|
+
* When the amount loses focus, for a caller that writes on commit rather
|
|
64
|
+
* than on keystroke: "2" on the way to "25" is not an amount anybody meant.
|
|
65
|
+
*/
|
|
66
|
+
onQuantityBlur?: () => void
|
|
67
|
+
/**
|
|
68
|
+
* A muted note beside a group's heading, keyed by the group's name: "needs
|
|
69
|
+
* density" beside volume units for an item weighed by the gram. The units
|
|
70
|
+
* stay pickable.
|
|
71
|
+
*/
|
|
72
|
+
groupHints?: Readonly<Record<string, string>>
|
|
73
|
+
/**
|
|
74
|
+
* Something below the units in the open menu: a fact and an action, such
|
|
75
|
+
* as "Density 0.92 g per ml · Edit". Handed `closeMenu`, because an action
|
|
76
|
+
* there usually opens something else, and the menu has to go first.
|
|
77
|
+
*/
|
|
78
|
+
menuFooter?: Snippet<[() => void]>
|
|
79
|
+
unitPlaceholder?: string
|
|
80
|
+
quantityPlaceholder?: string
|
|
81
|
+
/** How far ↑ and ↓ move the amount. */
|
|
82
|
+
quantityStep?: number
|
|
83
|
+
quantityMin?: number
|
|
84
|
+
/** The most decimal places the amount takes: `0` for a counted unit. No limit when absent. */
|
|
85
|
+
quantityPrecision?: number
|
|
86
|
+
/** Matches `Input`'s own scale. `sm` for a control inside a list row. */
|
|
87
|
+
size?: 'sm' | 'md'
|
|
88
|
+
disabled?: boolean
|
|
89
|
+
}
|
|
90
|
+
</script>
|
|
91
|
+
|
|
92
|
+
<script lang="ts">
|
|
93
|
+
import { cn } from '../../../utils/cn.js'
|
|
94
|
+
import InputGroup from '../input-group/input-group.svelte'
|
|
95
|
+
import InputGroupAddon from '../input-group/input-group-addon.svelte'
|
|
96
|
+
import NumberInputField from '../number-input/number-input-field.svelte'
|
|
97
|
+
import Select from '../select/select.svelte'
|
|
98
|
+
import SelectContent from '../select/select-content.svelte'
|
|
99
|
+
import SelectGroup from '../select/select-group.svelte'
|
|
100
|
+
import SelectItem from '../select/select-item.svelte'
|
|
101
|
+
import SelectLabel from '../select/select-label.svelte'
|
|
102
|
+
import SelectSeparator from '../select/select-separator.svelte'
|
|
103
|
+
import SelectTrigger from '../select/select-trigger.svelte'
|
|
104
|
+
import SelectValue from '../select/select-value.svelte'
|
|
105
|
+
|
|
106
|
+
let {
|
|
107
|
+
units,
|
|
108
|
+
layout = 'unit-first',
|
|
109
|
+
unit = $bindable(''),
|
|
110
|
+
quantity = $bindable(null),
|
|
111
|
+
onUnitChange,
|
|
112
|
+
onQuantityChange,
|
|
113
|
+
onQuantityBlur,
|
|
114
|
+
groupHints,
|
|
115
|
+
menuFooter,
|
|
116
|
+
unitPlaceholder = 'Unit',
|
|
117
|
+
quantityPlaceholder = '1',
|
|
118
|
+
quantityStep = 0.01,
|
|
119
|
+
quantityMin = 0,
|
|
120
|
+
quantityPrecision,
|
|
121
|
+
size = 'md',
|
|
122
|
+
disabled = false,
|
|
123
|
+
class: className,
|
|
124
|
+
...rest
|
|
125
|
+
}: QuantityInputProps = $props()
|
|
126
|
+
|
|
127
|
+
// Held here so the footer can close the menu before whatever it opens takes
|
|
128
|
+
// the screen.
|
|
129
|
+
let menuOpen = $state(false)
|
|
130
|
+
const closeMenu = () => {
|
|
131
|
+
menuOpen = false
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
const items = $derived(units.map(({ value, label }) => ({ value, label })))
|
|
135
|
+
const shortLabel = $derived(units.find((candidate) => candidate.value === unit)?.short ?? unit)
|
|
136
|
+
const isGrouped = $derived(units.some((candidate) => candidate.group !== undefined))
|
|
137
|
+
// Grouped in first-seen order rather than sorted, so the consumer, who knows
|
|
138
|
+
// which kind of measure an item is counted in, puts that one first.
|
|
139
|
+
const groupNames = $derived([...new Set(units.map((candidate) => candidate.group ?? ''))])
|
|
140
|
+
</script>
|
|
141
|
+
|
|
142
|
+
{#snippet option(candidate: QuantityUnit)}
|
|
143
|
+
<SelectItem value={candidate.value} label={candidate.label} />
|
|
144
|
+
{/snippet}
|
|
145
|
+
|
|
146
|
+
{#snippet unitOptions()}
|
|
147
|
+
{#if isGrouped}
|
|
148
|
+
{#each groupNames as groupName, index (groupName || 'ungrouped')}
|
|
149
|
+
<SelectGroup>
|
|
150
|
+
{#if index > 0}
|
|
151
|
+
<SelectSeparator />
|
|
152
|
+
{/if}
|
|
153
|
+
{#if groupName}
|
|
154
|
+
<SelectLabel
|
|
155
|
+
class="flex items-center justify-between gap-3 font-medium uppercase tracking-wide"
|
|
156
|
+
>
|
|
157
|
+
{groupName}
|
|
158
|
+
{#if groupHints?.[groupName]}
|
|
159
|
+
<span class="font-normal normal-case tracking-normal">{groupHints[groupName]}</span>
|
|
160
|
+
{/if}
|
|
161
|
+
</SelectLabel>
|
|
162
|
+
{/if}
|
|
163
|
+
{#each units.filter(
|
|
164
|
+
(candidate) => (candidate.group ?? '') === groupName,
|
|
165
|
+
) as candidate (candidate.value)}
|
|
166
|
+
{@render option(candidate)}
|
|
167
|
+
{/each}
|
|
168
|
+
</SelectGroup>
|
|
169
|
+
{/each}
|
|
170
|
+
{:else}
|
|
171
|
+
{#each units as candidate (candidate.value)}
|
|
172
|
+
{@render option(candidate)}
|
|
173
|
+
{/each}
|
|
174
|
+
{/if}
|
|
175
|
+
{#if menuFooter}
|
|
176
|
+
<div
|
|
177
|
+
data-slot="quantity-input-menu-footer"
|
|
178
|
+
class="text-muted-foreground mt-1 flex items-center justify-between gap-3 border-t px-2 pt-2 pb-1 text-xs"
|
|
179
|
+
>
|
|
180
|
+
{@render menuFooter(closeMenu)}
|
|
181
|
+
</div>
|
|
182
|
+
{/if}
|
|
183
|
+
{/snippet}
|
|
184
|
+
|
|
185
|
+
{#snippet quantityField()}
|
|
186
|
+
<NumberInputField
|
|
187
|
+
format="decimal"
|
|
188
|
+
class="flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent"
|
|
189
|
+
step={quantityStep > 0 ? quantityStep : 1}
|
|
190
|
+
min={quantityMin}
|
|
191
|
+
precision={quantityPrecision}
|
|
192
|
+
placeholder={quantityPlaceholder}
|
|
193
|
+
bind:value={quantity}
|
|
194
|
+
onValueChange={onQuantityChange}
|
|
195
|
+
onblur={() => onQuantityBlur?.()}
|
|
196
|
+
{disabled}
|
|
197
|
+
/>
|
|
198
|
+
{/snippet}
|
|
199
|
+
|
|
200
|
+
<InputGroup
|
|
201
|
+
data-slot="quantity-input"
|
|
202
|
+
data-layout={layout}
|
|
203
|
+
class={cn(size === 'sm' && 'h-8', className)}
|
|
204
|
+
{...rest}
|
|
205
|
+
>
|
|
206
|
+
{#if layout === 'quantity-first'}
|
|
207
|
+
{@render quantityField()}
|
|
208
|
+
|
|
209
|
+
<!-- A direct child of the group rather than an InputGroupAddon. The addon
|
|
210
|
+
is built for something decorating a field, so it carries padding, a
|
|
211
|
+
negative margin around a button and a click that forwards to the
|
|
212
|
+
input: right for a decoration, wrong for a control that is half the
|
|
213
|
+
field. -->
|
|
214
|
+
<Select
|
|
215
|
+
type="single"
|
|
216
|
+
bind:value={unit}
|
|
217
|
+
bind:open={menuOpen}
|
|
218
|
+
onValueChange={onUnitChange}
|
|
219
|
+
{items}
|
|
220
|
+
{disabled}
|
|
221
|
+
>
|
|
222
|
+
<SelectTrigger
|
|
223
|
+
{size}
|
|
224
|
+
class="w-24 shrink-0 justify-between rounded-l-none rounded-r-2xl border-0 border-l border-l-input bg-input/40 px-3 text-foreground shadow-none! hover:bg-input/60 focus-visible:ring-0"
|
|
225
|
+
>
|
|
226
|
+
<!-- The short form beside the number; the open menu keeps the full
|
|
227
|
+
label, because choosing a unit is the one moment its name matters. -->
|
|
228
|
+
{#if unit}
|
|
229
|
+
<span data-slot="select-value">{shortLabel}</span>
|
|
230
|
+
{:else}
|
|
231
|
+
<SelectValue placeholder={unitPlaceholder} />
|
|
232
|
+
{/if}
|
|
233
|
+
</SelectTrigger>
|
|
234
|
+
<SelectContent>{@render unitOptions()}</SelectContent>
|
|
235
|
+
</Select>
|
|
236
|
+
{:else}
|
|
237
|
+
<InputGroupAddon
|
|
238
|
+
align="inline-start"
|
|
239
|
+
class="w-2/3 justify-start overflow-hidden border-r py-0 pl-0"
|
|
240
|
+
>
|
|
241
|
+
<Select
|
|
242
|
+
type="single"
|
|
243
|
+
bind:value={unit}
|
|
244
|
+
bind:open={menuOpen}
|
|
245
|
+
onValueChange={onUnitChange}
|
|
246
|
+
{items}
|
|
247
|
+
{disabled}
|
|
248
|
+
>
|
|
249
|
+
<!-- The trigger carries the group's radius on the edge it sits against,
|
|
250
|
+
because it paints the fill out to that edge. -->
|
|
251
|
+
<SelectTrigger
|
|
252
|
+
class="h-full w-full truncate rounded-l-2xl rounded-r-none border-0 text-left text-foreground shadow-none! focus:ring-0!"
|
|
253
|
+
>
|
|
254
|
+
<SelectValue placeholder={unitPlaceholder} />
|
|
255
|
+
</SelectTrigger>
|
|
256
|
+
<SelectContent>{@render unitOptions()}</SelectContent>
|
|
257
|
+
</Select>
|
|
258
|
+
</InputGroupAddon>
|
|
259
|
+
|
|
260
|
+
{@render quantityField()}
|
|
261
|
+
{/if}
|
|
262
|
+
</InputGroup>
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
3
|
+
/**
|
|
4
|
+
* One unit a quantity can be expressed in.
|
|
5
|
+
*
|
|
6
|
+
* `label` names it, `short` is how it is written beside a number. Both are
|
|
7
|
+
* needed because they answer different questions: choosing from a list
|
|
8
|
+
* wants "Milliliter (ml)", the name disambiguated, and reading one back
|
|
9
|
+
* wants "15 ml". `short` falls back to `value`, which is already the short
|
|
10
|
+
* form for most unit sets.
|
|
11
|
+
*/
|
|
12
|
+
export type QuantityUnit = {
|
|
13
|
+
value: string;
|
|
14
|
+
label: string;
|
|
15
|
+
short?: string;
|
|
16
|
+
/** A heading the unit is listed under: "Mass", "Volume". First-seen order. */
|
|
17
|
+
group?: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* `unit-first` puts the more considered decision first, which is what a
|
|
21
|
+
* stock movement wants: the unit governs what the number even means.
|
|
22
|
+
* `quantity-first` is for everywhere the amount is the thing being revised
|
|
23
|
+
* (a recipe line, a conversion), where "1250 g" is how the amount is written.
|
|
24
|
+
*/
|
|
25
|
+
export type QuantityInputLayout = 'unit-first' | 'quantity-first';
|
|
26
|
+
/**
|
|
27
|
+
* An amount and the unit it is measured in, as one control.
|
|
28
|
+
*
|
|
29
|
+
* Two fields fused rather than two beside each other, because they are one
|
|
30
|
+
* answer: a number without its unit is not a quantity, and a form that can
|
|
31
|
+
* submit one without the other has a state nobody meant.
|
|
32
|
+
*/
|
|
33
|
+
export type QuantityInputProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
|
|
34
|
+
/**
|
|
35
|
+
* The units on offer. A prop rather than a constant: a measurement enum is
|
|
36
|
+
* domain, and a package that shipped one would ship an application's
|
|
37
|
+
* contract.
|
|
38
|
+
*/
|
|
39
|
+
units: readonly QuantityUnit[];
|
|
40
|
+
layout?: QuantityInputLayout;
|
|
41
|
+
unit?: string;
|
|
42
|
+
quantity?: number | null;
|
|
43
|
+
onUnitChange?: (unit: string) => void;
|
|
44
|
+
onQuantityChange?: (quantity: number | null) => void;
|
|
45
|
+
/**
|
|
46
|
+
* When the amount loses focus, for a caller that writes on commit rather
|
|
47
|
+
* than on keystroke: "2" on the way to "25" is not an amount anybody meant.
|
|
48
|
+
*/
|
|
49
|
+
onQuantityBlur?: () => void;
|
|
50
|
+
/**
|
|
51
|
+
* A muted note beside a group's heading, keyed by the group's name: "needs
|
|
52
|
+
* density" beside volume units for an item weighed by the gram. The units
|
|
53
|
+
* stay pickable.
|
|
54
|
+
*/
|
|
55
|
+
groupHints?: Readonly<Record<string, string>>;
|
|
56
|
+
/**
|
|
57
|
+
* Something below the units in the open menu: a fact and an action, such
|
|
58
|
+
* as "Density 0.92 g per ml · Edit". Handed `closeMenu`, because an action
|
|
59
|
+
* there usually opens something else, and the menu has to go first.
|
|
60
|
+
*/
|
|
61
|
+
menuFooter?: Snippet<[() => void]>;
|
|
62
|
+
unitPlaceholder?: string;
|
|
63
|
+
quantityPlaceholder?: string;
|
|
64
|
+
/** How far ↑ and ↓ move the amount. */
|
|
65
|
+
quantityStep?: number;
|
|
66
|
+
quantityMin?: number;
|
|
67
|
+
/** The most decimal places the amount takes: `0` for a counted unit. No limit when absent. */
|
|
68
|
+
quantityPrecision?: number;
|
|
69
|
+
/** Matches `Input`'s own scale. `sm` for a control inside a list row. */
|
|
70
|
+
size?: 'sm' | 'md';
|
|
71
|
+
disabled?: boolean;
|
|
72
|
+
};
|
|
73
|
+
declare const QuantityInput: import("svelte").Component<QuantityInputProps, {}, "unit" | "quantity">;
|
|
74
|
+
type QuantityInput = ReturnType<typeof QuantityInput>;
|
|
75
|
+
export default QuantityInput;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `radio-group.tsx` (`RadioGroupItem`), itself shadcn/ui new-york `radio-group`
|
|
3
|
+
Svelte: shadcn-svelte `radio-group`
|
|
4
|
+
Diverged: unaudited, as in the React package. The indicator is drawn from the
|
|
5
|
+
item's `checked` snippet argument rather than Radix's Indicator part.
|
|
6
|
+
-->
|
|
7
|
+
<script lang="ts" module>
|
|
8
|
+
import { RadioGroup as RadioGroupPrimitive } from 'bits-ui'
|
|
9
|
+
|
|
10
|
+
import type { WithoutChildrenOrChild } from '../../../utils/types.js'
|
|
11
|
+
|
|
12
|
+
export type RadioGroupItemProps = WithoutChildrenOrChild<RadioGroupPrimitive.ItemProps>
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<script lang="ts">
|
|
16
|
+
import CircleIcon from '@lucide/svelte/icons/circle'
|
|
17
|
+
|
|
18
|
+
import { cn } from '../../../utils/cn.js'
|
|
19
|
+
|
|
20
|
+
let { ref = $bindable(null), class: className, ...rest }: RadioGroupItemProps = $props()
|
|
21
|
+
</script>
|
|
22
|
+
|
|
23
|
+
<RadioGroupPrimitive.Item
|
|
24
|
+
bind:ref
|
|
25
|
+
data-slot="radio-group-item"
|
|
26
|
+
class={cn(
|
|
27
|
+
'border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',
|
|
28
|
+
className,
|
|
29
|
+
)}
|
|
30
|
+
{...rest}
|
|
31
|
+
>
|
|
32
|
+
{#snippet children({ checked })}
|
|
33
|
+
<div data-slot="radio-group-indicator" class="relative flex items-center justify-center">
|
|
34
|
+
{#if checked}
|
|
35
|
+
<CircleIcon
|
|
36
|
+
class="fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2"
|
|
37
|
+
/>
|
|
38
|
+
{/if}
|
|
39
|
+
</div>
|
|
40
|
+
{/snippet}
|
|
41
|
+
</RadioGroupPrimitive.Item>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RadioGroup as RadioGroupPrimitive } from 'bits-ui';
|
|
2
|
+
import type { WithoutChildrenOrChild } from '../../../utils/types.js';
|
|
3
|
+
export type RadioGroupItemProps = WithoutChildrenOrChild<RadioGroupPrimitive.ItemProps>;
|
|
4
|
+
declare const RadioGroupItem: import("svelte").Component<Omit<Omit<RadioGroupPrimitive.ItemProps, "child">, "children">, {}, "ref">;
|
|
5
|
+
type RadioGroupItem = ReturnType<typeof RadioGroupItem>;
|
|
6
|
+
export default RadioGroupItem;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `radio-group.tsx` (`RadioGroup`), itself shadcn/ui new-york `radio-group`
|
|
3
|
+
Svelte: shadcn-svelte `radio-group`
|
|
4
|
+
Diverged: unaudited, as in the React package. bits-ui RadioGroup for Radix,
|
|
5
|
+
with `bind:value`.
|
|
6
|
+
-->
|
|
7
|
+
<script lang="ts" module>
|
|
8
|
+
import { RadioGroup as RadioGroupPrimitive } from 'bits-ui'
|
|
9
|
+
|
|
10
|
+
export type RadioGroupProps = RadioGroupPrimitive.RootProps
|
|
11
|
+
</script>
|
|
12
|
+
|
|
13
|
+
<script lang="ts">
|
|
14
|
+
import { cn } from '../../../utils/cn.js'
|
|
15
|
+
|
|
16
|
+
let {
|
|
17
|
+
ref = $bindable(null),
|
|
18
|
+
value = $bindable(''),
|
|
19
|
+
class: className,
|
|
20
|
+
...rest
|
|
21
|
+
}: RadioGroupProps = $props()
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<RadioGroupPrimitive.Root
|
|
25
|
+
bind:ref
|
|
26
|
+
bind:value
|
|
27
|
+
data-slot="radio-group"
|
|
28
|
+
class={cn('grid gap-3', className)}
|
|
29
|
+
{...rest}
|
|
30
|
+
/>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RadioGroup as RadioGroupPrimitive } from 'bits-ui';
|
|
2
|
+
export type RadioGroupProps = RadioGroupPrimitive.RootProps;
|
|
3
|
+
declare const RadioGroup: import("svelte").Component<RadioGroupPrimitive.RootProps, {}, "ref" | "value">;
|
|
4
|
+
type RadioGroup = ReturnType<typeof RadioGroup>;
|
|
5
|
+
export default RadioGroup;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { default as Select, type SelectProps } from './select.svelte';
|
|
2
|
+
export { default as SelectContent, type SelectContentProps } from './select-content.svelte';
|
|
3
|
+
export { default as SelectGroup, type SelectGroupProps } from './select-group.svelte';
|
|
4
|
+
export { default as SelectItem, type SelectItemProps } from './select-item.svelte';
|
|
5
|
+
export { default as SelectLabel, type SelectLabelProps } from './select-label.svelte';
|
|
6
|
+
export { default as SelectScrollDownButton, type SelectScrollDownButtonProps, } from './select-scroll-down-button.svelte';
|
|
7
|
+
export { default as SelectScrollUpButton, type SelectScrollUpButtonProps, } from './select-scroll-up-button.svelte';
|
|
8
|
+
export { default as SelectSeparator, type SelectSeparatorProps } from './select-separator.svelte';
|
|
9
|
+
export { default as SelectTrigger, type SelectTriggerProps } from './select-trigger.svelte';
|
|
10
|
+
export { default as SelectValue, type SelectValueProps } from './select-value.svelte';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { default as Select } from './select.svelte';
|
|
2
|
+
export { default as SelectContent } from './select-content.svelte';
|
|
3
|
+
export { default as SelectGroup } from './select-group.svelte';
|
|
4
|
+
export { default as SelectItem } from './select-item.svelte';
|
|
5
|
+
export { default as SelectLabel } from './select-label.svelte';
|
|
6
|
+
export { default as SelectScrollDownButton, } from './select-scroll-down-button.svelte';
|
|
7
|
+
export { default as SelectScrollUpButton, } from './select-scroll-up-button.svelte';
|
|
8
|
+
export { default as SelectSeparator } from './select-separator.svelte';
|
|
9
|
+
export { default as SelectTrigger } from './select-trigger.svelte';
|
|
10
|
+
export { default as SelectValue } from './select-value.svelte';
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `select.tsx` (`SelectContent`), itself shadcn/ui new-york `select`
|
|
3
|
+
Svelte: shadcn-svelte `select`
|
|
4
|
+
Diverged: bits-ui positions the list as a popper only, so React's default
|
|
5
|
+
item-aligned mode is gone; `sideOffset` replaces the per-side translates,
|
|
6
|
+
and the size variables are bits-ui's.
|
|
7
|
+
-->
|
|
8
|
+
<script lang="ts" module>
|
|
9
|
+
import { Select as SelectPrimitive } from 'bits-ui'
|
|
10
|
+
|
|
11
|
+
import type { WithoutChild } from '../../../utils/types.js'
|
|
12
|
+
|
|
13
|
+
/** A ring rather than a border, matching every other floating surface. */
|
|
14
|
+
export type SelectContentProps = WithoutChild<SelectPrimitive.ContentProps> & {
|
|
15
|
+
portalProps?: SelectPrimitive.PortalProps
|
|
16
|
+
}
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<script lang="ts">
|
|
20
|
+
import { cn } from '../../../utils/cn.js'
|
|
21
|
+
import SelectScrollDownButton from './select-scroll-down-button.svelte'
|
|
22
|
+
import SelectScrollUpButton from './select-scroll-up-button.svelte'
|
|
23
|
+
|
|
24
|
+
let {
|
|
25
|
+
ref = $bindable(null),
|
|
26
|
+
sideOffset = 4,
|
|
27
|
+
portalProps,
|
|
28
|
+
class: className,
|
|
29
|
+
children,
|
|
30
|
+
...rest
|
|
31
|
+
}: SelectContentProps = $props()
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<SelectPrimitive.Portal {...portalProps}>
|
|
35
|
+
<SelectPrimitive.Content
|
|
36
|
+
bind:ref
|
|
37
|
+
{sideOffset}
|
|
38
|
+
data-slot="select-content"
|
|
39
|
+
class={cn(
|
|
40
|
+
'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--bits-select-content-available-height) min-w-[8rem] origin-(--bits-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-2xl shadow-lg ring-1 ring-foreground/5 dark:ring-foreground/10',
|
|
41
|
+
className,
|
|
42
|
+
)}
|
|
43
|
+
{...rest}
|
|
44
|
+
>
|
|
45
|
+
<SelectScrollUpButton />
|
|
46
|
+
<SelectPrimitive.Viewport
|
|
47
|
+
class="h-(--bits-select-anchor-height) w-full min-w-(--bits-select-anchor-width) scroll-my-1 p-1"
|
|
48
|
+
>
|
|
49
|
+
{@render children?.()}
|
|
50
|
+
</SelectPrimitive.Viewport>
|
|
51
|
+
<SelectScrollDownButton />
|
|
52
|
+
</SelectPrimitive.Content>
|
|
53
|
+
</SelectPrimitive.Portal>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Select as SelectPrimitive } from 'bits-ui';
|
|
2
|
+
import type { WithoutChild } from '../../../utils/types.js';
|
|
3
|
+
/** A ring rather than a border, matching every other floating surface. */
|
|
4
|
+
export type SelectContentProps = WithoutChild<SelectPrimitive.ContentProps> & {
|
|
5
|
+
portalProps?: SelectPrimitive.PortalProps;
|
|
6
|
+
};
|
|
7
|
+
declare const SelectContent: import("svelte").Component<SelectContentProps, {}, "ref">;
|
|
8
|
+
type SelectContent = ReturnType<typeof SelectContent>;
|
|
9
|
+
export default SelectContent;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `select.tsx` (`SelectGroup`), itself shadcn/ui new-york `select`
|
|
3
|
+
Svelte: shadcn-svelte `select`
|
|
4
|
+
Diverged: none beyond the port.
|
|
5
|
+
-->
|
|
6
|
+
<script lang="ts" module>
|
|
7
|
+
import { Select as SelectPrimitive } from 'bits-ui'
|
|
8
|
+
|
|
9
|
+
export type SelectGroupProps = SelectPrimitive.GroupProps
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<script lang="ts">
|
|
13
|
+
let { ref = $bindable(null), ...rest }: SelectGroupProps = $props()
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<SelectPrimitive.Group bind:ref data-slot="select-group" {...rest} />
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Select as SelectPrimitive } from 'bits-ui';
|
|
2
|
+
export type SelectGroupProps = SelectPrimitive.GroupProps;
|
|
3
|
+
declare const SelectGroup: import("svelte").Component<SelectPrimitive.GroupProps, {}, "ref">;
|
|
4
|
+
type SelectGroup = ReturnType<typeof SelectGroup>;
|
|
5
|
+
export default SelectGroup;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `select.tsx` (`SelectItem`), itself shadcn/ui new-york `select`
|
|
3
|
+
Svelte: shadcn-svelte `select`
|
|
4
|
+
Diverged: bits-ui reads the trigger text from `label`, so an item names
|
|
5
|
+
itself with `label`; children are optional and render in its place.
|
|
6
|
+
bits-ui marks the active row `data-highlighted` rather than focusing it, so
|
|
7
|
+
the `focus:` pair is mirrored on `data-[highlighted]`.
|
|
8
|
+
-->
|
|
9
|
+
<script lang="ts" module>
|
|
10
|
+
import { Select as SelectPrimitive } from 'bits-ui'
|
|
11
|
+
import type { Snippet } from 'svelte'
|
|
12
|
+
|
|
13
|
+
import type { WithoutChild } from '../../../utils/types.js'
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* `focus:bg-muted` rather than `--accent`, which is a nav tint and never a
|
|
17
|
+
* hover.
|
|
18
|
+
*/
|
|
19
|
+
export type SelectItemProps = Omit<WithoutChild<SelectPrimitive.ItemProps>, 'children'> & {
|
|
20
|
+
children?: Snippet
|
|
21
|
+
}
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<script lang="ts">
|
|
25
|
+
import CheckIcon from '@lucide/svelte/icons/check'
|
|
26
|
+
|
|
27
|
+
import { cn } from '../../../utils/cn.js'
|
|
28
|
+
|
|
29
|
+
let {
|
|
30
|
+
ref = $bindable(null),
|
|
31
|
+
value,
|
|
32
|
+
label,
|
|
33
|
+
class: className,
|
|
34
|
+
children: content,
|
|
35
|
+
...rest
|
|
36
|
+
}: SelectItemProps = $props()
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<SelectPrimitive.Item
|
|
40
|
+
bind:ref
|
|
41
|
+
{value}
|
|
42
|
+
{label}
|
|
43
|
+
data-slot="select-item"
|
|
44
|
+
class={cn(
|
|
45
|
+
"focus:bg-muted focus:text-foreground data-[highlighted]:bg-muted data-[highlighted]:text-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center min-h-7 gap-2 rounded-xl in-data-[slot=dialog-content]:rounded-2xl py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
46
|
+
className,
|
|
47
|
+
)}
|
|
48
|
+
{...rest}
|
|
49
|
+
>
|
|
50
|
+
{#snippet children({ selected })}
|
|
51
|
+
<span
|
|
52
|
+
data-slot="select-item-indicator"
|
|
53
|
+
class="absolute right-2 flex size-3.5 items-center justify-center"
|
|
54
|
+
>
|
|
55
|
+
{#if selected}
|
|
56
|
+
<CheckIcon class="size-4" />
|
|
57
|
+
{/if}
|
|
58
|
+
</span>
|
|
59
|
+
<span>
|
|
60
|
+
{#if content}
|
|
61
|
+
{@render content()}
|
|
62
|
+
{:else}
|
|
63
|
+
{label ?? value}
|
|
64
|
+
{/if}
|
|
65
|
+
</span>
|
|
66
|
+
{/snippet}
|
|
67
|
+
</SelectPrimitive.Item>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Select as SelectPrimitive } from 'bits-ui';
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import type { WithoutChild } from '../../../utils/types.js';
|
|
4
|
+
/**
|
|
5
|
+
* `focus:bg-muted` rather than `--accent`, which is a nav tint and never a
|
|
6
|
+
* hover.
|
|
7
|
+
*/
|
|
8
|
+
export type SelectItemProps = Omit<WithoutChild<SelectPrimitive.ItemProps>, 'children'> & {
|
|
9
|
+
children?: Snippet;
|
|
10
|
+
};
|
|
11
|
+
declare const SelectItem: import("svelte").Component<SelectItemProps, {}, "ref">;
|
|
12
|
+
type SelectItem = ReturnType<typeof SelectItem>;
|
|
13
|
+
export default SelectItem;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Origin: the React package 2.23.0 `select.tsx` (`SelectLabel`), itself shadcn/ui new-york `select`
|
|
3
|
+
Svelte: shadcn-svelte `select`
|
|
4
|
+
Diverged: bits-ui names this part GroupHeading; it keeps React's name and classes.
|
|
5
|
+
-->
|
|
6
|
+
<script lang="ts" module>
|
|
7
|
+
import { Select as SelectPrimitive } from 'bits-ui'
|
|
8
|
+
|
|
9
|
+
export type SelectLabelProps = SelectPrimitive.GroupHeadingProps
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<script lang="ts">
|
|
13
|
+
import { cn } from '../../../utils/cn.js'
|
|
14
|
+
|
|
15
|
+
let { ref = $bindable(null), class: className, ...rest }: SelectLabelProps = $props()
|
|
16
|
+
</script>
|
|
17
|
+
|
|
18
|
+
<SelectPrimitive.GroupHeading
|
|
19
|
+
bind:ref
|
|
20
|
+
data-slot="select-label"
|
|
21
|
+
class={cn('text-muted-foreground px-2 py-1.5 text-xs', className)}
|
|
22
|
+
{...rest}
|
|
23
|
+
/>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Select as SelectPrimitive } from 'bits-ui';
|
|
2
|
+
export type SelectLabelProps = SelectPrimitive.GroupHeadingProps;
|
|
3
|
+
declare const SelectLabel: import("svelte").Component<SelectPrimitive.GroupHeadingProps, {}, "ref">;
|
|
4
|
+
type SelectLabel = ReturnType<typeof SelectLabel>;
|
|
5
|
+
export default SelectLabel;
|