@yamada-ui/react 2.0.10-dev-20260224132828 → 2.0.10-dev-20260226095744
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/dist/cjs/components/accordion/use-accordion.cjs.map +1 -1
- package/dist/cjs/components/airy/airy.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/use-autocomplete.cjs.map +1 -1
- package/dist/cjs/components/avatar/use-avatar.cjs.map +1 -1
- package/dist/cjs/components/button/button.cjs.map +1 -1
- package/dist/cjs/components/calendar/use-calendar.cjs.map +1 -1
- package/dist/cjs/components/checkbox/use-checkbox.cjs.map +1 -1
- package/dist/cjs/components/color-picker/use-color-picker.cjs.map +1 -1
- package/dist/cjs/components/date-picker/use-date-picker.cjs.map +1 -1
- package/dist/cjs/components/dropzone/use-dropzone.cjs.map +1 -1
- package/dist/cjs/components/field/field.cjs.map +1 -1
- package/dist/cjs/components/file-input/file-input.cjs.map +1 -1
- package/dist/cjs/components/flip/flip.cjs.map +1 -1
- package/dist/cjs/components/for/for.cjs.map +1 -1
- package/dist/cjs/components/highlight/highlight.cjs.map +1 -1
- package/dist/cjs/components/infinite-scroll-area/use-infinite-scroll.cjs.map +1 -1
- package/dist/cjs/components/loading/loading-provider.cjs.map +1 -1
- package/dist/cjs/components/menu/use-menu.cjs.map +1 -1
- package/dist/cjs/components/notice/use-notice.cjs.map +1 -1
- package/dist/cjs/components/pagination/use-pagination.cjs.map +1 -1
- package/dist/cjs/components/password-input/use-strength-meter.cjs.map +1 -1
- package/dist/cjs/components/picture/picture.cjs.map +1 -1
- package/dist/cjs/components/pin-input/use-pin-input.cjs.map +1 -1
- package/dist/cjs/components/radio/use-radio.cjs.map +1 -1
- package/dist/cjs/components/rating/use-rating.cjs.map +1 -1
- package/dist/cjs/components/resizable/use-resizable.cjs.map +1 -1
- package/dist/cjs/components/ripple/ripple.cjs.map +1 -1
- package/dist/cjs/components/rotate/rotate.cjs.map +1 -1
- package/dist/cjs/components/saturation-slider/use-saturation-slider.cjs.map +1 -1
- package/dist/cjs/components/scroll-area/use-scroll-area.cjs.map +1 -1
- package/dist/cjs/components/segmented-control/use-segmented-control.cjs.map +1 -1
- package/dist/cjs/components/select/use-select.cjs.map +1 -1
- package/dist/cjs/components/slider/slider.cjs.map +1 -1
- package/dist/cjs/components/slider/use-slider.cjs.map +1 -1
- package/dist/cjs/components/snacks/snacks.cjs.map +1 -1
- package/dist/cjs/components/switch/use-switch.cjs.map +1 -1
- package/dist/cjs/components/table/table.cjs.map +1 -1
- package/dist/cjs/components/textarea/use-autosize.cjs.map +1 -1
- package/dist/cjs/components/toggle/use-toggle-group.cjs.map +1 -1
- package/dist/cjs/core/components/use-component-style.cjs.map +1 -1
- package/dist/cjs/core/css/styles.cjs.map +1 -1
- package/dist/cjs/core/css/utils.cjs.map +1 -1
- package/dist/cjs/core/system/breakpoint.cjs.map +1 -1
- package/dist/cjs/core/system/color-mode-provider.cjs.map +1 -1
- package/dist/cjs/core/system/layer.cjs.map +1 -1
- package/dist/cjs/core/system/storage-script.cjs.map +1 -1
- package/dist/cjs/core/system/styled.cjs.map +1 -1
- package/dist/cjs/core/system/use-system-color-mode.cjs.map +1 -1
- package/dist/cjs/hooks/use-async/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-boolean/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-clickable/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-combobox/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-controllable-state/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-local-storage/index.cjs.map +1 -1
- package/dist/cjs/providers/i18n-provider/i18n-provider.cjs.map +1 -1
- package/dist/cjs/utils/context.cjs.map +1 -1
- package/dist/cjs/utils/store.cjs.map +1 -1
- package/dist/esm/components/accordion/use-accordion.js.map +1 -1
- package/dist/esm/components/airy/airy.js.map +1 -1
- package/dist/esm/components/autocomplete/use-autocomplete.js.map +1 -1
- package/dist/esm/components/avatar/use-avatar.js.map +1 -1
- package/dist/esm/components/button/button.js.map +1 -1
- package/dist/esm/components/calendar/use-calendar.js.map +1 -1
- package/dist/esm/components/checkbox/use-checkbox.js.map +1 -1
- package/dist/esm/components/color-picker/use-color-picker.js.map +1 -1
- package/dist/esm/components/date-picker/use-date-picker.js.map +1 -1
- package/dist/esm/components/dropzone/use-dropzone.js.map +1 -1
- package/dist/esm/components/field/field.js.map +1 -1
- package/dist/esm/components/file-input/file-input.js.map +1 -1
- package/dist/esm/components/flip/flip.js.map +1 -1
- package/dist/esm/components/for/for.js.map +1 -1
- package/dist/esm/components/highlight/highlight.js.map +1 -1
- package/dist/esm/components/infinite-scroll-area/use-infinite-scroll.js.map +1 -1
- package/dist/esm/components/loading/loading-provider.js.map +1 -1
- package/dist/esm/components/menu/use-menu.js.map +1 -1
- package/dist/esm/components/notice/use-notice.js.map +1 -1
- package/dist/esm/components/pagination/use-pagination.js.map +1 -1
- package/dist/esm/components/password-input/use-strength-meter.js.map +1 -1
- package/dist/esm/components/picture/picture.js.map +1 -1
- package/dist/esm/components/pin-input/use-pin-input.js.map +1 -1
- package/dist/esm/components/radio/use-radio.js.map +1 -1
- package/dist/esm/components/rating/use-rating.js.map +1 -1
- package/dist/esm/components/resizable/use-resizable.js.map +1 -1
- package/dist/esm/components/ripple/ripple.js.map +1 -1
- package/dist/esm/components/rotate/rotate.js.map +1 -1
- package/dist/esm/components/saturation-slider/use-saturation-slider.js.map +1 -1
- package/dist/esm/components/scroll-area/use-scroll-area.js.map +1 -1
- package/dist/esm/components/segmented-control/use-segmented-control.js.map +1 -1
- package/dist/esm/components/select/use-select.js.map +1 -1
- package/dist/esm/components/slider/slider.js.map +1 -1
- package/dist/esm/components/slider/use-slider.js.map +1 -1
- package/dist/esm/components/snacks/snacks.js.map +1 -1
- package/dist/esm/components/switch/use-switch.js.map +1 -1
- package/dist/esm/components/table/table.js.map +1 -1
- package/dist/esm/components/textarea/use-autosize.js.map +1 -1
- package/dist/esm/components/toggle/use-toggle-group.js.map +1 -1
- package/dist/esm/core/components/use-component-style.js.map +1 -1
- package/dist/esm/core/css/styles.js.map +1 -1
- package/dist/esm/core/css/utils.js.map +1 -1
- package/dist/esm/core/system/breakpoint.js.map +1 -1
- package/dist/esm/core/system/color-mode-provider.js.map +1 -1
- package/dist/esm/core/system/layer.js.map +1 -1
- package/dist/esm/core/system/storage-script.js.map +1 -1
- package/dist/esm/core/system/styled.js.map +1 -1
- package/dist/esm/core/system/use-system-color-mode.js.map +1 -1
- package/dist/esm/hooks/use-async/index.js.map +1 -1
- package/dist/esm/hooks/use-boolean/index.js.map +1 -1
- package/dist/esm/hooks/use-clickable/index.js.map +1 -1
- package/dist/esm/hooks/use-combobox/index.js.map +1 -1
- package/dist/esm/hooks/use-controllable-state/index.js.map +1 -1
- package/dist/esm/hooks/use-local-storage/index.js.map +1 -1
- package/dist/esm/providers/i18n-provider/i18n-provider.js.map +1 -1
- package/dist/esm/utils/context.js.map +1 -1
- package/dist/esm/utils/store.js.map +1 -1
- package/dist/types/components/accordion/accordion.d.ts +2 -4
- package/dist/types/components/accordion/accordion.style.d.ts +1 -1
- package/dist/types/components/accordion/use-accordion.d.ts +15 -15
- package/dist/types/components/airy/airy.d.ts +10 -11
- package/dist/types/components/alert/alert.d.ts +2 -5
- package/dist/types/components/alpha-slider/alpha-slider.d.ts +2 -3
- package/dist/types/components/aspect-ratio/aspect-ratio.d.ts +2 -2
- package/dist/types/components/autocomplete/autocomplete.d.ts +2 -4
- package/dist/types/components/autocomplete/autocomplete.style.d.ts +1 -1
- package/dist/types/components/autocomplete/use-autocomplete.d.ts +18 -20
- package/dist/types/components/avatar/avatar.d.ts +5 -5
- package/dist/types/components/avatar/avatar.style.d.ts +1 -1
- package/dist/types/components/avatar/use-avatar-group.d.ts +2 -2
- package/dist/types/components/avatar/use-avatar.d.ts +19 -19
- package/dist/types/components/badge/badge.d.ts +2 -2
- package/dist/types/components/bleed/bleed.d.ts +2 -2
- package/dist/types/components/blockquote/blockquote.d.ts +2 -2
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
- package/dist/types/components/breadcrumb/breadcrumb.style.d.ts +1 -1
- package/dist/types/components/breadcrumb/use-breadcrumb.d.ts +2 -2
- package/dist/types/components/button/button-group.d.ts +0 -1
- package/dist/types/components/button/button.d.ts +8 -9
- package/dist/types/components/button/icon-button.d.ts +2 -2
- package/dist/types/components/calendar/calendar.d.ts +2 -3
- package/dist/types/components/calendar/calendar.style.d.ts +2 -2
- package/dist/types/components/calendar/use-calendar.d.ts +12 -13
- package/dist/types/components/card/card.d.ts +2 -2
- package/dist/types/components/carousel/carousel.d.ts +2 -3
- package/dist/types/components/carousel/carousel.style.d.ts +2 -2
- package/dist/types/components/carousel/use-carousel.d.ts +3 -3
- package/dist/types/components/center/center.d.ts +2 -2
- package/dist/types/components/checkbox/checkbox-group.d.ts +0 -2
- package/dist/types/components/checkbox/checkbox.d.ts +3 -4
- package/dist/types/components/checkbox/use-checkbox-group.d.ts +2 -3
- package/dist/types/components/checkbox/use-checkbox.d.ts +8 -9
- package/dist/types/components/checkbox-card/checkbox-card-group.d.ts +0 -3
- package/dist/types/components/checkbox-card/checkbox-card.d.ts +3 -5
- package/dist/types/components/circle-progress/circle-progress.d.ts +2 -3
- package/dist/types/components/close-button/close-button.d.ts +2 -3
- package/dist/types/components/code/code.d.ts +2 -2
- package/dist/types/components/collapse/collapse.d.ts +2 -3
- package/dist/types/components/color-picker/color-picker.d.ts +2 -6
- package/dist/types/components/color-picker/use-color-picker.d.ts +12 -15
- package/dist/types/components/color-selector/color-selector.d.ts +2 -6
- package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
- package/dist/types/components/color-selector/use-color-selector.d.ts +3 -5
- package/dist/types/components/color-swatch/color-swatch.d.ts +2 -2
- package/dist/types/components/container/container.d.ts +2 -2
- package/dist/types/components/data-list/data-list.d.ts +2 -2
- package/dist/types/components/data-list/data-list.style.d.ts +1 -1
- package/dist/types/components/date-picker/date-picker.d.ts +2 -5
- package/dist/types/components/date-picker/use-date-picker.d.ts +21 -24
- package/dist/types/components/drawer/drawer.d.ts +2 -5
- package/dist/types/components/drawer/drawer.style.d.ts +2 -2
- package/dist/types/components/drawer/use-drawer.d.ts +0 -2
- package/dist/types/components/dropzone/dropzone.d.ts +4 -7
- package/dist/types/components/dropzone/use-dropzone.d.ts +4 -5
- package/dist/types/components/editable/editable.d.ts +4 -5
- package/dist/types/components/editable/use-editable.d.ts +2 -3
- package/dist/types/components/em/em.d.ts +2 -2
- package/dist/types/components/empty-state/empty-state.d.ts +2 -2
- package/dist/types/components/fade/fade.d.ts +2 -3
- package/dist/types/components/fade-scale/fade-scale.d.ts +0 -1
- package/dist/types/components/field/field.d.ts +4 -4
- package/dist/types/components/field/use-field-props.d.ts +3 -3
- package/dist/types/components/fieldset/fieldset.d.ts +3 -4
- package/dist/types/components/file-button/file-button.d.ts +2 -4
- package/dist/types/components/file-button/use-file-button.d.ts +18 -20
- package/dist/types/components/file-input/file-input.d.ts +8 -10
- package/dist/types/components/file-input/file-input.style.d.ts +1 -1
- package/dist/types/components/file-input/use-file-input.d.ts +15 -16
- package/dist/types/components/flex/flex.d.ts +2 -2
- package/dist/types/components/flip/flip.d.ts +12 -13
- package/dist/types/components/flip/flip.style.d.ts +1 -1
- package/dist/types/components/float/float.d.ts +2 -2
- package/dist/types/components/for/for.d.ts +8 -8
- package/dist/types/components/format/format-byte.d.ts +4 -4
- package/dist/types/components/format/format-date-time.d.ts +4 -4
- package/dist/types/components/format/format-number.d.ts +2 -2
- package/dist/types/components/format/use-format-byte.d.ts +0 -1
- package/dist/types/components/format/use-format-date-time.d.ts +0 -1
- package/dist/types/components/format/use-format-number.d.ts +0 -1
- package/dist/types/components/grid/grid-item.d.ts +2 -2
- package/dist/types/components/grid/grid.d.ts +2 -2
- package/dist/types/components/group/group.d.ts +2 -3
- package/dist/types/components/group/use-group.d.ts +2 -2
- package/dist/types/components/heading/heading.d.ts +2 -2
- package/dist/types/components/highlight/highlight.d.ts +4 -6
- package/dist/types/components/hue-slider/hue-slider.d.ts +3 -4
- package/dist/types/components/icon/icon.d.ts +5 -5
- package/dist/types/components/image/image.d.ts +2 -2
- package/dist/types/components/indicator/indicator.d.ts +4 -5
- package/dist/types/components/infinite-scroll-area/infinite-scroll-area.d.ts +2 -2
- package/dist/types/components/infinite-scroll-area/use-infinite-scroll.d.ts +2 -2
- package/dist/types/components/input/input-addon.d.ts +2 -2
- package/dist/types/components/input/input-element.d.ts +2 -2
- package/dist/types/components/input/input-group.d.ts +0 -2
- package/dist/types/components/input/input.d.ts +2 -3
- package/dist/types/components/kbd/kbd.d.ts +2 -2
- package/dist/types/components/link/link.d.ts +2 -2
- package/dist/types/components/link-box/link-box.d.ts +2 -2
- package/dist/types/components/list/list.d.ts +2 -2
- package/dist/types/components/list/list.style.d.ts +2 -2
- package/dist/types/components/loading/loading-provider.d.ts +3 -3
- package/dist/types/components/loading/loading.d.ts +3 -4
- package/dist/types/components/loading/use-loading-component.d.ts +0 -1
- package/dist/types/components/mark/mark.d.ts +2 -2
- package/dist/types/components/menu/menu.d.ts +2 -3
- package/dist/types/components/menu/menu.style.d.ts +2 -2
- package/dist/types/components/menu/use-menu.d.ts +17 -17
- package/dist/types/components/modal/modal.d.ts +2 -6
- package/dist/types/components/modal/modal.style.d.ts +2 -2
- package/dist/types/components/native-select/native-select.d.ts +2 -4
- package/dist/types/components/native-select/use-native-select.d.ts +0 -1
- package/dist/types/components/native-table/native-table.d.ts +4 -4
- package/dist/types/components/notice/notice.style.d.ts +1 -1
- package/dist/types/components/notice/use-notice.d.ts +4 -7
- package/dist/types/components/number-input/number-input.d.ts +2 -3
- package/dist/types/components/number-input/number-input.style.d.ts +1 -1
- package/dist/types/components/number-input/use-number-input.d.ts +0 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -3
- package/dist/types/components/pagination/pagination.style.d.ts +1 -1
- package/dist/types/components/pagination/use-pagination.d.ts +6 -6
- package/dist/types/components/password-input/password-input.d.ts +2 -3
- package/dist/types/components/password-input/strength-meter.d.ts +2 -2
- package/dist/types/components/password-input/use-password-input.d.ts +2 -3
- package/dist/types/components/password-input/use-strength-meter.d.ts +4 -4
- package/dist/types/components/picture/picture.d.ts +4 -5
- package/dist/types/components/pin-input/pin-input.d.ts +2 -4
- package/dist/types/components/pin-input/use-pin-input.d.ts +18 -19
- package/dist/types/components/popover/popover.d.ts +2 -3
- package/dist/types/components/progress/progress.d.ts +4 -4
- package/dist/types/components/progress/use-progress.d.ts +706 -706
- package/dist/types/components/radio/radio-group.d.ts +0 -2
- package/dist/types/components/radio/radio.d.ts +4 -5
- package/dist/types/components/radio/use-radio-group.d.ts +2 -3
- package/dist/types/components/radio/use-radio.d.ts +8 -9
- package/dist/types/components/radio-card/radio-card-group.d.ts +0 -3
- package/dist/types/components/radio-card/radio-card.d.ts +4 -6
- package/dist/types/components/rating/rating.style.d.ts +2 -2
- package/dist/types/components/rating/use-rating.d.ts +16 -17
- package/dist/types/components/reorder/reorder.d.ts +2 -3
- package/dist/types/components/reorder/reorder.style.d.ts +1 -1
- package/dist/types/components/reorder/use-reorder.d.ts +3 -3
- package/dist/types/components/resizable/resizable.d.ts +2 -2
- package/dist/types/components/resizable/resizable.style.d.ts +2 -2
- package/dist/types/components/resizable/use-resizable.d.ts +8 -8
- package/dist/types/components/ripple/ripple.d.ts +8 -9
- package/dist/types/components/ripple/use-ripple.d.ts +2 -2
- package/dist/types/components/rotate/rotate.d.ts +10 -11
- package/dist/types/components/saturation-slider/saturation-slider.d.ts +2 -2
- package/dist/types/components/saturation-slider/use-saturation-slider.d.ts +15 -16
- package/dist/types/components/scroll-area/scroll-area.d.ts +2 -2
- package/dist/types/components/scroll-area/use-scroll-area.d.ts +6 -6
- package/dist/types/components/segmented-control/segmented-control.d.ts +2 -3
- package/dist/types/components/segmented-control/segmented-control.style.d.ts +2 -2
- package/dist/types/components/segmented-control/use-segmented-control.d.ts +13 -14
- package/dist/types/components/select/select.d.ts +2 -4
- package/dist/types/components/select/select.style.d.ts +1 -1
- package/dist/types/components/select/use-select.d.ts +16 -18
- package/dist/types/components/separator/separator.d.ts +2 -2
- package/dist/types/components/simple-grid/simple-grid.d.ts +2 -3
- package/dist/types/components/skeleton/skeleton.d.ts +2 -2
- package/dist/types/components/slide/slide.d.ts +2 -3
- package/dist/types/components/slide-fade/slide-fade.d.ts +2 -3
- package/dist/types/components/slider/slider.d.ts +7 -7
- package/dist/types/components/slider/use-slider.d.ts +16 -17
- package/dist/types/components/snacks/snacks.d.ts +4 -6
- package/dist/types/components/snacks/use-snacks.d.ts +0 -1
- package/dist/types/components/stack/h-stack.d.ts +2 -2
- package/dist/types/components/stack/stack.d.ts +2 -2
- package/dist/types/components/stack/v-stack.d.ts +2 -2
- package/dist/types/components/stack/z-stack.d.ts +2 -2
- package/dist/types/components/stat/stat.d.ts +2 -2
- package/dist/types/components/status/status.d.ts +2 -2
- package/dist/types/components/steps/steps.d.ts +2 -2
- package/dist/types/components/steps/steps.style.d.ts +1 -1
- package/dist/types/components/steps/use-steps.d.ts +10 -10
- package/dist/types/components/switch/switch.d.ts +2 -2
- package/dist/types/components/switch/use-switch.d.ts +8 -9
- package/dist/types/components/table/table.d.ts +3 -5
- package/dist/types/components/tabs/tabs.d.ts +2 -2
- package/dist/types/components/tabs/use-tabs.d.ts +16 -16
- package/dist/types/components/tag/tag.d.ts +2 -2
- package/dist/types/components/tag/tag.style.d.ts +1 -1
- package/dist/types/components/text/text.d.ts +2 -2
- package/dist/types/components/textarea/textarea.d.ts +2 -4
- package/dist/types/components/textarea/use-autosize.d.ts +2 -2
- package/dist/types/components/timeline/timeline.d.ts +5 -5
- package/dist/types/components/timeline/timeline.style.d.ts +2 -2
- package/dist/types/components/toggle/toggle-group.d.ts +1 -1
- package/dist/types/components/toggle/toggle.d.ts +5 -7
- package/dist/types/components/toggle/use-toggle-group.d.ts +3 -3
- package/dist/types/components/toggle/use-toggle.d.ts +2 -3
- package/dist/types/components/tooltip/tooltip.d.ts +2 -4
- package/dist/types/components/visually-hidden/visually-hidden.d.ts +2 -2
- package/dist/types/components/wrap/wrap.d.ts +2 -3
- package/dist/types/core/components/create-component.d.ts +9 -7
- package/dist/types/core/components/index.types.d.ts +1 -0
- package/dist/types/core/components/use-component-style.d.ts +3 -1
- package/dist/types/core/components/utils.d.ts +1 -0
- package/dist/types/core/constant.d.ts +1 -0
- package/dist/types/core/css/calc.d.ts +1 -0
- package/dist/types/core/css/config.d.ts +1 -0
- package/dist/types/core/css/css.d.ts +1 -0
- package/dist/types/core/css/index.types.d.ts +2 -1
- package/dist/types/core/css/styles.d.ts +220 -219
- package/dist/types/core/css/token.d.ts +1 -0
- package/dist/types/core/css/use-css.d.ts +1 -0
- package/dist/types/core/css/utils.d.ts +3 -1
- package/dist/types/core/generated-theme-tokens.types.d.ts +2 -1
- package/dist/types/core/index.d.ts +2 -0
- package/dist/types/core/system/breakpoint.d.ts +3 -3
- package/dist/types/core/system/color-mode-provider.d.ts +4 -4
- package/dist/types/core/system/config.d.ts +1 -0
- package/dist/types/core/system/factory.d.ts +1 -0
- package/dist/types/core/system/index.types.d.ts +7 -6
- package/dist/types/core/system/layer.d.ts +1 -1
- package/dist/types/core/system/storage-script.d.ts +5 -5
- package/dist/types/core/system/styled.d.ts +5 -4
- package/dist/types/core/system/system-provider.d.ts +2 -2
- package/dist/types/core/system/use-system-color-mode.d.ts +1 -1
- package/dist/types/core/system/var.d.ts +2 -0
- package/dist/types/hooks/use-async/index.d.ts +13 -13
- package/dist/types/hooks/use-async-callback/index.d.ts +0 -1
- package/dist/types/hooks/use-boolean/index.d.ts +1 -1
- package/dist/types/hooks/use-breakpoint/use-breakpoint-state.d.ts +2 -2
- package/dist/types/hooks/use-clickable/index.d.ts +4 -4
- package/dist/types/hooks/use-combobox/index.d.ts +1 -2
- package/dist/types/hooks/use-controllable-state/index.d.ts +2 -2
- package/dist/types/hooks/use-descendants/index.d.ts +2 -2
- package/dist/types/hooks/use-field-sizing/index.d.ts +2 -2
- package/dist/types/hooks/use-hover/index.d.ts +2 -2
- package/dist/types/hooks/use-local-storage/index.d.ts +1 -1
- package/dist/types/hooks/use-popper/index.d.ts +2 -2
- package/dist/types/hooks/use-resize-observer/index.d.ts +3 -3
- package/dist/types/index.d.ts +0 -98
- package/dist/types/providers/i18n-provider/i18n-provider.d.ts +4 -4
- package/dist/types/providers/ui-provider/ui-provider.d.ts +2 -3
- package/dist/types/utils/children.d.ts +2 -2
- package/dist/types/utils/context.d.ts +3 -3
- package/dist/types/utils/store.d.ts +2 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.cjs","names":["createComponent","useI18n","useControllableState","header","Checkbox","mergeProps","table","cellMap","el","focusRingStyle","SortingIcon: FC<SortingIconProps>","ChevronUpIcon","ChevronsUpDownIcon","styled","ResizableTrigger: FC<ResizableTriggerProps>","TruncatedText: FC<TruncatedTextProps>"],"sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n AccessorFn,\n Cell,\n CellContext,\n ColumnDef,\n ColumnDefTemplate,\n ColumnFiltersColumnDef,\n ColumnFiltersState,\n ColumnMeta,\n ColumnPinningColumnDef,\n ColumnSizingColumnDef,\n GlobalFilterColumnDef,\n GroupingColumnDef,\n Header,\n HeaderContext,\n HeaderGroup,\n OnChangeFn,\n SortingState as OriginalSortingState,\n PaginationState,\n Table as ReactTable,\n Row,\n RowData,\n RowSelectionState,\n SortDirection,\n SortingColumnDef,\n TableOptions,\n VisibilityColumnDef,\n} from \"@tanstack/react-table\"\nimport type { FC, FocusEvent, KeyboardEvent, ReactElement } from \"react\"\nimport type { CSSProps, GenericsComponent, HTMLStyledProps } from \"../../core\"\nimport type { ReactNodeOrFunction, TransformProps } from \"../../utils\"\nimport type { CheckboxProps } from \"../checkbox\"\nimport {\n createColumnHelper,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { useMemo, useRef } from \"react\"\nimport { createComponent, focusRingStyle, mergeProps, styled } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n dataAttr,\n isFunction,\n runIfFn,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { Checkbox } from \"../checkbox\"\nimport { ChevronsUpDownIcon, ChevronUpIcon } from \"../icon\"\nimport { NativeTable } from \"../native-table\"\n\ndeclare module \"@tanstack/react-table\" {\n interface ColumnDefExtensions<TData extends RowData, TValue = unknown>\n extends\n VisibilityColumnDef,\n ColumnPinningColumnDef,\n ColumnFiltersColumnDef<TData>,\n GlobalFilterColumnDef,\n SortingColumnDef<TData>,\n GroupingColumnDef<TData, TValue>,\n ColumnSizingColumnDef {}\n\n interface ColumnDefBase<TData extends RowData, TValue = unknown>\n extends\n ColumnDefExtensions<TData, TValue>,\n Pick<CSSProps, \"lineClamp\" | \"truncated\">,\n Pick<NativeTable.TdProps, \"numeric\"> {\n cell?: ColumnDefTemplate<CellContext<TData, TValue>>\n footer?: ColumnDefTemplate<HeaderContext<TData, TValue>>\n getUniqueValues?: AccessorFn<TData, unknown[]>\n meta?: ColumnMeta<TData, TValue>\n cellProps?: NativeTable.TdProps\n footerProps?: NativeTable.ThProps\n headerProps?: NativeTable.ThProps\n }\n}\n\nexport { createColumnHelper }\nexport type {\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n RowSelectionState,\n SortDirection,\n}\n\nfunction getMergeHeaderGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n const columnsIds = new Set()\n\n return headerGroups.map((headerGroup, depth, { length: fullDepth }) => {\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !columnsIds.has(header.column.id))\n .map((header) => {\n columnsIds.add(header.column.id)\n\n return header.isPlaceholder\n ? { ...header, isPlaceholder: false, rowSpan: fullDepth - depth }\n : { ...header, rowSpan: 1 }\n }),\n }\n })\n}\n\nfunction getMergeFooterGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n return headerGroups.map((headerGroup, depth) => {\n const nextHeaderGroups = headerGroups.slice(depth + 1)\n\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !header.isPlaceholder)\n .map((header) => {\n if (nextHeaderGroups.length === 0) return header\n\n const rowSpan = nextHeaderGroups.reduce((acc, nextHeaderGroup) => {\n const hasNextHeader = nextHeaderGroup.headers.some(\n (nextHeader) => nextHeader.column.id === header.column.id,\n )\n\n return acc + (hasNextHeader ? 1 : 0)\n }, 1)\n\n return { ...header, rowSpan }\n }),\n }\n })\n}\n\nexport interface ColumnSort<Y extends RowData> {\n id: keyof Y\n desc: boolean\n}\nexport type SortingState<Y extends RowData> = ColumnSort<Y>[]\n\ninterface ComponentContext extends Pick<\n TableProps<any>,\n | \"columnResizeMode\"\n | \"resizableTriggerProps\"\n | \"sortingIcon\"\n | \"sortingIconProps\"\n> {\n table: ReactTable<any>\n}\n\ninterface OmittedTableOptions<Y extends RowData> extends Omit<\n TableOptions<Y>,\n | \"getCoreRowModel\"\n | \"onColumnFiltersChange\"\n | \"onPaginationChange\"\n | \"onSortingChange\"\n> {}\n\ninterface PickedNativeTableProps extends Pick<\n NativeTable.RootProps,\n | \"highlightOnHover\"\n | \"highlightOnSelected\"\n | \"layout\"\n | \"scrollAreaProps\"\n | \"size\"\n | \"stickyFooter\"\n | \"stickyHeader\"\n | \"striped\"\n | \"variant\"\n | \"withBorder\"\n | \"withColumnBorders\"\n | \"withScrollArea\"\n> {}\n\nexport interface TableProps<Y extends RowData>\n extends\n OmittedTableOptions<Y>,\n PickedNativeTableProps,\n Pick<CSSProps, \"colorScheme\" | \"lineClamp\" | \"truncated\"> {\n /**\n * The column filters state of the table.\n */\n columnFilters?: ColumnFiltersState\n /**\n * The default column filters state of the table.\n */\n defaultColumnFilters?: ColumnFiltersState\n /**\n * The default pagination state of the table.\n */\n defaultPagination?: PaginationState\n /**\n * The default row selection state of the table.\n */\n defaultRowSelection?: RowSelectionState\n /**\n * The default sorting state of the table.\n */\n defaultSorting?: SortingState<Y>\n /**\n * If `true`, the table width will be automatically resized to the content.\n *\n * @default false\n */\n enableAutoResizeTableWidth?: boolean\n /**\n * If `true`, the keyboard navigation will be enabled.\n *\n * @default true\n */\n enableKeyboardNavigation?: boolean\n /**\n * If `true`, the pagination will be enabled.\n *\n * @default false\n */\n enablePagination?: boolean\n /**\n * The footer of the table.\n */\n footer?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The header of the table.\n */\n header?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The initial focusable cell of the table.\n *\n * @default {rowIndex: 0, colIndex: 0}\n */\n initialFocusableCell?: { colIndex: number; rowIndex: number }\n /**\n * The pagination state of the table.\n */\n pagination?: PaginationState\n /**\n * The row selection state of the table.\n */\n rowSelection?: RowSelectionState\n /**\n * If `true`, the row will be selected when the row is clicked.\n *\n * @default false\n */\n selectOnClickRow?: boolean\n /**\n * The sorting state of the table.\n */\n sorting?: SortingState<Y>\n /**\n * The sorting icon of the table.\n */\n sortingIcon?: ReactNodeOrFunction<false | SortDirection>\n /**\n * If `true`, the table will have a checkbox column.\n *\n * @default true\n */\n withCheckbox?: boolean\n /**\n * If `true`, the table will have a checkbox in the footer.\n *\n * @default false\n */\n withFooterCheckbox?: boolean\n /**\n * If `true`, the table will have footer groups.\n *\n * @default false\n */\n withFooterGroups?: boolean\n /**\n * The props for the table cell.\n */\n cellProps?: TransformProps<NativeTable.TdProps, Cell<Y, unknown>>\n /**\n * The props for the checkbox.\n */\n checkboxProps?: CheckboxProps\n /**\n * The props for the table footer group.\n */\n footerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table footer.\n */\n footerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the table header checkbox.\n */\n headerCheckboxProps?: TransformProps<CheckboxProps, Header<Y, unknown>>\n /**\n * The props for the table header group.\n */\n headerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table header.\n */\n headerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the resizable trigger.\n */\n resizableTriggerProps?: TransformProps<\n Omit<ResizableTriggerProps, \"resizing\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table row checkbox.\n */\n rowCheckboxProps?: TransformProps<CheckboxProps, Row<Y>>\n /**\n * The props for the table row.\n */\n rowProps?: TransformProps<NativeTable.TrProps, Row<Y>>\n /**\n * The props for the sorting icon.\n */\n sortingIconProps?: TransformProps<\n Omit<SortingIconProps, \"sorted\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table.\n */\n tableProps?: NativeTable.RootProps\n /**\n * The props for the table tbody.\n */\n tbodyProps?: NativeTable.TbodyProps\n /**\n * The props for the table tfoot.\n */\n tfootProps?: NativeTable.TfootProps\n /**\n * The props for the table thead.\n */\n theadProps?: NativeTable.TheadProps\n /**\n * The callback invoked when the column filters state changes.\n */\n onColumnFiltersChange?: (columnFilters: ColumnFiltersState) => void\n /**\n * The callback invoked when the pagination state changes.\n */\n onPaginationChange?: (pagination: PaginationState) => void\n /**\n * The callback invoked when the row is clicked.\n */\n onRowClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the row is double clicked.\n */\n onRowDoubleClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the sorting state changes.\n */\n onSortingChange?: (sorting: SortingState<Y>) => void\n}\n\nconst {\n ComponentContext,\n PropsContext: TablePropsContext,\n useComponentContext,\n usePropsContext: useTablePropsContext,\n withContext,\n} = createComponent<TableProps<any>, any, ComponentContext>(\"table\")\n\nexport { TablePropsContext, useTablePropsContext }\n\n/**\n * `Table` is a table component equipped with column sorting, row selection, and click event features.\n *\n * @see https://yamada-ui.com/docs/components/table\n */\nexport const Table = withContext(\n <Y extends RowData>({\n colorScheme,\n size,\n variant,\n columnFilters: columnFiltersProp,\n columnResizeMode = \"onChange\",\n columns: columnsProp,\n data,\n defaultColumnFilters,\n defaultPagination = { pageIndex: 0, pageSize: 20 },\n defaultRowSelection = {},\n defaultSorting,\n enableAutoResizeTableWidth = false,\n enableColumnResizing = false,\n enableKeyboardNavigation = true,\n enablePagination = false,\n enableRowSelection = false,\n footer,\n header,\n highlightOnHover = !!enableRowSelection,\n highlightOnSelected = !!enableRowSelection,\n initialFocusableCell = { colIndex: 0, rowIndex: 0 },\n layout,\n lineClamp,\n manualPagination,\n pagination: paginationProp,\n rowCount: totalRowCount,\n rowSelection: rowSelectionProp,\n selectOnClickRow = false,\n sortDescFirst = false,\n sorting: sortingProp,\n sortingIcon,\n state,\n stickyFooter,\n stickyHeader,\n striped,\n truncated,\n withBorder,\n withCheckbox = true,\n withColumnBorders,\n withFooterCheckbox = false,\n withFooterGroups = false,\n withScrollArea,\n cellProps,\n checkboxProps,\n footerGroupProps,\n footerProps,\n headerCheckboxProps,\n headerGroupProps,\n headerProps,\n resizableTriggerProps,\n rowCheckboxProps,\n rowProps,\n scrollAreaProps,\n sortingIconProps,\n tableProps,\n tbodyProps,\n tfootProps,\n theadProps,\n onColumnFiltersChange: onColumnFiltersChangeProp,\n onPaginationChange: onPaginationChangeProp,\n onRowClick,\n onRowDoubleClick,\n onRowSelectionChange: onRowSelectionChangeProp,\n onSortingChange: onSortingChangeProp,\n ...rest\n }: TableProps<Y>) => {\n const { t } = useI18n(\"table\")\n const initialFocus = useRef<boolean>(false)\n const ref = useRef<HTMLTableElement>(null)\n const focusedCell = useRef<null | { colIndex: number; rowIndex: number }>(\n null,\n )\n const [rowSelection, onRowSelectionChange] = useControllableState({\n defaultValue: defaultRowSelection,\n value: rowSelectionProp,\n onChange: onRowSelectionChangeProp,\n })\n const [sorting, onSortingChange] = useControllableState({\n defaultValue: defaultSorting,\n value: sortingProp,\n onChange: onSortingChangeProp,\n })\n const [pagination, onPaginationChange] = useControllableState({\n defaultValue: defaultPagination,\n value: paginationProp,\n onChange: onPaginationChangeProp,\n })\n const [columnFilters, onColumnFiltersChange] = useControllableState({\n defaultValue: defaultColumnFilters,\n value: columnFiltersProp,\n onChange: onColumnFiltersChangeProp,\n })\n const columns = useMemo(() => {\n if (!enableRowSelection || !withCheckbox) return columnsProp\n\n const clonedColumns = [...columnsProp]\n\n const header = ({ header, table }: HeaderContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: table.getIsAllRowsSelected(),\n indeterminate: table.getIsSomeRowsSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select all rows\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: table.getToggleAllRowsSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(headerCheckboxProps, header) ?? {},\n )()}\n />\n )\n }\n\n const cell = ({ row }: CellContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: row.getIsSelected(),\n disabled: !row.getCanSelect(),\n indeterminate: row.getIsSomeSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select row\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: row.getToggleSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(rowCheckboxProps, row) ?? {},\n )()}\n />\n )\n }\n\n clonedColumns.unshift({\n id: \"select\",\n cell,\n header,\n ...(withFooterCheckbox\n ? { footer: header }\n : { footerProps: { \"aria-hidden\": \"true\" } }),\n cellProps: { verticalAlign: \"middle\" },\n headerProps: { w: \"calc({spaces.4} + {space-x} * 2)\" },\n })\n\n return clonedColumns\n }, [\n checkboxProps,\n columnsProp,\n enableRowSelection,\n headerCheckboxProps,\n rowCheckboxProps,\n t,\n withCheckbox,\n withFooterCheckbox,\n ])\n const table = useReactTable<Y>({\n columnResizeMode,\n columns,\n data,\n enableColumnResizing,\n enableRowSelection,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualPagination,\n rowCount: totalRowCount,\n sortDescFirst,\n state: {\n columnFilters,\n pagination: enablePagination ? pagination : undefined,\n rowSelection,\n sorting: sorting as OriginalSortingState,\n ...state,\n },\n onColumnFiltersChange,\n onPaginationChange,\n onRowSelectionChange,\n onSortingChange: onSortingChange as OnChangeFn<OriginalSortingState>,\n ...(enablePagination\n ? { getPaginationRowModel: getPaginationRowModel() }\n : {}),\n ...rest,\n })\n const headerGroups = table.getHeaderGroups()\n const mergedHeaderGroups = getMergeHeaderGroups(headerGroups)\n const rows = table.getRowModel().rows\n const footerGroups = table.getFooterGroups()\n const mergedFooterGroups = getMergeFooterGroups(\n withFooterGroups ? footerGroups : [],\n )\n const headerGroupCount = headerGroups.length\n const rowCount = rows.length\n const colCount = table.getAllLeafColumns().length\n const maxColIndex = colCount - 1\n const pageIndex = enablePagination\n ? table.getState().pagination.pageIndex\n : 0\n const cellMap = useMemo(() => {\n const cellMap = new Map<string, string>()\n\n if (!enableKeyboardNavigation) return cellMap\n\n const insertCellMap = (\n id: string,\n colSpan: number,\n rowSpan: number,\n colIndex: number,\n rowIndex: number,\n ) => {\n for (let i = 0; i < colSpan; i++) {\n cellMap.set(`${colIndex + i}-${rowIndex}`, `${colIndex}-${rowIndex}`)\n }\n\n for (let i = 1; i < rowSpan; i++) {\n cellMap.set(`${colIndex}-${rowIndex + i}`, `${colIndex}-${rowIndex}`)\n }\n }\n\n const insertCellMapByHeaderGroup = (\n headerGroup: HeaderGroup<Y>,\n rowIndex: number,\n ) => {\n let placeholderCount = 0\n\n headerGroup.headers.forEach((header) => {\n const colSpan = header.colSpan || 1\n const rowSpan = header.rowSpan || 1\n const colIndex = header.index + placeholderCount\n\n placeholderCount += colSpan - 1\n\n insertCellMap(header.id, colSpan, rowSpan, colIndex, rowIndex)\n })\n }\n\n mergedHeaderGroups.forEach((headerGroup, rowIndex) => {\n insertCellMapByHeaderGroup(headerGroup, rowIndex)\n })\n\n rows.forEach((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n row.getVisibleCells().forEach((cell) => {\n const colIndex = cell.column.getIndex()\n\n insertCellMap(cell.id, 1, 1, colIndex, rowIndex)\n })\n })\n\n mergedFooterGroups.forEach((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n insertCellMapByHeaderGroup(footerGroup, rowIndex)\n })\n\n return cellMap\n }, [\n enableKeyboardNavigation,\n headerGroupCount,\n mergedFooterGroups,\n mergedHeaderGroups,\n rows,\n rowCount,\n ])\n const context = useMemo(\n () => ({\n columnResizeMode,\n sortingIcon,\n table,\n resizableTriggerProps,\n sortingIconProps,\n }),\n [\n columnResizeMode,\n sortingIcon,\n sortingIconProps,\n resizableTriggerProps,\n table,\n ],\n )\n const getCell = (\n evOrEl:\n | Element\n | FocusEvent<HTMLTableElement>\n | KeyboardEvent<HTMLTableElement>\n | null\n | undefined,\n ) => {\n if (!evOrEl) return\n\n const el =\n evOrEl instanceof HTMLElement\n ? evOrEl.closest(\"th, td\")\n : \"target\" in evOrEl && evOrEl.target instanceof HTMLElement\n ? evOrEl.target.closest(\"th, td\")\n : null\n\n if (!(el instanceof HTMLTableCellElement)) return\n\n const { colindex, rowindex } = el.dataset\n const { colSpan, rowSpan } = el\n\n if (!colindex || !rowindex) return\n\n const colIndex = parseInt(colindex)\n const rowIndex = parseInt(rowindex)\n\n return { colIndex, colSpan, el, rowIndex, rowSpan }\n }\n const getShouldFocusCell = (colIndex: number, rowIndex: number) => {\n const [trulyColIndex, trulyRowIndex] =\n cellMap.get(`${colIndex}-${rowIndex}`)?.split(\"-\") ?? []\n\n if (!trulyColIndex || !trulyRowIndex) return\n\n const targetEl = ref.current?.querySelector(\n `[data-colindex=\"${trulyColIndex}\"][data-rowindex=\"${trulyRowIndex}\"]`,\n )\n\n if (!targetEl || !(targetEl instanceof HTMLTableCellElement)) return\n\n return targetEl\n }\n const removeTabIndex = (el: Element | null | undefined) => {\n if (!el || !(el instanceof HTMLElement)) return\n\n el.tabIndex = -1\n el.querySelectorAll(\"[data-focusable]\").forEach((el) => {\n if (el instanceof HTMLElement) el.tabIndex = -1\n })\n }\n const onCellFocus = (\n el: HTMLTableCellElement | null | undefined,\n colIndex: number,\n rowIndex: number,\n ) => {\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (!targetEl) return\n\n focusedCell.current = { colIndex, rowIndex }\n\n removeTabIndex(el)\n\n const shouldFocusEl =\n targetEl.querySelector(\"[data-focusable]\") ?? targetEl\n\n if (shouldFocusEl instanceof HTMLElement) {\n shouldFocusEl.tabIndex = 0\n shouldFocusEl.focus()\n }\n }\n const onFocus = (ev: FocusEvent<HTMLTableElement>) => {\n if (initialFocus.current) return\n\n initialFocus.current = true\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex)\n }\n const onKeyDown = (ev: KeyboardEvent<HTMLTableElement>) => {\n if (!enableKeyboardNavigation) return\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n runKeyAction(ev, {\n ArrowDown: () =>\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex + cell.rowSpan),\n ArrowLeft: () => onCellFocus(cell.el, cell.colIndex - 1, cell.rowIndex),\n ArrowRight: () =>\n onCellFocus(cell.el, cell.colIndex + cell.colSpan, cell.rowIndex),\n ArrowUp: () => onCellFocus(cell.el, cell.colIndex, cell.rowIndex - 1),\n End: () => onCellFocus(cell.el, maxColIndex, cell.rowIndex),\n Home: () => onCellFocus(cell.el, 0, cell.rowIndex),\n ...(enablePagination\n ? {\n PageDown: () => {\n if (!table.getCanNextPage()) return\n\n table.setPageIndex(pageIndex + 1)\n },\n PageUp: () => {\n if (!table.getCanPreviousPage()) return\n\n table.setPageIndex(pageIndex - 1)\n },\n }\n : {}),\n })\n }\n const getTabIndex = (colIndex: number, rowIndex: number) => {\n if (!enableKeyboardNavigation) return undefined\n\n return colIndex === initialFocusableCell.colIndex &&\n rowIndex === initialFocusableCell.rowIndex\n ? 0\n : undefined\n }\n\n useUpdateEffect(() => {\n if (!enableKeyboardNavigation) return\n\n const { colIndex, rowIndex } = focusedCell.current ?? initialFocusableCell\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (targetEl) targetEl.tabIndex = 0\n }, [pageIndex, enableKeyboardNavigation])\n\n return (\n <ComponentContext value={context}>\n {header ? runIfFn(header, table) : null}\n\n <NativeTable.Root\n {...mergeProps(\n {\n ref,\n style:\n enableColumnResizing && enableAutoResizeTableWidth\n ? { width: table.getCenterTotalSize() }\n : {},\n colorScheme,\n size,\n variant,\n \"aria-colcount\": colCount,\n \"aria-multiselectable\": enableRowSelection ? \"true\" : undefined,\n \"aria-rowcount\": totalRowCount || data.length,\n highlightOnHover,\n highlightOnSelected,\n layout,\n role: \"grid\",\n stickyFooter,\n stickyHeader,\n striped,\n withBorder,\n withColumnBorders,\n withScrollArea,\n scrollAreaProps,\n onFocus,\n onKeyDown,\n },\n tableProps ?? {},\n )()}\n >\n <NativeTable.Thead role=\"rowgroup\" {...theadProps}>\n {mergedHeaderGroups.map((headerGroup, rowIndex) => {\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={headerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(headerGroupProps, headerGroup)}\n >\n {headerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const canSort = header.column.getCanSort()\n const sorted = header.column.getIsSorted()\n const canResize = header.column.getCanResize()\n const resizing = header.column.getIsResizing()\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Th\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n aria-sort={\n sorted\n ? sorted === \"asc\"\n ? \"ascending\"\n : \"descending\"\n : \"none\"\n }\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n pe={\n canSort\n ? \"calc((1rem * {lineHeights.moderate}) + {space-x})\"\n : undefined\n }\n position=\"relative\"\n role=\"columnheader\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n style: enableColumnResizing\n ? { width: header.getSize() }\n : {},\n },\n runIfFn(headerProps, header) ?? {},\n columnDef.headerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n\n {canSort ? (\n <SortingIcon\n sorted={sorted}\n onClick={header.column.getToggleSortingHandler()}\n />\n ) : null}\n\n {canResize ? (\n <ResizableTrigger\n resizing={resizing}\n onDoubleClick={header.column.resetSize}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n />\n ) : null}\n </NativeTable.Th>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Thead>\n\n <NativeTable.Tbody role=\"rowgroup\" {...tbodyProps}>\n {rows.map((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n const selected = !!rowSelection[row.id]\n const disabled =\n isFunction(enableRowSelection) && !enableRowSelection(row)\n\n return (\n <NativeTable.Tr\n id={row.id}\n key={row.id}\n aria-disabled={ariaAttr(disabled)}\n aria-rowindex={rowIndex + 1}\n aria-selected={ariaAttr(selected)}\n data-disabled={dataAttr(disabled)}\n data-selected={dataAttr(selected)}\n role=\"row\"\n {...mergeProps(\n {\n onClick:\n !disabled && selectOnClickRow\n ? () => row.toggleSelected(!selected)\n : undefined,\n },\n {\n onClick: !disabled ? () => onRowClick?.(row) : undefined,\n onDoubleClick: !disabled\n ? () => onRowDoubleClick?.(row)\n : undefined,\n },\n runIfFn(rowProps, row) ?? {},\n )()}\n >\n {row.getVisibleCells().map((cell) => {\n const { columnDef } = cell.column\n const colIndex = cell.column.getIndex()\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )\n\n return (\n <NativeTable.Td\n key={cell.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(cellProps, cell) ?? {},\n columnDef.cellProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tbody>\n\n {withFooterGroups ? (\n <NativeTable.Tfoot role=\"rowgroup\" {...tfootProps}>\n {mergedFooterGroups.map((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={footerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(footerGroupProps, footerGroup)}\n >\n {footerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.footer,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Td\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(footerProps, header) ?? {},\n columnDef.footerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tfoot>\n ) : null}\n </NativeTable.Root>\n\n {footer ? runIfFn(footer, table) : null}\n </ComponentContext>\n )\n },\n)() as GenericsComponent<{\n <Y extends RowData>(props: TableProps<Y>): ReactElement\n}>\n\ninterface SortingIconProps extends HTMLStyledProps<\"button\"> {\n sorted: false | SortDirection\n}\n\nconst SortingIcon: FC<SortingIconProps> = ({ sorted, ...rest }) => {\n const { t } = useI18n(\"table\")\n const { sortingIcon, sortingIconProps = {} } = useComponentContext()\n const Icon = sorted ? ChevronUpIcon : ChevronsUpDownIcon\n\n return (\n <styled.button\n type=\"button\"\n layerStyle=\"ghost\"\n colorScheme=\"mono\"\n aria-label={t(\n sorted\n ? sorted === \"desc\"\n ? \"Sort descending\"\n : \"Sort ascending\"\n : \"Clear sorting\",\n )}\n data-focusable\n aspectRatio=\"1\"\n cursor=\"pointer\"\n display=\"center\"\n focusVisibleRing=\"none\"\n h=\"calc(1em * {lineHeights.moderate})\"\n position=\"absolute\"\n right=\"{space-x}\"\n rounded=\"l1\"\n tabIndex={-1}\n top=\"50%\"\n transform=\"translateY(-50%)\"\n transitionDuration=\"moderate\"\n transitionProperty=\"common\"\n _hover={{ layerStyle: \"ghost.hover\" }}\n {...mergeProps(rest, sortingIconProps)()}\n >\n {runIfFn(sortingIcon, sorted) ?? (\n <Icon transform={`rotate(${sorted === \"desc\" ? 180 : 0}deg)`} />\n )}\n </styled.button>\n )\n}\n\ninterface ResizableTriggerProps extends HTMLStyledProps {\n resizing: boolean\n}\n\nconst ResizableTrigger: FC<ResizableTriggerProps> = ({ resizing, ...rest }) => {\n const {\n columnResizeMode,\n table,\n resizableTriggerProps = {},\n } = useComponentContext()\n const offset = table.getState().columnSizingInfo.deltaOffset\n\n return (\n <styled.div\n data-active={dataAttr(resizing)}\n bg=\"colorScheme.solid\"\n cursor=\"col-resize\"\n insetY=\"0\"\n opacity={{ base: \"0\", _hover: \"1\", _active: \"1\" }}\n position=\"absolute\"\n right=\"0\"\n touchAction=\"none\"\n transform={`translateX(${columnResizeMode === \"onEnd\" && resizing && offset ? `${offset}px` : \"50%\"})`}\n userSelect=\"none\"\n w=\"1\"\n {...mergeProps(rest, resizableTriggerProps)()}\n />\n )\n}\n\ninterface TruncatedTextProps extends HTMLStyledProps<\"span\"> {}\n\nconst TruncatedText: FC<TruncatedTextProps> = ({\n children,\n lineClamp,\n truncated,\n ...rest\n}) => {\n if (lineClamp || truncated) {\n return (\n <styled.span\n lineClamp={lineClamp}\n truncated={truncated}\n wordBreak=\"break-all\"\n {...rest}\n >\n {children}\n </styled.span>\n )\n } else {\n return children\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.cjs","names":["createComponent","useI18n","useControllableState","header","Checkbox","mergeProps","table","cellMap","el","focusRingStyle","SortingIcon: FC<SortingIconProps>","ChevronUpIcon","ChevronsUpDownIcon","styled","ResizableTrigger: FC<ResizableTriggerProps>","TruncatedText: FC<TruncatedTextProps>"],"sources":["../../../../src/components/table/table.tsx"],"sourcesContent":["\"use client\"\n\nimport type {\n AccessorFn,\n Cell,\n CellContext,\n ColumnDef,\n ColumnDefTemplate,\n ColumnFiltersColumnDef,\n ColumnFiltersState,\n ColumnMeta,\n ColumnPinningColumnDef,\n ColumnSizingColumnDef,\n GlobalFilterColumnDef,\n GroupingColumnDef,\n Header,\n HeaderContext,\n HeaderGroup,\n OnChangeFn,\n SortingState as OriginalSortingState,\n PaginationState,\n Table as ReactTable,\n Row,\n RowData,\n RowSelectionState,\n SortDirection,\n SortingColumnDef,\n TableOptions,\n VisibilityColumnDef,\n} from \"@tanstack/react-table\"\nimport type { FC, FocusEvent, KeyboardEvent, ReactElement } from \"react\"\nimport type { CSSProps, GenericsComponent, HTMLStyledProps } from \"../../core\"\nimport type { ReactNodeOrFunction, TransformProps } from \"../../utils\"\nimport type { CheckboxProps } from \"../checkbox\"\nimport {\n createColumnHelper,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { useMemo, useRef } from \"react\"\nimport { createComponent, focusRingStyle, mergeProps, styled } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n ariaAttr,\n dataAttr,\n isFunction,\n runIfFn,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\nimport { Checkbox } from \"../checkbox\"\nimport { ChevronsUpDownIcon, ChevronUpIcon } from \"../icon\"\nimport { NativeTable } from \"../native-table\"\n\ndeclare module \"@tanstack/react-table\" {\n interface ColumnDefExtensions<TData extends RowData, TValue = unknown>\n extends\n VisibilityColumnDef,\n ColumnPinningColumnDef,\n ColumnFiltersColumnDef<TData>,\n GlobalFilterColumnDef,\n SortingColumnDef<TData>,\n GroupingColumnDef<TData, TValue>,\n ColumnSizingColumnDef {}\n\n interface ColumnDefBase<TData extends RowData, TValue = unknown>\n extends\n ColumnDefExtensions<TData, TValue>,\n Pick<CSSProps, \"lineClamp\" | \"truncated\">,\n Pick<NativeTable.TdProps, \"numeric\"> {\n cell?: ColumnDefTemplate<CellContext<TData, TValue>>\n footer?: ColumnDefTemplate<HeaderContext<TData, TValue>>\n getUniqueValues?: AccessorFn<TData, unknown[]>\n meta?: ColumnMeta<TData, TValue>\n cellProps?: NativeTable.TdProps\n footerProps?: NativeTable.ThProps\n headerProps?: NativeTable.ThProps\n }\n}\n\nexport { createColumnHelper }\nexport type {\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n RowSelectionState,\n SortDirection,\n}\n\nfunction getMergeHeaderGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n const columnsIds = new Set()\n\n return headerGroups.map((headerGroup, depth, { length: fullDepth }) => {\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !columnsIds.has(header.column.id))\n .map((header) => {\n columnsIds.add(header.column.id)\n\n return header.isPlaceholder\n ? { ...header, isPlaceholder: false, rowSpan: fullDepth - depth }\n : { ...header, rowSpan: 1 }\n }),\n }\n })\n}\n\nfunction getMergeFooterGroups(\n headerGroups: HeaderGroup<any>[],\n): HeaderGroup<any>[] {\n if (headerGroups.length <= 1) return headerGroups\n\n return headerGroups.map((headerGroup, depth) => {\n const nextHeaderGroups = headerGroups.slice(depth + 1)\n\n return {\n ...headerGroup,\n headers: headerGroup.headers\n .filter((header) => !header.isPlaceholder)\n .map((header) => {\n if (nextHeaderGroups.length === 0) return header\n\n const rowSpan = nextHeaderGroups.reduce((acc, nextHeaderGroup) => {\n const hasNextHeader = nextHeaderGroup.headers.some(\n (nextHeader) => nextHeader.column.id === header.column.id,\n )\n\n return acc + (hasNextHeader ? 1 : 0)\n }, 1)\n\n return { ...header, rowSpan }\n }),\n }\n })\n}\n\nexport interface ColumnSort<Y extends RowData> {\n desc: boolean\n id: keyof Y\n}\nexport type SortingState<Y extends RowData> = ColumnSort<Y>[]\n\ninterface ComponentContext extends Pick<\n TableProps<any>,\n | \"columnResizeMode\"\n | \"resizableTriggerProps\"\n | \"sortingIcon\"\n | \"sortingIconProps\"\n> {\n table: ReactTable<any>\n}\n\ninterface OmittedTableOptions<Y extends RowData> extends Omit<\n TableOptions<Y>,\n | \"getCoreRowModel\"\n | \"onColumnFiltersChange\"\n | \"onPaginationChange\"\n | \"onSortingChange\"\n> {}\n\ninterface PickedNativeTableProps extends Pick<\n NativeTable.RootProps,\n | \"highlightOnHover\"\n | \"highlightOnSelected\"\n | \"layout\"\n | \"scrollAreaProps\"\n | \"size\"\n | \"stickyFooter\"\n | \"stickyHeader\"\n | \"striped\"\n | \"variant\"\n | \"withBorder\"\n | \"withColumnBorders\"\n | \"withScrollArea\"\n> {}\n\nexport interface TableProps<Y extends RowData>\n extends\n OmittedTableOptions<Y>,\n PickedNativeTableProps,\n Pick<CSSProps, \"colorScheme\" | \"lineClamp\" | \"truncated\"> {\n /**\n * The column filters state of the table.\n */\n columnFilters?: ColumnFiltersState\n /**\n * The default column filters state of the table.\n */\n defaultColumnFilters?: ColumnFiltersState\n /**\n * The default pagination state of the table.\n */\n defaultPagination?: PaginationState\n /**\n * The default row selection state of the table.\n */\n defaultRowSelection?: RowSelectionState\n /**\n * The default sorting state of the table.\n */\n defaultSorting?: SortingState<Y>\n /**\n * If `true`, the table width will be automatically resized to the content.\n *\n * @default false\n */\n enableAutoResizeTableWidth?: boolean\n /**\n * If `true`, the keyboard navigation will be enabled.\n *\n * @default true\n */\n enableKeyboardNavigation?: boolean\n /**\n * If `true`, the pagination will be enabled.\n *\n * @default false\n */\n enablePagination?: boolean\n /**\n * The footer of the table.\n */\n footer?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The header of the table.\n */\n header?: ReactNodeOrFunction<ReactTable<Y>>\n /**\n * The initial focusable cell of the table.\n *\n * @default {rowIndex: 0, colIndex: 0}\n */\n initialFocusableCell?: { colIndex: number; rowIndex: number }\n /**\n * The pagination state of the table.\n */\n pagination?: PaginationState\n /**\n * The row selection state of the table.\n */\n rowSelection?: RowSelectionState\n /**\n * If `true`, the row will be selected when the row is clicked.\n *\n * @default false\n */\n selectOnClickRow?: boolean\n /**\n * The sorting state of the table.\n */\n sorting?: SortingState<Y>\n /**\n * The sorting icon of the table.\n */\n sortingIcon?: ReactNodeOrFunction<false | SortDirection>\n /**\n * If `true`, the table will have a checkbox column.\n *\n * @default true\n */\n withCheckbox?: boolean\n /**\n * If `true`, the table will have a checkbox in the footer.\n *\n * @default false\n */\n withFooterCheckbox?: boolean\n /**\n * If `true`, the table will have footer groups.\n *\n * @default false\n */\n withFooterGroups?: boolean\n /**\n * The props for the table cell.\n */\n cellProps?: TransformProps<NativeTable.TdProps, Cell<Y, unknown>>\n /**\n * The props for the checkbox.\n */\n checkboxProps?: CheckboxProps\n /**\n * The props for the table footer group.\n */\n footerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table footer.\n */\n footerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the table header checkbox.\n */\n headerCheckboxProps?: TransformProps<CheckboxProps, Header<Y, unknown>>\n /**\n * The props for the table header group.\n */\n headerGroupProps?: TransformProps<NativeTable.TrProps, HeaderGroup<Y>>\n /**\n * The props for the table header.\n */\n headerProps?: TransformProps<NativeTable.ThProps, Header<Y, unknown>>\n /**\n * The props for the resizable trigger.\n */\n resizableTriggerProps?: TransformProps<\n Omit<ResizableTriggerProps, \"resizing\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table row checkbox.\n */\n rowCheckboxProps?: TransformProps<CheckboxProps, Row<Y>>\n /**\n * The props for the table row.\n */\n rowProps?: TransformProps<NativeTable.TrProps, Row<Y>>\n /**\n * The props for the sorting icon.\n */\n sortingIconProps?: TransformProps<\n Omit<SortingIconProps, \"sorted\">,\n Header<Y, unknown>\n >\n /**\n * The props for the table.\n */\n tableProps?: NativeTable.RootProps\n /**\n * The props for the table tbody.\n */\n tbodyProps?: NativeTable.TbodyProps\n /**\n * The props for the table tfoot.\n */\n tfootProps?: NativeTable.TfootProps\n /**\n * The props for the table thead.\n */\n theadProps?: NativeTable.TheadProps\n /**\n * The callback invoked when the column filters state changes.\n */\n onColumnFiltersChange?: (columnFilters: ColumnFiltersState) => void\n /**\n * The callback invoked when the pagination state changes.\n */\n onPaginationChange?: (pagination: PaginationState) => void\n /**\n * The callback invoked when the row is clicked.\n */\n onRowClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the row is double clicked.\n */\n onRowDoubleClick?: (row: Row<Y>) => void\n /**\n * The callback invoked when the sorting state changes.\n */\n onSortingChange?: (sorting: SortingState<Y>) => void\n}\n\nconst {\n ComponentContext,\n PropsContext: TablePropsContext,\n useComponentContext,\n usePropsContext: useTablePropsContext,\n withContext,\n} = createComponent<TableProps<any>, any, ComponentContext>(\"table\")\n\nexport { TablePropsContext, useTablePropsContext }\n\n/**\n * `Table` is a table component equipped with column sorting, row selection, and click event features.\n *\n * @see https://yamada-ui.com/docs/components/table\n */\nexport const Table = withContext(\n <Y extends RowData>({\n colorScheme,\n size,\n variant,\n columnFilters: columnFiltersProp,\n columnResizeMode = \"onChange\",\n columns: columnsProp,\n data,\n defaultColumnFilters,\n defaultPagination = { pageIndex: 0, pageSize: 20 },\n defaultRowSelection = {},\n defaultSorting,\n enableAutoResizeTableWidth = false,\n enableColumnResizing = false,\n enableKeyboardNavigation = true,\n enablePagination = false,\n enableRowSelection = false,\n footer,\n header,\n highlightOnHover = !!enableRowSelection,\n highlightOnSelected = !!enableRowSelection,\n initialFocusableCell = { colIndex: 0, rowIndex: 0 },\n layout,\n lineClamp,\n manualPagination,\n pagination: paginationProp,\n rowCount: totalRowCount,\n rowSelection: rowSelectionProp,\n selectOnClickRow = false,\n sortDescFirst = false,\n sorting: sortingProp,\n sortingIcon,\n state,\n stickyFooter,\n stickyHeader,\n striped,\n truncated,\n withBorder,\n withCheckbox = true,\n withColumnBorders,\n withFooterCheckbox = false,\n withFooterGroups = false,\n withScrollArea,\n cellProps,\n checkboxProps,\n footerGroupProps,\n footerProps,\n headerCheckboxProps,\n headerGroupProps,\n headerProps,\n resizableTriggerProps,\n rowCheckboxProps,\n rowProps,\n scrollAreaProps,\n sortingIconProps,\n tableProps,\n tbodyProps,\n tfootProps,\n theadProps,\n onColumnFiltersChange: onColumnFiltersChangeProp,\n onPaginationChange: onPaginationChangeProp,\n onRowClick,\n onRowDoubleClick,\n onRowSelectionChange: onRowSelectionChangeProp,\n onSortingChange: onSortingChangeProp,\n ...rest\n }: TableProps<Y>) => {\n const { t } = useI18n(\"table\")\n const initialFocus = useRef<boolean>(false)\n const ref = useRef<HTMLTableElement>(null)\n const focusedCell = useRef<null | { colIndex: number; rowIndex: number }>(\n null,\n )\n const [rowSelection, onRowSelectionChange] = useControllableState({\n defaultValue: defaultRowSelection,\n value: rowSelectionProp,\n onChange: onRowSelectionChangeProp,\n })\n const [sorting, onSortingChange] = useControllableState({\n defaultValue: defaultSorting,\n value: sortingProp,\n onChange: onSortingChangeProp,\n })\n const [pagination, onPaginationChange] = useControllableState({\n defaultValue: defaultPagination,\n value: paginationProp,\n onChange: onPaginationChangeProp,\n })\n const [columnFilters, onColumnFiltersChange] = useControllableState({\n defaultValue: defaultColumnFilters,\n value: columnFiltersProp,\n onChange: onColumnFiltersChangeProp,\n })\n const columns = useMemo(() => {\n if (!enableRowSelection || !withCheckbox) return columnsProp\n\n const clonedColumns = [...columnsProp]\n\n const header = ({ header, table }: HeaderContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: table.getIsAllRowsSelected(),\n indeterminate: table.getIsSomeRowsSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select all rows\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: table.getToggleAllRowsSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(headerCheckboxProps, header) ?? {},\n )()}\n />\n )\n }\n\n const cell = ({ row }: CellContext<Y, any>) => {\n return (\n <Checkbox\n {...mergeProps(\n {\n checked: row.getIsSelected(),\n disabled: !row.getCanSelect(),\n indeterminate: row.getIsSomeSelected(),\n indicatorProps: { outline: \"none\" },\n inputProps: {\n \"aria-label\": t(\"Select row\"),\n \"data-focusable\": \"\",\n tabIndex: -1,\n },\n onChange: row.getToggleSelectedHandler(),\n },\n checkboxProps ?? {},\n runIfFn(rowCheckboxProps, row) ?? {},\n )()}\n />\n )\n }\n\n clonedColumns.unshift({\n id: \"select\",\n cell,\n header,\n ...(withFooterCheckbox\n ? { footer: header }\n : { footerProps: { \"aria-hidden\": \"true\" } }),\n cellProps: { verticalAlign: \"middle\" },\n headerProps: { w: \"calc({spaces.4} + {space-x} * 2)\" },\n })\n\n return clonedColumns\n }, [\n checkboxProps,\n columnsProp,\n enableRowSelection,\n headerCheckboxProps,\n rowCheckboxProps,\n t,\n withCheckbox,\n withFooterCheckbox,\n ])\n const table = useReactTable<Y>({\n columnResizeMode,\n columns,\n data,\n enableColumnResizing,\n enableRowSelection,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getSortedRowModel: getSortedRowModel(),\n manualPagination,\n rowCount: totalRowCount,\n sortDescFirst,\n state: {\n columnFilters,\n pagination: enablePagination ? pagination : undefined,\n rowSelection,\n sorting: sorting as OriginalSortingState,\n ...state,\n },\n onColumnFiltersChange,\n onPaginationChange,\n onRowSelectionChange,\n onSortingChange: onSortingChange as OnChangeFn<OriginalSortingState>,\n ...(enablePagination\n ? { getPaginationRowModel: getPaginationRowModel() }\n : {}),\n ...rest,\n })\n const headerGroups = table.getHeaderGroups()\n const mergedHeaderGroups = getMergeHeaderGroups(headerGroups)\n const rows = table.getRowModel().rows\n const footerGroups = table.getFooterGroups()\n const mergedFooterGroups = getMergeFooterGroups(\n withFooterGroups ? footerGroups : [],\n )\n const headerGroupCount = headerGroups.length\n const rowCount = rows.length\n const colCount = table.getAllLeafColumns().length\n const maxColIndex = colCount - 1\n const pageIndex = enablePagination\n ? table.getState().pagination.pageIndex\n : 0\n const cellMap = useMemo(() => {\n const cellMap = new Map<string, string>()\n\n if (!enableKeyboardNavigation) return cellMap\n\n const insertCellMap = (\n id: string,\n colSpan: number,\n rowSpan: number,\n colIndex: number,\n rowIndex: number,\n ) => {\n for (let i = 0; i < colSpan; i++) {\n cellMap.set(`${colIndex + i}-${rowIndex}`, `${colIndex}-${rowIndex}`)\n }\n\n for (let i = 1; i < rowSpan; i++) {\n cellMap.set(`${colIndex}-${rowIndex + i}`, `${colIndex}-${rowIndex}`)\n }\n }\n\n const insertCellMapByHeaderGroup = (\n headerGroup: HeaderGroup<Y>,\n rowIndex: number,\n ) => {\n let placeholderCount = 0\n\n headerGroup.headers.forEach((header) => {\n const colSpan = header.colSpan || 1\n const rowSpan = header.rowSpan || 1\n const colIndex = header.index + placeholderCount\n\n placeholderCount += colSpan - 1\n\n insertCellMap(header.id, colSpan, rowSpan, colIndex, rowIndex)\n })\n }\n\n mergedHeaderGroups.forEach((headerGroup, rowIndex) => {\n insertCellMapByHeaderGroup(headerGroup, rowIndex)\n })\n\n rows.forEach((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n row.getVisibleCells().forEach((cell) => {\n const colIndex = cell.column.getIndex()\n\n insertCellMap(cell.id, 1, 1, colIndex, rowIndex)\n })\n })\n\n mergedFooterGroups.forEach((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n insertCellMapByHeaderGroup(footerGroup, rowIndex)\n })\n\n return cellMap\n }, [\n enableKeyboardNavigation,\n headerGroupCount,\n mergedFooterGroups,\n mergedHeaderGroups,\n rows,\n rowCount,\n ])\n const context = useMemo(\n () => ({\n columnResizeMode,\n sortingIcon,\n table,\n resizableTriggerProps,\n sortingIconProps,\n }),\n [\n columnResizeMode,\n sortingIcon,\n sortingIconProps,\n resizableTriggerProps,\n table,\n ],\n )\n const getCell = (\n evOrEl:\n | Element\n | FocusEvent<HTMLTableElement>\n | KeyboardEvent<HTMLTableElement>\n | null\n | undefined,\n ) => {\n if (!evOrEl) return\n\n const el =\n evOrEl instanceof HTMLElement\n ? evOrEl.closest(\"th, td\")\n : \"target\" in evOrEl && evOrEl.target instanceof HTMLElement\n ? evOrEl.target.closest(\"th, td\")\n : null\n\n if (!(el instanceof HTMLTableCellElement)) return\n\n const { colindex, rowindex } = el.dataset\n const { colSpan, rowSpan } = el\n\n if (!colindex || !rowindex) return\n\n const colIndex = parseInt(colindex)\n const rowIndex = parseInt(rowindex)\n\n return { colIndex, colSpan, el, rowIndex, rowSpan }\n }\n const getShouldFocusCell = (colIndex: number, rowIndex: number) => {\n const [trulyColIndex, trulyRowIndex] =\n cellMap.get(`${colIndex}-${rowIndex}`)?.split(\"-\") ?? []\n\n if (!trulyColIndex || !trulyRowIndex) return\n\n const targetEl = ref.current?.querySelector(\n `[data-colindex=\"${trulyColIndex}\"][data-rowindex=\"${trulyRowIndex}\"]`,\n )\n\n if (!targetEl || !(targetEl instanceof HTMLTableCellElement)) return\n\n return targetEl\n }\n const removeTabIndex = (el: Element | null | undefined) => {\n if (!el || !(el instanceof HTMLElement)) return\n\n el.tabIndex = -1\n el.querySelectorAll(\"[data-focusable]\").forEach((el) => {\n if (el instanceof HTMLElement) el.tabIndex = -1\n })\n }\n const onCellFocus = (\n el: HTMLTableCellElement | null | undefined,\n colIndex: number,\n rowIndex: number,\n ) => {\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (!targetEl) return\n\n focusedCell.current = { colIndex, rowIndex }\n\n removeTabIndex(el)\n\n const shouldFocusEl =\n targetEl.querySelector(\"[data-focusable]\") ?? targetEl\n\n if (shouldFocusEl instanceof HTMLElement) {\n shouldFocusEl.tabIndex = 0\n shouldFocusEl.focus()\n }\n }\n const onFocus = (ev: FocusEvent<HTMLTableElement>) => {\n if (initialFocus.current) return\n\n initialFocus.current = true\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex)\n }\n const onKeyDown = (ev: KeyboardEvent<HTMLTableElement>) => {\n if (!enableKeyboardNavigation) return\n\n const cell = getCell(ev)\n\n if (!cell) return\n\n runKeyAction(ev, {\n ArrowDown: () =>\n onCellFocus(cell.el, cell.colIndex, cell.rowIndex + cell.rowSpan),\n ArrowLeft: () => onCellFocus(cell.el, cell.colIndex - 1, cell.rowIndex),\n ArrowRight: () =>\n onCellFocus(cell.el, cell.colIndex + cell.colSpan, cell.rowIndex),\n ArrowUp: () => onCellFocus(cell.el, cell.colIndex, cell.rowIndex - 1),\n End: () => onCellFocus(cell.el, maxColIndex, cell.rowIndex),\n Home: () => onCellFocus(cell.el, 0, cell.rowIndex),\n ...(enablePagination\n ? {\n PageDown: () => {\n if (!table.getCanNextPage()) return\n\n table.setPageIndex(pageIndex + 1)\n },\n PageUp: () => {\n if (!table.getCanPreviousPage()) return\n\n table.setPageIndex(pageIndex - 1)\n },\n }\n : {}),\n })\n }\n const getTabIndex = (colIndex: number, rowIndex: number) => {\n if (!enableKeyboardNavigation) return undefined\n\n return colIndex === initialFocusableCell.colIndex &&\n rowIndex === initialFocusableCell.rowIndex\n ? 0\n : undefined\n }\n\n useUpdateEffect(() => {\n if (!enableKeyboardNavigation) return\n\n const { colIndex, rowIndex } = focusedCell.current ?? initialFocusableCell\n const targetEl = getShouldFocusCell(colIndex, rowIndex)\n\n if (targetEl) targetEl.tabIndex = 0\n }, [pageIndex, enableKeyboardNavigation])\n\n return (\n <ComponentContext value={context}>\n {header ? runIfFn(header, table) : null}\n\n <NativeTable.Root\n {...mergeProps(\n {\n ref,\n style:\n enableColumnResizing && enableAutoResizeTableWidth\n ? { width: table.getCenterTotalSize() }\n : {},\n colorScheme,\n size,\n variant,\n \"aria-colcount\": colCount,\n \"aria-multiselectable\": enableRowSelection ? \"true\" : undefined,\n \"aria-rowcount\": totalRowCount || data.length,\n highlightOnHover,\n highlightOnSelected,\n layout,\n role: \"grid\",\n stickyFooter,\n stickyHeader,\n striped,\n withBorder,\n withColumnBorders,\n withScrollArea,\n scrollAreaProps,\n onFocus,\n onKeyDown,\n },\n tableProps ?? {},\n )()}\n >\n <NativeTable.Thead role=\"rowgroup\" {...theadProps}>\n {mergedHeaderGroups.map((headerGroup, rowIndex) => {\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={headerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(headerGroupProps, headerGroup)}\n >\n {headerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const canSort = header.column.getCanSort()\n const sorted = header.column.getIsSorted()\n const canResize = header.column.getCanResize()\n const resizing = header.column.getIsResizing()\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Th\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n aria-sort={\n sorted\n ? sorted === \"asc\"\n ? \"ascending\"\n : \"descending\"\n : \"none\"\n }\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n pe={\n canSort\n ? \"calc((1rem * {lineHeights.moderate}) + {space-x})\"\n : undefined\n }\n position=\"relative\"\n role=\"columnheader\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n style: enableColumnResizing\n ? { width: header.getSize() }\n : {},\n },\n runIfFn(headerProps, header) ?? {},\n columnDef.headerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n\n {canSort ? (\n <SortingIcon\n sorted={sorted}\n onClick={header.column.getToggleSortingHandler()}\n />\n ) : null}\n\n {canResize ? (\n <ResizableTrigger\n resizing={resizing}\n onDoubleClick={header.column.resetSize}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n />\n ) : null}\n </NativeTable.Th>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Thead>\n\n <NativeTable.Tbody role=\"rowgroup\" {...tbodyProps}>\n {rows.map((row, rowIndex) => {\n rowIndex += headerGroupCount\n\n const selected = !!rowSelection[row.id]\n const disabled =\n isFunction(enableRowSelection) && !enableRowSelection(row)\n\n return (\n <NativeTable.Tr\n id={row.id}\n key={row.id}\n aria-disabled={ariaAttr(disabled)}\n aria-rowindex={rowIndex + 1}\n aria-selected={ariaAttr(selected)}\n data-disabled={dataAttr(disabled)}\n data-selected={dataAttr(selected)}\n role=\"row\"\n {...mergeProps(\n {\n onClick:\n !disabled && selectOnClickRow\n ? () => row.toggleSelected(!selected)\n : undefined,\n },\n {\n onClick: !disabled ? () => onRowClick?.(row) : undefined,\n onDoubleClick: !disabled\n ? () => onRowDoubleClick?.(row)\n : undefined,\n },\n runIfFn(rowProps, row) ?? {},\n )()}\n >\n {row.getVisibleCells().map((cell) => {\n const { columnDef } = cell.column\n const colIndex = cell.column.getIndex()\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = flexRender(\n cell.column.columnDef.cell,\n cell.getContext(),\n )\n\n return (\n <NativeTable.Td\n key={cell.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(cellProps, cell) ?? {},\n columnDef.cellProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tbody>\n\n {withFooterGroups ? (\n <NativeTable.Tfoot role=\"rowgroup\" {...tfootProps}>\n {mergedFooterGroups.map((footerGroup, rowIndex) => {\n rowIndex += headerGroupCount + rowCount\n\n let placeholderCount = 0\n\n return (\n <NativeTable.Tr\n key={footerGroup.id}\n aria-rowindex={rowIndex + 1}\n role=\"row\"\n {...runIfFn(footerGroupProps, footerGroup)}\n >\n {footerGroup.headers.map((header) => {\n const { columnDef } = header.column\n const colIndex = header.index + placeholderCount\n const tabIndex = getTabIndex(colIndex, rowIndex)\n const children = header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.footer,\n header.getContext(),\n )\n\n placeholderCount += (header.colSpan || 1) - 1\n\n return (\n <NativeTable.Td\n key={header.id}\n aria-colindex={colIndex + 1}\n aria-rowindex={rowIndex + 1}\n data-colindex={colIndex}\n data-rowindex={rowIndex}\n colSpan={header.colSpan || undefined}\n numeric={columnDef.numeric}\n role=\"gridcell\"\n rowSpan={header.rowSpan || undefined}\n tabIndex={tabIndex}\n {...mergeProps(\n {\n css: {\n \"&:has([data-focusable]:focus-visible)\":\n focusRingStyle.outline,\n },\n },\n runIfFn(footerProps, header) ?? {},\n columnDef.footerProps ?? {},\n )()}\n >\n <TruncatedText\n lineClamp={columnDef.lineClamp ?? lineClamp}\n truncated={columnDef.truncated ?? truncated}\n >\n {children}\n </TruncatedText>\n </NativeTable.Td>\n )\n })}\n </NativeTable.Tr>\n )\n })}\n </NativeTable.Tfoot>\n ) : null}\n </NativeTable.Root>\n\n {footer ? runIfFn(footer, table) : null}\n </ComponentContext>\n )\n },\n)() as GenericsComponent<{\n <Y extends RowData>(props: TableProps<Y>): ReactElement\n}>\n\ninterface SortingIconProps extends HTMLStyledProps<\"button\"> {\n sorted: false | SortDirection\n}\n\nconst SortingIcon: FC<SortingIconProps> = ({ sorted, ...rest }) => {\n const { t } = useI18n(\"table\")\n const { sortingIcon, sortingIconProps = {} } = useComponentContext()\n const Icon = sorted ? ChevronUpIcon : ChevronsUpDownIcon\n\n return (\n <styled.button\n type=\"button\"\n layerStyle=\"ghost\"\n colorScheme=\"mono\"\n aria-label={t(\n sorted\n ? sorted === \"desc\"\n ? \"Sort descending\"\n : \"Sort ascending\"\n : \"Clear sorting\",\n )}\n data-focusable\n aspectRatio=\"1\"\n cursor=\"pointer\"\n display=\"center\"\n focusVisibleRing=\"none\"\n h=\"calc(1em * {lineHeights.moderate})\"\n position=\"absolute\"\n right=\"{space-x}\"\n rounded=\"l1\"\n tabIndex={-1}\n top=\"50%\"\n transform=\"translateY(-50%)\"\n transitionDuration=\"moderate\"\n transitionProperty=\"common\"\n _hover={{ layerStyle: \"ghost.hover\" }}\n {...mergeProps(rest, sortingIconProps)()}\n >\n {runIfFn(sortingIcon, sorted) ?? (\n <Icon transform={`rotate(${sorted === \"desc\" ? 180 : 0}deg)`} />\n )}\n </styled.button>\n )\n}\n\ninterface ResizableTriggerProps extends HTMLStyledProps {\n resizing: boolean\n}\n\nconst ResizableTrigger: FC<ResizableTriggerProps> = ({ resizing, ...rest }) => {\n const {\n columnResizeMode,\n table,\n resizableTriggerProps = {},\n } = useComponentContext()\n const offset = table.getState().columnSizingInfo.deltaOffset\n\n return (\n <styled.div\n data-active={dataAttr(resizing)}\n bg=\"colorScheme.solid\"\n cursor=\"col-resize\"\n insetY=\"0\"\n opacity={{ base: \"0\", _hover: \"1\", _active: \"1\" }}\n position=\"absolute\"\n right=\"0\"\n touchAction=\"none\"\n transform={`translateX(${columnResizeMode === \"onEnd\" && resizing && offset ? `${offset}px` : \"50%\"})`}\n userSelect=\"none\"\n w=\"1\"\n {...mergeProps(rest, resizableTriggerProps)()}\n />\n )\n}\n\ninterface TruncatedTextProps extends HTMLStyledProps<\"span\"> {}\n\nconst TruncatedText: FC<TruncatedTextProps> = ({\n children,\n lineClamp,\n truncated,\n ...rest\n}) => {\n if (lineClamp || truncated) {\n return (\n <styled.span\n lineClamp={lineClamp}\n truncated={truncated}\n wordBreak=\"break-all\"\n {...rest}\n >\n {children}\n </styled.span>\n )\n } else {\n return children\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-autosize.cjs","names":["rows: number","value","getTextareaProps: PropGetter<\"textarea\">","mergeRefs"],"sources":["../../../../src/components/textarea/use-autosize.ts"],"sourcesContent":["\"use client\"\n\nimport type { PropGetter } from \"../../core\"\nimport { useCallback, useRef } from \"react\"\nimport {\n addDomEvent,\n createdDom,\n handlerAll,\n mergeRefs,\n noop,\n pickObject,\n useSafeLayoutEffect,\n useUpdateEffect,\n} from \"../../utils\"\n\nconst SIZING_STYLE_PROPERTIES = [\n \"borderBottomWidth\",\n \"borderLeftWidth\",\n \"borderRightWidth\",\n \"borderTopWidth\",\n \"boxSizing\",\n \"fontFamily\",\n \"fontSize\",\n \"fontStyle\",\n \"fontWeight\",\n \"letterSpacing\",\n \"lineHeight\",\n \"paddingBottom\",\n \"paddingLeft\",\n \"paddingRight\",\n \"paddingTop\",\n // non-standard\n \"tabSize\",\n \"textIndent\",\n // non-standard\n \"textRendering\",\n \"textTransform\",\n \"width\",\n \"wordBreak\",\n] as const\n\nconst HIDDEN_STYLE = {\n height: \"0\",\n \"max-height\": \"none\",\n \"min-height\": \"0\",\n overflow: \"hidden\",\n position: \"absolute\",\n right: \"0\",\n top: \"0\",\n visibility: \"hidden\",\n \"z-index\": \"-1000\",\n} as const\n\ntype SizingProperties = Extract<\n (typeof SIZING_STYLE_PROPERTIES)[number],\n keyof CSSStyleDeclaration\n>\n\ninterface SizingStyle {\n
|
|
1
|
+
{"version":3,"file":"use-autosize.cjs","names":["rows: number","value","getTextareaProps: PropGetter<\"textarea\">","mergeRefs"],"sources":["../../../../src/components/textarea/use-autosize.ts"],"sourcesContent":["\"use client\"\n\nimport type { PropGetter } from \"../../core\"\nimport { useCallback, useRef } from \"react\"\nimport {\n addDomEvent,\n createdDom,\n handlerAll,\n mergeRefs,\n noop,\n pickObject,\n useSafeLayoutEffect,\n useUpdateEffect,\n} from \"../../utils\"\n\nconst SIZING_STYLE_PROPERTIES = [\n \"borderBottomWidth\",\n \"borderLeftWidth\",\n \"borderRightWidth\",\n \"borderTopWidth\",\n \"boxSizing\",\n \"fontFamily\",\n \"fontSize\",\n \"fontStyle\",\n \"fontWeight\",\n \"letterSpacing\",\n \"lineHeight\",\n \"paddingBottom\",\n \"paddingLeft\",\n \"paddingRight\",\n \"paddingTop\",\n // non-standard\n \"tabSize\",\n \"textIndent\",\n // non-standard\n \"textRendering\",\n \"textTransform\",\n \"width\",\n \"wordBreak\",\n] as const\n\nconst HIDDEN_STYLE = {\n height: \"0\",\n \"max-height\": \"none\",\n \"min-height\": \"0\",\n overflow: \"hidden\",\n position: \"absolute\",\n right: \"0\",\n top: \"0\",\n visibility: \"hidden\",\n \"z-index\": \"-1000\",\n} as const\n\ntype SizingProperties = Extract<\n (typeof SIZING_STYLE_PROPERTIES)[number],\n keyof CSSStyleDeclaration\n>\n\ninterface SizingStyle {\n border: number\n padding: number\n rowHeight: number\n style: Pick<CSSStyleDeclaration, SizingProperties>\n}\n\nconst getSizingStyle = (el: HTMLElement): null | SizingStyle => {\n const style = window.getComputedStyle(el) as CSSStyleDeclaration | undefined\n\n if (style == null) return null\n\n const computedStyle = pickObject(style, SIZING_STYLE_PROPERTIES)\n\n if (computedStyle.boxSizing === \"\") return null\n\n const padding =\n parseFloat(computedStyle.paddingBottom!) +\n parseFloat(computedStyle.paddingTop!)\n\n const border =\n parseFloat(computedStyle.borderBottomWidth!) +\n parseFloat(computedStyle.borderTopWidth!)\n\n const rowHeight = parseFloat(computedStyle.lineHeight!)\n\n return {\n style: computedStyle,\n border,\n padding,\n rowHeight,\n }\n}\n\nconst setHiddenStyle = (el: HTMLElement) => {\n Object.keys(HIDDEN_STYLE).forEach((key) => {\n el.style.setProperty(\n key,\n HIDDEN_STYLE[key as keyof typeof HIDDEN_STYLE],\n \"important\",\n )\n })\n}\n\nconst calcRows = (\n el: HTMLTextAreaElement,\n sizingStyle: SizingStyle,\n value: string,\n maxRows: number,\n minRows: number,\n) => {\n const cloneEl = el.cloneNode() as HTMLTextAreaElement\n\n Object.assign(cloneEl.style, sizingStyle.style)\n\n setHiddenStyle(cloneEl)\n\n cloneEl.value = value\n\n document.body.appendChild(cloneEl)\n\n let rows: number\n\n if (cloneEl.scrollHeight) {\n const rowHeight = sizingStyle.rowHeight\n\n rows = Math.min(\n maxRows,\n Math.max(minRows, Math.floor(cloneEl.scrollHeight / rowHeight)),\n )\n } else {\n const lineBreaks = (value.match(/\\n/g) || []).length\n\n rows = Math.min(maxRows, Math.max(minRows, lineBreaks + 1))\n }\n\n document.body.removeChild(cloneEl)\n\n return rows\n}\n\nexport interface UseAutosizeProps {\n /**\n * If `true`, the Textarea height will not be adjusted.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * Autosize up to maxRows rows.\n *\n * @default Infinity\n */\n maxRows?: number\n /**\n * Autosize up to minRows rows.\n *\n * @default 2\n */\n minRows?: number\n}\n\nexport const useAutosize = ({\n disabled = false,\n maxRows = Infinity,\n minRows = 2,\n}: UseAutosizeProps = {}) => {\n const ref = useRef<HTMLTextAreaElement>(null)\n const beforeValueRef = useRef<string>(null)\n const value = ref.current?.value ?? \"\"\n\n const onResizeTextarea = useCallback(() => {\n const el = ref.current\n\n if (!el) return\n\n let { placeholder, value } = el\n\n if (value === beforeValueRef.current) return\n\n beforeValueRef.current = value\n\n value ||= placeholder || \"x\"\n\n const sizingStyle = getSizingStyle(el)\n\n if (!sizingStyle) return\n\n const rows = calcRows(el, sizingStyle, value, maxRows, minRows)\n\n el.rows = rows\n }, [ref, maxRows, minRows])\n\n const getTextareaProps: PropGetter<\"textarea\"> = useCallback(\n (props = {}) => ({\n ...props,\n ref: mergeRefs(props.ref, ref),\n style: { resize: !disabled ? \"none\" : undefined, ...props.style },\n onChange: handlerAll(props.onChange, !disabled ? onResizeTextarea : noop),\n }),\n [ref, onResizeTextarea, disabled],\n )\n\n useSafeLayoutEffect(() => {\n if (!createdDom() || disabled) return\n\n onResizeTextarea()\n\n const unsubscribeResize = addDomEvent(window, \"resize\", onResizeTextarea)\n const unsubscribeLoadingdone = addDomEvent(\n document.fonts,\n \"loadingdone\",\n onResizeTextarea,\n )\n\n return () => {\n unsubscribeResize()\n unsubscribeLoadingdone()\n }\n }, [])\n\n useUpdateEffect(() => {\n if (disabled) return\n\n onResizeTextarea()\n }, [value])\n\n return { ref, getTextareaProps, onResizeTextarea }\n}\n\nexport type UseAutosizeReturn = ReturnType<typeof useAutosize>\n"],"mappings":";;;;;;;;;AAeA,MAAM,0BAA0B;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;CACD;AAED,MAAM,eAAe;CACnB,QAAQ;CACR,cAAc;CACd,cAAc;CACd,UAAU;CACV,UAAU;CACV,OAAO;CACP,KAAK;CACL,YAAY;CACZ,WAAW;CACZ;AAcD,MAAM,kBAAkB,OAAwC;CAC9D,MAAM,QAAQ,OAAO,iBAAiB,GAAG;AAEzC,KAAI,SAAS,KAAM,QAAO;CAE1B,MAAM,kEAA2B,OAAO,wBAAwB;AAEhE,KAAI,cAAc,cAAc,GAAI,QAAO;CAE3C,MAAM,UACJ,WAAW,cAAc,cAAe,GACxC,WAAW,cAAc,WAAY;AAQvC,QAAO;EACL,OAAO;EACP,QAPA,WAAW,cAAc,kBAAmB,GAC5C,WAAW,cAAc,eAAgB;EAOzC;EACA,WANgB,WAAW,cAAc,WAAY;EAOtD;;AAGH,MAAM,kBAAkB,OAAoB;AAC1C,QAAO,KAAK,aAAa,CAAC,SAAS,QAAQ;AACzC,KAAG,MAAM,YACP,KACA,aAAa,MACb,YACD;GACD;;AAGJ,MAAM,YACJ,IACA,aACA,OACA,SACA,YACG;CACH,MAAM,UAAU,GAAG,WAAW;AAE9B,QAAO,OAAO,QAAQ,OAAO,YAAY,MAAM;AAE/C,gBAAe,QAAQ;AAEvB,SAAQ,QAAQ;AAEhB,UAAS,KAAK,YAAY,QAAQ;CAElC,IAAIA;AAEJ,KAAI,QAAQ,cAAc;EACxB,MAAM,YAAY,YAAY;AAE9B,SAAO,KAAK,IACV,SACA,KAAK,IAAI,SAAS,KAAK,MAAM,QAAQ,eAAe,UAAU,CAAC,CAChE;QACI;EACL,MAAM,cAAc,MAAM,MAAM,MAAM,IAAI,EAAE,EAAE;AAE9C,SAAO,KAAK,IAAI,SAAS,KAAK,IAAI,SAAS,aAAa,EAAE,CAAC;;AAG7D,UAAS,KAAK,YAAY,QAAQ;AAElC,QAAO;;AAwBT,MAAa,eAAe,EAC1B,WAAW,OACX,UAAU,UACV,UAAU,MACU,EAAE,KAAK;CAC3B,MAAM,wBAAkC,KAAK;CAC7C,MAAM,mCAAgC,KAAK;CAC3C,MAAM,QAAQ,IAAI,SAAS,SAAS;CAEpC,MAAM,gDAAqC;EACzC,MAAM,KAAK,IAAI;AAEf,MAAI,CAAC,GAAI;EAET,IAAI,EAAE,aAAa,mBAAU;AAE7B,MAAIC,YAAU,eAAe,QAAS;AAEtC,iBAAe,UAAUA;AAEzB,cAAU,eAAe;EAEzB,MAAM,cAAc,eAAe,GAAG;AAEtC,MAAI,CAAC,YAAa;AAIlB,KAAG,OAFU,SAAS,IAAI,aAAaA,SAAO,SAAS,QAAQ;IAG9D;EAAC;EAAK;EAAS;EAAQ,CAAC;CAE3B,MAAMC,2CACH,QAAQ,EAAE,MAAM;EACf,GAAG;EACH,KAAKC,sBAAU,MAAM,KAAK,IAAI;EAC9B,OAAO;GAAE,QAAQ,CAAC,WAAW,SAAS;GAAW,GAAG,MAAM;GAAO;EACjE,4DAAqB,MAAM,UAAU,CAAC,WAAW,qDAAmB,KAAK;EAC1E,GACD;EAAC;EAAK;EAAkB;EAAS,CAClC;AAED,0CAA0B;AACxB,MAAI,oDAAa,IAAI,SAAU;AAE/B,oBAAkB;EAElB,MAAM,uEAAgC,QAAQ,UAAU,iBAAiB;EACzE,MAAM,4EACJ,SAAS,OACT,eACA,iBACD;AAED,eAAa;AACX,sBAAmB;AACnB,2BAAwB;;IAEzB,EAAE,CAAC;AAEN,sCAAsB;AACpB,MAAI,SAAU;AAEd,oBAAkB;IACjB,CAAC,MAAM,CAAC;AAEX,QAAO;EAAE;EAAK;EAAkB;EAAkB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-toggle-group.cjs","names":["createContext","useControllableState","value"],"sources":["../../../../src/components/toggle/use-toggle-group.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useRef } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport {\n createContext,\n dataAttr,\n isArray,\n isUndefined,\n toArray,\n useUpdateEffect,\n} from \"../../utils\"\n\ninterface ToggleGroupContext {\n disabled?: boolean\n readOnly?: boolean\n value?: string | string[]\n onChange?: <Y extends string = string>(value: undefined | Y) => void\n
|
|
1
|
+
{"version":3,"file":"use-toggle-group.cjs","names":["createContext","useControllableState","value"],"sources":["../../../../src/components/toggle/use-toggle-group.ts"],"sourcesContent":["\"use client\"\n\nimport type { RefObject } from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useRef } from \"react\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport {\n createContext,\n dataAttr,\n isArray,\n isUndefined,\n toArray,\n useUpdateEffect,\n} from \"../../utils\"\n\ninterface ToggleGroupContext {\n onChangeMapRef: RefObject<Map<string, (value: boolean) => void>>\n disabled?: boolean\n readOnly?: boolean\n value?: string | string[]\n onChange?: <Y extends string = string>(value: undefined | Y) => void\n}\n\nconst [ToggleGroupContext, useToggleGroupContext] =\n createContext<ToggleGroupContext>({\n name: \"ToggleGroupContext\",\n strict: false,\n })\n\nexport { ToggleGroupContext, useToggleGroupContext }\n\nexport interface UseToggleGroupProps<\n Y extends string | string[] = string,\n> extends Omit<HTMLProps, \"defaultValue\" | \"onChange\" | \"value\"> {\n /**\n * The initial value of the toggle button group.\n */\n defaultValue?: Y extends any[] ? Y : undefined | Y\n /**\n * If `true`, all wrapped toggle button will be disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * If `true`, all wrapped toggle button will be readonly.\n *\n * @default false\n */\n readOnly?: boolean\n /**\n * The value of the toggle button group.\n */\n value?: Y extends any[] ? Y : undefined | Y\n /**\n * The callback fired when any children toggle button is selected or unselected.\n */\n onChange?: (value: Y extends any[] ? Y : undefined | Y) => void\n}\n\nexport const useToggleGroup = <Y extends string | string[] = string>({\n defaultValue,\n disabled,\n readOnly,\n value: valueProp,\n onChange: onChangeProp,\n ...rest\n}: UseToggleGroupProps<Y>) => {\n type Value = Y extends any[] ? Y : undefined | Y\n\n const onChangeMapRef = useRef<Map<string, (value: boolean) => void>>(\n new Map(),\n )\n const [value, setValue] = useControllableState<Value>({\n defaultValue,\n value: valueProp,\n onChange: onChangeProp,\n })\n\n const onReset = useCallback((targetValue?: string[]) => {\n onChangeMapRef.current.forEach((onChange, value) => {\n if (targetValue?.includes(value)) {\n onChange(true)\n } else {\n onChange(false)\n }\n })\n }, [])\n\n const onChange = useCallback(\n <M extends string = Y extends any[] ? Y[number] : Y>(\n value: M | undefined,\n ) => {\n if (isUndefined(value)) return\n\n setValue((prev) => {\n if (isArray(prev)) {\n const included = prev.includes(value)\n\n if (included) {\n const nextValue = prev.filter((prevValue) => prevValue !== value)\n\n onReset(nextValue)\n\n return nextValue as Value\n } else {\n const nextValue = [...prev, value]\n\n onReset(nextValue)\n\n return nextValue as Value\n }\n } else {\n if (value === (prev as string | undefined)) {\n onReset()\n\n return undefined as Value\n } else {\n onReset([value])\n\n return value as unknown as Value\n }\n }\n })\n },\n [setValue, onReset],\n )\n\n useUpdateEffect(() => {\n onReset(!isUndefined(valueProp) ? toArray(valueProp) : undefined)\n\n setValue(valueProp as Value)\n }, [valueProp])\n\n const getGroupProps: PropGetter = useCallback(\n (props) => ({\n \"data-disabled\": dataAttr(disabled),\n \"data-readonly\": dataAttr(readOnly),\n role: \"group\",\n ...rest,\n ...props,\n }),\n [disabled, readOnly, rest],\n )\n\n return { disabled, readOnly, value, getGroupProps, onChange, onChangeMapRef }\n}\n\nexport type UseToggleGroupReturn = ReturnType<typeof useToggleGroup>\n"],"mappings":";;;;;;;;;;AAuBA,MAAM,CAAC,oBAAoB,yBACzBA,8BAAkC;CAChC,MAAM;CACN,QAAQ;CACT,CAAC;AAiCJ,MAAa,kBAAwD,EACnE,cACA,UACA,UACA,OAAO,WACP,UAAU,cACV,GAAG,WACyB;CAG5B,MAAM,mDACJ,IAAI,KAAK,CACV;CACD,MAAM,CAAC,OAAO,YAAYC,gEAA4B;EACpD;EACA,OAAO;EACP,UAAU;EACX,CAAC;CAEF,MAAM,kCAAuB,gBAA2B;AACtD,iBAAe,QAAQ,SAAS,YAAU,YAAU;AAClD,OAAI,aAAa,SAASC,QAAM,CAC9B,YAAS,KAAK;OAEd,YAAS,MAAM;IAEjB;IACD,EAAE,CAAC;CAEN,MAAM,mCAEF,YACG;AACH,yDAAgBA,QAAM,CAAE;AAExB,YAAU,SAAS;AACjB,sDAAY,KAAK,CAGf,KAFiB,KAAK,SAASA,QAAM,EAEvB;IACZ,MAAM,YAAY,KAAK,QAAQ,cAAc,cAAcA,QAAM;AAEjE,YAAQ,UAAU;AAElB,WAAO;UACF;IACL,MAAM,YAAY,CAAC,GAAG,MAAMA,QAAM;AAElC,YAAQ,UAAU;AAElB,WAAO;;YAGLA,YAAW,MAA6B;AAC1C,aAAS;AAET;UACK;AACL,YAAQ,CAACA,QAAM,CAAC;AAEhB,WAAOA;;IAGX;IAEJ,CAAC,UAAU,QAAQ,CACpB;AAED,sCAAsB;AACpB,UAAQ,oDAAa,UAAU,kDAAW,UAAU,GAAG,OAAU;AAEjE,WAAS,UAAmB;IAC3B,CAAC,UAAU,CAAC;AAaf,QAAO;EAAE;EAAU;EAAU;EAAO,uCAVjC,WAAW;GACV,iEAA0B,SAAS;GACnC,iEAA0B,SAAS;GACnC,MAAM;GACN,GAAG;GACH,GAAG;GACJ,GACD;GAAC;GAAU;GAAU;GAAK,CAC3B;EAEkD;EAAU;EAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-component-style.cjs","names":["style","conditions","getCondition","style: Style<Y> | undefined","variants","temp: (CSSObject | undefined)[]","slot","css","useSystem","useColorSchemeContext","isEqualProps","style: Style<H>","mergeCSS"],"sources":["../../../../src/core/components/use-component-style.ts"],"sourcesContent":["\"use client\"\n\nimport type { Dict } from \"../../utils\"\nimport type {\n ColorModeArray,\n CSSModifierObject,\n CSSObject,\n CSSPropObject,\n CSSSlotObject,\n ResponsiveWithConditionObject,\n StyleValueWithCondition,\n} from \"../css\"\nimport type {\n Breakpoints,\n ComponentCompound,\n ComponentSlotStyle,\n ComponentStyle,\n Layers,\n LayerScheme,\n ThemeProps,\n WithoutThemeProps,\n} from \"../system\"\nimport type { ComponentSlot, ComponentSlotName } from \"./create-component\"\nimport type { HTMLStyledProps } from \"./index.types\"\nimport { useRef } from \"react\"\nimport {\n bem,\n cx,\n filterEmpty,\n isArray,\n isBooleanish,\n isEmptyObject,\n isObject,\n isRegExp,\n isUndefined,\n merge,\n omitObject,\n toArray,\n toKebabCase,\n} from \"../../utils\"\nimport { conditions, getCondition, mergeCSS } from \"../css\"\nimport { useColorSchemeContext, useSystem } from \"../system\"\nimport { isEqualProps } from \"./props\"\n\ntype Style<Y extends boolean = false> = Y extends false\n ? CSSObject\n : CSSSlotObject\n\ntype MergedStyle = CSSModifierObject | CSSModifierObject<CSSSlotObject>\n\ninterface GetStyleOptions\n extends Partial<Breakpoints>, Pick<Partial<Layers>, \"wrap\"> {\n hasSlot?: boolean\n selectors?: (string | undefined)[]\n}\n\nfunction getSelectorStyle<Y extends Dict = Dict>(\n selectors: (string | undefined)[],\n style: Y,\n) {\n return selectors.reduceRight<Dict>(\n (prev, key) => (key ? { [key]: prev } : prev),\n style,\n ) as Y\n}\n\nfunction getStyle<Y extends boolean = false>(\n style: CSSObject | CSSSlotObject | undefined,\n) {\n return function ({\n hasSlot = false,\n selectors = [],\n }: GetStyleOptions): Style<Y> | undefined {\n if (!style || isEmptyObject(style)) return\n\n if (hasSlot) {\n return Object.fromEntries(\n Object.entries(style as CSSSlotObject).map(([name, style]) => {\n if (selectors.length) {\n return [name, getSelectorStyle(selectors, style ?? {})]\n } else {\n return [name, style]\n }\n }),\n ) as Style<Y>\n } else if (selectors.length) {\n return getSelectorStyle(selectors, style) as Style<Y>\n } else {\n return style as Style<Y>\n }\n }\n}\n\nfunction getColorModeStyle<Y extends boolean = false>(\n value: ColorModeArray<string>,\n mergedStyle: MergedStyle,\n) {\n return function ({ selectors = [], ...rest }: GetStyleOptions) {\n const [lightValue, darkValue] = value\n\n const lightStyle = getModifierStyle<Y>(\n lightValue,\n mergedStyle,\n )({ ...rest, selectors })\n\n const darkStyle = getModifierStyle<Y>(\n darkValue,\n mergedStyle,\n )({ ...rest, selectors: [...selectors, conditions._dark] })\n\n return merge(lightStyle, darkStyle)\n }\n}\n\nfunction getConditionStyle<Y extends boolean = false>(\n value: ResponsiveWithConditionObject<string>,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions) {\n const { isResponsiveKey, queries = [], selectors = [] } = options\n const conditionalKeys = Object.keys(value).filter(\n (key) => !isResponsiveKey?.(key),\n )\n\n const breakpointObj = queries.reduce<Style<Y>>(\n (prev, { breakpoint, query }) => {\n if (!isUndefined(value[breakpoint])) {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[breakpoint],\n mergedStyle,\n )({ ...options, selectors: [...selectors, query] }),\n )\n }\n\n return prev\n },\n {},\n )\n\n const additionalObj = conditionalKeys.reduce<Style<Y>>((prev, key) => {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[key as keyof typeof value],\n mergedStyle,\n )({ ...options, selectors: [...selectors, getCondition(key)] }),\n )\n\n return prev\n }, {})\n\n return merge(breakpointObj, additionalObj)\n }\n}\n\nfunction getModifierStyle<Y extends boolean = false>(\n value: StyleValueWithCondition<string> | undefined,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions): Style<Y> | undefined {\n let style: Style<Y> | undefined = undefined\n\n if (!value) return style\n\n if (isArray(value)) {\n style = getColorModeStyle<Y>(value, mergedStyle)(options)\n } else if (isObject(value)) {\n style = getConditionStyle<Y>(value, mergedStyle)(options)\n } else {\n style = getStyle<Y>(mergedStyle[value])(options)\n }\n\n return style\n }\n}\n\nfunction getPropStyle<Y extends boolean = false>(\n props: Dict,\n propVariants: CSSPropObject | CSSPropObject<CSSSlotObject>,\n style: Style<Y> | undefined = {},\n) {\n const variants = Object.entries(propVariants)\n\n return function (options: GetStyleOptions) {\n if (!variants.length) return style\n\n variants.forEach(([name, variants]) => {\n const prop = props[name as keyof typeof props]\n\n if (prop) {\n const propStyle = getModifierStyle<Y>(prop, variants)(options)\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n } else {\n const boolean = Object.keys(variants).every((key) => isBooleanish(key))\n\n if (boolean) {\n const propStyle = getModifierStyle<Y>(\"false\", variants)(options)\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n }\n }\n })\n\n return style\n }\n}\n\nfunction getCompoundStyle<Y extends boolean = false>(\n props: Dict,\n compounds: ComponentCompound<CSSSlotObject>[] | ComponentCompound[],\n style: Style<Y> | undefined = {},\n) {\n return function (options: GetStyleOptions) {\n if (!compounds.length) return style\n\n compounds.forEach(({ css, layer, ...rest }) => {\n const conditions = Object.entries(rest)\n\n if (!conditions.length) return\n\n const apply = conditions.every(([key, value]) =>\n isArray(value)\n ? value.includes(props[key])\n : isRegExp(value)\n ? value.test(props[key])\n : props[key] === value,\n )\n\n if (!apply) return\n\n style = merge(\n style,\n wrapStyle<Y>(layer ?? \"compounds\", css as Style<Y>)(options),\n )\n })\n\n return style\n }\n}\n\nexport function getSlotClassName<Y extends string>(\n className?: string,\n slot?: ComponentSlot<Y>,\n) {\n if (!className || !slot) return className\n\n if (isArray(slot)) {\n const [element, modifier] = slot.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else if (isObject(slot)) {\n const slotArray = toArray(slot.slot)\n const [element, modifier] = slotArray.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else {\n return bem(className, toKebabCase(slot as string))\n }\n}\n\nexport function mergeSlotCSS<Y extends string>(\n slot?: ComponentSlot<Y>,\n style?: CSSSlotObject<Y>,\n css?: CSSObject | CSSObject[],\n): CSSObject | CSSObject[] | undefined {\n if (!style || !slot) return css\n\n const temp: (CSSObject | undefined)[] = []\n\n if (isArray(slot)) {\n temp.push(...slot.map((slot) => style[slot]))\n } else if (isObject(slot)) {\n if (isArray(slot.slot)) {\n temp.push(...slot.slot.map((slot) => style[slot]))\n } else {\n temp.push(style[slot.slot])\n }\n } else {\n temp.push(style[slot])\n }\n\n if (css) temp.push(...toArray(css))\n\n const result = filterEmpty(temp)\n\n return !!result.length ? result : undefined\n}\n\nfunction omitThemeProps<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, omitKeys: string[] = [], transferProps?: D[]) {\n if (transferProps)\n omitKeys = omitKeys.filter((key) => !transferProps.includes(key as D))\n\n return omitObject(props, omitKeys) as unknown as WithoutThemeProps<Y, M, D>\n}\n\nfunction wrapStyle<Y extends boolean = false>(\n layer: LayerScheme,\n style?: Style<Y>,\n) {\n return function ({ hasSlot, wrap }: GetStyleOptions) {\n if (hasSlot) {\n if (!style) return undefined\n\n return Object.fromEntries(\n Object.entries(style).map(([slot, style]) => [\n slot,\n wrap?.(layer, style) ?? style,\n ]),\n )\n } else {\n return wrap?.(layer, style) ?? style\n }\n }\n}\n\nfunction getHasAtRuleStyle(css?: CSSObject | CSSObject[]) {\n return (getAtRule?: Layers[\"getAtRule\"]) => {\n let hasVariant = false\n let hasSize = false\n\n if (!css || !getAtRule) return { hasSize, hasVariant }\n\n const variantAtRule = getAtRule(\"variant\")\n const sizeAtRule = getAtRule(\"size\")\n\n css = toArray(css)\n\n css.forEach((css) => {\n const keys = Object.keys(css)\n\n if (keys.includes(variantAtRule)) hasVariant = true\n if (keys.includes(sizeAtRule)) hasSize = true\n })\n\n return { hasSize, hasVariant }\n }\n}\n\nfunction mergeDefaultProps<\n Y extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n M extends Dict = Dict,\n>(defaultProps: Y[\"defaultProps\"], props: M) {\n return Object.entries(defaultProps ?? {}).reduce<Dict>(\n (prev, [key, value]) => {\n prev[key] ??= value\n\n return prev\n },\n props,\n ) as M\n}\n\ninterface UseStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n> {\n className?: string\n style?: M\n hasSlot?: H\n slot?: ComponentSlot<ComponentSlotName<M>>\n transferProps?: D[]\n}\n\nfunction useStyle<\n Y extends HTMLStyledProps & ThemeProps<{}> = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n>(\n props: Y,\n {\n className: defaultClassName,\n style: componentStyle,\n hasSlot,\n slot,\n transferProps,\n }: UseStyleOptions<Y, M, D, H> = {},\n): [Style<H>, WithoutThemeProps<Y, M, D>] {\n const system = useSystem()\n const { getAtRule, wrap } = system.layers\n const rootColorScheme = useColorSchemeContext()\n const options = { ...system.breakpoints, hasSlot, wrap }\n\n const propsRef = useRef<Dict>({})\n const mergedPropsRef = useRef<Dict>({})\n const styleRef = useRef<Style<H> | undefined>(undefined)\n\n const hasComponentStyle =\n componentStyle && !!Object.keys(componentStyle).length\n\n if (hasComponentStyle) {\n const {\n className: customClassName,\n base,\n compounds,\n props: propVariants,\n sizes,\n variants,\n defaultProps: { colorScheme: defaultColorScheme, ...defaultProps } = {},\n } = componentStyle\n\n const colorScheme =\n props.colorScheme ?? rootColorScheme ?? defaultColorScheme\n\n const className = cx(defaultClassName ?? customClassName, props.className)\n const mergedProps = {\n ...mergeDefaultProps(defaultProps, props),\n className,\n colorScheme,\n }\n const omitProps = Object.keys(propVariants ?? {})\n const { size, variant } = mergedProps\n\n if (variants) omitProps.push(\"variant\")\n if (sizes) omitProps.push(\"size\")\n\n const computedProps = omitThemeProps(\n mergedProps,\n omitProps,\n transferProps,\n ) as Y\n\n if (\n !isEqualProps(mergedPropsRef.current, mergedProps, [\"css\", \"children\"])\n ) {\n const { hasSize, hasVariant } = getHasAtRuleStyle(props.css)(getAtRule)\n\n let style: Style<H> = {}\n\n if (base) {\n const baseStyle = getStyle<H>(base)(options)\n\n style = merge(style, wrapStyle<H>(\"base\", baseStyle)(options))\n }\n\n if (sizes && !hasSize) {\n const sizeStyle = merge(\n sizes.base,\n getModifierStyle<H>(size, sizes)(options),\n )\n\n style = merge(style, wrapStyle<H>(\"size\", sizeStyle)(options))\n }\n\n if (variants && !hasVariant) {\n const variantStyle = merge(\n variants.base,\n getModifierStyle<H>(variant, variants)(options),\n )\n\n style = merge(style, wrapStyle<H>(\"variant\", variantStyle)(options))\n }\n\n if (propVariants)\n style = getPropStyle<H>(mergedProps, propVariants, style)(options)\n\n if (compounds)\n style = getCompoundStyle<H>(mergedProps, compounds, style)(options)\n\n styleRef.current = style\n\n if (hasSlot) {\n computedProps.css = mergeSlotCSS<ComponentSlotName<M>>(\n slot,\n style as CSSSlotObject,\n computedProps.css,\n )\n } else {\n computedProps.css = mergeCSS(style as CSSObject, computedProps.css)\n }\n } else {\n computedProps.css = propsRef.current.css\n }\n\n mergedPropsRef.current = mergedProps\n\n if (!isEqualProps(propsRef.current, computedProps))\n propsRef.current = computedProps\n } else {\n const className = cx(defaultClassName, props.className)\n\n if (className) props.className = className\n\n if (!isEqualProps(propsRef.current, props))\n propsRef.current = props as unknown as WithoutThemeProps<Y, M, D>\n }\n\n return [\n styleRef.current ?? {},\n propsRef.current as WithoutThemeProps<Y, M, D>,\n ]\n}\n\nexport interface UseComponentStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D>, \"hasSlot\" | \"slot\"> {}\n\nexport function useComponentStyle<\n Y extends Dict = Dict,\n M extends ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D>(props, options)\n}\n\nexport interface UseComponentSlotStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D, true>, \"hasSlot\"> {}\n\nexport function useComponentSlotStyle<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle = ComponentSlotStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentSlotStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D, true>(props, { ...options, hasSlot: true })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-component-style.cjs","names":["style","conditions","getCondition","style: Style<Y> | undefined","variants","temp: (CSSObject | undefined)[]","slot","css","useSystem","useColorSchemeContext","isEqualProps","style: Style<H>","mergeCSS"],"sources":["../../../../src/core/components/use-component-style.ts"],"sourcesContent":["\"use client\"\n\nimport type { Dict } from \"../../utils\"\nimport type {\n ColorModeArray,\n CSSModifierObject,\n CSSObject,\n CSSPropObject,\n CSSSlotObject,\n ResponsiveWithConditionObject,\n StyleValueWithCondition,\n} from \"../css\"\nimport type {\n Breakpoints,\n ComponentCompound,\n ComponentSlotStyle,\n ComponentStyle,\n Layers,\n LayerScheme,\n ThemeProps,\n WithoutThemeProps,\n} from \"../system\"\nimport type { ComponentSlot, ComponentSlotName } from \"./create-component\"\nimport type { HTMLStyledProps } from \"./index.types\"\nimport { useRef } from \"react\"\nimport {\n bem,\n cx,\n filterEmpty,\n isArray,\n isBooleanish,\n isEmptyObject,\n isObject,\n isRegExp,\n isUndefined,\n merge,\n omitObject,\n toArray,\n toKebabCase,\n} from \"../../utils\"\nimport { conditions, getCondition, mergeCSS } from \"../css\"\nimport { useColorSchemeContext, useSystem } from \"../system\"\nimport { isEqualProps } from \"./props\"\n\ntype Style<Y extends boolean = false> = Y extends false\n ? CSSObject\n : CSSSlotObject\n\ntype MergedStyle = CSSModifierObject | CSSModifierObject<CSSSlotObject>\n\ninterface GetStyleOptions\n extends Partial<Breakpoints>, Pick<Partial<Layers>, \"wrap\"> {\n hasSlot?: boolean\n selectors?: (string | undefined)[]\n}\n\nfunction getSelectorStyle<Y extends Dict = Dict>(\n selectors: (string | undefined)[],\n style: Y,\n) {\n return selectors.reduceRight<Dict>(\n (prev, key) => (key ? { [key]: prev } : prev),\n style,\n ) as Y\n}\n\nfunction getStyle<Y extends boolean = false>(\n style: CSSObject | CSSSlotObject | undefined,\n) {\n return function ({\n hasSlot = false,\n selectors = [],\n }: GetStyleOptions): Style<Y> | undefined {\n if (!style || isEmptyObject(style)) return\n\n if (hasSlot) {\n return Object.fromEntries(\n Object.entries(style as CSSSlotObject).map(([name, style]) => {\n if (selectors.length) {\n return [name, getSelectorStyle(selectors, style ?? {})]\n } else {\n return [name, style]\n }\n }),\n ) as Style<Y>\n } else if (selectors.length) {\n return getSelectorStyle(selectors, style) as Style<Y>\n } else {\n return style as Style<Y>\n }\n }\n}\n\nfunction getColorModeStyle<Y extends boolean = false>(\n value: ColorModeArray<string>,\n mergedStyle: MergedStyle,\n) {\n return function ({ selectors = [], ...rest }: GetStyleOptions) {\n const [lightValue, darkValue] = value\n\n const lightStyle = getModifierStyle<Y>(\n lightValue,\n mergedStyle,\n )({ ...rest, selectors })\n\n const darkStyle = getModifierStyle<Y>(\n darkValue,\n mergedStyle,\n )({ ...rest, selectors: [...selectors, conditions._dark] })\n\n return merge(lightStyle, darkStyle)\n }\n}\n\nfunction getConditionStyle<Y extends boolean = false>(\n value: ResponsiveWithConditionObject<string>,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions) {\n const { isResponsiveKey, queries = [], selectors = [] } = options\n const conditionalKeys = Object.keys(value).filter(\n (key) => !isResponsiveKey?.(key),\n )\n\n const breakpointObj = queries.reduce<Style<Y>>(\n (prev, { breakpoint, query }) => {\n if (!isUndefined(value[breakpoint])) {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[breakpoint],\n mergedStyle,\n )({ ...options, selectors: [...selectors, query] }),\n )\n }\n\n return prev\n },\n {},\n )\n\n const additionalObj = conditionalKeys.reduce<Style<Y>>((prev, key) => {\n prev = merge(\n prev,\n getModifierStyle<Y>(\n value[key as keyof typeof value],\n mergedStyle,\n )({ ...options, selectors: [...selectors, getCondition(key)] }),\n )\n\n return prev\n }, {})\n\n return merge(breakpointObj, additionalObj)\n }\n}\n\nfunction getModifierStyle<Y extends boolean = false>(\n value: StyleValueWithCondition<string> | undefined,\n mergedStyle: MergedStyle,\n) {\n return function (options: GetStyleOptions): Style<Y> | undefined {\n let style: Style<Y> | undefined = undefined\n\n if (!value) return style\n\n if (isArray(value)) {\n style = getColorModeStyle<Y>(value, mergedStyle)(options)\n } else if (isObject(value)) {\n style = getConditionStyle<Y>(value, mergedStyle)(options)\n } else {\n style = getStyle<Y>(mergedStyle[value])(options)\n }\n\n return style\n }\n}\n\nfunction getPropStyle<Y extends boolean = false>(\n props: Dict,\n propVariants: CSSPropObject | CSSPropObject<CSSSlotObject>,\n style: Style<Y> | undefined = {},\n) {\n const variants = Object.entries(propVariants)\n\n return function (options: GetStyleOptions) {\n if (!variants.length) return style\n\n variants.forEach(([name, variants]) => {\n const prop = props[name as keyof typeof props]\n\n if (prop) {\n const propStyle = getModifierStyle<Y>(prop, variants)(options)\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n } else {\n const boolean = Object.keys(variants).every((key) => isBooleanish(key))\n\n if (boolean) {\n const propStyle = getModifierStyle<Y>(\"false\", variants)(options)\n\n if (propStyle)\n style = merge(style, wrapStyle<Y>(\"props\", propStyle)(options))\n }\n }\n })\n\n return style\n }\n}\n\nfunction getCompoundStyle<Y extends boolean = false>(\n props: Dict,\n compounds: ComponentCompound<CSSSlotObject>[] | ComponentCompound[],\n style: Style<Y> | undefined = {},\n) {\n return function (options: GetStyleOptions) {\n if (!compounds.length) return style\n\n compounds.forEach(({ css, layer, ...rest }) => {\n const conditions = Object.entries(rest)\n\n if (!conditions.length) return\n\n const apply = conditions.every(([key, value]) =>\n isArray(value)\n ? value.includes(props[key])\n : isRegExp(value)\n ? value.test(props[key])\n : props[key] === value,\n )\n\n if (!apply) return\n\n style = merge(\n style,\n wrapStyle<Y>(layer ?? \"compounds\", css as Style<Y>)(options),\n )\n })\n\n return style\n }\n}\n\nexport function getSlotClassName<Y extends string>(\n className?: string,\n slot?: ComponentSlot<Y>,\n) {\n if (!className || !slot) return className\n\n if (isArray(slot)) {\n const [element, modifier] = slot.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else if (isObject(slot)) {\n const slotArray = toArray(slot.slot)\n const [element, modifier] = slotArray.map((value) =>\n toKebabCase(value as string),\n )\n\n return cx(bem(className, element), bem(className, element, modifier))\n } else {\n return bem(className, toKebabCase(slot as string))\n }\n}\n\nexport function mergeSlotCSS<Y extends string>(\n slot?: ComponentSlot<Y>,\n style?: CSSSlotObject<Y>,\n css?: CSSObject | CSSObject[],\n): CSSObject | CSSObject[] | undefined {\n if (!style || !slot) return css\n\n const temp: (CSSObject | undefined)[] = []\n\n if (isArray(slot)) {\n temp.push(...slot.map((slot) => style[slot]))\n } else if (isObject(slot)) {\n if (isArray(slot.slot)) {\n temp.push(...slot.slot.map((slot) => style[slot]))\n } else {\n temp.push(style[slot.slot])\n }\n } else {\n temp.push(style[slot])\n }\n\n if (css) temp.push(...toArray(css))\n\n const result = filterEmpty(temp)\n\n return !!result.length ? result : undefined\n}\n\nfunction omitThemeProps<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, omitKeys: string[] = [], transferProps?: D[]) {\n if (transferProps)\n omitKeys = omitKeys.filter((key) => !transferProps.includes(key as D))\n\n return omitObject(props, omitKeys) as unknown as WithoutThemeProps<Y, M, D>\n}\n\nfunction wrapStyle<Y extends boolean = false>(\n layer: LayerScheme,\n style?: Style<Y>,\n) {\n return function ({ hasSlot, wrap }: GetStyleOptions) {\n if (hasSlot) {\n if (!style) return undefined\n\n return Object.fromEntries(\n Object.entries(style).map(([slot, style]) => [\n slot,\n wrap?.(layer, style) ?? style,\n ]),\n )\n } else {\n return wrap?.(layer, style) ?? style\n }\n }\n}\n\nfunction getHasAtRuleStyle(css?: CSSObject | CSSObject[]) {\n return (getAtRule?: Layers[\"getAtRule\"]) => {\n let hasVariant = false\n let hasSize = false\n\n if (!css || !getAtRule) return { hasSize, hasVariant }\n\n const variantAtRule = getAtRule(\"variant\")\n const sizeAtRule = getAtRule(\"size\")\n\n css = toArray(css)\n\n css.forEach((css) => {\n const keys = Object.keys(css)\n\n if (keys.includes(variantAtRule)) hasVariant = true\n if (keys.includes(sizeAtRule)) hasSize = true\n })\n\n return { hasSize, hasVariant }\n }\n}\n\nfunction mergeDefaultProps<\n Y extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n M extends Dict = Dict,\n>(defaultProps: Y[\"defaultProps\"], props: M) {\n return Object.entries(defaultProps ?? {}).reduce<Dict>(\n (prev, [key, value]) => {\n prev[key] ??= value\n\n return prev\n },\n props,\n ) as M\n}\n\ninterface UseStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n> {\n className?: string\n hasSlot?: H\n slot?: ComponentSlot<ComponentSlotName<M>>\n style?: M\n transferProps?: D[]\n}\n\nfunction useStyle<\n Y extends HTMLStyledProps & ThemeProps<{}> = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n H extends boolean = false,\n>(\n props: Y,\n {\n className: defaultClassName,\n style: componentStyle,\n hasSlot,\n slot,\n transferProps,\n }: UseStyleOptions<Y, M, D, H> = {},\n): [Style<H>, WithoutThemeProps<Y, M, D>] {\n const system = useSystem()\n const { getAtRule, wrap } = system.layers\n const rootColorScheme = useColorSchemeContext()\n const options = { ...system.breakpoints, hasSlot, wrap }\n\n const propsRef = useRef<Dict>({})\n const mergedPropsRef = useRef<Dict>({})\n const styleRef = useRef<Style<H> | undefined>(undefined)\n\n const hasComponentStyle =\n componentStyle && !!Object.keys(componentStyle).length\n\n if (hasComponentStyle) {\n const {\n className: customClassName,\n base,\n compounds,\n props: propVariants,\n sizes,\n variants,\n defaultProps: { colorScheme: defaultColorScheme, ...defaultProps } = {},\n } = componentStyle\n\n const colorScheme =\n props.colorScheme ?? rootColorScheme ?? defaultColorScheme\n\n const className = cx(defaultClassName ?? customClassName, props.className)\n const mergedProps = {\n ...mergeDefaultProps(defaultProps, props),\n className,\n colorScheme,\n }\n const omitProps = Object.keys(propVariants ?? {})\n const { size, variant } = mergedProps\n\n if (variants) omitProps.push(\"variant\")\n if (sizes) omitProps.push(\"size\")\n\n const computedProps = omitThemeProps(\n mergedProps,\n omitProps,\n transferProps,\n ) as Y\n\n if (\n !isEqualProps(mergedPropsRef.current, mergedProps, [\"css\", \"children\"])\n ) {\n const { hasSize, hasVariant } = getHasAtRuleStyle(props.css)(getAtRule)\n\n let style: Style<H> = {}\n\n if (base) {\n const baseStyle = getStyle<H>(base)(options)\n\n style = merge(style, wrapStyle<H>(\"base\", baseStyle)(options))\n }\n\n if (sizes && !hasSize) {\n const sizeStyle = merge(\n sizes.base,\n getModifierStyle<H>(size, sizes)(options),\n )\n\n style = merge(style, wrapStyle<H>(\"size\", sizeStyle)(options))\n }\n\n if (variants && !hasVariant) {\n const variantStyle = merge(\n variants.base,\n getModifierStyle<H>(variant, variants)(options),\n )\n\n style = merge(style, wrapStyle<H>(\"variant\", variantStyle)(options))\n }\n\n if (propVariants)\n style = getPropStyle<H>(mergedProps, propVariants, style)(options)\n\n if (compounds)\n style = getCompoundStyle<H>(mergedProps, compounds, style)(options)\n\n styleRef.current = style\n\n if (hasSlot) {\n computedProps.css = mergeSlotCSS<ComponentSlotName<M>>(\n slot,\n style as CSSSlotObject,\n computedProps.css,\n )\n } else {\n computedProps.css = mergeCSS(style as CSSObject, computedProps.css)\n }\n } else {\n computedProps.css = propsRef.current.css\n }\n\n mergedPropsRef.current = mergedProps\n\n if (!isEqualProps(propsRef.current, computedProps))\n propsRef.current = computedProps\n } else {\n const className = cx(defaultClassName, props.className)\n\n if (className) props.className = className\n\n if (!isEqualProps(propsRef.current, props))\n propsRef.current = props as unknown as WithoutThemeProps<Y, M, D>\n }\n\n return [\n styleRef.current ?? {},\n propsRef.current as WithoutThemeProps<Y, M, D>,\n ]\n}\n\nexport interface UseComponentStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D>, \"hasSlot\" | \"slot\"> {}\n\nexport function useComponentStyle<\n Y extends Dict = Dict,\n M extends ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D>(props, options)\n}\n\nexport interface UseComponentSlotStyleOptions<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle | ComponentStyle = ComponentStyle,\n D extends keyof Y = keyof Y,\n> extends Omit<UseStyleOptions<Y, M, D, true>, \"hasSlot\"> {}\n\nexport function useComponentSlotStyle<\n Y extends Dict = Dict,\n M extends ComponentSlotStyle = ComponentSlotStyle,\n D extends keyof Y = keyof Y,\n>(props: Y, options: UseComponentSlotStyleOptions<Y, M, D> = {}) {\n return useStyle<Y, M, D, true>(props, { ...options, hasSlot: true })\n}\n"],"mappings":"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"}
|