negodesign 0.0.70 → 0.0.72
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 +115 -23
- package/dist/components/NegoDesign.svelte +7 -2
- package/dist/components/core/banner/CtaCardImageBanner.svelte +10 -25
- package/dist/components/core/carousel/badge/ui/CarouselBadge.svelte +3 -5
- package/dist/components/core/carousel/grid/shared/ui/CarouselGridSlot.svelte +2 -2
- package/dist/components/core/carousel/highlights/ui/CarouselHighlights.svelte +2 -2
- package/dist/components/core/carousel/product/ui/CarouselProduct.svelte +2 -2
- package/dist/components/core/carousel/promotion/ui/CarouselPromotion.svelte +2 -2
- package/dist/components/core/datatable/data/columns-create.d.ts +1 -1
- package/dist/components/core/datatable/data/data-table.d.ts +3 -3
- package/dist/components/core/datatable/data/resolve-cell-badge.svelte.d.ts +2 -2
- package/dist/components/core/datatable/data/resolve-cell-badge.svelte.js +2 -1
- package/dist/components/core/datatable/data/resolve-cell.svelte.d.ts +2 -2
- package/dist/components/core/datatable/data/resolve-header.svelte.d.ts +2 -2
- package/dist/components/core/datatable/ui/DataTableActions.svelte +1 -1
- package/dist/components/core/datatable/ui/DataTableActions.svelte.d.ts +1 -1
- package/dist/components/core/datatable/ui/DataTableContent.svelte +1 -1
- package/dist/components/core/datatable/ui/DataTableContent.svelte.d.ts +1 -1
- package/dist/components/core/datatable/ui/DataTableCore.svelte +23 -26
- package/dist/components/core/datatable/ui/DataTableListFilter.svelte +3 -2
- package/dist/components/core/datatable/ui/DataTableListFilter.svelte.d.ts +1 -1
- package/dist/components/core/datatable/ui/DataTableListPagination.svelte +1 -1
- package/dist/components/core/datatable/ui/DataTableListPagination.svelte.d.ts +1 -1
- package/dist/components/core/datatable/ui/columns-create.svelte.d.ts +1 -1
- package/dist/components/core/panel/LeftHero.svelte +2 -2
- package/dist/components/core/sidebar/data/nav-top-bar-sidebar.d.ts +13 -4
- package/dist/components/core/sidebar/ui/navbar/NavMenuBarSidebar.svelte +3 -3
- package/dist/components/core/sidebar/ui/navbar/NavMenuTopBarSidebar.svelte +0 -2
- package/dist/components/core/sidebar/ui/navbar/nav-menu-header-sidebar.svelte +4 -5
- package/dist/components/pages/product-details/shared/ProductDetailFilesVertical.svelte +0 -1
- package/dist/components/pages/profile-user/shared/ProfileUserAddress.svelte +2 -3
- package/dist/components/pages/profile-user/shared/ProfileUserTabs.svelte +3 -1
- package/dist/components/ui/avatar/avatar-fallback.svelte +22 -12
- package/dist/components/ui/avatar/avatar-fallback.svelte.d.ts +3 -2
- package/dist/components/ui/avatar/avatar-image.svelte +31 -9
- package/dist/components/ui/avatar/avatar-image.svelte.d.ts +3 -2
- package/dist/components/ui/avatar/avatar.svelte +23 -9
- package/dist/components/ui/avatar/avatar.svelte.d.ts +6 -3
- package/dist/components/ui/avatar/context.svelte.d.ts +7 -0
- package/dist/components/ui/avatar/context.svelte.js +10 -0
- package/dist/components/ui/badge/badge.svelte +24 -26
- package/dist/components/ui/badge/badge.svelte.d.ts +15 -33
- package/dist/components/ui/button/button.svelte +35 -31
- package/dist/components/ui/button/button.svelte.d.ts +24 -61
- package/dist/components/ui/carousel/autoplay.d.ts +7 -0
- package/dist/components/ui/carousel/autoplay.js +7 -0
- package/dist/components/ui/carousel/carousel-content.svelte +31 -17
- package/dist/components/ui/carousel/carousel-item.svelte +2 -3
- package/dist/components/ui/carousel/carousel-next.svelte +1 -1
- package/dist/components/ui/carousel/carousel-previous.svelte +1 -1
- package/dist/components/ui/carousel/carousel.svelte +155 -30
- package/dist/components/ui/carousel/context.d.ts +23 -14
- package/dist/components/ui/carousel/context.js +4 -4
- package/dist/components/ui/carousel/index.d.ts +2 -0
- package/dist/components/ui/carousel/index.js +1 -0
- package/dist/components/ui/checkbox/checkbox.svelte +74 -17
- package/dist/components/ui/checkbox/checkbox.svelte.d.ts +17 -2
- package/dist/components/ui/collapsible/collapsible-content.svelte +27 -3
- package/dist/components/ui/collapsible/collapsible-content.svelte.d.ts +8 -2
- package/dist/components/ui/collapsible/collapsible-trigger.svelte +48 -3
- package/dist/components/ui/collapsible/collapsible-trigger.svelte.d.ts +10 -2
- package/dist/components/ui/collapsible/collapsible.svelte +62 -6
- package/dist/components/ui/collapsible/collapsible.svelte.d.ts +21 -2
- package/dist/components/ui/data-table/data-table.svelte.d.ts +2 -40
- package/dist/components/ui/data-table/data-table.svelte.js +1 -110
- package/dist/components/ui/data-table/flex-render.svelte +5 -5
- package/dist/components/ui/data-table/flex-render.svelte.d.ts +2 -2
- package/dist/components/ui/data-table/index.d.ts +2 -1
- package/dist/components/ui/data-table/index.js +1 -1
- package/dist/components/ui/data-table/table-core.svelte.d.ts +117 -0
- package/dist/components/ui/data-table/table-core.svelte.js +260 -0
- package/dist/components/ui/drawer/drawer-close.svelte +38 -3
- package/dist/components/ui/drawer/drawer-close.svelte.d.ts +10 -2
- package/dist/components/ui/drawer/drawer-content.svelte +67 -18
- package/dist/components/ui/drawer/drawer-content.svelte.d.ts +5 -4
- package/dist/components/ui/drawer/drawer-description.svelte +9 -6
- package/dist/components/ui/drawer/drawer-description.svelte.d.ts +3 -2
- package/dist/components/ui/drawer/drawer-nested.svelte +28 -5
- package/dist/components/ui/drawer/drawer-nested.svelte.d.ts +8 -1
- package/dist/components/ui/drawer/drawer-overlay.svelte +18 -9
- package/dist/components/ui/drawer/drawer-overlay.svelte.d.ts +3 -2
- package/dist/components/ui/drawer/drawer-portal.svelte +16 -3
- package/dist/components/ui/drawer/drawer-portal.svelte.d.ts +3 -1
- package/dist/components/ui/drawer/drawer-title.svelte +9 -6
- package/dist/components/ui/drawer/drawer-title.svelte.d.ts +3 -2
- package/dist/components/ui/drawer/drawer-trigger.svelte +39 -3
- package/dist/components/ui/drawer/drawer-trigger.svelte.d.ts +10 -2
- package/dist/components/ui/drawer/drawer.svelte +67 -4
- package/dist/components/ui/drawer/drawer.svelte.d.ts +23 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +18 -8
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte.d.ts +8 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +53 -28
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +8 -3
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +93 -17
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +10 -6
- package/dist/components/ui/dropdown-menu/dropdown-menu-context.svelte.d.ts +26 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-context.svelte.js +27 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +14 -8
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +6 -3
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte +18 -3
- package/dist/components/ui/dropdown-menu/dropdown-menu-group.svelte.d.ts +7 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +42 -8
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +9 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +9 -5
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte.d.ts +5 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte +3 -3
- package/dist/components/ui/dropdown-menu/dropdown-menu-portal.svelte.d.ts +5 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +36 -8
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte.d.ts +9 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +59 -23
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +12 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +11 -7
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +6 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +26 -9
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +8 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +39 -11
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +7 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte +73 -3
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub.svelte.d.ts +8 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte +65 -3
- package/dist/components/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +12 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu.svelte +50 -3
- package/dist/components/ui/dropdown-menu/dropdown-menu.svelte.d.ts +9 -1
- package/dist/components/ui/empty/empty-content.svelte +2 -5
- package/dist/components/ui/empty/empty-description.svelte +2 -5
- package/dist/components/ui/empty/empty-header.svelte +2 -2
- package/dist/components/ui/empty/empty-media.svelte +17 -16
- package/dist/components/ui/empty/empty-media.svelte.d.ts +10 -19
- package/dist/components/ui/empty/empty-title.svelte +2 -2
- package/dist/components/ui/empty/empty.svelte +2 -5
- package/dist/components/ui/input-otp/context.svelte.d.ts +22 -0
- package/dist/components/ui/input-otp/context.svelte.js +8 -0
- package/dist/components/ui/input-otp/input-otp-group.svelte +5 -2
- package/dist/components/ui/input-otp/input-otp-separator.svelte +5 -5
- package/dist/components/ui/input-otp/input-otp-slot.svelte +50 -17
- package/dist/components/ui/input-otp/input-otp-slot.svelte.d.ts +7 -2
- package/dist/components/ui/input-otp/input-otp.svelte +167 -8
- package/dist/components/ui/input-otp/input-otp.svelte.d.ts +17 -2
- package/dist/components/ui/label/label.svelte +10 -10
- package/dist/components/ui/label/label.svelte.d.ts +3 -2
- package/dist/components/ui/language-switcher/language-switcher.svelte +4 -3
- package/dist/components/ui/light-switch/light-switch.svelte +12 -6
- package/dist/components/ui/phone-input/country-selector.svelte +64 -78
- package/dist/components/ui/phone-input/country-selector.svelte.d.ts +6 -6
- package/dist/components/ui/phone-input/flag.svelte +3 -12
- package/dist/components/ui/phone-input/flag.svelte.d.ts +1 -1
- package/dist/components/ui/phone-input/flags.d.ts +2 -1
- package/dist/components/ui/phone-input/flags.js +4 -8
- package/dist/components/ui/phone-input/index.d.ts +1 -1
- package/dist/components/ui/phone-input/phone-input.svelte +106 -21
- package/dist/components/ui/phone-input/phone-input.svelte.d.ts +1 -2
- package/dist/components/ui/phone-input/types.d.ts +16 -1
- package/dist/components/ui/popover/popover-close.svelte +22 -3
- package/dist/components/ui/popover/popover-close.svelte.d.ts +7 -2
- package/dist/components/ui/popover/popover-content.svelte +80 -18
- package/dist/components/ui/popover/popover-content.svelte.d.ts +10 -6
- package/dist/components/ui/popover/popover-context.svelte.d.ts +13 -0
- package/dist/components/ui/popover/popover-context.svelte.js +13 -0
- package/dist/components/ui/popover/popover-portal.svelte +3 -3
- package/dist/components/ui/popover/popover-portal.svelte.d.ts +5 -1
- package/dist/components/ui/popover/popover-trigger.svelte +62 -10
- package/dist/components/ui/popover/popover-trigger.svelte.d.ts +12 -2
- package/dist/components/ui/popover/popover.svelte +50 -3
- package/dist/components/ui/popover/popover.svelte.d.ts +9 -1
- package/dist/components/ui/separator/separator.svelte +17 -11
- package/dist/components/ui/separator/separator.svelte.d.ts +7 -2
- package/dist/components/ui/sidebar/context.svelte.d.ts +15 -23
- package/dist/components/ui/sidebar/context.svelte.js +33 -21
- package/dist/components/ui/sidebar/sidebar-content.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-footer.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-group-content.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-menu-action.svelte +3 -2
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte +35 -66
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte.d.ts +9 -38
- package/dist/components/ui/sidebar/sidebar-provider.svelte +28 -18
- package/dist/components/ui/sidebar/sidebar-provider.svelte.d.ts +3 -0
- package/dist/components/ui/sidebar/sidebar-rail.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-separator.svelte +11 -8
- package/dist/components/ui/sidebar/sidebar-separator.svelte.d.ts +3 -11
- package/dist/components/ui/sidebar/sidebar-trigger.svelte +2 -2
- package/dist/components/ui/sidebar/sidebar.svelte +34 -23
- package/dist/components/ui/sidebar/sidebar.svelte.d.ts +1 -1
- package/dist/components/ui/skeleton/skeleton.svelte +7 -4
- package/dist/components/ui/skeleton/skeleton.svelte.d.ts +1 -1
- package/dist/components/ui/star-rating/star-rating-star.svelte +57 -31
- package/dist/components/ui/star-rating/star-rating-star.svelte.d.ts +1 -1
- package/dist/components/ui/star-rating/star-rating.svelte +143 -13
- package/dist/components/ui/star-rating/star-rating.svelte.d.ts +31 -2
- package/dist/components/ui/star-rating/types.d.ts +6 -1
- package/dist/components/ui/underline-tabs/underline-tabs-content.svelte +26 -9
- package/dist/components/ui/underline-tabs/underline-tabs-content.svelte.d.ts +9 -2
- package/dist/components/ui/underline-tabs/underline-tabs-list.svelte +15 -8
- package/dist/components/ui/underline-tabs/underline-tabs-list.svelte.d.ts +8 -2
- package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte +65 -34
- package/dist/components/ui/underline-tabs/underline-tabs-trigger.svelte.d.ts +14 -2
- package/dist/components/ui/underline-tabs/underline-tabs.svelte +49 -20
- package/dist/components/ui/underline-tabs/underline-tabs.svelte.d.ts +10 -2
- package/dist/components/ui/underline-tabs/underline-tabs.svelte.js +6 -59
- package/dist/docs/ApiTable.svelte +42 -0
- package/dist/docs/ApiTable.svelte.d.ts +7 -0
- package/dist/docs/CodeBlock.svelte +26 -0
- package/dist/docs/CodeBlock.svelte.d.ts +7 -0
- package/dist/docs/DocsHeader.svelte +25 -0
- package/dist/docs/DocsHeader.svelte.d.ts +6 -0
- package/dist/docs/DocsSidebar.svelte +99 -0
- package/dist/docs/DocsSidebar.svelte.d.ts +3 -0
- package/dist/docs/components.d.ts +27 -0
- package/dist/docs/components.js +897 -0
- package/dist/globals.css +460 -1617
- package/dist/styles/globals.css +136 -2
- package/dist/theme.svelte.d.ts +7 -0
- package/dist/theme.svelte.js +33 -0
- package/dist/utils.d.ts +4 -4
- package/dist/utils.js +18 -3
- package/package.json +4 -34
- package/dist/components/ui/chart/chart-container.svelte +0 -80
- package/dist/components/ui/chart/chart-container.svelte.d.ts +0 -9
- package/dist/components/ui/chart/chart-style.svelte +0 -37
- package/dist/components/ui/chart/chart-style.svelte.d.ts +0 -8
- package/dist/components/ui/chart/chart-tooltip.svelte +0 -184
- package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +0 -27
- package/dist/components/ui/chart/chart-utils.d.ts +0 -36
- package/dist/components/ui/chart/chart-utils.js +0 -38
- package/dist/components/ui/chart/index.d.ts +0 -4
- package/dist/components/ui/chart/index.js +0 -4
- package/dist/components/ui/command/command-dialog.svelte +0 -42
- package/dist/components/ui/command/command-dialog.svelte.d.ts +0 -14
- package/dist/components/ui/command/command-empty.svelte +0 -17
- package/dist/components/ui/command/command-empty.svelte.d.ts +0 -4
- package/dist/components/ui/command/command-group.svelte +0 -33
- package/dist/components/ui/command/command-group.svelte.d.ts +0 -7
- package/dist/components/ui/command/command-input.svelte +0 -33
- package/dist/components/ui/command/command-input.svelte.d.ts +0 -4
- package/dist/components/ui/command/command-item.svelte +0 -27
- package/dist/components/ui/command/command-item.svelte.d.ts +0 -4
- package/dist/components/ui/command/command-link-item.svelte +0 -20
- package/dist/components/ui/command/command-link-item.svelte.d.ts +0 -4
- package/dist/components/ui/command/command-list.svelte +0 -20
- package/dist/components/ui/command/command-list.svelte.d.ts +0 -4
- package/dist/components/ui/command/command-loading.svelte +0 -7
- package/dist/components/ui/command/command-loading.svelte.d.ts +0 -4
- package/dist/components/ui/command/command-separator.svelte +0 -17
- package/dist/components/ui/command/command-separator.svelte.d.ts +0 -4
- package/dist/components/ui/command/command-shortcut.svelte +0 -23
- package/dist/components/ui/command/command-shortcut.svelte.d.ts +0 -5
- package/dist/components/ui/command/command.svelte +0 -28
- package/dist/components/ui/command/command.svelte.d.ts +0 -8
- package/dist/components/ui/command/index.d.ts +0 -12
- package/dist/components/ui/command/index.js +0 -14
- package/dist/components/ui/dialog/dialog-close.svelte +0 -11
- package/dist/components/ui/dialog/dialog-close.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-content.svelte +0 -48
- package/dist/components/ui/dialog/dialog-content.svelte.d.ts +0 -13
- package/dist/components/ui/dialog/dialog-description.svelte +0 -20
- package/dist/components/ui/dialog/dialog-description.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-footer.svelte +0 -32
- package/dist/components/ui/dialog/dialog-footer.svelte.d.ts +0 -8
- package/dist/components/ui/dialog/dialog-header.svelte +0 -20
- package/dist/components/ui/dialog/dialog-header.svelte.d.ts +0 -5
- package/dist/components/ui/dialog/dialog-overlay.svelte +0 -20
- package/dist/components/ui/dialog/dialog-overlay.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-portal.svelte +0 -7
- package/dist/components/ui/dialog/dialog-portal.svelte.d.ts +0 -3
- package/dist/components/ui/dialog/dialog-title.svelte +0 -17
- package/dist/components/ui/dialog/dialog-title.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog-trigger.svelte +0 -11
- package/dist/components/ui/dialog/dialog-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/dialog/dialog.svelte +0 -7
- package/dist/components/ui/dialog/dialog.svelte.d.ts +0 -3
- package/dist/components/ui/dialog/index.d.ts +0 -11
- package/dist/components/ui/dialog/index.js +0 -13
- package/dist/components/ui/input-group/index.d.ts +0 -7
- package/dist/components/ui/input-group/index.js +0 -9
- package/dist/components/ui/input-group/input-group-addon.svelte +0 -59
- package/dist/components/ui/input-group/input-group-addon.svelte.d.ts +0 -38
- package/dist/components/ui/input-group/input-group-button.svelte +0 -49
- package/dist/components/ui/input-group/input-group-button.svelte.d.ts +0 -32
- package/dist/components/ui/input-group/input-group-input.svelte +0 -23
- package/dist/components/ui/input-group/input-group-input.svelte.d.ts +0 -11
- package/dist/components/ui/input-group/input-group-text.svelte +0 -22
- package/dist/components/ui/input-group/input-group-text.svelte.d.ts +0 -5
- package/dist/components/ui/input-group/input-group-textarea.svelte +0 -23
- package/dist/components/ui/input-group/input-group-textarea.svelte.d.ts +0 -3
- package/dist/components/ui/input-group/input-group.svelte +0 -24
- package/dist/components/ui/input-group/input-group.svelte.d.ts +0 -5
- package/dist/components/ui/navigation-menu/index.d.ts +0 -9
- package/dist/components/ui/navigation-menu/index.js +0 -11
- package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +0 -20
- package/dist/components/ui/navigation-menu/navigation-menu-content.svelte.d.ts +0 -4
- package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +0 -22
- package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte.d.ts +0 -4
- package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +0 -17
- package/dist/components/ui/navigation-menu/navigation-menu-item.svelte.d.ts +0 -4
- package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +0 -17
- package/dist/components/ui/navigation-menu/navigation-menu-link.svelte.d.ts +0 -4
- package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +0 -20
- package/dist/components/ui/navigation-menu/navigation-menu-list.svelte.d.ts +0 -4
- package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +0 -30
- package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte.d.ts +0 -5
- package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +0 -22
- package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte.d.ts +0 -4
- package/dist/components/ui/navigation-menu/navigation-menu.svelte +0 -31
- package/dist/components/ui/navigation-menu/navigation-menu.svelte.d.ts +0 -7
- package/dist/components/ui/scroll-area/index.d.ts +0 -3
- package/dist/components/ui/scroll-area/index.js +0 -5
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +0 -30
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +0 -4
- package/dist/components/ui/scroll-area/scroll-area.svelte +0 -43
- package/dist/components/ui/scroll-area/scroll-area.svelte.d.ts +0 -11
- package/dist/components/ui/select/index.d.ts +0 -12
- package/dist/components/ui/select/index.js +0 -14
- package/dist/components/ui/select/select-content.svelte +0 -45
- package/dist/components/ui/select/select-content.svelte.d.ts +0 -11
- package/dist/components/ui/select/select-group-heading.svelte +0 -21
- package/dist/components/ui/select/select-group-heading.svelte.d.ts +0 -10
- package/dist/components/ui/select/select-group.svelte +0 -17
- package/dist/components/ui/select/select-group.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-item.svelte +0 -41
- package/dist/components/ui/select/select-item.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-label.svelte +0 -20
- package/dist/components/ui/select/select-label.svelte.d.ts +0 -6
- package/dist/components/ui/select/select-portal.svelte +0 -7
- package/dist/components/ui/select/select-portal.svelte.d.ts +0 -3
- package/dist/components/ui/select/select-scroll-down-button.svelte +0 -21
- package/dist/components/ui/select/select-scroll-down-button.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-scroll-up-button.svelte +0 -21
- package/dist/components/ui/select/select-scroll-up-button.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-separator.svelte +0 -18
- package/dist/components/ui/select/select-separator.svelte.d.ts +0 -4
- package/dist/components/ui/select/select-trigger.svelte +0 -30
- package/dist/components/ui/select/select-trigger.svelte.d.ts +0 -8
- package/dist/components/ui/select/select.svelte +0 -11
- package/dist/components/ui/select/select.svelte.d.ts +0 -3
- package/dist/components/ui/sheet/index.d.ts +0 -11
- package/dist/components/ui/sheet/index.js +0 -13
- package/dist/components/ui/sheet/sheet-close.svelte +0 -7
- package/dist/components/ui/sheet/sheet-close.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-content.svelte +0 -56
- package/dist/components/ui/sheet/sheet-content.svelte.d.ts +0 -15
- package/dist/components/ui/sheet/sheet-description.svelte +0 -17
- package/dist/components/ui/sheet/sheet-description.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-footer.svelte +0 -20
- package/dist/components/ui/sheet/sheet-footer.svelte.d.ts +0 -5
- package/dist/components/ui/sheet/sheet-header.svelte +0 -20
- package/dist/components/ui/sheet/sheet-header.svelte.d.ts +0 -5
- package/dist/components/ui/sheet/sheet-overlay.svelte +0 -17
- package/dist/components/ui/sheet/sheet-overlay.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-portal.svelte +0 -7
- package/dist/components/ui/sheet/sheet-portal.svelte.d.ts +0 -3
- package/dist/components/ui/sheet/sheet-title.svelte +0 -17
- package/dist/components/ui/sheet/sheet-title.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet-trigger.svelte +0 -7
- package/dist/components/ui/sheet/sheet-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/sheet/sheet.svelte +0 -7
- package/dist/components/ui/sheet/sheet.svelte.d.ts +0 -3
- package/dist/components/ui/spinner/index.d.ts +0 -1
- package/dist/components/ui/spinner/index.js +0 -1
- package/dist/components/ui/spinner/spinner.svelte +0 -26
- package/dist/components/ui/spinner/spinner.svelte.d.ts +0 -4
- package/dist/components/ui/tabs/index.d.ts +0 -5
- package/dist/components/ui/tabs/index.js +0 -7
- package/dist/components/ui/tabs/tabs-content.svelte +0 -17
- package/dist/components/ui/tabs/tabs-content.svelte.d.ts +0 -4
- package/dist/components/ui/tabs/tabs-list.svelte +0 -40
- package/dist/components/ui/tabs/tabs-list.svelte.d.ts +0 -25
- package/dist/components/ui/tabs/tabs-trigger.svelte +0 -23
- package/dist/components/ui/tabs/tabs-trigger.svelte.d.ts +0 -4
- package/dist/components/ui/tabs/tabs.svelte +0 -19
- package/dist/components/ui/tabs/tabs.svelte.d.ts +0 -4
- package/dist/components/ui/textarea/index.d.ts +0 -2
- package/dist/components/ui/textarea/index.js +0 -4
- package/dist/components/ui/textarea/textarea.svelte +0 -23
- package/dist/components/ui/textarea/textarea.svelte.d.ts +0 -5
- package/dist/components/ui/tooltip/index.d.ts +0 -6
- package/dist/components/ui/tooltip/index.js +0 -8
- package/dist/components/ui/tooltip/tooltip-content.svelte +0 -52
- package/dist/components/ui/tooltip/tooltip-content.svelte.d.ts +0 -11
- package/dist/components/ui/tooltip/tooltip-portal.svelte +0 -7
- package/dist/components/ui/tooltip/tooltip-portal.svelte.d.ts +0 -4
- package/dist/components/ui/tooltip/tooltip-provider.svelte +0 -7
- package/dist/components/ui/tooltip/tooltip-provider.svelte.d.ts +0 -4
- package/dist/components/ui/tooltip/tooltip-trigger.svelte +0 -7
- package/dist/components/ui/tooltip/tooltip-trigger.svelte.d.ts +0 -25
- package/dist/components/ui/tooltip/tooltip.svelte +0 -7
- package/dist/components/ui/tooltip/tooltip.svelte.d.ts +0 -25
- package/dist/vitest-examples/Welcome.svelte +0 -8
- package/dist/vitest-examples/Welcome.svelte.d.ts +0 -13
- package/dist/vitest-examples/Welcome.svelte.spec.d.ts +0 -1
- package/dist/vitest-examples/Welcome.svelte.spec.js +0 -11
- package/dist/vitest-examples/greet.d.ts +0 -1
- package/dist/vitest-examples/greet.js +0 -3
- package/dist/vitest-examples/greet.spec.d.ts +0 -1
- package/dist/vitest-examples/greet.spec.js +0 -7
|
@@ -1,11 +1,67 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import { getContext, setContext } from "svelte";
|
|
3
|
+
|
|
4
|
+
export type CollapsibleContext = {
|
|
5
|
+
get open(): boolean;
|
|
6
|
+
get disabled(): boolean;
|
|
7
|
+
toggle: () => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const COLLAPSIBLE_CONTEXT_KEY = "scn-collapsible";
|
|
11
|
+
|
|
12
|
+
export function setCollapsibleContext(ctx: CollapsibleContext): CollapsibleContext {
|
|
13
|
+
return setContext(COLLAPSIBLE_CONTEXT_KEY, ctx);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export function useCollapsibleContext(): CollapsibleContext {
|
|
17
|
+
return getContext<CollapsibleContext>(COLLAPSIBLE_CONTEXT_KEY);
|
|
18
|
+
}
|
|
19
|
+
</script>
|
|
20
|
+
|
|
1
21
|
<script lang="ts">
|
|
2
|
-
import {
|
|
22
|
+
import type { Snippet } from "svelte";
|
|
23
|
+
import { cn } from "../../../utils.js";
|
|
3
24
|
|
|
4
25
|
let {
|
|
5
|
-
|
|
6
|
-
open = $bindable(
|
|
7
|
-
|
|
8
|
-
|
|
26
|
+
defaultOpen = false,
|
|
27
|
+
open = $bindable(defaultOpen),
|
|
28
|
+
disabled = false,
|
|
29
|
+
class: className,
|
|
30
|
+
children,
|
|
31
|
+
child,
|
|
32
|
+
}: {
|
|
33
|
+
defaultOpen?: boolean;
|
|
34
|
+
open?: boolean;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
class?: string;
|
|
37
|
+
children?: Snippet<[{ props: Record<string, unknown> }]>;
|
|
38
|
+
child?: Snippet<[{ props: Record<string, unknown> }]>;
|
|
39
|
+
} = $props();
|
|
40
|
+
|
|
41
|
+
function toggle() {
|
|
42
|
+
if (disabled) return;
|
|
43
|
+
open = !open;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
setCollapsibleContext({
|
|
47
|
+
get open() {
|
|
48
|
+
return open;
|
|
49
|
+
},
|
|
50
|
+
get disabled() {
|
|
51
|
+
return disabled;
|
|
52
|
+
},
|
|
53
|
+
toggle
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
const rootProps = $derived({
|
|
57
|
+
"data-slot": "collapsible",
|
|
58
|
+
"data-state": open ? "open" : "closed",
|
|
59
|
+
class: cn("group/collapsible", className)
|
|
60
|
+
});
|
|
9
61
|
</script>
|
|
10
62
|
|
|
11
|
-
|
|
63
|
+
{#if child}
|
|
64
|
+
{@render child({ props: rootProps })}
|
|
65
|
+
{:else}
|
|
66
|
+
{@render children?.({ props: rootProps })}
|
|
67
|
+
{/if}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export type CollapsibleContext = {
|
|
2
|
+
get open(): boolean;
|
|
3
|
+
get disabled(): boolean;
|
|
4
|
+
toggle: () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare function setCollapsibleContext(ctx: CollapsibleContext): CollapsibleContext;
|
|
7
|
+
export declare function useCollapsibleContext(): CollapsibleContext;
|
|
8
|
+
import type { Snippet } from "svelte";
|
|
9
|
+
type $$ComponentProps = {
|
|
10
|
+
defaultOpen?: boolean;
|
|
11
|
+
open?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
class?: string;
|
|
14
|
+
children?: Snippet<[{
|
|
15
|
+
props: Record<string, unknown>;
|
|
16
|
+
}]>;
|
|
17
|
+
child?: Snippet<[{
|
|
18
|
+
props: Record<string, unknown>;
|
|
19
|
+
}]>;
|
|
20
|
+
};
|
|
21
|
+
declare const Collapsible: import("svelte").Component<$$ComponentProps, {}, "open">;
|
|
3
22
|
type Collapsible = ReturnType<typeof Collapsible>;
|
|
4
23
|
export default Collapsible;
|
|
@@ -1,40 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Creates a reactive TanStack table object for Svelte.
|
|
4
|
-
* @param options Table options to create the table with.
|
|
5
|
-
* @returns A reactive table object.
|
|
6
|
-
* @example
|
|
7
|
-
* ```svelte
|
|
8
|
-
* <script>
|
|
9
|
-
* const table = createSvelteTable({ ... })
|
|
10
|
-
* </script>
|
|
11
|
-
*
|
|
12
|
-
* <table>
|
|
13
|
-
* <thead>
|
|
14
|
-
* {#each table.getHeaderGroups() as headerGroup}
|
|
15
|
-
* <tr>
|
|
16
|
-
* {#each headerGroup.headers as header}
|
|
17
|
-
* <th colspan={header.colSpan}>
|
|
18
|
-
* <FlexRender content={header.column.columnDef.header} context={header.getContext()} />
|
|
19
|
-
* </th>
|
|
20
|
-
* {/each}
|
|
21
|
-
* </tr>
|
|
22
|
-
* {/each}
|
|
23
|
-
* </thead>
|
|
24
|
-
* <!-- ... -->
|
|
25
|
-
* </table>
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export declare function createSvelteTable<TData extends RowData>(options: TableOptions<TData>): import("@tanstack/table-core").Table<TData>;
|
|
29
|
-
type MaybeThunk<T extends object> = T | (() => T | null | undefined);
|
|
30
|
-
type Intersection<T extends readonly unknown[]> = (T extends [infer H, ...infer R] ? H & Intersection<R> : unknown) & {};
|
|
31
|
-
/**
|
|
32
|
-
* Lazily merges several objects (or thunks) while preserving
|
|
33
|
-
* getter semantics from every source.
|
|
34
|
-
*
|
|
35
|
-
* Proxy-based to avoid known WebKit recursion issue.
|
|
36
|
-
*/
|
|
37
|
-
export declare function mergeObjects<Sources extends readonly MaybeThunk<any>[]>(...sources: Sources): Intersection<{
|
|
38
|
-
[K in keyof Sources]: Sources[K];
|
|
39
|
-
}>;
|
|
40
|
-
export {};
|
|
1
|
+
export { createSvelteTable, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, } from "./table-core.svelte.js";
|
|
2
|
+
export type { Cell, CellContext, Column, ColumnDef, ColumnDefTemplate, ColumnFiltersState, HeaderContext, PaginationState, Row, RowModel, RowSelectionState, SortingState, SvelteTableOptions, Table, TableState, Updater, VisibilityState, } from "./table-core.svelte.js";
|
|
@@ -1,110 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Creates a reactive TanStack table object for Svelte.
|
|
4
|
-
* @param options Table options to create the table with.
|
|
5
|
-
* @returns A reactive table object.
|
|
6
|
-
* @example
|
|
7
|
-
* ```svelte
|
|
8
|
-
* <script>
|
|
9
|
-
* const table = createSvelteTable({ ... })
|
|
10
|
-
* </script>
|
|
11
|
-
*
|
|
12
|
-
* <table>
|
|
13
|
-
* <thead>
|
|
14
|
-
* {#each table.getHeaderGroups() as headerGroup}
|
|
15
|
-
* <tr>
|
|
16
|
-
* {#each headerGroup.headers as header}
|
|
17
|
-
* <th colspan={header.colSpan}>
|
|
18
|
-
* <FlexRender content={header.column.columnDef.header} context={header.getContext()} />
|
|
19
|
-
* </th>
|
|
20
|
-
* {/each}
|
|
21
|
-
* </tr>
|
|
22
|
-
* {/each}
|
|
23
|
-
* </thead>
|
|
24
|
-
* <!-- ... -->
|
|
25
|
-
* </table>
|
|
26
|
-
* ```
|
|
27
|
-
*/
|
|
28
|
-
export function createSvelteTable(options) {
|
|
29
|
-
const resolvedOptions = mergeObjects({
|
|
30
|
-
state: {},
|
|
31
|
-
onStateChange() { },
|
|
32
|
-
renderFallbackValue: null,
|
|
33
|
-
mergeOptions: (defaultOptions, options) => {
|
|
34
|
-
return mergeObjects(defaultOptions, options);
|
|
35
|
-
},
|
|
36
|
-
}, options);
|
|
37
|
-
const table = createTable(resolvedOptions);
|
|
38
|
-
let state = $state(table.initialState);
|
|
39
|
-
function updateOptions() {
|
|
40
|
-
table.setOptions(() => {
|
|
41
|
-
return mergeObjects(resolvedOptions, options, {
|
|
42
|
-
state: mergeObjects(state, options.state || {}),
|
|
43
|
-
onStateChange: (updater) => {
|
|
44
|
-
if (updater instanceof Function)
|
|
45
|
-
state = updater(state);
|
|
46
|
-
else
|
|
47
|
-
state = mergeObjects(state, updater);
|
|
48
|
-
options.onStateChange?.(updater);
|
|
49
|
-
},
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
updateOptions();
|
|
54
|
-
$effect.pre(() => {
|
|
55
|
-
updateOptions();
|
|
56
|
-
});
|
|
57
|
-
return table;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Lazily merges several objects (or thunks) while preserving
|
|
61
|
-
* getter semantics from every source.
|
|
62
|
-
*
|
|
63
|
-
* Proxy-based to avoid known WebKit recursion issue.
|
|
64
|
-
*/
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
-
export function mergeObjects(...sources) {
|
|
67
|
-
const resolve = (src) => typeof src === "function" ? (src() ?? undefined) : src;
|
|
68
|
-
const findSourceWithKey = (key) => {
|
|
69
|
-
for (let i = sources.length - 1; i >= 0; i--) {
|
|
70
|
-
const obj = resolve(sources[i]);
|
|
71
|
-
if (obj && key in obj)
|
|
72
|
-
return obj;
|
|
73
|
-
}
|
|
74
|
-
return undefined;
|
|
75
|
-
};
|
|
76
|
-
return new Proxy(Object.create(null), {
|
|
77
|
-
get(_, key) {
|
|
78
|
-
const src = findSourceWithKey(key);
|
|
79
|
-
return src?.[key];
|
|
80
|
-
},
|
|
81
|
-
has(_, key) {
|
|
82
|
-
return !!findSourceWithKey(key);
|
|
83
|
-
},
|
|
84
|
-
ownKeys() {
|
|
85
|
-
// eslint-disable-next-line svelte/prefer-svelte-reactivity
|
|
86
|
-
const all = new Set();
|
|
87
|
-
for (const s of sources) {
|
|
88
|
-
const obj = resolve(s);
|
|
89
|
-
if (obj) {
|
|
90
|
-
for (const k of Reflect.ownKeys(obj)) {
|
|
91
|
-
all.add(k);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return [...all];
|
|
96
|
-
},
|
|
97
|
-
getOwnPropertyDescriptor(_, key) {
|
|
98
|
-
const src = findSourceWithKey(key);
|
|
99
|
-
if (!src)
|
|
100
|
-
return undefined;
|
|
101
|
-
return {
|
|
102
|
-
configurable: true,
|
|
103
|
-
enumerable: true,
|
|
104
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
105
|
-
value: src[key],
|
|
106
|
-
writable: true,
|
|
107
|
-
};
|
|
108
|
-
},
|
|
109
|
-
});
|
|
110
|
-
}
|
|
1
|
+
export { createSvelteTable, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, } from "./table-core.svelte.js";
|
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
lang="ts"
|
|
3
3
|
generics="TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>"
|
|
4
4
|
>
|
|
5
|
-
import type { CellContext, ColumnDefTemplate, HeaderContext } from "
|
|
5
|
+
import type { CellContext, ColumnDefTemplate, HeaderContext } from "./table-core.svelte.js";
|
|
6
6
|
import { RenderComponentConfig, RenderSnippetConfig } from "./render-helpers.js";
|
|
7
7
|
import type { Attachment } from "svelte/attachments";
|
|
8
8
|
type Props = {
|
|
9
9
|
/** The cell or header field of the current cell's column definition. */
|
|
10
|
-
content?: TContext extends
|
|
11
|
-
? ColumnDefTemplate<
|
|
12
|
-
: TContext extends
|
|
13
|
-
? ColumnDefTemplate<
|
|
10
|
+
content?: TContext extends CellContext<TData, TValue>
|
|
11
|
+
? ColumnDefTemplate<CellContext<TData, TValue>>
|
|
12
|
+
: TContext extends HeaderContext<TData, TValue>
|
|
13
|
+
? ColumnDefTemplate<HeaderContext<TData, TValue>>
|
|
14
14
|
: never;
|
|
15
15
|
/** The result of the `getContext()` function of the header or cell */
|
|
16
16
|
context: TContext;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { CellContext, ColumnDefTemplate, HeaderContext } from "
|
|
1
|
+
import type { CellContext, ColumnDefTemplate, HeaderContext } from "./table-core.svelte.js";
|
|
2
2
|
import type { Attachment } from "svelte/attachments";
|
|
3
3
|
declare function $$render<TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>>(): {
|
|
4
4
|
props: {
|
|
5
5
|
/** The cell or header field of the current cell's column definition. */
|
|
6
|
-
content?: TContext extends
|
|
6
|
+
content?: TContext extends CellContext<TData, TValue> ? ColumnDefTemplate<CellContext<TData, TValue>> : TContext extends HeaderContext<TData, TValue> ? ColumnDefTemplate<HeaderContext<TData, TValue>> : never;
|
|
7
7
|
/** The result of the `getContext()` function of the header or cell */
|
|
8
8
|
context: TContext;
|
|
9
9
|
/** Used to pass attachments that can't be gotten through context */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { default as FlexRender } from "./flex-render.svelte";
|
|
2
2
|
export { renderComponent, renderSnippet } from "./render-helpers.js";
|
|
3
|
-
export { createSvelteTable } from "./data-table.svelte.js";
|
|
3
|
+
export { createSvelteTable, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, } from "./data-table.svelte.js";
|
|
4
|
+
export type { Cell, CellContext, Column, ColumnDef, ColumnDefTemplate, ColumnFiltersState, HeaderContext, PaginationState, Row, RowModel, RowSelectionState, SortingState, Table, TableState, Updater, VisibilityState, } from "./table-core.svelte.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default as FlexRender } from "./flex-render.svelte";
|
|
2
2
|
export { renderComponent, renderSnippet } from "./render-helpers.js";
|
|
3
|
-
export { createSvelteTable } from "./data-table.svelte.js";
|
|
3
|
+
export { createSvelteTable, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, } from "./data-table.svelte.js";
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
export type Updater<T> = T | ((prev: T) => T);
|
|
2
|
+
export type SortingState = {
|
|
3
|
+
id: string;
|
|
4
|
+
desc: boolean;
|
|
5
|
+
}[];
|
|
6
|
+
export type ColumnFiltersState = {
|
|
7
|
+
id: string;
|
|
8
|
+
value: unknown;
|
|
9
|
+
}[];
|
|
10
|
+
export type RowSelectionState = Record<string, boolean>;
|
|
11
|
+
export type PaginationState = {
|
|
12
|
+
pageIndex: number;
|
|
13
|
+
pageSize: number;
|
|
14
|
+
};
|
|
15
|
+
export type VisibilityState = Record<string, boolean>;
|
|
16
|
+
export type TableState = {
|
|
17
|
+
sorting: SortingState;
|
|
18
|
+
pagination: PaginationState;
|
|
19
|
+
columnVisibility: VisibilityState;
|
|
20
|
+
rowSelection: RowSelectionState;
|
|
21
|
+
columnFilters: ColumnFiltersState;
|
|
22
|
+
};
|
|
23
|
+
export type ColumnDefTemplate<TProps extends object> = string | ((props: TProps) => unknown) | null;
|
|
24
|
+
export type ColumnDef<T, Value = unknown> = {
|
|
25
|
+
id?: string;
|
|
26
|
+
accessorKey?: string;
|
|
27
|
+
header?: ColumnDefTemplate<HeaderContext<T, Value>>;
|
|
28
|
+
cell?: ColumnDefTemplate<CellContext<T, Value>>;
|
|
29
|
+
size?: number;
|
|
30
|
+
minSize?: number;
|
|
31
|
+
enableSorting?: boolean;
|
|
32
|
+
enableHiding?: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type Column<T, Value = unknown> = {
|
|
35
|
+
id: string;
|
|
36
|
+
columnDef: ColumnDef<T, Value>;
|
|
37
|
+
getCanHide(): boolean;
|
|
38
|
+
getIsVisible(): boolean;
|
|
39
|
+
toggleVisibility(value: boolean): void;
|
|
40
|
+
getFilterValue(): unknown;
|
|
41
|
+
setFilterValue(value: unknown): void;
|
|
42
|
+
};
|
|
43
|
+
export type Cell<T, Value = unknown> = {
|
|
44
|
+
id: string;
|
|
45
|
+
column: Column<T, Value>;
|
|
46
|
+
getContext(): CellContext<T, Value>;
|
|
47
|
+
};
|
|
48
|
+
export type Row<T> = {
|
|
49
|
+
id: string;
|
|
50
|
+
original: T;
|
|
51
|
+
getIsSelected(): boolean;
|
|
52
|
+
toggleSelected(value?: boolean): void;
|
|
53
|
+
getVisibleCells(): Cell<T>[];
|
|
54
|
+
};
|
|
55
|
+
export type CellContext<T, Value = unknown> = {
|
|
56
|
+
row: Row<T>;
|
|
57
|
+
cell?: Cell<T, Value>;
|
|
58
|
+
column: Column<T, Value>;
|
|
59
|
+
table: Table<T>;
|
|
60
|
+
getValue: () => Value;
|
|
61
|
+
renderValue: () => Value;
|
|
62
|
+
};
|
|
63
|
+
export type HeaderContext<T, Value = unknown> = {
|
|
64
|
+
column: Column<T, Value>;
|
|
65
|
+
header?: unknown;
|
|
66
|
+
table: Table<T>;
|
|
67
|
+
};
|
|
68
|
+
export type RowModel<T> = {
|
|
69
|
+
rows: Row<T>[];
|
|
70
|
+
};
|
|
71
|
+
export type Table<T> = {
|
|
72
|
+
getHeaderGroups(): {
|
|
73
|
+
id: string;
|
|
74
|
+
headers: {
|
|
75
|
+
id: string;
|
|
76
|
+
isPlaceholder: boolean;
|
|
77
|
+
column: Column<T>;
|
|
78
|
+
getContext(): HeaderContext<T>;
|
|
79
|
+
}[];
|
|
80
|
+
}[];
|
|
81
|
+
getRowModel(): RowModel<T>;
|
|
82
|
+
getFilteredRowModel(): RowModel<T>;
|
|
83
|
+
getFilteredSelectedRowModel(): RowModel<T>;
|
|
84
|
+
getSelectedRowModel(): RowModel<T>;
|
|
85
|
+
getAllColumns(): Column<T>[];
|
|
86
|
+
getColumn(id: string): Column<T> | undefined;
|
|
87
|
+
getIsAllPageRowsSelected(): boolean;
|
|
88
|
+
getIsSomePageRowsSelected(): boolean;
|
|
89
|
+
toggleAllPageRowsSelected(value?: boolean): void;
|
|
90
|
+
toggleAllRowsSelected(value?: boolean): void;
|
|
91
|
+
getCanPreviousPage(): boolean;
|
|
92
|
+
getCanNextPage(): boolean;
|
|
93
|
+
previousPage(): void;
|
|
94
|
+
nextPage(): void;
|
|
95
|
+
setPageIndex(index: number): void;
|
|
96
|
+
getState(): TableState;
|
|
97
|
+
};
|
|
98
|
+
export type SvelteTableOptions<T> = {
|
|
99
|
+
data: T[];
|
|
100
|
+
columns: ColumnDef<T>[];
|
|
101
|
+
state?: Partial<TableState>;
|
|
102
|
+
onSortingChange?: Updater<SortingState>;
|
|
103
|
+
onPaginationChange?: Updater<PaginationState>;
|
|
104
|
+
onColumnVisibilityChange?: Updater<VisibilityState>;
|
|
105
|
+
onRowSelectionChange?: Updater<RowSelectionState>;
|
|
106
|
+
onColumnFiltersChange?: Updater<ColumnFiltersState>;
|
|
107
|
+
getCoreRowModel?: unknown;
|
|
108
|
+
getSortedRowModel?: unknown;
|
|
109
|
+
getFilteredRowModel?: unknown;
|
|
110
|
+
getPaginationRowModel?: unknown;
|
|
111
|
+
getRowId?: (original: T) => string;
|
|
112
|
+
};
|
|
113
|
+
export declare function createSvelteTable<T>(options: SvelteTableOptions<T>): Table<T>;
|
|
114
|
+
export declare function getCoreRowModel<T>(): () => unknown;
|
|
115
|
+
export declare function getSortedRowModel<T>(): () => unknown;
|
|
116
|
+
export declare function getFilteredRowModel<T>(): () => unknown;
|
|
117
|
+
export declare function getPaginationRowModel<T>(): () => unknown;
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
export function createSvelteTable(options) {
|
|
2
|
+
const tableState = $state({
|
|
3
|
+
sorting: [],
|
|
4
|
+
pagination: { pageIndex: 0, pageSize: 10 },
|
|
5
|
+
columnVisibility: {},
|
|
6
|
+
rowSelection: {},
|
|
7
|
+
columnFilters: [],
|
|
8
|
+
});
|
|
9
|
+
const stateHandlers = {
|
|
10
|
+
sorting: options.onSortingChange,
|
|
11
|
+
pagination: options.onPaginationChange,
|
|
12
|
+
columnVisibility: options.onColumnVisibilityChange,
|
|
13
|
+
rowSelection: options.onRowSelectionChange,
|
|
14
|
+
columnFilters: options.onColumnFiltersChange,
|
|
15
|
+
};
|
|
16
|
+
function readState(key) {
|
|
17
|
+
const s = options.state;
|
|
18
|
+
if (s && key in s)
|
|
19
|
+
return s[key];
|
|
20
|
+
return tableState[key];
|
|
21
|
+
}
|
|
22
|
+
function updateState(key, updater) {
|
|
23
|
+
const next = typeof updater === "function"
|
|
24
|
+
? updater(readState(key))
|
|
25
|
+
: updater;
|
|
26
|
+
tableState[key] = next;
|
|
27
|
+
const handler = stateHandlers[key];
|
|
28
|
+
if (typeof handler === "function")
|
|
29
|
+
handler(updater);
|
|
30
|
+
}
|
|
31
|
+
function getColumnId(def, index) {
|
|
32
|
+
return (def.id ?? def.accessorKey ?? `col_${index}`);
|
|
33
|
+
}
|
|
34
|
+
function getAccessorValue(original, def) {
|
|
35
|
+
if (def.accessorKey != null)
|
|
36
|
+
return original[def.accessorKey];
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
function makeColumn(def, colId) {
|
|
40
|
+
return {
|
|
41
|
+
id: colId,
|
|
42
|
+
columnDef: def,
|
|
43
|
+
getCanHide() {
|
|
44
|
+
return def.enableHiding !== false;
|
|
45
|
+
},
|
|
46
|
+
getIsVisible() {
|
|
47
|
+
return readState("columnVisibility")[colId] !== false;
|
|
48
|
+
},
|
|
49
|
+
toggleVisibility(value) {
|
|
50
|
+
updateState("columnVisibility", (prev) => ({ ...prev, [colId]: value }));
|
|
51
|
+
},
|
|
52
|
+
getFilterValue() {
|
|
53
|
+
const filter = readState("columnFilters").find((f) => f.id === colId);
|
|
54
|
+
return filter?.value;
|
|
55
|
+
},
|
|
56
|
+
setFilterValue(value) {
|
|
57
|
+
updateState("columnFilters", (prev) => {
|
|
58
|
+
const next = prev.filter((f) => f.id !== colId);
|
|
59
|
+
if (value !== undefined)
|
|
60
|
+
next.push({ id: colId, value });
|
|
61
|
+
return next;
|
|
62
|
+
});
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function makeCell(rowId, original, column, row, table) {
|
|
67
|
+
const id = `row_${rowId}_cell_${String(column.id)}`;
|
|
68
|
+
const cellObj = {
|
|
69
|
+
id,
|
|
70
|
+
column,
|
|
71
|
+
getContext() {
|
|
72
|
+
return {
|
|
73
|
+
row,
|
|
74
|
+
cell: cellObj,
|
|
75
|
+
column,
|
|
76
|
+
table,
|
|
77
|
+
getValue: () => getAccessorValue(original, column.columnDef),
|
|
78
|
+
renderValue: () => getAccessorValue(original, column.columnDef),
|
|
79
|
+
};
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
return cellObj;
|
|
83
|
+
}
|
|
84
|
+
function makeRow(index, original, table) {
|
|
85
|
+
const rowId = getRowId(index, original);
|
|
86
|
+
const rowObj = {
|
|
87
|
+
id: rowId,
|
|
88
|
+
original,
|
|
89
|
+
getIsSelected() {
|
|
90
|
+
return readState("rowSelection")[rowId] === true;
|
|
91
|
+
},
|
|
92
|
+
toggleSelected(value) {
|
|
93
|
+
updateState("rowSelection", (prev) => {
|
|
94
|
+
const next = value ?? !(prev[rowId] === true);
|
|
95
|
+
return { ...prev, [rowId]: next };
|
|
96
|
+
});
|
|
97
|
+
},
|
|
98
|
+
getVisibleCells() {
|
|
99
|
+
return getVisibleColumns().map((column) => makeCell(rowId, original, column, rowObj, table));
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
return rowObj;
|
|
103
|
+
}
|
|
104
|
+
function getRowId(index, original) {
|
|
105
|
+
if (options.getRowId)
|
|
106
|
+
return String(options.getRowId(original));
|
|
107
|
+
for (const def of options.columns) {
|
|
108
|
+
if (def.accessorKey != null) {
|
|
109
|
+
const value = original[def.accessorKey];
|
|
110
|
+
if (value != null)
|
|
111
|
+
return String(value);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return String(index);
|
|
115
|
+
}
|
|
116
|
+
function getAllColumns() {
|
|
117
|
+
return options.columns.map((def, index) => makeColumn(def, getColumnId(def, index)));
|
|
118
|
+
}
|
|
119
|
+
function getColumn(id) {
|
|
120
|
+
return getAllColumns().find((column) => column.id === id);
|
|
121
|
+
}
|
|
122
|
+
function getVisibleColumns() {
|
|
123
|
+
return getAllColumns().filter((column) => column.getIsVisible());
|
|
124
|
+
}
|
|
125
|
+
function getAllRows() {
|
|
126
|
+
return options.data.map((original, index) => makeRow(index, original, table));
|
|
127
|
+
}
|
|
128
|
+
function applyFilters(rows) {
|
|
129
|
+
const filters = readState("columnFilters");
|
|
130
|
+
if (!filters.length)
|
|
131
|
+
return rows;
|
|
132
|
+
return rows.filter((row) => filters.every((filter) => {
|
|
133
|
+
const column = getColumn(filter.id);
|
|
134
|
+
if (!column || column.columnDef.accessorKey == null)
|
|
135
|
+
return true;
|
|
136
|
+
const value = getAccessorValue(row.original, column.columnDef);
|
|
137
|
+
return String(value ?? "")
|
|
138
|
+
.toLowerCase()
|
|
139
|
+
.includes(String(filter.value).toLowerCase());
|
|
140
|
+
}));
|
|
141
|
+
}
|
|
142
|
+
function applySorting(rows) {
|
|
143
|
+
const sorting = readState("sorting");
|
|
144
|
+
if (!sorting.length)
|
|
145
|
+
return rows;
|
|
146
|
+
const sort = sorting[0];
|
|
147
|
+
const column = getColumn(sort.id);
|
|
148
|
+
if (!column || column.columnDef.enableSorting === false || column.columnDef.accessorKey == null)
|
|
149
|
+
return rows;
|
|
150
|
+
const key = column.columnDef.accessorKey;
|
|
151
|
+
const dir = sort.desc ? -1 : 1;
|
|
152
|
+
return [...rows].sort((a, b) => {
|
|
153
|
+
const av = a.original[key];
|
|
154
|
+
const bv = b.original[key];
|
|
155
|
+
if (typeof av === "number" && typeof bv === "number") {
|
|
156
|
+
return av < bv ? -dir : av > bv ? dir : 0;
|
|
157
|
+
}
|
|
158
|
+
return dir * String(av ?? "").localeCompare(String(bv ?? ""));
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
function getFilteredRows() {
|
|
162
|
+
return applySorting(applyFilters(getAllRows()));
|
|
163
|
+
}
|
|
164
|
+
function getPageRows() {
|
|
165
|
+
const rows = getFilteredRows();
|
|
166
|
+
const { pageIndex, pageSize } = readState("pagination");
|
|
167
|
+
const start = pageIndex * pageSize;
|
|
168
|
+
return rows.slice(start, start + pageSize);
|
|
169
|
+
}
|
|
170
|
+
const table = {
|
|
171
|
+
getHeaderGroups() {
|
|
172
|
+
const headers = getVisibleColumns().map((column) => ({
|
|
173
|
+
id: `header-${column.id}`,
|
|
174
|
+
isPlaceholder: false,
|
|
175
|
+
column,
|
|
176
|
+
getContext() {
|
|
177
|
+
return { column, table };
|
|
178
|
+
},
|
|
179
|
+
}));
|
|
180
|
+
return [{ id: "0", headers }];
|
|
181
|
+
},
|
|
182
|
+
getRowModel() {
|
|
183
|
+
return { rows: getPageRows() };
|
|
184
|
+
},
|
|
185
|
+
getFilteredRowModel() {
|
|
186
|
+
return { rows: getFilteredRows() };
|
|
187
|
+
},
|
|
188
|
+
getFilteredSelectedRowModel() {
|
|
189
|
+
return { rows: getFilteredRows().filter((row) => row.getIsSelected()) };
|
|
190
|
+
},
|
|
191
|
+
getSelectedRowModel() {
|
|
192
|
+
return { rows: getAllRows().filter((row) => row.getIsSelected()) };
|
|
193
|
+
},
|
|
194
|
+
getAllColumns() {
|
|
195
|
+
return getAllColumns();
|
|
196
|
+
},
|
|
197
|
+
getColumn(id) {
|
|
198
|
+
return getColumn(id);
|
|
199
|
+
},
|
|
200
|
+
getIsAllPageRowsSelected() {
|
|
201
|
+
const rows = getPageRows();
|
|
202
|
+
return rows.length > 0 && rows.every((row) => row.getIsSelected());
|
|
203
|
+
},
|
|
204
|
+
getIsSomePageRowsSelected() {
|
|
205
|
+
return getPageRows().some((row) => row.getIsSelected());
|
|
206
|
+
},
|
|
207
|
+
toggleAllPageRowsSelected(value) {
|
|
208
|
+
const rows = getPageRows();
|
|
209
|
+
const next = value ?? !(rows.length > 0 && rows.every((row) => row.getIsSelected()));
|
|
210
|
+
updateState("rowSelection", (prev) => {
|
|
211
|
+
const copy = { ...prev };
|
|
212
|
+
for (const row of rows)
|
|
213
|
+
copy[row.id] = next;
|
|
214
|
+
return copy;
|
|
215
|
+
});
|
|
216
|
+
},
|
|
217
|
+
toggleAllRowsSelected(value) {
|
|
218
|
+
const rows = getAllRows();
|
|
219
|
+
const next = value ?? !(rows.length > 0 && rows.every((row) => row.getIsSelected()));
|
|
220
|
+
updateState("rowSelection", (prev) => {
|
|
221
|
+
const copy = { ...prev };
|
|
222
|
+
for (const row of rows)
|
|
223
|
+
copy[row.id] = next;
|
|
224
|
+
return copy;
|
|
225
|
+
});
|
|
226
|
+
},
|
|
227
|
+
getCanPreviousPage() {
|
|
228
|
+
return readState("pagination").pageIndex > 0;
|
|
229
|
+
},
|
|
230
|
+
getCanNextPage() {
|
|
231
|
+
const { pageIndex, pageSize } = readState("pagination");
|
|
232
|
+
return (pageIndex + 1) * pageSize < getFilteredRows().length;
|
|
233
|
+
},
|
|
234
|
+
previousPage() {
|
|
235
|
+
updateState("pagination", (prev) => ({ ...prev, pageIndex: Math.max(0, prev.pageIndex - 1) }));
|
|
236
|
+
},
|
|
237
|
+
nextPage() {
|
|
238
|
+
updateState("pagination", (prev) => ({ ...prev, pageIndex: prev.pageIndex + 1 }));
|
|
239
|
+
},
|
|
240
|
+
setPageIndex(index) {
|
|
241
|
+
updateState("pagination", (prev) => ({ ...prev, pageIndex: index }));
|
|
242
|
+
},
|
|
243
|
+
getState() {
|
|
244
|
+
return tableState;
|
|
245
|
+
},
|
|
246
|
+
};
|
|
247
|
+
return table;
|
|
248
|
+
}
|
|
249
|
+
export function getCoreRowModel() {
|
|
250
|
+
return () => ({});
|
|
251
|
+
}
|
|
252
|
+
export function getSortedRowModel() {
|
|
253
|
+
return () => ({});
|
|
254
|
+
}
|
|
255
|
+
export function getFilteredRowModel() {
|
|
256
|
+
return () => ({});
|
|
257
|
+
}
|
|
258
|
+
export function getPaginationRowModel() {
|
|
259
|
+
return () => ({});
|
|
260
|
+
}
|