@kayord/ui 3.0.12 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +70 -156
- package/dist/components/custom/animations/NumberTicker.svelte +2 -3
- package/dist/components/custom/copy-button/CopyButton.svelte +0 -1
- package/dist/components/custom/data-table/DataTable.svelte +42 -69
- package/dist/components/custom/data-table/DataTable.svelte.d.ts +14 -9
- package/dist/components/custom/data-table/DataTableFooter.svelte +7 -6
- package/dist/components/custom/data-table/DataTableFooter.svelte.d.ts +9 -8
- package/dist/components/custom/data-table/DataTableHeader.svelte +27 -13
- package/dist/components/custom/data-table/DataTableHeader.svelte.d.ts +9 -9
- package/dist/components/custom/data-table/DataTableView.svelte +7 -6
- package/dist/components/custom/data-table/DataTableView.svelte.d.ts +8 -7
- package/dist/components/custom/data-table/FullscreenModeToggle.svelte +11 -6
- package/dist/components/custom/data-table/Pagination.svelte +57 -41
- package/dist/components/custom/data-table/Pagination.svelte.d.ts +9 -8
- package/dist/components/custom/data-table/data-table-utils.js +19 -21
- package/dist/components/custom/data-table/features.d.ts +157 -0
- package/dist/components/custom/data-table/features.js +36 -0
- package/dist/components/custom/data-table/index.d.ts +5 -2
- package/dist/components/custom/data-table/index.js +3 -2
- package/dist/components/custom/data-table/shad-table.svelte.d.ts +9 -8
- package/dist/components/custom/data-table/shad-table.svelte.js +51 -230
- package/dist/components/custom/data-table/table-search-params.d.ts +9 -7
- package/dist/components/custom/data-table/table-search-params.js +29 -20
- package/dist/components/custom/data-table/table-url-sync.svelte.d.ts +42 -0
- package/dist/components/custom/data-table/table-url-sync.svelte.js +81 -0
- package/dist/components/custom/data-table/types.d.ts +9 -5
- package/dist/components/custom/light-switch.svelte/LightSwitch.svelte +1 -1
- package/dist/components/custom/loader/Loader.svelte +0 -2
- package/dist/components/custom/loader/Loader.svelte.d.ts +1 -3
- package/dist/components/custom/theme-selector/ThemeSelector.svelte +1 -1
- package/dist/components/ui/accordion/accordion-content.svelte +2 -2
- package/dist/components/ui/accordion/accordion-item.svelte +5 -1
- package/dist/components/ui/accordion/accordion-trigger.svelte +5 -11
- package/dist/components/ui/alert/alert-action.svelte +6 -1
- package/dist/components/ui/alert/alert-description.svelte +1 -1
- package/dist/components/ui/alert/alert-title.svelte +1 -1
- package/dist/components/ui/alert/alert.svelte +8 -3
- package/dist/components/ui/alert-dialog/alert-dialog-action.svelte +5 -1
- package/dist/components/ui/alert-dialog/alert-dialog-cancel.svelte +5 -1
- package/dist/components/ui/alert-dialog/alert-dialog-content.svelte +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog-description.svelte +6 -5
- package/dist/components/ui/alert-dialog/alert-dialog-footer.svelte +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog-header.svelte +1 -4
- package/dist/components/ui/alert-dialog/alert-dialog-media.svelte +1 -4
- package/dist/components/ui/alert-dialog/alert-dialog-overlay.svelte +6 -5
- package/dist/components/ui/alert-dialog/alert-dialog-title.svelte +6 -5
- package/dist/components/ui/avatar/avatar-fallback.svelte +6 -2
- package/dist/components/ui/avatar/avatar-group-count.svelte +1 -1
- package/dist/components/ui/avatar/avatar-group.svelte +1 -1
- package/dist/components/ui/avatar/avatar-image.svelte +6 -2
- package/dist/components/ui/avatar/avatar.svelte +1 -1
- package/dist/components/ui/badge/badge.svelte +1 -2
- package/dist/components/ui/breadcrumb/breadcrumb-ellipsis.svelte +3 -3
- package/dist/components/ui/breadcrumb/breadcrumb-item.svelte +12 -2
- package/dist/components/ui/breadcrumb/breadcrumb-list.svelte +7 -2
- package/dist/components/ui/breadcrumb/breadcrumb-page.svelte +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +8 -3
- package/dist/components/ui/button/button.svelte +5 -10
- package/dist/components/ui/button/index.js +1 -1
- package/dist/components/ui/button-group/button-group-text.svelte +1 -4
- package/dist/components/ui/calendar/calendar-cell.svelte +5 -1
- package/dist/components/ui/calendar/calendar-day.svelte +7 -3
- package/dist/components/ui/calendar/calendar-grid-body.svelte +5 -1
- package/dist/components/ui/calendar/calendar-grid-head.svelte +5 -1
- package/dist/components/ui/calendar/calendar-grid-row.svelte +5 -1
- package/dist/components/ui/calendar/calendar-grid.svelte +10 -2
- package/dist/components/ui/calendar/calendar-head-cell.svelte +9 -2
- package/dist/components/ui/calendar/calendar-header.svelte +9 -2
- package/dist/components/ui/calendar/calendar-heading.svelte +10 -2
- package/dist/components/ui/calendar/calendar-month-select.svelte +7 -5
- package/dist/components/ui/calendar/calendar-months.svelte +5 -1
- package/dist/components/ui/calendar/calendar-next-button.svelte +1 -1
- package/dist/components/ui/calendar/calendar-prev-button.svelte +1 -1
- package/dist/components/ui/calendar/calendar-year-select.svelte +7 -5
- package/dist/components/ui/calendar/calendar.svelte +1 -1
- package/dist/components/ui/card/card-action.svelte +4 -1
- package/dist/components/ui/card/card-content.svelte +6 -1
- package/dist/components/ui/card/card-description.svelte +6 -1
- package/dist/components/ui/card/card-footer.svelte +1 -1
- package/dist/components/ui/card/card-header.svelte +1 -1
- package/dist/components/ui/card/card.svelte +1 -4
- package/dist/components/ui/carousel/carousel-content.svelte +5 -1
- package/dist/components/ui/carousel/carousel-item.svelte +5 -1
- package/dist/components/ui/carousel/carousel-next.svelte +3 -3
- package/dist/components/ui/carousel/carousel-previous.svelte +3 -3
- package/dist/components/ui/carousel/carousel.svelte +6 -1
- package/dist/components/ui/chart/chart-tooltip.svelte +17 -8
- package/dist/components/ui/chart/chart-tooltip.svelte.d.ts +2 -1
- package/dist/components/ui/chart/chart-utils.js +3 -1
- package/dist/components/ui/checkbox/checkbox.svelte +9 -6
- package/dist/components/ui/collapsible/collapsible.svelte +5 -1
- package/dist/components/ui/command/command-dialog.svelte +1 -1
- package/dist/components/ui/command/command-empty.svelte +5 -1
- package/dist/components/ui/command/command-group.svelte +2 -5
- package/dist/components/ui/command/command-input.svelte +6 -5
- package/dist/components/ui/command/command-item.svelte +9 -6
- package/dist/components/ui/command/command-link-item.svelte +6 -2
- package/dist/components/ui/command/command-list.svelte +6 -2
- package/dist/components/ui/command/command-separator.svelte +6 -2
- package/dist/components/ui/command/command-shortcut.svelte +1 -4
- package/dist/components/ui/command/command.svelte +1 -1
- package/dist/components/ui/context-menu/context-menu-checkbox-item.svelte +4 -4
- package/dist/components/ui/context-menu/context-menu-content.svelte +1 -1
- package/dist/components/ui/context-menu/context-menu-group-heading.svelte +1 -1
- package/dist/components/ui/context-menu/context-menu-item.svelte +1 -1
- package/dist/components/ui/context-menu/context-menu-label.svelte +1 -1
- package/dist/components/ui/context-menu/context-menu-radio-group.svelte +11 -2
- package/dist/components/ui/context-menu/context-menu-radio-item.svelte +4 -4
- package/dist/components/ui/context-menu/context-menu-separator.svelte +6 -2
- package/dist/components/ui/context-menu/context-menu-shortcut.svelte +1 -4
- package/dist/components/ui/context-menu/context-menu-sub-content.svelte +6 -5
- package/dist/components/ui/context-menu/context-menu-sub-trigger.svelte +2 -2
- package/dist/components/ui/context-menu/context-menu-trigger.svelte +5 -1
- package/dist/components/ui/data-table/index.d.ts +2 -3
- package/dist/components/ui/data-table/index.js +1 -3
- package/dist/components/ui/dialog/dialog-close.svelte +5 -1
- package/dist/components/ui/dialog/dialog-content.svelte +3 -3
- package/dist/components/ui/dialog/dialog-description.svelte +6 -5
- package/dist/components/ui/dialog/dialog-footer.svelte +1 -4
- package/dist/components/ui/dialog/dialog-header.svelte +6 -1
- package/dist/components/ui/dialog/dialog-overlay.svelte +6 -5
- package/dist/components/ui/dialog/dialog-title.svelte +5 -1
- package/dist/components/ui/dialog/dialog-trigger.svelte +5 -1
- package/dist/components/ui/drawer/drawer-content.svelte +2 -5
- package/dist/components/ui/drawer/drawer-description.svelte +6 -2
- package/dist/components/ui/drawer/drawer-footer.svelte +6 -1
- package/dist/components/ui/drawer/drawer-header.svelte +1 -4
- package/dist/components/ui/drawer/drawer-overlay.svelte +6 -5
- package/dist/components/ui/drawer/drawer-title.svelte +6 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-group.svelte +6 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +6 -6
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-group.svelte +11 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +4 -4
- package/dist/components/ui/dropdown-menu/dropdown-menu-separator.svelte +6 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +1 -4
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +6 -5
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +2 -2
- package/dist/components/ui/empty/empty-content.svelte +4 -1
- package/dist/components/ui/empty/empty-description.svelte +1 -1
- package/dist/components/ui/empty/empty-header.svelte +1 -1
- package/dist/components/ui/empty/empty-title.svelte +6 -1
- package/dist/components/ui/empty/empty.svelte +1 -1
- package/dist/components/ui/field/field-content.svelte +1 -1
- package/dist/components/ui/field/field-description.svelte +2 -2
- package/dist/components/ui/field/field-error.svelte +1 -1
- package/dist/components/ui/field/field-group.svelte +1 -1
- package/dist/components/ui/field/field-label.svelte +7 -2
- package/dist/components/ui/field/field-separator.svelte +2 -2
- package/dist/components/ui/field/field-set.svelte +1 -4
- package/dist/components/ui/field/field-title.svelte +1 -4
- package/dist/components/ui/form/form-description.svelte +1 -1
- package/dist/components/ui/form/form-element-field.svelte +2 -1
- package/dist/components/ui/form/form-field-errors.svelte +5 -1
- package/dist/components/ui/form/form-field.svelte +2 -1
- package/dist/components/ui/form/form-label.svelte +5 -1
- package/dist/components/ui/form/form-legend.svelte +6 -2
- package/dist/components/ui/hover-card/hover-card-content.svelte +1 -4
- package/dist/components/ui/input/input.svelte +4 -3
- package/dist/components/ui/input-group/input-group-addon.svelte +1 -2
- package/dist/components/ui/input-group/input-group-input.svelte +1 -4
- package/dist/components/ui/input-group/input-group-text.svelte +1 -4
- package/dist/components/ui/input-group/input-group-textarea.svelte +1 -4
- package/dist/components/ui/input-group/input-group.svelte +1 -1
- package/dist/components/ui/input-otp/input-otp-group.svelte +1 -4
- package/dist/components/ui/input-otp/input-otp-separator.svelte +3 -3
- package/dist/components/ui/input-otp/input-otp-slot.svelte +11 -4
- package/dist/components/ui/input-otp/input-otp.svelte +1 -1
- package/dist/components/ui/item/item-actions.svelte +6 -1
- package/dist/components/ui/item/item-content.svelte +1 -1
- package/dist/components/ui/item/item-description.svelte +1 -1
- package/dist/components/ui/item/item-footer.svelte +1 -1
- package/dist/components/ui/item/item-group.svelte +1 -4
- package/dist/components/ui/item/item-header.svelte +1 -1
- package/dist/components/ui/item/item-media.svelte +1 -2
- package/dist/components/ui/item/item-separator.svelte +12 -2
- package/dist/components/ui/item/item-title.svelte +1 -4
- package/dist/components/ui/kbd/kbd-group.svelte +6 -1
- package/dist/components/ui/kbd/kbd.svelte +1 -1
- package/dist/components/ui/label/label.svelte +6 -2
- package/dist/components/ui/menubar/menubar-checkbox-item.svelte +6 -6
- package/dist/components/ui/menubar/menubar-content.svelte +1 -1
- package/dist/components/ui/menubar/menubar-item.svelte +1 -4
- package/dist/components/ui/menubar/menubar-radio-group.svelte +5 -1
- package/dist/components/ui/menubar/menubar-radio-item.svelte +4 -4
- package/dist/components/ui/menubar/menubar-separator.svelte +5 -1
- package/dist/components/ui/menubar/menubar-shortcut.svelte +1 -4
- package/dist/components/ui/menubar/menubar-sub-content.svelte +6 -5
- package/dist/components/ui/menubar/menubar-sub-trigger.svelte +2 -2
- package/dist/components/ui/menubar/menubar-trigger.svelte +6 -5
- package/dist/components/ui/menubar/menubar.svelte +6 -2
- package/dist/components/ui/native-select/index.d.ts +1 -1
- package/dist/components/ui/native-select/index.js +1 -1
- package/dist/components/ui/native-select/native-select-opt-group.svelte +5 -1
- package/dist/components/ui/native-select/native-select.svelte +7 -8
- package/dist/components/ui/navigation-menu/navigation-menu-content.svelte +6 -2
- package/dist/components/ui/navigation-menu/navigation-menu-indicator.svelte +6 -2
- package/dist/components/ui/navigation-menu/navigation-menu-item.svelte +5 -1
- package/dist/components/ui/navigation-menu/navigation-menu-link.svelte +6 -5
- package/dist/components/ui/navigation-menu/navigation-menu-list.svelte +9 -2
- package/dist/components/ui/navigation-menu/navigation-menu-trigger.svelte +2 -5
- package/dist/components/ui/navigation-menu/navigation-menu-viewport.svelte +6 -2
- package/dist/components/ui/navigation-menu/navigation-menu.svelte +4 -1
- package/dist/components/ui/pagination/pagination-content.svelte +6 -1
- package/dist/components/ui/pagination/pagination-ellipsis.svelte +3 -6
- package/dist/components/ui/pagination/pagination-item.svelte +5 -1
- package/dist/components/ui/pagination/pagination-link.svelte +5 -1
- package/dist/components/ui/pagination/pagination-next-button.svelte +1 -1
- package/dist/components/ui/pagination/pagination-next.svelte +6 -2
- package/dist/components/ui/pagination/pagination-prev-button.svelte +1 -1
- package/dist/components/ui/pagination/pagination-previous.svelte +11 -3
- package/dist/components/ui/popover/popover-content.svelte +1 -1
- package/dist/components/ui/popover/popover-description.svelte +6 -1
- package/dist/components/ui/popover/popover-header.svelte +6 -1
- package/dist/components/ui/popover/popover-title.svelte +6 -1
- package/dist/components/ui/popover/popover-trigger.svelte +11 -2
- package/dist/components/ui/progress/progress.svelte +1 -1
- package/dist/components/ui/radio-group/radio-group-item.svelte +3 -5
- package/dist/components/ui/radio-group/radio-group.svelte +1 -1
- package/dist/components/ui/range-calendar/range-calendar-cell.svelte +6 -2
- package/dist/components/ui/range-calendar/range-calendar-day.svelte +8 -4
- package/dist/components/ui/range-calendar/range-calendar-grid-row.svelte +5 -1
- package/dist/components/ui/range-calendar/range-calendar-grid.svelte +5 -1
- package/dist/components/ui/range-calendar/range-calendar-head-cell.svelte +9 -2
- package/dist/components/ui/range-calendar/range-calendar-header.svelte +9 -2
- package/dist/components/ui/range-calendar/range-calendar-heading.svelte +10 -2
- package/dist/components/ui/range-calendar/range-calendar-month-select.svelte +6 -4
- package/dist/components/ui/range-calendar/range-calendar-months.svelte +5 -1
- package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +1 -1
- package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +1 -1
- package/dist/components/ui/range-calendar/range-calendar-year-select.svelte +6 -4
- package/dist/components/ui/range-calendar/range-calendar.svelte +1 -1
- package/dist/components/ui/resizable/resizable-handle.svelte +2 -2
- package/dist/components/ui/resizable/resizable-pane-group.svelte +4 -1
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +5 -2
- package/dist/components/ui/scroll-area/scroll-area.svelte +7 -2
- package/dist/components/ui/select/select-content.svelte +4 -2
- package/dist/components/ui/select/select-group-heading.svelte +1 -1
- package/dist/components/ui/select/select-group.svelte +11 -2
- package/dist/components/ui/select/select-item.svelte +3 -3
- package/dist/components/ui/select/select-label.svelte +1 -1
- package/dist/components/ui/select/select-scroll-down-button.svelte +3 -6
- package/dist/components/ui/select/select-scroll-up-button.svelte +3 -6
- package/dist/components/ui/select/select-separator.svelte +6 -2
- package/dist/components/ui/select/select-trigger.svelte +3 -3
- package/dist/components/ui/select/select.svelte +5 -1
- package/dist/components/ui/separator/separator.svelte +1 -1
- package/dist/components/ui/sheet/sheet-content.svelte +3 -3
- package/dist/components/ui/sheet/sheet-description.svelte +6 -2
- package/dist/components/ui/sheet/sheet-footer.svelte +6 -1
- package/dist/components/ui/sheet/sheet-header.svelte +6 -1
- package/dist/components/ui/sheet/sheet-overlay.svelte +6 -2
- package/dist/components/ui/sheet/sheet-title.svelte +6 -2
- 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-group.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-header.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-input.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-inset.svelte +1 -4
- package/dist/components/ui/sidebar/sidebar-menu-badge.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-menu-button.svelte +1 -2
- package/dist/components/ui/sidebar/sidebar-menu-skeleton.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-menu-sub.svelte +1 -4
- package/dist/components/ui/sidebar/sidebar-menu.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-provider.svelte +10 -2
- package/dist/components/ui/sidebar/sidebar-rail.svelte +1 -1
- package/dist/components/ui/sidebar/sidebar-separator.svelte +6 -2
- package/dist/components/ui/sidebar/sidebar-trigger.svelte +2 -2
- package/dist/components/ui/sidebar/sidebar.svelte +11 -5
- package/dist/components/ui/skeleton/skeleton.svelte +1 -1
- package/dist/components/ui/slider/slider.svelte +6 -4
- package/dist/components/ui/sonner/sonner.svelte +5 -5
- package/dist/components/ui/spinner/spinner.svelte +2 -10
- package/dist/components/ui/switch/switch.svelte +2 -2
- package/dist/components/ui/table/table-caption.svelte +1 -1
- package/dist/components/ui/table/table-cell.svelte +7 -7
- package/dist/components/ui/table/table-footer.svelte +1 -1
- package/dist/components/ui/table/table-head.svelte +7 -10
- package/dist/components/ui/table/table-header.svelte +6 -1
- package/dist/components/ui/table/table-row.svelte +1 -6
- package/dist/components/ui/tabs/tabs-content.svelte +6 -2
- package/dist/components/ui/tabs/tabs-trigger.svelte +7 -3
- package/dist/components/ui/tabs/tabs.svelte +1 -1
- package/dist/components/ui/textarea/textarea.svelte +1 -1
- package/dist/components/ui/toggle/index.d.ts +1 -1
- package/dist/components/ui/toggle/index.js +1 -1
- package/dist/components/ui/toggle-group/toggle-group-item.svelte +1 -1
- package/dist/components/ui/toggle-group/toggle-group.svelte +1 -1
- package/dist/components/ui/tooltip/tooltip-content.svelte +2 -2
- package/dist/data-table/index.d.ts +4 -1
- package/dist/data-table/index.js +11 -1
- package/package.json +32 -26
- package/dist/components/custom/data-table/shad-table-old.svelte.d.ts +0 -9
- package/dist/components/custom/data-table/shad-table-old.svelte.js +0 -202
- package/dist/components/ui/data-table/data-table.svelte.d.ts +0 -40
- package/dist/components/ui/data-table/data-table.svelte.js +0 -110
- package/dist/components/ui/data-table/flex-render.svelte +0 -37
- package/dist/components/ui/data-table/flex-render.svelte.d.ts +0 -33
- package/dist/components/ui/data-table/render-helpers.d.ts +0 -90
- package/dist/components/ui/data-table/render-helpers.js +0 -99
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
bind:this={ref}
|
|
16
16
|
data-slot={dataSlot}
|
|
17
17
|
class={cn(
|
|
18
|
-
"border-input focus-visible:border-ring focus-visible:ring-ring/50 disabled:bg-input/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40
|
|
18
|
+
"rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:bg-input/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 flex field-sizing-content min-h-16 w-full outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
|
|
19
19
|
className
|
|
20
20
|
)}
|
|
21
21
|
bind:value
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import Root from "./toggle.svelte";
|
|
2
|
-
export { toggleVariants, type ToggleSize, type ToggleVariant, type ToggleVariants } from "./toggle.svelte";
|
|
2
|
+
export { toggleVariants, type ToggleSize, type ToggleVariant, type ToggleVariants, } from "./toggle.svelte";
|
|
3
3
|
export { Root, Root as Toggle, };
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
data-size={ctx.size || size}
|
|
24
24
|
data-spacing={ctx.spacing}
|
|
25
25
|
class={cn(
|
|
26
|
-
"
|
|
26
|
+
"group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg shrink-0 focus:z-10 focus-visible:z-10 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
|
|
27
27
|
toggleVariants({
|
|
28
28
|
variant: ctx.variant || variant,
|
|
29
29
|
size: ctx.size || size,
|
|
@@ -68,7 +68,7 @@ get along, so we shut typescript up by casting `value` to `never`.
|
|
|
68
68
|
data-spacing={spacing}
|
|
69
69
|
style={`--gap: ${spacing}`}
|
|
70
70
|
class={cn(
|
|
71
|
-
"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))]
|
|
71
|
+
"rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-vertical:flex-col data-vertical:items-stretch",
|
|
72
72
|
className
|
|
73
73
|
)}
|
|
74
74
|
{...restProps}
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
{sideOffset}
|
|
28
28
|
{side}
|
|
29
29
|
class={cn(
|
|
30
|
-
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95
|
|
30
|
+
"inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-xs has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 z-50 w-fit max-w-xs origin-(--bits-tooltip-content-transform-origin) bg-foreground text-background",
|
|
31
31
|
className
|
|
32
32
|
)}
|
|
33
33
|
{...restProps}
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
{#snippet child({ props })}
|
|
38
38
|
<div
|
|
39
39
|
class={cn(
|
|
40
|
-
"
|
|
40
|
+
"size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] z-50 bg-foreground fill-foreground",
|
|
41
41
|
"data-[side=top]:translate-x-1/2 data-[side=top]:translate-y-[calc(-50%+2px)]",
|
|
42
42
|
"data-[side=bottom]:-translate-x-1/2 data-[side=bottom]:-translate-y-[calc(-50%+1px)]",
|
|
43
43
|
"data-[side=right]:translate-x-[calc(50%+2px)] data-[side=right]:translate-y-1/2",
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from "../components/ui/data-table/index.js";
|
|
2
|
+
export { features } from "../components/custom/data-table/features";
|
|
3
|
+
export type { DataTableFeatures } from "../components/custom/data-table/features";
|
|
2
4
|
export * from "../components/custom/data-table/index.js";
|
|
5
|
+
export { aggregationFns } from "../components/custom/data-table/data-table-utils.js";
|
package/dist/data-table/index.js
CHANGED
|
@@ -1,2 +1,12 @@
|
|
|
1
|
-
export
|
|
1
|
+
// Re-export the official TanStack Svelte v9 adapter surface (createTable,
|
|
2
|
+
// FlexRender, renderComponent/renderSnippet, createTableState, and all types).
|
|
3
|
+
// Plus the library's extras: useTableUrlSync, createColumnHelperFor, etc.
|
|
4
|
+
export * from "../components/ui/data-table/index.js";
|
|
5
|
+
// The feature set (value + type) used by createShadTable. Consumers type
|
|
6
|
+
// columns/tables with the standard TanStack types, e.g.
|
|
7
|
+
// `ColumnDef<DataTableFeatures, TData>` / `Table<DataTableFeatures, TData>`.
|
|
8
|
+
export { features } from "../components/custom/data-table/features";
|
|
2
9
|
export * from "../components/custom/data-table/index.js";
|
|
10
|
+
// Disambiguate the library's `aggregationFns` (sum/min/max/...) helper from
|
|
11
|
+
// the TanStack registry re-exported (as a type) by the adapter above.
|
|
12
|
+
export { aggregationFns } from "../components/custom/data-table/data-table-utils.js";
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kayord/ui",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "4.0.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
|
-
"url": "git+https://github.com/kayordDX/ui"
|
|
7
|
+
"url": "git+https://github.com/kayordDX/ui.git"
|
|
8
8
|
},
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
@@ -55,34 +55,39 @@
|
|
|
55
55
|
"files": [
|
|
56
56
|
"dist",
|
|
57
57
|
"!dist/**/*.test.*",
|
|
58
|
-
"!dist/**/*.spec.*"
|
|
58
|
+
"!dist/**/*.spec.*",
|
|
59
|
+
"!dist/**/*harness*"
|
|
59
60
|
],
|
|
60
61
|
"peerDependencies": {
|
|
61
62
|
"@internationalized/date": "^3.10.0",
|
|
62
63
|
"@lucide/svelte": ">= 1.0.0 < 2.0.0",
|
|
63
|
-
"@
|
|
64
|
+
"@sveltejs/kit": "^2.12.0",
|
|
65
|
+
"@tanstack/svelte-table": ">= 9.0.0 < 10.0.0",
|
|
64
66
|
"embla-carousel-svelte": "^8.6.0",
|
|
65
67
|
"formsnap": "^2.0.1",
|
|
66
|
-
"layerchart": "^2.0.0
|
|
68
|
+
"layerchart": "^2.0.0",
|
|
67
69
|
"mode-watcher": "^1.1.0",
|
|
68
70
|
"paneforge": "^1.0.2",
|
|
71
|
+
"shadcn-svelte": "^1.5.0",
|
|
69
72
|
"svelte": "^5.0.0",
|
|
70
73
|
"svelte-sonner": "^1.0.5",
|
|
71
74
|
"sveltekit-superforms": "^2.27.1",
|
|
72
|
-
"vaul-svelte": "^1.0.0-next.7"
|
|
73
|
-
"zod": "^4.0.5"
|
|
75
|
+
"vaul-svelte": "^1.0.0-next.7"
|
|
74
76
|
},
|
|
75
77
|
"peerDependenciesMeta": {
|
|
76
78
|
"layerchart": {
|
|
77
79
|
"optional": true
|
|
78
80
|
},
|
|
81
|
+
"shadcn-svelte": {
|
|
82
|
+
"optional": true
|
|
83
|
+
},
|
|
79
84
|
"svelte-sonner": {
|
|
80
85
|
"optional": true
|
|
81
86
|
},
|
|
82
87
|
"embla-carousel-svelte": {
|
|
83
88
|
"optional": true
|
|
84
89
|
},
|
|
85
|
-
"@tanstack/table
|
|
90
|
+
"@tanstack/svelte-table": {
|
|
86
91
|
"optional": true
|
|
87
92
|
},
|
|
88
93
|
"vaul-svelte": {
|
|
@@ -94,9 +99,6 @@
|
|
|
94
99
|
"formsnap": {
|
|
95
100
|
"optional": true
|
|
96
101
|
},
|
|
97
|
-
"zod": {
|
|
98
|
-
"optional": true
|
|
99
|
-
},
|
|
100
102
|
"@internationalized/date": {
|
|
101
103
|
"optional": true
|
|
102
104
|
},
|
|
@@ -107,19 +109,22 @@
|
|
|
107
109
|
"dependencies": {
|
|
108
110
|
"bits-ui": "2.18.1",
|
|
109
111
|
"clsx": "^2.1.1",
|
|
112
|
+
"runed": "^0.37.1",
|
|
110
113
|
"tailwind-merge": "^3.6.0",
|
|
111
|
-
"tailwind-variants": "^3.3.
|
|
114
|
+
"tailwind-variants": "^3.3.1",
|
|
115
|
+
"zod": "4.4.3"
|
|
112
116
|
},
|
|
113
117
|
"devDependencies": {
|
|
114
118
|
"@eslint/compat": "^2.1.0",
|
|
115
119
|
"@eslint/js": "^10.0.1",
|
|
116
120
|
"@internationalized/date": "^3.12.3",
|
|
117
|
-
"@lucide/svelte": "^1.
|
|
121
|
+
"@lucide/svelte": "^1.31.0",
|
|
118
122
|
"@sveltejs/adapter-auto": "^7.0.1",
|
|
119
123
|
"@sveltejs/kit": "^2.70.2",
|
|
120
124
|
"@sveltejs/package": "^2.5.8",
|
|
121
|
-
"@sveltejs/vite-plugin-svelte": "7.
|
|
125
|
+
"@sveltejs/vite-plugin-svelte": "7.3.0",
|
|
122
126
|
"@tailwindcss/vite": "^4.3.3",
|
|
127
|
+
"@tanstack/svelte-table": "^9.1.2",
|
|
123
128
|
"@types/d3-scale": "^4.0.9",
|
|
124
129
|
"@types/d3-shape": "^3.1.8",
|
|
125
130
|
"@vitest/browser": "^4.1.10",
|
|
@@ -127,33 +132,33 @@
|
|
|
127
132
|
"d3-scale": "^4.0.2",
|
|
128
133
|
"d3-shape": "^3.2.0",
|
|
129
134
|
"embla-carousel-svelte": "^8.6.0",
|
|
130
|
-
"eslint": "^10.8.
|
|
135
|
+
"eslint": "^10.8.1",
|
|
131
136
|
"eslint-config-prettier": "^10.1.8",
|
|
132
|
-
"eslint-plugin-svelte": "^3.
|
|
137
|
+
"eslint-plugin-svelte": "^3.23.0",
|
|
133
138
|
"formsnap": "^2.0.1",
|
|
134
|
-
"globals": "^17.
|
|
135
|
-
"layerchart": "^2.0
|
|
139
|
+
"globals": "^17.11.0",
|
|
140
|
+
"layerchart": "^2.2.0",
|
|
136
141
|
"mode-watcher": "^1.1.0",
|
|
137
142
|
"paneforge": "^1.0.2",
|
|
143
|
+
"playwright": "^1.60.0",
|
|
138
144
|
"prettier": "^3.9.6",
|
|
139
145
|
"prettier-plugin-svelte": "4.1.1",
|
|
140
146
|
"prettier-plugin-tailwindcss": "^0.8.1",
|
|
141
|
-
"publint": "^0.3.
|
|
142
|
-
"
|
|
143
|
-
"svelte": "^5.56.
|
|
144
|
-
"svelte-check": "^4.7.
|
|
147
|
+
"publint": "^0.3.23",
|
|
148
|
+
"shadcn-svelte": "^1.5.0",
|
|
149
|
+
"svelte": "^5.56.9",
|
|
150
|
+
"svelte-check": "^4.7.6",
|
|
145
151
|
"svelte-sonner": "^1.1.1",
|
|
146
152
|
"sveltekit-superforms": "^2.30.2",
|
|
147
153
|
"tailwindcss": "^4.3.3",
|
|
148
154
|
"tslib": "^2.8.1",
|
|
149
155
|
"tw-animate-css": "1.4.0",
|
|
150
156
|
"typescript": "^6.0.3",
|
|
151
|
-
"typescript-eslint": "^8.
|
|
157
|
+
"typescript-eslint": "^8.67.0",
|
|
152
158
|
"vaul-svelte": "1.0.0-next.7",
|
|
153
|
-
"vite": "^8.2.
|
|
159
|
+
"vite": "^8.2.1",
|
|
154
160
|
"vitest": "^4.1.10",
|
|
155
|
-
"vitest-browser-svelte": "^3.0.0"
|
|
156
|
-
"zod": "4.4.3"
|
|
161
|
+
"vitest-browser-svelte": "^3.0.0"
|
|
157
162
|
},
|
|
158
163
|
"svelte": "./dist/index.js",
|
|
159
164
|
"types": "./dist/index.d.ts",
|
|
@@ -168,6 +173,7 @@
|
|
|
168
173
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
169
174
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
|
170
175
|
"lint": "prettier --check . && eslint .",
|
|
176
|
+
"verify": "pnpm check && pnpm lint && pnpm test",
|
|
171
177
|
"format": "prettier --write .",
|
|
172
178
|
"test:unit": "vitest run",
|
|
173
179
|
"test:coverage": "vitest run --coverage",
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { type RowData, type RowModel, type Table, type TableOptions } from "@tanstack/table-core";
|
|
2
|
-
interface ShadTableOptions<TData extends RowData> extends Omit<TableOptions<TData>, "getCoreRowModel"> {
|
|
3
|
-
getCoreRowModel?: (table: Table<TData>) => () => RowModel<TData>;
|
|
4
|
-
enablePaging?: boolean;
|
|
5
|
-
enableVisibility?: boolean;
|
|
6
|
-
enableRowSelectionUI?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export declare function createShadTableOld<TData extends RowData>(shadOptions: ShadTableOptions<TData>): Table<TData>;
|
|
9
|
-
export {};
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import { createTable, getCoreRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, } from "@tanstack/table-core";
|
|
2
|
-
import DataTableCheckbox from "./DataTableCheckbox.svelte";
|
|
3
|
-
import { renderComponent } from "../../../data-table";
|
|
4
|
-
import { mergeObjects } from "../../ui/data-table/data-table.svelte";
|
|
5
|
-
export function createShadTableOld(shadOptions) {
|
|
6
|
-
if (!shadOptions.getCoreRowModel) {
|
|
7
|
-
shadOptions.getCoreRowModel = getCoreRowModel();
|
|
8
|
-
}
|
|
9
|
-
if ((shadOptions.enablePaging ?? true) == false) {
|
|
10
|
-
shadOptions.manualPagination = true;
|
|
11
|
-
}
|
|
12
|
-
if (shadOptions.useURLSearchParams) {
|
|
13
|
-
shadOptions.autoResetPageIndex = false;
|
|
14
|
-
}
|
|
15
|
-
const options = shadOptions;
|
|
16
|
-
// Features
|
|
17
|
-
// Sorting
|
|
18
|
-
if ((options.enableSorting ?? true) && !options.getSortedRowModel) {
|
|
19
|
-
options.getSortedRowModel = getSortedRowModel();
|
|
20
|
-
if (!options.onSortingChange) {
|
|
21
|
-
options.onSortingChange = (updater) => {
|
|
22
|
-
if (typeof updater === "function") {
|
|
23
|
-
if (options.state?.sorting) {
|
|
24
|
-
options.state.sorting = updater(options.state.sorting);
|
|
25
|
-
}
|
|
26
|
-
else if (state.sorting) {
|
|
27
|
-
state.sorting = updater(state.sorting);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
if (options.state?.sorting) {
|
|
32
|
-
options.state.sorting = updater;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
state.sorting = updater;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
// Paging
|
|
42
|
-
if ((shadOptions.enablePaging ?? true) && !options.getPaginationRowModel) {
|
|
43
|
-
options.getPaginationRowModel = getPaginationRowModel();
|
|
44
|
-
if (!options.onPaginationChange) {
|
|
45
|
-
options.onPaginationChange = (updater) => {
|
|
46
|
-
if (typeof updater === "function") {
|
|
47
|
-
if (options.state?.pagination) {
|
|
48
|
-
options.state.pagination = updater(options.state.pagination);
|
|
49
|
-
}
|
|
50
|
-
else if (state.pagination) {
|
|
51
|
-
state.pagination = updater(state.pagination);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
if (options.state?.pagination) {
|
|
56
|
-
options.state.pagination = updater;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
state.pagination = updater;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
// Row Selection
|
|
66
|
-
if ((options.enableRowSelection ?? true) && !options.onRowSelectionChange) {
|
|
67
|
-
options.onRowSelectionChange = (updater) => {
|
|
68
|
-
if (typeof updater === "function") {
|
|
69
|
-
if (options.state?.rowSelection) {
|
|
70
|
-
options.state.rowSelection = updater(options.state.rowSelection);
|
|
71
|
-
}
|
|
72
|
-
else if (state.rowSelection) {
|
|
73
|
-
state.rowSelection = updater(state.rowSelection);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
if (options.state?.rowSelection) {
|
|
78
|
-
options.state.rowSelection = updater;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
state.rowSelection = updater;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
if (options.enableRowSelection && (shadOptions.enableRowSelectionUI ?? true)) {
|
|
87
|
-
const rowSelectionColumn = {
|
|
88
|
-
id: "select",
|
|
89
|
-
header: () => renderComponent(DataTableCheckbox, {
|
|
90
|
-
checked: table.getIsAllPageRowsSelected(),
|
|
91
|
-
onCheckedChange: () => table.toggleAllPageRowsSelected(),
|
|
92
|
-
}),
|
|
93
|
-
cell: (r) => renderComponent(DataTableCheckbox, {
|
|
94
|
-
checked: r.row.getIsSelected(),
|
|
95
|
-
onCheckedChange: () => r.row.toggleSelected(),
|
|
96
|
-
}),
|
|
97
|
-
enableResizing: false,
|
|
98
|
-
enableSorting: false,
|
|
99
|
-
};
|
|
100
|
-
options.columns.unshift(rowSelectionColumn);
|
|
101
|
-
}
|
|
102
|
-
// Column Visibility
|
|
103
|
-
if ((shadOptions.enableVisibility ?? false) && !options.onColumnVisibilityChange) {
|
|
104
|
-
options.onColumnVisibilityChange = (updater) => {
|
|
105
|
-
if (typeof updater === "function") {
|
|
106
|
-
if (options.state?.columnVisibility) {
|
|
107
|
-
options.state.columnVisibility = updater(options.state.columnVisibility);
|
|
108
|
-
}
|
|
109
|
-
else if (state.columnVisibility) {
|
|
110
|
-
state.columnVisibility = updater(state.columnVisibility);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
if (options.state?.columnVisibility) {
|
|
115
|
-
options.state.columnVisibility = updater;
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
state.columnVisibility = updater;
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
};
|
|
122
|
-
}
|
|
123
|
-
// Filtering
|
|
124
|
-
if ((options.enableFilters ?? true) && !options.getFilteredRowModel) {
|
|
125
|
-
options.getFilteredRowModel = getFilteredRowModel();
|
|
126
|
-
// Global Filtering
|
|
127
|
-
if (options.enableGlobalFilter ?? false) {
|
|
128
|
-
if (!options.onGlobalFilterChange) {
|
|
129
|
-
options.onGlobalFilterChange = (updater) => {
|
|
130
|
-
if (typeof updater === "function") {
|
|
131
|
-
if (options.state?.globalFilter) {
|
|
132
|
-
options.state.globalFilter = updater(options.state.globalFilter);
|
|
133
|
-
}
|
|
134
|
-
else if (state.globalFilter) {
|
|
135
|
-
state.globalFilter = updater(state.globalFilter);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
if (options.state?.globalFilter) {
|
|
140
|
-
options.state.globalFilter = updater;
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
state.globalFilter = updater;
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
if (!options.onColumnFiltersChange) {
|
|
151
|
-
options.onColumnFiltersChange = (updater) => {
|
|
152
|
-
if (typeof updater === "function") {
|
|
153
|
-
if (options.state?.columnFilters) {
|
|
154
|
-
options.state.columnFilters = updater(options.state.columnFilters);
|
|
155
|
-
}
|
|
156
|
-
else if (state.columnFilters) {
|
|
157
|
-
state.columnFilters = updater(state.columnFilters);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
if (options.state?.columnFilters) {
|
|
162
|
-
options.state.columnFilters = updater;
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
state.columnFilters = updater;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
};
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
const resolvedOptions = mergeObjects({
|
|
173
|
-
state: {},
|
|
174
|
-
onStateChange() { },
|
|
175
|
-
renderFallbackValue: null,
|
|
176
|
-
mergeOptions: (defaultOptions, options) => {
|
|
177
|
-
return mergeObjects(defaultOptions, options);
|
|
178
|
-
},
|
|
179
|
-
}, options);
|
|
180
|
-
const table = createTable(resolvedOptions);
|
|
181
|
-
const state = $state(table.initialState);
|
|
182
|
-
const updateOptions = (table, state) => {
|
|
183
|
-
table.setOptions((prev) => {
|
|
184
|
-
return mergeObjects(prev, options, {
|
|
185
|
-
state: mergeObjects(state, options.state || {}),
|
|
186
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
187
|
-
onStateChange: (updater) => {
|
|
188
|
-
if (updater instanceof Function)
|
|
189
|
-
state = updater(state);
|
|
190
|
-
else
|
|
191
|
-
state = mergeObjects(state, updater);
|
|
192
|
-
options.onStateChange?.(updater);
|
|
193
|
-
},
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
};
|
|
197
|
-
updateOptions(table, state);
|
|
198
|
-
$effect.pre(() => {
|
|
199
|
-
updateOptions(table, state);
|
|
200
|
-
});
|
|
201
|
-
return table;
|
|
202
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { type RowData, type TableOptions } from "@tanstack/table-core";
|
|
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,110 +0,0 @@
|
|
|
1
|
-
import { createTable, } from "@tanstack/table-core";
|
|
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,37 +0,0 @@
|
|
|
1
|
-
<script lang="ts" generics="TData, TValue, TContext extends HeaderContext<TData, TValue> | CellContext<TData, TValue>">
|
|
2
|
-
import { RenderComponentConfig, RenderSnippetConfig } from "./render-helpers.js";
|
|
3
|
-
import type { CellContext, ColumnDefTemplate, HeaderContext } from "@tanstack/table-core";
|
|
4
|
-
import type { Attachment } from "svelte/attachments";
|
|
5
|
-
type Props = {
|
|
6
|
-
/** The cell or header field of the current cell's column definition. */
|
|
7
|
-
content?: TContext extends HeaderContext<TData, TValue>
|
|
8
|
-
? ColumnDefTemplate<HeaderContext<TData, TValue>>
|
|
9
|
-
: TContext extends CellContext<TData, TValue>
|
|
10
|
-
? ColumnDefTemplate<CellContext<TData, TValue>>
|
|
11
|
-
: never;
|
|
12
|
-
/** The result of the `getContext()` function of the header or cell */
|
|
13
|
-
context: TContext;
|
|
14
|
-
|
|
15
|
-
/** Used to pass attachments that can't be gotten through context */
|
|
16
|
-
attach?: Attachment;
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
let { content, context, attach }: Props = $props();
|
|
20
|
-
</script>
|
|
21
|
-
|
|
22
|
-
{#if typeof content === "string"}
|
|
23
|
-
{content}
|
|
24
|
-
{:else if content instanceof Function}
|
|
25
|
-
<!-- It's unlikely that a CellContext will be passed to a Header -->
|
|
26
|
-
<!-- eslint-disable-next-line @typescript-eslint/no-explicit-any -->
|
|
27
|
-
{@const result = content(context as any)}
|
|
28
|
-
{#if result instanceof RenderComponentConfig}
|
|
29
|
-
{@const { component: Component, props } = result}
|
|
30
|
-
<Component {...props} {attach} />
|
|
31
|
-
{:else if result instanceof RenderSnippetConfig}
|
|
32
|
-
{@const { snippet, params } = result}
|
|
33
|
-
{@render snippet({ ...params, attach })}
|
|
34
|
-
{:else}
|
|
35
|
-
{result}
|
|
36
|
-
{/if}
|
|
37
|
-
{/if}
|