sveltacular 0.0.77 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -15
- package/dist/forms/base-input-wrapper.svelte +99 -0
- package/dist/forms/base-input-wrapper.svelte.d.ts +15 -0
- package/dist/forms/bool-box/bool-box.svelte +30 -16
- package/dist/forms/bool-box/bool-box.svelte.d.ts +9 -23
- package/dist/forms/button/button.svelte +153 -89
- package/dist/forms/button/button.svelte.d.ts +25 -31
- package/dist/forms/check-box/check-box-group.svelte +69 -31
- package/dist/forms/check-box/check-box-group.svelte.d.ts +11 -29
- package/dist/forms/check-box/check-box.svelte +57 -33
- package/dist/forms/check-box/check-box.svelte.d.ts +15 -27
- package/dist/forms/check-box/index.d.ts +2 -0
- package/dist/forms/check-box/index.js +2 -0
- package/dist/forms/combo/new-or-existing-combo.svelte +37 -18
- package/dist/forms/combo/new-or-existing-combo.svelte.d.ts +15 -27
- package/dist/forms/combo-box/combo-box.svelte +643 -0
- package/dist/forms/combo-box/combo-box.svelte.d.ts +42 -0
- package/dist/forms/combo-box/index.d.ts +1 -0
- package/dist/forms/combo-box/index.js +1 -0
- package/dist/forms/date-box/date-box.svelte +82 -53
- package/dist/forms/date-box/date-box.svelte.d.ts +21 -34
- package/dist/forms/file-area/file-area.svelte +109 -57
- package/dist/forms/file-area/file-area.svelte.d.ts +12 -24
- package/dist/forms/file-box/file-box.svelte +38 -23
- package/dist/forms/file-box/file-box.svelte.d.ts +14 -27
- package/dist/forms/form-field.svelte +76 -13
- package/dist/forms/form-field.svelte.d.ts +15 -20
- package/dist/forms/form-footer.svelte +6 -3
- package/dist/forms/form-footer.svelte.d.ts +6 -28
- package/dist/forms/form-header.svelte +15 -4
- package/dist/forms/form-header.svelte.d.ts +8 -20
- package/dist/forms/form-label.svelte +15 -6
- package/dist/forms/form-label.svelte.d.ts +8 -21
- package/dist/forms/form-row.svelte +29 -0
- package/dist/forms/form-row.svelte.d.ts +7 -0
- package/dist/forms/form-section.svelte +15 -4
- package/dist/forms/form-section.svelte.d.ts +8 -20
- package/dist/forms/form.svelte +36 -13
- package/dist/forms/form.svelte.d.ts +11 -24
- package/dist/forms/index.d.ts +26 -0
- package/dist/forms/index.js +31 -0
- package/dist/forms/info-box/info-box.svelte +17 -10
- package/dist/forms/info-box/info-box.svelte.d.ts +8 -21
- package/dist/forms/list-box/index.d.ts +2 -0
- package/dist/forms/list-box/index.js +1 -0
- package/dist/forms/list-box/list-box.svelte +188 -111
- package/dist/forms/list-box/list-box.svelte.d.ts +16 -28
- package/dist/forms/money-box/money-box.svelte +224 -178
- package/dist/forms/money-box/money-box.svelte.d.ts +16 -30
- package/dist/forms/number-box/number-box.svelte +82 -62
- package/dist/forms/number-box/number-box.svelte.d.ts +17 -30
- package/dist/forms/phone-box/index.d.ts +1 -0
- package/dist/forms/phone-box/index.js +1 -0
- package/dist/forms/phone-box/phone-box.svelte +156 -116
- package/dist/forms/phone-box/phone-box.svelte.d.ts +8 -22
- package/dist/forms/radio-group/index.d.ts +2 -0
- package/dist/forms/radio-group/index.js +2 -0
- package/dist/forms/radio-group/radio-box.svelte +23 -8
- package/dist/forms/radio-group/radio-box.svelte.d.ts +10 -21
- package/dist/forms/radio-group/radio-group.svelte +25 -15
- package/dist/forms/radio-group/radio-group.svelte.d.ts +10 -23
- package/dist/forms/slider/slider.svelte +206 -0
- package/dist/forms/slider/slider.svelte.d.ts +17 -0
- package/dist/forms/switch-box/switch-box.svelte +35 -21
- package/dist/forms/switch-box/switch-box.svelte.d.ts +9 -22
- package/dist/forms/text-area/text-area.svelte +94 -17
- package/dist/forms/text-area/text-area.svelte.d.ts +15 -25
- package/dist/forms/text-box/text-box.svelte +244 -79
- package/dist/forms/text-box/text-box.svelte.d.ts +28 -38
- package/dist/forms/time-box/time-box.svelte +63 -0
- package/dist/forms/time-box/time-box.svelte.d.ts +12 -0
- package/dist/forms/url-box/url-box.svelte +32 -18
- package/dist/forms/url-box/url-box.svelte.d.ts +9 -22
- package/dist/forms/validation.d.ts +60 -0
- package/dist/forms/validation.js +123 -0
- package/dist/generic/address/address.svelte +22 -11
- package/dist/generic/address/address.svelte.d.ts +9 -21
- package/dist/generic/avatar/avatar.svelte +87 -0
- package/dist/generic/avatar/avatar.svelte.d.ts +10 -0
- package/dist/generic/badge/badge.svelte +82 -0
- package/dist/generic/badge/badge.svelte.d.ts +11 -0
- package/dist/generic/card/card-container.svelte +41 -12
- package/dist/generic/card/card-container.svelte.d.ts +8 -20
- package/dist/generic/card/card.svelte +47 -27
- package/dist/generic/card/card.svelte.d.ts +9 -21
- package/dist/generic/card/index.d.ts +3 -0
- package/dist/generic/card/index.js +2 -0
- package/dist/generic/chip/chip.svelte +91 -0
- package/dist/generic/chip/chip.svelte.d.ts +11 -0
- package/dist/generic/date/date-time.svelte +86 -58
- package/dist/generic/date/date-time.svelte.d.ts +10 -22
- package/dist/generic/divider/divider.svelte.d.ts +22 -21
- package/dist/generic/dot/dot.svelte +13 -4
- package/dist/generic/dot/dot.svelte.d.ts +7 -19
- package/dist/generic/dropdown-item/dropdown-item.svelte +24 -12
- package/dist/generic/dropdown-item/dropdown-item.svelte.d.ts +10 -23
- package/dist/generic/email/email.svelte +6 -4
- package/dist/generic/email/email.svelte.d.ts +5 -17
- package/dist/generic/empty/empty.svelte +57 -26
- package/dist/generic/empty/empty.svelte.d.ts +11 -23
- package/dist/generic/header/header.svelte +26 -10
- package/dist/generic/header/header.svelte.d.ts +10 -22
- package/dist/generic/index.d.ts +28 -0
- package/dist/generic/index.js +31 -0
- package/dist/generic/link/link.svelte +20 -7
- package/dist/generic/link/link.svelte.d.ts +11 -23
- package/dist/generic/list/index.d.ts +4 -0
- package/dist/generic/list/index.js +3 -0
- package/dist/generic/list/list-item.svelte +17 -13
- package/dist/generic/list/list-item.svelte.d.ts +6 -17
- package/dist/generic/list/list.d.ts +2 -2
- package/dist/generic/list/list.svelte +28 -15
- package/dist/generic/list/list.svelte.d.ts +9 -21
- package/dist/generic/menu/menu.svelte +163 -54
- package/dist/generic/menu/menu.svelte.d.ts +16 -26
- package/dist/generic/notice/notice.svelte +119 -80
- package/dist/generic/notice/notice.svelte.d.ts +17 -28
- package/dist/generic/overlay.svelte +40 -14
- package/dist/generic/overlay.svelte.d.ts +9 -21
- package/dist/generic/panel/panel.svelte +16 -6
- package/dist/generic/panel/panel.svelte.d.ts +8 -20
- package/dist/generic/phone/phone.svelte +30 -20
- package/dist/generic/phone/phone.svelte.d.ts +6 -18
- package/dist/generic/pill/pill.svelte +47 -33
- package/dist/generic/pill/pill.svelte.d.ts +10 -23
- package/dist/generic/popover/popover.svelte +226 -0
- package/dist/generic/popover/popover.svelte.d.ts +15 -0
- package/dist/generic/rating/rating.svelte +85 -0
- package/dist/generic/rating/rating.svelte.d.ts +11 -0
- package/dist/generic/scorecard/scorecard.svelte +34 -18
- package/dist/generic/scorecard/scorecard.svelte.d.ts +9 -21
- package/dist/generic/section/section.svelte +28 -9
- package/dist/generic/section/section.svelte.d.ts +11 -23
- package/dist/generic/spinner/spinner.svelte +64 -0
- package/dist/generic/spinner/spinner.svelte.d.ts +8 -0
- package/dist/generic/theme-provider/index.d.ts +1 -0
- package/dist/generic/theme-provider/index.js +1 -0
- package/dist/generic/theme-provider/theme-provider-demo.svelte +182 -0
- package/dist/generic/theme-provider/theme-provider-demo.svelte.d.ts +3 -0
- package/dist/generic/theme-provider/theme-provider.svelte +83 -0
- package/dist/generic/theme-provider/theme-provider.svelte.d.ts +44 -0
- package/dist/generic/toaster/toaster.svelte +31 -6
- package/dist/generic/toaster/toaster.svelte.d.ts +7 -17
- package/dist/generic/tooltip/tooltip.svelte +389 -0
- package/dist/generic/tooltip/tooltip.svelte.d.ts +21 -0
- package/dist/helpers/ago.d.ts +6 -0
- package/dist/helpers/ago.js +6 -0
- package/dist/helpers/animation-actions.d.ts +124 -0
- package/dist/helpers/animation-actions.js +299 -0
- package/dist/helpers/animations.d.ts +198 -0
- package/dist/helpers/animations.js +280 -0
- package/dist/helpers/announcer.d.ts +118 -0
- package/dist/helpers/announcer.js +250 -0
- package/dist/helpers/copy-to-clipboard.svelte.d.ts +5 -0
- package/dist/helpers/copy-to-clipboard.svelte.js +28 -0
- package/dist/helpers/debounce.d.ts +7 -0
- package/dist/helpers/debounce.js +7 -0
- package/dist/helpers/focus.d.ts +123 -0
- package/dist/helpers/focus.js +335 -0
- package/dist/helpers/fuzzy-search.d.ts +41 -0
- package/dist/helpers/fuzzy-search.js +114 -0
- package/dist/helpers/index.d.ts +24 -0
- package/dist/helpers/index.js +24 -0
- package/dist/helpers/navigate-to.d.ts +4 -0
- package/dist/helpers/navigate-to.js +4 -0
- package/dist/helpers/positioning.d.ts +97 -0
- package/dist/helpers/positioning.js +230 -0
- package/dist/helpers/round-to-decimals.d.ts +7 -5
- package/dist/helpers/round-to-decimals.js +7 -5
- package/dist/helpers/spring.svelte.d.ts +97 -0
- package/dist/helpers/spring.svelte.js +216 -0
- package/dist/helpers/subscribable.d.ts +1 -1
- package/dist/helpers/theme.svelte.d.ts +63 -0
- package/dist/helpers/theme.svelte.js +123 -0
- package/dist/helpers/unique-id.d.ts +4 -0
- package/dist/helpers/unique-id.js +4 -0
- package/dist/helpers/use-position.svelte.d.ts +96 -0
- package/dist/helpers/use-position.svelte.js +189 -0
- package/dist/helpers/use-virtual-list.svelte.d.ts +121 -0
- package/dist/helpers/use-virtual-list.svelte.js +239 -0
- package/dist/icons/angle-right-icon.svelte +2 -1
- package/dist/icons/angle-right-icon.svelte.d.ts +16 -14
- package/dist/icons/angle-up-icon.svelte.d.ts +22 -21
- package/dist/icons/check-icon.svelte.d.ts +22 -21
- package/dist/icons/copy-icon.svelte +46 -0
- package/dist/icons/copy-icon.svelte.d.ts +6 -0
- package/dist/icons/envelope-icon.svelte.d.ts +22 -21
- package/dist/icons/folder-open-icon.svelte.d.ts +22 -21
- package/dist/icons/hamburger-icon.svelte.d.ts +22 -21
- package/dist/icons/home-icon.svelte +2 -1
- package/dist/icons/home-icon.svelte.d.ts +16 -14
- package/dist/icons/index.d.ts +13 -0
- package/dist/icons/index.js +13 -0
- package/dist/icons/link-icon.svelte.d.ts +22 -21
- package/dist/icons/mobile-phone-icon.svelte.d.ts +22 -21
- package/dist/icons/phone-icon.svelte.d.ts +22 -21
- package/dist/icons/svg-icon.svelte +46 -10
- package/dist/icons/svg-icon.svelte.d.ts +13 -25
- package/dist/icons/upload-icon.svelte.d.ts +22 -21
- package/dist/images/icon.svelte +9 -3
- package/dist/images/icon.svelte.d.ts +6 -18
- package/dist/images/image.svelte +28 -8
- package/dist/images/image.svelte.d.ts +14 -28
- package/dist/images/index.d.ts +2 -0
- package/dist/images/index.js +2 -0
- package/dist/index.d.ts +13 -122
- package/dist/index.js +27 -135
- package/dist/layout/flex-col.svelte +65 -16
- package/dist/layout/flex-col.svelte.d.ts +12 -24
- package/dist/layout/flex-item.svelte +13 -3
- package/dist/layout/flex-item.svelte.d.ts +8 -20
- package/dist/layout/flex-row.svelte +70 -15
- package/dist/layout/flex-row.svelte.d.ts +14 -26
- package/dist/layout/grid.svelte +7 -1
- package/dist/layout/grid.svelte.d.ts +6 -28
- package/dist/layout/index.d.ts +4 -0
- package/dist/layout/index.js +4 -0
- package/dist/modals/alert.svelte +42 -28
- package/dist/modals/alert.svelte.d.ts +13 -26
- package/dist/modals/confirm.svelte +54 -37
- package/dist/modals/confirm.svelte.d.ts +16 -29
- package/dist/modals/dialog-body.svelte +10 -4
- package/dist/modals/dialog-body.svelte.d.ts +6 -28
- package/dist/modals/dialog-close-button.svelte +15 -9
- package/dist/modals/dialog-close-button.svelte.d.ts +6 -19
- package/dist/modals/dialog-footer.svelte +6 -3
- package/dist/modals/dialog-footer.svelte.d.ts +6 -28
- package/dist/modals/dialog-header.svelte +13 -1
- package/dist/modals/dialog-header.svelte.d.ts +7 -28
- package/dist/modals/dialog-window.svelte +42 -14
- package/dist/modals/dialog-window.svelte.d.ts +9 -19
- package/dist/modals/index.d.ts +9 -0
- package/dist/modals/index.js +9 -0
- package/dist/modals/modal.svelte +88 -23
- package/dist/modals/modal.svelte.d.ts +14 -24
- package/dist/modals/prompt.svelte +71 -49
- package/dist/modals/prompt.svelte.d.ts +19 -32
- package/dist/navigation/accordion/accordion.svelte +104 -0
- package/dist/navigation/accordion/accordion.svelte.d.ts +9 -0
- package/dist/navigation/app-bar/app-bar.svelte +26 -12
- package/dist/navigation/app-bar/app-bar.svelte.d.ts +10 -22
- package/dist/navigation/app-bar/app-branding.svelte +10 -5
- package/dist/navigation/app-bar/app-branding.svelte.d.ts +6 -17
- package/dist/navigation/app-bar/app-logo.svelte +20 -5
- package/dist/navigation/app-bar/app-logo.svelte.d.ts +9 -21
- package/dist/navigation/app-bar/app-nav-item.svelte +26 -13
- package/dist/navigation/app-bar/app-nav-item.svelte.d.ts +9 -22
- package/dist/navigation/app-bar/app-nav.svelte +39 -12
- package/dist/navigation/app-bar/app-nav.svelte.d.ts +8 -20
- package/dist/navigation/app-bar/index.d.ts +5 -0
- package/dist/navigation/app-bar/index.js +5 -0
- package/dist/navigation/breadcrumbs/breadcrumbs.svelte +54 -27
- package/dist/navigation/breadcrumbs/breadcrumbs.svelte.d.ts +12 -23
- package/dist/navigation/command-palette/command-palette.svelte +758 -0
- package/dist/navigation/command-palette/command-palette.svelte.d.ts +65 -0
- package/dist/navigation/command-palette/index.d.ts +2 -0
- package/dist/navigation/command-palette/index.js +1 -0
- package/dist/navigation/context-menu/README.md +147 -0
- package/dist/navigation/context-menu/context-menu-divider.svelte +22 -0
- package/dist/navigation/context-menu/context-menu-divider.svelte.d.ts +18 -0
- package/dist/navigation/context-menu/context-menu-item.svelte +268 -0
- package/dist/navigation/context-menu/context-menu-item.svelte.d.ts +19 -0
- package/dist/navigation/context-menu/context-menu.svelte +226 -0
- package/dist/navigation/context-menu/context-menu.svelte.d.ts +38 -0
- package/dist/navigation/context-menu/index.d.ts +3 -0
- package/dist/navigation/context-menu/index.js +3 -0
- package/dist/navigation/drawer/drawer.svelte +137 -0
- package/dist/navigation/drawer/drawer.svelte.d.ts +11 -0
- package/dist/navigation/dropdown-button/dropdown-button.svelte +58 -19
- package/dist/navigation/dropdown-button/dropdown-button.svelte.d.ts +10 -22
- package/dist/navigation/index.d.ts +11 -0
- package/dist/navigation/index.js +14 -0
- package/dist/navigation/pagination/pagination.svelte +55 -37
- package/dist/navigation/pagination/pagination.svelte.d.ts +10 -23
- package/dist/navigation/side-bar/side-bar.svelte +18 -9
- package/dist/navigation/side-bar/side-bar.svelte.d.ts +7 -19
- package/dist/navigation/tabs/index.d.ts +4 -0
- package/dist/navigation/tabs/index.js +3 -0
- package/dist/navigation/tabs/tab-context.d.ts +12 -6
- package/dist/navigation/tabs/tab-group.svelte +268 -52
- package/dist/navigation/tabs/tab-group.svelte.d.ts +9 -22
- package/dist/navigation/tabs/tab.svelte +64 -33
- package/dist/navigation/tabs/tab.svelte.d.ts +11 -24
- package/dist/navigation/wizard/index.d.ts +3 -0
- package/dist/navigation/wizard/index.js +2 -0
- package/dist/navigation/wizard/wizard-context.d.ts +13 -8
- package/dist/navigation/wizard/wizard-step.svelte +38 -13
- package/dist/navigation/wizard/wizard-step.svelte.d.ts +8 -20
- package/dist/navigation/wizard/wizard.svelte +123 -81
- package/dist/navigation/wizard/wizard.svelte.d.ts +15 -28
- package/dist/placeholders/index.d.ts +6 -0
- package/dist/placeholders/index.js +6 -0
- package/dist/placeholders/loading.svelte +39 -23
- package/dist/placeholders/loading.svelte.d.ts +10 -19
- package/dist/placeholders/progress.svelte +7 -6
- package/dist/placeholders/progress.svelte.d.ts +5 -17
- package/dist/placeholders/skeleton-input.svelte +66 -38
- package/dist/placeholders/skeleton-input.svelte.d.ts +5 -17
- package/dist/placeholders/skeleton-paragraph.svelte +25 -0
- package/dist/placeholders/skeleton-paragraph.svelte.d.ts +8 -0
- package/dist/placeholders/skeleton-table.svelte +75 -0
- package/dist/placeholders/skeleton-table.svelte.d.ts +8 -0
- package/dist/placeholders/skeleton-text.svelte +46 -15
- package/dist/placeholders/skeleton-text.svelte.d.ts +7 -19
- package/dist/tables/cell-renderers.d.ts +24 -0
- package/dist/tables/cell-renderers.js +228 -0
- package/dist/tables/data-grid.svelte +332 -118
- package/dist/tables/data-grid.svelte.d.ts +34 -35
- package/dist/tables/index.d.ts +10 -0
- package/dist/tables/index.js +12 -0
- package/dist/tables/table-caption.svelte +13 -4
- package/dist/tables/table-caption.svelte.d.ts +8 -20
- package/dist/tables/table-cell.svelte +45 -14
- package/dist/tables/table-cell.svelte.d.ts +10 -21
- package/dist/tables/table-context.svelte.d.ts +32 -0
- package/dist/tables/table-context.svelte.js +160 -0
- package/dist/tables/table-header-cell.svelte +158 -18
- package/dist/tables/table-header-cell.svelte.d.ts +15 -21
- package/dist/tables/table-header.svelte +31 -6
- package/dist/tables/table-header.svelte.d.ts +7 -28
- package/dist/tables/table-row.svelte +87 -7
- package/dist/tables/table-row.svelte.d.ts +10 -28
- package/dist/tables/table.svelte +61 -2
- package/dist/tables/table.svelte.d.ts +13 -28
- package/dist/test-utils/accessibility-helpers.d.ts +80 -0
- package/dist/test-utils/accessibility-helpers.js +220 -0
- package/dist/test-utils/index.d.ts +8 -0
- package/dist/test-utils/index.js +8 -0
- package/dist/test-utils/mock-helpers.d.ts +68 -0
- package/dist/test-utils/mock-helpers.js +165 -0
- package/dist/test-utils/render-helpers.d.ts +55 -0
- package/dist/test-utils/render-helpers.js +114 -0
- package/dist/test-utils/setup.d.ts +5 -0
- package/dist/test-utils/setup.js +91 -0
- package/dist/test-utils/test-data.d.ts +102 -0
- package/dist/test-utils/test-data.js +99 -0
- package/dist/timeline/index.d.ts +2 -0
- package/dist/timeline/index.js +2 -0
- package/dist/timeline/timeline-item.svelte +26 -9
- package/dist/timeline/timeline-item.svelte.d.ts +13 -25
- package/dist/timeline/timeline.svelte +12 -6
- package/dist/timeline/timeline.svelte.d.ts +6 -28
- package/dist/types/data.d.ts +61 -0
- package/dist/types/date.d.ts +1 -1
- package/dist/types/form.d.ts +20 -2
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.js +5 -0
- package/dist/types/size.d.ts +22 -0
- package/dist/types/size.js +22 -0
- package/dist/typography/code-block.svelte +89 -10
- package/dist/typography/code-block.svelte.d.ts +7 -19
- package/dist/typography/code.svelte +89 -0
- package/dist/typography/code.svelte.d.ts +7 -0
- package/dist/typography/headline.svelte +29 -9
- package/dist/typography/headline.svelte.d.ts +8 -20
- package/dist/typography/index.d.ts +6 -0
- package/dist/typography/index.js +6 -0
- package/dist/typography/paragraph.svelte +18 -10
- package/dist/typography/paragraph.svelte.d.ts +6 -28
- package/dist/typography/subtitle.svelte +18 -4
- package/dist/typography/subtitle.svelte.d.ts +8 -20
- package/dist/typography/text.svelte +20 -5
- package/dist/typography/text.svelte.d.ts +9 -21
- package/package.json +31 -21
- package/dist/navigation/accordian/accordian.svelte +0 -62
- package/dist/navigation/accordian/accordian.svelte.d.ts +0 -21
- package/dist/tables/table-body.svelte +0 -3
- package/dist/tables/table-body.svelte.d.ts +0 -29
- package/dist/tables/table-footer-cell.svelte +0 -22
- package/dist/tables/table-footer-cell.svelte.d.ts +0 -20
- package/dist/tables/table-footer-row.svelte +0 -3
- package/dist/tables/table-footer-row.svelte.d.ts +0 -29
- package/dist/tables/table-footer.svelte +0 -13
- package/dist/tables/table-footer.svelte.d.ts +0 -29
- package/dist/tables/table-header-row.svelte +0 -4
- package/dist/tables/table-header-row.svelte.d.ts +0 -29
|
@@ -1,54 +1,73 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
let {
|
|
3
|
+
currentPage = $bindable(1),
|
|
4
|
+
totalPages = 1,
|
|
5
|
+
align = 'center' as 'center' | 'start' | 'end',
|
|
6
|
+
variant = 'default' as 'default' | 'flat',
|
|
7
|
+
size = 'md' as 'sm' | 'md' | 'lg' | 'xl',
|
|
8
|
+
onPage = undefined
|
|
9
|
+
}: {
|
|
10
|
+
currentPage?: number;
|
|
11
|
+
totalPages?: number;
|
|
12
|
+
align?: 'center' | 'start' | 'end';
|
|
13
|
+
variant?: 'default' | 'flat';
|
|
14
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
15
|
+
onPage?: ((page: number) => void) | undefined;
|
|
16
|
+
} = $props();
|
|
17
|
+
|
|
18
|
+
const changePage = (page: number) => {
|
|
19
|
+
if (page < 1 || page > totalPages) return;
|
|
20
|
+
currentPage = page;
|
|
21
|
+
onPage?.(page);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
let previousPages = $derived(
|
|
25
|
+
currentPage > 1
|
|
26
|
+
? (() => {
|
|
27
|
+
const pages = [];
|
|
28
|
+
for (let i = currentPage - 1; i > 0 && i >= currentPage - 3; i--) {
|
|
29
|
+
pages.push(i);
|
|
30
|
+
}
|
|
31
|
+
return pages.reverse();
|
|
32
|
+
})()
|
|
33
|
+
: []
|
|
34
|
+
);
|
|
35
|
+
let nextPages = $derived(
|
|
36
|
+
currentPage < totalPages
|
|
37
|
+
? (() => {
|
|
38
|
+
const pages = [];
|
|
39
|
+
for (let i = currentPage + 1; i <= totalPages && i <= currentPage + 3; i++) {
|
|
40
|
+
pages.push(i);
|
|
41
|
+
}
|
|
42
|
+
return pages;
|
|
43
|
+
})()
|
|
44
|
+
: []
|
|
45
|
+
);
|
|
46
|
+
let showFirst = $derived(currentPage > 4);
|
|
47
|
+
let showLast = $derived(currentPage < totalPages - 3);
|
|
29
48
|
</script>
|
|
30
49
|
|
|
31
|
-
<nav class="{align} {
|
|
50
|
+
<nav class="{align} {variant} {size}">
|
|
32
51
|
{#if currentPage > 1}
|
|
33
|
-
<button
|
|
52
|
+
<button onclick={() => changePage(currentPage - 1)} class="previous page">Previous</button>
|
|
34
53
|
{/if}
|
|
35
54
|
{#if showFirst}
|
|
36
|
-
<button
|
|
55
|
+
<button onclick={() => changePage(1)} class="first page">1</button>
|
|
37
56
|
<div class="ellipsis page">···</div>
|
|
38
57
|
{/if}
|
|
39
58
|
{#each previousPages as page}
|
|
40
|
-
<button
|
|
59
|
+
<button onclick={() => changePage(page)} class="pre page">{page}</button>
|
|
41
60
|
{/each}
|
|
42
61
|
<div class="current page">{currentPage}</div>
|
|
43
62
|
{#each nextPages as page}
|
|
44
|
-
<button
|
|
63
|
+
<button onclick={() => changePage(page)} class="pro numbered page">{page}</button>
|
|
45
64
|
{/each}
|
|
46
65
|
{#if showLast}
|
|
47
66
|
<div class="ellipsis page">···</div>
|
|
48
|
-
<button
|
|
67
|
+
<button onclick={() => changePage(totalPages)} class="last page">{totalPages}</button>
|
|
49
68
|
{/if}
|
|
50
69
|
{#if currentPage < totalPages}
|
|
51
|
-
<button
|
|
70
|
+
<button onclick={() => changePage(currentPage + 1)} class="next page">Next</button>
|
|
52
71
|
{/if}
|
|
53
72
|
</nav>
|
|
54
73
|
|
|
@@ -63,8 +82,7 @@ nav .page {
|
|
|
63
82
|
border: none;
|
|
64
83
|
background: none;
|
|
65
84
|
margin: 0;
|
|
66
|
-
color: var(--base-fg, #
|
|
67
|
-
text-shadow: 0 0 0.125rem rgba(0, 0, 0, 0.5);
|
|
85
|
+
color: var(--base-fg, #000);
|
|
68
86
|
}
|
|
69
87
|
nav button {
|
|
70
88
|
cursor: pointer;
|
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
size?: "sm" | "md" | "lg" | "xl";
|
|
9
|
-
};
|
|
10
|
-
events: {
|
|
11
|
-
page: CustomEvent<number>;
|
|
12
|
-
} & {
|
|
13
|
-
[evt: string]: CustomEvent<any>;
|
|
14
|
-
};
|
|
15
|
-
slots: {};
|
|
16
|
-
exports?: {} | undefined;
|
|
17
|
-
bindings?: string | undefined;
|
|
1
|
+
type $$ComponentProps = {
|
|
2
|
+
currentPage?: number;
|
|
3
|
+
totalPages?: number;
|
|
4
|
+
align?: 'center' | 'start' | 'end';
|
|
5
|
+
variant?: 'default' | 'flat';
|
|
6
|
+
size?: 'sm' | 'md' | 'lg' | 'xl';
|
|
7
|
+
onPage?: ((page: number) => void) | undefined;
|
|
18
8
|
};
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
export
|
|
22
|
-
export default class Pagination extends SvelteComponent<PaginationProps, PaginationEvents, PaginationSlots> {
|
|
23
|
-
}
|
|
24
|
-
export {};
|
|
9
|
+
declare const Pagination: import("svelte").Component<$$ComponentProps, {}, "currentPage">;
|
|
10
|
+
type Pagination = ReturnType<typeof Pagination>;
|
|
11
|
+
export default Pagination;
|
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import Overlay from '../../generic/overlay.svelte';
|
|
4
|
+
|
|
5
|
+
let {
|
|
6
|
+
open = $bindable(false),
|
|
7
|
+
children
|
|
8
|
+
}: {
|
|
9
|
+
open?: boolean;
|
|
10
|
+
children: Snippet;
|
|
11
|
+
} = $props();
|
|
3
12
|
</script>
|
|
4
13
|
|
|
5
14
|
<div class:open>
|
|
6
15
|
<Overlay show={open} />
|
|
7
16
|
<aside>
|
|
8
|
-
|
|
17
|
+
{@render children?.()}
|
|
9
18
|
</aside>
|
|
10
19
|
</div>
|
|
11
20
|
|
|
@@ -18,15 +27,15 @@ export let open = false;
|
|
|
18
27
|
top: 0;
|
|
19
28
|
left: -300px;
|
|
20
29
|
bottom: 0;
|
|
21
|
-
background: var(--nav-bg
|
|
22
|
-
color: var(--nav-fg
|
|
30
|
+
background: var(--nav-bg);
|
|
31
|
+
color: var(--nav-fg);
|
|
23
32
|
z-index: 9999;
|
|
24
|
-
transition: left
|
|
25
|
-
border-right: solid
|
|
26
|
-
box-shadow:
|
|
33
|
+
transition: left var(--transition-slow) var(--ease-in-out);
|
|
34
|
+
border-right: solid var(--border-thin) var(--gray-300);
|
|
35
|
+
box-shadow: var(--shadow-md);
|
|
27
36
|
display: flex;
|
|
28
37
|
flex-direction: column;
|
|
29
|
-
font-family: var(--nav-font-family
|
|
38
|
+
font-family: var(--nav-font-family);
|
|
30
39
|
}
|
|
31
40
|
div.open {
|
|
32
41
|
display: block;
|
|
@@ -1,20 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
6
|
-
events: {
|
|
7
|
-
[evt: string]: CustomEvent<any>;
|
|
8
|
-
};
|
|
9
|
-
slots: {
|
|
10
|
-
default: {};
|
|
11
|
-
};
|
|
12
|
-
exports?: {} | undefined;
|
|
13
|
-
bindings?: string | undefined;
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
open?: boolean;
|
|
4
|
+
children: Snippet;
|
|
14
5
|
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export
|
|
18
|
-
export default class SideBar extends SvelteComponent<SideBarProps, SideBarEvents, SideBarSlots> {
|
|
19
|
-
}
|
|
20
|
-
export {};
|
|
6
|
+
declare const SideBar: import("svelte").Component<$$ComponentProps, {}, "open">;
|
|
7
|
+
type SideBar = ReturnType<typeof SideBar>;
|
|
8
|
+
export default SideBar;
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
export type TabStyle = 'traditional' | 'underline' | 'outline' | 'overline';
|
|
1
|
+
export type TabVariant = 'traditional' | 'underline' | 'outline' | 'overline' | 'pills' | 'segmented' | 'minimal';
|
|
3
2
|
export type TabDefinition = {
|
|
4
3
|
id: string;
|
|
5
|
-
|
|
4
|
+
label: string;
|
|
6
5
|
defaultActive: boolean;
|
|
6
|
+
index: number;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
href?: string;
|
|
7
9
|
};
|
|
8
10
|
export interface TabContext {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
state: {
|
|
12
|
+
tabs: TabDefinition[];
|
|
13
|
+
active: string | null;
|
|
14
|
+
};
|
|
15
|
+
variant: TabVariant;
|
|
16
|
+
groupId: string;
|
|
17
|
+
register: (id: string, label: string, isActive: boolean, href?: string) => void;
|
|
12
18
|
}
|
|
13
19
|
export declare const tabContext = "tabContext";
|
|
@@ -1,73 +1,199 @@
|
|
|
1
|
-
<script
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
3
|
+
import { setContext } from 'svelte';
|
|
4
|
+
import { tabContext, type TabDefinition, type TabVariant } from './tab-context.js';
|
|
5
|
+
import { getAnchor, navigateToAnchor, uniqueId } from '../../index.js';
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
variant = 'traditional' as TabVariant,
|
|
9
|
+
onChange = undefined,
|
|
10
|
+
children
|
|
11
|
+
}: {
|
|
12
|
+
variant?: TabVariant;
|
|
13
|
+
onChange?: ((id: string | null) => void) | undefined;
|
|
14
|
+
children: Snippet;
|
|
15
|
+
} = $props();
|
|
16
|
+
|
|
17
|
+
// Generate unique group ID to scope tab IDs and prevent conflicts between multiple tab groups
|
|
18
|
+
const groupId = uniqueId();
|
|
19
|
+
|
|
20
|
+
// Use a SINGLE $state object - this is key for reactivity!
|
|
21
|
+
const tabState = $state({
|
|
22
|
+
tabs: [] as TabDefinition[],
|
|
23
|
+
active: null as string | null
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
let registrationIndex = 0;
|
|
27
|
+
let isInitialized = $state(false);
|
|
28
|
+
|
|
29
|
+
const register = (id: string, label: string, isActive: boolean, href?: string) => {
|
|
30
|
+
const index = registrationIndex++;
|
|
31
|
+
tabState.tabs.push({ id, label, defaultActive: isActive, index, href });
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// Initialize active tab - only run once when tabs are available
|
|
35
|
+
$effect(() => {
|
|
36
|
+
// Skip if already initialized or no tabs yet
|
|
37
|
+
if (isInitialized || tabState.tabs.length === 0) return;
|
|
38
|
+
|
|
39
|
+
// Use microtask to ensure all synchronous tab registrations in this cycle complete
|
|
40
|
+
queueMicrotask(() => {
|
|
41
|
+
// Double-check we haven't initialized in the meantime
|
|
42
|
+
if (isInitialized) return;
|
|
43
|
+
|
|
44
|
+
// Get current tabs state at initialization time
|
|
45
|
+
const currentTabs = tabState.tabs;
|
|
46
|
+
if (currentTabs.length === 0) return;
|
|
47
|
+
|
|
48
|
+
// Check for anchor in URL first (but only if it matches a tab in THIS group)
|
|
49
|
+
const anchor = getAnchor();
|
|
50
|
+
if (anchor) {
|
|
51
|
+
// Check if anchor starts with our group ID prefix
|
|
52
|
+
const groupPrefix = `${groupId}-`;
|
|
53
|
+
if (anchor.startsWith(groupPrefix)) {
|
|
54
|
+
const tabId = anchor.slice(groupPrefix.length);
|
|
55
|
+
const tabExists = currentTabs.some((tab) => tab.id === tabId);
|
|
56
|
+
if (tabExists) {
|
|
57
|
+
tabState.active = tabId;
|
|
58
|
+
isInitialized = true;
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Also check for direct tab ID match (for backward compatibility)
|
|
63
|
+
const tabExists = currentTabs.some((tab) => tab.id === anchor);
|
|
64
|
+
if (tabExists) {
|
|
65
|
+
tabState.active = anchor;
|
|
66
|
+
isInitialized = true;
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Check for defaultActive tab
|
|
72
|
+
const defaultActiveTab = currentTabs.find((tab) => tab.defaultActive);
|
|
73
|
+
if (defaultActiveTab) {
|
|
74
|
+
tabState.active = defaultActiveTab.id;
|
|
75
|
+
isInitialized = true;
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Default to first tab (by registration index, which should be the first in DOM order)
|
|
80
|
+
// Sort by index to get the first registered tab (lowest index = first)
|
|
81
|
+
const sortedTabs = [...currentTabs].sort((a, b) => a.index - b.index);
|
|
82
|
+
const firstTab = sortedTabs[0];
|
|
83
|
+
if (firstTab) {
|
|
84
|
+
tabState.active = firstTab.id;
|
|
85
|
+
isInitialized = true;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
const selectTab = (id: string) => {
|
|
90
|
+
const tab = tabState.tabs.find((t) => t.id === id);
|
|
91
|
+
if (tab?.disabled) return;
|
|
92
|
+
|
|
93
|
+
tabState.active = id;
|
|
94
|
+
|
|
95
|
+
// Only use anchor navigation if tab doesn't have href (href navigation is handled by Tab component)
|
|
96
|
+
// Scope anchor to this group to avoid conflicts with multiple tab groups
|
|
97
|
+
if (!tab?.href) {
|
|
98
|
+
navigateToAnchor(`${groupId}-${id}`);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
onChange?.(id);
|
|
102
|
+
|
|
103
|
+
// Focus the selected tab (scoped to this group)
|
|
104
|
+
const button = document.getElementById(`tab-${groupId}-${id}`);
|
|
105
|
+
if (button) {
|
|
106
|
+
button.focus();
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
// Keyboard navigation handler
|
|
111
|
+
const handleKeydown = (e: KeyboardEvent, currentId: string) => {
|
|
112
|
+
const tabList = tabState.tabs.filter((tab) => !tab.disabled);
|
|
113
|
+
const currentIndex = tabList.findIndex((tab) => tab.id === currentId);
|
|
114
|
+
if (currentIndex === -1) return;
|
|
115
|
+
|
|
116
|
+
let targetIndex = currentIndex;
|
|
117
|
+
|
|
118
|
+
switch (e.key) {
|
|
119
|
+
case 'ArrowLeft':
|
|
120
|
+
e.preventDefault();
|
|
121
|
+
targetIndex = currentIndex > 0 ? currentIndex - 1 : tabList.length - 1;
|
|
122
|
+
break;
|
|
123
|
+
case 'ArrowRight':
|
|
124
|
+
e.preventDefault();
|
|
125
|
+
targetIndex = currentIndex < tabList.length - 1 ? currentIndex + 1 : 0;
|
|
126
|
+
break;
|
|
127
|
+
case 'Home':
|
|
128
|
+
e.preventDefault();
|
|
129
|
+
targetIndex = 0;
|
|
130
|
+
break;
|
|
131
|
+
case 'End':
|
|
132
|
+
e.preventDefault();
|
|
133
|
+
targetIndex = tabList.length - 1;
|
|
134
|
+
break;
|
|
135
|
+
case 'Enter':
|
|
136
|
+
case ' ':
|
|
137
|
+
e.preventDefault();
|
|
138
|
+
selectTab(currentId);
|
|
139
|
+
return;
|
|
140
|
+
default:
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
if (targetIndex !== currentIndex && tabList[targetIndex]) {
|
|
145
|
+
selectTab(tabList[targetIndex].id);
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
// Set context - pass the reactive state object directly!
|
|
150
|
+
setContext(tabContext, {
|
|
151
|
+
state: tabState,
|
|
152
|
+
get variant() {
|
|
153
|
+
return variant;
|
|
154
|
+
},
|
|
155
|
+
groupId,
|
|
156
|
+
register
|
|
157
|
+
});
|
|
40
158
|
</script>
|
|
41
159
|
|
|
42
|
-
<section class="tab-group {
|
|
160
|
+
<section class="tab-group {variant}">
|
|
43
161
|
<div class="tab-head">
|
|
44
|
-
<
|
|
45
|
-
{#each
|
|
46
|
-
<li class={
|
|
47
|
-
<button
|
|
48
|
-
{tab.
|
|
162
|
+
<div role="tablist">
|
|
163
|
+
{#each tabState.tabs as tab}
|
|
164
|
+
<li class={tabState.active == tab.id ? 'active' : 'inactive'}>
|
|
165
|
+
<button
|
|
166
|
+
id="tab-{groupId}-{tab.id}"
|
|
167
|
+
role="tab"
|
|
168
|
+
aria-selected={tabState.active === tab.id}
|
|
169
|
+
aria-controls="tabpanel-{groupId}-{tab.id}"
|
|
170
|
+
tabindex={tabState.active === tab.id ? 0 : -1}
|
|
171
|
+
onclick={() => selectTab(tab.id)}
|
|
172
|
+
onkeydown={(e) => handleKeydown(e, tab.id)}
|
|
173
|
+
>
|
|
174
|
+
{tab.label}
|
|
49
175
|
</button>
|
|
50
176
|
</li>
|
|
51
177
|
{/each}
|
|
52
|
-
</
|
|
178
|
+
</div>
|
|
53
179
|
</div>
|
|
54
180
|
<div class="tab-content">
|
|
55
|
-
|
|
181
|
+
{@render children?.()}
|
|
56
182
|
</div>
|
|
57
183
|
</section>
|
|
58
184
|
|
|
59
185
|
<style>.tab-head {
|
|
60
|
-
height: 2rem;
|
|
186
|
+
min-height: 2rem;
|
|
61
187
|
position: relative;
|
|
62
188
|
}
|
|
63
|
-
.tab-head
|
|
189
|
+
.tab-head div[role=tablist] {
|
|
64
190
|
display: flex;
|
|
65
191
|
flex-direction: row;
|
|
66
192
|
flex-wrap: nowrap;
|
|
67
193
|
justify-content: flex-start;
|
|
68
194
|
align-items: center;
|
|
69
195
|
box-sizing: border-box;
|
|
70
|
-
height: 2rem;
|
|
196
|
+
min-height: 2rem;
|
|
71
197
|
overflow: hidden;
|
|
72
198
|
width: 100%;
|
|
73
199
|
}
|
|
@@ -85,7 +211,7 @@ setContext(tabContext, ctx);
|
|
|
85
211
|
border: none 0;
|
|
86
212
|
background: transparent;
|
|
87
213
|
line-height: 1.8rem;
|
|
88
|
-
height: 2rem;
|
|
214
|
+
min-height: 2rem;
|
|
89
215
|
padding-left: 1rem;
|
|
90
216
|
padding-right: 1rem;
|
|
91
217
|
cursor: pointer;
|
|
@@ -95,6 +221,15 @@ setContext(tabContext, ctx);
|
|
|
95
221
|
.tab-head button:focus {
|
|
96
222
|
outline: none;
|
|
97
223
|
}
|
|
224
|
+
.tab-head button:focus-visible {
|
|
225
|
+
outline: 2px solid var(--tab-focus-outline, rgb(0, 123, 255));
|
|
226
|
+
outline-offset: 2px;
|
|
227
|
+
border-radius: 0.25rem;
|
|
228
|
+
}
|
|
229
|
+
.tab-head button:disabled {
|
|
230
|
+
opacity: 0.5;
|
|
231
|
+
cursor: not-allowed;
|
|
232
|
+
}
|
|
98
233
|
|
|
99
234
|
.tab-content {
|
|
100
235
|
padding-top: 1rem;
|
|
@@ -153,9 +288,11 @@ setContext(tabContext, ctx);
|
|
|
153
288
|
border-style: solid;
|
|
154
289
|
border-width: 0.1rem 0.1rem 0.1rem 0.1rem;
|
|
155
290
|
border-color: var(--tab-outline-border, rgb(220, 220, 220));
|
|
156
|
-
color: var(--
|
|
291
|
+
color: var(--tab-outline-active-fg, rgb(50, 50, 50));
|
|
157
292
|
border-bottom-color: var(--base-bg, rgb(50, 50, 50));
|
|
293
|
+
background: var(--tab-outline-active-bg, transparent);
|
|
158
294
|
line-height: 1.7rem;
|
|
295
|
+
min-height: 1.7rem;
|
|
159
296
|
}
|
|
160
297
|
|
|
161
298
|
.overline .tab-head {
|
|
@@ -172,4 +309,83 @@ setContext(tabContext, ctx);
|
|
|
172
309
|
.overline .inactive button {
|
|
173
310
|
border-style: none;
|
|
174
311
|
color: var(--tab-overline-fg, rgb(180, 180, 180));
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.pills .tab-head {
|
|
315
|
+
border-bottom: none;
|
|
316
|
+
}
|
|
317
|
+
.pills div[role=tablist] {
|
|
318
|
+
gap: 0.5rem;
|
|
319
|
+
}
|
|
320
|
+
.pills button {
|
|
321
|
+
border-radius: 1.5rem;
|
|
322
|
+
padding-left: 1.25rem;
|
|
323
|
+
padding-right: 1.25rem;
|
|
324
|
+
transition: all 0.2s ease;
|
|
325
|
+
}
|
|
326
|
+
.pills .inactive button {
|
|
327
|
+
background: var(--tab-pills-inactive-bg, rgb(240, 240, 240));
|
|
328
|
+
color: var(--tab-pills-inactive-fg, rgb(100, 100, 100));
|
|
329
|
+
}
|
|
330
|
+
.pills .inactive button:hover {
|
|
331
|
+
background: var(--tab-pills-hover-bg, rgb(230, 230, 230));
|
|
332
|
+
color: var(--tab-pills-hover-fg, rgb(50, 50, 50));
|
|
333
|
+
}
|
|
334
|
+
.pills .active button {
|
|
335
|
+
background: var(--tab-pills-active-bg, rgb(0, 123, 255));
|
|
336
|
+
color: var(--tab-pills-active-fg, rgb(255, 255, 255));
|
|
337
|
+
box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
.segmented .tab-head {
|
|
341
|
+
border-bottom: none;
|
|
342
|
+
background: var(--tab-segmented-bg, rgb(240, 240, 240));
|
|
343
|
+
border-radius: 0.5rem;
|
|
344
|
+
padding: 0.25rem;
|
|
345
|
+
}
|
|
346
|
+
.segmented div[role=tablist] {
|
|
347
|
+
gap: 0.25rem;
|
|
348
|
+
}
|
|
349
|
+
.segmented button {
|
|
350
|
+
border-radius: 0.375rem;
|
|
351
|
+
flex: 1;
|
|
352
|
+
min-width: 0;
|
|
353
|
+
transition: all 0.2s ease;
|
|
354
|
+
}
|
|
355
|
+
.segmented .inactive button {
|
|
356
|
+
background: transparent;
|
|
357
|
+
color: var(--tab-segmented-inactive-fg, rgb(100, 100, 100));
|
|
358
|
+
}
|
|
359
|
+
.segmented .inactive button:hover {
|
|
360
|
+
background: var(--tab-segmented-hover-bg, rgba(255, 255, 255, 0.5));
|
|
361
|
+
color: var(--tab-segmented-hover-fg, rgb(50, 50, 50));
|
|
362
|
+
}
|
|
363
|
+
.segmented .active button {
|
|
364
|
+
background: var(--tab-segmented-active-bg, rgb(255, 255, 255));
|
|
365
|
+
color: var(--tab-segmented-active-fg, rgb(50, 50, 50));
|
|
366
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
367
|
+
font-weight: 500;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
.minimal .tab-head {
|
|
371
|
+
border-bottom: solid 0.1rem var(--tab-minimal-border, rgb(230, 230, 230));
|
|
372
|
+
}
|
|
373
|
+
.minimal button {
|
|
374
|
+
border-radius: 0;
|
|
375
|
+
transition: color 0.2s ease;
|
|
376
|
+
}
|
|
377
|
+
.minimal .inactive button {
|
|
378
|
+
background: transparent;
|
|
379
|
+
color: var(--tab-minimal-inactive-fg, rgb(150, 150, 150));
|
|
380
|
+
}
|
|
381
|
+
.minimal .inactive button:hover {
|
|
382
|
+
background: transparent;
|
|
383
|
+
color: var(--tab-minimal-hover-fg, rgb(50, 50, 50));
|
|
384
|
+
}
|
|
385
|
+
.minimal .active button {
|
|
386
|
+
background: transparent;
|
|
387
|
+
color: var(--tab-minimal-active-fg, rgb(0, 123, 255));
|
|
388
|
+
border-bottom: solid 0.2rem var(--tab-minimal-active-fg, rgb(0, 123, 255));
|
|
389
|
+
margin-bottom: -0.1rem;
|
|
390
|
+
font-weight: 500;
|
|
175
391
|
}</style>
|
|
@@ -1,23 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
events: {
|
|
8
|
-
change: CustomEvent<string | null>;
|
|
9
|
-
} & {
|
|
10
|
-
[evt: string]: CustomEvent<any>;
|
|
11
|
-
};
|
|
12
|
-
slots: {
|
|
13
|
-
default: {};
|
|
14
|
-
};
|
|
15
|
-
exports?: {} | undefined;
|
|
16
|
-
bindings?: string | undefined;
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
import { type TabVariant } from './tab-context.js';
|
|
3
|
+
type $$ComponentProps = {
|
|
4
|
+
variant?: TabVariant;
|
|
5
|
+
onChange?: ((id: string | null) => void) | undefined;
|
|
6
|
+
children: Snippet;
|
|
17
7
|
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export
|
|
21
|
-
export default class TabGroup extends SvelteComponent<TabGroupProps, TabGroupEvents, TabGroupSlots> {
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
8
|
+
declare const TabGroup: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
+
type TabGroup = ReturnType<typeof TabGroup>;
|
|
10
|
+
export default TabGroup;
|