@thewrong/ui 0.2.0 → 0.4.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 +27 -6
- package/dist/components/_shared/form-size-tokens.cjs +1 -0
- package/dist/{src/components → components}/_shared/form-size-tokens.d.ts +3 -1
- package/dist/components/_shared/form-size-tokens.esm.js +26 -21
- package/dist/components/action-toast/ActionToast.cjs +1 -0
- package/dist/{src/components → components}/action-toast/ActionToast.d.ts +12 -3
- package/dist/components/action-toast/ActionToast.esm.js +133 -123
- package/dist/{src/components → components}/action-toast/index.d.ts +2 -2
- package/dist/components/animated-height/AnimatedHeight.cjs +1 -0
- package/dist/components/animated-height/AnimatedHeight.esm.js +14 -14
- package/dist/components/animated-height/index.d.ts +2 -0
- package/dist/components/badge/Badge.cjs +1 -0
- package/dist/{src/components → components}/badge/Badge.d.ts +1 -1
- package/dist/components/badge/Badge.esm.js +19 -23
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/utils.cjs +1 -0
- package/dist/{src/components → components}/badge/utils.d.ts +1 -1
- package/dist/components/badge/utils.esm.js +15 -15
- package/dist/components/button/Button.cjs +1 -0
- package/dist/{src/components → components}/button/Button.d.ts +5 -1
- package/dist/components/button/Button.esm.js +50 -45
- package/dist/{src/components → components}/button/index.d.ts +2 -2
- package/dist/{src/components → components}/button/types.d.ts +3 -1
- package/dist/components/button/utils.cjs +1 -0
- package/dist/{src/components → components}/button/utils.d.ts +3 -3
- package/dist/components/button/utils.esm.js +26 -22
- package/dist/components/checkbox/Checkbox.cjs +1 -0
- package/dist/{src/components → components}/checkbox/Checkbox.d.ts +1 -1
- package/dist/components/checkbox/Checkbox.esm.js +36 -35
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/utils.cjs +1 -0
- package/dist/{src/components → components}/checkbox/utils.d.ts +1 -1
- package/dist/components/checkbox/utils.esm.js +11 -11
- package/dist/components/collapsible/Collapsible.cjs +1 -0
- package/dist/components/collapsible/Collapsible.esm.js +12 -11
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/copyable-text/CopyableText.cjs +1 -0
- package/dist/components/copyable-text/CopyableText.d.ts +22 -0
- package/dist/components/copyable-text/CopyableText.esm.js +50 -0
- package/dist/components/copyable-text/index.d.ts +2 -0
- package/dist/components/date-input/DateInput.cjs +1 -0
- package/dist/{src/components → components}/date-input/DateInput.d.ts +1 -0
- package/dist/components/date-input/DateInput.esm.js +24 -23
- package/dist/components/date-input/index.d.ts +1 -0
- package/dist/components/date-picker/PickerSheet.cjs +1 -0
- package/dist/components/date-picker/PickerSheet.d.ts +22 -0
- package/dist/components/date-picker/PickerSheet.esm.js +77 -0
- package/dist/components/date-picker/date-picker.cjs +1 -0
- package/dist/{src/components → components}/date-picker/date-picker.d.ts +1 -0
- package/dist/components/date-picker/date-picker.esm.js +99 -147
- package/dist/components/date-picker/date-range-picker.cjs +1 -0
- package/dist/{src/components → components}/date-picker/date-range-picker.d.ts +3 -1
- package/dist/components/date-picker/date-range-picker.esm.js +117 -166
- package/dist/components/date-picker/index.d.ts +5 -0
- package/dist/components/date-picker/month-picker.cjs +1 -0
- package/dist/{src/components → components}/date-picker/month-picker.d.ts +1 -0
- package/dist/components/date-picker/month-picker.esm.js +68 -112
- package/dist/components/drawer/Drawer.cjs +1 -0
- package/dist/components/drawer/Drawer.d.ts +45 -0
- package/dist/components/drawer/Drawer.esm.js +127 -97
- package/dist/components/drawer/index.d.ts +2 -0
- package/dist/components/error-boundary/ErrorBoundary.cjs +1 -0
- package/dist/components/error-boundary/ErrorBoundary.d.ts +23 -0
- package/dist/components/error-boundary/ErrorBoundary.esm.js +46 -0
- package/dist/components/error-boundary/chunk-reload.cjs +1 -0
- package/dist/components/error-boundary/chunk-reload.d.ts +77 -0
- package/dist/components/error-boundary/chunk-reload.esm.js +73 -0
- package/dist/components/error-boundary/index.d.ts +4 -0
- package/dist/components/error-boundary/types.d.ts +23 -0
- package/dist/components/field/Field.cjs +1 -0
- package/dist/components/field/Field.d.ts +16 -0
- package/dist/components/field/Field.esm.js +34 -0
- package/dist/components/field/FieldMessage.cjs +1 -0
- package/dist/components/field/FieldMessage.d.ts +19 -0
- package/dist/components/field/FieldMessage.esm.js +12 -0
- package/dist/components/field/index.d.ts +3 -0
- package/dist/components/field/types.d.ts +24 -0
- package/dist/components/info-tooltip/InfoTooltip.cjs +1 -0
- package/dist/components/info-tooltip/InfoTooltip.esm.js +13 -12
- package/dist/components/info-tooltip/index.d.ts +2 -0
- package/dist/components/input/DecimalInput.cjs +1 -0
- package/dist/components/input/DecimalInput.d.ts +18 -0
- package/dist/components/input/DecimalInput.esm.js +40 -0
- package/dist/components/input/Input.cjs +1 -0
- package/dist/{src/components → components}/input/Input.d.ts +1 -1
- package/dist/components/input/Input.esm.js +47 -53
- package/dist/components/input/PasswordInput.cjs +1 -0
- package/dist/{src/components → components}/input/PasswordInput.d.ts +1 -1
- package/dist/components/input/PasswordInput.esm.js +1 -1
- package/dist/components/input/decimal-validation.cjs +1 -0
- package/dist/components/input/decimal-validation.d.ts +7 -0
- package/dist/components/input/decimal-validation.esm.js +66 -0
- package/dist/components/input/format.cjs +1 -0
- package/dist/{src/components → components}/input/format.d.ts +17 -1
- package/dist/components/input/format.esm.js +16 -5
- package/dist/components/input/index.d.ts +7 -0
- package/dist/{src/components → components}/input/types.d.ts +2 -2
- package/dist/components/input/use-input-format.cjs +1 -0
- package/dist/components/input/use-input-format.d.ts +43 -0
- package/dist/components/input/use-input-format.esm.js +75 -0
- package/dist/components/input/utils.cjs +1 -0
- package/dist/{src/components → components}/input/utils.d.ts +1 -1
- package/dist/components/input/utils.esm.js +19 -18
- package/dist/components/loading-spinner/LoadingSpinner.cjs +1 -0
- package/dist/components/loading-spinner/LoadingSpinner.esm.js +19 -18
- package/dist/components/loading-spinner/index.d.ts +2 -0
- package/dist/components/modal/Modal.cjs +1 -0
- package/dist/{src/components → components}/modal/Modal.d.ts +28 -2
- package/dist/components/modal/Modal.esm.js +148 -118
- package/dist/components/modal/ModalFocusTrapContext.cjs +1 -0
- package/dist/components/modal/ModalFocusTrapContext.d.ts +18 -0
- package/dist/components/modal/ModalFocusTrapContext.esm.js +36 -0
- package/dist/components/modal/ModalSubView.cjs +1 -0
- package/dist/{src/components → components}/modal/ModalSubView.d.ts +6 -1
- package/dist/components/modal/ModalSubView.esm.js +65 -45
- package/dist/components/modal/StandardModal.cjs +1 -0
- package/dist/{src/components → components}/modal/StandardModal.d.ts +8 -2
- package/dist/components/modal/StandardModal.esm.js +18 -15
- package/dist/components/modal/index.d.ts +6 -0
- package/dist/components/month-range-picker/index.d.ts +2 -0
- package/dist/components/month-range-picker/month-range-picker.cjs +1 -0
- package/dist/components/month-range-picker/month-range-picker.d.ts +16 -0
- package/dist/components/month-range-picker/month-range-picker.esm.js +227 -0
- package/dist/components/month-range-picker/month-range-utils.cjs +1 -0
- package/dist/components/month-range-picker/month-range-utils.d.ts +9 -0
- package/dist/components/month-range-picker/month-range-utils.esm.js +28 -0
- package/dist/components/page-title/PageTitle.cjs +1 -0
- package/dist/components/page-title/PageTitle.esm.js +11 -10
- package/dist/components/page-title/index.d.ts +1 -0
- package/dist/components/popover/Popover.cjs +1 -0
- package/dist/components/popover/Popover.esm.js +2 -2
- package/dist/components/popover/index.d.ts +2 -0
- package/dist/components/progress/Progress.cjs +1 -0
- package/dist/components/progress/Progress.d.ts +12 -0
- package/dist/components/progress/Progress.esm.js +24 -0
- package/dist/components/progress/index.d.ts +2 -0
- package/dist/components/progress/types.d.ts +13 -0
- package/dist/components/radio/Radio.cjs +1 -0
- package/dist/components/radio/Radio.d.ts +31 -0
- package/dist/components/radio/Radio.esm.js +118 -0
- package/dist/components/radio/index.d.ts +2 -0
- package/dist/components/radio/types.d.ts +24 -0
- package/dist/components/search-box/ExactMatchToggle.cjs +1 -0
- package/dist/components/search-box/ExactMatchToggle.esm.js +14 -13
- package/dist/components/search-box/SearchBox.cjs +1 -0
- package/dist/{src/components → components}/search-box/SearchBox.d.ts +1 -1
- package/dist/components/search-box/SearchBox.esm.js +94 -93
- package/dist/components/search-box/SearchBoxChips.cjs +1 -0
- package/dist/components/search-box/SearchBoxChips.esm.js +3 -3
- package/dist/components/search-box/SearchBoxDateRange.cjs +1 -0
- package/dist/{src/components → components}/search-box/SearchBoxDateRange.d.ts +1 -1
- package/dist/components/search-box/SearchBoxDateRange.esm.js +39 -36
- package/dist/components/search-box/SearchBoxDateSingle.cjs +1 -0
- package/dist/{src/components → components}/search-box/SearchBoxDateSingle.d.ts +1 -1
- package/dist/components/search-box/SearchBoxDateSingle.esm.js +29 -27
- package/dist/components/search-box/SearchBoxField.cjs +1 -0
- package/dist/{src/components → components}/search-box/SearchBoxField.d.ts +1 -1
- package/dist/components/search-box/SearchBoxFloatingInput.cjs +1 -0
- package/dist/components/search-box/SearchBoxFloatingInput.esm.js +29 -24
- package/dist/components/search-box/SearchBoxFloatingSelect.cjs +1 -0
- package/dist/{src/components → components}/search-box/SearchBoxFloatingSelect.d.ts +1 -1
- package/dist/components/search-box/SearchBoxFloatingSelect.esm.js +56 -51
- package/dist/components/search-box/SearchBoxMonth.cjs +1 -0
- package/dist/components/search-box/SearchBoxMonth.esm.js +21 -20
- package/dist/components/search-box/SearchBoxMultiSelect.cjs +1 -0
- package/dist/{src/components → components}/search-box/SearchBoxMultiSelect.d.ts +2 -2
- package/dist/components/search-box/SearchBoxMultiSelect.esm.js +60 -55
- package/dist/components/search-box/dateRangePresets.cjs +1 -0
- package/dist/{src/components → components}/search-box/dateRangePresets.d.ts +1 -1
- package/dist/{src/components → components}/search-box/index.d.ts +5 -5
- package/dist/components/search-box/parseSearchValues.cjs +1 -0
- package/dist/{src/components → components}/search-box/parseSearchValues.d.ts +2 -2
- package/dist/{src/components → components}/search-box/types.d.ts +1 -1
- package/dist/components/search-box/useSearchBoxState.cjs +1 -0
- package/dist/{src/components → components}/search-box/useSearchBoxState.d.ts +1 -1
- package/dist/components/segmented-code-input/SegmentedCodeInput.cjs +1 -0
- package/dist/components/segmented-code-input/SegmentedCodeInput.d.ts +49 -0
- package/dist/components/segmented-code-input/SegmentedCodeInput.esm.js +87 -0
- package/dist/components/segmented-code-input/code-utils.cjs +1 -0
- package/dist/components/segmented-code-input/code-utils.d.ts +4 -0
- package/dist/components/segmented-code-input/code-utils.esm.js +9 -0
- package/dist/components/segmented-code-input/index.d.ts +2 -0
- package/dist/components/segmented-control/SegmentedControl.cjs +1 -0
- package/dist/components/segmented-control/SegmentedControl.d.ts +27 -0
- package/dist/components/segmented-control/SegmentedControl.esm.js +84 -0
- package/dist/components/segmented-control/index.d.ts +2 -0
- package/dist/components/segmented-control/types.d.ts +30 -0
- package/dist/components/select/MultiSelect.cjs +1 -0
- package/dist/{src/components → components}/select/MultiSelect.d.ts +11 -3
- package/dist/components/select/MultiSelect.esm.js +180 -176
- package/dist/components/select/Select.cjs +1 -0
- package/dist/{src/components → components}/select/Select.d.ts +16 -2
- package/dist/components/select/Select.esm.js +215 -195
- package/dist/components/select/index.d.ts +4 -0
- package/dist/components/select/loading-dots.cjs +1 -0
- package/dist/components/select/loading-dots.d.ts +3 -0
- package/dist/components/select/loading-dots.esm.js +8 -7
- package/dist/components/select/panel-width.cjs +1 -0
- package/dist/components/select/panel-width.d.ts +2 -0
- package/dist/components/select/panel-width.esm.js +7 -0
- package/dist/{src/components → components}/select/types.d.ts +7 -0
- package/dist/{src/components → components}/select/utils.d.ts +1 -1
- package/dist/components/skeleton/Skeleton.cjs +1 -0
- package/dist/components/skeleton/Skeleton.d.ts +6 -0
- package/dist/components/skeleton/Skeleton.esm.js +12 -0
- package/dist/components/skeleton/index.d.ts +2 -0
- package/dist/components/skeleton/types.d.ts +2 -0
- package/dist/components/slider/Slider.cjs +1 -0
- package/dist/components/slider/Slider.d.ts +6 -0
- package/dist/components/slider/Slider.esm.js +36 -0
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/slider/types.d.ts +15 -0
- package/dist/components/slider/utils.cjs +1 -0
- package/dist/components/slider/utils.d.ts +3 -0
- package/dist/components/slider/utils.esm.js +15 -0
- package/dist/components/stepper/Stepper.cjs +1 -0
- package/dist/components/stepper/Stepper.d.ts +51 -0
- package/dist/components/stepper/Stepper.esm.js +142 -0
- package/dist/components/stepper/index.d.ts +4 -0
- package/dist/components/stepper/use-stepper.cjs +1 -0
- package/dist/components/stepper/use-stepper.d.ts +43 -0
- package/dist/components/stepper/use-stepper.esm.js +57 -0
- package/dist/components/switch/Switch.cjs +1 -0
- package/dist/{src/components → components}/switch/Switch.d.ts +1 -1
- package/dist/components/switch/Switch.esm.js +21 -20
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/utils.cjs +1 -0
- package/dist/{src/components → components}/switch/utils.d.ts +2 -2
- package/dist/components/switch/utils.esm.js +9 -8
- package/dist/components/table/accordion-table.cjs +1 -0
- package/dist/{src/components → components}/table/accordion-table.d.ts +1 -1
- package/dist/components/table/accordion-table.esm.js +261 -247
- package/dist/{src/components → components}/table/column-group-utils.d.ts +1 -1
- package/dist/components/table/components/ColumnPresetSelector.cjs +1 -0
- package/dist/{src/components → components}/table/components/ColumnPresetSelector.d.ts +2 -2
- package/dist/components/table/components/ColumnPresetSelector.esm.js +60 -59
- package/dist/components/table/components/ColumnSettingsTable.cjs +1 -0
- package/dist/{src/components → components}/table/components/ColumnSettingsTable.d.ts +1 -1
- package/dist/components/table/components/ColumnSettingsTable.esm.js +94 -96
- package/dist/components/table/components/KeyboardNavButton.cjs +1 -0
- package/dist/components/table/components/KeyboardNavButton.esm.js +1 -1
- package/dist/components/table/components/PageJumpInput.cjs +1 -0
- package/dist/components/table/components/PageJumpInput.esm.js +33 -32
- package/dist/components/table/components/Pagination.cjs +1 -0
- package/dist/components/table/components/Pagination.esm.js +80 -79
- package/dist/components/table/components/PaginationFooter.cjs +1 -0
- package/dist/components/table/components/PaginationFooter.esm.js +2 -2
- package/dist/components/table/components/SortHeader.cjs +1 -0
- package/dist/components/table/components/SortHeader.d.ts +10 -0
- package/dist/components/table/components/SortHeader.esm.js +27 -0
- package/dist/components/table/components/SortableHeaderCell.cjs +1 -0
- package/dist/{src/components → components}/table/components/SortableHeaderCell.d.ts +10 -2
- package/dist/components/table/components/SortableHeaderCell.esm.js +54 -26
- package/dist/components/table/hooks/sort-state.cjs +1 -0
- package/dist/components/table/hooks/sort-state.d.ts +5 -0
- package/dist/components/table/hooks/sort-state.esm.js +21 -0
- package/dist/components/table/hooks/useColumnPresets.cjs +1 -0
- package/dist/{src/components → components}/table/hooks/useColumnPresets.d.ts +2 -2
- package/dist/components/table/hooks/useColumnResize.cjs +1 -0
- package/dist/{src/components → components}/table/hooks/useColumnResize.d.ts +12 -0
- package/dist/components/table/hooks/useColumnResize.esm.js +66 -54
- package/dist/components/table/hooks/useFillEmptyRows.d.ts +2 -0
- package/dist/components/table/hooks/useInfiniteScroll.d.ts +2 -0
- package/dist/components/table/hooks/useTableColumnState.cjs +1 -0
- package/dist/{src/components → components}/table/hooks/useTableColumnState.d.ts +1 -1
- package/dist/components/table/hooks/useTableDragSelection.d.ts +2 -0
- package/dist/components/table/hooks/useTableSort.cjs +1 -0
- package/dist/{src/components → components}/table/hooks/useTableSort.d.ts +7 -4
- package/dist/components/table/hooks/useTableSort.esm.js +18 -19
- package/dist/components/table/hooks/useVirtualTable.cjs +1 -0
- package/dist/components/table/hooks/useVirtualTable.esm.js +8 -8
- package/dist/components/table/index.d.ts +27 -0
- package/dist/components/table/mini-table.cjs +1 -0
- package/dist/{src/components → components}/table/mini-table.d.ts +1 -1
- package/dist/components/table/mini-table.esm.js +87 -86
- package/dist/components/table/paginated-mini-table.cjs +1 -0
- package/dist/{src/components → components}/table/paginated-mini-table.d.ts +1 -1
- package/dist/components/table/paginated-table.cjs +1 -0
- package/dist/{src/components → components}/table/paginated-table.d.ts +3 -1
- package/dist/components/table/table.cjs +1 -0
- package/dist/components/table/table.d.ts +13 -0
- package/dist/components/table/table.esm.js +189 -173
- package/dist/{src/components → components}/table/types.d.ts +11 -4
- package/dist/components/table/utils.cjs +35 -0
- package/dist/{src/components → components}/table/utils.d.ts +2 -2
- package/dist/components/table/utils.esm.js +2 -2
- package/dist/components/table-checkbox/TableCheckbox.cjs +1 -0
- package/dist/components/table-checkbox/TableCheckbox.esm.js +27 -26
- package/dist/components/table-checkbox/index.d.ts +1 -0
- package/dist/components/table-page-layout/TablePageLayout.cjs +1 -0
- package/dist/components/table-page-layout/TablePageLayout.esm.js +3 -3
- package/dist/{src/components → components}/table-page-layout/index.d.ts +1 -1
- package/dist/components/tabs/Tabs.cjs +1 -0
- package/dist/components/tabs/Tabs.d.ts +8 -0
- package/dist/components/tabs/Tabs.esm.js +53 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/navigation.cjs +1 -0
- package/dist/components/tabs/navigation.d.ts +2 -0
- package/dist/components/tabs/navigation.esm.js +18 -0
- package/dist/components/tabs/types.d.ts +20 -0
- package/dist/components/textarea/Textarea.cjs +1 -0
- package/dist/{src/components → components}/textarea/Textarea.d.ts +1 -1
- package/dist/components/textarea/Textarea.esm.js +49 -47
- package/dist/components/textarea/index.d.ts +2 -0
- package/dist/components/time-picker/index.d.ts +2 -0
- package/dist/components/time-picker/time-picker.cjs +1 -0
- package/dist/components/time-picker/time-picker.d.ts +35 -0
- package/dist/components/time-picker/time-picker.esm.js +193 -0
- package/dist/components/time-picker/time-utils.cjs +1 -0
- package/dist/components/time-picker/time-utils.d.ts +12 -0
- package/dist/components/time-picker/time-utils.esm.js +56 -0
- package/dist/components/toast/ToastProvider.cjs +1 -0
- package/dist/{src/components → components}/toast/ToastProvider.d.ts +3 -0
- package/dist/components/toast/ToastProvider.esm.js +47 -43
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toolbar/Toolbar.cjs +1 -0
- package/dist/{src/components → components}/toolbar/Toolbar.d.ts +1 -1
- package/dist/components/toolbar/Toolbar.esm.js +99 -98
- package/dist/components/toolbar/index.d.ts +2 -0
- package/dist/components/tooltip/{Tooltip.cjs.js → Tooltip.cjs} +1 -1
- package/dist/components/tooltip/Tooltip.esm.js +1 -1
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/typewriter-text/TypewriterText.cjs +1 -0
- package/dist/components/typewriter-text/TypewriterText.d.ts +7 -0
- package/dist/components/typewriter-text/TypewriterText.esm.js +58 -0
- package/dist/components/typewriter-text/index.d.ts +2 -0
- package/dist/components/typewriter-text/types.d.ts +12 -0
- package/dist/components/typing-dots/TypingDots.cjs +1 -0
- package/dist/components/typing-dots/TypingDots.d.ts +10 -0
- package/dist/components/typing-dots/TypingDots.esm.js +37 -0
- package/dist/components/typing-dots/index.d.ts +2 -0
- package/dist/components/typing-dots/types.d.ts +4 -0
- package/dist/hooks/awaitableOverlayController.cjs +1 -0
- package/dist/hooks/awaitableOverlayController.d.ts +6 -0
- package/dist/hooks/awaitableOverlayController.esm.js +18 -0
- package/dist/hooks/index.d.ts +17 -0
- package/dist/hooks/useAwaitableOverlay.cjs +1 -0
- package/dist/hooks/useAwaitableOverlay.d.ts +16 -0
- package/dist/hooks/useAwaitableOverlay.esm.js +22 -0
- package/dist/hooks/useFillEmptyRows.cjs +1 -0
- package/dist/{src/components/table/hooks → hooks}/useFillEmptyRows.d.ts +10 -1
- package/dist/hooks/useFillEmptyRows.esm.js +60 -0
- package/dist/hooks/useFocusTrap.cjs +1 -0
- package/dist/hooks/useFocusTrap.d.ts +47 -0
- package/dist/hooks/useFocusTrap.esm.js +210 -0
- package/dist/hooks/useInfiniteScroll.cjs +1 -0
- package/dist/hooks/useInfiniteScroll.d.ts +36 -0
- package/dist/hooks/useInfiniteScroll.esm.js +31 -0
- package/dist/hooks/useTableDragSelection.cjs +1 -0
- package/dist/{src/components/table/hooks → hooks}/useTableDragSelection.d.ts +3 -4
- package/dist/{components/table/hooks → hooks}/useTableDragSelection.esm.js +9 -6
- package/dist/hooks/useVirtualRows.cjs +1 -0
- package/dist/hooks/useVirtualRows.d.ts +56 -0
- package/dist/hooks/useVirtualRows.esm.js +20 -0
- package/dist/hooks.cjs +1 -0
- package/dist/hooks.esm.js +12 -5
- package/dist/index.cjs +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.esm.js +83 -58
- package/dist/lib/index.d.ts +6 -0
- package/dist/lib/utils.cjs +1 -0
- package/dist/{src/lib → lib}/utils.d.ts +2 -1
- package/dist/lib/utils.esm.js +108 -5
- package/dist/node_modules/lucide-react/dist/esm/Icon.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-down.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-down.esm.js +10 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-left.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up-down.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up-down.esm.js +21 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-up.esm.js +10 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/calendar.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/clock.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/clock.esm.js +12 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/copy.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/copy.esm.js +15 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/eye-off.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/info.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/keyboard.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/list-filter.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/minus.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/save.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/search.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/settings.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/wrench.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/icons/x.cjs +1 -0
- package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.cjs +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +1 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.esm.js +559 -550
- package/dist/tokens.css +1158 -0
- package/dist/ui.css +1 -1
- package/llms.txt +46 -17
- package/package.json +11 -8
- package/dist/components/_shared/form-size-tokens.cjs.js +0 -1
- package/dist/components/action-toast/ActionToast.cjs.js +0 -1
- package/dist/components/animated-height/AnimatedHeight.cjs.js +0 -1
- package/dist/components/badge/Badge.cjs.js +0 -1
- package/dist/components/badge/utils.cjs.js +0 -1
- package/dist/components/button/Button.cjs.js +0 -1
- package/dist/components/button/utils.cjs.js +0 -1
- package/dist/components/checkbox/Checkbox.cjs.js +0 -1
- package/dist/components/checkbox/utils.cjs.js +0 -1
- package/dist/components/collapsible/Collapsible.cjs.js +0 -1
- package/dist/components/date-input/DateInput.cjs.js +0 -1
- package/dist/components/date-picker/date-picker.cjs.js +0 -1
- package/dist/components/date-picker/date-range-picker.cjs.js +0 -1
- package/dist/components/date-picker/month-picker.cjs.js +0 -1
- package/dist/components/drawer/Drawer.cjs.js +0 -1
- package/dist/components/info-tooltip/InfoTooltip.cjs.js +0 -1
- package/dist/components/input/Input.cjs.js +0 -1
- package/dist/components/input/PasswordInput.cjs.js +0 -1
- package/dist/components/input/format.cjs.js +0 -1
- package/dist/components/input/utils.cjs.js +0 -1
- package/dist/components/loading-spinner/LoadingSpinner.cjs.js +0 -1
- package/dist/components/modal/Modal.cjs.js +0 -1
- package/dist/components/modal/ModalSubView.cjs.js +0 -1
- package/dist/components/modal/StandardModal.cjs.js +0 -1
- package/dist/components/page-title/PageTitle.cjs.js +0 -1
- package/dist/components/popover/Popover.cjs.js +0 -1
- package/dist/components/search-box/ExactMatchToggle.cjs.js +0 -1
- package/dist/components/search-box/SearchBox.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxChips.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxDateRange.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxDateSingle.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxField.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxFloatingInput.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxFloatingSelect.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxMonth.cjs.js +0 -1
- package/dist/components/search-box/SearchBoxMultiSelect.cjs.js +0 -1
- package/dist/components/search-box/dateRangePresets.cjs.js +0 -1
- package/dist/components/search-box/parseSearchValues.cjs.js +0 -1
- package/dist/components/search-box/useSearchBoxState.cjs.js +0 -1
- package/dist/components/select/MultiSelect.cjs.js +0 -1
- package/dist/components/select/Select.cjs.js +0 -1
- package/dist/components/select/loading-dots.cjs.js +0 -1
- package/dist/components/switch/Switch.cjs.js +0 -1
- package/dist/components/switch/utils.cjs.js +0 -1
- package/dist/components/table/accordion-table.cjs.js +0 -1
- package/dist/components/table/components/ColumnPresetSelector.cjs.js +0 -1
- package/dist/components/table/components/ColumnSettingsTable.cjs.js +0 -4
- package/dist/components/table/components/KeyboardNavButton.cjs.js +0 -1
- package/dist/components/table/components/PageJumpInput.cjs.js +0 -1
- package/dist/components/table/components/Pagination.cjs.js +0 -1
- package/dist/components/table/components/PaginationFooter.cjs.js +0 -1
- package/dist/components/table/components/SortableHeaderCell.cjs.js +0 -1
- package/dist/components/table/hooks/useColumnPresets.cjs.js +0 -1
- package/dist/components/table/hooks/useColumnResize.cjs.js +0 -1
- package/dist/components/table/hooks/useFillEmptyRows.cjs.js +0 -1
- package/dist/components/table/hooks/useFillEmptyRows.esm.js +0 -49
- package/dist/components/table/hooks/useInfiniteScroll.cjs.js +0 -1
- package/dist/components/table/hooks/useInfiniteScroll.esm.js +0 -32
- package/dist/components/table/hooks/useTableColumnState.cjs.js +0 -1
- package/dist/components/table/hooks/useTableDragSelection.cjs.js +0 -1
- package/dist/components/table/hooks/useTableSort.cjs.js +0 -1
- package/dist/components/table/hooks/useVirtualTable.cjs.js +0 -1
- package/dist/components/table/mini-table.cjs.js +0 -1
- package/dist/components/table/paginated-mini-table.cjs.js +0 -1
- package/dist/components/table/paginated-table.cjs.js +0 -1
- package/dist/components/table/table.cjs.js +0 -1
- package/dist/components/table/utils.cjs.js +0 -37
- package/dist/components/table-checkbox/TableCheckbox.cjs.js +0 -1
- package/dist/components/table-page-layout/TablePageLayout.cjs.js +0 -1
- package/dist/components/textarea/Textarea.cjs.js +0 -1
- package/dist/components/toast/ToastProvider.cjs.js +0 -1
- package/dist/components/toolbar/Toolbar.cjs.js +0 -1
- package/dist/hooks.cjs.js +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/lib/utils.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/Icon.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/arrow-left.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/calendar.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-down.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-left.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-left.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/chevrons-right.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-check.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/circle-x.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/eye-off.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/eye.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/grip-vertical.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/info.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/keyboard.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/list-filter.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/loader-circle.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/minus.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/rotate-ccw.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/save.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/search.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/settings.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/triangle-alert.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/wrench.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/icons/x.cjs.js +0 -1
- package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/toPascalCase.cjs.js +0 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.js +0 -1
- package/dist/src/components/animated-height/index.d.ts +0 -2
- package/dist/src/components/badge/index.d.ts +0 -2
- package/dist/src/components/checkbox/index.d.ts +0 -2
- package/dist/src/components/collapsible/index.d.ts +0 -2
- package/dist/src/components/date-input/index.d.ts +0 -1
- package/dist/src/components/date-picker/index.d.ts +0 -5
- package/dist/src/components/drawer/Drawer.d.ts +0 -23
- package/dist/src/components/drawer/index.d.ts +0 -2
- package/dist/src/components/info-tooltip/index.d.ts +0 -2
- package/dist/src/components/input/index.d.ts +0 -4
- package/dist/src/components/loading-spinner/index.d.ts +0 -2
- package/dist/src/components/modal/index.d.ts +0 -6
- package/dist/src/components/page-title/index.d.ts +0 -1
- package/dist/src/components/popover/index.d.ts +0 -2
- package/dist/src/components/select/index.d.ts +0 -4
- package/dist/src/components/select/loading-dots.d.ts +0 -9
- package/dist/src/components/switch/index.d.ts +0 -2
- package/dist/src/components/table/hooks/useInfiniteScroll.d.ts +0 -58
- package/dist/src/components/table/index.d.ts +0 -27
- package/dist/src/components/table/table.d.ts +0 -10
- package/dist/src/components/table-checkbox/index.d.ts +0 -1
- package/dist/src/components/textarea/index.d.ts +0 -2
- package/dist/src/components/toast/index.d.ts +0 -3
- package/dist/src/components/toolbar/index.d.ts +0 -2
- package/dist/src/components/tooltip/index.d.ts +0 -2
- package/dist/src/hooks/index.d.ts +0 -4
- package/dist/src/index.d.ts +0 -27
- package/dist/src/lib/index.d.ts +0 -6
- /package/dist/_virtual/_rolldown/{runtime.cjs.js → runtime.cjs} +0 -0
- /package/dist/{src/components → components}/animated-height/AnimatedHeight.d.ts +0 -0
- /package/dist/{src/components → components}/badge/types.d.ts +0 -0
- /package/dist/{src/components → components}/checkbox/types.d.ts +0 -0
- /package/dist/{src/components → components}/collapsible/Collapsible.d.ts +0 -0
- /package/dist/{src/components → components}/info-tooltip/InfoTooltip.d.ts +0 -0
- /package/dist/{src/components → components}/loading-spinner/LoadingSpinner.d.ts +0 -0
- /package/dist/{src/components → components}/page-title/PageTitle.d.ts +0 -0
- /package/dist/{src/components → components}/popover/Popover.d.ts +0 -0
- /package/dist/{src/components → components}/search-box/ExactMatchToggle.d.ts +0 -0
- /package/dist/{src/components → components}/search-box/SearchBoxChips.d.ts +0 -0
- /package/dist/{src/components → components}/search-box/SearchBoxFloatingInput.d.ts +0 -0
- /package/dist/{src/components → components}/search-box/SearchBoxMonth.d.ts +0 -0
- /package/dist/components/search-box/{SearchBoxSheetContext.cjs.js → SearchBoxSheetContext.cjs} +0 -0
- /package/dist/{src/components → components}/search-box/SearchBoxSheetContext.d.ts +0 -0
- /package/dist/components/search-box/{parseDateRange.cjs.js → parseDateRange.cjs} +0 -0
- /package/dist/{src/components → components}/search-box/parseDateRange.d.ts +0 -0
- /package/dist/{src/components → components}/switch/types.d.ts +0 -0
- /package/dist/components/table/{column-group-utils.cjs.js → column-group-utils.cjs} +0 -0
- /package/dist/{src/components → components}/table/components/KeyboardNavButton.d.ts +0 -0
- /package/dist/{src/components → components}/table/components/PageJumpInput.d.ts +0 -0
- /package/dist/{src/components → components}/table/components/Pagination.d.ts +0 -0
- /package/dist/{src/components → components}/table/components/PaginationFooter.d.ts +0 -0
- /package/dist/{src/components → components}/table/hooks/useVirtualTable.d.ts +0 -0
- /package/dist/{src/components → components}/table-checkbox/TableCheckbox.d.ts +0 -0
- /package/dist/{src/components → components}/table-page-layout/TablePageLayout.d.ts +0 -0
- /package/dist/{src/components → components}/textarea/types.d.ts +0 -0
- /package/dist/{src/components → components}/tooltip/Tooltip.d.ts +0 -0
- /package/dist/hooks/{useBottomSheetDrag.cjs.js → useBottomSheetDrag.cjs} +0 -0
- /package/dist/{src/hooks → hooks}/useBottomSheetDrag.d.ts +0 -0
- /package/dist/hooks/{useClickOutside.cjs.js → useClickOutside.cjs} +0 -0
- /package/dist/{src/hooks → hooks}/useClickOutside.d.ts +0 -0
- /package/dist/hooks/{useMediaQuery.cjs.js → useMediaQuery.cjs} +0 -0
- /package/dist/{src/hooks → hooks}/useMediaQuery.d.ts +0 -0
- /package/dist/hooks/{useScrollLock.cjs.js → useScrollLock.cjs} +0 -0
- /package/dist/{src/hooks → hooks}/useScrollLock.d.ts +0 -0
- /package/dist/lib/{Portal.cjs.js → Portal.cjs} +0 -0
- /package/dist/{src/lib → lib}/Portal.d.ts +0 -0
- /package/dist/lib/{column-preset-storage.cjs.js → column-preset-storage.cjs} +0 -0
- /package/dist/{src/lib → lib}/column-preset-storage.d.ts +0 -0
- /package/dist/lib/{overlay-stack.cjs.js → overlay-stack.cjs} +0 -0
- /package/dist/{src/lib → lib}/overlay-stack.d.ts +0 -0
- /package/dist/node_modules/clsx/dist/{clsx.cjs.js → clsx.cjs} +0 -0
- /package/dist/node_modules/lucide-react/dist/esm/{context.cjs.js → context.cjs} +0 -0
- /package/dist/node_modules/lucide-react/dist/esm/{defaultAttributes.cjs.js → defaultAttributes.cjs} +0 -0
- /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{hasA11yProp.cjs.js → hasA11yProp.cjs} +0 -0
- /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{mergeClasses.cjs.js → mergeClasses.cjs} +0 -0
- /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{toCamelCase.cjs.js → toCamelCase.cjs} +0 -0
- /package/dist/node_modules/lucide-react/dist/esm/shared/src/utils/{toKebabCase.cjs.js → toKebabCase.cjs} +0 -0
- /package/dist/node_modules/use-debounce/dist/{index.module.cjs.js → index.module.cjs} +0 -0
|
@@ -1,53 +1,54 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { cn as e } from "../../../lib/utils.esm.js";
|
|
2
|
+
import { useState as t } from "react";
|
|
3
|
+
import { jsx as n, jsxs as r } from "react/jsx-runtime";
|
|
3
4
|
//#region src/components/table/components/PageJumpInput.tsx
|
|
4
|
-
function
|
|
5
|
-
let [
|
|
5
|
+
function i({ currentPage: i, totalPages: a, onPageChange: o, className: s = "", "data-testid": c }) {
|
|
6
|
+
let [l, u] = t(""), d = (e) => {
|
|
6
7
|
let t = e.replace(/[^0-9]/g, "");
|
|
7
8
|
if (t === "") {
|
|
8
|
-
|
|
9
|
+
u("");
|
|
9
10
|
return;
|
|
10
11
|
}
|
|
11
12
|
let n = Number(t);
|
|
12
13
|
if (n <= 0) {
|
|
13
|
-
|
|
14
|
+
u("");
|
|
14
15
|
return;
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
if (
|
|
19
|
-
let e = Number(
|
|
20
|
-
t !==
|
|
21
|
-
},
|
|
22
|
-
e.key === "Enter" ? (e.preventDefault(),
|
|
23
|
-
},
|
|
24
|
-
return /* @__PURE__ */
|
|
25
|
-
className:
|
|
17
|
+
u(String(Math.min(a, n)));
|
|
18
|
+
}, f = () => {
|
|
19
|
+
if (l === "") return;
|
|
20
|
+
let e = Number(l), t = Math.max(1, Math.min(a, Math.floor(e)));
|
|
21
|
+
t !== i && o(t), u("");
|
|
22
|
+
}, p = (e) => {
|
|
23
|
+
e.key === "Enter" ? (e.preventDefault(), f()) : e.key === "Escape" && (u(""), e.target.blur());
|
|
24
|
+
}, m = String(a).length, h = m <= 2 ? "w-12" : m === 3 ? "w-14" : "w-16";
|
|
25
|
+
return /* @__PURE__ */ r("label", {
|
|
26
|
+
className: e("flex items-center gap-1 text-sm text-fg-muted", s),
|
|
26
27
|
children: [
|
|
27
|
-
/* @__PURE__ */
|
|
28
|
-
className: "text-
|
|
28
|
+
/* @__PURE__ */ n("span", {
|
|
29
|
+
className: "text-fg-muted",
|
|
29
30
|
children: "이동"
|
|
30
31
|
}),
|
|
31
|
-
/* @__PURE__ */
|
|
32
|
+
/* @__PURE__ */ n("input", {
|
|
32
33
|
type: "text",
|
|
33
34
|
inputMode: "numeric",
|
|
34
35
|
pattern: "[0-9]*",
|
|
35
|
-
maxLength:
|
|
36
|
-
value:
|
|
37
|
-
placeholder: String(
|
|
38
|
-
onChange: (e) =>
|
|
39
|
-
onKeyDown:
|
|
40
|
-
onBlur:
|
|
41
|
-
"aria-label": `페이지 번호 입력 (1-${
|
|
42
|
-
"data-testid":
|
|
43
|
-
className:
|
|
36
|
+
maxLength: m,
|
|
37
|
+
value: l,
|
|
38
|
+
placeholder: String(i),
|
|
39
|
+
onChange: (e) => d(e.target.value),
|
|
40
|
+
onKeyDown: p,
|
|
41
|
+
onBlur: f,
|
|
42
|
+
"aria-label": `페이지 번호 입력 (1-${a})`,
|
|
43
|
+
"data-testid": c,
|
|
44
|
+
className: e(h, "rounded-control-mini border border-border-subtle bg-bg-surface px-2 py-0.5 text-center tabular-nums text-fg-default transition-colors hover:border-primary-border focus:border-primary focus:outline-hidden focus-visible:ring-control focus-visible:ring-focus-primary")
|
|
44
45
|
}),
|
|
45
|
-
/* @__PURE__ */
|
|
46
|
-
className: "text-
|
|
47
|
-
children: ["/ ",
|
|
46
|
+
/* @__PURE__ */ r("span", {
|
|
47
|
+
className: "text-fg-muted tabular-nums",
|
|
48
|
+
children: ["/ ", a.toLocaleString()]
|
|
48
49
|
})
|
|
49
50
|
]
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
//#endregion
|
|
53
|
-
export {
|
|
54
|
+
export { i as PageJumpInput };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../../../lib/utils.cjs"),t=require("../../../node_modules/lucide-react/dist/esm/icons/chevron-left.cjs"),n=require("../../../node_modules/lucide-react/dist/esm/icons/chevron-right.cjs"),r=require("../../../node_modules/lucide-react/dist/esm/icons/chevrons-left.cjs"),i=require("../../../node_modules/lucide-react/dist/esm/icons/chevrons-right.cjs");let a=require("react"),o=require("react/jsx-runtime");var s=[9,7,5,3,1],c=16,l=`px-0.5 text-xs text-fg-subtle font-mono @min-[640px]/pagebar:px-1 @min-[640px]/pagebar:text-sm`,u=`inline-flex h-7 min-w-6 items-center justify-center rounded-control-mini px-1.5 font-mono text-xs tabular-nums transition-colors @min-[640px]/pagebar:h-8 @min-[640px]/pagebar:min-w-7 @min-[640px]/pagebar:px-2 @min-[640px]/pagebar:text-sm`,d=`text-fg-disabled hover:bg-bg-subtle hover:text-fg-default`,f=`font-bold text-fg-default`,p=`outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary`,m=`disabled:cursor-not-allowed disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-fg-subtle`;function h({active:t=!1,className:n=``,children:r,...i}){return(0,o.jsx)(`button`,{type:`button`,"aria-current":t?`page`:void 0,className:e.cn(u,t?f:d,p,m,n),...i,children:r})}function g(e,t,n){let r=Math.floor(n/2),i=Math.max(1,e-r),a=Math.min(t,i+n-1);a-i<n-1&&(i=Math.max(1,a-n+1));let o=[];for(let e=i;e<=a;e++)o.push(e);return o}function _(e,t){let n=t<=28?4:8,r=t<=28,i=r?24:28,a=r?7:8;return e.reduce((e,t)=>{let n=String(t).length;return e+Math.max(i,i+(n-1)*a)},0)+n*Math.max(0,e.length-1)+c*2+24}function v(e,t,n,r,i,a){let o=e-r,c=s.filter(e=>e<=a);for(let e of c)if(_(g(t,n,e),i)<=o)return e;return 1}function y({currentPage:e,totalPages:t,pages:n,onPageChange:r,testId:i}){if(n.length===0)return null;let a=n[0]>1,s=n[n.length-1]<t;return(0,o.jsxs)(o.Fragment,{children:[a&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(h,{active:e===1,onClick:()=>r(1),"data-testid":i?`${i}-page-1`:void 0,children:`1`}),n[0]>2&&(0,o.jsx)(`span`,{className:l,children:`…`})]}),n.map(t=>(0,o.jsx)(h,{active:e===t,onClick:()=>r(t),"data-testid":i?`${i}-page-${t}`:void 0,children:t},t)),s&&(0,o.jsxs)(o.Fragment,{children:[n[n.length-1]<t-1&&(0,o.jsx)(`span`,{className:l,children:`…`}),(0,o.jsx)(h,{active:e===t,onClick:()=>r(t),"data-testid":i?`${i}-page-${t}`:void 0,children:t})]})]})}function b({currentPage:s,totalPages:c,onPageChange:l,hasPreviousPage:u,hasNextPage:d,maxPageButtons:f=9,className:p=``,"data-testid":m,..._}){let b=(0,a.useRef)(null),[x,S]=(0,a.useState)(f);if((0,a.useLayoutEffect)(()=>{let e=b.current;if(!e)return;let t=e.parentElement;if(!t)return;let n=()=>{let e=t.offsetWidth,n=e<640,r=n?28:32,i=n?4:8,a=v(e,s,c,r*4+i*5,r,f);S(e=>e===a?e:a)};n();let r=new ResizeObserver(n);return r.observe(t),()=>r.disconnect()},[s,c,f]),c<1)return null;if(c===1)return(0,o.jsx)(`div`,{ref:b,className:e.cn(`flex items-center justify-center gap-1 sm:gap-2`,p),"data-testid":m,..._,children:(0,o.jsx)(h,{active:!0,disabled:!0,"data-testid":m?`${m}-page-1`:void 0,children:`1`})});let C=g(s,c,x);return(0,o.jsxs)(`div`,{ref:b,className:e.cn(`flex items-center justify-center gap-1 sm:gap-2`,p),"data-testid":m,..._,children:[(0,o.jsx)(h,{disabled:s===1,onClick:()=>l(1),"data-testid":m?`${m}-first`:void 0,"aria-label":`첫 페이지`,children:(0,o.jsx)(r.ChevronsLeft,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}),(0,o.jsx)(h,{disabled:u===!1||s===1,onClick:()=>l(s-1),"data-testid":m?`${m}-prev`:void 0,"aria-label":`이전 페이지`,children:(0,o.jsx)(t.ChevronLeft,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}),(0,o.jsx)(y,{currentPage:s,totalPages:c,pages:C,onPageChange:l,testId:m}),(0,o.jsx)(h,{disabled:d===!1||s===c,onClick:()=>l(s+1),"data-testid":m?`${m}-next`:void 0,"aria-label":`다음 페이지`,children:(0,o.jsx)(n.ChevronRight,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})}),(0,o.jsx)(h,{disabled:s===c,onClick:()=>l(c),"data-testid":m?`${m}-last`:void 0,"aria-label":`마지막 페이지`,children:(0,o.jsx)(i.ChevronsRight,{className:`h-3.5 w-3.5`,"aria-hidden":`true`})})]})}exports.Pagination=b;
|
|
@@ -1,68 +1,69 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { cn as e } from "../../../lib/utils.esm.js";
|
|
2
|
+
import { ChevronLeft as t } from "../../../node_modules/lucide-react/dist/esm/icons/chevron-left.esm.js";
|
|
3
|
+
import { ChevronRight as n } from "../../../node_modules/lucide-react/dist/esm/icons/chevron-right.esm.js";
|
|
4
|
+
import { ChevronsLeft as r } from "../../../node_modules/lucide-react/dist/esm/icons/chevrons-left.esm.js";
|
|
5
|
+
import { ChevronsRight as i } from "../../../node_modules/lucide-react/dist/esm/icons/chevrons-right.esm.js";
|
|
6
|
+
import { useLayoutEffect as a, useRef as o, useState as s } from "react";
|
|
7
|
+
import { Fragment as c, jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
7
8
|
//#region src/components/table/components/Pagination.tsx
|
|
8
|
-
var
|
|
9
|
+
var d = [
|
|
9
10
|
9,
|
|
10
11
|
7,
|
|
11
12
|
5,
|
|
12
13
|
3,
|
|
13
14
|
1
|
|
14
|
-
],
|
|
15
|
-
function
|
|
16
|
-
return /* @__PURE__ */
|
|
15
|
+
], f = 16, p = "px-0.5 text-xs text-fg-subtle font-mono @min-[640px]/pagebar:px-1 @min-[640px]/pagebar:text-sm", m = "inline-flex h-7 min-w-6 items-center justify-center rounded-control-mini px-1.5 font-mono text-xs tabular-nums transition-colors @min-[640px]/pagebar:h-8 @min-[640px]/pagebar:min-w-7 @min-[640px]/pagebar:px-2 @min-[640px]/pagebar:text-sm", h = "text-fg-disabled hover:bg-bg-subtle hover:text-fg-default", g = "font-bold text-fg-default", _ = "outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary", v = "disabled:cursor-not-allowed disabled:opacity-30 disabled:hover:bg-transparent disabled:hover:text-fg-subtle";
|
|
16
|
+
function y({ active: t = !1, className: n = "", children: r, ...i }) {
|
|
17
|
+
return /* @__PURE__ */ l("button", {
|
|
17
18
|
type: "button",
|
|
18
|
-
"aria-current":
|
|
19
|
-
className:
|
|
20
|
-
...
|
|
21
|
-
children:
|
|
19
|
+
"aria-current": t ? "page" : void 0,
|
|
20
|
+
className: e(m, t ? g : h, _, v, n),
|
|
21
|
+
...i,
|
|
22
|
+
children: r
|
|
22
23
|
});
|
|
23
24
|
}
|
|
24
|
-
function
|
|
25
|
+
function b(e, t, n) {
|
|
25
26
|
let r = Math.floor(n / 2), i = Math.max(1, e - r), a = Math.min(t, i + n - 1);
|
|
26
27
|
a - i < n - 1 && (i = Math.max(1, a - n + 1));
|
|
27
28
|
let o = [];
|
|
28
29
|
for (let e = i; e <= a; e++) o.push(e);
|
|
29
30
|
return o;
|
|
30
31
|
}
|
|
31
|
-
function
|
|
32
|
+
function x(e, t) {
|
|
32
33
|
let n = t <= 28 ? 4 : 8, r = t <= 28, i = r ? 24 : 28, a = r ? 7 : 8;
|
|
33
34
|
return e.reduce((e, t) => {
|
|
34
35
|
let n = String(t).length;
|
|
35
36
|
return e + Math.max(i, i + (n - 1) * a);
|
|
36
|
-
}, 0) + n * Math.max(0, e.length - 1) +
|
|
37
|
+
}, 0) + n * Math.max(0, e.length - 1) + f * 2 + 24;
|
|
37
38
|
}
|
|
38
|
-
function
|
|
39
|
-
let o = e - r, s =
|
|
40
|
-
for (let e of s) if (b(
|
|
39
|
+
function S(e, t, n, r, i, a) {
|
|
40
|
+
let o = e - r, s = d.filter((e) => e <= a);
|
|
41
|
+
for (let e of s) if (x(b(t, n, e), i) <= o) return e;
|
|
41
42
|
return 1;
|
|
42
43
|
}
|
|
43
|
-
function
|
|
44
|
+
function C({ currentPage: e, totalPages: t, pages: n, onPageChange: r, testId: i }) {
|
|
44
45
|
if (n.length === 0) return null;
|
|
45
46
|
let a = n[0] > 1, o = n[n.length - 1] < t;
|
|
46
|
-
return /* @__PURE__ */
|
|
47
|
-
a && /* @__PURE__ */
|
|
47
|
+
return /* @__PURE__ */ u(c, { children: [
|
|
48
|
+
a && /* @__PURE__ */ u(c, { children: [/* @__PURE__ */ l(y, {
|
|
48
49
|
active: e === 1,
|
|
49
50
|
onClick: () => r(1),
|
|
50
51
|
"data-testid": i ? `${i}-page-1` : void 0,
|
|
51
52
|
children: "1"
|
|
52
|
-
}), n[0] > 2 && /* @__PURE__ */
|
|
53
|
-
className:
|
|
53
|
+
}), n[0] > 2 && /* @__PURE__ */ l("span", {
|
|
54
|
+
className: p,
|
|
54
55
|
children: "…"
|
|
55
56
|
})] }),
|
|
56
|
-
n.map((t) => /* @__PURE__ */
|
|
57
|
+
n.map((t) => /* @__PURE__ */ l(y, {
|
|
57
58
|
active: e === t,
|
|
58
59
|
onClick: () => r(t),
|
|
59
60
|
"data-testid": i ? `${i}-page-${t}` : void 0,
|
|
60
61
|
children: t
|
|
61
62
|
}, t)),
|
|
62
|
-
o && /* @__PURE__ */
|
|
63
|
-
className:
|
|
63
|
+
o && /* @__PURE__ */ u(c, { children: [n[n.length - 1] < t - 1 && /* @__PURE__ */ l("span", {
|
|
64
|
+
className: p,
|
|
64
65
|
children: "…"
|
|
65
|
-
}), /* @__PURE__ */
|
|
66
|
+
}), /* @__PURE__ */ l(y, {
|
|
66
67
|
active: e === t,
|
|
67
68
|
onClick: () => r(t),
|
|
68
69
|
"data-testid": i ? `${i}-page-${t}` : void 0,
|
|
@@ -70,87 +71,87 @@ function S({ currentPage: e, totalPages: t, pages: n, onPageChange: r, testId: i
|
|
|
70
71
|
})] })
|
|
71
72
|
] });
|
|
72
73
|
}
|
|
73
|
-
function
|
|
74
|
-
let
|
|
75
|
-
if (
|
|
76
|
-
let e =
|
|
74
|
+
function w({ currentPage: c, totalPages: d, onPageChange: f, hasPreviousPage: p, hasNextPage: m, maxPageButtons: h = 9, className: g = "", "data-testid": _, ...v }) {
|
|
75
|
+
let x = o(null), [w, T] = s(h);
|
|
76
|
+
if (a(() => {
|
|
77
|
+
let e = x.current;
|
|
77
78
|
if (!e) return;
|
|
78
79
|
let t = e.parentElement;
|
|
79
80
|
if (!t) return;
|
|
80
81
|
let n = () => {
|
|
81
|
-
let e = t.offsetWidth, n = e < 640, r = n ? 28 : 32, i = n ? 4 : 8, a =
|
|
82
|
-
|
|
82
|
+
let e = t.offsetWidth, n = e < 640, r = n ? 28 : 32, i = n ? 4 : 8, a = S(e, c, d, r * 4 + i * 5, r, h);
|
|
83
|
+
T((e) => e === a ? e : a);
|
|
83
84
|
};
|
|
84
85
|
n();
|
|
85
86
|
let r = new ResizeObserver(n);
|
|
86
87
|
return r.observe(t), () => r.disconnect();
|
|
87
88
|
}, [
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
]),
|
|
92
|
-
if (
|
|
93
|
-
ref:
|
|
94
|
-
className:
|
|
95
|
-
"data-testid":
|
|
96
|
-
...
|
|
97
|
-
children: /* @__PURE__ */
|
|
89
|
+
c,
|
|
90
|
+
d,
|
|
91
|
+
h
|
|
92
|
+
]), d < 1) return null;
|
|
93
|
+
if (d === 1) return /* @__PURE__ */ l("div", {
|
|
94
|
+
ref: x,
|
|
95
|
+
className: e("flex items-center justify-center gap-1 sm:gap-2", g),
|
|
96
|
+
"data-testid": _,
|
|
97
|
+
...v,
|
|
98
|
+
children: /* @__PURE__ */ l(y, {
|
|
98
99
|
active: !0,
|
|
99
100
|
disabled: !0,
|
|
100
|
-
"data-testid":
|
|
101
|
+
"data-testid": _ ? `${_}-page-1` : void 0,
|
|
101
102
|
children: "1"
|
|
102
103
|
})
|
|
103
104
|
});
|
|
104
|
-
let
|
|
105
|
-
return /* @__PURE__ */
|
|
106
|
-
ref:
|
|
107
|
-
className:
|
|
108
|
-
"data-testid":
|
|
109
|
-
...
|
|
105
|
+
let E = b(c, d, w);
|
|
106
|
+
return /* @__PURE__ */ u("div", {
|
|
107
|
+
ref: x,
|
|
108
|
+
className: e("flex items-center justify-center gap-1 sm:gap-2", g),
|
|
109
|
+
"data-testid": _,
|
|
110
|
+
...v,
|
|
110
111
|
children: [
|
|
111
|
-
/* @__PURE__ */
|
|
112
|
-
disabled:
|
|
113
|
-
onClick: () =>
|
|
114
|
-
"data-testid":
|
|
112
|
+
/* @__PURE__ */ l(y, {
|
|
113
|
+
disabled: c === 1,
|
|
114
|
+
onClick: () => f(1),
|
|
115
|
+
"data-testid": _ ? `${_}-first` : void 0,
|
|
115
116
|
"aria-label": "첫 페이지",
|
|
116
|
-
children: /* @__PURE__ */
|
|
117
|
+
children: /* @__PURE__ */ l(r, {
|
|
117
118
|
className: "h-3.5 w-3.5",
|
|
118
119
|
"aria-hidden": "true"
|
|
119
120
|
})
|
|
120
121
|
}),
|
|
121
|
-
/* @__PURE__ */
|
|
122
|
-
disabled:
|
|
123
|
-
onClick: () =>
|
|
124
|
-
"data-testid":
|
|
122
|
+
/* @__PURE__ */ l(y, {
|
|
123
|
+
disabled: p === !1 || c === 1,
|
|
124
|
+
onClick: () => f(c - 1),
|
|
125
|
+
"data-testid": _ ? `${_}-prev` : void 0,
|
|
125
126
|
"aria-label": "이전 페이지",
|
|
126
|
-
children: /* @__PURE__ */
|
|
127
|
+
children: /* @__PURE__ */ l(t, {
|
|
127
128
|
className: "h-3.5 w-3.5",
|
|
128
129
|
"aria-hidden": "true"
|
|
129
130
|
})
|
|
130
131
|
}),
|
|
131
|
-
/* @__PURE__ */
|
|
132
|
-
currentPage:
|
|
133
|
-
totalPages:
|
|
134
|
-
pages:
|
|
135
|
-
onPageChange:
|
|
136
|
-
testId:
|
|
132
|
+
/* @__PURE__ */ l(C, {
|
|
133
|
+
currentPage: c,
|
|
134
|
+
totalPages: d,
|
|
135
|
+
pages: E,
|
|
136
|
+
onPageChange: f,
|
|
137
|
+
testId: _
|
|
137
138
|
}),
|
|
138
|
-
/* @__PURE__ */
|
|
139
|
-
disabled:
|
|
140
|
-
onClick: () =>
|
|
141
|
-
"data-testid":
|
|
139
|
+
/* @__PURE__ */ l(y, {
|
|
140
|
+
disabled: m === !1 || c === d,
|
|
141
|
+
onClick: () => f(c + 1),
|
|
142
|
+
"data-testid": _ ? `${_}-next` : void 0,
|
|
142
143
|
"aria-label": "다음 페이지",
|
|
143
|
-
children: /* @__PURE__ */
|
|
144
|
+
children: /* @__PURE__ */ l(n, {
|
|
144
145
|
className: "h-3.5 w-3.5",
|
|
145
146
|
"aria-hidden": "true"
|
|
146
147
|
})
|
|
147
148
|
}),
|
|
148
|
-
/* @__PURE__ */
|
|
149
|
-
disabled:
|
|
150
|
-
onClick: () => d
|
|
151
|
-
"data-testid":
|
|
149
|
+
/* @__PURE__ */ l(y, {
|
|
150
|
+
disabled: c === d,
|
|
151
|
+
onClick: () => f(d),
|
|
152
|
+
"data-testid": _ ? `${_}-last` : void 0,
|
|
152
153
|
"aria-label": "마지막 페이지",
|
|
153
|
-
children: /* @__PURE__ */
|
|
154
|
+
children: /* @__PURE__ */ l(i, {
|
|
154
155
|
className: "h-3.5 w-3.5",
|
|
155
156
|
"aria-hidden": "true"
|
|
156
157
|
})
|
|
@@ -159,4 +160,4 @@ function C({ currentPage: s, totalPages: u, onPageChange: d, hasPreviousPage: f,
|
|
|
159
160
|
});
|
|
160
161
|
}
|
|
161
162
|
//#endregion
|
|
162
|
-
export {
|
|
163
|
+
export { w as Pagination };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../../select/Select.cjs"),t=require("./KeyboardNavButton.cjs"),n=require("./PageJumpInput.cjs"),r=require("./Pagination.cjs");let i=require("react/jsx-runtime");var a=[30,50,100];function o({currentPage:o,totalPages:s,onPageChange:c,pageSize:l,pageSizeOptions:u=a,onPageSizeChange:d,hasPreviousPage:f,hasNextPage:p,totalElements:m,showTotalCount:h=!0,enablePageJump:g=!0,enableKeyboardPagination:_=!0,"data-testid":v}){let y=f??o>1,b=p??o<s,x=e=>{_&&(e.altKey||e.metaKey||e.ctrlKey||e.shiftKey||(e.key===`ArrowLeft`&&y?(e.preventDefault(),c(o-1)):e.key===`ArrowRight`&&b&&(e.preventDefault(),c(o+1))))};return(0,i.jsxs)(`nav`,{"aria-label":`페이지 네비게이션`,className:`@container/pagebar group/footer flex flex-wrap items-center justify-between gap-x-3 gap-y-2 shrink-0`,children:[(0,i.jsxs)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-2 text-sm text-fg-muted`,children:[h&&m!==void 0&&(0,i.jsxs)(`span`,{children:[`총 `,m.toLocaleString(),`건`]}),d&&l!==void 0&&(0,i.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,i.jsx)(`span`,{className:`text-fg-muted`,children:`페이지당`}),(0,i.jsx)(`div`,{className:`w-20`,children:(0,i.jsx)(e.Select,{variant:`box`,selectSize:`mini`,value:String(l),onChange:e=>d(Number(e)),options:u.map(e=>({value:String(e),label:String(e)})),placeholder:`선택`,"data-testid":v?`${v}-page-size`:void 0})})]}),(0,i.jsx)(`div`,{className:`contents @min-[640px]/pagebar:hidden`,children:g&&s>1&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.PageJumpInput,{currentPage:o,totalPages:s,onPageChange:c,"data-testid":v?`${v}-page-jump`:void 0}),_&&(0,i.jsx)(t.KeyboardNavButton,{onKeyDown:x})]})})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-3 @min-[640px]/pagebar:flex-1 @min-[640px]/pagebar:justify-end @max-[639px]/pagebar:w-full @max-[639px]/pagebar:justify-center`,children:[(0,i.jsx)(`div`,{className:`hidden @min-[640px]/pagebar:contents`,children:g&&s>1&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.PageJumpInput,{currentPage:o,totalPages:s,onPageChange:c,"data-testid":v?`${v}-page-jump`:void 0}),_&&(0,i.jsx)(t.KeyboardNavButton,{onKeyDown:x})]})}),(0,i.jsx)(r.Pagination,{currentPage:o,totalPages:s,onPageChange:c,hasPreviousPage:y,hasNextPage:b,"data-testid":v?`${v}-pagination`:void 0})]})]})}exports.PaginationFooter=o;
|
|
@@ -17,7 +17,7 @@ function c({ currentPage: c, totalPages: l, onPageChange: u, pageSize: d, pageSi
|
|
|
17
17
|
"aria-label": "페이지 네비게이션",
|
|
18
18
|
className: "@container/pagebar group/footer flex flex-wrap items-center justify-between gap-x-3 gap-y-2 shrink-0",
|
|
19
19
|
children: [/* @__PURE__ */ o("div", {
|
|
20
|
-
className: "flex flex-wrap items-center gap-x-3 gap-y-2 text-sm text-
|
|
20
|
+
className: "flex flex-wrap items-center gap-x-3 gap-y-2 text-sm text-fg-muted",
|
|
21
21
|
children: [
|
|
22
22
|
_ && g !== void 0 && /* @__PURE__ */ o("span", { children: [
|
|
23
23
|
"총 ",
|
|
@@ -27,7 +27,7 @@ function c({ currentPage: c, totalPages: l, onPageChange: u, pageSize: d, pageSi
|
|
|
27
27
|
p && d !== void 0 && /* @__PURE__ */ o("div", {
|
|
28
28
|
className: "flex items-center gap-1",
|
|
29
29
|
children: [/* @__PURE__ */ a("span", {
|
|
30
|
-
className: "text-
|
|
30
|
+
className: "text-fg-muted",
|
|
31
31
|
children: "페이지당"
|
|
32
32
|
}), /* @__PURE__ */ a("div", {
|
|
33
33
|
className: "w-20",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../../../node_modules/lucide-react/dist/esm/icons/arrow-down.cjs"),t=require("../../../node_modules/lucide-react/dist/esm/icons/arrow-up-down.cjs"),n=require("../../../node_modules/lucide-react/dist/esm/icons/arrow-up.cjs"),r=require("./SortableHeaderCell.cjs");let i=require("react/jsx-runtime");function a({children:a,current:o,label:s,onSort:c}){let l=r.useSortableHeaderKeyboardDrag(),u=o===`asc`?n.ArrowUp:o===`desc`?e.ArrowDown:t.ArrowUpDown;return(0,i.jsxs)(`button`,{ref:l?.setActivatorNodeRef,type:`button`,"aria-label":s,"aria-describedby":l?.descriptionId,"aria-keyshortcuts":l?`Shift+Space`:void 0,onKeyDown:l?.onKeyDown,onClick:e=>{e.stopPropagation(),c()},className:`inline-flex items-center gap-1 cursor-pointer rounded-control-mini focus-visible:outline-none focus-visible:ring-control focus-visible:ring-focus-primary`,children:[a,(0,i.jsx)(u,{"aria-hidden":`true`,className:`size-3.5 shrink-0`})]})}exports.SortHeader=a;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { SortDirection } from '../types.js';
|
|
3
|
+
interface SortHeaderProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
current: SortDirection;
|
|
6
|
+
label?: string;
|
|
7
|
+
onSort: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function SortHeader({ children, current, label, onSort }: SortHeaderProps): import("react").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ArrowDown as e } from "../../../node_modules/lucide-react/dist/esm/icons/arrow-down.esm.js";
|
|
2
|
+
import { ArrowUpDown as t } from "../../../node_modules/lucide-react/dist/esm/icons/arrow-up-down.esm.js";
|
|
3
|
+
import { ArrowUp as n } from "../../../node_modules/lucide-react/dist/esm/icons/arrow-up.esm.js";
|
|
4
|
+
import { useSortableHeaderKeyboardDrag as r } from "./SortableHeaderCell.esm.js";
|
|
5
|
+
import { jsx as i, jsxs as a } from "react/jsx-runtime";
|
|
6
|
+
//#region src/components/table/components/SortHeader.tsx
|
|
7
|
+
function o({ children: o, current: s, label: c, onSort: l }) {
|
|
8
|
+
let u = r(), d = s === "asc" ? n : s === "desc" ? e : t;
|
|
9
|
+
return /* @__PURE__ */ a("button", {
|
|
10
|
+
ref: u?.setActivatorNodeRef,
|
|
11
|
+
type: "button",
|
|
12
|
+
"aria-label": c,
|
|
13
|
+
"aria-describedby": u?.descriptionId,
|
|
14
|
+
"aria-keyshortcuts": u ? "Shift+Space" : void 0,
|
|
15
|
+
onKeyDown: u?.onKeyDown,
|
|
16
|
+
onClick: (e) => {
|
|
17
|
+
e.stopPropagation(), l();
|
|
18
|
+
},
|
|
19
|
+
className: "inline-flex items-center gap-1 cursor-pointer rounded-control-mini focus-visible:outline-none focus-visible:ring-control focus-visible:ring-focus-primary",
|
|
20
|
+
children: [o, /* @__PURE__ */ i(d, {
|
|
21
|
+
"aria-hidden": "true",
|
|
22
|
+
className: "size-3.5 shrink-0"
|
|
23
|
+
})]
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { o as SortHeader };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("react"),t=require("react/jsx-runtime"),n=require("@dnd-kit/sortable"),r=require("@dnd-kit/utilities");var i=(0,e.createContext)(null),a=()=>(0,e.useContext)(i);function o({id:a,disabled:o=!1,as:s=`div`,colSpan:c,rowSpan:l,"aria-sort":u,hasSortButton:d=!1,className:f,style:p,children:m}){let{setNodeRef:h,setActivatorNodeRef:g,attributes:_,listeners:v,transform:y,transition:b,isDragging:x}=(0,n.useSortable)({id:a,disabled:o}),S=(0,e.useId)(),C=!o&&d?{setActivatorNodeRef:g,descriptionId:S,onKeyDown:e=>{x||!e.shiftKey&&(e.code===`Space`||e.code===`Enter`)&&e.stopPropagation()}}:null,w={...p,transform:r.CSS.Translate.toString(y),transition:b,opacity:x?.5:1,cursor:o?void 0:`grab`},T=s,E=s===`th`?{...c===void 0?{}:{colSpan:c},...l===void 0?{}:{rowSpan:l}}:{};return(0,t.jsx)(i.Provider,{value:C,children:(0,t.jsxs)(T,{ref:h,className:f,style:w,...E,...o?{}:d?{..._,tabIndex:void 0,"aria-roledescription":void 0,"aria-describedby":void 0,"aria-disabled":void 0,"aria-pressed":void 0}:_,...o?{}:v,onKeyDown:o?void 0:e=>{(!d||e.code===`Space`)&&v?.onKeyDown?.(e)},role:s===`th`?`columnheader`:o?void 0:_.role,"aria-sort":u,children:[m,C&&(0,t.jsx)(`span`,{id:S,"aria-hidden":`true`,className:`sr-only`,children:`Shift+Space로 컬럼 이동을 시작하고 화살표로 이동한 뒤 Space 또는 Enter로 놓습니다.`})]})})}exports.SortableHeaderCell=o,exports.useSortableHeaderKeyboardDrag=a;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import { CSSProperties, ReactNode } from 'react';
|
|
1
|
+
import { CSSProperties, KeyboardEvent, ReactNode } from 'react';
|
|
2
|
+
interface SortableHeaderKeyboardDrag {
|
|
3
|
+
setActivatorNodeRef: (element: HTMLElement | null) => void;
|
|
4
|
+
descriptionId: string;
|
|
5
|
+
onKeyDown: (event: KeyboardEvent<HTMLButtonElement>) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const useSortableHeaderKeyboardDrag: () => SortableHeaderKeyboardDrag | null;
|
|
2
8
|
interface SortableHeaderCellProps {
|
|
3
9
|
id: string;
|
|
4
10
|
/**
|
|
@@ -14,6 +20,8 @@ interface SortableHeaderCellProps {
|
|
|
14
20
|
colSpan?: number;
|
|
15
21
|
/** `as="th"`일 때만 의미. 그룹과 평면 컬럼이 섞일 때 평면 컬럼은 rowSpan=2. */
|
|
16
22
|
rowSpan?: number;
|
|
23
|
+
"aria-sort"?: "ascending" | "descending";
|
|
24
|
+
hasSortButton?: boolean;
|
|
17
25
|
className?: string;
|
|
18
26
|
style?: CSSProperties;
|
|
19
27
|
children: ReactNode;
|
|
@@ -23,5 +31,5 @@ interface SortableHeaderCellProps {
|
|
|
23
31
|
* 5px 임계는 부모 DndContext의 PointerSensor에서 처리해서, 헤더 클릭(정렬)이나
|
|
24
32
|
* 리사이즈 핸들 mousedown은 방해하지 않아요.
|
|
25
33
|
*/
|
|
26
|
-
export declare function SortableHeaderCell({ id, disabled, as, colSpan, rowSpan, className, style, children, }: SortableHeaderCellProps): import("react").JSX.Element;
|
|
34
|
+
export declare function SortableHeaderCell({ id, disabled, as, colSpan, rowSpan, "aria-sort": ariaSort, hasSortButton, className, style, children, }: SortableHeaderCellProps): import("react").JSX.Element;
|
|
27
35
|
export {};
|
|
@@ -1,30 +1,58 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { createContext as e, useContext as t, useId as n } from "react";
|
|
2
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
3
|
+
import { useSortable as a } from "@dnd-kit/sortable";
|
|
4
|
+
import { CSS as o } from "@dnd-kit/utilities";
|
|
4
5
|
//#region src/components/table/components/SortableHeaderCell.tsx
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
} : {},
|
|
24
|
-
...
|
|
25
|
-
|
|
26
|
-
|
|
6
|
+
var s = e(null), c = () => t(s);
|
|
7
|
+
function l({ id: e, disabled: t = !1, as: c = "div", colSpan: l, rowSpan: u, "aria-sort": d, hasSortButton: f = !1, className: p, style: m, children: h }) {
|
|
8
|
+
let { setNodeRef: g, setActivatorNodeRef: _, attributes: v, listeners: y, transform: b, transition: x, isDragging: S } = a({
|
|
9
|
+
id: e,
|
|
10
|
+
disabled: t
|
|
11
|
+
}), C = n(), w = !t && f ? {
|
|
12
|
+
setActivatorNodeRef: _,
|
|
13
|
+
descriptionId: C,
|
|
14
|
+
onKeyDown: (e) => {
|
|
15
|
+
S || !e.shiftKey && (e.code === "Space" || e.code === "Enter") && e.stopPropagation();
|
|
16
|
+
}
|
|
17
|
+
} : null, T = {
|
|
18
|
+
...m,
|
|
19
|
+
transform: o.Translate.toString(b),
|
|
20
|
+
transition: x,
|
|
21
|
+
opacity: S ? .5 : 1,
|
|
22
|
+
cursor: t ? void 0 : "grab"
|
|
23
|
+
}, E = c, D = c === "th" ? {
|
|
24
|
+
...l === void 0 ? {} : { colSpan: l },
|
|
25
|
+
...u === void 0 ? {} : { rowSpan: u }
|
|
26
|
+
} : {};
|
|
27
|
+
return /* @__PURE__ */ r(s.Provider, {
|
|
28
|
+
value: w,
|
|
29
|
+
children: /* @__PURE__ */ i(E, {
|
|
30
|
+
ref: g,
|
|
31
|
+
className: p,
|
|
32
|
+
style: T,
|
|
33
|
+
...D,
|
|
34
|
+
...t ? {} : f ? {
|
|
35
|
+
...v,
|
|
36
|
+
tabIndex: void 0,
|
|
37
|
+
"aria-roledescription": void 0,
|
|
38
|
+
"aria-describedby": void 0,
|
|
39
|
+
"aria-disabled": void 0,
|
|
40
|
+
"aria-pressed": void 0
|
|
41
|
+
} : v,
|
|
42
|
+
...t ? {} : y,
|
|
43
|
+
onKeyDown: t ? void 0 : (e) => {
|
|
44
|
+
(!f || e.code === "Space") && y?.onKeyDown?.(e);
|
|
45
|
+
},
|
|
46
|
+
role: c === "th" ? "columnheader" : t ? void 0 : v.role,
|
|
47
|
+
"aria-sort": d,
|
|
48
|
+
children: [h, w && /* @__PURE__ */ r("span", {
|
|
49
|
+
id: C,
|
|
50
|
+
"aria-hidden": "true",
|
|
51
|
+
className: "sr-only",
|
|
52
|
+
children: "Shift+Space로 컬럼 이동을 시작하고 화살표로 이동한 뒤 Space 또는 Enter로 놓습니다."
|
|
53
|
+
})]
|
|
54
|
+
})
|
|
27
55
|
});
|
|
28
56
|
}
|
|
29
57
|
//#endregion
|
|
30
|
-
export {
|
|
58
|
+
export { l as SortableHeaderCell, c as useSortableHeaderKeyboardDrag };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,t,n=`tri`){return e?.key!==t||e.direction===null?{key:t,direction:`asc`}:e.direction===`asc`?{key:t,direction:`desc`}:n===`toggle`?{key:t,direction:`asc`}:null}function t(e,t){return e?.key===t?e.direction:null}function n(e){return e===`asc`?`ascending`:e===`desc`?`descending`:void 0}exports.ariaSort=n,exports.nextSort=e,exports.sortDirectionFor=t;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ColumnSort, SortDirection } from '../types.js';
|
|
2
|
+
export type SortCycle = "tri" | "toggle";
|
|
3
|
+
export declare function nextSort(current: ColumnSort | null, key: string, cycle?: SortCycle): ColumnSort | null;
|
|
4
|
+
export declare function sortDirectionFor(sort: ColumnSort | null, key: string): SortDirection;
|
|
5
|
+
export declare function ariaSort(direction: SortDirection): "ascending" | "descending" | undefined;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
//#region src/components/table/hooks/sort-state.ts
|
|
2
|
+
function e(e, t, n = "tri") {
|
|
3
|
+
return e?.key !== t || e.direction === null ? {
|
|
4
|
+
key: t,
|
|
5
|
+
direction: "asc"
|
|
6
|
+
} : e.direction === "asc" ? {
|
|
7
|
+
key: t,
|
|
8
|
+
direction: "desc"
|
|
9
|
+
} : n === "toggle" ? {
|
|
10
|
+
key: t,
|
|
11
|
+
direction: "asc"
|
|
12
|
+
} : null;
|
|
13
|
+
}
|
|
14
|
+
function t(e, t) {
|
|
15
|
+
return e?.key === t ? e.direction : null;
|
|
16
|
+
}
|
|
17
|
+
function n(e) {
|
|
18
|
+
return e === "asc" ? "ascending" : e === "desc" ? "descending" : void 0;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { n as ariaSort, e as nextSort, t as sortDirectionFor };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require("../column-group-utils.cjs"),t=require("../../../lib/column-preset-storage.cjs");let n=require("react");function r(e,t){let n=new Set(t),r=new Set(e),i=e.filter(e=>n.has(e)),a=t.filter(e=>!r.has(e)),o=[...i,...a];if(o.length===e.length){let t=!0;for(let n=0;n<o.length;n++)if(o[n]!==e[n]){t=!1;break}if(t)return e}return o}function i(e,t){return!e||e.columnOrder.length===0?{columnOrder:t,hiddenColumns:[],columnWidths:e?.columnWidths??{}}:{columnOrder:r(e.columnOrder,t),hiddenColumns:e.hiddenColumns??[],columnWidths:e.columnWidths??{}}}function a(e,t){if(e.columnOrder.length!==t.columnOrder.length)return!1;for(let n=0;n<e.columnOrder.length;n++)if(e.columnOrder[n]!==t.columnOrder[n])return!1;if(e.hiddenColumns.length!==t.hiddenColumns.length)return!1;let n=new Set(t.hiddenColumns);for(let t of e.hiddenColumns)if(!n.has(t))return!1;let r=Object.keys(e.columnWidths),i=Object.keys(t.columnWidths);if(r.length!==i.length)return!1;for(let n of r)if(e.columnWidths[n]!==t.columnWidths[n])return!1;return!0}function o({pageKey:o,columns:s,columnGroups:c,legacyStorageKey:l}){let u=(0,n.useMemo)(()=>e.getDefaultSlotOrder(e.buildColumnSlots(s,c)),[s,c]),[d,f]=(0,n.useState)(1),[p,m]=(0,n.useState)(u),[h,g]=(0,n.useState)([]),[_,v]=(0,n.useState)({}),[y,b]=(0,n.useState)({columnOrder:u,hiddenColumns:[],columnWidths:{}}),x=(0,n.useCallback)(e=>{b(e),m(e.columnOrder),g(e.hiddenColumns),v(e.columnWidths)},[]),S=(0,n.useRef)(void 0),C=(0,n.useRef)(l);return C.current=l,(0,n.useEffect)(()=>{if(!o){S.current=o,f(1),x({columnOrder:u,hiddenColumns:[],columnWidths:{}});return}let e=S.current!==o;if(S.current=o,e){let e=C.current;e&&t.ColumnPresetStorage.migrateFromLegacyStorage(o,e);let n=t.ColumnPresetStorage.getActivePreset(o),r=i(t.ColumnPresetStorage.getPresetColumns(o,n),u);f(n),x(r);return}m(e=>r(e,u)),b(e=>{let t=r(e.columnOrder,u);return t===e.columnOrder?e:{...e,columnOrder:t}})},[x,u,o]),{activePreset:d,columnOrder:p,hiddenColumns:h,columnWidths:_,isDirty:(0,n.useMemo)(()=>!a({columnOrder:p,hiddenColumns:h,columnWidths:_},y),[p,h,_,y]),hasPreset:(0,n.useCallback)(e=>o?t.ColumnPresetStorage.hasPreset(o,e):!1,[o]),applyPreset:(0,n.useCallback)(e=>{if(f(e),!o){x({columnOrder:u,hiddenColumns:[],columnWidths:{}});return}t.ColumnPresetStorage.setActivePreset(o,e),x(i(t.ColumnPresetStorage.getPresetColumns(o,e),u))},[x,u,o]),saveActivePreset:(0,n.useCallback)(()=>!o||p.length===0?!1:(t.ColumnPresetStorage.savePreset(o,d,{columnOrder:p,hiddenColumns:h,columnWidths:_}),b({columnOrder:p,hiddenColumns:h,columnWidths:_}),!0),[d,p,_,h,o]),saveAsPreset:(0,n.useCallback)(e=>o?p.length===0?!1:(t.ColumnPresetStorage.savePreset(o,e,{columnOrder:p,hiddenColumns:h,columnWidths:_}),t.ColumnPresetStorage.setActivePreset(o,e),f(e),b({columnOrder:p,hiddenColumns:h,columnWidths:_}),!0):(f(e),!1),[p,_,h,o]),resetActivePreset:(0,n.useCallback)(()=>{o&&t.ColumnPresetStorage.clearPreset(o,d),x({columnOrder:u,hiddenColumns:[],columnWidths:{}})},[d,x,u,o]),setColumnOrder:(0,n.useCallback)(e=>{m(e)},[]),setHiddenColumns:(0,n.useCallback)(e=>{g(e)},[]),setColumnWidths:(0,n.useCallback)(e=>{v(e)},[]),setColumnWidth:(0,n.useCallback)((e,t)=>{v(n=>{let r={...n};return t>0?r[e]=t:delete r[e],r})},[])}}exports.useColumnPresets=o;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PresetNumber } from '
|
|
2
|
-
import { TableColumn, TableColumnGroupMeta } from '../types';
|
|
1
|
+
import { PresetNumber } from '../../../lib/column-preset-storage.js';
|
|
2
|
+
import { TableColumn, TableColumnGroupMeta } from '../types.js';
|
|
3
3
|
export interface UseColumnPresetsOptions<T> {
|
|
4
4
|
/** localStorage 페이지 키. 미지정 시 메모리만 사용. */
|
|
5
5
|
pageKey?: string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("react");function t(e,t,n,r){if(e)return e;let i=t?.style.width.trim();if(i&&/^(?:\d+\.?\d*|\.\d+)px$/i.test(i)){let e=parseFloat(i);if(Number.isFinite(e))return e}let a=t?.getBoundingClientRect().width;if(a&&Number.isFinite(a)&&a>0)return a;let o=n?.getBoundingClientRect().width;return o&&Number.isFinite(o)&&o>0?o:r}function n({columns:n,defaultWidth:r=150,minWidth:i=50,maxWidth:a,tableRef:o,storageKey:s,controlledWidths:c,onColumnWidthsChange:l}){let u=c!==void 0,d=(0,e.useCallback)(()=>{if(u||!s)return{};try{let e=localStorage.getItem(s);if(e){let t=JSON.parse(e),n={};return Object.entries(t).forEach(([e,t])=>{typeof t==`number`&&t>=i&&(n[e]=t)}),n}}catch(e){console.warn(`[ColumnResize] Failed to load saved widths:`,e)}return{}},[u,s,i]),[f,p]=(0,e.useState)(()=>d()),m=u?c:f,h=(0,e.useCallback)(e=>{if(u){let t=typeof e==`function`?e(m):e;l?.(t);return}p(e)},[m,u,l]);(0,e.useEffect)(()=>{if(!u&&!(!s||Object.keys(f).length===0))try{localStorage.setItem(s,JSON.stringify(f))}catch(e){console.warn(`[ColumnResize] Failed to save widths:`,e)}},[f,u,s]);let g=(0,e.useRef)(null),_=(0,e.useRef)(null),v=(0,e.useCallback)(e=>{if(typeof e==`string`)return e;if(typeof e==`number`)return String(e);if(e==null)return``;if(Array.isArray(e))return e.map(e=>v(e)).join(``);if(typeof e==`object`&&`props`in e){let t=e.props;if(t?.children)return v(t.children)}return``},[]),y=(0,e.useCallback)(e=>{if(!_.current)return r;let t=n.find(t=>t.key===e)?.header,a=typeof t==`string`?t:v(t);_.current.textContent=a||e,_.current.style.fontSize=`14px`,_.current.style.fontWeight=`600`,_.current.style.padding=`0 24px`;let o=_.current.offsetWidth;return Math.max(i,o+20)},[n,v,r,i]);return{columnWidths:m,handleMouseDown:(0,e.useCallback)((e,n)=>{n.preventDefault(),n.stopPropagation();let s=o?.current?.querySelector(`colgroup col[data-col-key="${CSS.escape(e)}"]`)??null,c=t(m[e],s,n.currentTarget.closest(`th`),r);g.current={key:e,startX:n.clientX,startWidth:c};let l=o?.current??null,u=(l?parseFloat(l.style.width)||l.offsetWidth:0)-c,d=l?.parentElement?.clientWidth||1/0,f=Math.min(a??1/0,d),p=c,_=null,v=e=>{if(!g.current)return;let t=e.clientX-g.current.startX,n=Math.max(i,g.current.startWidth+t);p=Math.max(i,Math.min(n,f)),_===null&&(_=requestAnimationFrame(()=>{_=null,s&&(s.style.width=`${p}px`),l&&(l.style.width=`${u+p}px`)}))},y=()=>{_!==null&&cancelAnimationFrame(_);let e=g.current?.key;g.current=null,document.removeEventListener(`mousemove`,v),document.removeEventListener(`mouseup`,y),e&&h(t=>({...t,[e]:p}))};document.addEventListener(`mousemove`,v),document.addEventListener(`mouseup`,y)},[m,r,i,a,o,h]),handleDoubleClick:(0,e.useCallback)(()=>{},[]),getColumnWidth:(0,e.useCallback)((e,t)=>m[e]?`${m[e]}px`:t?typeof t==`number`?`${t}px`:t:`${y(e)}px`,[m,y]),measureRef:_}}exports.useColumnResize=n;
|
|
@@ -81,6 +81,18 @@ export interface UseColumnResizeReturn {
|
|
|
81
81
|
*/
|
|
82
82
|
measureRef: React.RefObject<HTMLDivElement | null>;
|
|
83
83
|
}
|
|
84
|
+
export declare function getResizeStartWidth(savedWidth: number | undefined, colEl: {
|
|
85
|
+
style: {
|
|
86
|
+
width: string;
|
|
87
|
+
};
|
|
88
|
+
getBoundingClientRect: () => {
|
|
89
|
+
width: number;
|
|
90
|
+
};
|
|
91
|
+
} | null, headerEl: {
|
|
92
|
+
getBoundingClientRect: () => {
|
|
93
|
+
width: number;
|
|
94
|
+
};
|
|
95
|
+
} | null, defaultWidth: number): number;
|
|
84
96
|
/**
|
|
85
97
|
* 컬럼 리사이즈 훅
|
|
86
98
|
*
|