@yamada-ui/react 2.2.6 → 2.2.7-dev-20260804111744
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/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/cjs/components/accordion/accordion.cjs +4 -2
- package/dist/cjs/components/accordion/accordion.cjs.map +1 -1
- package/dist/cjs/components/accordion/use-accordion.cjs +1 -0
- package/dist/cjs/components/accordion/use-accordion.cjs.map +1 -1
- package/dist/cjs/components/action-bar/action-bar.cjs +1 -0
- package/dist/cjs/components/action-bar/action-bar.cjs.map +1 -1
- package/dist/cjs/components/action-bar/use-action-bar.cjs +1 -0
- package/dist/cjs/components/action-bar/use-action-bar.cjs.map +1 -1
- package/dist/cjs/components/airy/airy.cjs +1 -0
- package/dist/cjs/components/airy/airy.cjs.map +1 -1
- package/dist/cjs/components/alert/alert.cjs +5 -2
- package/dist/cjs/components/alert/alert.cjs.map +1 -1
- package/dist/cjs/components/alpha-slider/alpha-slider.cjs +1 -0
- package/dist/cjs/components/alpha-slider/alpha-slider.cjs.map +1 -1
- package/dist/cjs/components/aspect-ratio/aspect-ratio.cjs +1 -0
- package/dist/cjs/components/aspect-ratio/aspect-ratio.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete.cjs +14 -10
- package/dist/cjs/components/autocomplete/autocomplete.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/use-autocomplete.cjs +1 -0
- package/dist/cjs/components/autocomplete/use-autocomplete.cjs.map +1 -1
- package/dist/cjs/components/avatar/avatar-group.cjs +13 -11
- package/dist/cjs/components/avatar/avatar-group.cjs.map +1 -1
- package/dist/cjs/components/avatar/use-avatar-group.cjs +1 -0
- package/dist/cjs/components/avatar/use-avatar-group.cjs.map +1 -1
- package/dist/cjs/components/avatar/use-avatar.cjs +1 -0
- package/dist/cjs/components/avatar/use-avatar.cjs.map +1 -1
- package/dist/cjs/components/blockquote/blockquote.cjs +1 -0
- package/dist/cjs/components/blockquote/blockquote.cjs.map +1 -1
- package/dist/cjs/components/breadcrumb/breadcrumb.cjs +1 -0
- package/dist/cjs/components/breadcrumb/breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/breadcrumb/use-breadcrumb.cjs +1 -0
- package/dist/cjs/components/breadcrumb/use-breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/button/button-group.cjs +1 -0
- package/dist/cjs/components/button/button-group.cjs.map +1 -1
- package/dist/cjs/components/button/button.cjs +9 -5
- package/dist/cjs/components/button/button.cjs.map +1 -1
- package/dist/cjs/components/calendar/calendar.cjs +1 -0
- package/dist/cjs/components/calendar/calendar.cjs.map +1 -1
- package/dist/cjs/components/calendar/use-calendar.cjs.map +1 -1
- package/dist/cjs/components/carousel/carousel.cjs +27 -25
- package/dist/cjs/components/carousel/carousel.cjs.map +1 -1
- package/dist/cjs/components/carousel/use-carousel.cjs.map +1 -1
- package/dist/cjs/components/chart/area-chart.cjs +6 -4
- package/dist/cjs/components/chart/area-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/bar-chart.cjs +6 -4
- package/dist/cjs/components/chart/bar-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/cartesian-chart.cjs +146 -139
- package/dist/cjs/components/chart/cartesian-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/chart.cjs +3 -1
- package/dist/cjs/components/chart/chart.cjs.map +1 -1
- package/dist/cjs/components/chart/composed-chart.cjs +16 -14
- package/dist/cjs/components/chart/composed-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/donut-chart.cjs +8 -5
- package/dist/cjs/components/chart/donut-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/line-chart.cjs +6 -4
- package/dist/cjs/components/chart/line-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/pie-chart.cjs +8 -5
- package/dist/cjs/components/chart/pie-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/polar-chart.cjs +119 -111
- package/dist/cjs/components/chart/polar-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/radar-chart.cjs +6 -4
- package/dist/cjs/components/chart/radar-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/radial-chart.cjs +1 -0
- package/dist/cjs/components/chart/radial-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/use-cartesian-chart.cjs +1 -0
- package/dist/cjs/components/chart/use-cartesian-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/use-chart.cjs +1 -0
- package/dist/cjs/components/chart/use-chart.cjs.map +1 -1
- package/dist/cjs/components/chart/use-polar-chart.cjs +1 -0
- package/dist/cjs/components/chart/use-polar-chart.cjs.map +1 -1
- package/dist/cjs/components/checkbox/checkbox-group.cjs +39 -36
- package/dist/cjs/components/checkbox/checkbox-group.cjs.map +1 -1
- package/dist/cjs/components/checkbox/checkbox.cjs +1 -0
- package/dist/cjs/components/checkbox/checkbox.cjs.map +1 -1
- package/dist/cjs/components/checkbox/use-checkbox-group.cjs +1 -0
- package/dist/cjs/components/checkbox/use-checkbox-group.cjs.map +1 -1
- package/dist/cjs/components/checkbox/use-checkbox.cjs +3 -1
- package/dist/cjs/components/checkbox/use-checkbox.cjs.map +1 -1
- package/dist/cjs/components/checkbox-card/checkbox-card-group.cjs +43 -40
- package/dist/cjs/components/checkbox-card/checkbox-card-group.cjs.map +1 -1
- package/dist/cjs/components/checkbox-card/checkbox-card.cjs +1 -0
- package/dist/cjs/components/checkbox-card/checkbox-card.cjs.map +1 -1
- package/dist/cjs/components/circle-progress/circle-progress.cjs.map +1 -1
- package/dist/cjs/components/client-only/client-only.cjs +2 -1
- package/dist/cjs/components/client-only/client-only.cjs.map +1 -1
- package/dist/cjs/components/collapse/collapse.cjs +1 -0
- package/dist/cjs/components/collapse/collapse.cjs.map +1 -1
- package/dist/cjs/components/color-picker/color-picker.cjs +3 -1
- package/dist/cjs/components/color-picker/color-picker.cjs.map +1 -1
- package/dist/cjs/components/color-picker/use-color-picker.cjs +1 -0
- package/dist/cjs/components/color-picker/use-color-picker.cjs.map +1 -1
- package/dist/cjs/components/color-selector/color-selector.cjs +3 -1
- package/dist/cjs/components/color-selector/color-selector.cjs.map +1 -1
- package/dist/cjs/components/color-selector/use-color-selector.cjs +1 -0
- package/dist/cjs/components/color-selector/use-color-selector.cjs.map +1 -1
- package/dist/cjs/components/color-swatch/color-swatch.cjs.map +1 -1
- package/dist/cjs/components/data-list/data-list.cjs +9 -5
- package/dist/cjs/components/data-list/data-list.cjs.map +1 -1
- package/dist/cjs/components/date-picker/date-picker.cjs +3 -1
- package/dist/cjs/components/date-picker/date-picker.cjs.map +1 -1
- package/dist/cjs/components/date-picker/use-date-picker.cjs.map +1 -1
- package/dist/cjs/components/drawer/drawer.cjs +1 -0
- package/dist/cjs/components/drawer/drawer.cjs.map +1 -1
- package/dist/cjs/components/drawer/use-drawer.cjs +2 -3
- package/dist/cjs/components/drawer/use-drawer.cjs.map +1 -1
- package/dist/cjs/components/dropzone/dropzone.cjs +3 -1
- package/dist/cjs/components/dropzone/dropzone.cjs.map +1 -1
- package/dist/cjs/components/dropzone/use-dropzone.cjs +1 -0
- package/dist/cjs/components/dropzone/use-dropzone.cjs.map +1 -1
- package/dist/cjs/components/editable/editable.cjs.map +1 -1
- package/dist/cjs/components/editable/use-editable.cjs +1 -0
- package/dist/cjs/components/editable/use-editable.cjs.map +1 -1
- package/dist/cjs/components/fade/fade.cjs +1 -0
- package/dist/cjs/components/fade/fade.cjs.map +1 -1
- package/dist/cjs/components/fade-scale/fade-scale.cjs +1 -0
- package/dist/cjs/components/fade-scale/fade-scale.cjs.map +1 -1
- package/dist/cjs/components/field/field.cjs +1 -0
- package/dist/cjs/components/field/field.cjs.map +1 -1
- package/dist/cjs/components/field/use-field-props.cjs +1 -0
- package/dist/cjs/components/field/use-field-props.cjs.map +1 -1
- package/dist/cjs/components/fieldset/fieldset.cjs +1 -0
- package/dist/cjs/components/fieldset/fieldset.cjs.map +1 -1
- package/dist/cjs/components/file-button/use-file-button.cjs +1 -0
- package/dist/cjs/components/file-button/use-file-button.cjs.map +1 -1
- package/dist/cjs/components/file-input/file-input.cjs +3 -1
- package/dist/cjs/components/file-input/file-input.cjs.map +1 -1
- package/dist/cjs/components/file-input/use-file-input.cjs +1 -0
- package/dist/cjs/components/file-input/use-file-input.cjs.map +1 -1
- package/dist/cjs/components/flip/flip.cjs +1 -0
- package/dist/cjs/components/flip/flip.cjs.map +1 -1
- package/dist/cjs/components/float/float.cjs.map +1 -1
- package/dist/cjs/components/focus-lock/focus-lock.cjs.map +1 -1
- package/dist/cjs/components/for/for.cjs.map +1 -1
- package/dist/cjs/components/form/form.cjs +1 -0
- package/dist/cjs/components/form/form.cjs.map +1 -1
- package/dist/cjs/components/format/use-format-byte.cjs +1 -0
- package/dist/cjs/components/format/use-format-byte.cjs.map +1 -1
- package/dist/cjs/components/format/use-format-date-time.cjs +1 -0
- package/dist/cjs/components/format/use-format-date-time.cjs.map +1 -1
- package/dist/cjs/components/format/use-format-number.cjs +1 -0
- package/dist/cjs/components/format/use-format-number.cjs.map +1 -1
- package/dist/cjs/components/grid/grid-item.cjs.map +1 -1
- package/dist/cjs/components/group/group.cjs.map +1 -1
- package/dist/cjs/components/group/use-group.cjs +1 -0
- package/dist/cjs/components/group/use-group.cjs.map +1 -1
- package/dist/cjs/components/highlight/highlight.cjs +1 -0
- package/dist/cjs/components/highlight/highlight.cjs.map +1 -1
- package/dist/cjs/components/highlight/use-highlight.cjs +1 -0
- package/dist/cjs/components/highlight/use-highlight.cjs.map +1 -1
- package/dist/cjs/components/hue-slider/hue-slider.cjs +1 -0
- package/dist/cjs/components/hue-slider/hue-slider.cjs.map +1 -1
- package/dist/cjs/components/icon/icons/index.cjs +30 -6
- package/dist/cjs/components/icon/icons/index.cjs.map +1 -1
- package/dist/cjs/components/icon/icons/layout-freeform-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/layout-freeform-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/mic-audio-lines-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/mic-audio-lines-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/mic-signal-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/mic-signal-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/mosque-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/mosque-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/rotate-ccw-clock-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/rotate-ccw-clock-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/rotate-cw-fading-clock-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/rotate-cw-fading-clock-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/scan-square-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/scan-square-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/shield-keyhole-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/shield-keyhole-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/square-off-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/square-off-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/icons/user-shield-icon.cjs +14 -0
- package/dist/cjs/components/icon/icons/user-shield-icon.cjs.map +1 -0
- package/dist/cjs/components/icon/index.cjs +20 -4
- package/dist/cjs/components/indicator/indicator.cjs +1 -0
- package/dist/cjs/components/indicator/indicator.cjs.map +1 -1
- package/dist/cjs/components/infinite-scroll-area/infinite-scroll-area.cjs +3 -1
- package/dist/cjs/components/infinite-scroll-area/infinite-scroll-area.cjs.map +1 -1
- package/dist/cjs/components/infinite-scroll-area/use-infinite-scroll.cjs +1 -0
- package/dist/cjs/components/infinite-scroll-area/use-infinite-scroll.cjs.map +1 -1
- package/dist/cjs/components/input/input-group.cjs +14 -12
- package/dist/cjs/components/input/input-group.cjs.map +1 -1
- package/dist/cjs/components/input/input.style.cjs.map +1 -1
- package/dist/cjs/components/input/use-input-border.cjs +1 -0
- package/dist/cjs/components/input/use-input-border.cjs.map +1 -1
- package/dist/cjs/components/link-box/link-box.cjs.map +1 -1
- package/dist/cjs/components/list/list.cjs +1 -0
- package/dist/cjs/components/list/list.cjs.map +1 -1
- package/dist/cjs/components/loading/audio.cjs.map +1 -1
- package/dist/cjs/components/loading/background.cjs +1 -0
- package/dist/cjs/components/loading/background.cjs.map +1 -1
- package/dist/cjs/components/loading/circles.cjs.map +1 -1
- package/dist/cjs/components/loading/dots.cjs.map +1 -1
- package/dist/cjs/components/loading/grid.cjs.map +1 -1
- package/dist/cjs/components/loading/loading-provider.cjs +1 -0
- package/dist/cjs/components/loading/loading-provider.cjs.map +1 -1
- package/dist/cjs/components/loading/oval.cjs.map +1 -1
- package/dist/cjs/components/loading/page.cjs +1 -0
- package/dist/cjs/components/loading/page.cjs.map +1 -1
- package/dist/cjs/components/loading/puff.cjs.map +1 -1
- package/dist/cjs/components/loading/rings.cjs.map +1 -1
- package/dist/cjs/components/loading/screen.cjs +1 -0
- package/dist/cjs/components/loading/screen.cjs.map +1 -1
- package/dist/cjs/components/loading/suspense.cjs +1 -0
- package/dist/cjs/components/loading/suspense.cjs.map +1 -1
- package/dist/cjs/components/loading/use-loading-component.cjs +1 -0
- package/dist/cjs/components/loading/use-loading-component.cjs.map +1 -1
- package/dist/cjs/components/menu/menu.cjs +13 -10
- package/dist/cjs/components/menu/menu.cjs.map +1 -1
- package/dist/cjs/components/menu/use-menu.cjs +1 -0
- package/dist/cjs/components/menu/use-menu.cjs.map +1 -1
- package/dist/cjs/components/modal/modal.cjs +1 -0
- package/dist/cjs/components/modal/modal.cjs.map +1 -1
- package/dist/cjs/components/modal/use-modal.cjs +1 -0
- package/dist/cjs/components/modal/use-modal.cjs.map +1 -1
- package/dist/cjs/components/motion/motion.cjs +1 -0
- package/dist/cjs/components/motion/motion.cjs.map +1 -1
- package/dist/cjs/components/motion/transition.cjs.map +1 -1
- package/dist/cjs/components/native-accordion/native-accordion.cjs +1 -0
- package/dist/cjs/components/native-accordion/native-accordion.cjs.map +1 -1
- package/dist/cjs/components/native-accordion/use-native-accordion.cjs +1 -0
- package/dist/cjs/components/native-accordion/use-native-accordion.cjs.map +1 -1
- package/dist/cjs/components/native-popover/native-popover.cjs +1 -0
- package/dist/cjs/components/native-popover/native-popover.cjs.map +1 -1
- package/dist/cjs/components/native-popover/use-native-popover.cjs +1 -0
- package/dist/cjs/components/native-popover/use-native-popover.cjs.map +1 -1
- package/dist/cjs/components/native-select/native-select.cjs +2 -1
- package/dist/cjs/components/native-select/native-select.cjs.map +1 -1
- package/dist/cjs/components/native-select/use-native-select.cjs +1 -0
- package/dist/cjs/components/native-select/use-native-select.cjs.map +1 -1
- package/dist/cjs/components/notice/notice-provider.cjs +1 -0
- package/dist/cjs/components/notice/notice-provider.cjs.map +1 -1
- package/dist/cjs/components/notice/notice.cjs +1 -0
- package/dist/cjs/components/notice/notice.cjs.map +1 -1
- package/dist/cjs/components/notice/use-notice.cjs +1 -0
- package/dist/cjs/components/notice/use-notice.cjs.map +1 -1
- package/dist/cjs/components/number-input/number-input.cjs +2 -1
- package/dist/cjs/components/number-input/number-input.cjs.map +1 -1
- package/dist/cjs/components/number-input/use-number-counter.cjs +1 -0
- package/dist/cjs/components/number-input/use-number-counter.cjs.map +1 -1
- package/dist/cjs/components/number-input/use-number-input.cjs +1 -0
- package/dist/cjs/components/number-input/use-number-input.cjs.map +1 -1
- package/dist/cjs/components/number-input/use-spinner.cjs +1 -0
- package/dist/cjs/components/number-input/use-spinner.cjs.map +1 -1
- package/dist/cjs/components/pagination/pagination.cjs +1 -0
- package/dist/cjs/components/pagination/pagination.cjs.map +1 -1
- package/dist/cjs/components/pagination/use-pagination.cjs +1 -0
- package/dist/cjs/components/pagination/use-pagination.cjs.map +1 -1
- package/dist/cjs/components/password-input/password-input.cjs +2 -1
- package/dist/cjs/components/password-input/password-input.cjs.map +1 -1
- package/dist/cjs/components/password-input/use-password-input.cjs +1 -0
- package/dist/cjs/components/password-input/use-password-input.cjs.map +1 -1
- package/dist/cjs/components/password-input/use-strength-meter.cjs +1 -0
- package/dist/cjs/components/password-input/use-strength-meter.cjs.map +1 -1
- package/dist/cjs/components/picture/picture.cjs +1 -0
- package/dist/cjs/components/picture/picture.cjs.map +1 -1
- package/dist/cjs/components/pin-input/pin-input.cjs +1 -0
- package/dist/cjs/components/pin-input/pin-input.cjs.map +1 -1
- package/dist/cjs/components/pin-input/use-pin-input.cjs +1 -0
- package/dist/cjs/components/pin-input/use-pin-input.cjs.map +1 -1
- package/dist/cjs/components/popover/popover.cjs +1 -0
- package/dist/cjs/components/popover/popover.cjs.map +1 -1
- package/dist/cjs/components/popover/use-popover.cjs +1 -0
- package/dist/cjs/components/popover/use-popover.cjs.map +1 -1
- package/dist/cjs/components/portal/portal.cjs +1 -0
- package/dist/cjs/components/portal/portal.cjs.map +1 -1
- package/dist/cjs/components/progress/progress.cjs.map +1 -1
- package/dist/cjs/components/progress/use-progress.cjs +1 -0
- package/dist/cjs/components/progress/use-progress.cjs.map +1 -1
- package/dist/cjs/components/qr-code/qr-code.cjs +1 -0
- package/dist/cjs/components/qr-code/qr-code.cjs.map +1 -1
- package/dist/cjs/components/qr-code/use-qr-code.cjs +1 -0
- package/dist/cjs/components/qr-code/use-qr-code.cjs.map +1 -1
- package/dist/cjs/components/radio/radio-group.cjs +37 -34
- package/dist/cjs/components/radio/radio-group.cjs.map +1 -1
- package/dist/cjs/components/radio/radio.cjs +1 -0
- package/dist/cjs/components/radio/radio.cjs.map +1 -1
- package/dist/cjs/components/radio/use-radio-group.cjs +1 -0
- package/dist/cjs/components/radio/use-radio-group.cjs.map +1 -1
- package/dist/cjs/components/radio/use-radio.cjs +3 -1
- package/dist/cjs/components/radio/use-radio.cjs.map +1 -1
- package/dist/cjs/components/radio-card/radio-card-group.cjs +41 -38
- package/dist/cjs/components/radio-card/radio-card-group.cjs.map +1 -1
- package/dist/cjs/components/radio-card/radio-card.cjs +1 -0
- package/dist/cjs/components/radio-card/radio-card.cjs.map +1 -1
- package/dist/cjs/components/rating/rating.cjs +1 -0
- package/dist/cjs/components/rating/rating.cjs.map +1 -1
- package/dist/cjs/components/rating/use-rating.cjs +1 -0
- package/dist/cjs/components/rating/use-rating.cjs.map +1 -1
- package/dist/cjs/components/reorder/use-reorder.cjs +1 -0
- package/dist/cjs/components/reorder/use-reorder.cjs.map +1 -1
- package/dist/cjs/components/resizable/resizable.cjs +13 -10
- package/dist/cjs/components/resizable/resizable.cjs.map +1 -1
- package/dist/cjs/components/resizable/use-resizable.cjs +1 -0
- 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/ripple/use-ripple.cjs +1 -0
- package/dist/cjs/components/ripple/use-ripple.cjs.map +1 -1
- package/dist/cjs/components/rotate/rotate.cjs +1 -0
- package/dist/cjs/components/rotate/rotate.cjs.map +1 -1
- package/dist/cjs/components/saturation-slider/saturation-slider.cjs +1 -0
- package/dist/cjs/components/saturation-slider/saturation-slider.cjs.map +1 -1
- package/dist/cjs/components/saturation-slider/use-saturation-slider.cjs +1 -0
- package/dist/cjs/components/saturation-slider/use-saturation-slider.cjs.map +1 -1
- package/dist/cjs/components/scroll-area/use-scroll-area.cjs +1 -0
- package/dist/cjs/components/scroll-area/use-scroll-area.cjs.map +1 -1
- package/dist/cjs/components/segmented-control/segmented-control.cjs +3 -1
- package/dist/cjs/components/segmented-control/segmented-control.cjs.map +1 -1
- package/dist/cjs/components/segmented-control/use-segmented-control.cjs +1 -0
- package/dist/cjs/components/segmented-control/use-segmented-control.cjs.map +1 -1
- package/dist/cjs/components/select/select.cjs +14 -10
- package/dist/cjs/components/select/select.cjs.map +1 -1
- package/dist/cjs/components/select/use-select.cjs +1 -0
- package/dist/cjs/components/select/use-select.cjs.map +1 -1
- package/dist/cjs/components/show/show.cjs +1 -0
- package/dist/cjs/components/show/show.cjs.map +1 -1
- package/dist/cjs/components/sidebar/sidebar.cjs +6 -3
- package/dist/cjs/components/sidebar/sidebar.cjs.map +1 -1
- package/dist/cjs/components/sidebar/use-sidebar.cjs +1 -0
- package/dist/cjs/components/sidebar/use-sidebar.cjs.map +1 -1
- package/dist/cjs/components/simple-grid/simple-grid.cjs +1 -0
- package/dist/cjs/components/simple-grid/simple-grid.cjs.map +1 -1
- package/dist/cjs/components/skeleton/skeleton.cjs.map +1 -1
- package/dist/cjs/components/slide/slide.cjs +1 -0
- package/dist/cjs/components/slide/slide.cjs.map +1 -1
- package/dist/cjs/components/slide-fade/slide-fade.cjs +1 -0
- package/dist/cjs/components/slide-fade/slide-fade.cjs.map +1 -1
- package/dist/cjs/components/slider/slider.cjs +3 -1
- package/dist/cjs/components/slider/slider.cjs.map +1 -1
- package/dist/cjs/components/slider/use-slider.cjs +3 -1
- package/dist/cjs/components/slider/use-slider.cjs.map +1 -1
- package/dist/cjs/components/slot/slot.cjs +1 -0
- package/dist/cjs/components/slot/slot.cjs.map +1 -1
- package/dist/cjs/components/snacks/snacks.cjs +1 -0
- package/dist/cjs/components/snacks/snacks.cjs.map +1 -1
- package/dist/cjs/components/snacks/use-snacks.cjs +1 -0
- package/dist/cjs/components/snacks/use-snacks.cjs.map +1 -1
- package/dist/cjs/components/stack/stack.cjs +1 -0
- package/dist/cjs/components/stack/stack.cjs.map +1 -1
- package/dist/cjs/components/stack/z-stack.cjs +5 -2
- package/dist/cjs/components/stack/z-stack.cjs.map +1 -1
- package/dist/cjs/components/steps/steps.cjs +51 -47
- package/dist/cjs/components/steps/steps.cjs.map +1 -1
- package/dist/cjs/components/steps/use-steps.cjs +1 -0
- package/dist/cjs/components/steps/use-steps.cjs.map +1 -1
- package/dist/cjs/components/switch/switch.cjs.map +1 -1
- package/dist/cjs/components/switch/use-switch.cjs +1 -0
- package/dist/cjs/components/switch/use-switch.cjs.map +1 -1
- package/dist/cjs/components/table/table.cjs +51 -49
- package/dist/cjs/components/table/table.cjs.map +1 -1
- package/dist/cjs/components/tabs/tabs.cjs +23 -20
- package/dist/cjs/components/tabs/tabs.cjs.map +1 -1
- package/dist/cjs/components/tabs/use-tabs.cjs +1 -0
- package/dist/cjs/components/tabs/use-tabs.cjs.map +1 -1
- package/dist/cjs/components/tag/tag.cjs +1 -0
- package/dist/cjs/components/tag/tag.cjs.map +1 -1
- package/dist/cjs/components/textarea/use-autosize.cjs +1 -0
- package/dist/cjs/components/textarea/use-autosize.cjs.map +1 -1
- package/dist/cjs/components/textarea/use-textarea.cjs +1 -0
- package/dist/cjs/components/textarea/use-textarea.cjs.map +1 -1
- package/dist/cjs/components/timeline/timeline.cjs +1 -0
- package/dist/cjs/components/timeline/timeline.cjs.map +1 -1
- package/dist/cjs/components/tip/tip.cjs.map +1 -1
- package/dist/cjs/components/toggle/toggle-group.cjs +27 -24
- package/dist/cjs/components/toggle/toggle-group.cjs.map +1 -1
- package/dist/cjs/components/toggle/use-toggle-group.cjs +1 -0
- package/dist/cjs/components/toggle/use-toggle-group.cjs.map +1 -1
- package/dist/cjs/components/toggle/use-toggle.cjs +1 -0
- package/dist/cjs/components/toggle/use-toggle.cjs.map +1 -1
- package/dist/cjs/components/tooltip/tooltip.cjs.map +1 -1
- package/dist/cjs/components/tooltip/use-tooltip.cjs +1 -0
- package/dist/cjs/components/tooltip/use-tooltip.cjs.map +1 -1
- package/dist/cjs/components/tree/tree.cjs +1 -0
- package/dist/cjs/components/tree/tree.cjs.map +1 -1
- package/dist/cjs/components/tree/use-tree.cjs +1 -0
- package/dist/cjs/components/tree/use-tree.cjs.map +1 -1
- package/dist/cjs/core/components/create-component.cjs +5 -2
- package/dist/cjs/core/components/create-component.cjs.map +1 -1
- package/dist/cjs/core/components/props.cjs.map +1 -1
- package/dist/cjs/core/components/use-component-style.cjs +11 -6
- package/dist/cjs/core/components/use-component-style.cjs.map +1 -1
- package/dist/cjs/core/components/utils.cjs.map +1 -1
- package/dist/cjs/core/css/animation.cjs.map +1 -1
- package/dist/cjs/core/css/at-rule.cjs.map +1 -1
- package/dist/cjs/core/css/calc.cjs.map +1 -1
- package/dist/cjs/core/css/color-mix.cjs.map +1 -1
- package/dist/cjs/core/css/color-scheme.cjs.map +1 -1
- package/dist/cjs/core/css/config.cjs.map +1 -1
- package/dist/cjs/core/css/css.cjs +5 -3
- package/dist/cjs/core/css/css.cjs.map +1 -1
- package/dist/cjs/core/css/gradient.cjs.map +1 -1
- package/dist/cjs/core/css/merge-css.cjs.map +1 -1
- package/dist/cjs/core/css/style.cjs.map +1 -1
- package/dist/cjs/core/css/use-css.cjs +1 -0
- package/dist/cjs/core/css/use-css.cjs.map +1 -1
- package/dist/cjs/core/css/use-inject-vars.cjs +1 -0
- package/dist/cjs/core/css/use-inject-vars.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 +1 -0
- package/dist/cjs/core/system/color-mode-provider.cjs.map +1 -1
- package/dist/cjs/core/system/create-system.cjs.map +1 -1
- package/dist/cjs/core/system/environment-provider.cjs +1 -0
- package/dist/cjs/core/system/environment-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/system-provider.cjs +1 -0
- package/dist/cjs/core/system/system-provider.cjs.map +1 -1
- package/dist/cjs/core/system/theme-provider.cjs +5 -3
- package/dist/cjs/core/system/theme-provider.cjs.map +1 -1
- package/dist/cjs/core/system/use-system-color-mode.cjs +1 -0
- package/dist/cjs/core/system/use-system-color-mode.cjs.map +1 -1
- package/dist/cjs/core/system/var.cjs +2 -1
- package/dist/cjs/core/system/var.cjs.map +1 -1
- package/dist/cjs/hooks/use-animation/index.cjs +4 -2
- package/dist/cjs/hooks/use-animation/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-async/index.cjs +1 -0
- package/dist/cjs/hooks/use-async/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-async-callback/index.cjs +1 -0
- package/dist/cjs/hooks/use-async-callback/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-boolean/index.cjs +1 -0
- package/dist/cjs/hooks/use-boolean/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint-effect.cjs +1 -0
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint-effect.cjs.map +1 -1
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint-state.cjs +3 -1
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint-state.cjs.map +1 -1
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint-value.cjs +1 -0
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint-value.cjs.map +1 -1
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint.cjs +1 -0
- package/dist/cjs/hooks/use-breakpoint/use-breakpoint.cjs.map +1 -1
- package/dist/cjs/hooks/use-clickable/index.cjs +1 -0
- package/dist/cjs/hooks/use-clickable/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-clipboard/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 +1 -0
- package/dist/cjs/hooks/use-controllable-state/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-counter/index.cjs +1 -0
- package/dist/cjs/hooks/use-counter/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-descendants/index.cjs +1 -0
- package/dist/cjs/hooks/use-descendants/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-disclosure/use-disclosure.cjs +1 -0
- package/dist/cjs/hooks/use-disclosure/use-disclosure.cjs.map +1 -1
- package/dist/cjs/hooks/use-disclosure/use-promise-disclosure.cjs +1 -0
- package/dist/cjs/hooks/use-disclosure/use-promise-disclosure.cjs.map +1 -1
- package/dist/cjs/hooks/use-event-listener/index.cjs +1 -0
- package/dist/cjs/hooks/use-event-listener/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-eye-dropper/index.cjs +1 -0
- package/dist/cjs/hooks/use-eye-dropper/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-field-sizing/index.cjs +1 -0
- package/dist/cjs/hooks/use-field-sizing/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-focus/index.cjs +3 -1
- package/dist/cjs/hooks/use-focus/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-hover/index.cjs +1 -0
- package/dist/cjs/hooks/use-hover/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-idle/index.cjs +1 -0
- package/dist/cjs/hooks/use-idle/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-interval/index.cjs +1 -0
- package/dist/cjs/hooks/use-interval/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-lazy-mount/index.cjs +1 -0
- package/dist/cjs/hooks/use-lazy-mount/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-local-storage/index.cjs +1 -0
- package/dist/cjs/hooks/use-local-storage/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-media-query/index.cjs +1 -0
- package/dist/cjs/hooks/use-media-query/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-mounted/index.cjs +1 -0
- package/dist/cjs/hooks/use-mounted/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-online/index.cjs +1 -0
- package/dist/cjs/hooks/use-online/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-os/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-outside-click/index.cjs +1 -0
- package/dist/cjs/hooks/use-outside-click/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-pan-event/index.cjs +1 -0
- package/dist/cjs/hooks/use-pan-event/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-popper/index.cjs +1 -0
- package/dist/cjs/hooks/use-popper/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-previous/index.cjs +1 -0
- package/dist/cjs/hooks/use-previous/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-processing/index.cjs +1 -0
- package/dist/cjs/hooks/use-processing/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-resize-observer/index.cjs +1 -0
- package/dist/cjs/hooks/use-resize-observer/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-timeout/index.cjs +1 -0
- package/dist/cjs/hooks/use-timeout/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-value/index.cjs +1 -0
- package/dist/cjs/hooks/use-value/index.cjs.map +1 -1
- package/dist/cjs/hooks/use-window-event/index.cjs +1 -0
- package/dist/cjs/hooks/use-window-event/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +30 -6
- package/dist/cjs/providers/i18n-provider/i18n-provider.cjs.map +1 -1
- package/dist/cjs/providers/ui-provider/ui-provider.cjs.map +1 -1
- package/dist/cjs/utils/children.cjs.map +1 -1
- package/dist/cjs/utils/context.cjs.map +1 -1
- package/dist/cjs/utils/dom.cjs.map +1 -1
- package/dist/cjs/utils/ref.cjs.map +1 -1
- package/dist/cjs/utils/ssr.cjs +1 -0
- package/dist/cjs/utils/ssr.cjs.map +1 -1
- package/dist/cjs/utils/store.cjs +1 -0
- package/dist/cjs/utils/store.cjs.map +1 -1
- package/dist/esm/components/accordion/accordion.js +3 -2
- package/dist/esm/components/accordion/accordion.js.map +1 -1
- package/dist/esm/components/accordion/use-accordion.js.map +1 -1
- package/dist/esm/components/action-bar/action-bar.js.map +1 -1
- package/dist/esm/components/action-bar/use-action-bar.js.map +1 -1
- package/dist/esm/components/airy/airy.js.map +1 -1
- package/dist/esm/components/alert/alert.js +4 -2
- package/dist/esm/components/alert/alert.js.map +1 -1
- package/dist/esm/components/alpha-slider/alpha-slider.js.map +1 -1
- package/dist/esm/components/aspect-ratio/aspect-ratio.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete.js +13 -10
- package/dist/esm/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/esm/components/autocomplete/use-autocomplete.js.map +1 -1
- package/dist/esm/components/avatar/avatar-group.js +12 -11
- package/dist/esm/components/avatar/avatar-group.js.map +1 -1
- package/dist/esm/components/avatar/use-avatar-group.js.map +1 -1
- package/dist/esm/components/avatar/use-avatar.js.map +1 -1
- package/dist/esm/components/breadcrumb/use-breadcrumb.js.map +1 -1
- package/dist/esm/components/button/button.js +8 -5
- package/dist/esm/components/button/button.js.map +1 -1
- package/dist/esm/components/calendar/calendar.js.map +1 -1
- package/dist/esm/components/calendar/use-calendar.js.map +1 -1
- package/dist/esm/components/carousel/carousel.js +26 -25
- package/dist/esm/components/carousel/carousel.js.map +1 -1
- package/dist/esm/components/carousel/use-carousel.js.map +1 -1
- package/dist/esm/components/chart/area-chart.js +5 -4
- package/dist/esm/components/chart/area-chart.js.map +1 -1
- package/dist/esm/components/chart/bar-chart.js +5 -4
- package/dist/esm/components/chart/bar-chart.js.map +1 -1
- package/dist/esm/components/chart/cartesian-chart.js +145 -139
- package/dist/esm/components/chart/cartesian-chart.js.map +1 -1
- package/dist/esm/components/chart/chart.js +2 -1
- package/dist/esm/components/chart/chart.js.map +1 -1
- package/dist/esm/components/chart/composed-chart.js +15 -14
- package/dist/esm/components/chart/composed-chart.js.map +1 -1
- package/dist/esm/components/chart/donut-chart.js +7 -5
- package/dist/esm/components/chart/donut-chart.js.map +1 -1
- package/dist/esm/components/chart/line-chart.js +5 -4
- package/dist/esm/components/chart/line-chart.js.map +1 -1
- package/dist/esm/components/chart/pie-chart.js +7 -5
- package/dist/esm/components/chart/pie-chart.js.map +1 -1
- package/dist/esm/components/chart/polar-chart.js +118 -111
- package/dist/esm/components/chart/polar-chart.js.map +1 -1
- package/dist/esm/components/chart/radar-chart.js +5 -4
- package/dist/esm/components/chart/radar-chart.js.map +1 -1
- package/dist/esm/components/chart/use-cartesian-chart.js.map +1 -1
- package/dist/esm/components/chart/use-chart.js.map +1 -1
- package/dist/esm/components/chart/use-polar-chart.js.map +1 -1
- package/dist/esm/components/checkbox/checkbox-group.js +38 -36
- package/dist/esm/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/esm/components/checkbox/use-checkbox-group.js.map +1 -1
- package/dist/esm/components/checkbox/use-checkbox.js +2 -1
- package/dist/esm/components/checkbox/use-checkbox.js.map +1 -1
- package/dist/esm/components/checkbox-card/checkbox-card-group.js +42 -40
- package/dist/esm/components/checkbox-card/checkbox-card-group.js.map +1 -1
- package/dist/esm/components/circle-progress/circle-progress.js.map +1 -1
- package/dist/esm/components/client-only/client-only.js +2 -1
- package/dist/esm/components/client-only/client-only.js.map +1 -1
- package/dist/esm/components/collapse/collapse.js.map +1 -1
- package/dist/esm/components/color-picker/color-picker.js +2 -1
- package/dist/esm/components/color-picker/color-picker.js.map +1 -1
- package/dist/esm/components/color-picker/use-color-picker.js.map +1 -1
- package/dist/esm/components/color-selector/color-selector.js +2 -1
- package/dist/esm/components/color-selector/color-selector.js.map +1 -1
- package/dist/esm/components/color-selector/use-color-selector.js.map +1 -1
- package/dist/esm/components/color-swatch/color-swatch.js.map +1 -1
- package/dist/esm/components/data-list/data-list.js +8 -5
- package/dist/esm/components/data-list/data-list.js.map +1 -1
- package/dist/esm/components/date-picker/date-picker.js +2 -1
- package/dist/esm/components/date-picker/date-picker.js.map +1 -1
- package/dist/esm/components/date-picker/use-date-picker.js.map +1 -1
- package/dist/esm/components/drawer/drawer.js.map +1 -1
- package/dist/esm/components/drawer/use-drawer.js +1 -3
- package/dist/esm/components/drawer/use-drawer.js.map +1 -1
- package/dist/esm/components/dropzone/dropzone.js +2 -1
- package/dist/esm/components/dropzone/dropzone.js.map +1 -1
- package/dist/esm/components/dropzone/use-dropzone.js.map +1 -1
- package/dist/esm/components/editable/editable.js.map +1 -1
- package/dist/esm/components/editable/use-editable.js.map +1 -1
- package/dist/esm/components/field/field.js.map +1 -1
- package/dist/esm/components/field/use-field-props.js.map +1 -1
- package/dist/esm/components/fieldset/fieldset.js.map +1 -1
- package/dist/esm/components/file-input/file-input.js +2 -1
- package/dist/esm/components/file-input/file-input.js.map +1 -1
- package/dist/esm/components/file-input/use-file-input.js.map +1 -1
- package/dist/esm/components/flip/flip.js.map +1 -1
- package/dist/esm/components/float/float.js.map +1 -1
- package/dist/esm/components/focus-lock/focus-lock.js.map +1 -1
- package/dist/esm/components/for/for.js.map +1 -1
- package/dist/esm/components/form/form.js.map +1 -1
- package/dist/esm/components/grid/grid-item.js.map +1 -1
- package/dist/esm/components/group/group.js.map +1 -1
- package/dist/esm/components/group/use-group.js.map +1 -1
- package/dist/esm/components/highlight/use-highlight.js.map +1 -1
- package/dist/esm/components/icon/icons/index.js +21 -5
- package/dist/esm/components/icon/icons/index.js.map +1 -1
- package/dist/esm/components/icon/icons/layout-freeform-icon.js +14 -0
- package/dist/esm/components/icon/icons/layout-freeform-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/mic-audio-lines-icon.js +14 -0
- package/dist/esm/components/icon/icons/mic-audio-lines-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/mic-signal-icon.js +14 -0
- package/dist/esm/components/icon/icons/mic-signal-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/mosque-icon.js +14 -0
- package/dist/esm/components/icon/icons/mosque-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/rotate-ccw-clock-icon.js +14 -0
- package/dist/esm/components/icon/icons/rotate-ccw-clock-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/rotate-cw-fading-clock-icon.js +14 -0
- package/dist/esm/components/icon/icons/rotate-cw-fading-clock-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/scan-square-icon.js +14 -0
- package/dist/esm/components/icon/icons/scan-square-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/shield-keyhole-icon.js +14 -0
- package/dist/esm/components/icon/icons/shield-keyhole-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/square-off-icon.js +14 -0
- package/dist/esm/components/icon/icons/square-off-icon.js.map +1 -0
- package/dist/esm/components/icon/icons/user-shield-icon.js +14 -0
- package/dist/esm/components/icon/icons/user-shield-icon.js.map +1 -0
- package/dist/esm/components/icon/index.js +11 -3
- package/dist/esm/components/indicator/indicator.js.map +1 -1
- package/dist/esm/components/infinite-scroll-area/infinite-scroll-area.js +2 -1
- package/dist/esm/components/infinite-scroll-area/infinite-scroll-area.js.map +1 -1
- package/dist/esm/components/input/input-group.js +13 -12
- package/dist/esm/components/input/input-group.js.map +1 -1
- package/dist/esm/components/input/input.style.js.map +1 -1
- package/dist/esm/components/link-box/link-box.js.map +1 -1
- package/dist/esm/components/loading/audio.js.map +1 -1
- package/dist/esm/components/loading/circles.js.map +1 -1
- package/dist/esm/components/loading/dots.js.map +1 -1
- package/dist/esm/components/loading/grid.js.map +1 -1
- package/dist/esm/components/loading/loading-provider.js.map +1 -1
- package/dist/esm/components/loading/oval.js.map +1 -1
- package/dist/esm/components/loading/puff.js.map +1 -1
- package/dist/esm/components/loading/rings.js.map +1 -1
- package/dist/esm/components/loading/use-loading-component.js.map +1 -1
- package/dist/esm/components/menu/menu.js +12 -10
- package/dist/esm/components/menu/menu.js.map +1 -1
- package/dist/esm/components/menu/use-menu.js.map +1 -1
- package/dist/esm/components/modal/modal.js.map +1 -1
- package/dist/esm/components/modal/use-modal.js.map +1 -1
- package/dist/esm/components/motion/motion.js.map +1 -1
- package/dist/esm/components/motion/transition.js.map +1 -1
- package/dist/esm/components/native-accordion/use-native-accordion.js.map +1 -1
- package/dist/esm/components/native-popover/native-popover.js.map +1 -1
- package/dist/esm/components/native-popover/use-native-popover.js.map +1 -1
- package/dist/esm/components/native-select/native-select.js +2 -1
- package/dist/esm/components/native-select/native-select.js.map +1 -1
- package/dist/esm/components/native-select/use-native-select.js.map +1 -1
- package/dist/esm/components/notice/notice.js.map +1 -1
- package/dist/esm/components/notice/use-notice.js.map +1 -1
- package/dist/esm/components/number-input/number-input.js +2 -1
- package/dist/esm/components/number-input/number-input.js.map +1 -1
- package/dist/esm/components/number-input/use-number-counter.js.map +1 -1
- package/dist/esm/components/number-input/use-number-input.js.map +1 -1
- package/dist/esm/components/pagination/pagination.js.map +1 -1
- package/dist/esm/components/pagination/use-pagination.js.map +1 -1
- package/dist/esm/components/password-input/password-input.js +2 -1
- package/dist/esm/components/password-input/password-input.js.map +1 -1
- package/dist/esm/components/password-input/use-password-input.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/popover/popover.js.map +1 -1
- package/dist/esm/components/popover/use-popover.js.map +1 -1
- package/dist/esm/components/portal/portal.js.map +1 -1
- package/dist/esm/components/progress/progress.js.map +1 -1
- package/dist/esm/components/progress/use-progress.js.map +1 -1
- package/dist/esm/components/radio/radio-group.js +36 -34
- package/dist/esm/components/radio/radio-group.js.map +1 -1
- package/dist/esm/components/radio/use-radio-group.js.map +1 -1
- package/dist/esm/components/radio/use-radio.js +2 -1
- package/dist/esm/components/radio/use-radio.js.map +1 -1
- package/dist/esm/components/radio-card/radio-card-group.js +40 -38
- package/dist/esm/components/radio-card/radio-card-group.js.map +1 -1
- package/dist/esm/components/rating/rating.js.map +1 -1
- package/dist/esm/components/rating/use-rating.js.map +1 -1
- package/dist/esm/components/reorder/use-reorder.js.map +1 -1
- package/dist/esm/components/resizable/resizable.js +12 -10
- package/dist/esm/components/resizable/resizable.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/ripple/use-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/segmented-control.js +2 -1
- package/dist/esm/components/segmented-control/segmented-control.js.map +1 -1
- package/dist/esm/components/segmented-control/use-segmented-control.js.map +1 -1
- package/dist/esm/components/select/select.js +13 -10
- package/dist/esm/components/select/select.js.map +1 -1
- package/dist/esm/components/select/use-select.js.map +1 -1
- package/dist/esm/components/show/show.js.map +1 -1
- package/dist/esm/components/sidebar/sidebar.js +5 -3
- package/dist/esm/components/sidebar/sidebar.js.map +1 -1
- package/dist/esm/components/sidebar/use-sidebar.js.map +1 -1
- package/dist/esm/components/simple-grid/simple-grid.js.map +1 -1
- package/dist/esm/components/skeleton/skeleton.js.map +1 -1
- package/dist/esm/components/slider/slider.js +2 -1
- package/dist/esm/components/slider/slider.js.map +1 -1
- package/dist/esm/components/slider/use-slider.js +2 -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/stack/stack.js.map +1 -1
- package/dist/esm/components/stack/z-stack.js +4 -2
- package/dist/esm/components/stack/z-stack.js.map +1 -1
- package/dist/esm/components/steps/steps.js +50 -47
- package/dist/esm/components/steps/steps.js.map +1 -1
- package/dist/esm/components/steps/use-steps.js.map +1 -1
- package/dist/esm/components/switch/switch.js.map +1 -1
- package/dist/esm/components/switch/use-switch.js.map +1 -1
- package/dist/esm/components/table/table.js +50 -49
- package/dist/esm/components/table/table.js.map +1 -1
- package/dist/esm/components/tabs/tabs.js +22 -20
- package/dist/esm/components/tabs/tabs.js.map +1 -1
- package/dist/esm/components/tabs/use-tabs.js.map +1 -1
- package/dist/esm/components/tag/tag.js.map +1 -1
- package/dist/esm/components/textarea/use-autosize.js.map +1 -1
- package/dist/esm/components/timeline/timeline.js.map +1 -1
- package/dist/esm/components/tip/tip.js.map +1 -1
- package/dist/esm/components/toggle/toggle-group.js +26 -24
- package/dist/esm/components/toggle/toggle-group.js.map +1 -1
- package/dist/esm/components/toggle/use-toggle-group.js.map +1 -1
- package/dist/esm/components/toggle/use-toggle.js.map +1 -1
- package/dist/esm/components/tooltip/tooltip.js.map +1 -1
- package/dist/esm/components/tooltip/use-tooltip.js.map +1 -1
- package/dist/esm/components/tree/tree.js.map +1 -1
- package/dist/esm/components/tree/use-tree.js.map +1 -1
- package/dist/esm/core/components/create-component.js +4 -2
- package/dist/esm/core/components/create-component.js.map +1 -1
- package/dist/esm/core/components/props.js.map +1 -1
- package/dist/esm/core/components/use-component-style.js +10 -6
- package/dist/esm/core/components/use-component-style.js.map +1 -1
- package/dist/esm/core/components/utils.js.map +1 -1
- package/dist/esm/core/css/animation.js.map +1 -1
- package/dist/esm/core/css/at-rule.js.map +1 -1
- package/dist/esm/core/css/calc.js.map +1 -1
- package/dist/esm/core/css/color-mix.js.map +1 -1
- package/dist/esm/core/css/color-scheme.js.map +1 -1
- package/dist/esm/core/css/config.js.map +1 -1
- package/dist/esm/core/css/css.js +5 -3
- package/dist/esm/core/css/css.js.map +1 -1
- package/dist/esm/core/css/gradient.js.map +1 -1
- package/dist/esm/core/css/merge-css.js.map +1 -1
- package/dist/esm/core/css/style.js.map +1 -1
- package/dist/esm/core/css/use-css.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/create-system.js.map +1 -1
- package/dist/esm/core/system/environment-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/theme-provider.js +4 -3
- package/dist/esm/core/system/theme-provider.js.map +1 -1
- package/dist/esm/core/system/use-system-color-mode.js.map +1 -1
- package/dist/esm/core/system/var.js +2 -1
- package/dist/esm/core/system/var.js.map +1 -1
- package/dist/esm/hooks/use-animation/index.js +3 -2
- package/dist/esm/hooks/use-animation/index.js.map +1 -1
- package/dist/esm/hooks/use-breakpoint/use-breakpoint-state.js +2 -1
- package/dist/esm/hooks/use-breakpoint/use-breakpoint-state.js.map +1 -1
- package/dist/esm/hooks/use-breakpoint/use-breakpoint.js.map +1 -1
- package/dist/esm/hooks/use-clickable/index.js.map +1 -1
- package/dist/esm/hooks/use-clipboard/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-counter/index.js.map +1 -1
- package/dist/esm/hooks/use-descendants/index.js.map +1 -1
- package/dist/esm/hooks/use-event-listener/index.js.map +1 -1
- package/dist/esm/hooks/use-focus/index.js +2 -1
- package/dist/esm/hooks/use-focus/index.js.map +1 -1
- package/dist/esm/hooks/use-local-storage/index.js.map +1 -1
- package/dist/esm/hooks/use-os/index.js.map +1 -1
- package/dist/esm/hooks/use-outside-click/index.js.map +1 -1
- package/dist/esm/hooks/use-pan-event/index.js.map +1 -1
- package/dist/esm/hooks/use-resize-observer/index.js.map +1 -1
- package/dist/esm/hooks/use-value/index.js.map +1 -1
- package/dist/esm/index.js +21 -5
- package/dist/esm/providers/i18n-provider/i18n-provider.js.map +1 -1
- package/dist/esm/providers/ui-provider/ui-provider.js.map +1 -1
- package/dist/types/components/chart/polar-chart.style.d.ts +1 -1
- package/dist/types/components/color-picker/color-picker.style.d.ts +1 -1
- package/dist/types/components/color-selector/color-selector.style.d.ts +2 -2
- package/dist/types/components/drawer/drawer.style.d.ts +2 -2
- package/dist/types/components/file-input/file-input.style.d.ts +1 -1
- package/dist/types/components/icon/icons/index.d.ts +12 -4
- package/dist/types/components/icon/icons/index.types.d.ts +1 -1
- package/dist/types/components/icon/icons/layout-freeform-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/mic-audio-lines-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/mic-signal-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/mosque-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/rotate-ccw-clock-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/rotate-cw-fading-clock-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/scan-square-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/shield-keyhole-icon.d.ts +13 -0
- package/dist/types/components/icon/icons/{history-icon.d.ts → square-off-icon.d.ts} +5 -5
- package/dist/types/components/icon/icons/user-shield-icon.d.ts +13 -0
- package/dist/types/components/icon/index.d.ts +11 -3
- package/dist/types/components/modal/modal.style.d.ts +2 -2
- package/dist/types/components/notice/notice.style.d.ts +1 -1
- package/dist/types/components/tag/tag.style.d.ts +1 -1
- package/dist/types/index.d.ts +12 -4
- package/package.json +9 -9
- package/dist/cjs/components/icon/icons/history-icon.cjs +0 -14
- package/dist/cjs/components/icon/icons/history-icon.cjs.map +0 -1
- package/dist/cjs/components/icon/icons/podcast-icon.cjs +0 -14
- package/dist/cjs/components/icon/icons/podcast-icon.cjs.map +0 -1
- package/dist/esm/components/icon/icons/history-icon.js +0 -14
- package/dist/esm/components/icon/icons/history-icon.js.map +0 -1
- package/dist/esm/components/icon/icons/podcast-icon.js +0 -14
- package/dist/esm/components/icon/icons/podcast-icon.js.map +0 -1
- package/dist/types/components/icon/icons/podcast-icon.d.ts +0 -13
|
@@ -92,57 +92,58 @@ const Table = withContext(({ className, colorScheme, size, variant, columnFilter
|
|
|
92
92
|
value: columnFiltersProp,
|
|
93
93
|
onChange: onColumnFiltersChangeProp
|
|
94
94
|
});
|
|
95
|
+
const columns = useMemo(() => {
|
|
96
|
+
if (!enableRowSelection || !withCheckbox) return columnsProp;
|
|
97
|
+
const clonedColumns = [...columnsProp];
|
|
98
|
+
const header = ({ header, table }) => {
|
|
99
|
+
return /* @__PURE__ */ jsx(Checkbox, { ...mergeProps({
|
|
100
|
+
checked: table.getIsAllRowsSelected(),
|
|
101
|
+
indeterminate: table.getIsSomeRowsSelected(),
|
|
102
|
+
indicatorProps: { outline: "none" },
|
|
103
|
+
inputProps: {
|
|
104
|
+
"aria-label": t("Select all rows"),
|
|
105
|
+
"data-focusable": "",
|
|
106
|
+
tabIndex: -1
|
|
107
|
+
},
|
|
108
|
+
onChange: table.getToggleAllRowsSelectedHandler()
|
|
109
|
+
}, checkboxProps ?? {}, (0, utils_exports.runIfFn)(headerCheckboxProps, header) ?? {})() });
|
|
110
|
+
};
|
|
111
|
+
const cell = ({ row }) => {
|
|
112
|
+
return /* @__PURE__ */ jsx(Checkbox, { ...mergeProps({
|
|
113
|
+
checked: row.getIsSelected(),
|
|
114
|
+
disabled: !row.getCanSelect(),
|
|
115
|
+
indeterminate: row.getIsSomeSelected(),
|
|
116
|
+
indicatorProps: { outline: "none" },
|
|
117
|
+
inputProps: {
|
|
118
|
+
"aria-label": t("Select row"),
|
|
119
|
+
"data-focusable": "",
|
|
120
|
+
tabIndex: -1
|
|
121
|
+
},
|
|
122
|
+
onChange: row.getToggleSelectedHandler()
|
|
123
|
+
}, checkboxProps ?? {}, (0, utils_exports.runIfFn)(rowCheckboxProps, row) ?? {})() });
|
|
124
|
+
};
|
|
125
|
+
clonedColumns.unshift({
|
|
126
|
+
id: "select",
|
|
127
|
+
cell,
|
|
128
|
+
header,
|
|
129
|
+
...withFooterCheckbox ? { footer: header } : { footerProps: { "aria-hidden": "true" } },
|
|
130
|
+
cellProps: { verticalAlign: "middle" },
|
|
131
|
+
headerProps: { w: "calc({spaces.4} + {space-x} * 2)" }
|
|
132
|
+
});
|
|
133
|
+
return clonedColumns;
|
|
134
|
+
}, [
|
|
135
|
+
checkboxProps,
|
|
136
|
+
columnsProp,
|
|
137
|
+
enableRowSelection,
|
|
138
|
+
headerCheckboxProps,
|
|
139
|
+
rowCheckboxProps,
|
|
140
|
+
t,
|
|
141
|
+
withCheckbox,
|
|
142
|
+
withFooterCheckbox
|
|
143
|
+
]);
|
|
95
144
|
const table = useReactTable({
|
|
96
145
|
columnResizeMode,
|
|
97
|
-
columns
|
|
98
|
-
if (!enableRowSelection || !withCheckbox) return columnsProp;
|
|
99
|
-
const clonedColumns = [...columnsProp];
|
|
100
|
-
const header = ({ header, table }) => {
|
|
101
|
-
return /* @__PURE__ */ jsx(Checkbox, { ...mergeProps({
|
|
102
|
-
checked: table.getIsAllRowsSelected(),
|
|
103
|
-
indeterminate: table.getIsSomeRowsSelected(),
|
|
104
|
-
indicatorProps: { outline: "none" },
|
|
105
|
-
inputProps: {
|
|
106
|
-
"aria-label": t("Select all rows"),
|
|
107
|
-
"data-focusable": "",
|
|
108
|
-
tabIndex: -1
|
|
109
|
-
},
|
|
110
|
-
onChange: table.getToggleAllRowsSelectedHandler()
|
|
111
|
-
}, checkboxProps ?? {}, (0, utils_exports.runIfFn)(headerCheckboxProps, header) ?? {})() });
|
|
112
|
-
};
|
|
113
|
-
const cell = ({ row }) => {
|
|
114
|
-
return /* @__PURE__ */ jsx(Checkbox, { ...mergeProps({
|
|
115
|
-
checked: row.getIsSelected(),
|
|
116
|
-
disabled: !row.getCanSelect(),
|
|
117
|
-
indeterminate: row.getIsSomeSelected(),
|
|
118
|
-
indicatorProps: { outline: "none" },
|
|
119
|
-
inputProps: {
|
|
120
|
-
"aria-label": t("Select row"),
|
|
121
|
-
"data-focusable": "",
|
|
122
|
-
tabIndex: -1
|
|
123
|
-
},
|
|
124
|
-
onChange: row.getToggleSelectedHandler()
|
|
125
|
-
}, checkboxProps ?? {}, (0, utils_exports.runIfFn)(rowCheckboxProps, row) ?? {})() });
|
|
126
|
-
};
|
|
127
|
-
clonedColumns.unshift({
|
|
128
|
-
id: "select",
|
|
129
|
-
cell,
|
|
130
|
-
header,
|
|
131
|
-
...withFooterCheckbox ? { footer: header } : { footerProps: { "aria-hidden": "true" } },
|
|
132
|
-
cellProps: { verticalAlign: "middle" },
|
|
133
|
-
headerProps: { w: "calc({spaces.4} + {space-x} * 2)" }
|
|
134
|
-
});
|
|
135
|
-
return clonedColumns;
|
|
136
|
-
}, [
|
|
137
|
-
checkboxProps,
|
|
138
|
-
columnsProp,
|
|
139
|
-
enableRowSelection,
|
|
140
|
-
headerCheckboxProps,
|
|
141
|
-
rowCheckboxProps,
|
|
142
|
-
t,
|
|
143
|
-
withCheckbox,
|
|
144
|
-
withFooterCheckbox
|
|
145
|
-
]),
|
|
146
|
+
columns,
|
|
146
147
|
data,
|
|
147
148
|
enableColumnResizing,
|
|
148
149
|
enableRowSelection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","names":["NativeTable.Root","NativeTable.Thead","NativeTable.Tr","NativeTable.Th","NativeTable.Tbody","NativeTable.Td","NativeTable.Tfoot"],"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 | \"className\"\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 className,\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 for (let i = 1; i < rowSpan; i++)\n cellMap.set(`${colIndex}-${rowIndex + i}`, `${colIndex}-${rowIndex}`)\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 className,\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 {...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 {...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 {...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 return children\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table.js","names":["runIfFn","NativeTable.Root","NativeTable.Thead","NativeTable.Tr","NativeTable.Th","NativeTable.Tbody","isFunction","ariaAttr","dataAttr","NativeTable.Td","NativeTable.Tfoot"],"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 | \"className\"\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 className,\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 for (let i = 1; i < rowSpan; i++)\n cellMap.set(`${colIndex}-${rowIndex + i}`, `${colIndex}-${rowIndex}`)\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 className,\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 {...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 {...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 {...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 return children\n}\n"],"mappings":"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"}
|
|
@@ -16,8 +16,9 @@ const { ComponentContext, PropsContext: TabsPropsContext, useComponentContext, u
|
|
|
16
16
|
* @see https://yamada-ui.com/docs/components/tabs
|
|
17
17
|
*/
|
|
18
18
|
const TabsRoot = withProvider(({ children, items, lazy, lazyBehavior, orientation: orientationProp, ...rest }) => {
|
|
19
|
+
const computedOrientation = useValue(orientationProp);
|
|
19
20
|
const { id, focusedIndex, index, manual, orientation, setFocusedIndex, setIndex, tabDescendants, tabPanelDescendants, getListProps, getRootProps } = useTabs({
|
|
20
|
-
orientation:
|
|
21
|
+
orientation: computedOrientation,
|
|
21
22
|
...rest
|
|
22
23
|
});
|
|
23
24
|
const componentContext = useMemo(() => ({
|
|
@@ -29,30 +30,31 @@ const TabsRoot = withProvider(({ children, items, lazy, lazyBehavior, orientatio
|
|
|
29
30
|
lazy,
|
|
30
31
|
lazyBehavior
|
|
31
32
|
]);
|
|
33
|
+
const tabsContext = useMemo(() => ({
|
|
34
|
+
id,
|
|
35
|
+
focusedIndex,
|
|
36
|
+
index,
|
|
37
|
+
manual,
|
|
38
|
+
orientation,
|
|
39
|
+
setFocusedIndex,
|
|
40
|
+
setIndex,
|
|
41
|
+
getListProps
|
|
42
|
+
}), [
|
|
43
|
+
id,
|
|
44
|
+
manual,
|
|
45
|
+
focusedIndex,
|
|
46
|
+
index,
|
|
47
|
+
orientation,
|
|
48
|
+
setFocusedIndex,
|
|
49
|
+
setIndex,
|
|
50
|
+
getListProps
|
|
51
|
+
]);
|
|
32
52
|
return /* @__PURE__ */ jsx(TabDescendantsContext, {
|
|
33
53
|
value: tabDescendants,
|
|
34
54
|
children: /* @__PURE__ */ jsx(TabPanelDescendantsContext, {
|
|
35
55
|
value: tabPanelDescendants,
|
|
36
56
|
children: /* @__PURE__ */ jsx(TabsContext, {
|
|
37
|
-
value:
|
|
38
|
-
id,
|
|
39
|
-
focusedIndex,
|
|
40
|
-
index,
|
|
41
|
-
manual,
|
|
42
|
-
orientation,
|
|
43
|
-
setFocusedIndex,
|
|
44
|
-
setIndex,
|
|
45
|
-
getListProps
|
|
46
|
-
}), [
|
|
47
|
-
id,
|
|
48
|
-
manual,
|
|
49
|
-
focusedIndex,
|
|
50
|
-
index,
|
|
51
|
-
orientation,
|
|
52
|
-
setFocusedIndex,
|
|
53
|
-
setIndex,
|
|
54
|
-
getListProps
|
|
55
|
-
]),
|
|
57
|
+
value: tabsContext,
|
|
56
58
|
children: /* @__PURE__ */ jsx(ComponentContext, {
|
|
57
59
|
value: componentContext,
|
|
58
60
|
children: /* @__PURE__ */ jsx(styled.div, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","names":[],"sources":["../../../../src/components/tabs/tabs.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { UseLazyMountProps } from \"../../hooks/use-lazy-mount\"\nimport type { TabsStyle } from \"./tabs.style\"\nimport type { UseTabPanelProps, UseTabProps, UseTabsProps } from \"./use-tabs\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useLazyMount } from \"../../hooks/use-lazy-mount\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { isNull, isUndefined } from \"../../utils\"\nimport { tabsStyle } from \"./tabs.style\"\nimport {\n TabDescendantsContext,\n TabPanelDescendantsContext,\n TabsContext,\n useTab,\n useTabPanel,\n useTabs,\n useTabsContext,\n} from \"./use-tabs\"\n\ninterface ComponentContext extends Pick<\n TabsRootProps,\n \"items\" | \"lazy\" | \"lazyBehavior\"\n> {}\n\nexport interface TabsItem extends Omit<TabsTabProps, \"index\"> {\n /**\n * The content for panel element.\n */\n panel: ReactNode\n /**\n * The content for tab element.\n */\n tab: ReactNode\n /**\n * Props for panel element.\n */\n panelProps?: TabsPanelProps\n}\n\nexport interface TabsRootProps\n extends\n Omit<HTMLStyledProps, \"onChange\">,\n Omit<UseTabsProps, \"orientation\">,\n Pick<UseLazyMountProps, \"lazy\" | \"lazyBehavior\">,\n ThemeProps<TabsStyle> {\n /**\n * If provided, generate tab and panel components based on tabs.\n */\n items?: TabsItem[]\n}\n\nconst {\n ComponentContext,\n PropsContext: TabsPropsContext,\n useComponentContext,\n usePropsContext: useTabsPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<TabsRootProps, TabsStyle, ComponentContext>(\n \"tabs\",\n tabsStyle,\n)\n\nexport { TabsPropsContext, useTabsPropsContext }\n\n/**\n * `Tabs` is a component for switching between different display areas.\n *\n * @see https://yamada-ui.com/docs/components/tabs\n */\nexport const TabsRoot = withProvider<\"div\", TabsRootProps, \"orientation\">(\n ({\n children,\n items,\n lazy,\n lazyBehavior,\n orientation: orientationProp,\n ...rest\n }) => {\n const computedOrientation = useValue(orientationProp)\n const {\n id,\n focusedIndex,\n index,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n tabDescendants,\n tabPanelDescendants,\n getListProps,\n getRootProps,\n } = useTabs({ orientation: computedOrientation, ...rest })\n const componentContext = useMemo(\n () => ({ items, lazy, lazyBehavior }),\n [items, lazy, lazyBehavior],\n )\n const tabsContext = useMemo(\n () => ({\n id,\n focusedIndex,\n index,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n getListProps,\n }),\n [\n id,\n manual,\n focusedIndex,\n index,\n orientation,\n setFocusedIndex,\n setIndex,\n getListProps,\n ],\n )\n\n return (\n <TabDescendantsContext value={tabDescendants}>\n <TabPanelDescendantsContext value={tabPanelDescendants}>\n <TabsContext value={tabsContext}>\n <ComponentContext value={componentContext}>\n <styled.div {...getRootProps()}>{children}</styled.div>\n </ComponentContext>\n </TabsContext>\n </TabPanelDescendantsContext>\n </TabDescendantsContext>\n )\n },\n \"root\",\n { transferProps: [\"orientation\"] },\n)()\n\nexport interface TabsListProps extends HTMLStyledProps {}\n\nexport const TabsList = withContext<\"div\", TabsListProps>(\n ({ children, ...rest }) => {\n const { items } = useComponentContext()\n const { getListProps } = useTabsContext()\n const computedChildren = useMemo(() => {\n if (children) return children\n else\n return items?.map(\n (\n { id, panel: _panel, tab, panelProps: _panelProps, ...rest },\n index,\n ) =>\n isUndefined(tab) || isNull(tab) ? null : (\n <TabsTab id={id} key={id ?? index} index={index} {...rest}>\n {tab}\n </TabsTab>\n ),\n )\n }, [children, items])\n\n return <styled.div {...getListProps(rest)}>{computedChildren}</styled.div>\n },\n \"list\",\n)()\n\nexport interface TabsTabProps extends HTMLStyledProps<\"button\">, UseTabProps {}\n\nexport const TabsTab = withContext<\"button\", TabsTabProps>(\"button\", \"tab\")(\n undefined,\n (props) => {\n const { getRootProps } = useTab(props)\n\n return getRootProps()\n },\n)\n\nexport interface TabsPanelsProps extends PropsWithChildren {}\n\nexport const TabsPanels: FC<TabsPanelsProps> = ({ children }) => {\n const { items } = useComponentContext()\n\n return useMemo(() => {\n if (children) return children\n else\n return items?.map(({ id, panel, panelProps }, index) =>\n isUndefined(panel) || isNull(panel) ? null : (\n <TabsPanel key={id ?? index} index={index} {...panelProps}>\n {panel}\n </TabsPanel>\n ),\n )\n }, [children, items])\n}\n\nexport interface TabsPanelProps extends HTMLStyledProps, UseTabPanelProps {}\n\nexport const TabsPanel = withContext<\"div\", TabsPanelProps>(\"div\", \"panel\")(\n undefined,\n (props) => {\n const { lazy, lazyBehavior } = useComponentContext()\n const { selected: mounted, getRootProps } = useTabPanel(props)\n const children = useLazyMount({ lazy, lazyBehavior, mounted, ...props })\n\n return { ...getRootProps(), children }\n },\n)\n"],"mappings":";;;;;;;;;;;AAuDA,MAAM,EACJ,kBACA,cAAc,kBACd,qBACA,iBAAiB,qBACjB,aACA,iBACE,oBACF,QACA,SACF;;;;;;AASA,MAAa,WAAW,cACrB,EACC,UACA,OACA,MACA,cACA,aAAa,iBACb,GAAG,WACC;
|
|
1
|
+
{"version":3,"file":"tabs.js","names":["isUndefined","isNull"],"sources":["../../../../src/components/tabs/tabs.tsx"],"sourcesContent":["\"use client\"\n\nimport type { FC, PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { UseLazyMountProps } from \"../../hooks/use-lazy-mount\"\nimport type { TabsStyle } from \"./tabs.style\"\nimport type { UseTabPanelProps, UseTabProps, UseTabsProps } from \"./use-tabs\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useLazyMount } from \"../../hooks/use-lazy-mount\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { isNull, isUndefined } from \"../../utils\"\nimport { tabsStyle } from \"./tabs.style\"\nimport {\n TabDescendantsContext,\n TabPanelDescendantsContext,\n TabsContext,\n useTab,\n useTabPanel,\n useTabs,\n useTabsContext,\n} from \"./use-tabs\"\n\ninterface ComponentContext extends Pick<\n TabsRootProps,\n \"items\" | \"lazy\" | \"lazyBehavior\"\n> {}\n\nexport interface TabsItem extends Omit<TabsTabProps, \"index\"> {\n /**\n * The content for panel element.\n */\n panel: ReactNode\n /**\n * The content for tab element.\n */\n tab: ReactNode\n /**\n * Props for panel element.\n */\n panelProps?: TabsPanelProps\n}\n\nexport interface TabsRootProps\n extends\n Omit<HTMLStyledProps, \"onChange\">,\n Omit<UseTabsProps, \"orientation\">,\n Pick<UseLazyMountProps, \"lazy\" | \"lazyBehavior\">,\n ThemeProps<TabsStyle> {\n /**\n * If provided, generate tab and panel components based on tabs.\n */\n items?: TabsItem[]\n}\n\nconst {\n ComponentContext,\n PropsContext: TabsPropsContext,\n useComponentContext,\n usePropsContext: useTabsPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<TabsRootProps, TabsStyle, ComponentContext>(\n \"tabs\",\n tabsStyle,\n)\n\nexport { TabsPropsContext, useTabsPropsContext }\n\n/**\n * `Tabs` is a component for switching between different display areas.\n *\n * @see https://yamada-ui.com/docs/components/tabs\n */\nexport const TabsRoot = withProvider<\"div\", TabsRootProps, \"orientation\">(\n ({\n children,\n items,\n lazy,\n lazyBehavior,\n orientation: orientationProp,\n ...rest\n }) => {\n const computedOrientation = useValue(orientationProp)\n const {\n id,\n focusedIndex,\n index,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n tabDescendants,\n tabPanelDescendants,\n getListProps,\n getRootProps,\n } = useTabs({ orientation: computedOrientation, ...rest })\n const componentContext = useMemo(\n () => ({ items, lazy, lazyBehavior }),\n [items, lazy, lazyBehavior],\n )\n const tabsContext = useMemo(\n () => ({\n id,\n focusedIndex,\n index,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n getListProps,\n }),\n [\n id,\n manual,\n focusedIndex,\n index,\n orientation,\n setFocusedIndex,\n setIndex,\n getListProps,\n ],\n )\n\n return (\n <TabDescendantsContext value={tabDescendants}>\n <TabPanelDescendantsContext value={tabPanelDescendants}>\n <TabsContext value={tabsContext}>\n <ComponentContext value={componentContext}>\n <styled.div {...getRootProps()}>{children}</styled.div>\n </ComponentContext>\n </TabsContext>\n </TabPanelDescendantsContext>\n </TabDescendantsContext>\n )\n },\n \"root\",\n { transferProps: [\"orientation\"] },\n)()\n\nexport interface TabsListProps extends HTMLStyledProps {}\n\nexport const TabsList = withContext<\"div\", TabsListProps>(\n ({ children, ...rest }) => {\n const { items } = useComponentContext()\n const { getListProps } = useTabsContext()\n const computedChildren = useMemo(() => {\n if (children) return children\n else\n return items?.map(\n (\n { id, panel: _panel, tab, panelProps: _panelProps, ...rest },\n index,\n ) =>\n isUndefined(tab) || isNull(tab) ? null : (\n <TabsTab id={id} key={id ?? index} index={index} {...rest}>\n {tab}\n </TabsTab>\n ),\n )\n }, [children, items])\n\n return <styled.div {...getListProps(rest)}>{computedChildren}</styled.div>\n },\n \"list\",\n)()\n\nexport interface TabsTabProps extends HTMLStyledProps<\"button\">, UseTabProps {}\n\nexport const TabsTab = withContext<\"button\", TabsTabProps>(\"button\", \"tab\")(\n undefined,\n (props) => {\n const { getRootProps } = useTab(props)\n\n return getRootProps()\n },\n)\n\nexport interface TabsPanelsProps extends PropsWithChildren {}\n\nexport const TabsPanels: FC<TabsPanelsProps> = ({ children }) => {\n const { items } = useComponentContext()\n\n return useMemo(() => {\n if (children) return children\n else\n return items?.map(({ id, panel, panelProps }, index) =>\n isUndefined(panel) || isNull(panel) ? null : (\n <TabsPanel key={id ?? index} index={index} {...panelProps}>\n {panel}\n </TabsPanel>\n ),\n )\n }, [children, items])\n}\n\nexport interface TabsPanelProps extends HTMLStyledProps, UseTabPanelProps {}\n\nexport const TabsPanel = withContext<\"div\", TabsPanelProps>(\"div\", \"panel\")(\n undefined,\n (props) => {\n const { lazy, lazyBehavior } = useComponentContext()\n const { selected: mounted, getRootProps } = useTabPanel(props)\n const children = useLazyMount({ lazy, lazyBehavior, mounted, ...props })\n\n return { ...getRootProps(), children }\n },\n)\n"],"mappings":";;;;;;;;;;;AAuDA,MAAM,EACJ,kBACA,cAAc,kBACd,qBACA,iBAAiB,qBACjB,aACA,iBACE,oBACF,QACA,SACF;;;;;;AASA,MAAa,WAAW,cACrB,EACC,UACA,OACA,MACA,cACA,aAAa,iBACb,GAAG,WACC;CACJ,MAAM,sBAAsB,SAAS,eAAe;CACpD,MAAM,EACJ,IACA,cACA,OACA,QACA,aACA,iBACA,UACA,gBACA,qBACA,cACA,iBACE,QAAQ;EAAE,aAAa;EAAqB,GAAG;CAAK,CAAC;CACzD,MAAM,mBAAmB,eAChB;EAAE;EAAO;EAAM;CAAa,IACnC;EAAC;EAAO;EAAM;CAAY,CAC5B;CACA,MAAM,cAAc,eACX;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,oBAAC,uBAAD;EAAuB,OAAO;EAC5B,UAAA,oBAAC,4BAAD;GAA4B,OAAO;GACjC,UAAA,oBAAC,aAAD;IAAa,OAAO;IAClB,UAAA,oBAAC,kBAAD;KAAkB,OAAO;KACvB,UAAA,oBAAC,OAAO,KAAR;MAAY,GAAI,aAAa;MAAI;KAAqB,CAAA;IACtC,CAAA;GACP,CAAA;EACa,CAAA;CACP,CAAA;AAE3B,GACA,QACA,EAAE,eAAe,CAAC,aAAa,EAAE,CACnC,CAAC,CAAC;AAIF,MAAa,WAAW,aACrB,EAAE,UAAU,GAAG,WAAW;CACzB,MAAM,EAAE,UAAU,oBAAoB;CACtC,MAAM,EAAE,iBAAiB,eAAe;CACxC,MAAM,mBAAmB,cAAc;EACrC,IAAI,UAAU,OAAO;OAEnB,OAAO,OAAO,KAEV,EAAE,IAAI,OAAO,QAAQ,KAAK,YAAY,aAAa,GAAG,QACtD,WAAA,GAEAA,cAAAA,YAAAA,CAAY,GAAG,MAAA,GAAKC,cAAAA,OAAAA,CAAO,GAAG,IAAI,OAChC,oBAAC,SAAD;GAAa;GAA6B;GAAO,GAAI;GAClD,UAAA;EACM,GAFa,MAAM,KAEnB,CAEf;CACJ,GAAG,CAAC,UAAU,KAAK,CAAC;CAEpB,OAAO,oBAAC,OAAO,KAAR;EAAY,GAAI,aAAa,IAAI;EAAI,UAAA;CAA6B,CAAA;AAC3E,GACA,MACF,CAAC,CAAC;AAIF,MAAa,UAAU,YAAoC,UAAU,KAAK,CAAC,CACzE,KAAA,IACC,UAAU;CACT,MAAM,EAAE,iBAAiB,OAAO,KAAK;CAErC,OAAO,aAAa;AACtB,CACF;AAIA,MAAa,cAAmC,EAAE,eAAe;CAC/D,MAAM,EAAE,UAAU,oBAAoB;CAEtC,OAAO,cAAc;EACnB,IAAI,UAAU,OAAO;OAEnB,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,cAAc,WAAA,GAC5CD,cAAAA,YAAAA,CAAY,KAAK,MAAA,GAAKC,cAAAA,OAAAA,CAAO,KAAK,IAAI,OACpC,oBAAC,WAAD;GAAoC;GAAO,GAAI;GAC5C,UAAA;EACQ,GAFK,MAAM,KAEX,CAEf;CACJ,GAAG,CAAC,UAAU,KAAK,CAAC;AACtB;AAIA,MAAa,YAAY,YAAmC,OAAO,OAAO,CAAC,CACzE,KAAA,IACC,UAAU;CACT,MAAM,EAAE,MAAM,iBAAiB,oBAAoB;CACnD,MAAM,EAAE,UAAU,SAAS,iBAAiB,YAAY,KAAK;CAC7D,MAAM,WAAW,aAAa;EAAE;EAAM;EAAc;EAAS,GAAG;CAAM,CAAC;CAEvE,OAAO;EAAE,GAAG,aAAa;EAAG;CAAS;AACvC,CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tabs.js","names":["createContext"],"sources":["../../../../src/components/tabs/use-tabs.ts"],"sourcesContent":["\"use client\"\n\nimport type { KeyboardEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport { useCallback, useId, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n createContext,\n cx,\n handlerAll,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\n\nconst {\n DescendantsContext: TabDescendantsContext,\n useDescendant: useTabDescendant,\n useDescendants: useTabDescendants,\n} = createDescendants<HTMLButtonElement>()\n\nexport { TabDescendantsContext, useTabDescendant, useTabDescendants }\n\nconst {\n DescendantsContext: TabPanelDescendantsContext,\n useDescendant: useTabPanelDescendant,\n useDescendants: useTabPanelDescendants,\n} = createDescendants<HTMLDivElement>()\n\nexport {\n TabPanelDescendantsContext,\n useTabPanelDescendant,\n useTabPanelDescendants,\n}\n\ninterface TabsContext extends Omit<\n UseTabsReturn,\n \"getRootProps\" | \"tabDescendants\" | \"tabPanelDescendants\"\n> {}\n\nconst [TabsContext, useTabsContext] = createContext<TabsContext>({\n name: \"TabsContext\",\n})\n\nexport { TabsContext, useTabsContext }\n\nexport interface UseTabsProps extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The index of the selected tab.\n */\n defaultIndex?: number\n /**\n * The index of the selected tab.\n */\n index?: number\n /**\n * If `true`, the tabs will be manually activated and display its panel by pressing Space or Enter.\n *\n * If `false`, the tabs will be automatically activated and their panel is displayed when they receive focus.\n *\n * @default false\n */\n manual?: boolean\n /**\n * The orientation of the tabs.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * The callback invoked when the index changes.\n */\n onChange?: (index: number) => void\n}\n\nexport const useTabs = ({\n id,\n defaultIndex = 0,\n index: indexProp,\n manual = false,\n orientation = \"horizontal\",\n onChange,\n ...rest\n}: UseTabsProps = {}) => {\n const uuid = useId()\n const tabDescendants = useTabDescendants()\n const tabPanelDescendants = useTabPanelDescendants()\n const [index, setIndex] = useControllableState({\n defaultValue: defaultIndex,\n value: indexProp,\n onChange,\n })\n const [focusedIndex, setFocusedIndex] = useState<number>(index)\n const horizontal = orientation === \"horizontal\"\n\n id ??= uuid\n\n const onFocusFirstTab = useCallback(() => {\n const first = tabDescendants.enabledFirstValue()\n\n if (first) first.node.focus()\n }, [tabDescendants])\n\n const onFocusLastTab = useCallback(() => {\n const last = tabDescendants.enabledLastValue()\n\n if (last) last.node.focus()\n }, [tabDescendants])\n\n const onFocusNextTab = useCallback(() => {\n const next = tabDescendants.enabledNextValue(focusedIndex)\n\n if (next) next.node.focus()\n }, [tabDescendants, focusedIndex])\n\n const onFocusPrevTab = useCallback(() => {\n const prev = tabDescendants.enabledPrevValue(focusedIndex)\n\n if (prev) prev.node.focus()\n }, [tabDescendants, focusedIndex])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n runKeyAction(ev, {\n ArrowDown: !horizontal ? onFocusNextTab : undefined,\n ArrowLeft: horizontal ? onFocusPrevTab : undefined,\n ArrowRight: horizontal ? onFocusNextTab : undefined,\n ArrowUp: !horizontal ? onFocusPrevTab : undefined,\n End: onFocusLastTab,\n Home: onFocusFirstTab,\n })\n },\n [\n horizontal,\n onFocusNextTab,\n onFocusPrevTab,\n onFocusLastTab,\n onFocusFirstTab,\n ],\n )\n\n useUpdateEffect(() => {\n if (isUndefined(indexProp)) return\n\n setIndex(indexProp)\n setFocusedIndex(indexProp)\n }, [indexProp])\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) =>\n mergeProps({ \"data-orientation\": orientation }, rest, props, { ref })(),\n [orientation, rest],\n )\n\n const getListProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-orientation\": orientation,\n role: \"tablist\",\n ...props,\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [orientation, onKeyDown],\n )\n\n return {\n id,\n focusedIndex,\n index,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n tabDescendants,\n tabPanelDescendants,\n getListProps,\n getRootProps,\n }\n}\n\nexport type UseTabsReturn = ReturnType<typeof useTabs>\n\nexport interface UseTabProps extends HTMLProps<\"button\"> {\n /**\n * The index of the tab.\n */\n index: number\n}\n\nexport const useTab = ({ id, disabled, index, ...rest }: UseTabProps) => {\n const {\n id: rootId,\n index: selectedIndex,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n } = useTabsContext()\n const { register } = useTabDescendant({ disabled })\n const tabPanelId = `${rootId}-panel-${index}`\n const selected = index === selectedIndex\n\n id ??= `${rootId}-tab-${index}`\n\n const onClick = useCallback(() => {\n if (!disabled) setIndex(index)\n }, [index, setIndex, disabled])\n\n const onFocus = useCallback(() => {\n if (disabled) return\n\n setFocusedIndex(index)\n\n if (!manual) setIndex(index)\n }, [setFocusedIndex, index, manual, disabled, setIndex])\n\n const getRootProps: PropGetter<\"button\"> = useCallback(\n ({ ref, ...props } = {}) =>\n mergeProps(\n {\n id,\n type: \"button\",\n \"aria-controls\": tabPanelId,\n \"aria-selected\": selected,\n \"data-orientation\": orientation,\n disabled,\n role: \"tab\",\n tabIndex: selected ? 0 : -1,\n },\n rest,\n props,\n { ref: mergeRefs(ref, register) },\n {\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onFocus: handlerAll(props.onFocus, rest.onFocus, onFocus),\n },\n )({ mergeEvent: false }),\n [\n disabled,\n id,\n onClick,\n onFocus,\n orientation,\n register,\n rest,\n selected,\n tabPanelId,\n ],\n )\n\n return { index, selected, getRootProps }\n}\n\nexport type UseTabReturn = ReturnType<typeof useTab>\n\nexport interface UseTabPanelProps extends HTMLProps {\n /**\n * The index of the tab panel.\n */\n index: number\n}\n\nexport const useTabPanel = ({\n id,\n \"aria-labelledby\": ariaLabelledbyProp,\n index,\n ...rest\n}: UseTabPanelProps) => {\n const { id: rootId, index: selectedIndex, orientation } = useTabsContext()\n const { register } = useTabPanelDescendant()\n const tabId = `${rootId}-tab-${index}`\n const selected = index === selectedIndex\n\n id ??= `${rootId}-panel-${index}`\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, \"aria-labelledby\": ariaLabelledby, ...props } = {}) =>\n mergeProps(\n {\n id,\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, tabId),\n \"data-orientation\": orientation,\n hidden: !selected,\n role: \"tabpanel\",\n tabIndex: selected ? 0 : -1,\n },\n rest,\n props,\n { ref: mergeRefs(ref, register) },\n )(),\n [id, ariaLabelledbyProp, orientation, register, rest, selected, tabId],\n )\n\n return { index, selected, getRootProps }\n}\n\nexport type UseTabPanelReturn = ReturnType<typeof useTabPanel>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"use-tabs.js","names":["createContext","isUndefined","handlerAll","cx"],"sources":["../../../../src/components/tabs/use-tabs.ts"],"sourcesContent":["\"use client\"\n\nimport type { KeyboardEvent } from \"react\"\nimport type { HTMLProps, Orientation, PropGetter } from \"../../core\"\nimport { useCallback, useId, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { createDescendants } from \"../../hooks/use-descendants\"\nimport {\n createContext,\n cx,\n handlerAll,\n isUndefined,\n mergeRefs,\n runKeyAction,\n useUpdateEffect,\n} from \"../../utils\"\n\nconst {\n DescendantsContext: TabDescendantsContext,\n useDescendant: useTabDescendant,\n useDescendants: useTabDescendants,\n} = createDescendants<HTMLButtonElement>()\n\nexport { TabDescendantsContext, useTabDescendant, useTabDescendants }\n\nconst {\n DescendantsContext: TabPanelDescendantsContext,\n useDescendant: useTabPanelDescendant,\n useDescendants: useTabPanelDescendants,\n} = createDescendants<HTMLDivElement>()\n\nexport {\n TabPanelDescendantsContext,\n useTabPanelDescendant,\n useTabPanelDescendants,\n}\n\ninterface TabsContext extends Omit<\n UseTabsReturn,\n \"getRootProps\" | \"tabDescendants\" | \"tabPanelDescendants\"\n> {}\n\nconst [TabsContext, useTabsContext] = createContext<TabsContext>({\n name: \"TabsContext\",\n})\n\nexport { TabsContext, useTabsContext }\n\nexport interface UseTabsProps extends Omit<HTMLProps, \"onChange\"> {\n /**\n * The index of the selected tab.\n */\n defaultIndex?: number\n /**\n * The index of the selected tab.\n */\n index?: number\n /**\n * If `true`, the tabs will be manually activated and display its panel by pressing Space or Enter.\n *\n * If `false`, the tabs will be automatically activated and their panel is displayed when they receive focus.\n *\n * @default false\n */\n manual?: boolean\n /**\n * The orientation of the tabs.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * The callback invoked when the index changes.\n */\n onChange?: (index: number) => void\n}\n\nexport const useTabs = ({\n id,\n defaultIndex = 0,\n index: indexProp,\n manual = false,\n orientation = \"horizontal\",\n onChange,\n ...rest\n}: UseTabsProps = {}) => {\n const uuid = useId()\n const tabDescendants = useTabDescendants()\n const tabPanelDescendants = useTabPanelDescendants()\n const [index, setIndex] = useControllableState({\n defaultValue: defaultIndex,\n value: indexProp,\n onChange,\n })\n const [focusedIndex, setFocusedIndex] = useState<number>(index)\n const horizontal = orientation === \"horizontal\"\n\n id ??= uuid\n\n const onFocusFirstTab = useCallback(() => {\n const first = tabDescendants.enabledFirstValue()\n\n if (first) first.node.focus()\n }, [tabDescendants])\n\n const onFocusLastTab = useCallback(() => {\n const last = tabDescendants.enabledLastValue()\n\n if (last) last.node.focus()\n }, [tabDescendants])\n\n const onFocusNextTab = useCallback(() => {\n const next = tabDescendants.enabledNextValue(focusedIndex)\n\n if (next) next.node.focus()\n }, [tabDescendants, focusedIndex])\n\n const onFocusPrevTab = useCallback(() => {\n const prev = tabDescendants.enabledPrevValue(focusedIndex)\n\n if (prev) prev.node.focus()\n }, [tabDescendants, focusedIndex])\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent<HTMLDivElement>) => {\n runKeyAction(ev, {\n ArrowDown: !horizontal ? onFocusNextTab : undefined,\n ArrowLeft: horizontal ? onFocusPrevTab : undefined,\n ArrowRight: horizontal ? onFocusNextTab : undefined,\n ArrowUp: !horizontal ? onFocusPrevTab : undefined,\n End: onFocusLastTab,\n Home: onFocusFirstTab,\n })\n },\n [\n horizontal,\n onFocusNextTab,\n onFocusPrevTab,\n onFocusLastTab,\n onFocusFirstTab,\n ],\n )\n\n useUpdateEffect(() => {\n if (isUndefined(indexProp)) return\n\n setIndex(indexProp)\n setFocusedIndex(indexProp)\n }, [indexProp])\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) =>\n mergeProps({ \"data-orientation\": orientation }, rest, props, { ref })(),\n [orientation, rest],\n )\n\n const getListProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-orientation\": orientation,\n role: \"tablist\",\n ...props,\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown),\n }),\n [orientation, onKeyDown],\n )\n\n return {\n id,\n focusedIndex,\n index,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n tabDescendants,\n tabPanelDescendants,\n getListProps,\n getRootProps,\n }\n}\n\nexport type UseTabsReturn = ReturnType<typeof useTabs>\n\nexport interface UseTabProps extends HTMLProps<\"button\"> {\n /**\n * The index of the tab.\n */\n index: number\n}\n\nexport const useTab = ({ id, disabled, index, ...rest }: UseTabProps) => {\n const {\n id: rootId,\n index: selectedIndex,\n manual,\n orientation,\n setFocusedIndex,\n setIndex,\n } = useTabsContext()\n const { register } = useTabDescendant({ disabled })\n const tabPanelId = `${rootId}-panel-${index}`\n const selected = index === selectedIndex\n\n id ??= `${rootId}-tab-${index}`\n\n const onClick = useCallback(() => {\n if (!disabled) setIndex(index)\n }, [index, setIndex, disabled])\n\n const onFocus = useCallback(() => {\n if (disabled) return\n\n setFocusedIndex(index)\n\n if (!manual) setIndex(index)\n }, [setFocusedIndex, index, manual, disabled, setIndex])\n\n const getRootProps: PropGetter<\"button\"> = useCallback(\n ({ ref, ...props } = {}) =>\n mergeProps(\n {\n id,\n type: \"button\",\n \"aria-controls\": tabPanelId,\n \"aria-selected\": selected,\n \"data-orientation\": orientation,\n disabled,\n role: \"tab\",\n tabIndex: selected ? 0 : -1,\n },\n rest,\n props,\n { ref: mergeRefs(ref, register) },\n {\n onClick: handlerAll(props.onClick, rest.onClick, onClick),\n onFocus: handlerAll(props.onFocus, rest.onFocus, onFocus),\n },\n )({ mergeEvent: false }),\n [\n disabled,\n id,\n onClick,\n onFocus,\n orientation,\n register,\n rest,\n selected,\n tabPanelId,\n ],\n )\n\n return { index, selected, getRootProps }\n}\n\nexport type UseTabReturn = ReturnType<typeof useTab>\n\nexport interface UseTabPanelProps extends HTMLProps {\n /**\n * The index of the tab panel.\n */\n index: number\n}\n\nexport const useTabPanel = ({\n id,\n \"aria-labelledby\": ariaLabelledbyProp,\n index,\n ...rest\n}: UseTabPanelProps) => {\n const { id: rootId, index: selectedIndex, orientation } = useTabsContext()\n const { register } = useTabPanelDescendant()\n const tabId = `${rootId}-tab-${index}`\n const selected = index === selectedIndex\n\n id ??= `${rootId}-panel-${index}`\n\n const getRootProps: PropGetter = useCallback(\n ({ ref, \"aria-labelledby\": ariaLabelledby, ...props } = {}) =>\n mergeProps(\n {\n id,\n \"aria-labelledby\": cx(ariaLabelledbyProp, ariaLabelledby, tabId),\n \"data-orientation\": orientation,\n hidden: !selected,\n role: \"tabpanel\",\n tabIndex: selected ? 0 : -1,\n },\n rest,\n props,\n { ref: mergeRefs(ref, register) },\n )(),\n [id, ariaLabelledbyProp, orientation, register, rest, selected, tabId],\n )\n\n return { index, selected, getRootProps }\n}\n\nexport type UseTabPanelReturn = ReturnType<typeof useTabPanel>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","names":[],"sources":["../../../../src/components/tag/tag.tsx"],"sourcesContent":["\"use client\"\n\nimport type { MouseEventHandler, ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { TagStyle } from \"./tag.style\"\nimport { useMemo, useRef } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useClickable } from \"../../hooks/use-clickable\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { dataAttr } from \"../../utils\"\nimport { XIcon } from \"../icon\"\nimport { tagStyle } from \"./tag.style\"\n\ninterface ComponentContext extends Pick<TagProps, \"disabled\"> {}\n\nexport interface TagProps\n extends HTMLStyledProps<\"span\">, ThemeProps<TagStyle> {\n /**\n * If `true`, the tag is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * Icon to be displayed to the end of the tag.\n */\n endIcon?: ReactNode\n /**\n * Icon to be displayed to the start of the tag.\n */\n startIcon?: ReactNode\n /**\n * Props for tag close button element.\n */\n closeButtonProps?: TagCloseButtonProps\n /**\n * Props for content element.\n */\n contentProps?: TagContentProps\n /**\n * Props for icon element.\n */\n iconProps?: HTMLStyledProps<\"span\">\n /**\n * Function to be executed when the close button is clicked.\n */\n onClose?: MouseEventHandler<HTMLElement>\n}\n\nconst {\n ComponentContext,\n PropsContext: TagPropsContext,\n useComponentContext,\n usePropsContext: useTagPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<TagProps, TagStyle, ComponentContext>(\"tag\", tagStyle)\n\nexport { TagPropsContext, useTagPropsContext }\n\n/**\n * `Tag` is a component used to categorize or organize items using keywords that describe them.\n *\n * @see https://yamada-ui.com/docs/components/tag\n */\nexport const Tag = withProvider<\"span\", TagProps, \"disabled\">(\n ({\n children,\n disabled,\n endIcon,\n startIcon,\n closeButtonProps,\n contentProps,\n iconProps,\n onClose,\n ...rest\n }) => {\n const context = useMemo(() => ({ disabled }), [disabled])\n\n return (\n <ComponentContext value={context}>\n <styled.span data-disabled={dataAttr(disabled)} {...rest}>\n {startIcon ? (\n <TagStartIcon {...iconProps}>{startIcon}</TagStartIcon>\n ) : null}\n\n {children ? (\n <TagContent {...contentProps}>{children}</TagContent>\n ) : null}\n\n {endIcon ? <TagEndIcon {...iconProps}>{endIcon}</TagEndIcon> : null}\n\n {onClose ? (\n <TagCloseButton onClick={onClose} {...closeButtonProps} />\n ) : null}\n </styled.span>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"disabled\"] },\n)()\n\ninterface TagContentProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagContent = withContext<\"span\", TagContentProps>(\"span\", \"content\")(\n undefined,\n (props) => {\n const { disabled } = useComponentContext()\n\n return { \"data-disabled\": dataAttr(disabled), ...props }\n },\n)\n\ninterface TagStartIconProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagStartIcon = withContext<\"span\", TagStartIconProps>(\"span\", [\n \"icon\",\n \"start\",\n])(undefined, (props) => {\n const { disabled } = useComponentContext()\n\n return { \"data-disabled\": dataAttr(disabled), ...props }\n})\n\ninterface TagEndIconProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagEndIcon = withContext<\"span\", TagEndIconProps>(\"span\", [\n \"icon\",\n \"end\",\n])(undefined, (props) => {\n const { disabled } = useComponentContext()\n\n return { \"data-disabled\": dataAttr(disabled), ...props }\n})\n\ninterface TagCloseButtonProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagCloseButton = withContext<\"span\", TagCloseButtonProps>(\"span\", [\n \"icon\",\n \"closeButton\",\n])(undefined, ({ children, ...props }) => {\n const ref = useRef<HTMLSpanElement>(null)\n const { disabled } = useComponentContext()\n const rest = useClickable<HTMLSpanElement>({ ref, disabled, ...props })\n const { t } = useI18n(\"tag\")\n\n return {\n \"aria-label\": t(\"Close tag\"),\n \"data-disabled\": dataAttr(disabled),\n children: children || <XIcon />,\n ...rest,\n }\n})\n"],"mappings":";;;;;;;;;;;AAiDA,MAAM,EACJ,kBACA,cAAc,iBACd,qBACA,iBAAiB,oBACjB,aACA,iBACE,oBAA0D,OAAO,QAAQ;;;;;;AAS7E,MAAa,MAAM,cAChB,EACC,UACA,UACA,SACA,WACA,kBACA,cACA,WACA,SACA,GAAG,WACC;CACJ,MAAM,UAAU,eAAe,EAAE,SAAS,IAAI,CAAC,QAAQ,CAAC;CAExD,OACE,oBAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,qBAAC,OAAO,MAAR;GAAa,kBAAA,
|
|
1
|
+
{"version":3,"file":"tag.js","names":["dataAttr"],"sources":["../../../../src/components/tag/tag.tsx"],"sourcesContent":["\"use client\"\n\nimport type { MouseEventHandler, ReactNode } from \"react\"\nimport type { HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { TagStyle } from \"./tag.style\"\nimport { useMemo, useRef } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useClickable } from \"../../hooks/use-clickable\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { dataAttr } from \"../../utils\"\nimport { XIcon } from \"../icon\"\nimport { tagStyle } from \"./tag.style\"\n\ninterface ComponentContext extends Pick<TagProps, \"disabled\"> {}\n\nexport interface TagProps\n extends HTMLStyledProps<\"span\">, ThemeProps<TagStyle> {\n /**\n * If `true`, the tag is disabled.\n *\n * @default false\n */\n disabled?: boolean\n /**\n * Icon to be displayed to the end of the tag.\n */\n endIcon?: ReactNode\n /**\n * Icon to be displayed to the start of the tag.\n */\n startIcon?: ReactNode\n /**\n * Props for tag close button element.\n */\n closeButtonProps?: TagCloseButtonProps\n /**\n * Props for content element.\n */\n contentProps?: TagContentProps\n /**\n * Props for icon element.\n */\n iconProps?: HTMLStyledProps<\"span\">\n /**\n * Function to be executed when the close button is clicked.\n */\n onClose?: MouseEventHandler<HTMLElement>\n}\n\nconst {\n ComponentContext,\n PropsContext: TagPropsContext,\n useComponentContext,\n usePropsContext: useTagPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<TagProps, TagStyle, ComponentContext>(\"tag\", tagStyle)\n\nexport { TagPropsContext, useTagPropsContext }\n\n/**\n * `Tag` is a component used to categorize or organize items using keywords that describe them.\n *\n * @see https://yamada-ui.com/docs/components/tag\n */\nexport const Tag = withProvider<\"span\", TagProps, \"disabled\">(\n ({\n children,\n disabled,\n endIcon,\n startIcon,\n closeButtonProps,\n contentProps,\n iconProps,\n onClose,\n ...rest\n }) => {\n const context = useMemo(() => ({ disabled }), [disabled])\n\n return (\n <ComponentContext value={context}>\n <styled.span data-disabled={dataAttr(disabled)} {...rest}>\n {startIcon ? (\n <TagStartIcon {...iconProps}>{startIcon}</TagStartIcon>\n ) : null}\n\n {children ? (\n <TagContent {...contentProps}>{children}</TagContent>\n ) : null}\n\n {endIcon ? <TagEndIcon {...iconProps}>{endIcon}</TagEndIcon> : null}\n\n {onClose ? (\n <TagCloseButton onClick={onClose} {...closeButtonProps} />\n ) : null}\n </styled.span>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"disabled\"] },\n)()\n\ninterface TagContentProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagContent = withContext<\"span\", TagContentProps>(\"span\", \"content\")(\n undefined,\n (props) => {\n const { disabled } = useComponentContext()\n\n return { \"data-disabled\": dataAttr(disabled), ...props }\n },\n)\n\ninterface TagStartIconProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagStartIcon = withContext<\"span\", TagStartIconProps>(\"span\", [\n \"icon\",\n \"start\",\n])(undefined, (props) => {\n const { disabled } = useComponentContext()\n\n return { \"data-disabled\": dataAttr(disabled), ...props }\n})\n\ninterface TagEndIconProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagEndIcon = withContext<\"span\", TagEndIconProps>(\"span\", [\n \"icon\",\n \"end\",\n])(undefined, (props) => {\n const { disabled } = useComponentContext()\n\n return { \"data-disabled\": dataAttr(disabled), ...props }\n})\n\ninterface TagCloseButtonProps extends HTMLStyledProps<\"span\"> {}\n\nconst TagCloseButton = withContext<\"span\", TagCloseButtonProps>(\"span\", [\n \"icon\",\n \"closeButton\",\n])(undefined, ({ children, ...props }) => {\n const ref = useRef<HTMLSpanElement>(null)\n const { disabled } = useComponentContext()\n const rest = useClickable<HTMLSpanElement>({ ref, disabled, ...props })\n const { t } = useI18n(\"tag\")\n\n return {\n \"aria-label\": t(\"Close tag\"),\n \"data-disabled\": dataAttr(disabled),\n children: children || <XIcon />,\n ...rest,\n }\n})\n"],"mappings":";;;;;;;;;;;AAiDA,MAAM,EACJ,kBACA,cAAc,iBACd,qBACA,iBAAiB,oBACjB,aACA,iBACE,oBAA0D,OAAO,QAAQ;;;;;;AAS7E,MAAa,MAAM,cAChB,EACC,UACA,UACA,SACA,WACA,kBACA,cACA,WACA,SACA,GAAG,WACC;CACJ,MAAM,UAAU,eAAe,EAAE,SAAS,IAAI,CAAC,QAAQ,CAAC;CAExD,OACE,oBAAC,kBAAD;EAAkB,OAAO;EACvB,UAAA,qBAAC,OAAO,MAAR;GAAa,kBAAA,GAAeA,cAAAA,SAAAA,CAAS,QAAQ;GAAG,GAAI;GAApD,UAAA;IACG,YACC,oBAAC,cAAD;KAAc,GAAI;KAAY,UAAA;IAAwB,CAAA,IACpD;IAEH,WACC,oBAAC,YAAD;KAAY,GAAI;KAAe;IAAqB,CAAA,IAClD;IAEH,UAAU,oBAAC,YAAD;KAAY,GAAI;KAAY,UAAA;IAAoB,CAAA,IAAI;IAE9D,UACC,oBAAC,gBAAD;KAAgB,SAAS;KAAS,GAAI;IAAmB,CAAA,IACvD;GACO;;CACG,CAAA;AAEtB,GACA,QACA,EAAE,eAAe,CAAC,UAAU,EAAE,CAChC,CAAC,CAAC;AAIF,MAAM,aAAa,YAAqC,QAAQ,SAAS,CAAC,CACxE,KAAA,IACC,UAAU;CACT,MAAM,EAAE,aAAa,oBAAoB;CAEzC,OAAO;EAAE,kBAAA,GAAiBA,cAAAA,SAAAA,CAAS,QAAQ;EAAG,GAAG;CAAM;AACzD,CACF;AAIA,MAAM,eAAe,YAAuC,QAAQ,CAClE,QACA,OACF,CAAC,CAAC,CAAC,KAAA,IAAY,UAAU;CACvB,MAAM,EAAE,aAAa,oBAAoB;CAEzC,OAAO;EAAE,kBAAA,GAAiBA,cAAAA,SAAAA,CAAS,QAAQ;EAAG,GAAG;CAAM;AACzD,CAAC;AAID,MAAM,aAAa,YAAqC,QAAQ,CAC9D,QACA,KACF,CAAC,CAAC,CAAC,KAAA,IAAY,UAAU;CACvB,MAAM,EAAE,aAAa,oBAAoB;CAEzC,OAAO;EAAE,kBAAA,GAAiBA,cAAAA,SAAAA,CAAS,QAAQ;EAAG,GAAG;CAAM;AACzD,CAAC;AAID,MAAM,iBAAiB,YAAyC,QAAQ,CACtE,QACA,aACF,CAAC,CAAC,CAAC,KAAA,IAAY,EAAE,UAAU,GAAG,YAAY;CACxC,MAAM,MAAM,OAAwB,IAAI;CACxC,MAAM,EAAE,aAAa,oBAAoB;CACzC,MAAM,OAAO,aAA8B;EAAE;EAAK;EAAU,GAAG;CAAM,CAAC;CACtE,MAAM,EAAE,MAAM,QAAQ,KAAK;CAE3B,OAAO;EACL,cAAc,EAAE,WAAW;EAC3B,kBAAA,GAAiBA,cAAAA,SAAAA,CAAS,QAAQ;EAClC,UAAU,YAAY,oBAAC,OAAD,CAAQ,CAAA;EAC9B,GAAG;CACL;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-autosize.js","names":["noop"],"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 isShadowRoot,\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 const rootNode = el.getRootNode()\n const container = isShadowRoot(rootNode) ? rootNode : el.ownerDocument.body\n\n container.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 container.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":";;;;;;AAgBA,MAAM,0BAA0B;CAC9B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA;CACA;CAEA;CACA;CACA;CACA;AACF;AAEA,MAAM,eAAe;CACnB,QAAQ;CACR,cAAc;CACd,cAAc;CACd,UAAU;CACV,UAAU;CACV,OAAO;CACP,KAAK;CACL,YAAY;CACZ,WAAW;AACb;AAcA,MAAM,kBAAkB,OAAwC;CAC9D,MAAM,QAAQ,OAAO,iBAAiB,EAAE;CAExC,IAAI,SAAS,MAAM,OAAO;CAE1B,MAAM,iBAAA,
|
|
1
|
+
{"version":3,"file":"use-autosize.js","names":["pickObject","isShadowRoot","handlerAll","noop","createdDom","addDomEvent"],"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 isShadowRoot,\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 const rootNode = el.getRootNode()\n const container = isShadowRoot(rootNode) ? rootNode : el.ownerDocument.body\n\n container.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 container.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":"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"}
|