@cascivo/react 0.18.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -7
- package/dist/accordion/accordion.js +1 -114
- package/dist/accordion/accordion.module.js +1 -10
- package/dist/action-sheet/action-sheet.css +1 -1
- package/dist/action-sheet/action-sheet.js +1 -91
- package/dist/action-sheet/action-sheet.module.js +1 -12
- package/dist/alert/alert.js +1 -55
- package/dist/alert/alert.module.js +1 -11
- package/dist/alert-dialog/alert-dialog.css +1 -1
- package/dist/alert-dialog/alert-dialog.js +1 -66
- package/dist/alert-dialog/alert-dialog.module.js +1 -11
- package/dist/app-shell/app-shell.css +1 -1
- package/dist/app-shell/app-shell.js +1 -85
- package/dist/app-shell/app-shell.module.js +1 -12
- package/dist/aspect-ratio/aspect-ratio.js +1 -20
- package/dist/aspect-ratio/aspect-ratio.module.js +1 -6
- package/dist/avatar/avatar.js +1 -57
- package/dist/avatar/avatar.module.js +1 -8
- package/dist/avatar-group/avatar-group.js +1 -24
- package/dist/avatar-group/avatar-group.module.js +1 -6
- package/dist/badge/badge.js +1 -22
- package/dist/badge/badge.module.js +1 -3
- package/dist/blockquote/blockquote.js +1 -16
- package/dist/blockquote/blockquote.module.js +1 -6
- package/dist/bottom-sheet/bottom-sheet.js +1 -111
- package/dist/bottom-sheet/bottom-sheet.module.js +1 -14
- package/dist/brand/logo/logo.css +1 -0
- package/dist/brand/logo/logo.js +1 -0
- package/dist/brand/logo/logo.module.js +2 -0
- package/dist/breadcrumb/breadcrumb.js +1 -28
- package/dist/breadcrumb/breadcrumb.module.js +1 -3
- package/dist/button/button.css +1 -1
- package/dist/button/button.js +1 -35
- package/dist/button/button.module.js +1 -6
- package/dist/button-group/button-group.js +1 -39
- package/dist/button-group/button-group.module.js +1 -3
- package/dist/calendar/calendar-date.js +1 -0
- package/dist/calendar/calendar.css +1 -1
- package/dist/calendar/calendar.js +1 -199
- package/dist/calendar/calendar.module.js +1 -14
- package/dist/card/card.js +1 -53
- package/dist/card/card.module.js +1 -12
- package/dist/carousel/carousel.css +1 -1
- package/dist/carousel/carousel.js +1 -138
- package/dist/carousel/carousel.module.js +1 -13
- package/dist/chat-bubble/chat-bubble.js +1 -31
- package/dist/chat-bubble/chat-bubble.module.js +1 -11
- package/dist/checkbox/checkbox.js +1 -38
- package/dist/checkbox/checkbox.module.js +1 -8
- package/dist/checkbox-card/checkbox-card.css +1 -1
- package/dist/checkbox-card/checkbox-card.js +1 -50
- package/dist/checkbox-card/checkbox-card.module.js +1 -11
- package/dist/code/code.js +1 -14
- package/dist/code/code.module.js +1 -3
- package/dist/code-snippet/code-snippet.js +2 -121
- package/dist/code-snippet/code-snippet.module.js +1 -17
- package/dist/code-snippet/highlight.js +1 -67
- package/dist/collapsible/collapsible.js +1 -47
- package/dist/collapsible/collapsible.module.js +1 -7
- package/dist/color-picker/color-picker.css +1 -1
- package/dist/color-picker/color-picker.js +1 -268
- package/dist/color-picker/color-picker.module.js +1 -18
- package/dist/color-picker/color.js +1 -0
- package/dist/combobox/combobox.css +1 -1
- package/dist/combobox/combobox.js +1 -165
- package/dist/combobox/combobox.module.js +1 -19
- package/dist/combobox/list-nav.js +1 -0
- package/dist/combobox/option-list.js +1 -0
- package/dist/command-menu/command-menu.js +1 -421
- package/dist/command-menu/command-menu.module.js +1 -34
- package/dist/comparison/comparison.js +1 -69
- package/dist/comparison/comparison.module.js +1 -9
- package/dist/contained-list/contained-list.js +1 -41
- package/dist/contained-list/contained-list.module.js +1 -11
- package/dist/context-menu/context-menu.js +1 -93
- package/dist/context-menu/context-menu.module.js +1 -7
- package/dist/copy-button/copy-button.js +1 -60
- package/dist/copy-button/copy-button.module.js +1 -6
- package/dist/data-list/data-list.js +1 -25
- package/dist/data-list/data-list.module.js +1 -8
- package/dist/data-table/column-filter.js +1 -0
- package/dist/data-table/column-layout.js +1 -0
- package/dist/data-table/data-table.css +1 -1
- package/dist/data-table/data-table.js +1 -371
- package/dist/data-table/data-table.module.js +1 -33
- package/dist/data-table/grid-keys.js +1 -0
- package/dist/data-table/row-group.js +1 -0
- package/dist/data-table/row-search.js +1 -0
- package/dist/data-table/row-sort.js +1 -0
- package/dist/data-table/to-csv.js +3 -0
- package/dist/data-table/virtual-window.js +1 -0
- package/dist/date-picker/date-picker.css +1 -1
- package/dist/date-picker/date-picker.js +1 -219
- package/dist/date-picker/date-picker.module.js +1 -23
- package/dist/date-picker/parse-date.js +1 -0
- package/dist/date-range-picker/date-range-picker.js +1 -196
- package/dist/date-range-picker/date-range-picker.module.js +1 -18
- package/dist/dock/dock.css +1 -1
- package/dist/dock/dock.js +1 -34
- package/dist/dock/dock.module.js +1 -8
- package/dist/drawer/drawer.js +1 -96
- package/dist/drawer/drawer.module.js +1 -13
- package/dist/dropdown/dropdown.css +1 -1
- package/dist/dropdown/dropdown.js +1 -107
- package/dist/dropdown/dropdown.module.js +1 -9
- package/dist/editable/editable.js +1 -67
- package/dist/editable/editable.module.js +1 -11
- package/dist/empty-state/empty-state.js +1 -32
- package/dist/empty-state/empty-state.module.js +1 -9
- package/dist/fab/fab.css +1 -1
- package/dist/fab/fab.js +1 -93
- package/dist/fab/fab.module.js +1 -12
- package/dist/field/field.css +1 -1
- package/dist/field/field.js +1 -46
- package/dist/field/field.module.js +1 -7
- package/dist/file-uploader/file-uploader.css +1 -1
- package/dist/file-uploader/file-uploader.js +1 -122
- package/dist/file-uploader/file-uploader.module.js +1 -18
- package/dist/filter/filter.css +1 -1
- package/dist/filter/filter.js +1 -35
- package/dist/filter/filter.module.js +1 -6
- package/dist/form/form.js +1 -95
- package/dist/form/form.module.js +1 -3
- package/dist/header/header.js +1 -44
- package/dist/header/header.module.js +1 -11
- package/dist/header-panel/header-panel.js +1 -72
- package/dist/header-panel/header-panel.module.js +1 -9
- package/dist/heading/heading.css +1 -1
- package/dist/heading/heading.js +1 -22
- package/dist/heading/heading.module.js +1 -3
- package/dist/hover-card/hover-card.css +1 -1
- package/dist/hover-card/hover-card.js +1 -84
- package/dist/hover-card/hover-card.module.js +1 -6
- package/dist/icon-button/icon-button.js +1 -19
- package/dist/icon-button/icon-button.module.js +1 -3
- package/dist/image/image.css +1 -1
- package/dist/image/image.js +1 -64
- package/dist/image/image.module.js +1 -9
- package/dist/index.d.ts +2084 -120
- package/dist/indicator/indicator.js +1 -16
- package/dist/indicator/indicator.module.js +1 -6
- package/dist/infinite-scroll/infinite-scroll.js +1 -49
- package/dist/infinite-scroll/infinite-scroll.module.js +1 -7
- package/dist/inline-loading/inline-loading.js +1 -74
- package/dist/inline-loading/inline-loading.module.js +1 -9
- package/dist/input/input.css +1 -1
- package/dist/input/input.js +1 -55
- package/dist/input/input.module.js +1 -9
- package/dist/input-group/input-group.css +1 -1
- package/dist/input-group/input-group.js +1 -39
- package/dist/input-group/input-group.module.js +1 -9
- package/dist/item/item.js +1 -50
- package/dist/item/item.module.js +1 -10
- package/dist/join/join.js +1 -12
- package/dist/join/join.module.js +1 -3
- package/dist/kbd/kbd.js +1 -14
- package/dist/kbd/kbd.module.js +1 -3
- package/dist/label/label.js +1 -23
- package/dist/label/label.module.js +1 -7
- package/dist/large-title-header/large-title-header.js +1 -38
- package/dist/large-title-header/large-title-header.module.js +1 -12
- package/dist/layouts/src/auto-grid/auto-grid.js +1 -17
- package/dist/layouts/src/auto-grid/auto-grid.module.js +1 -4
- package/dist/layouts/src/center/center.js +1 -16
- package/dist/layouts/src/center/center.module.js +1 -3
- package/dist/layouts/src/columns/columns.js +1 -21
- package/dist/layouts/src/columns/columns.module.js +1 -6
- package/dist/layouts/src/flex/flex.js +1 -20
- package/dist/layouts/src/flex/flex.module.js +1 -3
- package/dist/layouts/src/grid/grid.css +1 -1
- package/dist/layouts/src/grid/grid.js +1 -55
- package/dist/layouts/src/grid/grid.module.js +1 -7
- package/dist/layouts/src/page-header/page-header.js +1 -31
- package/dist/layouts/src/page-header/page-header.module.js +1 -10
- package/dist/layouts/src/spacer/spacer.js +1 -17
- package/dist/layouts/src/spacer/spacer.module.js +1 -3
- package/dist/link/link.css +1 -1
- package/dist/link/link.js +1 -22
- package/dist/link/link.module.js +1 -3
- package/dist/list/list.js +1 -21
- package/dist/list/list.module.js +1 -6
- package/dist/log-viewer/log-viewer.css +1 -1
- package/dist/log-viewer/log-viewer.js +2 -184
- package/dist/log-viewer/log-viewer.module.js +1 -16
- package/dist/menu/menu.js +1 -126
- package/dist/menu/menu.module.js +1 -8
- package/dist/menu-button/menu-button.js +1 -92
- package/dist/menu-button/menu-button.module.js +1 -8
- package/dist/menubar/menubar.js +1 -103
- package/dist/menubar/menubar.module.js +1 -8
- package/dist/modal/modal.css +1 -1
- package/dist/modal/modal.js +1 -76
- package/dist/modal/modal.module.js +1 -12
- package/dist/multi-select/list-nav.js +1 -0
- package/dist/multi-select/multi-select.css +1 -1
- package/dist/multi-select/multi-select.js +1 -106
- package/dist/multi-select/multi-select.module.js +1 -15
- package/dist/multi-select/option-list.js +1 -0
- package/dist/native-select/native-select.css +1 -1
- package/dist/native-select/native-select.js +1 -37
- package/dist/native-select/native-select.module.js +1 -7
- package/dist/navigation-menu/navigation-menu.js +1 -99
- package/dist/navigation-menu/navigation-menu.module.js +1 -10
- package/dist/node/accordion/accordion.js +1 -114
- package/dist/node/accordion/accordion.module.js +1 -10
- package/dist/node/action-sheet/action-sheet.js +1 -91
- package/dist/node/action-sheet/action-sheet.module.js +1 -12
- package/dist/node/alert/alert.js +1 -55
- package/dist/node/alert/alert.module.js +1 -11
- package/dist/node/alert-dialog/alert-dialog.js +1 -66
- package/dist/node/alert-dialog/alert-dialog.module.js +1 -11
- package/dist/node/app-shell/app-shell.js +1 -85
- package/dist/node/app-shell/app-shell.module.js +1 -12
- package/dist/node/aspect-ratio/aspect-ratio.js +1 -20
- package/dist/node/aspect-ratio/aspect-ratio.module.js +1 -6
- package/dist/node/avatar/avatar.js +1 -57
- package/dist/node/avatar/avatar.module.js +1 -8
- package/dist/node/avatar-group/avatar-group.js +1 -24
- package/dist/node/avatar-group/avatar-group.module.js +1 -6
- package/dist/node/badge/badge.js +1 -22
- package/dist/node/badge/badge.module.js +1 -3
- package/dist/node/blockquote/blockquote.js +1 -16
- package/dist/node/blockquote/blockquote.module.js +1 -6
- package/dist/node/bottom-sheet/bottom-sheet.js +1 -111
- package/dist/node/bottom-sheet/bottom-sheet.module.js +1 -14
- package/dist/node/brand/logo/logo.js +1 -0
- package/dist/node/brand/logo/logo.module.js +1 -0
- package/dist/node/breadcrumb/breadcrumb.js +1 -28
- package/dist/node/breadcrumb/breadcrumb.module.js +1 -3
- package/dist/node/button/button.js +1 -35
- package/dist/node/button/button.module.js +1 -6
- package/dist/node/button-group/button-group.js +1 -39
- package/dist/node/button-group/button-group.module.js +1 -3
- package/dist/node/calendar/calendar-date.js +1 -0
- package/dist/node/calendar/calendar.js +1 -199
- package/dist/node/calendar/calendar.module.js +1 -14
- package/dist/node/card/card.js +1 -53
- package/dist/node/card/card.module.js +1 -12
- package/dist/node/carousel/carousel.js +1 -138
- package/dist/node/carousel/carousel.module.js +1 -13
- package/dist/node/chat-bubble/chat-bubble.js +1 -31
- package/dist/node/chat-bubble/chat-bubble.module.js +1 -11
- package/dist/node/checkbox/checkbox.js +1 -38
- package/dist/node/checkbox/checkbox.module.js +1 -8
- package/dist/node/checkbox-card/checkbox-card.js +1 -50
- package/dist/node/checkbox-card/checkbox-card.module.js +1 -11
- package/dist/node/code/code.js +1 -14
- package/dist/node/code/code.module.js +1 -3
- package/dist/node/code-snippet/code-snippet.js +2 -121
- package/dist/node/code-snippet/code-snippet.module.js +1 -17
- package/dist/node/code-snippet/highlight.js +1 -67
- package/dist/node/collapsible/collapsible.js +1 -47
- package/dist/node/collapsible/collapsible.module.js +1 -7
- package/dist/node/color-picker/color-picker.js +1 -268
- package/dist/node/color-picker/color-picker.module.js +1 -18
- package/dist/node/color-picker/color.js +1 -0
- package/dist/node/combobox/combobox.js +1 -165
- package/dist/node/combobox/combobox.module.js +1 -19
- package/dist/node/combobox/list-nav.js +1 -0
- package/dist/node/combobox/option-list.js +1 -0
- package/dist/node/command-menu/command-menu.js +1 -421
- package/dist/node/command-menu/command-menu.module.js +1 -34
- package/dist/node/comparison/comparison.js +1 -69
- package/dist/node/comparison/comparison.module.js +1 -9
- package/dist/node/contained-list/contained-list.js +1 -41
- package/dist/node/contained-list/contained-list.module.js +1 -11
- package/dist/node/context-menu/context-menu.js +1 -93
- package/dist/node/context-menu/context-menu.module.js +1 -7
- package/dist/node/copy-button/copy-button.js +1 -60
- package/dist/node/copy-button/copy-button.module.js +1 -6
- package/dist/node/data-list/data-list.js +1 -25
- package/dist/node/data-list/data-list.module.js +1 -8
- package/dist/node/data-table/column-filter.js +1 -0
- package/dist/node/data-table/column-layout.js +1 -0
- package/dist/node/data-table/data-table.js +1 -371
- package/dist/node/data-table/data-table.module.js +1 -33
- package/dist/node/data-table/grid-keys.js +1 -0
- package/dist/node/data-table/row-group.js +1 -0
- package/dist/node/data-table/row-search.js +1 -0
- package/dist/node/data-table/row-sort.js +1 -0
- package/dist/node/data-table/to-csv.js +3 -0
- package/dist/node/data-table/virtual-window.js +1 -0
- package/dist/node/date-picker/date-picker.js +1 -219
- package/dist/node/date-picker/date-picker.module.js +1 -23
- package/dist/node/date-picker/parse-date.js +1 -0
- package/dist/node/date-range-picker/date-range-picker.js +1 -196
- package/dist/node/date-range-picker/date-range-picker.module.js +1 -18
- package/dist/node/dock/dock.js +1 -34
- package/dist/node/dock/dock.module.js +1 -8
- package/dist/node/drawer/drawer.js +1 -96
- package/dist/node/drawer/drawer.module.js +1 -13
- package/dist/node/dropdown/dropdown.js +1 -107
- package/dist/node/dropdown/dropdown.module.js +1 -9
- package/dist/node/editable/editable.js +1 -67
- package/dist/node/editable/editable.module.js +1 -11
- package/dist/node/empty-state/empty-state.js +1 -32
- package/dist/node/empty-state/empty-state.module.js +1 -9
- package/dist/node/fab/fab.js +1 -93
- package/dist/node/fab/fab.module.js +1 -12
- package/dist/node/field/field.js +1 -46
- package/dist/node/field/field.module.js +1 -7
- package/dist/node/file-uploader/file-uploader.js +1 -122
- package/dist/node/file-uploader/file-uploader.module.js +1 -18
- package/dist/node/filter/filter.js +1 -35
- package/dist/node/filter/filter.module.js +1 -6
- package/dist/node/form/form.js +1 -95
- package/dist/node/form/form.module.js +1 -3
- package/dist/node/header/header.js +1 -44
- package/dist/node/header/header.module.js +1 -11
- package/dist/node/header-panel/header-panel.js +1 -72
- package/dist/node/header-panel/header-panel.module.js +1 -9
- package/dist/node/heading/heading.js +1 -22
- package/dist/node/heading/heading.module.js +1 -3
- package/dist/node/hover-card/hover-card.js +1 -84
- package/dist/node/hover-card/hover-card.module.js +1 -6
- package/dist/node/icon-button/icon-button.js +1 -19
- package/dist/node/icon-button/icon-button.module.js +1 -3
- package/dist/node/image/image.js +1 -64
- package/dist/node/image/image.module.js +1 -9
- package/dist/node/indicator/indicator.js +1 -16
- package/dist/node/indicator/indicator.module.js +1 -6
- package/dist/node/infinite-scroll/infinite-scroll.js +1 -49
- package/dist/node/infinite-scroll/infinite-scroll.module.js +1 -7
- package/dist/node/inline-loading/inline-loading.js +1 -74
- package/dist/node/inline-loading/inline-loading.module.js +1 -9
- package/dist/node/input/input.js +1 -55
- package/dist/node/input/input.module.js +1 -9
- package/dist/node/input-group/input-group.js +1 -39
- package/dist/node/input-group/input-group.module.js +1 -9
- package/dist/node/item/item.js +1 -50
- package/dist/node/item/item.module.js +1 -10
- package/dist/node/join/join.js +1 -12
- package/dist/node/join/join.module.js +1 -3
- package/dist/node/kbd/kbd.js +1 -14
- package/dist/node/kbd/kbd.module.js +1 -3
- package/dist/node/label/label.js +1 -23
- package/dist/node/label/label.module.js +1 -7
- package/dist/node/large-title-header/large-title-header.js +1 -38
- package/dist/node/large-title-header/large-title-header.module.js +1 -12
- package/dist/node/layouts/src/auto-grid/auto-grid.js +1 -17
- package/dist/node/layouts/src/auto-grid/auto-grid.module.js +1 -4
- package/dist/node/layouts/src/center/center.js +1 -16
- package/dist/node/layouts/src/center/center.module.js +1 -3
- package/dist/node/layouts/src/columns/columns.js +1 -21
- package/dist/node/layouts/src/columns/columns.module.js +1 -6
- package/dist/node/layouts/src/flex/flex.js +1 -20
- package/dist/node/layouts/src/flex/flex.module.js +1 -3
- package/dist/node/layouts/src/grid/grid.js +1 -55
- package/dist/node/layouts/src/grid/grid.module.js +1 -7
- package/dist/node/layouts/src/page-header/page-header.js +1 -31
- package/dist/node/layouts/src/page-header/page-header.module.js +1 -10
- package/dist/node/layouts/src/spacer/spacer.js +1 -17
- package/dist/node/layouts/src/spacer/spacer.module.js +1 -3
- package/dist/node/link/link.js +1 -22
- package/dist/node/link/link.module.js +1 -3
- package/dist/node/list/list.js +1 -21
- package/dist/node/list/list.module.js +1 -6
- package/dist/node/log-viewer/log-viewer.js +2 -184
- package/dist/node/log-viewer/log-viewer.module.js +1 -16
- package/dist/node/menu/menu.js +1 -126
- package/dist/node/menu/menu.module.js +1 -8
- package/dist/node/menu-button/menu-button.js +1 -92
- package/dist/node/menu-button/menu-button.module.js +1 -8
- package/dist/node/menubar/menubar.js +1 -103
- package/dist/node/menubar/menubar.module.js +1 -8
- package/dist/node/modal/modal.js +1 -76
- package/dist/node/modal/modal.module.js +1 -12
- package/dist/node/multi-select/list-nav.js +1 -0
- package/dist/node/multi-select/multi-select.js +1 -106
- package/dist/node/multi-select/multi-select.module.js +1 -15
- package/dist/node/multi-select/option-list.js +1 -0
- package/dist/node/native-select/native-select.js +1 -37
- package/dist/node/native-select/native-select.module.js +1 -7
- package/dist/node/navigation-menu/navigation-menu.js +1 -99
- package/dist/node/navigation-menu/navigation-menu.module.js +1 -10
- package/dist/node/notification/notification.js +1 -140
- package/dist/node/notification/notification.module.js +1 -11
- package/dist/node/number-input/number-input.js +1 -147
- package/dist/node/number-input/number-input.module.js +1 -12
- package/dist/node/otp-input/otp-input.js +1 -70
- package/dist/node/otp-input/otp-input.module.js +1 -6
- package/dist/node/overflow-menu/overflow-menu.js +1 -70
- package/dist/node/overflow-menu/overflow-menu.module.js +1 -7
- package/dist/node/pagination/pagination.js +1 -92
- package/dist/node/pagination/pagination.module.js +1 -11
- package/dist/node/password-input/password-input.js +1 -81
- package/dist/node/password-input/password-input.module.js +1 -11
- package/dist/node/popover/popover.js +1 -51
- package/dist/node/popover/popover.module.js +1 -6
- package/dist/node/popover/use-popover.js +1 -55
- package/dist/node/progress/progress.js +1 -16
- package/dist/node/progress/progress.module.js +1 -6
- package/dist/node/progress-bar/progress-bar.js +1 -42
- package/dist/node/progress-bar/progress-bar.module.js +1 -11
- package/dist/node/progress-circle/progress-circle.js +1 -46
- package/dist/node/progress-circle/progress-circle.module.js +1 -9
- package/dist/node/progress-indicator/progress-indicator.js +1 -34
- package/dist/node/progress-indicator/progress-indicator.module.js +1 -10
- package/dist/node/prose/prose.js +1 -13
- package/dist/node/prose/prose.module.js +1 -3
- package/dist/node/pull-to-refresh/pull-to-refresh.js +1 -82
- package/dist/node/pull-to-refresh/pull-to-refresh.module.js +1 -9
- package/dist/node/qr-code/encode.js +1 -583
- package/dist/node/qr-code/qr-code.js +1 -41
- package/dist/node/qr-code/qr-code.module.js +1 -6
- package/dist/node/radial-progress/radial-progress.js +1 -27
- package/dist/node/radial-progress/radial-progress.module.js +1 -6
- package/dist/node/radio/radio.js +1 -48
- package/dist/node/radio/radio.module.js +1 -9
- package/dist/node/radio-card/radio-card.js +1 -64
- package/dist/node/radio-card/radio-card.module.js +1 -11
- package/dist/node/rating-group/rating-group.js +1 -37
- package/dist/node/rating-group/rating-group.module.js +1 -6
- package/dist/node/react/src/index.js +1 -141
- package/dist/node/relative-time/relative-time.js +1 -66
- package/dist/node/relative-time/relative-time.module.js +1 -3
- package/dist/node/reorder-list/reorder-list.js +1 -143
- package/dist/node/reorder-list/reorder-list.module.js +1 -11
- package/dist/node/resizable/resizable.js +1 -80
- package/dist/node/resizable/resizable.module.js +1 -8
- package/dist/node/scroll-area/scroll-area.js +1 -38
- package/dist/node/scroll-area/scroll-area.module.js +1 -3
- package/dist/node/search/search.js +1 -92
- package/dist/node/search/search.module.js +1 -9
- package/dist/node/segmented-control/segmented-control.js +1 -43
- package/dist/node/segmented-control/segmented-control.module.js +1 -6
- package/dist/node/select/select.js +1 -72
- package/dist/node/select/select.module.js +1 -11
- package/dist/node/separator/separator.js +1 -19
- package/dist/node/separator/separator.module.js +1 -3
- package/dist/node/sheet/sheet.js +1 -49
- package/dist/node/sheet/sheet.module.js +1 -9
- package/dist/node/shell-header/shell-header.js +1 -169
- package/dist/node/shell-header/shell-header.module.js +1 -24
- package/dist/node/side-nav/side-nav.js +1 -334
- package/dist/node/side-nav/side-nav.module.js +1 -31
- package/dist/node/skeleton/skeleton.js +1 -23
- package/dist/node/skeleton/skeleton.module.js +1 -7
- package/dist/node/skip-nav/skip-nav.js +1 -28
- package/dist/node/skip-nav/skip-nav.module.js +1 -3
- package/dist/node/slider/slider.js +1 -29
- package/dist/node/slider/slider.module.js +1 -7
- package/dist/node/spinner/spinner.js +1 -18
- package/dist/node/spinner/spinner.module.js +1 -6
- package/dist/node/stack/stack.js +1 -17
- package/dist/node/stack/stack.module.js +1 -6
- package/dist/node/stat/stat.js +1 -41
- package/dist/node/stat/stat.module.js +1 -11
- package/dist/node/status/status.js +1 -25
- package/dist/node/status/status.module.js +1 -7
- package/dist/node/steps/steps.js +1 -35
- package/dist/node/steps/steps.module.js +1 -8
- package/dist/node/structured-list/structured-list.js +1 -102
- package/dist/node/structured-list/structured-list.module.js +1 -12
- package/dist/node/swap/swap.js +1 -36
- package/dist/node/swap/swap.module.js +1 -7
- package/dist/node/swipe-item/swipe-item.js +1 -62
- package/dist/node/swipe-item/swipe-item.module.js +1 -12
- package/dist/node/switcher/switcher.js +1 -32
- package/dist/node/switcher/switcher.module.js +1 -8
- package/dist/node/tabs/tabs.js +1 -98
- package/dist/node/tabs/tabs.module.js +1 -8
- package/dist/node/tag/tag.js +1 -33
- package/dist/node/tag/tag.module.js +1 -6
- package/dist/node/tags-input/tags-input.js +1 -64
- package/dist/node/tags-input/tags-input.module.js +1 -8
- package/dist/node/text/text.js +1 -16
- package/dist/node/text/text.module.js +1 -3
- package/dist/node/textarea/textarea.js +1 -57
- package/dist/node/textarea/textarea.module.js +1 -9
- package/dist/node/tile/tile.js +1 -39
- package/dist/node/tile/tile.module.js +1 -7
- package/dist/node/time-picker/time-picker.js +1 -63
- package/dist/node/time-picker/time-picker.module.js +1 -9
- package/dist/node/timeline/timeline.js +1 -55
- package/dist/node/timeline/timeline.module.js +1 -11
- package/dist/node/toast/toast.js +1 -85
- package/dist/node/toast/toast.module.js +1 -11
- package/dist/node/toc/toc.js +1 -43
- package/dist/node/toc/toc.module.js +1 -3
- package/dist/node/toc/use-toc-from-region.js +1 -18
- package/dist/node/toggle/toggle.js +1 -41
- package/dist/node/toggle/toggle.module.js +1 -8
- package/dist/node/toggle-group/toggle-group.js +1 -55
- package/dist/node/toggle-group/toggle-group.module.js +1 -6
- package/dist/node/toggletip/toggletip.js +1 -49
- package/dist/node/toggletip/toggletip.module.js +1 -7
- package/dist/node/tooltip/tooltip.js +1 -58
- package/dist/node/tooltip/tooltip.module.js +1 -6
- package/dist/node/tree-view/tree-view.js +1 -201
- package/dist/node/tree-view/tree-view.module.js +1 -13
- package/dist/node/user/user.js +1 -35
- package/dist/node/user/user.module.js +1 -9
- package/dist/node/virtual-list/virtual-list.js +1 -40
- package/dist/node/virtual-list/virtual-list.module.js +1 -7
- package/dist/node/visually-hidden/visually-hidden.js +1 -2
- package/dist/node/wheel-picker/wheel-picker.js +1 -84
- package/dist/node/wheel-picker/wheel-picker.module.js +1 -8
- package/dist/notification/notification.js +1 -140
- package/dist/notification/notification.module.js +1 -11
- package/dist/number-input/number-input.js +1 -147
- package/dist/number-input/number-input.module.js +1 -12
- package/dist/otp-input/otp-input.js +1 -70
- package/dist/otp-input/otp-input.module.js +1 -6
- package/dist/overflow-menu/overflow-menu.js +1 -70
- package/dist/overflow-menu/overflow-menu.module.js +1 -7
- package/dist/pagination/pagination.js +1 -92
- package/dist/pagination/pagination.module.js +1 -11
- package/dist/password-input/password-input.js +1 -81
- package/dist/password-input/password-input.module.js +1 -11
- package/dist/popover/popover.js +1 -51
- package/dist/popover/popover.module.js +1 -6
- package/dist/popover/use-popover.js +1 -55
- package/dist/progress/progress.css +1 -1
- package/dist/progress/progress.js +1 -16
- package/dist/progress/progress.module.js +1 -6
- package/dist/progress-bar/progress-bar.css +1 -1
- package/dist/progress-bar/progress-bar.js +1 -42
- package/dist/progress-bar/progress-bar.module.js +1 -11
- package/dist/progress-circle/progress-circle.js +1 -46
- package/dist/progress-circle/progress-circle.module.js +1 -9
- package/dist/progress-indicator/progress-indicator.css +1 -1
- package/dist/progress-indicator/progress-indicator.js +1 -34
- package/dist/progress-indicator/progress-indicator.module.js +1 -10
- package/dist/prose/prose.css +1 -1
- package/dist/prose/prose.js +1 -13
- package/dist/prose/prose.module.js +1 -3
- package/dist/pull-to-refresh/pull-to-refresh.js +1 -82
- package/dist/pull-to-refresh/pull-to-refresh.module.js +1 -9
- package/dist/qr-code/encode.js +1 -583
- package/dist/qr-code/qr-code.js +1 -41
- package/dist/qr-code/qr-code.module.js +1 -6
- package/dist/radial-progress/radial-progress.js +1 -27
- package/dist/radial-progress/radial-progress.module.js +1 -6
- package/dist/radio/radio.js +1 -48
- package/dist/radio/radio.module.js +1 -9
- package/dist/radio-card/radio-card.css +1 -1
- package/dist/radio-card/radio-card.js +1 -64
- package/dist/radio-card/radio-card.module.js +1 -11
- package/dist/rating-group/rating-group.js +1 -37
- package/dist/rating-group/rating-group.module.js +1 -6
- package/dist/react/src/index.js +1 -141
- package/dist/relative-time/relative-time.js +1 -66
- package/dist/relative-time/relative-time.module.js +1 -3
- package/dist/reorder-list/reorder-list.css +1 -1
- package/dist/reorder-list/reorder-list.js +1 -143
- package/dist/reorder-list/reorder-list.module.js +1 -11
- package/dist/resizable/resizable.js +1 -80
- package/dist/resizable/resizable.module.js +1 -8
- package/dist/scroll-area/scroll-area.css +1 -1
- package/dist/scroll-area/scroll-area.js +1 -38
- package/dist/scroll-area/scroll-area.module.js +1 -3
- package/dist/search/search.js +1 -92
- package/dist/search/search.module.js +1 -9
- package/dist/segmented-control/segmented-control.js +1 -43
- package/dist/segmented-control/segmented-control.module.js +1 -6
- package/dist/select/select.js +1 -72
- package/dist/select/select.module.js +1 -11
- package/dist/separator/separator.js +1 -19
- package/dist/separator/separator.module.js +1 -3
- package/dist/sheet/sheet.js +1 -49
- package/dist/sheet/sheet.module.js +1 -9
- package/dist/shell-header/shell-header.css +1 -1
- package/dist/shell-header/shell-header.js +1 -169
- package/dist/shell-header/shell-header.module.js +1 -24
- package/dist/side-nav/side-nav.css +1 -1
- package/dist/side-nav/side-nav.js +1 -334
- package/dist/side-nav/side-nav.module.js +1 -31
- package/dist/skeleton/skeleton.css +1 -1
- package/dist/skeleton/skeleton.js +1 -23
- package/dist/skeleton/skeleton.module.js +1 -7
- package/dist/skip-nav/skip-nav.js +1 -28
- package/dist/skip-nav/skip-nav.module.js +1 -3
- package/dist/slider/slider.js +1 -29
- package/dist/slider/slider.module.js +1 -7
- package/dist/spinner/spinner.css +1 -1
- package/dist/spinner/spinner.js +1 -18
- package/dist/spinner/spinner.module.js +1 -6
- package/dist/stack/stack.js +1 -17
- package/dist/stack/stack.module.js +1 -6
- package/dist/stat/stat.js +1 -41
- package/dist/stat/stat.module.js +1 -11
- package/dist/status/status.css +1 -1
- package/dist/status/status.js +1 -25
- package/dist/status/status.module.js +1 -7
- package/dist/steps/steps.css +1 -1
- package/dist/steps/steps.js +1 -35
- package/dist/steps/steps.module.js +1 -8
- package/dist/structured-list/structured-list.js +1 -102
- package/dist/structured-list/structured-list.module.js +1 -12
- package/dist/styles.css +395 -53
- package/dist/swap/swap.css +1 -1
- package/dist/swap/swap.js +1 -36
- package/dist/swap/swap.module.js +1 -7
- package/dist/swipe-item/swipe-item.js +1 -62
- package/dist/swipe-item/swipe-item.module.js +1 -12
- package/dist/switcher/switcher.js +1 -32
- package/dist/switcher/switcher.module.js +1 -8
- package/dist/tabs/tabs.js +1 -98
- package/dist/tabs/tabs.module.js +1 -8
- package/dist/tag/tag.js +1 -33
- package/dist/tag/tag.module.js +1 -6
- package/dist/tags-input/tags-input.js +1 -64
- package/dist/tags-input/tags-input.module.js +1 -8
- package/dist/text/text.css +1 -1
- package/dist/text/text.js +1 -16
- package/dist/text/text.module.js +1 -3
- package/dist/textarea/textarea.css +1 -1
- package/dist/textarea/textarea.js +1 -57
- package/dist/textarea/textarea.module.js +1 -9
- package/dist/tile/tile.css +1 -1
- package/dist/tile/tile.js +1 -39
- package/dist/tile/tile.module.js +1 -7
- package/dist/time-picker/time-picker.js +1 -63
- package/dist/time-picker/time-picker.module.js +1 -9
- package/dist/timeline/timeline.js +1 -55
- package/dist/timeline/timeline.module.js +1 -11
- package/dist/toast/toast.css +1 -1
- package/dist/toast/toast.js +1 -85
- package/dist/toast/toast.module.js +1 -11
- package/dist/toc/toc.css +1 -1
- package/dist/toc/toc.js +1 -43
- package/dist/toc/toc.module.js +1 -3
- package/dist/toc/use-toc-from-region.js +1 -18
- package/dist/toggle/toggle.js +1 -41
- package/dist/toggle/toggle.module.js +1 -8
- package/dist/toggle-group/toggle-group.js +1 -55
- package/dist/toggle-group/toggle-group.module.js +1 -6
- package/dist/toggletip/toggletip.js +1 -49
- package/dist/toggletip/toggletip.module.js +1 -7
- package/dist/tooltip/tooltip.css +1 -1
- package/dist/tooltip/tooltip.js +1 -58
- package/dist/tooltip/tooltip.module.js +1 -6
- package/dist/tree-view/tree-view.css +1 -1
- package/dist/tree-view/tree-view.js +1 -201
- package/dist/tree-view/tree-view.module.js +1 -13
- package/dist/user/user.js +1 -35
- package/dist/user/user.module.js +1 -9
- package/dist/virtual-list/virtual-list.js +1 -40
- package/dist/virtual-list/virtual-list.module.js +1 -7
- package/dist/visually-hidden/visually-hidden.js +1 -2
- package/dist/wheel-picker/wheel-picker.js +1 -84
- package/dist/wheel-picker/wheel-picker.module.js +1 -8
- package/package.json +4 -4
- package/readme.body.md +7 -5
|
@@ -1,93 +1 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import e from "./context-menu.module.js";
|
|
4
|
-
import { Children as t, isValidElement as n, useRef as r } from "react";
|
|
5
|
-
import { useSignal as i, useSignalEffect as a, useSignals as o } from "@cascivo/core";
|
|
6
|
-
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
7
|
-
//#region ../components/src/context-menu/context-menu.tsx
|
|
8
|
-
function l() {
|
|
9
|
-
return globalThis.process?.env?.NODE_ENV !== "production";
|
|
10
|
-
}
|
|
11
|
-
function u({ children: u }) {
|
|
12
|
-
o();
|
|
13
|
-
let f = r(null), p = r(null), m = i(!1), h = () => {
|
|
14
|
-
let e = f.current;
|
|
15
|
-
return e ? Array.from(e.querySelectorAll("[role=\"menuitem\"]:not([aria-disabled=\"true\"])")) : [];
|
|
16
|
-
}, g = (e) => {
|
|
17
|
-
let t = h();
|
|
18
|
-
t.length !== 0 && t[e(t, t.indexOf(document.activeElement))]?.focus();
|
|
19
|
-
}, _ = (e) => {
|
|
20
|
-
switch (e.key) {
|
|
21
|
-
case "ArrowDown":
|
|
22
|
-
e.preventDefault(), g((e, t) => t < 0 ? 0 : (t + 1) % e.length);
|
|
23
|
-
break;
|
|
24
|
-
case "ArrowUp":
|
|
25
|
-
e.preventDefault(), g((e, t) => t < 0 ? e.length - 1 : (t - 1 + e.length) % e.length);
|
|
26
|
-
break;
|
|
27
|
-
case "Home":
|
|
28
|
-
e.preventDefault(), g(() => 0);
|
|
29
|
-
break;
|
|
30
|
-
case "End":
|
|
31
|
-
e.preventDefault(), g((e) => e.length - 1);
|
|
32
|
-
break;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
a(() => {
|
|
36
|
-
let e = f.current;
|
|
37
|
-
if (e) if (m.value) {
|
|
38
|
-
try {
|
|
39
|
-
e.showPopover();
|
|
40
|
-
} catch {}
|
|
41
|
-
h()[0]?.focus();
|
|
42
|
-
} else try {
|
|
43
|
-
e.hidePopover();
|
|
44
|
-
} catch {}
|
|
45
|
-
}), a(() => {
|
|
46
|
-
let e = f.current;
|
|
47
|
-
if (!e) return;
|
|
48
|
-
let t = (e) => {
|
|
49
|
-
e.newState === "closed" && (m.value = !1);
|
|
50
|
-
};
|
|
51
|
-
return e.addEventListener("toggle", t), () => e.removeEventListener("toggle", t);
|
|
52
|
-
});
|
|
53
|
-
function v(e) {
|
|
54
|
-
e.preventDefault();
|
|
55
|
-
let t = p.current;
|
|
56
|
-
t && (t.style.setProperty("--cascivo-context-x", `${e.clientX}px`), t.style.setProperty("--cascivo-context-y", `${e.clientY}px`), m.value = !0);
|
|
57
|
-
}
|
|
58
|
-
let y = t.toArray(u), b = y.filter((e) => n(e) && e.type === d), x = y.filter((e) => !b.includes(e));
|
|
59
|
-
if (b.length === 0 && l()) throw Error("<ContextMenu> requires at least one <ContextMenuItem> child. Items are matched by component identity, so they must be direct children — not wrapped in a fragment or another component.");
|
|
60
|
-
return /* @__PURE__ */ c("div", {
|
|
61
|
-
ref: p,
|
|
62
|
-
onContextMenu: v,
|
|
63
|
-
className: e.wrapper,
|
|
64
|
-
children: [x, /* @__PURE__ */ s("div", {
|
|
65
|
-
ref: f,
|
|
66
|
-
popover: "auto",
|
|
67
|
-
role: "menu",
|
|
68
|
-
"data-state": m.value ? "open" : "closed",
|
|
69
|
-
className: e.menu,
|
|
70
|
-
onKeyDown: _,
|
|
71
|
-
children: b
|
|
72
|
-
})]
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function d({ children: t, onSelect: n, disabled: r }) {
|
|
76
|
-
function i() {
|
|
77
|
-
r || n();
|
|
78
|
-
}
|
|
79
|
-
function a(e) {
|
|
80
|
-
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), i());
|
|
81
|
-
}
|
|
82
|
-
return /* @__PURE__ */ s("div", {
|
|
83
|
-
role: "menuitem",
|
|
84
|
-
tabIndex: r ? -1 : 0,
|
|
85
|
-
"aria-disabled": r,
|
|
86
|
-
onClick: i,
|
|
87
|
-
onKeyDown: a,
|
|
88
|
-
className: e.item,
|
|
89
|
-
children: t
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
//#endregion
|
|
93
|
-
export { u as ContextMenu, d as ContextMenuItem };
|
|
1
|
+
"use client";import e from"./context-menu.module.js";import{Children as t,isValidElement as n,useRef as r}from"react";import{useSignal as i,useSignalEffect as a,useSignals as o}from"@cascivo/core";import{jsx as s,jsxs as c}from"react/jsx-runtime";function l(){return globalThis.process?.env?.NODE_ENV!==`production`}function u({children:u}){o();let f=r(null),p=r(null),m=i(!1),h=()=>{let e=f.current;return e?Array.from(e.querySelectorAll(`[role="menuitem"]:not([aria-disabled="true"])`)):[]},g=e=>{let t=h();t.length!==0&&t[e(t,t.indexOf(document.activeElement))]?.focus()},_=e=>{switch(e.key){case`ArrowDown`:e.preventDefault(),g((e,t)=>t<0?0:(t+1)%e.length);break;case`ArrowUp`:e.preventDefault(),g((e,t)=>t<0?e.length-1:(t-1+e.length)%e.length);break;case`Home`:e.preventDefault(),g(()=>0);break;case`End`:e.preventDefault(),g(e=>e.length-1);break}};a(()=>{let e=f.current;if(e)if(m.value){try{e.showPopover()}catch{}h()[0]?.focus()}else try{e.hidePopover()}catch{}}),a(()=>{let e=f.current;if(!e)return;let t=e=>{e.newState===`closed`&&(m.value=!1)};return e.addEventListener(`toggle`,t),()=>e.removeEventListener(`toggle`,t)});function v(e){e.preventDefault();let t=p.current;t&&(t.style.setProperty(`--cascivo-context-x`,`${e.clientX}px`),t.style.setProperty(`--cascivo-context-y`,`${e.clientY}px`),m.value=!0)}let y=t.toArray(u),b=y.filter(e=>n(e)&&e.type===d),x=y.filter(e=>!b.includes(e));if(b.length===0&&l())throw Error(`<ContextMenu> requires at least one <ContextMenuItem> child. Items are matched by component identity, so they must be direct children — not wrapped in a fragment or another component.`);return c(`div`,{ref:p,onContextMenu:v,className:e.wrapper,children:[x,s(`div`,{ref:f,popover:`auto`,role:`menu`,"data-state":m.value?`open`:`closed`,className:e.menu,onKeyDown:_,children:b})]})}function d({children:t,onSelect:n,disabled:r}){function i(){r||n()}function a(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),i())}return s(`div`,{role:`menuitem`,tabIndex:r?-1:0,"aria-disabled":r,onClick:i,onKeyDown:a,className:e.item,children:t})}export{u as ContextMenu,d as ContextMenuItem};
|
|
@@ -1,60 +1 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import e from "./copy-button.module.js";
|
|
4
|
-
import { forwardRef as t } from "react";
|
|
5
|
-
import { cn as n, useSignal as r, useSignals as i } from "@cascivo/core";
|
|
6
|
-
import { builtin as a, t as o } from "@cascivo/i18n";
|
|
7
|
-
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
8
|
-
//#region ../components/src/copy-button/copy-button.tsx
|
|
9
|
-
var l = t(function({ value: t, size: l = "md", labels: u, className: d, ...f }, p) {
|
|
10
|
-
i();
|
|
11
|
-
let m = r(!1), h = u?.copy ?? o(a.copyButton.copy), g = u?.copied ?? o(a.copyButton.copied);
|
|
12
|
-
return /* @__PURE__ */ s("button", {
|
|
13
|
-
type: "button",
|
|
14
|
-
"aria-label": m.value ? g : h,
|
|
15
|
-
"data-state": m.value ? "copied" : "idle",
|
|
16
|
-
"data-size": l,
|
|
17
|
-
className: n(e.copyButton, d),
|
|
18
|
-
onClick: () => {
|
|
19
|
-
navigator.clipboard.writeText(t), m.value = !0, setTimeout(() => {
|
|
20
|
-
m.value = !1;
|
|
21
|
-
}, 2e3);
|
|
22
|
-
},
|
|
23
|
-
ref: p,
|
|
24
|
-
...f,
|
|
25
|
-
children: m.value ? /* @__PURE__ */ s("svg", {
|
|
26
|
-
"aria-hidden": "true",
|
|
27
|
-
viewBox: "0 0 16 16",
|
|
28
|
-
className: e.icon,
|
|
29
|
-
children: /* @__PURE__ */ s("path", {
|
|
30
|
-
d: "M13.5 4.5 6 12 2.5 8.5",
|
|
31
|
-
fill: "none",
|
|
32
|
-
stroke: "currentColor",
|
|
33
|
-
strokeWidth: "1.5",
|
|
34
|
-
strokeLinecap: "round",
|
|
35
|
-
strokeLinejoin: "round"
|
|
36
|
-
})
|
|
37
|
-
}) : /* @__PURE__ */ c("svg", {
|
|
38
|
-
"aria-hidden": "true",
|
|
39
|
-
viewBox: "0 0 16 16",
|
|
40
|
-
className: e.icon,
|
|
41
|
-
children: [/* @__PURE__ */ s("rect", {
|
|
42
|
-
x: "5.5",
|
|
43
|
-
y: "5.5",
|
|
44
|
-
width: "8",
|
|
45
|
-
height: "8",
|
|
46
|
-
rx: "1.5",
|
|
47
|
-
fill: "none",
|
|
48
|
-
stroke: "currentColor",
|
|
49
|
-
strokeWidth: "1.5"
|
|
50
|
-
}), /* @__PURE__ */ s("path", {
|
|
51
|
-
d: "M3.5 10.5h-1a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v1",
|
|
52
|
-
fill: "none",
|
|
53
|
-
stroke: "currentColor",
|
|
54
|
-
strokeWidth: "1.5"
|
|
55
|
-
})]
|
|
56
|
-
})
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//#endregion
|
|
60
|
-
export { l as CopyButton };
|
|
1
|
+
"use client";import e from"./copy-button.module.js";import{forwardRef as t}from"react";import{cn as n,useSignal as r,useSignals as i}from"@cascivo/core";import{builtin as a,t as o}from"@cascivo/i18n";import{jsx as s,jsxs as c}from"react/jsx-runtime";var l=t(function({value:t,size:l=`md`,labels:u,className:d,...f},p){i();let m=r(!1),h=u?.copy??o(a.copyButton.copy),g=u?.copied??o(a.copyButton.copied);return s(`button`,{type:`button`,"aria-label":m.value?g:h,"data-state":m.value?`copied`:`idle`,"data-size":l,className:n(e.copyButton,d),onClick:()=>{navigator.clipboard.writeText(t),m.value=!0,setTimeout(()=>{m.value=!1},2e3)},ref:p,...f,children:m.value?s(`svg`,{"aria-hidden":`true`,viewBox:`0 0 16 16`,className:e.icon,children:s(`path`,{d:`M13.5 4.5 6 12 2.5 8.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`})}):c(`svg`,{"aria-hidden":`true`,viewBox:`0 0 16 16`,className:e.icon,children:[s(`rect`,{x:`5.5`,y:`5.5`,width:`8`,height:`8`,rx:`1.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`}),s(`path`,{d:`M3.5 10.5h-1a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1h7a1 1 0 0 1 1 1v1`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`})]})})});export{l as CopyButton};
|
|
@@ -1,25 +1 @@
|
|
|
1
|
-
import e from
|
|
2
|
-
import { cn as t } from "@cascivo/core/pure";
|
|
3
|
-
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
4
|
-
//#region ../components/src/data-list/data-list.tsx
|
|
5
|
-
function i({ items: i, orientation: a = "horizontal", dividers: o = !1, size: s = "md", className: c, ...l }) {
|
|
6
|
-
return /* @__PURE__ */ n("dl", {
|
|
7
|
-
"data-orientation": a,
|
|
8
|
-
"data-size": s,
|
|
9
|
-
"data-dividers": o ? "" : void 0,
|
|
10
|
-
className: t(e.list, c),
|
|
11
|
-
...l,
|
|
12
|
-
children: i.map((t, i) => /* @__PURE__ */ r("div", {
|
|
13
|
-
className: e.row,
|
|
14
|
-
children: [/* @__PURE__ */ n("dt", {
|
|
15
|
-
className: e.term,
|
|
16
|
-
children: t.label
|
|
17
|
-
}), /* @__PURE__ */ n("dd", {
|
|
18
|
-
className: e.detail,
|
|
19
|
-
children: t.value
|
|
20
|
-
})]
|
|
21
|
-
}, t.id ?? i))
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
//#endregion
|
|
25
|
-
export { i as DataList };
|
|
1
|
+
import e from"./data-list.module.js";import{cn as t}from"@cascivo/core/pure";import{jsx as n,jsxs as r}from"react/jsx-runtime";function i({items:i,orientation:a=`horizontal`,dividers:o=!1,size:s=`md`,className:c,...l}){return n(`dl`,{"data-orientation":a,"data-size":s,"data-dividers":o?``:void 0,className:t(e.list,c),...l,children:i.map((t,i)=>r(`div`,{className:e.row,children:[n(`dt`,{className:e.term,children:t.label}),n(`dd`,{className:e.detail,children:t.value})]},t.id??i))})}export{i as DataList};
|
|
@@ -1,8 +1 @@
|
|
|
1
|
-
var e
|
|
2
|
-
list: "_list_prsqy_2",
|
|
3
|
-
row: "_row_prsqy_21",
|
|
4
|
-
term: "_term_prsqy_45",
|
|
5
|
-
detail: "_detail_prsqy_51"
|
|
6
|
-
};
|
|
7
|
-
//#endregion
|
|
8
|
-
export { e as default };
|
|
1
|
+
var e={list:`_list_prsqy_2`,row:`_row_prsqy_21`,term:`_term_prsqy_45`,detail:`_detail_prsqy_51`};export{e as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e){if(!e)return!1;switch(e.kind){case`text`:return e.value.trim()!==``;case`select`:return e.values.length>0;case`range`:return e.min!==void 0||e.max!==void 0}}function t(t){let n=0;for(let r in t)e(t[r])&&n++;return n}function n(e,t){switch(t.kind){case`text`:{let n=t.value.trim().toLowerCase();return n===``||String(e??``).toLowerCase().includes(n)}case`select`:return t.values.length===0||t.values.includes(String(e??``));case`range`:{if(t.min===void 0&&t.max===void 0)return!0;let n=typeof e==`number`?e:Number(e);return!(Number.isNaN(n)||t.min!==void 0&&n<t.min||t.max!==void 0&&n>t.max)}}}function r(t,r,i){let a=[];for(let t in r){let n=r[t];n&&e(n)&&a.push([t,n])}if(a.length===0)return t;let o=[];for(let e of t){let t=!0;for(let[r,o]of a)if(!n(i(e,r),o)){t=!1;break}t&&o.push(e)}return o}function i(e,t){let n=new Map;for(let r of e){let e=String(t(r)??``);n.set(e,(n.get(e)??0)+1)}let r=new Intl.Collator().compare;return[...n.entries()].map(([e,t])=>({value:e,count:t})).sort((e,t)=>t.count-e.count||r(e.value,t.value))}function a(e,t){let n=1/0,r=-1/0;for(let i of e){let e=t(i),a=typeof e==`number`?e:Number(e);Number.isNaN(a)||e==null||e===``||(a<n&&(n=a),a>r&&(r=a))}return n<=r?{min:n,max:r}:void 0}export{r as applyColumnFilters,t as countActiveFilters,i as facetValues,e as isFilterActive,a as numericExtent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t){let n=t.order;if(!n||n.length===0)return[...e];let r=new Map(e.map(e=>[e.key,e])),i=[];for(let e of n){let t=r.get(e);t&&(i.push(t),r.delete(e))}for(let t of e)r.has(t.key)&&i.push(t);return i}function t(t,n){let r=new Set(n.hidden??[]),i=n.pinned??{},a=e(t,n).filter(e=>!r.has(e.key));if(a.length===0)return[...t];let o=a.filter(e=>i[e.key]===`start`),s=a.filter(e=>i[e.key]===void 0),c=a.filter(e=>i[e.key]===`end`);return[...o,...s,...c]}function n(t,n,r,i){let a=new Set(n.hidden??[]),o=n.pinned??{},s=e(t,n).map(e=>e.key),c=s.indexOf(r);if(c===-1)return n;let l=o[r],u=c+i;for(;u>=0&&u<s.length;){let e=s[u];if(!a.has(e)&&o[e]===l)break;if(o[e]!==l)return n;u+=i}if(u<0||u>=s.length)return n;let d=[...s];return d.splice(c,1),d.splice(u,0,r),{...n,order:d}}function r(e,t,n){let r={...e.pinned};return n===null?delete r[t]:r[t]=n,{...e,pinned:r}}function i(e,t,n){let r={...e.widths};return n===void 0?delete r[t]:r[t]=Math.max(48,Math.round(n)),{...e,widths:r}}function a(e,t,n){let r=t.hidden??[];return r.includes(n)?{...t,hidden:r.filter(e=>e!==n)}:e.filter(e=>!r.includes(e.key)).length<=1?t:{...t,hidden:[...r,n]}}function o(e,t){let n=Array.from({length:e.length}),r=0;for(let i=0;i<e.length;i++)t[i]===`start`&&(n[i]=r,r+=e[i]);r=0;for(let i=e.length-1;i>=0;i--)t[i]===`end`&&(n[i]=r,r+=e[i]);return n}export{t as displayColumns,n as moveColumn,r as pinColumn,i as resizeColumn,o as stickyOffsets,a as toggleColumnHidden};
|
|
@@ -1,371 +1 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
|
|
3
|
-
import { Button as e } from "../button/button.js";
|
|
4
|
-
import { Checkbox as t } from "../checkbox/checkbox.js";
|
|
5
|
-
import n from "./data-table.module.js";
|
|
6
|
-
import { Fragment as r, useId as i, useRef as a } from "react";
|
|
7
|
-
import { batch as o, cn as s, useComputed as c, useControllableSignal as l, useSignal as u, useSignalEffect as ee, useSignals as te } from "@cascivo/core";
|
|
8
|
-
import { builtin as d, t as f } from "@cascivo/i18n";
|
|
9
|
-
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
10
|
-
import { flushSync as ne } from "react-dom";
|
|
11
|
-
//#region ../components/src/data-table/data-table.tsx
|
|
12
|
-
function h(e, t) {
|
|
13
|
-
return e[t];
|
|
14
|
-
}
|
|
15
|
-
function re(e, t) {
|
|
16
|
-
return typeof e == "number" && typeof t == "number" ? e - t : String(e ?? "").localeCompare(String(t ?? ""));
|
|
17
|
-
}
|
|
18
|
-
function g({ columns: g, rows: ie, getRowId: _, sort: ae, defaultSort: oe, sortMode: se = "client", onSortChange: ce, searchable: v = !1, pagination: y, selection: b, batchActions: x, renderExpandedRow: S, density: le = "normal", zebra: ue = !1, stickyHeader: de = !1, loading: C = !1, emptyState: fe, title: w, description: T, labels: E, className: pe, virtualized: D = !1, rowHeight: O = 40, windowSize: me = 20, overscan: he = 3 }) {
|
|
19
|
-
te();
|
|
20
|
-
let k = i(), A = {
|
|
21
|
-
search: E?.search ?? f(d.dataTable.search),
|
|
22
|
-
empty: E?.empty ?? f(d.dataTable.empty),
|
|
23
|
-
selectAll: E?.selectAll ?? f(d.dataTable.selectAll),
|
|
24
|
-
selectRow: E?.selectRow ?? f(d.dataTable.selectRow),
|
|
25
|
-
itemsSelected: (e) => E?.itemsSelected?.(e) ?? f(d.dataTable.itemsSelected, { count: e }),
|
|
26
|
-
expandRow: E?.expandRow ?? f(d.dataTable.expandRow),
|
|
27
|
-
previousPage: E?.previousPage ?? f(d.dataTable.previousPage),
|
|
28
|
-
nextPage: E?.nextPage ?? f(d.dataTable.nextPage)
|
|
29
|
-
}, [ge] = l({ value: ie }), [_e] = l({ value: g }), [j, ve] = l({
|
|
30
|
-
value: ae,
|
|
31
|
-
defaultValue: oe
|
|
32
|
-
}), M = u([]), N = b?.selected ?? M.value, P = (e) => {
|
|
33
|
-
b?.selected === void 0 && (M.value = e), b?.onChange?.(e);
|
|
34
|
-
}, F = u(""), I = u(1), L = u(y?.pageSize ?? 0), R = u(/* @__PURE__ */ new Set()), z = a(null), B = u(0);
|
|
35
|
-
ee(() => {
|
|
36
|
-
if (!D) return;
|
|
37
|
-
let e = z.current;
|
|
38
|
-
if (!e) return;
|
|
39
|
-
let t = () => {
|
|
40
|
-
ne(() => {
|
|
41
|
-
B.value = e.scrollTop;
|
|
42
|
-
});
|
|
43
|
-
};
|
|
44
|
-
return e.addEventListener("scroll", t, { passive: !0 }), () => e.removeEventListener("scroll", t);
|
|
45
|
-
});
|
|
46
|
-
let V = c(() => ge.value.map((e, t) => ({
|
|
47
|
-
row: e,
|
|
48
|
-
id: _ ? _(e) : String(t)
|
|
49
|
-
}))), H = c(() => {
|
|
50
|
-
let e = F.value.trim().toLowerCase();
|
|
51
|
-
if (!e) return V.value;
|
|
52
|
-
let t = _e.value;
|
|
53
|
-
return V.value.filter((n) => t.some((t) => String(h(n.row, t.key) ?? "").toLowerCase().includes(e)));
|
|
54
|
-
}), U = c(() => {
|
|
55
|
-
let e = j.value;
|
|
56
|
-
if (!e || se === "server") return H.value;
|
|
57
|
-
let t = H.value.map((e, t) => [e, t]);
|
|
58
|
-
return t.sort((t, n) => {
|
|
59
|
-
let r = re(h(t[0].row, e.key), h(n[0].row, e.key));
|
|
60
|
-
return e.direction === "desc" && (r = -r), r === 0 ? t[1] - n[1] : r;
|
|
61
|
-
}), t.map(([e]) => e);
|
|
62
|
-
}), ye = c(() => y ? Math.max(1, Math.ceil(H.value.length / L.value)) : 1), W = c(() => Math.min(I.value, ye.value)), G = c(() => {
|
|
63
|
-
if (!y) return U.value;
|
|
64
|
-
let e = (W.value - 1) * L.value;
|
|
65
|
-
return U.value.slice(e, e + L.value);
|
|
66
|
-
}), K = c(() => D ? Math.floor(B.value / O) : 0), be = c(() => D ? Math.min(K.value + me + he * 2, G.value.length) : G.value.length), xe = c(() => D ? G.value.slice(K.value, be.value) : G.value), Se = (e) => {
|
|
67
|
-
let t = j.value, n;
|
|
68
|
-
n = !t || t.key !== e ? {
|
|
69
|
-
key: e,
|
|
70
|
-
direction: "asc"
|
|
71
|
-
} : t.direction === "asc" ? {
|
|
72
|
-
key: e,
|
|
73
|
-
direction: "desc"
|
|
74
|
-
} : void 0, o(() => {
|
|
75
|
-
ve(n), I.value = 1;
|
|
76
|
-
}), ce?.(n);
|
|
77
|
-
}, Ce = (e) => {
|
|
78
|
-
if (![
|
|
79
|
-
"ArrowUp",
|
|
80
|
-
"ArrowDown",
|
|
81
|
-
"ArrowLeft",
|
|
82
|
-
"ArrowRight"
|
|
83
|
-
].includes(e.key)) return;
|
|
84
|
-
let t = e.currentTarget, n = Array.from(t.querySelectorAll("th button, td button, td input[type=\"checkbox\"]")), r = n.indexOf(document.activeElement);
|
|
85
|
-
if (r === -1) return;
|
|
86
|
-
e.preventDefault();
|
|
87
|
-
let i = (e) => e.closest("tr"), a;
|
|
88
|
-
if (e.key === "ArrowRight" || e.key === "ArrowLeft") {
|
|
89
|
-
let t = n[r + (e.key === "ArrowRight" ? 1 : -1)];
|
|
90
|
-
t && i(t) === i(n[r]) && (a = t);
|
|
91
|
-
} else {
|
|
92
|
-
let t = e.key === "ArrowDown" ? 1 : -1, o = n[r];
|
|
93
|
-
for (let e = r + t; e >= 0 && e < n.length; e += t) if (i(n[e]) !== i(o)) {
|
|
94
|
-
a = n[e];
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
a?.focus();
|
|
99
|
-
}, we = (e) => {
|
|
100
|
-
let t = N;
|
|
101
|
-
b?.mode === "single" ? P(t.includes(e) ? [] : [e]) : P(t.includes(e) ? t.filter((t) => t !== e) : [...t, e]);
|
|
102
|
-
}, Te = (e) => {
|
|
103
|
-
let t = new Set(R.value);
|
|
104
|
-
t.has(e) ? t.delete(e) : t.add(e), R.value = t;
|
|
105
|
-
}, q = G.value, Ee = R.value, J = q.length > 0 && q.every((e) => N.includes(e.id)), De = q.some((e) => N.includes(e.id)), Y = xe.value, X = K.value, Oe = be.value, ke = () => {
|
|
106
|
-
let e = q.map((e) => e.id);
|
|
107
|
-
P(J ? N.filter((t) => !e.includes(t)) : [...new Set([...N, ...e])]);
|
|
108
|
-
}, Z = g.length + +!!b + +!!S, Ae = y && !D && Y.length > 0 ? Math.max(0, L.value - Y.length) : 0, je = `${k}-title`, Me = `${k}-description`, Q = H.value.length, $ = Q === 0 ? 0 : (W.value - 1) * L.value + 1, Ne = Q === 0 ? 0 : $ + q.length - 1, Pe = !!x && x.length > 0 && N.length > 0;
|
|
109
|
-
return /* @__PURE__ */ m("div", {
|
|
110
|
-
className: s(n.root, pe),
|
|
111
|
-
"data-density": le,
|
|
112
|
-
"data-zebra": ue || void 0,
|
|
113
|
-
"data-sticky-header": de || void 0,
|
|
114
|
-
"data-paginated": y ? !0 : void 0,
|
|
115
|
-
"data-fixed-layout": g.every((e) => e.width !== void 0) || void 0,
|
|
116
|
-
children: [
|
|
117
|
-
/* @__PURE__ */ p("span", {
|
|
118
|
-
"aria-live": "polite",
|
|
119
|
-
className: n.srOnly,
|
|
120
|
-
children: N.length > 0 ? A.itemsSelected(N.length) : ""
|
|
121
|
-
}),
|
|
122
|
-
(w !== void 0 || T !== void 0 || v) && /* @__PURE__ */ m("div", {
|
|
123
|
-
className: n.toolbar,
|
|
124
|
-
children: [(w !== void 0 || T !== void 0) && /* @__PURE__ */ m("div", {
|
|
125
|
-
className: n.heading,
|
|
126
|
-
children: [w !== void 0 && /* @__PURE__ */ p("div", {
|
|
127
|
-
id: je,
|
|
128
|
-
className: n.title,
|
|
129
|
-
children: w
|
|
130
|
-
}), T !== void 0 && /* @__PURE__ */ p("div", {
|
|
131
|
-
id: Me,
|
|
132
|
-
className: n.description,
|
|
133
|
-
children: T
|
|
134
|
-
})]
|
|
135
|
-
}), v && /* @__PURE__ */ p("input", {
|
|
136
|
-
type: "search",
|
|
137
|
-
className: n.search,
|
|
138
|
-
"aria-label": A.search,
|
|
139
|
-
placeholder: A.search,
|
|
140
|
-
value: F.value,
|
|
141
|
-
onChange: (e) => {
|
|
142
|
-
F.value = e.target.value, I.value = 1;
|
|
143
|
-
}
|
|
144
|
-
})]
|
|
145
|
-
}),
|
|
146
|
-
Pe && /* @__PURE__ */ m("div", {
|
|
147
|
-
className: n.batchBar,
|
|
148
|
-
children: [/* @__PURE__ */ p("span", {
|
|
149
|
-
className: n.batchCount,
|
|
150
|
-
children: A.itemsSelected(N.length)
|
|
151
|
-
}), /* @__PURE__ */ p("div", {
|
|
152
|
-
className: n.batchActions,
|
|
153
|
-
children: x.map((t, n) => /* @__PURE__ */ p(e, {
|
|
154
|
-
size: "sm",
|
|
155
|
-
variant: "secondary",
|
|
156
|
-
onClick: () => t.onClick(N),
|
|
157
|
-
children: t.label
|
|
158
|
-
}, t.id ?? `${n}-${t.label}`))
|
|
159
|
-
})]
|
|
160
|
-
}),
|
|
161
|
-
/* @__PURE__ */ p("div", {
|
|
162
|
-
ref: D ? z : void 0,
|
|
163
|
-
className: s(n.scroller, D && n.scrollerVirtualized),
|
|
164
|
-
children: /* @__PURE__ */ m("table", {
|
|
165
|
-
className: n.table,
|
|
166
|
-
"aria-labelledby": w === void 0 ? void 0 : je,
|
|
167
|
-
"aria-describedby": T === void 0 ? void 0 : Me,
|
|
168
|
-
"aria-busy": C || void 0,
|
|
169
|
-
"aria-rowcount": D ? q.length : void 0,
|
|
170
|
-
onKeyDown: Ce,
|
|
171
|
-
children: [
|
|
172
|
-
/* @__PURE__ */ m("colgroup", { children: [
|
|
173
|
-
S && /* @__PURE__ */ p("col", { className: n.controlCol }),
|
|
174
|
-
b && /* @__PURE__ */ p("col", { className: n.controlCol }),
|
|
175
|
-
g.map((e) => /* @__PURE__ */ p("col", { style: e.width !== void 0 || e.minWidth !== void 0 ? {
|
|
176
|
-
...e.width === void 0 ? {} : { width: e.width },
|
|
177
|
-
...e.minWidth === void 0 ? {} : { minWidth: e.minWidth }
|
|
178
|
-
} : void 0 }, e.key))
|
|
179
|
-
] }),
|
|
180
|
-
/* @__PURE__ */ p("thead", { children: /* @__PURE__ */ m("tr", { children: [
|
|
181
|
-
S && /* @__PURE__ */ p("th", {
|
|
182
|
-
scope: "col",
|
|
183
|
-
className: n.controlCell,
|
|
184
|
-
children: /* @__PURE__ */ p("span", {
|
|
185
|
-
className: n.srOnly,
|
|
186
|
-
children: A.expandRow
|
|
187
|
-
})
|
|
188
|
-
}),
|
|
189
|
-
b && /* @__PURE__ */ p("th", {
|
|
190
|
-
scope: "col",
|
|
191
|
-
className: n.controlCell,
|
|
192
|
-
children: b.mode === "multi" ? /* @__PURE__ */ p(t, {
|
|
193
|
-
"aria-label": A.selectAll,
|
|
194
|
-
checked: J,
|
|
195
|
-
indeterminate: De && !J,
|
|
196
|
-
onChange: ke
|
|
197
|
-
}) : /* @__PURE__ */ p("span", {
|
|
198
|
-
className: n.srOnly,
|
|
199
|
-
children: A.selectRow
|
|
200
|
-
})
|
|
201
|
-
}),
|
|
202
|
-
g.map((e) => {
|
|
203
|
-
let t = j.value?.key === e.key ? j.value.direction : void 0, r = t === "asc" ? "ascending" : t === "desc" ? "descending" : "none";
|
|
204
|
-
return /* @__PURE__ */ p("th", {
|
|
205
|
-
scope: "col",
|
|
206
|
-
"data-align": e.align ?? "start",
|
|
207
|
-
"data-sized": e.width !== void 0 || void 0,
|
|
208
|
-
"aria-sort": e.sortable ? r : void 0,
|
|
209
|
-
children: e.sortable ? /* @__PURE__ */ p("button", {
|
|
210
|
-
type: "button",
|
|
211
|
-
className: n.sortButton,
|
|
212
|
-
"data-state": r,
|
|
213
|
-
onClick: () => Se(e.key),
|
|
214
|
-
children: e.header
|
|
215
|
-
}) : e.header
|
|
216
|
-
}, e.key);
|
|
217
|
-
})
|
|
218
|
-
] }) }),
|
|
219
|
-
/* @__PURE__ */ m("tbody", { children: [
|
|
220
|
-
C && Array.from({ length: 5 }, (e, t) => /* @__PURE__ */ p("tr", {
|
|
221
|
-
className: n.row,
|
|
222
|
-
children: Array.from({ length: Z }, (e, t) => /* @__PURE__ */ p("td", { children: /* @__PURE__ */ p("span", {
|
|
223
|
-
className: n.shimmer,
|
|
224
|
-
"aria-hidden": "true"
|
|
225
|
-
}) }, t))
|
|
226
|
-
}, t)),
|
|
227
|
-
!C && q.length === 0 && /* @__PURE__ */ p("tr", {
|
|
228
|
-
"data-empty-row": !0,
|
|
229
|
-
children: /* @__PURE__ */ p("td", {
|
|
230
|
-
colSpan: Z,
|
|
231
|
-
className: n.emptyCell,
|
|
232
|
-
children: fe ?? A.empty
|
|
233
|
-
})
|
|
234
|
-
}),
|
|
235
|
-
!C && D && X > 0 && /* @__PURE__ */ p("tr", {
|
|
236
|
-
"aria-hidden": "true",
|
|
237
|
-
style: { height: X * O }
|
|
238
|
-
}),
|
|
239
|
-
!C && Y.map((e, i) => {
|
|
240
|
-
let a = D ? X + i : i, o = N.includes(e.id), s = Ee.has(e.id);
|
|
241
|
-
return /* @__PURE__ */ m(r, { children: [/* @__PURE__ */ m("tr", {
|
|
242
|
-
className: n.row,
|
|
243
|
-
"data-parity": a % 2 == 0 ? "even" : "odd",
|
|
244
|
-
"data-state": o ? "selected" : void 0,
|
|
245
|
-
"aria-rowindex": D ? X + i + 1 : void 0,
|
|
246
|
-
children: [
|
|
247
|
-
S && /* @__PURE__ */ p("td", {
|
|
248
|
-
className: n.controlCell,
|
|
249
|
-
children: /* @__PURE__ */ p("button", {
|
|
250
|
-
type: "button",
|
|
251
|
-
className: n.expandButton,
|
|
252
|
-
"aria-expanded": s,
|
|
253
|
-
"aria-label": A.expandRow,
|
|
254
|
-
"data-state": s ? "open" : "closed",
|
|
255
|
-
onClick: () => Te(e.id),
|
|
256
|
-
children: /* @__PURE__ */ p("span", {
|
|
257
|
-
className: n.chevron,
|
|
258
|
-
"aria-hidden": "true"
|
|
259
|
-
})
|
|
260
|
-
})
|
|
261
|
-
}),
|
|
262
|
-
b && /* @__PURE__ */ p("td", {
|
|
263
|
-
className: n.controlCell,
|
|
264
|
-
children: /* @__PURE__ */ p(t, {
|
|
265
|
-
"aria-label": A.selectRow,
|
|
266
|
-
checked: o,
|
|
267
|
-
onChange: () => we(e.id)
|
|
268
|
-
})
|
|
269
|
-
}),
|
|
270
|
-
g.map((t) => /* @__PURE__ */ p("td", {
|
|
271
|
-
"data-align": t.align ?? "start",
|
|
272
|
-
"data-sized": t.width !== void 0 || void 0,
|
|
273
|
-
children: t.render ? t.render(e.row) : String(h(e.row, t.key) ?? "")
|
|
274
|
-
}, t.key))
|
|
275
|
-
]
|
|
276
|
-
}), S && /* @__PURE__ */ p("tr", {
|
|
277
|
-
className: n.expansionRow,
|
|
278
|
-
"data-state": s ? "open" : "closed",
|
|
279
|
-
children: /* @__PURE__ */ p("td", {
|
|
280
|
-
colSpan: Z,
|
|
281
|
-
children: /* @__PURE__ */ p("div", {
|
|
282
|
-
className: n.expansionGrid,
|
|
283
|
-
"data-state": s ? "open" : "closed",
|
|
284
|
-
children: /* @__PURE__ */ p("div", {
|
|
285
|
-
className: n.expansionInner,
|
|
286
|
-
children: S(e.row)
|
|
287
|
-
})
|
|
288
|
-
})
|
|
289
|
-
})
|
|
290
|
-
})] }, e.id);
|
|
291
|
-
}),
|
|
292
|
-
!C && D && Oe < q.length && /* @__PURE__ */ p("tr", {
|
|
293
|
-
"aria-hidden": "true",
|
|
294
|
-
style: { height: (q.length - Oe) * O }
|
|
295
|
-
}),
|
|
296
|
-
Ae > 0 && /* @__PURE__ */ p("tr", {
|
|
297
|
-
"aria-hidden": "true",
|
|
298
|
-
"data-filler-row": !0,
|
|
299
|
-
children: /* @__PURE__ */ p("td", {
|
|
300
|
-
colSpan: Z,
|
|
301
|
-
style: {
|
|
302
|
-
blockSize: `calc(var(--_row-height) * ${Ae})`,
|
|
303
|
-
padding: 0
|
|
304
|
-
}
|
|
305
|
-
})
|
|
306
|
-
})
|
|
307
|
-
] })
|
|
308
|
-
]
|
|
309
|
-
})
|
|
310
|
-
}),
|
|
311
|
-
y && /* @__PURE__ */ m("div", {
|
|
312
|
-
className: n.footer,
|
|
313
|
-
children: [
|
|
314
|
-
y.pageSizeOptions && /* @__PURE__ */ m("label", {
|
|
315
|
-
className: n.pageSize,
|
|
316
|
-
children: [/* @__PURE__ */ p("span", { children: "Rows per page" }), /* @__PURE__ */ p("select", {
|
|
317
|
-
value: L.value,
|
|
318
|
-
onChange: (e) => {
|
|
319
|
-
L.value = Number(e.target.value), I.value = 1;
|
|
320
|
-
},
|
|
321
|
-
children: y.pageSizeOptions.map((e) => /* @__PURE__ */ p("option", {
|
|
322
|
-
value: e,
|
|
323
|
-
children: e
|
|
324
|
-
}, e))
|
|
325
|
-
})]
|
|
326
|
-
}),
|
|
327
|
-
/* @__PURE__ */ m("span", {
|
|
328
|
-
className: n.range,
|
|
329
|
-
children: [
|
|
330
|
-
$,
|
|
331
|
-
"–",
|
|
332
|
-
Ne,
|
|
333
|
-
" of ",
|
|
334
|
-
Q
|
|
335
|
-
]
|
|
336
|
-
}),
|
|
337
|
-
/* @__PURE__ */ m("div", {
|
|
338
|
-
className: n.pageButtons,
|
|
339
|
-
children: [/* @__PURE__ */ p("button", {
|
|
340
|
-
type: "button",
|
|
341
|
-
className: n.pageButton,
|
|
342
|
-
"aria-label": A.previousPage,
|
|
343
|
-
disabled: W.value <= 1,
|
|
344
|
-
onClick: () => {
|
|
345
|
-
I.value = W.value - 1;
|
|
346
|
-
},
|
|
347
|
-
children: /* @__PURE__ */ p("span", {
|
|
348
|
-
"aria-hidden": "true",
|
|
349
|
-
children: "‹"
|
|
350
|
-
})
|
|
351
|
-
}), /* @__PURE__ */ p("button", {
|
|
352
|
-
type: "button",
|
|
353
|
-
className: n.pageButton,
|
|
354
|
-
"aria-label": A.nextPage,
|
|
355
|
-
disabled: W.value >= ye.value,
|
|
356
|
-
onClick: () => {
|
|
357
|
-
I.value = W.value + 1;
|
|
358
|
-
},
|
|
359
|
-
children: /* @__PURE__ */ p("span", {
|
|
360
|
-
"aria-hidden": "true",
|
|
361
|
-
children: "›"
|
|
362
|
-
})
|
|
363
|
-
})]
|
|
364
|
-
})
|
|
365
|
-
]
|
|
366
|
-
})
|
|
367
|
-
]
|
|
368
|
-
});
|
|
369
|
-
}
|
|
370
|
-
//#endregion
|
|
371
|
-
export { g as DataTable };
|
|
1
|
+
"use client";import{Button as e}from"../button/button.js";import{Checkbox as t}from"../checkbox/checkbox.js";import{OverflowMenu as n}from"../overflow-menu/overflow-menu.js";import{Editable as r}from"../editable/editable.js";import{Popover as i,PopoverContent as a,PopoverTrigger as o}from"../popover/popover.js";import s from"./data-table.module.js";import{applyColumnFilters as c,countActiveFilters as l,facetValues as ee,isFilterActive as te,numericExtent as ne}from"./column-filter.js";import{displayColumns as re,moveColumn as ie,pinColumn as ae,resizeColumn as oe,stickyOffsets as se,toggleColumnHidden as ce}from"./column-layout.js";import{moveGridFocus as le}from"./grid-keys.js";import{aggregate as u,groupItems as ue,headerSpans as de}from"./row-group.js";import{createRowSearch as fe}from"./row-search.js";import{downloadCsv as pe,toCsv as me}from"./to-csv.js";import{sortRowsBy as he}from"./row-sort.js";import{computeWindow as ge,scrollTopForRow as _e}from"./virtual-window.js";import{Fragment as ve,useId as ye,useRef as d}from"react";import{batch as f,cn as be,persistedSignal as xe,useComputed as p,useControllableSignal as m,useSignal as h,useSignalEffect as g,useSignals as Se}from"@cascivo/core";import{builtin as _,formatNumber as v,t as y}from"@cascivo/i18n";import{jsx as b,jsxs as x}from"react/jsx-runtime";import{flushSync as Ce}from"react-dom";var we=``;function Te(e,t){let n=e.aggregate;if(n===void 0)return null;if(typeof n==`function`)return n(t);let r=u(t.map(t=>S(t,e.key)),n);return r===void 0?null:n===`count`?v(r):v(r,{maximumFractionDigits:2})}var Ee=new Map;function De(e){let t=Ee.get(e);return t||(t=xe(`cascivo.data-table.${e}`,{columnState:{}}),Ee.set(e,t)),t}var Oe=new Set;function ke(){return globalThis.process?.env?.NODE_ENV!==`production`}var Ae=new Set;function je(e,t,n){if(!ke())return;let r=e.scrollWidth-e.clientWidth;if(r<=1)return;let i=`${n}:${e.clientWidth}`;Ae.has(i)||(Ae.add(i),console.warn(`cascivo DataTable: the table overflows its container (scrollWidth ${e.scrollWidth}px > clientWidth ${e.clientWidth}px, by ${r}px), so the last column is cut off. `+(t.length>0?`Drop a \`width\` from one of the sized columns (${t.join(`, `)}), or lower the \`minWidth\` on the free-form one.`:"Lower the `minWidth` on the widest column.")))}function Me(e,t,n){ke()&&(e!==void 0||t!==void 0||Oe.has(n)||(Oe.add(n),console.warn(`cascivo DataTable: this table has no accessible name (columns: ${n}). Pass \`title\` for a visible caption, or \`ariaLabel\` for a name only screen readers hear.`)))}function S(e,t){return e[t]}function Ne({columns:u,rows:xe,getRowId:v,sort:Ee,defaultSort:Oe,sortMode:ke=`client`,onSortChange:Ae,searchable:Ne=!1,pagination:C,selection:w,batchActions:Pe,renderExpandedRow:T,filters:Fe,defaultFilters:Ie,onFiltersChange:Le,noResultsState:Re,toolbar:ze,rowActions:E,columnState:Be,defaultColumnState:Ve,onColumnStateChange:He,columnSettings:D,server:O,multiSort:Ue=!1,stateKey:We,keyboardNavigation:Ge=`row`,onCellEdit:Ke,groupBy:qe,totals:Je=!1,pinnedRows:Ye,columnGroups:Xe,exportable:Ze=!1,density:Qe=`normal`,zebra:$e=!1,stickyHeader:et=!1,loading:k=!1,emptyState:tt,title:A,ariaLabel:nt,description:rt,labels:j,className:it,virtualized:M=!1,rowHeight:at,windowSize:ot,overscan:st=3}){Se();let ct=ye(),N={search:j?.search??y(_.dataTable.search),empty:j?.empty??y(_.dataTable.empty),selectAll:j?.selectAll??y(_.dataTable.selectAll),selectRow:j?.selectRow??y(_.dataTable.selectRow),itemsSelected:e=>j?.itemsSelected?.(e)??y(_.dataTable.itemsSelected,{count:e}),expandRow:j?.expandRow??y(_.dataTable.expandRow),previousPage:j?.previousPage??y(_.dataTable.previousPage),nextPage:j?.nextPage??y(_.dataTable.nextPage),columns:j?.columns??y(_.dataTable.columns),actions:j?.actions??y(_.dataTable.actions),noResults:j?.noResults??y(_.dataTable.noResults),clearFilters:j?.clearFilters??y(_.dataTable.clearFilters),filterColumn:e=>j?.filterColumn?.(e)??y(_.dataTable.filterColumn,{column:e}),min:j?.min??y(_.dataTable.min),max:j?.max??y(_.dataTable.max),all:j?.all??y(_.dataTable.all),columnMenu:e=>j?.columnMenu?.(e)??y(_.dataTable.columnMenu,{column:e}),sortAscending:j?.sortAscending??y(_.dataTable.sortAscending),sortDescending:j?.sortDescending??y(_.dataTable.sortDescending),clearSort:j?.clearSort??y(_.dataTable.clearSort),moveLeft:j?.moveLeft??y(_.dataTable.moveLeft),moveRight:j?.moveRight??y(_.dataTable.moveRight),pinStart:j?.pinStart??y(_.dataTable.pinStart),pinEnd:j?.pinEnd??y(_.dataTable.pinEnd),unpin:j?.unpin??y(_.dataTable.unpin),hideColumn:j?.hideColumn??y(_.dataTable.hideColumn),resizeColumn:e=>j?.resizeColumn?.(e)??y(_.dataTable.resizeColumn,{column:e}),editCell:e=>j?.editCell?.(e)??y(_.dataTable.editCell,{column:e}),totals:j?.totals??y(_.dataTable.totals),exportCsv:j?.exportCsv??y(_.dataTable.exportCsv)},[lt]=m({value:xe}),[ut]=m({value:u}),dt=We===void 0?void 0:De(We),[P,ft]=m({value:Ee,defaultValue:dt?.value.sort??Oe}),[pt]=m({value:(typeof qe==`string`?[qe]:qe??[]).join(we)}),mt=h(new Set),ht=h([]),F=w?.selected??ht.value,gt=e=>{w?.selected===void 0&&(ht.value=e),w?.onChange?.(e)},_t=h(``),[vt,I]=m({value:C?.page,defaultValue:1,onChange:C?.onPageChange}),[yt,bt]=m({value:Fe,defaultValue:Ie??{},onChange:Le}),[L,R]=m({value:Be,defaultValue:dt?.value.columnState??Ve??{},onChange:He});g(()=>{let e={columnState:L.value};P.value&&(e.sort=P.value),dt&&(dt.value=e)});let xt=p(()=>re(ut.value,L.value)),z=d(null),St=h([]);g(()=>{let e=L.value.pinned;if(!e||Object.keys(e).length===0)return;let t=V.current;if(!t||typeof ResizeObserver>`u`)return;let n=()=>{let e=t.querySelector(`thead tr:not([data-group-header])`);e&&(St.value=Array.from(e.children,e=>e.getBoundingClientRect().width))};n();let r=new ResizeObserver(n);r.observe(t);let i=t.querySelector(`table`);return i&&r.observe(i),()=>r.disconnect()});let Ct=h(null);g(()=>{let e=Ct.value;if(!e)return;let t=z.current?getComputedStyle(z.current).direction===`rtl`:!1,n=n=>{let r=(n.clientX-e.startX)*(t?-1:1);R(oe(L.value,e.key,e.startWidth+r))},r=()=>{Ct.value=null};return window.addEventListener(`pointermove`,n),window.addEventListener(`pointerup`,r),()=>{window.removeEventListener(`pointermove`,n),window.removeEventListener(`pointerup`,r)}});let B=h(C?.pageSize??0),wt=h(new Set),Tt=Ge===`grid`,Et=h({row:-1,col:0}),Dt=d(!1),V=d(null),Ot=h(0),kt=h(0),At=h(0);g(()=>{let e=V.current;if(!e||typeof ResizeObserver>`u`)return;let t=u.filter(e=>e.width!==void 0).map(e=>e.key),n=u.map(e=>e.key).join(`,`),r=0,i=new ResizeObserver(()=>{cancelAnimationFrame(r),r=requestAnimationFrame(()=>{je(e,t,n);let r=e.querySelector(`thead tr[data-group-header]`);e.style.setProperty(`--_group-h`,`${r?r.getBoundingClientRect().height:0}px`);let i=e.querySelector(`thead tr:not([data-group-header])`);i&&e.style.setProperty(`--_head-h`,`${i.getBoundingClientRect().height}px`);let a=e.querySelector(`thead`);a&&e.style.setProperty(`--_thead-h`,`${a.getBoundingClientRect().height}px`)})});return i.observe(e),()=>{cancelAnimationFrame(r),i.disconnect()}}),g(()=>{if(!M)return;let e=V.current;if(!e)return;let t=()=>{Ce(()=>{Ot.value=e.scrollTop})};return e.addEventListener(`scroll`,t,{passive:!0}),()=>e.removeEventListener(`scroll`,t)}),g(()=>{if(!M)return;let e=V.current;if(!e||typeof ResizeObserver>`u`)return;let t=()=>{kt.value=e.clientHeight;let t=e.querySelector(`tbody tr[aria-rowindex]`)?.getBoundingClientRect().height??0;t>0&&(At.value=t)};t();let n=new ResizeObserver(t);n.observe(e);let r=e.querySelector(`table`);return r&&n.observe(r),()=>n.disconnect()});let jt=p(()=>(xt.value,lt.value.map((e,t)=>({row:e,id:v?v(e):String(t)})))),Mt=p(()=>{let e=P.value;return!e||ke===`server`||O?jt.value:he(jt.value,[e,...e.thenBy??[]].map(e=>({keyOf:t=>S(t.row,e.key),direction:e.direction})))}),Nt=p(()=>O?Mt.value:c(Mt.value,yt.value,(e,t)=>S(e.row,t))),Pt=p(()=>{let e=xt.value;return fe(t=>{if(t.haystack===void 0){let n=``;for(let r of e)n+=String(S(t.row,r.key)??``)+`\0`;t.haystack=n.toLowerCase()}return t.haystack})});g(()=>{if(!Ne)return;let e=jt.value,t=Pt.value,n=typeof requestIdleCallback==`function`,r,i=0,a=()=>{i=t.prime(e,i,2e4),i<e.length&&o()},o=()=>{r=n?requestIdleCallback(a,{timeout:500}):setTimeout(a,16)};return o(),()=>{n?cancelIdleCallback(r):clearTimeout(r)}});let Ft=p(()=>{if(O)return Mt.value;let e=_t.value.trim().toLowerCase();return e?Pt.value.filter(Nt.value,e):Nt.value}),It=p(()=>{let e=pt.value===``?[]:pt.value.split(we);return e.length===0?Ft.value:ue(Ft.value,e,(e,t)=>S(e.row,t),mt.value)}),Lt=p(()=>C?Math.max(1,Math.ceil(It.value.length/B.value)):1),Rt=p(()=>Math.min(vt.value,Lt.value)),zt=p(()=>{if(!C||O)return It.value;let e=(Rt.value-1)*B.value;return It.value.slice(e,e+B.value)}),Bt=p(()=>pt.value===``?zt.value:zt.value.filter(e=>e.group===void 0)),Vt=p(()=>{let e=new Map,t=ut.value.filter(e=>e.aggregate!==void 0);if(t.length===0)return e;let n=Ft.value.map(e=>e.row);for(let r of t)e.set(r.key,Te(r,n));return e}),Ht=d(O);Ht.current=O;let Ut=d(!1);g(()=>{let e={sort:P.value,search:_t.value.trim(),filters:yt.value,page:vt.value,pageSize:B.value};if(!Ut.current){Ut.current=!0;return}Ht.current?.onQueryChange(e)});let Wt=(e,t)=>{let n={...yt.value};t&&te(t)?n[e]=t:delete n[e],f(()=>{bt(n),I(1)})},Gt=()=>f(()=>{bt({}),I(1)}),Kt=e=>R(ce(ut.value,L.value,e)),qt=(e,t)=>{let n=L.value,r=z.current?getComputedStyle(z.current).direction===`rtl`:!1;switch(t){case`sort-asc`:return $t({key:e.key,direction:`asc`});case`sort-desc`:return $t({key:e.key,direction:`desc`});case`sort-clear`:return $t(void 0);case`move-left`:return R(ie(ut.value,n,e.key,r?1:-1));case`move-right`:return R(ie(ut.value,n,e.key,r?-1:1));case`pin-start`:return R(ae(n,e.key,`start`));case`pin-end`:return R(ae(n,e.key,`end`));case`unpin`:return R(ae(n,e.key,null));case`hide`:return Kt(e.key);default:return}},Jt=h(null),Yt=d(null),Xt=()=>{let e=jt.value;return Yt.current?.entries!==e&&(Yt.current={entries:e,facets:new Map,extents:new Map}),Yt.current},Zt=e=>{let t=Xt(),n=t.facets.get(e);return n||(n=ee(t.entries,t=>S(t.row,e)),t.facets.set(e,n)),n},Qt=e=>{let t=Xt();return t.extents.has(e)||t.extents.set(e,ne(t.entries,t=>S(t.row,e))),t.extents.get(e)},$t=e=>{f(()=>{ft(e),I(1)}),Ae?.(e)},en=(e,t=!1)=>{let n=P.value;if(t&&Ue&&n&&n.key!==e){let t=n.thenBy??[],r=t.findIndex(t=>t.key===e),i=r===-1?[...t,{key:e,direction:`asc`}]:t.map((t,n)=>n===r?{key:e,direction:t.direction===`asc`?`desc`:`asc`}:t);return $t({...n,thenBy:i})}let r;r=!n||n.key!==e?{key:e,direction:`asc`}:n.direction===`asc`?{key:e,direction:`desc`}:void 0,$t(r)},tn=e=>{let t=P.value;if(!t)return;if(t.key===e)return{index:0,direction:t.direction};let n=(t.thenBy??[]).findIndex(t=>t.key===e);return n===-1?void 0:{index:n+1,direction:(t.thenBy??[])[n].direction}},nn=e=>{if(![`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`].includes(e.key))return;let t=e.currentTarget,n=Array.from(t.querySelectorAll(`th button, td button, td input[type="checkbox"]`)),r=n.indexOf(document.activeElement);if(r===-1)return;e.preventDefault();let i=e=>e.closest(`tr`),a;if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=n[r+(e.key===`ArrowRight`?1:-1)];t&&i(t)===i(n[r])&&(a=t)}else{let t=e.key===`ArrowDown`?1:-1,o=n[r];for(let e=r+t;e>=0&&e<n.length;e+=t)if(i(n[e])!==i(o)){a=n[e];break}}a?.focus()},rn=d(null);rn.current?.ids!==F&&(rn.current={ids:F,set:new Set(F)});let H=rn.current.set,an=e=>{let t=F;w?.mode===`single`?gt(H.has(e)?[]:[e]):gt(H.has(e)?t.filter(t=>t!==e):[...t,e])},on=e=>{let t=new Set(wt.value);t.has(e)?t.delete(e):t.add(e),wt.value=t},U=zt.value,W=Bt.value,sn=wt.value,cn=d(null);(cn.current?.page!==W||cn.current.set!==H)&&(cn.current={page:W,set:H,all:W.length>0&&W.every(e=>H.has(e.id)),some:W.some(e=>H.has(e.id))});let ln=cn.current.all,un=cn.current.some,dn=at??(At.value>0?At.value:40),fn=ot===void 0?kt.value>0?kt.value:20*dn:ot*dn,G=M?ge({scrollTop:Ot.value,viewportHeight:fn,rowHeight:dn,count:U.length,overscan:st}):void 0,pn=G?U.slice(G.start,G.end):U,mn=G?.start??0,hn=()=>{if(ln){let e=new Set(W.map(e=>e.id));gt(F.filter(t=>!e.has(t)))}else{let e=new Set(F);for(let t of W)e.add(t.id);gt([...e])}},K=xt.value,q=L.value,gn=new Set(q.hidden??[]),_n=D?.visibility===!0,vn=D!==void 0&&(D.reorderable===!0||D.pinnable===!0||D.visibility===!0),yn=D?.resizable===!0,bn=Object.keys(q.widths??{}).length>0,J=q.pinned??{},Y=+!!T+ +!!w,xn=K.some(e=>J[e.key]===`start`),Sn=K.some(e=>J[e.key]===`end`),X=[...Array.from({length:Y},()=>xn?`start`:void 0),...K.map(e=>J[e.key]),...E?[Sn?`end`:void 0]:[]],Cn=St.value,wn=Cn.length===X.length?se(Cn,X):X.map(()=>void 0),Tn=X.lastIndexOf(`start`),En=X.indexOf(`end`),Z=e=>{let t=X[e];if(!t)return{};let n=wn[e];return{"data-pinned":t,"data-pinned-edge":e===Tn||e===En?!0:void 0,style:n===void 0?void 0:t===`start`?{insetInlineStart:n}:{insetInlineEnd:n}}},Dn=Math.min(Et.value.row,U.length-1),On={row:Dn,col:U[Dn]?.group?Y:Math.min(Et.value.col,X.length-1)},kn=e=>{e&&Dt.current&&(Dt.current=!1,e.focus())},Q=(e,t)=>{if(!Tt||e===void 0)return{};let n=On.row===e&&On.col===t;return{tabIndex:n?0:-1,"data-cell":`${e},${t}`,ref:n?kn:void 0,onFocus:()=>{n||(Et.value={row:e,col:t})}}},$=Tt?{tabIndex:-1}:{},An=Math.max(1,Math.floor(fn/dn)),jn=e=>{if(Dt.current=!0,Et.value=e,G&&e.row>=0&&(e.row<G.start||e.row>=G.end)){let t=V.current;t&&(t.scrollTop=_e(e.row,{viewportHeight:fn,rowHeight:dn,count:U.length,overscan:st}))}},Mn=e=>{let t=e.target,n=t.closest(`[data-cell]`);if(!n)return;if(t!==n){e.key===`Escape`&&(e.preventDefault(),n.focus());return}if(e.key===`Enter`||e.key===`F2`){let t=n.querySelector(`button, input, select, a[href], [tabindex]`);if(!t)return;e.preventDefault(),t.focus(),n.hasAttribute(`data-editable`)&&t.click();return}let[r=-1,i=0]=(n.dataset.cell??``).split(`,`).map(Number),a=le({row:r,col:i},e.key,{rowCount:U.length,colCount:X.length,pageRows:An},e.ctrlKey||e.metaKey);a&&(e.preventDefault(),jn(U[a.row]?.group?{row:a.row,col:Y}:a))},Nn=()=>{pe(me(Ft.value.map(e=>e.row),K.map(e=>({key:e.key,header:e.header})),S),(typeof Ze==`object`?Ze.filename:void 0)??A??`export`)},Pn=e=>{let t=new Set(mt.value);t.has(e)?t.delete(e):t.add(e),mt.value=t},Fn=d(new WeakMap),In=(e,t)=>(e??[]).map((e,n)=>({row:e,id:v?v(e):`${t}-${n}`})),Ln=In(Ye?.top,`pinned-top`),Rn=In(Ye?.bottom,`pinned-bottom`),zn=e=>{let t=[];if(e.sortable&&(t.push({id:`sort-asc`,label:N.sortAscending},{id:`sort-desc`,label:N.sortDescending}),P.value?.key===e.key&&t.push({id:`sort-clear`,label:N.clearSort})),D?.reorderable){let n=K.filter(t=>J[t.key]===J[e.key]),r=n.indexOf(e);t.push({id:`move-left`,label:N.moveLeft,disabled:r===0},{id:`move-right`,label:N.moveRight,disabled:r===n.length-1})}if(D?.pinnable){let n=J[e.key];n!==`start`&&t.push({id:`pin-start`,label:N.pinStart}),n!==`end`&&t.push({id:`pin-end`,label:N.pinEnd}),n&&t.push({id:`unpin`,label:N.unpin})}return D?.visibility&&t.push({id:`hide`,label:N.hideColumn,disabled:K.length===1}),t},Bn=(e,t)=>{let n=z.current?getComputedStyle(z.current).direction===`rtl`:!1,r=t.shiftKey?64:16,i=n?`ArrowLeft`:`ArrowRight`,a=n?`ArrowRight`:`ArrowLeft`,o=q.widths?.[e.key]??(t.currentTarget.parentElement?.getBoundingClientRect().width||0);if(t.key===i)R(oe(q,e.key,o+r));else if(t.key===a)R(oe(q,e.key,o-r));else if(t.key===`Home`)R(oe(q,e.key,void 0));else return;t.preventDefault()},Vn=l(yt.value),Hn=K.some(e=>e.filter!==void 0),Un=K.length+ +!!w+ +!!T+ +!!E,Wn=(_t.value.trim()!==``||Vn>0)&&(O?!0:xe.length>0),Gn=O?O.totalItems??xe.length:It.value.length,Kn=C?Math.max(1,Math.ceil(Gn/B.value)):1,qn=Math.min(vt.value,Kn),Jn=C&&!M&&pn.length>0?Math.max(0,B.value-pn.length):0;Me(A,nt,u.map(e=>e.key).join(`,`));let Yn=`${ct}-title`,Xn=`${ct}-description`,Zn=Gn===0?0:(qn-1)*B.value+1,Qn=Gn===0?0:Zn+U.length-1,$n=!!Pe&&Pe.length>0&&F.length>0,er=n=>{let r=yt.value[n.key],c=N.filterColumn(n.header);switch(n.filter){case`text`:return b(`input`,{type:`search`,className:s.filterInput,"aria-label":c,value:r?.kind===`text`?r.value:``,onChange:e=>Wt(n.key,{kind:`text`,value:e.target.value})});case`range`:{let e=r?.kind===`range`?r.min:void 0,t=r?.kind===`range`?r.max:void 0,i=Qt(n.key),a=e=>e===``?void 0:Number(e);return x(`div`,{className:s.rangeInputs,children:[b(`input`,{type:`number`,className:s.filterInput,"aria-label":`${c}: ${N.min}`,placeholder:i?String(i.min):N.min,value:e??``,onChange:e=>{let r={kind:`range`},i=a(e.target.value);i!==void 0&&!Number.isNaN(i)&&(r.min=i),t!==void 0&&(r.max=t),Wt(n.key,r)}}),b(`input`,{type:`number`,className:s.filterInput,"aria-label":`${c}: ${N.max}`,placeholder:i?String(i.max):N.max,value:t??``,onChange:t=>{let r={kind:`range`};e!==void 0&&(r.min=e);let i=a(t.target.value);i!==void 0&&!Number.isNaN(i)&&(r.max=i),Wt(n.key,r)}})]})}case`select`:{let l=r?.kind===`select`?r.values:[],ee=Jt.value===n.key;return x(i,{placement:`bottom`,open:ee,onOpenChange:e=>{Jt.value=e?n.key:null},children:[b(o,{asChild:!0,children:b(e,{size:`sm`,variant:`secondary`,"aria-label":c,children:l.length>0?N.itemsSelected(l.length):N.all})}),b(a,{className:s.menu,children:ee&&Zt(n.key).map(e=>{let r=l.includes(e.value);return b(t,{label:`${e.value===``?`—`:e.value} (${e.count})`,checked:r,onChange:()=>Wt(n.key,{kind:`select`,values:r?l.filter(t=>t!==e.value):[...l,e.value]})},e.value)})})]})}default:return null}},tr=(e,i,a,o)=>{let c=H.has(e.id),l=sn.has(e.id);return x(ve,{children:[x(`tr`,{className:s.row,"data-parity":i%2==0?`even`:`odd`,"data-state":c?`selected`:void 0,"aria-rowindex":M&&!o?i+1:void 0,"data-pinned-row":o,style:o===`top`?{"--_pin-index":i}:void 0,children:[T&&b(`td`,{className:s.controlCell,...Z(0),...Q(a,0),children:b(`button`,{type:`button`,className:s.expandButton,"aria-expanded":l,"aria-label":N.expandRow,"data-state":l?`open`:`closed`,onClick:()=>on(e.id),...$,children:b(`span`,{className:s.chevron,"aria-hidden":`true`})})}),w&&b(`td`,{className:s.controlCell,...Z(+!!T),...Q(a,+!!T),children:b(t,{"aria-label":N.selectRow,checked:c,onChange:()=>an(e.id),...$})}),K.map((t,n)=>{let i=Ke!==void 0&&t.editable&&!t.render;return b(`td`,{"data-align":t.align??`start`,"data-sized":t.width!==void 0||q.widths?.[t.key]!==void 0||void 0,"data-editable":i||void 0,...Z(Y+n),...Q(a,Y+n),children:t.render?t.render(e.row):i?b(r,{value:String(S(e.row,t.key)??``),onValueChange:n=>Ke(e.row,t.key,n),"aria-label":N.editCell(t.header),...$}):String(S(e.row,t.key)??``)},t.key)}),E&&b(`td`,{className:s.controlCell,...Z(Y+K.length),...Q(a,Y+K.length),children:(()=>{let t=E(e.row);return t.length===0?null:b(n,{size:`sm`,ariaLabel:N.actions,items:t.map(e=>({id:e.id,label:e.label,...e.destructive!==void 0&&{destructive:e.destructive},...e.disabled!==void 0&&{disabled:e.disabled},...e.icon!==void 0&&{icon:e.icon}})),onSelect:n=>t.find(e=>e.id===n)?.onSelect(e.row),...$})})()})]}),T&&b(`tr`,{className:s.expansionRow,"data-state":l?`open`:`closed`,children:b(`td`,{colSpan:Un,children:b(`div`,{className:s.expansionGrid,"data-state":l?`open`:`closed`,children:b(`div`,{className:s.expansionInner,children:T(e.row)})})})})]},e.id)},nr=(e,t)=>{let{group:n}=e,r=Fn.current.get(e);r||(r=new Map,Fn.current.set(e,r));let i=r,a,o=t=>t.aggregate===void 0?null:(i.has(t.key)||(a??=e.leaves.map(e=>e.row),i.set(t.key,Te(t,a))),i.get(t.key));return x(`tr`,{className:s.groupRow,"data-depth":n.depth,"data-state":n.collapsed?`closed`:`open`,"aria-rowindex":M?t+1:void 0,children:[T&&b(`td`,{className:s.controlCell,...Z(0)}),w&&b(`td`,{className:s.controlCell,...Z(+!!T)}),K.map((e,r)=>b(`td`,{"data-align":r===0?`start`:e.align??`start`,...Z(Y+r),...Q(r===0?t:void 0,Y+r),children:r===0?x(`button`,{type:`button`,className:s.groupToggle,"aria-expanded":!n.collapsed,"data-state":n.collapsed?`closed`:`open`,style:{marginInlineStart:`${n.depth*1.25}rem`},onClick:()=>Pn(n.key),...$,children:[b(`span`,{className:s.chevron,"aria-hidden":`true`}),b(`span`,{children:String(n.value??``)||`—`}),x(`span`,{className:s.groupCount,children:[`(`,n.count,`)`]})]}):o(e)},e.key)),E&&b(`td`,{className:s.controlCell,...Z(Y+K.length)})]},e.id)};return x(`div`,{ref:z,className:be(s.root,it),"data-density":Qe,"data-resized":bn||void 0,"data-zebra":$e||void 0,"data-sticky-header":et||void 0,"data-paginated":C?!0:void 0,"data-fixed-layout":K.every(e=>e.width!==void 0)||void 0,children:[b(`span`,{"aria-live":`polite`,className:s.srOnly,children:F.length>0?N.itemsSelected(F.length):``}),(A!==void 0||rt!==void 0||Ne||ze!==void 0||_n||Ze!==!1||Vn>0)&&x(`div`,{className:s.toolbar,children:[(A!==void 0||rt!==void 0)&&x(`div`,{className:s.heading,children:[A!==void 0&&b(`div`,{id:Yn,className:s.title,children:A}),rt!==void 0&&b(`div`,{id:Xn,className:s.description,children:rt})]}),x(`div`,{className:s.toolbarActions,children:[Ne&&b(`input`,{type:`search`,className:s.search,"aria-label":N.search,placeholder:N.search,value:_t.value,onChange:e=>{f(()=>{_t.value=e.target.value,I(1)})}}),Vn>0&&x(e,{size:`sm`,variant:`ghost`,onClick:Gt,children:[N.clearFilters,` (`,Vn,`)`]}),Ze!==!1&&b(e,{size:`sm`,variant:`secondary`,onClick:Nn,children:N.exportCsv}),ze,_n&&x(i,{placement:`bottom`,children:[b(o,{asChild:!0,children:b(e,{size:`sm`,variant:`secondary`,children:N.columns})}),b(a,{className:s.menu,children:u.map(e=>{let n=!gn.has(e.key);return b(t,{label:e.header,checked:n,disabled:n&&K.length===1,onChange:()=>Kt(e.key)},e.key)})})]})]})]}),$n&&x(`div`,{className:s.batchBar,children:[b(`span`,{className:s.batchCount,children:N.itemsSelected(F.length)}),b(`div`,{className:s.batchActions,children:Pe.map((t,n)=>b(e,{size:`sm`,variant:`secondary`,onClick:()=>t.onClick(F),children:t.label},t.id??`${n}-${t.label}`))})]}),b(`div`,{ref:V,className:be(s.scroller,M&&s.scrollerVirtualized),children:x(`table`,{className:s.table,"aria-labelledby":A===void 0?void 0:Yn,"aria-label":A===void 0?nt:void 0,"aria-describedby":rt===void 0?void 0:Xn,"aria-busy":k||void 0,role:Tt?`grid`:void 0,"aria-rowcount":M?U.length:void 0,onKeyDown:Tt?Mn:nn,children:[x(`colgroup`,{children:[T&&b(`col`,{className:s.controlCol}),w&&b(`col`,{className:s.controlCol}),K.map(e=>{let t=q.widths?.[e.key],n=t===void 0?e.width:`${t}px`;return b(`col`,{style:n!==void 0||e.minWidth!==void 0?{...n===void 0?{}:{width:n},...e.minWidth===void 0?{}:{minWidth:e.minWidth}}:void 0},e.key)}),E&&b(`col`,{className:s.controlCol})]}),x(`thead`,{children:[Xe&&x(`tr`,{"data-group-header":!0,children:[Y>0&&b(`th`,{colSpan:Y,className:s.controlCell}),de(K.map(e=>e.key),Xe).map((e,t)=>b(`th`,{scope:`colgroup`,colSpan:e.span,className:s.groupHeader,children:e.header},t)),E&&b(`th`,{className:s.controlCell})]}),x(`tr`,{children:[T&&b(`th`,{scope:`col`,className:s.controlCell,...Z(0),...Q(-1,0),children:b(`span`,{className:s.srOnly,children:N.expandRow})}),w&&b(`th`,{scope:`col`,className:s.controlCell,...Z(+!!T),...Q(-1,+!!T),children:w.mode===`multi`?b(t,{"aria-label":N.selectAll,checked:ln,indeterminate:un&&!ln,onChange:hn,...$}):b(`span`,{className:s.srOnly,children:N.selectRow})}),K.map((e,t)=>{let r=tn(e.key),i=r?.direction,a=i===`asc`?`ascending`:i===`desc`?`descending`:`none`,o=r!==void 0&&(P.value?.thenBy?.length??0)>0,c=q.widths?.[e.key];return x(`th`,{scope:`col`,className:s.headerCell,"data-align":e.align??`start`,"data-sized":e.width!==void 0||c!==void 0||void 0,"aria-sort":e.sortable?a:void 0,...Z(Y+t),...Q(-1,Y+t),children:[x(`span`,{className:s.headerInner,children:[e.sortable?x(`button`,{type:`button`,className:s.sortButton,"data-state":a,onClick:t=>en(e.key,t.shiftKey),...$,children:[e.header,o&&b(`sup`,{className:s.sortIndex,"aria-hidden":`true`,children:r.index+1})]}):e.header,vn&&b(n,{size:`sm`,ariaLabel:N.columnMenu(e.header),items:zn(e),onSelect:t=>qt(e,t),...$})]}),yn&&b(`span`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":N.resizeColumn(e.header),"aria-valuenow":c,tabIndex:Tt?-1:0,className:s.resizeHandle,"data-state":Ct.value?.key===e.key?`resizing`:void 0,onKeyDown:t=>Bn(e,t),onDoubleClick:()=>R(oe(q,e.key,void 0)),onPointerDown:t=>{t.preventDefault();let n=t.currentTarget.parentElement;Ct.value={key:e.key,startX:t.clientX,startWidth:n?n.getBoundingClientRect().width:0}}})]},e.key)}),E&&b(`th`,{scope:`col`,className:s.controlCell,...Z(Y+K.length),...Q(-1,Y+K.length),children:b(`span`,{className:s.srOnly,children:N.actions})})]}),Hn&&x(`tr`,{className:s.filterRow,children:[T&&b(`th`,{...Z(0)}),w&&b(`th`,{...Z(+!!T)}),K.map((e,t)=>b(`th`,{"data-align":e.align??`start`,...Z(Y+t),children:e.filter!==void 0&&er(e)},e.key)),E&&b(`th`,{...Z(Y+K.length)})]})]}),x(`tbody`,{children:[k&&Array.from({length:5},(e,t)=>b(`tr`,{className:s.row,children:Array.from({length:Un},(e,t)=>b(`td`,{children:b(`span`,{className:s.shimmer,"aria-hidden":`true`})},t))},t)),!k&&Ln.map((e,t)=>tr(e,t,void 0,`top`)),!k&&U.length===0&&b(`tr`,{"data-empty-row":!0,children:b(`td`,{colSpan:Un,className:s.emptyCell,children:Wn?Re??N.noResults:tt??N.empty})}),!k&&G&&G.topPad>0&&b(`tr`,{"aria-hidden":`true`,style:{height:G.topPad}}),!k&&pn.map((e,t)=>{let n=M?mn+t:t;return e.group?nr(e,n):tr(e,n,n)}),!k&&G&&G.bottomPad>0&&b(`tr`,{"aria-hidden":`true`,style:{height:G.bottomPad}}),Jn>0&&b(`tr`,{"aria-hidden":`true`,"data-filler-row":!0,children:b(`td`,{colSpan:Un,style:{blockSize:`calc(var(--_row-height) * ${Jn})`,padding:0}})}),!k&&Rn.map((e,t)=>tr(e,t,void 0,`bottom`))]}),Je&&b(`tfoot`,{className:s.totals,children:x(`tr`,{"data-totals-row":!0,children:[T&&b(`td`,{className:s.controlCell,...Z(0)}),w&&b(`td`,{className:s.controlCell,...Z(+!!T)}),K.map((e,t)=>x(`td`,{"data-align":e.align??`start`,...Z(Y+t),children:[t===0&&b(`span`,{className:e.aggregate===void 0?void 0:s.srOnly,children:N.totals}),Vt.value.get(e.key)]},e.key)),E&&b(`td`,{className:s.controlCell,...Z(Y+K.length)})]})})]})}),C&&x(`div`,{className:s.footer,children:[C.pageSizeOptions&&x(`label`,{className:s.pageSize,children:[b(`span`,{children:`Rows per page`}),b(`select`,{value:B.value,onChange:e=>{f(()=>{B.value=Number(e.target.value),I(1)})},children:C.pageSizeOptions.map(e=>b(`option`,{value:e,children:e},e))})]}),x(`span`,{className:s.range,children:[Zn,`–`,Qn,` of `,Gn]}),x(`div`,{className:s.pageButtons,children:[b(`button`,{type:`button`,className:s.pageButton,"aria-label":N.previousPage,disabled:qn<=1,onClick:()=>I(qn-1),children:b(`span`,{"aria-hidden":`true`,children:`‹`})}),b(`button`,{type:`button`,className:s.pageButton,"aria-label":N.nextPage,disabled:qn>=Kn,onClick:()=>I(qn+1),children:b(`span`,{"aria-hidden":`true`,children:`›`})})]})]})]})}export{Ne as DataTable};
|