@mari-ui/components 0.0.0-stage → 0.1.1
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/LICENSE +21 -0
- package/README.md +25 -2
- package/dist/accordion.d.ts +1 -0
- package/dist/accordion.js +245 -0
- package/dist/accordion.js.map +1 -0
- package/dist/alert.d.ts +1 -0
- package/dist/alert.js +114 -0
- package/dist/alert.js.map +1 -0
- package/dist/autocomplete.d.ts +1 -0
- package/dist/autocomplete.js +158 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/avatar.d.ts +1 -0
- package/dist/avatar.js +74 -0
- package/dist/avatar.js.map +1 -0
- package/dist/badge.d.ts +1 -0
- package/dist/badge.js +11 -0
- package/dist/badge.js.map +1 -0
- package/dist/breadcrumb.d.ts +1 -0
- package/dist/breadcrumb.js +141 -0
- package/dist/breadcrumb.js.map +1 -0
- package/dist/button.d.ts +1 -0
- package/dist/button.js +10 -0
- package/dist/button.js.map +1 -0
- package/dist/calendar.d.ts +1 -0
- package/dist/calendar.js +208 -0
- package/dist/calendar.js.map +1 -0
- package/dist/card.d.ts +1 -0
- package/dist/card.js +148 -0
- package/dist/card.js.map +1 -0
- package/dist/carousel.d.ts +1 -0
- package/dist/carousel.js +383 -0
- package/dist/carousel.js.map +1 -0
- package/dist/chart.d.ts +1 -0
- package/dist/chart.js +986 -0
- package/dist/chart.js.map +1 -0
- package/dist/checkbox.d.ts +1 -0
- package/dist/checkbox.js +10 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chunk-2IEXY3OZ.js +147 -0
- package/dist/chunk-2IEXY3OZ.js.map +1 -0
- package/dist/chunk-3ABWBQCS.js +49 -0
- package/dist/chunk-3ABWBQCS.js.map +1 -0
- package/dist/chunk-47FHUOLT.js +166 -0
- package/dist/chunk-47FHUOLT.js.map +1 -0
- package/dist/chunk-54HHEXXD.js +20 -0
- package/dist/chunk-54HHEXXD.js.map +1 -0
- package/dist/chunk-BDV4GOEN.js +53 -0
- package/dist/chunk-BDV4GOEN.js.map +1 -0
- package/dist/chunk-CYLXW66E.js +449 -0
- package/dist/chunk-CYLXW66E.js.map +1 -0
- package/dist/chunk-DKENCYHA.js +15 -0
- package/dist/chunk-DKENCYHA.js.map +1 -0
- package/dist/chunk-DUCIAQGR.js +67 -0
- package/dist/chunk-DUCIAQGR.js.map +1 -0
- package/dist/chunk-ELHESRRH.js +240 -0
- package/dist/chunk-ELHESRRH.js.map +1 -0
- package/dist/chunk-FFXRFQSU.js +51 -0
- package/dist/chunk-FFXRFQSU.js.map +1 -0
- package/dist/chunk-FNJHS5KQ.js +330 -0
- package/dist/chunk-FNJHS5KQ.js.map +1 -0
- package/dist/chunk-IO4346TF.js +392 -0
- package/dist/chunk-IO4346TF.js.map +1 -0
- package/dist/chunk-IP2J3BWY.js +185 -0
- package/dist/chunk-IP2J3BWY.js.map +1 -0
- package/dist/chunk-JNZODUXP.js +116 -0
- package/dist/chunk-JNZODUXP.js.map +1 -0
- package/dist/chunk-KCYM2JXP.js +202 -0
- package/dist/chunk-KCYM2JXP.js.map +1 -0
- package/dist/chunk-KG6A32KX.js +23 -0
- package/dist/chunk-KG6A32KX.js.map +1 -0
- package/dist/chunk-KSPM2Z3T.js +43 -0
- package/dist/chunk-KSPM2Z3T.js.map +1 -0
- package/dist/chunk-LBQMEHK6.js +54 -0
- package/dist/chunk-LBQMEHK6.js.map +1 -0
- package/dist/chunk-LBXIPDAB.js +50 -0
- package/dist/chunk-LBXIPDAB.js.map +1 -0
- package/dist/chunk-LEOIKO7C.js +144 -0
- package/dist/chunk-LEOIKO7C.js.map +1 -0
- package/dist/chunk-LZHERDNB.js +344 -0
- package/dist/chunk-LZHERDNB.js.map +1 -0
- package/dist/chunk-NPM7IDYV.js +145 -0
- package/dist/chunk-NPM7IDYV.js.map +1 -0
- package/dist/chunk-NS7FKOFI.js +56 -0
- package/dist/chunk-NS7FKOFI.js.map +1 -0
- package/dist/chunk-P7Z5BREP.js +935 -0
- package/dist/chunk-P7Z5BREP.js.map +1 -0
- package/dist/chunk-QDFDMWXD.js +236 -0
- package/dist/chunk-QDFDMWXD.js.map +1 -0
- package/dist/chunk-QNOHFHVL.js +555 -0
- package/dist/chunk-QNOHFHVL.js.map +1 -0
- package/dist/chunk-QZRBO7BE.js +684 -0
- package/dist/chunk-QZRBO7BE.js.map +1 -0
- package/dist/chunk-RAS77O7N.js +81 -0
- package/dist/chunk-RAS77O7N.js.map +1 -0
- package/dist/chunk-RIBB5OJV.js +152 -0
- package/dist/chunk-RIBB5OJV.js.map +1 -0
- package/dist/chunk-S66GKX2W.js +50 -0
- package/dist/chunk-S66GKX2W.js.map +1 -0
- package/dist/chunk-TCYDVNSU.js +13 -0
- package/dist/chunk-TCYDVNSU.js.map +1 -0
- package/dist/chunk-TXRQCHOR.js +401 -0
- package/dist/chunk-TXRQCHOR.js.map +1 -0
- package/dist/chunk-V7KDUUV6.js +101 -0
- package/dist/chunk-V7KDUUV6.js.map +1 -0
- package/dist/chunk-XUKVQO6M.js +31 -0
- package/dist/chunk-XUKVQO6M.js.map +1 -0
- package/dist/chunk-YZ7MDC6B.js +189 -0
- package/dist/chunk-YZ7MDC6B.js.map +1 -0
- package/dist/chunk-ZLPAXPDI.js +69 -0
- package/dist/chunk-ZLPAXPDI.js.map +1 -0
- package/dist/chunk-ZMA7BT2L.js +223 -0
- package/dist/chunk-ZMA7BT2L.js.map +1 -0
- package/dist/chunk-ZXYQ2ZPR.js +79 -0
- package/dist/chunk-ZXYQ2ZPR.js.map +1 -0
- package/dist/color-picker.d.ts +1 -0
- package/dist/color-picker.js +32 -0
- package/dist/color-picker.js.map +1 -0
- package/dist/date-picker.d.ts +1 -0
- package/dist/date-picker.js +826 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/divider.d.ts +1 -0
- package/dist/divider.js +106 -0
- package/dist/divider.js.map +1 -0
- package/dist/drawer.d.ts +1 -0
- package/dist/drawer.js +14 -0
- package/dist/drawer.js.map +1 -0
- package/dist/dropdown.d.ts +1 -0
- package/dist/dropdown.js +23 -0
- package/dist/dropdown.js.map +1 -0
- package/dist/empty.d.ts +1 -0
- package/dist/empty.js +11 -0
- package/dist/empty.js.map +1 -0
- package/dist/field.d.ts +1 -0
- package/dist/field.js +51 -0
- package/dist/field.js.map +1 -0
- package/dist/float-button.d.ts +1 -0
- package/dist/float-button.js +247 -0
- package/dist/float-button.js.map +1 -0
- package/dist/image.d.ts +1 -0
- package/dist/image.js +1727 -0
- package/dist/image.js.map +1 -0
- package/dist/input-number.d.ts +1 -0
- package/dist/input-number.js +12 -0
- package/dist/input-number.js.map +1 -0
- package/dist/input.d.ts +1 -0
- package/dist/input.js +21 -0
- package/dist/input.js.map +1 -0
- package/dist/list.d.ts +1 -0
- package/dist/list.js +270 -0
- package/dist/list.js.map +1 -0
- package/dist/loading.d.ts +1 -0
- package/dist/loading.js +7 -0
- package/dist/loading.js.map +1 -0
- package/dist/logo.d.ts +1 -0
- package/dist/logo.js +38 -0
- package/dist/logo.js.map +1 -0
- package/dist/manifest.json +9006 -0
- package/dist/mari.css +145 -0
- package/dist/masonry.d.ts +1 -0
- package/dist/masonry.js +143 -0
- package/dist/masonry.js.map +1 -0
- package/dist/menu.d.ts +1 -0
- package/dist/menu.js +1682 -0
- package/dist/menu.js.map +1 -0
- package/dist/modal.d.ts +1 -0
- package/dist/modal.js +280 -0
- package/dist/modal.js.map +1 -0
- package/dist/pagination.d.ts +1 -0
- package/dist/pagination.js +11 -0
- package/dist/pagination.js.map +1 -0
- package/dist/popconfirm.d.ts +1 -0
- package/dist/popconfirm.js +110 -0
- package/dist/popconfirm.js.map +1 -0
- package/dist/popover.d.ts +1 -0
- package/dist/popover.js +16 -0
- package/dist/popover.js.map +1 -0
- package/dist/progress.d.ts +1 -0
- package/dist/progress.js +135 -0
- package/dist/progress.js.map +1 -0
- package/dist/qrcode.d.ts +1 -0
- package/dist/qrcode.js +212 -0
- package/dist/qrcode.js.map +1 -0
- package/dist/radio.d.ts +1 -0
- package/dist/radio.js +221 -0
- package/dist/radio.js.map +1 -0
- package/dist/rate.d.ts +1 -0
- package/dist/rate.js +196 -0
- package/dist/rate.js.map +1 -0
- package/dist/segmented.d.ts +1 -0
- package/dist/segmented.js +10 -0
- package/dist/segmented.js.map +1 -0
- package/dist/select.d.ts +1 -0
- package/dist/select.js +18 -0
- package/dist/select.js.map +1 -0
- package/dist/skeleton.d.ts +1 -0
- package/dist/skeleton.js +15 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/slider.d.ts +1 -0
- package/dist/slider.js +401 -0
- package/dist/slider.js.map +1 -0
- package/dist/splitter.d.ts +1 -0
- package/dist/splitter.js +323 -0
- package/dist/splitter.js.map +1 -0
- package/dist/statistic.d.ts +1 -0
- package/dist/statistic.js +299 -0
- package/dist/statistic.js.map +1 -0
- package/dist/steps.d.ts +1 -0
- package/dist/steps.js +395 -0
- package/dist/steps.js.map +1 -0
- package/dist/styles.css +2 -0
- package/dist/switch.d.ts +1 -0
- package/dist/switch.js +172 -0
- package/dist/switch.js.map +1 -0
- package/dist/table.d.ts +1 -0
- package/dist/table.js +471 -0
- package/dist/table.js.map +1 -0
- package/dist/tabs.d.ts +1 -0
- package/dist/tabs.js +446 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tag.d.ts +1 -0
- package/dist/tag.js +9 -0
- package/dist/tag.js.map +1 -0
- package/dist/tailwind.css +13 -0
- package/dist/theme-customizer.d.ts +1 -0
- package/dist/theme-customizer.js +271 -0
- package/dist/theme-customizer.js.map +1 -0
- package/dist/timeline.d.ts +1 -0
- package/dist/timeline.js +176 -0
- package/dist/timeline.js.map +1 -0
- package/dist/toast.d.ts +1 -0
- package/dist/toast.js +17 -0
- package/dist/toast.js.map +1 -0
- package/dist/tooltip.d.ts +1 -0
- package/dist/tooltip.js +10 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/tour.d.ts +1 -0
- package/dist/tour.js +253 -0
- package/dist/tour.js.map +1 -0
- package/dist/transfer.d.ts +1 -0
- package/dist/transfer.js +423 -0
- package/dist/transfer.js.map +1 -0
- package/dist/tree-select.d.ts +1 -0
- package/dist/tree-select.js +549 -0
- package/dist/tree-select.js.map +1 -0
- package/dist/tree.d.ts +1 -0
- package/dist/tree.js +23 -0
- package/dist/tree.js.map +1 -0
- package/dist/types/accordion/Accordion.d.ts +16 -0
- package/dist/types/accordion/Accordion.d.ts.map +1 -0
- package/dist/types/accordion/index.d.ts +3 -0
- package/dist/types/accordion/index.d.ts.map +1 -0
- package/dist/types/accordion/types.d.ts +57 -0
- package/dist/types/accordion/types.d.ts.map +1 -0
- package/dist/types/accordion/utils.d.ts +10 -0
- package/dist/types/accordion/utils.d.ts.map +1 -0
- package/dist/types/alert/Alert.d.ts +14 -0
- package/dist/types/alert/Alert.d.ts.map +1 -0
- package/dist/types/alert/index.d.ts +3 -0
- package/dist/types/alert/index.d.ts.map +1 -0
- package/dist/types/alert/types.d.ts +33 -0
- package/dist/types/alert/types.d.ts.map +1 -0
- package/dist/types/autocomplete/AutoComplete.d.ts +16 -0
- package/dist/types/autocomplete/AutoComplete.d.ts.map +1 -0
- package/dist/types/autocomplete/index.d.ts +3 -0
- package/dist/types/autocomplete/index.d.ts.map +1 -0
- package/dist/types/autocomplete/types.d.ts +28 -0
- package/dist/types/autocomplete/types.d.ts.map +1 -0
- package/dist/types/autocomplete/utils.d.ts +14 -0
- package/dist/types/autocomplete/utils.d.ts.map +1 -0
- package/dist/types/avatar/Avatar.d.ts +10 -0
- package/dist/types/avatar/Avatar.d.ts.map +1 -0
- package/dist/types/avatar/index.d.ts +3 -0
- package/dist/types/avatar/index.d.ts.map +1 -0
- package/dist/types/avatar/types.d.ts +29 -0
- package/dist/types/avatar/types.d.ts.map +1 -0
- package/dist/types/avatar/utils.d.ts +12 -0
- package/dist/types/avatar/utils.d.ts.map +1 -0
- package/dist/types/badge/Badge.d.ts +19 -0
- package/dist/types/badge/Badge.d.ts.map +1 -0
- package/dist/types/badge/index.d.ts +3 -0
- package/dist/types/badge/index.d.ts.map +1 -0
- package/dist/types/badge/types.d.ts +38 -0
- package/dist/types/badge/types.d.ts.map +1 -0
- package/dist/types/breadcrumb/Breadcrumb.d.ts +21 -0
- package/dist/types/breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/types/breadcrumb/index.d.ts +3 -0
- package/dist/types/breadcrumb/index.d.ts.map +1 -0
- package/dist/types/breadcrumb/types.d.ts +47 -0
- package/dist/types/breadcrumb/types.d.ts.map +1 -0
- package/dist/types/breadcrumb/utils.d.ts +25 -0
- package/dist/types/breadcrumb/utils.d.ts.map +1 -0
- package/dist/types/button/Button.d.ts +12 -0
- package/dist/types/button/Button.d.ts.map +1 -0
- package/dist/types/button/index.d.ts +3 -0
- package/dist/types/button/index.d.ts.map +1 -0
- package/dist/types/button/types.d.ts +57 -0
- package/dist/types/button/types.d.ts.map +1 -0
- package/dist/types/button/utils.d.ts +10 -0
- package/dist/types/button/utils.d.ts.map +1 -0
- package/dist/types/calendar/Calendar.d.ts +11 -0
- package/dist/types/calendar/Calendar.d.ts.map +1 -0
- package/dist/types/calendar/_components/CalendarPanel.d.ts +36 -0
- package/dist/types/calendar/_components/CalendarPanel.d.ts.map +1 -0
- package/dist/types/calendar/_components/CellGrid.d.ts +32 -0
- package/dist/types/calendar/_components/CellGrid.d.ts.map +1 -0
- package/dist/types/calendar/_components/DayGrid.d.ts +47 -0
- package/dist/types/calendar/_components/DayGrid.d.ts.map +1 -0
- package/dist/types/calendar/index.d.ts +3 -0
- package/dist/types/calendar/index.d.ts.map +1 -0
- package/dist/types/calendar/types.d.ts +49 -0
- package/dist/types/calendar/types.d.ts.map +1 -0
- package/dist/types/card/Card.d.ts +21 -0
- package/dist/types/card/Card.d.ts.map +1 -0
- package/dist/types/card/index.d.ts +3 -0
- package/dist/types/card/index.d.ts.map +1 -0
- package/dist/types/card/types.d.ts +49 -0
- package/dist/types/card/types.d.ts.map +1 -0
- package/dist/types/card/utils.d.ts +17 -0
- package/dist/types/card/utils.d.ts.map +1 -0
- package/dist/types/carousel/Carousel.d.ts +62 -0
- package/dist/types/carousel/Carousel.d.ts.map +1 -0
- package/dist/types/carousel/index.d.ts +4 -0
- package/dist/types/carousel/index.d.ts.map +1 -0
- package/dist/types/carousel/types.d.ts +33 -0
- package/dist/types/carousel/types.d.ts.map +1 -0
- package/dist/types/carousel/utils.d.ts +14 -0
- package/dist/types/carousel/utils.d.ts.map +1 -0
- package/dist/types/chart/_shared/ChartFrame.d.ts +55 -0
- package/dist/types/chart/_shared/ChartFrame.d.ts.map +1 -0
- package/dist/types/chart/_shared/ChartSkeleton.d.ts +41 -0
- package/dist/types/chart/_shared/ChartSkeleton.d.ts.map +1 -0
- package/dist/types/chart/_shared/animation.d.ts +39 -0
- package/dist/types/chart/_shared/animation.d.ts.map +1 -0
- package/dist/types/chart/_shared/cartesian.d.ts +50 -0
- package/dist/types/chart/_shared/cartesian.d.ts.map +1 -0
- package/dist/types/chart/_shared/format.d.ts +10 -0
- package/dist/types/chart/_shared/format.d.ts.map +1 -0
- package/dist/types/chart/_shared/paths.d.ts +20 -0
- package/dist/types/chart/_shared/paths.d.ts.map +1 -0
- package/dist/types/chart/_shared/scale.d.ts +35 -0
- package/dist/types/chart/_shared/scale.d.ts.map +1 -0
- package/dist/types/chart/_shared/storyDocs.d.ts +3 -0
- package/dist/types/chart/_shared/storyDocs.d.ts.map +1 -0
- package/dist/types/chart/_shared/useChartSize.d.ts +17 -0
- package/dist/types/chart/_shared/useChartSize.d.ts.map +1 -0
- package/dist/types/chart/bar-chart/BarChart.d.ts +17 -0
- package/dist/types/chart/bar-chart/BarChart.d.ts.map +1 -0
- package/dist/types/chart/bar-chart/bars.d.ts +21 -0
- package/dist/types/chart/bar-chart/bars.d.ts.map +1 -0
- package/dist/types/chart/gauge/Gauge.d.ts +42 -0
- package/dist/types/chart/gauge/Gauge.d.ts.map +1 -0
- package/dist/types/chart/index.d.ts +12 -0
- package/dist/types/chart/index.d.ts.map +1 -0
- package/dist/types/chart/line-chart/LineChart.d.ts +22 -0
- package/dist/types/chart/line-chart/LineChart.d.ts.map +1 -0
- package/dist/types/chart/pie-chart/PieChart.d.ts +33 -0
- package/dist/types/chart/pie-chart/PieChart.d.ts.map +1 -0
- package/dist/types/chart/sparkline/Sparkline.d.ts +31 -0
- package/dist/types/chart/sparkline/Sparkline.d.ts.map +1 -0
- package/dist/types/chart/storyData.d.ts +36 -0
- package/dist/types/chart/storyData.d.ts.map +1 -0
- package/dist/types/chart/types.d.ts +50 -0
- package/dist/types/chart/types.d.ts.map +1 -0
- package/dist/types/checkbox/Checkbox.d.ts +5 -0
- package/dist/types/checkbox/Checkbox.d.ts.map +1 -0
- package/dist/types/checkbox/index.d.ts +3 -0
- package/dist/types/checkbox/index.d.ts.map +1 -0
- package/dist/types/checkbox/types.d.ts +35 -0
- package/dist/types/checkbox/types.d.ts.map +1 -0
- package/dist/types/checkbox/utils.d.ts +15 -0
- package/dist/types/checkbox/utils.d.ts.map +1 -0
- package/dist/types/color-picker/ColorPicker.d.ts +17 -0
- package/dist/types/color-picker/ColorPicker.d.ts.map +1 -0
- package/dist/types/color-picker/_components/ColorArea.d.ts +19 -0
- package/dist/types/color-picker/_components/ColorArea.d.ts.map +1 -0
- package/dist/types/color-picker/_components/ColorInputs.d.ts +14 -0
- package/dist/types/color-picker/_components/ColorInputs.d.ts.map +1 -0
- package/dist/types/color-picker/_components/ColorPresets.d.ts +9 -0
- package/dist/types/color-picker/_components/ColorPresets.d.ts.map +1 -0
- package/dist/types/color-picker/_components/ColorSlider.d.ts +24 -0
- package/dist/types/color-picker/_components/ColorSlider.d.ts.map +1 -0
- package/dist/types/color-picker/_components/Swatch.d.ts +14 -0
- package/dist/types/color-picker/_components/Swatch.d.ts.map +1 -0
- package/dist/types/color-picker/_components/usePointerDrag.d.ts +18 -0
- package/dist/types/color-picker/_components/usePointerDrag.d.ts.map +1 -0
- package/dist/types/color-picker/index.d.ts +4 -0
- package/dist/types/color-picker/index.d.ts.map +1 -0
- package/dist/types/color-picker/types.d.ts +81 -0
- package/dist/types/color-picker/types.d.ts.map +1 -0
- package/dist/types/color-picker/utils.d.ts +50 -0
- package/dist/types/color-picker/utils.d.ts.map +1 -0
- package/dist/types/date-picker/DatePicker.d.ts +17 -0
- package/dist/types/date-picker/DatePicker.d.ts.map +1 -0
- package/dist/types/date-picker/TimePicker.d.ts +8 -0
- package/dist/types/date-picker/TimePicker.d.ts.map +1 -0
- package/dist/types/date-picker/_components/PickerPanel.d.ts +21 -0
- package/dist/types/date-picker/_components/PickerPanel.d.ts.map +1 -0
- package/dist/types/date-picker/_components/TimePanel.d.ts +13 -0
- package/dist/types/date-picker/_components/TimePanel.d.ts.map +1 -0
- package/dist/types/date-picker/index.d.ts +4 -0
- package/dist/types/date-picker/index.d.ts.map +1 -0
- package/dist/types/date-picker/types.d.ts +89 -0
- package/dist/types/date-picker/types.d.ts.map +1 -0
- package/dist/types/date-picker/usePickerState.d.ts +37 -0
- package/dist/types/date-picker/usePickerState.d.ts.map +1 -0
- package/dist/types/date-picker/utils.d.ts +24 -0
- package/dist/types/date-picker/utils.d.ts.map +1 -0
- package/dist/types/divider/Divider.d.ts +8 -0
- package/dist/types/divider/Divider.d.ts.map +1 -0
- package/dist/types/divider/index.d.ts +3 -0
- package/dist/types/divider/index.d.ts.map +1 -0
- package/dist/types/divider/types.d.ts +25 -0
- package/dist/types/divider/types.d.ts.map +1 -0
- package/dist/types/divider/utils.d.ts +12 -0
- package/dist/types/divider/utils.d.ts.map +1 -0
- package/dist/types/drawer/Drawer.d.ts +27 -0
- package/dist/types/drawer/Drawer.d.ts.map +1 -0
- package/dist/types/drawer/index.d.ts +3 -0
- package/dist/types/drawer/index.d.ts.map +1 -0
- package/dist/types/drawer/types.d.ts +51 -0
- package/dist/types/drawer/types.d.ts.map +1 -0
- package/dist/types/drawer/utils.d.ts +5 -0
- package/dist/types/drawer/utils.d.ts.map +1 -0
- package/dist/types/dropdown/Dropdown.d.ts +6 -0
- package/dist/types/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/types/dropdown/_components/DropdownContent.d.ts +16 -0
- package/dist/types/dropdown/_components/DropdownContent.d.ts.map +1 -0
- package/dist/types/dropdown/_components/DropdownItem.d.ts +18 -0
- package/dist/types/dropdown/_components/DropdownItem.d.ts.map +1 -0
- package/dist/types/dropdown/_components/DropdownTrigger.d.ts +4 -0
- package/dist/types/dropdown/_components/DropdownTrigger.d.ts.map +1 -0
- package/dist/types/dropdown/index.d.ts +6 -0
- package/dist/types/dropdown/index.d.ts.map +1 -0
- package/dist/types/dropdown/types.d.ts +69 -0
- package/dist/types/dropdown/types.d.ts.map +1 -0
- package/dist/types/dropdown/useDropdown.d.ts +44 -0
- package/dist/types/dropdown/useDropdown.d.ts.map +1 -0
- package/dist/types/dropdown/utils.d.ts +13 -0
- package/dist/types/dropdown/utils.d.ts.map +1 -0
- package/dist/types/empty/Empty.d.ts +32 -0
- package/dist/types/empty/Empty.d.ts.map +1 -0
- package/dist/types/empty/index.d.ts +3 -0
- package/dist/types/empty/index.d.ts.map +1 -0
- package/dist/types/field/Field.d.ts +20 -0
- package/dist/types/field/Field.d.ts.map +1 -0
- package/dist/types/field/index.d.ts +3 -0
- package/dist/types/field/index.d.ts.map +1 -0
- package/dist/types/field/types.d.ts +26 -0
- package/dist/types/field/types.d.ts.map +1 -0
- package/dist/types/float-button/BackTop.d.ts +11 -0
- package/dist/types/float-button/BackTop.d.ts.map +1 -0
- package/dist/types/float-button/FloatButton.d.ts +28 -0
- package/dist/types/float-button/FloatButton.d.ts.map +1 -0
- package/dist/types/float-button/FloatButtonGroup.d.ts +11 -0
- package/dist/types/float-button/FloatButtonGroup.d.ts.map +1 -0
- package/dist/types/float-button/index.d.ts +5 -0
- package/dist/types/float-button/index.d.ts.map +1 -0
- package/dist/types/float-button/types.d.ts +73 -0
- package/dist/types/float-button/types.d.ts.map +1 -0
- package/dist/types/float-button/utils.d.ts +14 -0
- package/dist/types/float-button/utils.d.ts.map +1 -0
- package/dist/types/foundations/PersonaDocs.d.ts +11 -0
- package/dist/types/foundations/PersonaDocs.d.ts.map +1 -0
- package/dist/types/foundations/usePersonaTheme.d.ts +17 -0
- package/dist/types/foundations/usePersonaTheme.d.ts.map +1 -0
- package/dist/types/image/Image.d.ts +16 -0
- package/dist/types/image/Image.d.ts.map +1 -0
- package/dist/types/image/ImageGallery.d.ts +82 -0
- package/dist/types/image/ImageGallery.d.ts.map +1 -0
- package/dist/types/image/ImageViewer.d.ts +54 -0
- package/dist/types/image/ImageViewer.d.ts.map +1 -0
- package/dist/types/image/galleryUtils.d.ts +89 -0
- package/dist/types/image/galleryUtils.d.ts.map +1 -0
- package/dist/types/image/index.d.ts +7 -0
- package/dist/types/image/index.d.ts.map +1 -0
- package/dist/types/image/types.d.ts +78 -0
- package/dist/types/image/types.d.ts.map +1 -0
- package/dist/types/image/utils.d.ts +54 -0
- package/dist/types/image/utils.d.ts.map +1 -0
- package/dist/types/image/viewerUtils.d.ts +66 -0
- package/dist/types/image/viewerUtils.d.ts.map +1 -0
- package/dist/types/input/Input.d.ts +5 -0
- package/dist/types/input/Input.d.ts.map +1 -0
- package/dist/types/input/OtpInput.d.ts +41 -0
- package/dist/types/input/OtpInput.d.ts.map +1 -0
- package/dist/types/input/SearchInput.d.ts +25 -0
- package/dist/types/input/SearchInput.d.ts.map +1 -0
- package/dist/types/input/Textarea.d.ts +59 -0
- package/dist/types/input/Textarea.d.ts.map +1 -0
- package/dist/types/input/_components/FieldAdornments.d.ts +22 -0
- package/dist/types/input/_components/FieldAdornments.d.ts.map +1 -0
- package/dist/types/input/_components/OtpSingleField.d.ts +38 -0
- package/dist/types/input/_components/OtpSingleField.d.ts.map +1 -0
- package/dist/types/input/index.d.ts +10 -0
- package/dist/types/input/index.d.ts.map +1 -0
- package/dist/types/input/mention/caret.d.ts +12 -0
- package/dist/types/input/mention/caret.d.ts.map +1 -0
- package/dist/types/input/mention/types.d.ts +45 -0
- package/dist/types/input/mention/types.d.ts.map +1 -0
- package/dist/types/input/mention/useMention.d.ts +16 -0
- package/dist/types/input/mention/useMention.d.ts.map +1 -0
- package/dist/types/input/mention/utils.d.ts +22 -0
- package/dist/types/input/mention/utils.d.ts.map +1 -0
- package/dist/types/input/types.d.ts +97 -0
- package/dist/types/input/types.d.ts.map +1 -0
- package/dist/types/input/utils.d.ts +51 -0
- package/dist/types/input/utils.d.ts.map +1 -0
- package/dist/types/input-number/InputNumber.d.ts +17 -0
- package/dist/types/input-number/InputNumber.d.ts.map +1 -0
- package/dist/types/input-number/index.d.ts +3 -0
- package/dist/types/input-number/index.d.ts.map +1 -0
- package/dist/types/input-number/types.d.ts +53 -0
- package/dist/types/input-number/types.d.ts.map +1 -0
- package/dist/types/input-number/utils.d.ts +42 -0
- package/dist/types/input-number/utils.d.ts.map +1 -0
- package/dist/types/lib/AnimationDemo.d.ts +13 -0
- package/dist/types/lib/AnimationDemo.d.ts.map +1 -0
- package/dist/types/lib/ContentSkeleton.d.ts +21 -0
- package/dist/types/lib/ContentSkeleton.d.ts.map +1 -0
- package/dist/types/lib/FloatingArrow.d.ts +22 -0
- package/dist/types/lib/FloatingArrow.d.ts.map +1 -0
- package/dist/types/lib/SkeletonDemo.d.ts +14 -0
- package/dist/types/lib/SkeletonDemo.d.ts.map +1 -0
- package/dist/types/lib/SkeletonSlot.d.ts +22 -0
- package/dist/types/lib/SkeletonSlot.d.ts.map +1 -0
- package/dist/types/lib/colorClasses.d.ts +57 -0
- package/dist/types/lib/colorClasses.d.ts.map +1 -0
- package/dist/types/lib/date/index.d.ts +51 -0
- package/dist/types/lib/date/index.d.ts.map +1 -0
- package/dist/types/lib/elevationClass.d.ts +10 -0
- package/dist/types/lib/elevationClass.d.ts.map +1 -0
- package/dist/types/lib/fieldContext.d.ts +61 -0
- package/dist/types/lib/fieldContext.d.ts.map +1 -0
- package/dist/types/lib/floating.d.ts +46 -0
- package/dist/types/lib/floating.d.ts.map +1 -0
- package/dist/types/lib/infiniteScroll.d.ts +36 -0
- package/dist/types/lib/infiniteScroll.d.ts.map +1 -0
- package/dist/types/lib/linkBehavior.d.ts +38 -0
- package/dist/types/lib/linkBehavior.d.ts.map +1 -0
- package/dist/types/lib/overlay.d.ts +55 -0
- package/dist/types/lib/overlay.d.ts.map +1 -0
- package/dist/types/lib/sizeClasses.d.ts +49 -0
- package/dist/types/lib/sizeClasses.d.ts.map +1 -0
- package/dist/types/lib/skeleton.d.ts +31 -0
- package/dist/types/lib/skeleton.d.ts.map +1 -0
- package/dist/types/lib/storyMeta.d.ts +85 -0
- package/dist/types/lib/storyMeta.d.ts.map +1 -0
- package/dist/types/lib/storyPhotos.d.ts +31 -0
- package/dist/types/lib/storyPhotos.d.ts.map +1 -0
- package/dist/types/lib/storybookArgTypes.d.ts +20 -0
- package/dist/types/lib/storybookArgTypes.d.ts.map +1 -0
- package/dist/types/lib/useAnimatedValue.d.ts +38 -0
- package/dist/types/lib/useAnimatedValue.d.ts.map +1 -0
- package/dist/types/lib/useFloatingPosition.d.ts +32 -0
- package/dist/types/lib/useFloatingPosition.d.ts.map +1 -0
- package/dist/types/lib/useScrollable.d.ts +13 -0
- package/dist/types/lib/useScrollable.d.ts.map +1 -0
- package/dist/types/list/List.d.ts +23 -0
- package/dist/types/list/List.d.ts.map +1 -0
- package/dist/types/list/index.d.ts +3 -0
- package/dist/types/list/index.d.ts.map +1 -0
- package/dist/types/list/types.d.ts +95 -0
- package/dist/types/list/types.d.ts.map +1 -0
- package/dist/types/list/utils.d.ts +16 -0
- package/dist/types/list/utils.d.ts.map +1 -0
- package/dist/types/loading/Loading.d.ts +5 -0
- package/dist/types/loading/Loading.d.ts.map +1 -0
- package/dist/types/loading/index.d.ts +3 -0
- package/dist/types/loading/index.d.ts.map +1 -0
- package/dist/types/loading/types.d.ts +33 -0
- package/dist/types/loading/types.d.ts.map +1 -0
- package/dist/types/loading/utils.d.ts +15 -0
- package/dist/types/loading/utils.d.ts.map +1 -0
- package/dist/types/logo/Logo.d.ts +11 -0
- package/dist/types/logo/Logo.d.ts.map +1 -0
- package/dist/types/logo/index.d.ts +3 -0
- package/dist/types/logo/index.d.ts.map +1 -0
- package/dist/types/masonry/Masonry.d.ts +15 -0
- package/dist/types/masonry/Masonry.d.ts.map +1 -0
- package/dist/types/masonry/index.d.ts +3 -0
- package/dist/types/masonry/index.d.ts.map +1 -0
- package/dist/types/masonry/types.d.ts +35 -0
- package/dist/types/masonry/types.d.ts.map +1 -0
- package/dist/types/masonry/utils.d.ts +23 -0
- package/dist/types/masonry/utils.d.ts.map +1 -0
- package/dist/types/menu/_shared/MegaPanel.d.ts +20 -0
- package/dist/types/menu/_shared/MegaPanel.d.ts.map +1 -0
- package/dist/types/menu/_shared/MenuLink.d.ts +39 -0
- package/dist/types/menu/_shared/MenuLink.d.ts.map +1 -0
- package/dist/types/menu/_shared/MobileNav.d.ts +31 -0
- package/dist/types/menu/_shared/MobileNav.d.ts.map +1 -0
- package/dist/types/menu/_shared/NavBar.d.ts +49 -0
- package/dist/types/menu/_shared/NavBar.d.ts.map +1 -0
- package/dist/types/menu/_shared/NavDrawer.d.ts +40 -0
- package/dist/types/menu/_shared/NavDrawer.d.ts.map +1 -0
- package/dist/types/menu/_shared/_components/MegaPanelColumn.d.ts +19 -0
- package/dist/types/menu/_shared/_components/MegaPanelColumn.d.ts.map +1 -0
- package/dist/types/menu/_shared/_components/MegaPanelPromoGrid.d.ts +11 -0
- package/dist/types/menu/_shared/_components/MegaPanelPromoGrid.d.ts.map +1 -0
- package/dist/types/menu/_shared/_components/MegaPanelRail.d.ts +30 -0
- package/dist/types/menu/_shared/_components/MegaPanelRail.d.ts.map +1 -0
- package/dist/types/menu/_shared/_components/MobileNavLevel.d.ts +26 -0
- package/dist/types/menu/_shared/_components/MobileNavLevel.d.ts.map +1 -0
- package/dist/types/menu/_shared/index.d.ts +3 -0
- package/dist/types/menu/_shared/index.d.ts.map +1 -0
- package/dist/types/menu/_shared/responsive.d.ts +12 -0
- package/dist/types/menu/_shared/responsive.d.ts.map +1 -0
- package/dist/types/menu/_shared/types.d.ts +17 -0
- package/dist/types/menu/_shared/types.d.ts.map +1 -0
- package/dist/types/menu/_shared/useHoverIntent.d.ts +11 -0
- package/dist/types/menu/_shared/useHoverIntent.d.ts.map +1 -0
- package/dist/types/menu/basic-menu/BasicMenu.d.ts +35 -0
- package/dist/types/menu/basic-menu/BasicMenu.d.ts.map +1 -0
- package/dist/types/menu/basic-menu/_components/BasicMenuItem.d.ts +18 -0
- package/dist/types/menu/basic-menu/_components/BasicMenuItem.d.ts.map +1 -0
- package/dist/types/menu/basic-menu/_components/DropdownSubMenu.d.ts +43 -0
- package/dist/types/menu/basic-menu/_components/DropdownSubMenu.d.ts.map +1 -0
- package/dist/types/menu/basic-menu/_components/SubMenuRow.d.ts +20 -0
- package/dist/types/menu/basic-menu/_components/SubMenuRow.d.ts.map +1 -0
- package/dist/types/menu/basic-menu/index.d.ts +3 -0
- package/dist/types/menu/basic-menu/index.d.ts.map +1 -0
- package/dist/types/menu/index.d.ts +9 -0
- package/dist/types/menu/index.d.ts.map +1 -0
- package/dist/types/menu/mega-menu/MegaMenu.d.ts +20 -0
- package/dist/types/menu/mega-menu/MegaMenu.d.ts.map +1 -0
- package/dist/types/menu/mega-menu/_components/MegaMenuItem.d.ts +38 -0
- package/dist/types/menu/mega-menu/_components/MegaMenuItem.d.ts.map +1 -0
- package/dist/types/menu/mega-menu/index.d.ts +3 -0
- package/dist/types/menu/mega-menu/index.d.ts.map +1 -0
- package/dist/types/menu/sidebar/Sidebar.d.ts +66 -0
- package/dist/types/menu/sidebar/Sidebar.d.ts.map +1 -0
- package/dist/types/menu/sidebar/_components/SidebarButton.d.ts +16 -0
- package/dist/types/menu/sidebar/_components/SidebarButton.d.ts.map +1 -0
- package/dist/types/menu/sidebar/_components/SidebarItem.d.ts +45 -0
- package/dist/types/menu/sidebar/_components/SidebarItem.d.ts.map +1 -0
- package/dist/types/menu/sidebar/_components/SidebarMegaPanel.d.ts +16 -0
- package/dist/types/menu/sidebar/_components/SidebarMegaPanel.d.ts.map +1 -0
- package/dist/types/menu/sidebar/_components/SidebarMenu.d.ts +17 -0
- package/dist/types/menu/sidebar/_components/SidebarMenu.d.ts.map +1 -0
- package/dist/types/menu/sidebar/index.d.ts +3 -0
- package/dist/types/menu/sidebar/index.d.ts.map +1 -0
- package/dist/types/menu/types.d.ts +66 -0
- package/dist/types/menu/types.d.ts.map +1 -0
- package/dist/types/menu/utils.d.ts +38 -0
- package/dist/types/menu/utils.d.ts.map +1 -0
- package/dist/types/modal/Modal.d.ts +22 -0
- package/dist/types/modal/Modal.d.ts.map +1 -0
- package/dist/types/modal/index.d.ts +3 -0
- package/dist/types/modal/index.d.ts.map +1 -0
- package/dist/types/modal/types.d.ts +64 -0
- package/dist/types/modal/types.d.ts.map +1 -0
- package/dist/types/modal/utils.d.ts +10 -0
- package/dist/types/modal/utils.d.ts.map +1 -0
- package/dist/types/pagination/Pagination.d.ts +18 -0
- package/dist/types/pagination/Pagination.d.ts.map +1 -0
- package/dist/types/pagination/index.d.ts +3 -0
- package/dist/types/pagination/index.d.ts.map +1 -0
- package/dist/types/pagination/types.d.ts +64 -0
- package/dist/types/pagination/types.d.ts.map +1 -0
- package/dist/types/pagination/utils.d.ts +41 -0
- package/dist/types/pagination/utils.d.ts.map +1 -0
- package/dist/types/popconfirm/Popconfirm.d.ts +16 -0
- package/dist/types/popconfirm/Popconfirm.d.ts.map +1 -0
- package/dist/types/popconfirm/index.d.ts +3 -0
- package/dist/types/popconfirm/index.d.ts.map +1 -0
- package/dist/types/popconfirm/types.d.ts +35 -0
- package/dist/types/popconfirm/types.d.ts.map +1 -0
- package/dist/types/popover/Popover.d.ts +16 -0
- package/dist/types/popover/Popover.d.ts.map +1 -0
- package/dist/types/popover/index.d.ts +3 -0
- package/dist/types/popover/index.d.ts.map +1 -0
- package/dist/types/popover/types.d.ts +42 -0
- package/dist/types/popover/types.d.ts.map +1 -0
- package/dist/types/progress/Progress.d.ts +15 -0
- package/dist/types/progress/Progress.d.ts.map +1 -0
- package/dist/types/progress/index.d.ts +3 -0
- package/dist/types/progress/index.d.ts.map +1 -0
- package/dist/types/progress/types.d.ts +34 -0
- package/dist/types/progress/types.d.ts.map +1 -0
- package/dist/types/qrcode/QRCode.d.ts +17 -0
- package/dist/types/qrcode/QRCode.d.ts.map +1 -0
- package/dist/types/qrcode/index.d.ts +3 -0
- package/dist/types/qrcode/index.d.ts.map +1 -0
- package/dist/types/qrcode/types.d.ts +49 -0
- package/dist/types/qrcode/types.d.ts.map +1 -0
- package/dist/types/qrcode/utils.d.ts +34 -0
- package/dist/types/qrcode/utils.d.ts.map +1 -0
- package/dist/types/radio/Radio.d.ts +5 -0
- package/dist/types/radio/Radio.d.ts.map +1 -0
- package/dist/types/radio/RadioGroup.d.ts +8 -0
- package/dist/types/radio/RadioGroup.d.ts.map +1 -0
- package/dist/types/radio/index.d.ts +4 -0
- package/dist/types/radio/index.d.ts.map +1 -0
- package/dist/types/radio/types.d.ts +53 -0
- package/dist/types/radio/types.d.ts.map +1 -0
- package/dist/types/radio/utils.d.ts +14 -0
- package/dist/types/radio/utils.d.ts.map +1 -0
- package/dist/types/rate/Rate.d.ts +5 -0
- package/dist/types/rate/Rate.d.ts.map +1 -0
- package/dist/types/rate/index.d.ts +3 -0
- package/dist/types/rate/index.d.ts.map +1 -0
- package/dist/types/rate/types.d.ts +37 -0
- package/dist/types/rate/types.d.ts.map +1 -0
- package/dist/types/rate/utils.d.ts +15 -0
- package/dist/types/rate/utils.d.ts.map +1 -0
- package/dist/types/segmented/Segmented.d.ts +15 -0
- package/dist/types/segmented/Segmented.d.ts.map +1 -0
- package/dist/types/segmented/index.d.ts +3 -0
- package/dist/types/segmented/index.d.ts.map +1 -0
- package/dist/types/segmented/types.d.ts +33 -0
- package/dist/types/segmented/types.d.ts.map +1 -0
- package/dist/types/select/Select.d.ts +17 -0
- package/dist/types/select/Select.d.ts.map +1 -0
- package/dist/types/select/_components/SelectPanel.d.ts +34 -0
- package/dist/types/select/_components/SelectPanel.d.ts.map +1 -0
- package/dist/types/select/index.d.ts +3 -0
- package/dist/types/select/index.d.ts.map +1 -0
- package/dist/types/select/types.d.ts +82 -0
- package/dist/types/select/types.d.ts.map +1 -0
- package/dist/types/select/useSelectState.d.ts +29 -0
- package/dist/types/select/useSelectState.d.ts.map +1 -0
- package/dist/types/select/utils.d.ts +39 -0
- package/dist/types/select/utils.d.ts.map +1 -0
- package/dist/types/skeleton/Skeleton.d.ts +10 -0
- package/dist/types/skeleton/Skeleton.d.ts.map +1 -0
- package/dist/types/skeleton/SkeletonButton.d.ts +13 -0
- package/dist/types/skeleton/SkeletonButton.d.ts.map +1 -0
- package/dist/types/skeleton/SkeletonInput.d.ts +9 -0
- package/dist/types/skeleton/SkeletonInput.d.ts.map +1 -0
- package/dist/types/skeleton/index.d.ts +7 -0
- package/dist/types/skeleton/index.d.ts.map +1 -0
- package/dist/types/skeleton/types.d.ts +46 -0
- package/dist/types/skeleton/types.d.ts.map +1 -0
- package/dist/types/skeleton/utils.d.ts +12 -0
- package/dist/types/skeleton/utils.d.ts.map +1 -0
- package/dist/types/slider/Slider.d.ts +5 -0
- package/dist/types/slider/Slider.d.ts.map +1 -0
- package/dist/types/slider/index.d.ts +3 -0
- package/dist/types/slider/index.d.ts.map +1 -0
- package/dist/types/slider/types.d.ts +52 -0
- package/dist/types/slider/types.d.ts.map +1 -0
- package/dist/types/slider/utils.d.ts +15 -0
- package/dist/types/slider/utils.d.ts.map +1 -0
- package/dist/types/splitter/Splitter.d.ts +22 -0
- package/dist/types/splitter/Splitter.d.ts.map +1 -0
- package/dist/types/splitter/index.d.ts +3 -0
- package/dist/types/splitter/index.d.ts.map +1 -0
- package/dist/types/splitter/types.d.ts +50 -0
- package/dist/types/splitter/types.d.ts.map +1 -0
- package/dist/types/splitter/utils.d.ts +33 -0
- package/dist/types/splitter/utils.d.ts.map +1 -0
- package/dist/types/statistic/Statistic.d.ts +23 -0
- package/dist/types/statistic/Statistic.d.ts.map +1 -0
- package/dist/types/statistic/index.d.ts +3 -0
- package/dist/types/statistic/index.d.ts.map +1 -0
- package/dist/types/statistic/types.d.ts +72 -0
- package/dist/types/statistic/types.d.ts.map +1 -0
- package/dist/types/statistic/utils.d.ts +34 -0
- package/dist/types/statistic/utils.d.ts.map +1 -0
- package/dist/types/steps/Steps.d.ts +5 -0
- package/dist/types/steps/Steps.d.ts.map +1 -0
- package/dist/types/steps/_components/StepsContent.d.ts +19 -0
- package/dist/types/steps/_components/StepsContent.d.ts.map +1 -0
- package/dist/types/steps/index.d.ts +5 -0
- package/dist/types/steps/index.d.ts.map +1 -0
- package/dist/types/steps/types.d.ts +90 -0
- package/dist/types/steps/types.d.ts.map +1 -0
- package/dist/types/steps/utils.d.ts +25 -0
- package/dist/types/steps/utils.d.ts.map +1 -0
- package/dist/types/switch/Switch.d.ts +14 -0
- package/dist/types/switch/Switch.d.ts.map +1 -0
- package/dist/types/switch/index.d.ts +3 -0
- package/dist/types/switch/index.d.ts.map +1 -0
- package/dist/types/switch/types.d.ts +19 -0
- package/dist/types/switch/types.d.ts.map +1 -0
- package/dist/types/switch/utils.d.ts +11 -0
- package/dist/types/switch/utils.d.ts.map +1 -0
- package/dist/types/table/Table.d.ts +26 -0
- package/dist/types/table/Table.d.ts.map +1 -0
- package/dist/types/table/_components/TableAccordion.d.ts +16 -0
- package/dist/types/table/_components/TableAccordion.d.ts.map +1 -0
- package/dist/types/table/_components/TableBody.d.ts +16 -0
- package/dist/types/table/_components/TableBody.d.ts.map +1 -0
- package/dist/types/table/_components/TableCellSkeleton.d.ts +12 -0
- package/dist/types/table/_components/TableCellSkeleton.d.ts.map +1 -0
- package/dist/types/table/_components/TableEditDrawer.d.ts +18 -0
- package/dist/types/table/_components/TableEditDrawer.d.ts.map +1 -0
- package/dist/types/table/_components/TableHeader.d.ts +19 -0
- package/dist/types/table/_components/TableHeader.d.ts.map +1 -0
- package/dist/types/table/_components/TableInfoValue.d.ts +17 -0
- package/dist/types/table/_components/TableInfoValue.d.ts.map +1 -0
- package/dist/types/table/_components/TablePagination.d.ts +21 -0
- package/dist/types/table/_components/TablePagination.d.ts.map +1 -0
- package/dist/types/table/_components/TableRowActions.d.ts +22 -0
- package/dist/types/table/_components/TableRowActions.d.ts.map +1 -0
- package/dist/types/table/index.d.ts +3 -0
- package/dist/types/table/index.d.ts.map +1 -0
- package/dist/types/table/types.d.ts +101 -0
- package/dist/types/table/types.d.ts.map +1 -0
- package/dist/types/table/utils.d.ts +27 -0
- package/dist/types/table/utils.d.ts.map +1 -0
- package/dist/types/tabs/Tabs.d.ts +13 -0
- package/dist/types/tabs/Tabs.d.ts.map +1 -0
- package/dist/types/tabs/_components/TabsContent.d.ts +9 -0
- package/dist/types/tabs/_components/TabsContent.d.ts.map +1 -0
- package/dist/types/tabs/_components/TabsList.d.ts +16 -0
- package/dist/types/tabs/_components/TabsList.d.ts.map +1 -0
- package/dist/types/tabs/_components/TabsTrigger.d.ts +12 -0
- package/dist/types/tabs/_components/TabsTrigger.d.ts.map +1 -0
- package/dist/types/tabs/index.d.ts +6 -0
- package/dist/types/tabs/index.d.ts.map +1 -0
- package/dist/types/tabs/types.d.ts +91 -0
- package/dist/types/tabs/types.d.ts.map +1 -0
- package/dist/types/tabs/useTabs.d.ts +10 -0
- package/dist/types/tabs/useTabs.d.ts.map +1 -0
- package/dist/types/tabs/utils.d.ts +20 -0
- package/dist/types/tabs/utils.d.ts.map +1 -0
- package/dist/types/tag/Tag.d.ts +5 -0
- package/dist/types/tag/Tag.d.ts.map +1 -0
- package/dist/types/tag/index.d.ts +3 -0
- package/dist/types/tag/index.d.ts.map +1 -0
- package/dist/types/tag/types.d.ts +18 -0
- package/dist/types/tag/types.d.ts.map +1 -0
- package/dist/types/tag/utils.d.ts +13 -0
- package/dist/types/tag/utils.d.ts.map +1 -0
- package/dist/types/theme-customizer/ThemeCustomizer.d.ts +17 -0
- package/dist/types/theme-customizer/ThemeCustomizer.d.ts.map +1 -0
- package/dist/types/theme-customizer/applyTheme.d.ts +16 -0
- package/dist/types/theme-customizer/applyTheme.d.ts.map +1 -0
- package/dist/types/theme-customizer/index.d.ts +8 -0
- package/dist/types/theme-customizer/index.d.ts.map +1 -0
- package/dist/types/theme-customizer/types.d.ts +37 -0
- package/dist/types/theme-customizer/types.d.ts.map +1 -0
- package/dist/types/timeline/Timeline.d.ts +15 -0
- package/dist/types/timeline/Timeline.d.ts.map +1 -0
- package/dist/types/timeline/index.d.ts +3 -0
- package/dist/types/timeline/index.d.ts.map +1 -0
- package/dist/types/timeline/types.d.ts +53 -0
- package/dist/types/timeline/types.d.ts.map +1 -0
- package/dist/types/timeline/utils.d.ts +13 -0
- package/dist/types/timeline/utils.d.ts.map +1 -0
- package/dist/types/toast/Toast.d.ts +19 -0
- package/dist/types/toast/Toast.d.ts.map +1 -0
- package/dist/types/toast/index.d.ts +4 -0
- package/dist/types/toast/index.d.ts.map +1 -0
- package/dist/types/toast/types.d.ts +43 -0
- package/dist/types/toast/types.d.ts.map +1 -0
- package/dist/types/toast/useToast.d.ts +26 -0
- package/dist/types/toast/useToast.d.ts.map +1 -0
- package/dist/types/toast/utils.d.ts +12 -0
- package/dist/types/toast/utils.d.ts.map +1 -0
- package/dist/types/tooltip/Tooltip.d.ts +5 -0
- package/dist/types/tooltip/Tooltip.d.ts.map +1 -0
- package/dist/types/tooltip/index.d.ts +3 -0
- package/dist/types/tooltip/index.d.ts.map +1 -0
- package/dist/types/tooltip/types.d.ts +32 -0
- package/dist/types/tooltip/types.d.ts.map +1 -0
- package/dist/types/tooltip/utils.d.ts +12 -0
- package/dist/types/tooltip/utils.d.ts.map +1 -0
- package/dist/types/tour/Tour.d.ts +18 -0
- package/dist/types/tour/Tour.d.ts.map +1 -0
- package/dist/types/tour/index.d.ts +3 -0
- package/dist/types/tour/index.d.ts.map +1 -0
- package/dist/types/tour/types.d.ts +46 -0
- package/dist/types/tour/types.d.ts.map +1 -0
- package/dist/types/tour/utils.d.ts +18 -0
- package/dist/types/tour/utils.d.ts.map +1 -0
- package/dist/types/transfer/Transfer.d.ts +16 -0
- package/dist/types/transfer/Transfer.d.ts.map +1 -0
- package/dist/types/transfer/_components/TransferList.d.ts +32 -0
- package/dist/types/transfer/_components/TransferList.d.ts.map +1 -0
- package/dist/types/transfer/index.d.ts +3 -0
- package/dist/types/transfer/index.d.ts.map +1 -0
- package/dist/types/transfer/types.d.ts +67 -0
- package/dist/types/transfer/types.d.ts.map +1 -0
- package/dist/types/transfer/utils.d.ts +34 -0
- package/dist/types/transfer/utils.d.ts.map +1 -0
- package/dist/types/tree/Tree.d.ts +59 -0
- package/dist/types/tree/Tree.d.ts.map +1 -0
- package/dist/types/tree/index.d.ts +5 -0
- package/dist/types/tree/index.d.ts.map +1 -0
- package/dist/types/tree/types.d.ts +92 -0
- package/dist/types/tree/types.d.ts.map +1 -0
- package/dist/types/tree/utils.d.ts +66 -0
- package/dist/types/tree/utils.d.ts.map +1 -0
- package/dist/types/tree-select/TreeSelect.d.ts +18 -0
- package/dist/types/tree-select/TreeSelect.d.ts.map +1 -0
- package/dist/types/tree-select/_components/TreeSelectPanel.d.ts +27 -0
- package/dist/types/tree-select/_components/TreeSelectPanel.d.ts.map +1 -0
- package/dist/types/tree-select/index.d.ts +3 -0
- package/dist/types/tree-select/index.d.ts.map +1 -0
- package/dist/types/tree-select/types.d.ts +87 -0
- package/dist/types/tree-select/types.d.ts.map +1 -0
- package/dist/types/tree-select/useTreeSelectState.d.ts +38 -0
- package/dist/types/tree-select/useTreeSelectState.d.ts.map +1 -0
- package/dist/types/tree-select/utils.d.ts +28 -0
- package/dist/types/tree-select/utils.d.ts.map +1 -0
- package/dist/types/typewriter/Typewriter.d.ts +16 -0
- package/dist/types/typewriter/Typewriter.d.ts.map +1 -0
- package/dist/types/typewriter/index.d.ts +3 -0
- package/dist/types/typewriter/index.d.ts.map +1 -0
- package/dist/types/typewriter/types.d.ts +33 -0
- package/dist/types/typewriter/types.d.ts.map +1 -0
- package/dist/types/typewriter/useTypewriter.d.ts +29 -0
- package/dist/types/typewriter/useTypewriter.d.ts.map +1 -0
- package/dist/types/typography/Typography.d.ts +6 -0
- package/dist/types/typography/Typography.d.ts.map +1 -0
- package/dist/types/typography/index.d.ts +3 -0
- package/dist/types/typography/index.d.ts.map +1 -0
- package/dist/types/typography/types.d.ts +38 -0
- package/dist/types/typography/types.d.ts.map +1 -0
- package/dist/types/typography/utils.d.ts +10 -0
- package/dist/types/typography/utils.d.ts.map +1 -0
- package/dist/types/upload/Upload.d.ts +5 -0
- package/dist/types/upload/Upload.d.ts.map +1 -0
- package/dist/types/upload/_components/List.d.ts +15 -0
- package/dist/types/upload/_components/List.d.ts.map +1 -0
- package/dist/types/upload/_components/ReviewList.d.ts +17 -0
- package/dist/types/upload/_components/ReviewList.d.ts.map +1 -0
- package/dist/types/upload/_components/UploadDragDropButton.d.ts +16 -0
- package/dist/types/upload/_components/UploadDragDropButton.d.ts.map +1 -0
- package/dist/types/upload/_components/UploadListButton.d.ts +7 -0
- package/dist/types/upload/_components/UploadListButton.d.ts.map +1 -0
- package/dist/types/upload/_components/UploadReviewButton.d.ts +14 -0
- package/dist/types/upload/_components/UploadReviewButton.d.ts.map +1 -0
- package/dist/types/upload/index.d.ts +3 -0
- package/dist/types/upload/index.d.ts.map +1 -0
- package/dist/types/upload/types.d.ts +30 -0
- package/dist/types/upload/types.d.ts.map +1 -0
- package/dist/types/upload/useUpload.d.ts +24 -0
- package/dist/types/upload/useUpload.d.ts.map +1 -0
- package/dist/types/upload/utils.d.ts +23 -0
- package/dist/types/upload/utils.d.ts.map +1 -0
- package/dist/typewriter.d.ts +1 -0
- package/dist/typewriter.js +139 -0
- package/dist/typewriter.js.map +1 -0
- package/dist/typography.d.ts +1 -0
- package/dist/typography.js +81 -0
- package/dist/typography.js.map +1 -0
- package/dist/upload.d.ts +1 -0
- package/dist/upload.js +370 -0
- package/dist/upload.js.map +1 -0
- package/package.json +325 -3
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
SkeletonSlot
|
|
5
|
+
} from "./chunk-DKENCYHA.js";
|
|
6
|
+
import {
|
|
7
|
+
touchTargetClass
|
|
8
|
+
} from "./chunk-FFXRFQSU.js";
|
|
9
|
+
import {
|
|
10
|
+
bgSolidClass,
|
|
11
|
+
bgSubtleClass,
|
|
12
|
+
borderStrongColorClass,
|
|
13
|
+
textClass,
|
|
14
|
+
textSolidContrastClass,
|
|
15
|
+
textSubtleContrastClass
|
|
16
|
+
} from "./chunk-IP2J3BWY.js";
|
|
17
|
+
import {
|
|
18
|
+
skeletonFill
|
|
19
|
+
} from "./chunk-54HHEXXD.js";
|
|
20
|
+
|
|
21
|
+
// src/pagination/Pagination.tsx
|
|
22
|
+
import { useEffect, useRef, useState } from "react";
|
|
23
|
+
import { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsLeftIcon, ChevronsRightIcon, MoreHorizontalIcon } from "lucide-react";
|
|
24
|
+
import { cn, useControllableState } from "@mari-ui/core";
|
|
25
|
+
|
|
26
|
+
// src/pagination/utils.ts
|
|
27
|
+
function getTotalPages(totalItems, pageSize) {
|
|
28
|
+
if (pageSize <= 0) return 1;
|
|
29
|
+
return Math.max(1, Math.ceil(totalItems / pageSize));
|
|
30
|
+
}
|
|
31
|
+
function clampPage(page, totalPages) {
|
|
32
|
+
if (!Number.isFinite(page)) return 1;
|
|
33
|
+
return Math.min(Math.max(1, Math.trunc(page)), Math.max(1, totalPages));
|
|
34
|
+
}
|
|
35
|
+
function getPageItems(totalPages, currentPage, siblingCount = 1) {
|
|
36
|
+
const siblings = Math.max(0, Math.trunc(siblingCount));
|
|
37
|
+
const totalSlots = siblings * 2 + 5;
|
|
38
|
+
if (totalPages <= totalSlots) {
|
|
39
|
+
return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
40
|
+
}
|
|
41
|
+
const current = clampPage(currentPage, totalPages);
|
|
42
|
+
const windowStart = Math.max(Math.min(current - siblings, totalPages - siblings * 2 - 2), 3);
|
|
43
|
+
const windowEnd = Math.min(Math.max(current + siblings, siblings * 2 + 3), totalPages - 2);
|
|
44
|
+
const items = [1];
|
|
45
|
+
items.push(windowStart > 3 ? { type: "ellipsis", direction: "left" } : 2);
|
|
46
|
+
for (let page = windowStart; page <= windowEnd; page++) items.push(page);
|
|
47
|
+
items.push(windowEnd < totalPages - 2 ? { type: "ellipsis", direction: "right" } : totalPages - 1);
|
|
48
|
+
items.push(totalPages);
|
|
49
|
+
return items;
|
|
50
|
+
}
|
|
51
|
+
function fitSiblingCount(available, slotWidth, gap, totalPages, maxSiblings) {
|
|
52
|
+
for (let siblings = Math.max(0, Math.trunc(maxSiblings)); siblings >= 0; siblings--) {
|
|
53
|
+
const slots = Math.min(totalPages, siblings * 2 + 5) + 2;
|
|
54
|
+
if (slots * slotWidth + (slots - 1) * gap <= available) return siblings;
|
|
55
|
+
}
|
|
56
|
+
return -1;
|
|
57
|
+
}
|
|
58
|
+
function getJumpSize(siblingCount = 1) {
|
|
59
|
+
return Math.max(0, Math.trunc(siblingCount)) * 2 + 3;
|
|
60
|
+
}
|
|
61
|
+
function resolvePageClickTarget(page, currentPage, totalPages, siblingCount = 1) {
|
|
62
|
+
if (typeof page === "number") return clampPage(page, totalPages);
|
|
63
|
+
const jump = getJumpSize(siblingCount);
|
|
64
|
+
return clampPage(page.direction === "left" ? currentPage - jump : currentPage + jump, totalPages);
|
|
65
|
+
}
|
|
66
|
+
function getPageAfterSizeChange(currentPage, oldPageSize, newPageSize, totalItems) {
|
|
67
|
+
const firstItemIndex = (Math.max(1, currentPage) - 1) * oldPageSize;
|
|
68
|
+
return clampPage(Math.floor(firstItemIndex / newPageSize) + 1, getTotalPages(totalItems, newPageSize));
|
|
69
|
+
}
|
|
70
|
+
function getItemRange(currentPage, pageSize, totalItems) {
|
|
71
|
+
if (totalItems <= 0) return [0, 0];
|
|
72
|
+
return [(currentPage - 1) * pageSize + 1, Math.min(currentPage * pageSize, totalItems)];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// src/pagination/Pagination.tsx
|
|
76
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
77
|
+
function useFittedSiblings(rootRef, navRef, totalPages, siblingCount, size) {
|
|
78
|
+
const [fitted, setFitted] = useState(siblingCount);
|
|
79
|
+
const slotRef = useRef(null);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
slotRef.current = null;
|
|
82
|
+
setFitted(siblingCount);
|
|
83
|
+
}, [siblingCount, size]);
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
const root = rootRef.current;
|
|
86
|
+
if (!root || typeof ResizeObserver === "undefined") return;
|
|
87
|
+
const measure = () => {
|
|
88
|
+
const list = navRef.current?.querySelector("ul");
|
|
89
|
+
if (list && list.children.length > 0) {
|
|
90
|
+
const gap = Number.parseFloat(getComputedStyle(list).columnGap) || 0;
|
|
91
|
+
slotRef.current = { width: (list.scrollWidth + gap) / list.children.length - gap, gap };
|
|
92
|
+
}
|
|
93
|
+
const slot = slotRef.current;
|
|
94
|
+
if (!slot) return;
|
|
95
|
+
setFitted(fitSiblingCount(root.clientWidth, slot.width, slot.gap, totalPages, siblingCount));
|
|
96
|
+
};
|
|
97
|
+
measure();
|
|
98
|
+
const observer = new ResizeObserver(measure);
|
|
99
|
+
observer.observe(root);
|
|
100
|
+
return () => observer.disconnect();
|
|
101
|
+
}, [rootRef, navRef, totalPages, siblingCount, size]);
|
|
102
|
+
return fitted;
|
|
103
|
+
}
|
|
104
|
+
var DEFAULT_PAGE_SIZE_OPTIONS = [10, 20, 50, 100, 1e3];
|
|
105
|
+
var itemSizeClass = {
|
|
106
|
+
sm: "h-6 min-w-6 px-1 text-xs rounded-sm",
|
|
107
|
+
md: "h-8 min-w-8 px-1.5 text-sm rounded-md",
|
|
108
|
+
lg: "h-10 min-w-10 px-2 text-base rounded-md"
|
|
109
|
+
};
|
|
110
|
+
var gapClass = {
|
|
111
|
+
sm: "gap-1",
|
|
112
|
+
md: "gap-2",
|
|
113
|
+
lg: "gap-2"
|
|
114
|
+
};
|
|
115
|
+
var textSizeClass = {
|
|
116
|
+
sm: "text-xs",
|
|
117
|
+
md: "text-sm",
|
|
118
|
+
lg: "text-base"
|
|
119
|
+
};
|
|
120
|
+
var iconSize = { sm: 14, md: 16, lg: 18 };
|
|
121
|
+
var alignClass = {
|
|
122
|
+
start: "justify-start",
|
|
123
|
+
center: "justify-center",
|
|
124
|
+
end: "justify-end",
|
|
125
|
+
between: "justify-between"
|
|
126
|
+
};
|
|
127
|
+
function activeClasses(color, variant) {
|
|
128
|
+
switch (variant) {
|
|
129
|
+
case "solid":
|
|
130
|
+
return cn("border-transparent", bgSolidClass[color], textSolidContrastClass[color]);
|
|
131
|
+
case "soft":
|
|
132
|
+
return cn("border-transparent", bgSubtleClass[color], textSubtleContrastClass[color]);
|
|
133
|
+
default:
|
|
134
|
+
return cn("bg-mari-surface", borderStrongColorClass[color], textClass[color]);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
var itemBaseClass = "relative inline-flex shrink-0 items-center justify-center border tabular-nums select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring";
|
|
138
|
+
var itemTouchClass = {
|
|
139
|
+
sm: touchTargetClass.sm,
|
|
140
|
+
md: touchTargetClass.md,
|
|
141
|
+
lg: touchTargetClass.lg
|
|
142
|
+
};
|
|
143
|
+
var skeletonItemClass = cn("pointer-events-none border-transparent text-transparent [&_svg]:invisible", skeletonFill(true));
|
|
144
|
+
var idleItemClass = "border-transparent text-mari-foreground hover:bg-mari-neutral-subtle cursor-pointer";
|
|
145
|
+
var hoverTransitionClass = "transition-colors duration-150";
|
|
146
|
+
var disabledItemClass = "aria-disabled:opacity-40 aria-disabled:cursor-not-allowed aria-disabled:hover:bg-transparent";
|
|
147
|
+
var fieldClass = "border border-mari-input bg-mari-surface text-mari-foreground transition-colors hover:border-mari-primary focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring";
|
|
148
|
+
function Pagination({
|
|
149
|
+
currentPage,
|
|
150
|
+
defaultPage = 1,
|
|
151
|
+
pageSize: pageSizeProp,
|
|
152
|
+
defaultPageSize = 10,
|
|
153
|
+
totalItems,
|
|
154
|
+
onPageChange,
|
|
155
|
+
onPageSizeChange,
|
|
156
|
+
showSizeChanger,
|
|
157
|
+
pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,
|
|
158
|
+
showTotal = false,
|
|
159
|
+
showQuickJumper = false,
|
|
160
|
+
simple = false,
|
|
161
|
+
siblingCount = 1,
|
|
162
|
+
size = "md",
|
|
163
|
+
color = "primary",
|
|
164
|
+
variant = "outline",
|
|
165
|
+
disabled = false,
|
|
166
|
+
hideOnSinglePage = false,
|
|
167
|
+
align = "between",
|
|
168
|
+
className,
|
|
169
|
+
"aria-label": ariaLabel = "Sayfalama",
|
|
170
|
+
skeleton = false
|
|
171
|
+
}) {
|
|
172
|
+
const [rawPage, setRawPage] = useControllableState({ value: currentPage, defaultValue: defaultPage });
|
|
173
|
+
const [pageSize, setPageSize] = useControllableState({ value: pageSizeProp, defaultValue: defaultPageSize });
|
|
174
|
+
const totalPages = getTotalPages(totalItems, pageSize);
|
|
175
|
+
const page = clampPage(rawPage, totalPages);
|
|
176
|
+
const rootRef = useRef(null);
|
|
177
|
+
const navRef = useRef(null);
|
|
178
|
+
const fitted = useFittedSiblings(rootRef, navRef, totalPages, siblingCount, size);
|
|
179
|
+
const siblings = Math.max(0, fitted);
|
|
180
|
+
const compact = simple || fitted < 0;
|
|
181
|
+
const goTo = (target, nextPageSize = pageSize) => {
|
|
182
|
+
if (skeleton) return;
|
|
183
|
+
const next = clampPage(target, getTotalPages(totalItems, nextPageSize));
|
|
184
|
+
if (next === page && nextPageSize === pageSize) return;
|
|
185
|
+
setRawPage(next);
|
|
186
|
+
onPageChange?.(next, nextPageSize);
|
|
187
|
+
};
|
|
188
|
+
useEffect(() => {
|
|
189
|
+
if (rawPage !== page) {
|
|
190
|
+
setRawPage(page);
|
|
191
|
+
onPageChange?.(page, pageSize);
|
|
192
|
+
}
|
|
193
|
+
}, [rawPage, page]);
|
|
194
|
+
const handlePageSizeChange = (nextSize) => {
|
|
195
|
+
const nextPage = getPageAfterSizeChange(page, pageSize, nextSize, totalItems);
|
|
196
|
+
setPageSize(nextSize);
|
|
197
|
+
if (nextPage !== page) {
|
|
198
|
+
setRawPage(nextPage);
|
|
199
|
+
onPageChange?.(nextPage, nextSize);
|
|
200
|
+
}
|
|
201
|
+
onPageSizeChange?.(nextSize, nextPage);
|
|
202
|
+
};
|
|
203
|
+
if (hideOnSinglePage && totalPages <= 1) return null;
|
|
204
|
+
const range = getItemRange(page, pageSize, totalItems);
|
|
205
|
+
const isFirst = page <= 1;
|
|
206
|
+
const isLast = page >= totalPages;
|
|
207
|
+
const sizeChangerVisible = showSizeChanger ?? onPageSizeChange !== void 0;
|
|
208
|
+
const icon = iconSize[size];
|
|
209
|
+
const itemClass = (stateClass) => cn(itemBaseClass, itemSizeClass[size], itemTouchClass[size], skeleton ? skeletonItemClass : stateClass);
|
|
210
|
+
const skeletonTab = skeleton ? -1 : void 0;
|
|
211
|
+
const barPlaceholder = /* @__PURE__ */ jsx("span", { className: cn("block size-full min-h-[1lh] rounded-md", skeletonFill(true)) });
|
|
212
|
+
const navButton = (direction) => {
|
|
213
|
+
const isEdge = direction === "prev" ? isFirst : isLast;
|
|
214
|
+
const Icon = direction === "prev" ? ChevronLeftIcon : ChevronRightIcon;
|
|
215
|
+
return /* @__PURE__ */ jsx(
|
|
216
|
+
"button",
|
|
217
|
+
{
|
|
218
|
+
type: "button",
|
|
219
|
+
tabIndex: skeletonTab,
|
|
220
|
+
className: itemClass(cn(hoverTransitionClass, idleItemClass, disabledItemClass)),
|
|
221
|
+
"aria-label": direction === "prev" ? "\xD6nceki sayfa" : "Sonraki sayfa",
|
|
222
|
+
"aria-disabled": isEdge || disabled || void 0,
|
|
223
|
+
onClick: () => {
|
|
224
|
+
if (!isEdge && !disabled) goTo(direction === "prev" ? page - 1 : page + 1);
|
|
225
|
+
},
|
|
226
|
+
children: /* @__PURE__ */ jsx(Icon, { size: icon, "aria-hidden": true })
|
|
227
|
+
}
|
|
228
|
+
);
|
|
229
|
+
};
|
|
230
|
+
const totalNode = showTotal === false ? null : (
|
|
231
|
+
// Slot da metnin yazı boyutunu taşır: yer tutucunun `1lh`'si o satır yüksekliğine eşit olsun (yoksa 2px kayar).
|
|
232
|
+
/* @__PURE__ */ jsx(SkeletonSlot, { on: skeleton, placeholder: barPlaceholder, className: textSizeClass[size], children: /* @__PURE__ */ jsx("p", { className: cn("text-mari-muted tabular-nums", textSizeClass[size]), children: typeof showTotal === "function" ? showTotal(totalItems, range) : `${range[0]}-${range[1]} / ${totalItems} kay\u0131t` }) })
|
|
233
|
+
);
|
|
234
|
+
const pager = compact ? /* @__PURE__ */ jsxs("nav", { ref: navRef, "aria-label": ariaLabel, "aria-hidden": skeleton || void 0, className: cn("flex items-center", gapClass[size]), children: [
|
|
235
|
+
navButton("prev"),
|
|
236
|
+
/* @__PURE__ */ jsx(SkeletonSlot, { on: skeleton, placeholder: barPlaceholder, children: /* @__PURE__ */ jsx(SimplePageInput, { page, totalPages, size, disabled, onCommit: goTo }) }),
|
|
237
|
+
navButton("next")
|
|
238
|
+
] }) : /* @__PURE__ */ jsx("nav", { ref: navRef, "aria-label": ariaLabel, "aria-hidden": skeleton || void 0, children: /* @__PURE__ */ jsxs("ul", { className: cn("flex items-center", gapClass[size]), children: [
|
|
239
|
+
/* @__PURE__ */ jsx("li", { children: navButton("prev") }),
|
|
240
|
+
getPageItems(totalPages, page, siblings).map((item, slot) => {
|
|
241
|
+
if (typeof item === "object") {
|
|
242
|
+
const jump = getJumpSize(siblings);
|
|
243
|
+
const JumpIcon = item.direction === "left" ? ChevronsLeftIcon : ChevronsRightIcon;
|
|
244
|
+
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
245
|
+
"button",
|
|
246
|
+
{
|
|
247
|
+
type: "button",
|
|
248
|
+
tabIndex: skeletonTab,
|
|
249
|
+
className: itemClass(cn(hoverTransitionClass, idleItemClass, "group text-mari-muted hover:text-mari-primary focus-visible:text-mari-primary")),
|
|
250
|
+
"aria-label": item.direction === "left" ? `${jump} sayfa geri` : `${jump} sayfa ileri`,
|
|
251
|
+
title: item.direction === "left" ? `\xD6nceki ${jump} sayfa` : `Sonraki ${jump} sayfa`,
|
|
252
|
+
"aria-disabled": disabled || void 0,
|
|
253
|
+
onClick: () => !disabled && goTo(resolvePageClickTarget(item, page, totalPages, siblings)),
|
|
254
|
+
children: [
|
|
255
|
+
/* @__PURE__ */ jsx(MoreHorizontalIcon, { size: icon, "aria-hidden": true, className: "group-hover:hidden group-focus-visible:hidden" }),
|
|
256
|
+
/* @__PURE__ */ jsx(JumpIcon, { size: icon, "aria-hidden": true, className: "hidden group-hover:block group-focus-visible:block" })
|
|
257
|
+
]
|
|
258
|
+
}
|
|
259
|
+
) }, slot);
|
|
260
|
+
}
|
|
261
|
+
const isActive = item === page;
|
|
262
|
+
return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
263
|
+
"button",
|
|
264
|
+
{
|
|
265
|
+
type: "button",
|
|
266
|
+
tabIndex: skeletonTab,
|
|
267
|
+
className: itemClass(isActive ? cn("font-semibold cursor-default", activeClasses(color, variant)) : idleItemClass),
|
|
268
|
+
"aria-label": `${item}. sayfa`,
|
|
269
|
+
"aria-current": isActive ? "page" : void 0,
|
|
270
|
+
"aria-disabled": disabled || void 0,
|
|
271
|
+
onClick: () => !disabled && goTo(item),
|
|
272
|
+
children: item
|
|
273
|
+
}
|
|
274
|
+
) }, slot);
|
|
275
|
+
}),
|
|
276
|
+
/* @__PURE__ */ jsx("li", { children: navButton("next") })
|
|
277
|
+
] }) });
|
|
278
|
+
const controls = /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center gap-x-4 gap-y-2", align !== "between" && alignClass[align]), children: [
|
|
279
|
+
pager,
|
|
280
|
+
!simple && sizeChangerVisible && /* @__PURE__ */ jsx(SkeletonSlot, { on: skeleton, placeholder: barPlaceholder, children: /* @__PURE__ */ jsx(SizeChanger, { value: pageSize, options: pageSizeOptions, size, disabled, onChange: handlePageSizeChange }) }),
|
|
281
|
+
!simple && showQuickJumper && /* @__PURE__ */ jsx(SkeletonSlot, { on: skeleton, placeholder: barPlaceholder, children: /* @__PURE__ */ jsx(QuickJumper, { totalPages, size, disabled, onCommit: goTo }) })
|
|
282
|
+
] });
|
|
283
|
+
return /* @__PURE__ */ jsxs(
|
|
284
|
+
"div",
|
|
285
|
+
{
|
|
286
|
+
ref: rootRef,
|
|
287
|
+
"aria-busy": skeleton || void 0,
|
|
288
|
+
className: cn(
|
|
289
|
+
"flex flex-wrap items-center gap-x-4 gap-y-2",
|
|
290
|
+
alignClass[align],
|
|
291
|
+
disabled && "pointer-events-none opacity-60",
|
|
292
|
+
className
|
|
293
|
+
),
|
|
294
|
+
children: [
|
|
295
|
+
totalNode,
|
|
296
|
+
controls
|
|
297
|
+
]
|
|
298
|
+
}
|
|
299
|
+
);
|
|
300
|
+
}
|
|
301
|
+
var fieldHeightClass = {
|
|
302
|
+
sm: "h-6 rounded-sm text-xs",
|
|
303
|
+
md: "h-8 rounded-md text-sm",
|
|
304
|
+
lg: "h-10 rounded-md text-base"
|
|
305
|
+
};
|
|
306
|
+
function SizeChanger({
|
|
307
|
+
value,
|
|
308
|
+
options,
|
|
309
|
+
size,
|
|
310
|
+
disabled,
|
|
311
|
+
onChange
|
|
312
|
+
}) {
|
|
313
|
+
const allOptions = options.includes(value) ? options : [...options, value].sort((a, b) => a - b);
|
|
314
|
+
return /* @__PURE__ */ jsxs("div", { className: "relative inline-flex", children: [
|
|
315
|
+
/* @__PURE__ */ jsx(
|
|
316
|
+
"select",
|
|
317
|
+
{
|
|
318
|
+
value,
|
|
319
|
+
disabled,
|
|
320
|
+
"aria-label": "Sayfa ba\u015F\u0131na kay\u0131t",
|
|
321
|
+
onChange: (e) => onChange(Number(e.target.value)),
|
|
322
|
+
className: cn(fieldClass, fieldHeightClass[size], "cursor-pointer appearance-none pl-3 pr-8 tabular-nums"),
|
|
323
|
+
children: allOptions.map((option) => /* @__PURE__ */ jsxs("option", { value: option, children: [
|
|
324
|
+
option,
|
|
325
|
+
" / sayfa"
|
|
326
|
+
] }, option))
|
|
327
|
+
}
|
|
328
|
+
),
|
|
329
|
+
/* @__PURE__ */ jsx(ChevronDownIcon, { size: iconSize[size] - 2, "aria-hidden": true, className: "pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-mari-muted" })
|
|
330
|
+
] });
|
|
331
|
+
}
|
|
332
|
+
function usePageDraft(onCommit, initial = "") {
|
|
333
|
+
const [draft, setDraft] = useState(initial);
|
|
334
|
+
const commit = () => {
|
|
335
|
+
const parsed = Number.parseInt(draft, 10);
|
|
336
|
+
if (Number.isFinite(parsed)) onCommit(parsed);
|
|
337
|
+
return parsed;
|
|
338
|
+
};
|
|
339
|
+
return { draft, setDraft, commit };
|
|
340
|
+
}
|
|
341
|
+
function QuickJumper({ totalPages, size, disabled, onCommit }) {
|
|
342
|
+
const { draft, setDraft, commit } = usePageDraft(onCommit);
|
|
343
|
+
const submit = () => {
|
|
344
|
+
commit();
|
|
345
|
+
setDraft("");
|
|
346
|
+
};
|
|
347
|
+
return /* @__PURE__ */ jsxs("label", { className: cn("flex items-center gap-2 text-mari-muted", textSizeClass[size]), children: [
|
|
348
|
+
"Git",
|
|
349
|
+
/* @__PURE__ */ jsx(
|
|
350
|
+
"input",
|
|
351
|
+
{
|
|
352
|
+
type: "text",
|
|
353
|
+
inputMode: "numeric",
|
|
354
|
+
value: draft,
|
|
355
|
+
disabled,
|
|
356
|
+
"aria-label": `Sayfaya git (1-${totalPages})`,
|
|
357
|
+
onChange: (e) => setDraft(e.target.value.replace(/\D/g, "")),
|
|
358
|
+
onKeyDown: (e) => e.key === "Enter" && submit(),
|
|
359
|
+
onBlur: submit,
|
|
360
|
+
className: cn(fieldClass, fieldHeightClass[size], "w-14 px-2 text-center tabular-nums")
|
|
361
|
+
}
|
|
362
|
+
)
|
|
363
|
+
] });
|
|
364
|
+
}
|
|
365
|
+
function SimplePageInput({
|
|
366
|
+
page,
|
|
367
|
+
totalPages,
|
|
368
|
+
size,
|
|
369
|
+
disabled,
|
|
370
|
+
onCommit
|
|
371
|
+
}) {
|
|
372
|
+
const { draft, setDraft, commit } = usePageDraft(onCommit, String(page));
|
|
373
|
+
useEffect(() => setDraft(String(page)), [page, setDraft]);
|
|
374
|
+
const submit = () => {
|
|
375
|
+
commit();
|
|
376
|
+
setDraft(String(page));
|
|
377
|
+
};
|
|
378
|
+
return /* @__PURE__ */ jsxs("span", { className: cn("flex items-center gap-2 text-mari-muted tabular-nums", textSizeClass[size]), children: [
|
|
379
|
+
/* @__PURE__ */ jsx(
|
|
380
|
+
"input",
|
|
381
|
+
{
|
|
382
|
+
type: "text",
|
|
383
|
+
inputMode: "numeric",
|
|
384
|
+
value: draft,
|
|
385
|
+
disabled,
|
|
386
|
+
"aria-label": `Sayfa (1-${totalPages})`,
|
|
387
|
+
onChange: (e) => setDraft(e.target.value.replace(/\D/g, "")),
|
|
388
|
+
onKeyDown: (e) => e.key === "Enter" && submit(),
|
|
389
|
+
onBlur: submit,
|
|
390
|
+
className: cn(fieldClass, fieldHeightClass[size], "w-12 px-1 text-center")
|
|
391
|
+
}
|
|
392
|
+
),
|
|
393
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": true, children: "/" }),
|
|
394
|
+
/* @__PURE__ */ jsx("span", { children: totalPages })
|
|
395
|
+
] });
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
export {
|
|
399
|
+
Pagination
|
|
400
|
+
};
|
|
401
|
+
//# sourceMappingURL=chunk-TXRQCHOR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/pagination/Pagination.tsx","../src/pagination/utils.ts"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronsLeftIcon, ChevronsRightIcon, MoreHorizontalIcon } from \"lucide-react\";\nimport { cn, useControllableState, type ColorRole, type Size } from \"@mari-ui/core\";\nimport {\n bgSolidClass,\n bgSubtleClass,\n borderStrongColorClass,\n textClass,\n textSolidContrastClass,\n textSubtleContrastClass,\n} from \"../lib/colorClasses\";\nimport { touchTargetClass } from \"../lib/sizeClasses\";\nimport { skeletonFill } from \"../lib/skeleton\";\nimport { SkeletonSlot } from \"../lib/SkeletonSlot\";\nimport type { PaginationAlign, PaginationProps, PaginationVariant } from \"./types\";\nimport { clampPage, fitSiblingCount, getItemRange, getJumpSize, getPageAfterSizeChange, getPageItems, getTotalPages, resolvePageClickTarget } from \"./utils\";\n\n/**\n * Kapsayıcı genişliğini izleyip sığan komşu sayısını seçer (`-1` → `simple`).\n * Slot genişliği gerçek DOM'dan ölçülür (iki/üç basamaklı sayılar kareyi\n * genişletir) ve saklanır — `simple`e geçildiğinde de yeniden hesap yapılabilsin.\n * `ResizeObserver` yoksa (SSR, jsdom) istenen `siblingCount` aynen kullanılır.\n */\nfunction useFittedSiblings(rootRef: React.RefObject<HTMLDivElement | null>, navRef: React.RefObject<HTMLElement | null>, totalPages: number, siblingCount: number, size: Size): number {\n const [fitted, setFitted] = useState(siblingCount);\n const slotRef = useRef<{ width: number; gap: number } | null>(null);\n\n useEffect(() => {\n // Boyut değişince eski ölçü geçersiz.\n slotRef.current = null;\n setFitted(siblingCount);\n }, [siblingCount, size]);\n\n useEffect(() => {\n const root = rootRef.current;\n if (!root || typeof ResizeObserver === \"undefined\") return;\n const measure = () => {\n const list = navRef.current?.querySelector(\"ul\");\n if (list && list.children.length > 0) {\n const gap = Number.parseFloat(getComputedStyle(list).columnGap) || 0;\n slotRef.current = { width: (list.scrollWidth + gap) / list.children.length - gap, gap };\n }\n const slot = slotRef.current;\n if (!slot) return;\n setFitted(fitSiblingCount(root.clientWidth, slot.width, slot.gap, totalPages, siblingCount));\n };\n measure();\n const observer = new ResizeObserver(measure);\n observer.observe(root);\n return () => observer.disconnect();\n }, [rootRef, navRef, totalPages, siblingCount, size]);\n\n return fitted;\n}\n\nexport type { PaginationProps };\n\nconst DEFAULT_PAGE_SIZE_OPTIONS = [10, 20, 50, 100, 1000];\n\n/**\n * Yapı ant.design Pagination'dan (kare 32px öğeler, 8px aralık, \"…\" üzerine\n * gelince çift ok, hızlı atlama, simple mod), görünüm kendi token'larımızdan.\n * Öğeler `Button` yerine yerel bir `<button>` — Button'ın `px-*` dolgusu\n * sayı düğmelerini genişliğe göre farklı boyutlara itiyordu; burada her\n * öğe `min-w` = yükseklik olan bir karedir, iki basamaklı sayılar büyür.\n */\nconst itemSizeClass: Record<Size, string> = {\n sm: \"h-6 min-w-6 px-1 text-xs rounded-sm\",\n md: \"h-8 min-w-8 px-1.5 text-sm rounded-md\",\n lg: \"h-10 min-w-10 px-2 text-base rounded-md\",\n};\n\nconst gapClass: Record<Size, string> = {\n sm: \"gap-1\",\n md: \"gap-2\",\n lg: \"gap-2\",\n};\n\nconst textSizeClass: Record<Size, string> = {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base\",\n};\n\nconst iconSize: Record<Size, number> = { sm: 14, md: 16, lg: 18 };\n\nconst alignClass: Record<PaginationAlign, string> = {\n start: \"justify-start\",\n center: \"justify-center\",\n end: \"justify-end\",\n between: \"justify-between\",\n};\n\nfunction activeClasses(color: ColorRole, variant: PaginationVariant): string {\n switch (variant) {\n case \"solid\":\n return cn(\"border-transparent\", bgSolidClass[color], textSolidContrastClass[color]);\n case \"soft\":\n return cn(\"border-transparent\", bgSubtleClass[color], textSubtleContrastClass[color]);\n default:\n return cn(\"bg-mari-surface\", borderStrongColorClass[color], textClass[color]);\n }\n}\n\nconst itemBaseClass =\n \"relative inline-flex shrink-0 items-center justify-center border tabular-nums select-none \" +\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring\";\n/**\n * Dokunmatikte yalnızca DİKEY genişleme: öğeler arası 8px boşluk yatayda\n * 44px'e tamamlamaya yetmiyor, kare genişleme komşunun alanına binerdi.\n */\nconst itemTouchClass: Record<Size, string> = {\n sm: touchTargetClass.sm,\n md: touchTargetClass.md,\n lg: touchTargetClass.lg,\n};\n/** İskelette düğme: kendi kare kutusunda dolgu, içerik görünmez, etkileşimsiz. */\nconst skeletonItemClass = cn(\"pointer-events-none border-transparent text-transparent [&_svg]:invisible\", skeletonFill(true));\nconst idleItemClass = \"border-transparent text-mari-foreground hover:bg-mari-neutral-subtle cursor-pointer\";\n// Sadece ok/\"…\" düğmelerinde hover geçişi. Sayfa numaralarında BİLİNÇLİ\n// OLARAK geçiş yok: aktif vurgu bir slottan diğerine geçerken 150ms'lik\n// solma, eski kutu kaybolurken yenisinin geç belirmesi olarak görünüyordu.\nconst hoverTransitionClass = \"transition-colors duration-150\";\n// `disabled` yerine `aria-disabled`: son sayfaya ulaşınca \"Sonraki\" düğmesi\n// gerçekten `disabled` olursa odak `<body>`'ye düşer, klavye kullanıcısı\n// yerini kaybeder. `aria-disabled` odağı korur, tıklama no-op olur.\nconst disabledItemClass = \"aria-disabled:opacity-40 aria-disabled:cursor-not-allowed aria-disabled:hover:bg-transparent\";\n\nconst fieldClass =\n \"border border-mari-input bg-mari-surface text-mari-foreground transition-colors hover:border-mari-primary \" +\n \"focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring\";\n\n/**\n * Faz 13.5'ten beri `TablePagination` bu component'i sarmalıyor — tek gerçek\n * sayfa-listesi mantığı burada (bkz. `utils.ts`).\n *\n * Faz 13.6 (kullanıcı bulgusu: \"yeni sayfaya geçince tuhaf davranıyor\"):\n * - Sayfa listesi artık SABİT sayıda slot üretir; genişlik zıplamaz.\n * - \"…\" asla tek bir sayfayı gizlemez.\n * - Sayfa aralık dışına düşerse (toplam azaldı, sayfa boyutu büyüdü) son\n * geçerli sayfaya çekilir; eskiden \"901-247 / 247 kayıt\" yazıyordu.\n * - Kayıt yokken \"Sonraki\" düğmesi `onPageChange(0)` çağırabiliyordu.\n * - Aktif sayfaya tekrar tıklamak `onPageChange`'i çağırmaz (gereksiz fetch).\n * - Controlled + uncontrolled (`defaultPage`/`defaultPageSize`).\n */\nexport function Pagination({\n currentPage,\n defaultPage = 1,\n pageSize: pageSizeProp,\n defaultPageSize = 10,\n totalItems,\n onPageChange,\n onPageSizeChange,\n showSizeChanger,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n showTotal = false,\n showQuickJumper = false,\n simple = false,\n siblingCount = 1,\n size = \"md\",\n color = \"primary\",\n variant = \"outline\",\n disabled = false,\n hideOnSinglePage = false,\n align = \"between\",\n className,\n \"aria-label\": ariaLabel = \"Sayfalama\",\n skeleton = false,\n}: Readonly<PaginationProps>) {\n const [rawPage, setRawPage] = useControllableState<number>({ value: currentPage, defaultValue: defaultPage });\n const [pageSize, setPageSize] = useControllableState<number>({ value: pageSizeProp, defaultValue: defaultPageSize });\n\n const totalPages = getTotalPages(totalItems, pageSize);\n const page = clampPage(rawPage, totalPages);\n const rootRef = useRef<HTMLDivElement>(null);\n const navRef = useRef<HTMLElement>(null);\n // Dar kapsayıcıda komşu sayısı azalır; 0 komşu bile sığmazsa `simple` görünüme geçilir.\n const fitted = useFittedSiblings(rootRef, navRef, totalPages, siblingCount, size);\n const siblings = Math.max(0, fitted);\n const compact = simple || fitted < 0;\n\n const goTo = (target: number, nextPageSize = pageSize) => {\n // İskelette toplam henüz gerçek değil — hiçbir yol (programatik tıklama dahil) sayfa değiştirmez.\n if (skeleton) return;\n const next = clampPage(target, getTotalPages(totalItems, nextPageSize));\n if (next === page && nextPageSize === pageSize) return;\n setRawPage(next);\n onPageChange?.(next, nextPageSize);\n };\n\n // Toplam kayıt azalınca (filtre, silme) mevcut sayfa aralık dışına\n // düşebilir. Ekranda zaten `clampPage` ile düzeltilmiş sayfa gösteriliyor;\n // burada tüketiciye de bildiriyoruz ki verisini o sayfaya göre getirsin.\n useEffect(() => {\n if (rawPage !== page) {\n setRawPage(page);\n onPageChange?.(page, pageSize);\n }\n // `onPageChange`/`setRawPage` her render'da yeni referans olabilir —\n // sadece sayfa gerçekten aralık dışına düştüğünde çalışsın.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rawPage, page]);\n\n const handlePageSizeChange = (nextSize: number) => {\n const nextPage = getPageAfterSizeChange(page, pageSize, nextSize, totalItems);\n setPageSize(nextSize);\n // Önce sayfa, sonra boyut: `onPageSizeChange` içinde `setPage(1)` yapan\n // eski tüketicilerin açık tercihi son sözü söylesin.\n if (nextPage !== page) {\n setRawPage(nextPage);\n onPageChange?.(nextPage, nextSize);\n }\n onPageSizeChange?.(nextSize, nextPage);\n };\n\n if (hideOnSinglePage && totalPages <= 1) return null;\n\n const range = getItemRange(page, pageSize, totalItems);\n const isFirst = page <= 1;\n const isLast = page >= totalPages;\n const sizeChangerVisible = showSizeChanger ?? onPageSizeChange !== undefined;\n const icon = iconSize[size];\n // İskelette düğmeler yerinde kalır (aynı kare kutu) ama dolgu olur, Tab sırasından çıkar.\n const itemClass = (stateClass: string) => cn(itemBaseClass, itemSizeClass[size], itemTouchClass[size], skeleton ? skeletonItemClass : stateClass);\n const skeletonTab = skeleton ? -1 : undefined;\n const barPlaceholder = <span className={cn(\"block size-full min-h-[1lh] rounded-md\", skeletonFill(true))} />;\n\n const navButton = (direction: \"prev\" | \"next\") => {\n const isEdge = direction === \"prev\" ? isFirst : isLast;\n const Icon = direction === \"prev\" ? ChevronLeftIcon : ChevronRightIcon;\n return (\n <button\n type=\"button\"\n tabIndex={skeletonTab}\n className={itemClass(cn(hoverTransitionClass, idleItemClass, disabledItemClass))}\n aria-label={direction === \"prev\" ? \"Önceki sayfa\" : \"Sonraki sayfa\"}\n aria-disabled={isEdge || disabled || undefined}\n onClick={() => {\n if (!isEdge && !disabled) goTo(direction === \"prev\" ? page - 1 : page + 1);\n }}\n >\n <Icon size={icon} aria-hidden />\n </button>\n );\n };\n\n const totalNode =\n showTotal === false ? null : (\n // Slot da metnin yazı boyutunu taşır: yer tutucunun `1lh`'si o satır yüksekliğine eşit olsun (yoksa 2px kayar).\n <SkeletonSlot on={skeleton} placeholder={barPlaceholder} className={textSizeClass[size]}>\n <p className={cn(\"text-mari-muted tabular-nums\", textSizeClass[size])}>\n {typeof showTotal === \"function\" ? showTotal(totalItems, range) : `${range[0]}-${range[1]} / ${totalItems} kayıt`}\n </p>\n </SkeletonSlot>\n );\n\n const pager = compact ? (\n <nav ref={navRef} aria-label={ariaLabel} aria-hidden={skeleton || undefined} className={cn(\"flex items-center\", gapClass[size])}>\n {navButton(\"prev\")}\n <SkeletonSlot on={skeleton} placeholder={barPlaceholder}>\n <SimplePageInput page={page} totalPages={totalPages} size={size} disabled={disabled} onCommit={goTo} />\n </SkeletonSlot>\n {navButton(\"next\")}\n </nav>\n ) : (\n <nav ref={navRef} aria-label={ariaLabel} aria-hidden={skeleton || undefined}>\n <ul className={cn(\"flex items-center\", gapClass[size])}>\n <li>{navButton(\"prev\")}</li>\n {/*\n Anahtar = SLOT SIRASI (sayfa numarası değil). Slot sayısı sabit\n olduğu için ortadaki aktif slot aynı DOM düğmesi kalır, sadece\n metni değişir. Eskiden anahtar sayfa numarasıydı: \"Sonraki\"ye\n basınca React \"6\" düğmesini bir slot sola TAŞIYOR, \"7\"yi ortaya\n getiriyordu — numaralar kayıyor, vurgu sönüp yeniden yanıyordu\n (Faz 13.6 kullanıcı bulgusu: \"next/prev'de kayıyor gibi\").\n */}\n {getPageItems(totalPages, page, siblings).map((item, slot) => {\n if (typeof item === \"object\") {\n const jump = getJumpSize(siblings);\n const JumpIcon = item.direction === \"left\" ? ChevronsLeftIcon : ChevronsRightIcon;\n return (\n <li key={slot}>\n <button\n type=\"button\"\n tabIndex={skeletonTab}\n className={itemClass(cn(hoverTransitionClass, idleItemClass, \"group text-mari-muted hover:text-mari-primary focus-visible:text-mari-primary\"))}\n aria-label={item.direction === \"left\" ? `${jump} sayfa geri` : `${jump} sayfa ileri`}\n title={item.direction === \"left\" ? `Önceki ${jump} sayfa` : `Sonraki ${jump} sayfa`}\n aria-disabled={disabled || undefined}\n onClick={() => !disabled && goTo(resolvePageClickTarget(item, page, totalPages, siblings))}\n >\n <MoreHorizontalIcon size={icon} aria-hidden className=\"group-hover:hidden group-focus-visible:hidden\" />\n <JumpIcon size={icon} aria-hidden className=\"hidden group-hover:block group-focus-visible:block\" />\n </button>\n </li>\n );\n }\n\n const isActive = item === page;\n return (\n <li key={slot}>\n <button\n type=\"button\"\n tabIndex={skeletonTab}\n className={itemClass(isActive ? cn(\"font-semibold cursor-default\", activeClasses(color, variant)) : idleItemClass)}\n aria-label={`${item}. sayfa`}\n aria-current={isActive ? \"page\" : undefined}\n aria-disabled={disabled || undefined}\n onClick={() => !disabled && goTo(item)}\n >\n {item}\n </button>\n </li>\n );\n })}\n <li>{navButton(\"next\")}</li>\n </ul>\n </nav>\n );\n\n const controls = (\n <div className={cn(\"flex flex-wrap items-center gap-x-4 gap-y-2\", align !== \"between\" && alignClass[align])}>\n {pager}\n {!simple && sizeChangerVisible && (\n <SkeletonSlot on={skeleton} placeholder={barPlaceholder}>\n <SizeChanger value={pageSize} options={pageSizeOptions} size={size} disabled={disabled} onChange={handlePageSizeChange} />\n </SkeletonSlot>\n )}\n {!simple && showQuickJumper && (\n <SkeletonSlot on={skeleton} placeholder={barPlaceholder}>\n <QuickJumper totalPages={totalPages} size={size} disabled={disabled} onCommit={goTo} />\n </SkeletonSlot>\n )}\n </div>\n );\n\n return (\n <div\n ref={rootRef}\n aria-busy={skeleton || undefined}\n className={cn(\n \"flex flex-wrap items-center gap-x-4 gap-y-2\",\n alignClass[align],\n disabled && \"pointer-events-none opacity-60\",\n className\n )}\n >\n {totalNode}\n {controls}\n </div>\n );\n}\n\nconst fieldHeightClass: Record<Size, string> = {\n sm: \"h-6 rounded-sm text-xs\",\n md: \"h-8 rounded-md text-sm\",\n lg: \"h-10 rounded-md text-base\",\n};\n\nfunction SizeChanger({\n value,\n options,\n size,\n disabled,\n onChange,\n}: Readonly<{\n value: number;\n options: number[];\n size: Size;\n disabled: boolean;\n onChange: (size: number) => void;\n}>) {\n // Mevcut boyut listede yoksa (ör. controlled `pageSize={15}`) yine de\n // seçili görünsün — native `<select>` aksi halde ilk seçeneği gösterir.\n const allOptions = options.includes(value) ? options : [...options, value].sort((a, b) => a - b);\n return (\n <div className=\"relative inline-flex\">\n <select\n value={value}\n disabled={disabled}\n aria-label=\"Sayfa başına kayıt\"\n onChange={(e) => onChange(Number(e.target.value))}\n className={cn(fieldClass, fieldHeightClass[size], \"cursor-pointer appearance-none pl-3 pr-8 tabular-nums\")}\n >\n {allOptions.map((option) => (\n <option key={option} value={option}>\n {option} / sayfa\n </option>\n ))}\n </select>\n <ChevronDownIcon size={iconSize[size] - 2} aria-hidden className=\"pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-mari-muted\" />\n </div>\n );\n}\n\n/** Sadece rakam kabul eden, Enter/blur'da atlayan küçük alan. */\nfunction usePageDraft(onCommit: (page: number) => void, initial = \"\") {\n const [draft, setDraft] = useState(initial);\n const commit = () => {\n const parsed = Number.parseInt(draft, 10);\n if (Number.isFinite(parsed)) onCommit(parsed);\n return parsed;\n };\n return { draft, setDraft, commit };\n}\n\nfunction QuickJumper({ totalPages, size, disabled, onCommit }: Readonly<{ totalPages: number; size: Size; disabled: boolean; onCommit: (page: number) => void }>) {\n const { draft, setDraft, commit } = usePageDraft(onCommit);\n const submit = () => {\n commit();\n setDraft(\"\");\n };\n return (\n <label className={cn(\"flex items-center gap-2 text-mari-muted\", textSizeClass[size])}>\n Git\n <input\n type=\"text\"\n inputMode=\"numeric\"\n value={draft}\n disabled={disabled}\n aria-label={`Sayfaya git (1-${totalPages})`}\n onChange={(e) => setDraft(e.target.value.replace(/\\D/g, \"\"))}\n onKeyDown={(e) => e.key === \"Enter\" && submit()}\n onBlur={submit}\n className={cn(fieldClass, fieldHeightClass[size], \"w-14 px-2 text-center tabular-nums\")}\n />\n </label>\n );\n}\n\nfunction SimplePageInput({\n page,\n totalPages,\n size,\n disabled,\n onCommit,\n}: Readonly<{\n page: number;\n totalPages: number;\n size: Size;\n disabled: boolean;\n onCommit: (page: number) => void;\n}>) {\n const { draft, setDraft, commit } = usePageDraft(onCommit, String(page));\n // Dışarıdan (ok düğmeleri, controlled prop) sayfa değişince alanı eşitle.\n useEffect(() => setDraft(String(page)), [page, setDraft]);\n const submit = () => {\n commit();\n // Geçersiz/aralık dışı girişte gerçek sayfaya geri dön.\n setDraft(String(page));\n };\n return (\n <span className={cn(\"flex items-center gap-2 text-mari-muted tabular-nums\", textSizeClass[size])}>\n <input\n type=\"text\"\n inputMode=\"numeric\"\n value={draft}\n disabled={disabled}\n aria-label={`Sayfa (1-${totalPages})`}\n onChange={(e) => setDraft(e.target.value.replace(/\\D/g, \"\"))}\n onKeyDown={(e) => e.key === \"Enter\" && submit()}\n onBlur={submit}\n className={cn(fieldClass, fieldHeightClass[size], \"w-12 px-1 text-center\")}\n />\n <span aria-hidden>/</span>\n <span>{totalPages}</span>\n </span>\n );\n}\n","import type { PageItem } from \"./types\";\n\n/** Toplam sayfa sayısı. Hiç kayıt yokken bile 1 döner — \"0. sayfa\" diye bir durum yoktur. */\nexport function getTotalPages(totalItems: number, pageSize: number): number {\n if (pageSize <= 0) return 1;\n return Math.max(1, Math.ceil(totalItems / pageSize));\n}\n\nexport function clampPage(page: number, totalPages: number): number {\n if (!Number.isFinite(page)) return 1;\n return Math.min(Math.max(1, Math.trunc(page)), Math.max(1, totalPages));\n}\n\n/**\n * Görünür sayfa listesini üretir. Eski algoritma (`current ± 2`) iki soruna\n * yol açıyordu:\n *\n * 1. Düğme sayısı sayfadan sayfaya DEĞİŞİYORDU (1. sayfada 5, 5. sayfada 9\n * öğe) — tüm bileşenin genişliği her tıklamada zıplıyor, tıklanan\n * düğmeler imlecin altından kayıyordu (\"yeni sayfaya geçince tuhaf\n * davranıyor\" kullanıcı bulgusu).\n * 2. \"…\" bazen TEK bir sayfayı gizliyordu (10 sayfada 5. sayfa: `1 … 3`) —\n * o slota doğrudan \"2\" yazmak aynı yeri kaplar ve bir tıklama kazandırır.\n *\n * Yeni algoritma sabit sayıda slot üretir (`siblingCount * 2 + 5`): ilk ve\n * son sayfa her zaman görünür, aktif sayfanın iki yanında `siblingCount`\n * komşu, aradaki boşluklar ya \"…\" ya da (tek sayfa gizleyecekse) o sayfanın\n * kendisidir.\n */\nexport function getPageItems(totalPages: number, currentPage: number, siblingCount = 1): PageItem[] {\n const siblings = Math.max(0, Math.trunc(siblingCount));\n const totalSlots = siblings * 2 + 5;\n\n if (totalPages <= totalSlots) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n const current = clampPage(currentPage, totalPages);\n // Kenarlara yakınken pencere kaydırılır — slot sayısı sabit kalsın diye.\n const windowStart = Math.max(Math.min(current - siblings, totalPages - siblings * 2 - 2), 3);\n const windowEnd = Math.min(Math.max(current + siblings, siblings * 2 + 3), totalPages - 2);\n\n const items: PageItem[] = [1];\n items.push(windowStart > 3 ? { type: \"ellipsis\", direction: \"left\" } : 2);\n for (let page = windowStart; page <= windowEnd; page++) items.push(page);\n items.push(windowEnd < totalPages - 2 ? { type: \"ellipsis\", direction: \"right\" } : totalPages - 1);\n items.push(totalPages);\n\n return items;\n}\n\n/**\n * Faz 15.5 — dar kapsayıcıda (375px telefon) sayfa listesi taşıyordu. Verilen\n * genişliğe sığan en büyük komşu sayısını (`maxSiblings`'ten 0'a) döner;\n * 0 komşu bile sığmıyorsa `-1` (→ `simple` görünüm). Slot sayısı\n * `getPageItems` ile aynı: `min(toplam, 2s+5)` + önceki/sonraki okları.\n */\nexport function fitSiblingCount(available: number, slotWidth: number, gap: number, totalPages: number, maxSiblings: number): number {\n for (let siblings = Math.max(0, Math.trunc(maxSiblings)); siblings >= 0; siblings--) {\n const slots = Math.min(totalPages, siblings * 2 + 5) + 2;\n if (slots * slotWidth + (slots - 1) * gap <= available) return siblings;\n }\n return -1;\n}\n\n/** \"…\" düğmesinin kaç sayfa atlayacağı — görünür pencere genişliği kadar (ant.design ile aynı: varsayılan 5). */\nexport function getJumpSize(siblingCount = 1): number {\n return Math.max(0, Math.trunc(siblingCount)) * 2 + 3;\n}\n\nexport function resolvePageClickTarget(page: PageItem, currentPage: number, totalPages: number, siblingCount = 1): number {\n if (typeof page === \"number\") return clampPage(page, totalPages);\n const jump = getJumpSize(siblingCount);\n return clampPage(page.direction === \"left\" ? currentPage - jump : currentPage + jump, totalPages);\n}\n\n/**\n * Sayfa boyutu değiştiğinde kullanıcının baktığı İLK kaydı görünür tutan\n * sayfayı bulur. Eskiden sayfa numarası olduğu gibi kalıyordu — 10/sayfa'da\n * 10. sayfadayken 100/sayfa'ya geçince \"10. sayfa / 3 sayfa\" gibi aralık\n * dışı bir duruma düşülüyor, \"901-247 / 247 kayıt\" yazıyordu.\n */\nexport function getPageAfterSizeChange(currentPage: number, oldPageSize: number, newPageSize: number, totalItems: number): number {\n const firstItemIndex = (Math.max(1, currentPage) - 1) * oldPageSize;\n return clampPage(Math.floor(firstItemIndex / newPageSize) + 1, getTotalPages(totalItems, newPageSize));\n}\n\n/** `[başlangıç, bitiş]` — 1 tabanlı, kapsayıcı. Kayıt yoksa `[0, 0]`. */\nexport function getItemRange(currentPage: number, pageSize: number, totalItems: number): [number, number] {\n if (totalItems <= 0) return [0, 0];\n return [(currentPage - 1) * pageSize + 1, Math.min(currentPage * pageSize, totalItems)];\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
skeletonFill
|
|
5
|
+
} from "./chunk-54HHEXXD.js";
|
|
6
|
+
|
|
7
|
+
// src/lib/ContentSkeleton.tsx
|
|
8
|
+
import { useCallback, useLayoutEffect, useRef, useState } from "react";
|
|
9
|
+
import { cn } from "@mari-ui/core";
|
|
10
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
var CONTROL_SELECTOR = 'input:not([type="hidden"]), textarea, select, button, img, svg, video, canvas, [role="button"], [role="checkbox"], [role="switch"], [role="radio"], [role="slider"], [role="img"]';
|
|
12
|
+
var MIN_SIZE = 4;
|
|
13
|
+
function isTransparent(color) {
|
|
14
|
+
return color === "transparent" || /rgba?\([^)]*,\s*0\)$/.test(color) || color.endsWith(" / 0)");
|
|
15
|
+
}
|
|
16
|
+
function isVisualBox(el, style) {
|
|
17
|
+
if (el.textContent?.trim()) return false;
|
|
18
|
+
const framed = ["Top", "Right", "Bottom", "Left"].every((side) => parseFloat(style.getPropertyValue(`border-${side.toLowerCase()}-width`)) > 0);
|
|
19
|
+
return framed || !isTransparent(style.backgroundColor);
|
|
20
|
+
}
|
|
21
|
+
function measure(root) {
|
|
22
|
+
const origin = root.getBoundingClientRect();
|
|
23
|
+
const scale = root.offsetWidth > 0 && origin.width > 0 ? origin.width / root.offsetWidth : 1;
|
|
24
|
+
const blocks = [];
|
|
25
|
+
const push = (x, y, w, h, radius) => {
|
|
26
|
+
const left = Math.max(x - origin.left, 0) / scale;
|
|
27
|
+
const width = Math.min(x + w - origin.left, origin.width) / scale - left;
|
|
28
|
+
const height = h / scale;
|
|
29
|
+
if (width < MIN_SIZE || height < MIN_SIZE) return;
|
|
30
|
+
blocks.push({ left, top: (y - origin.top) / scale, width, height, radius });
|
|
31
|
+
};
|
|
32
|
+
const pushTextLines = (text, parent) => {
|
|
33
|
+
if (!text.textContent?.trim()) return;
|
|
34
|
+
const range = document.createRange();
|
|
35
|
+
range.selectNodeContents(text);
|
|
36
|
+
if (typeof range.getClientRects !== "function") return;
|
|
37
|
+
const fontSize = parseFloat(getComputedStyle(parent).fontSize) || 16;
|
|
38
|
+
for (const line of Array.from(range.getClientRects())) {
|
|
39
|
+
const height = Math.min(line.height, fontSize * 0.8);
|
|
40
|
+
push(line.left, line.top + (line.height - height) / 2, line.width, height, "0.25rem");
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const walk = (el) => {
|
|
44
|
+
for (const node of Array.from(el.childNodes)) {
|
|
45
|
+
if (node.nodeType === Node.TEXT_NODE) pushTextLines(node, el);
|
|
46
|
+
else if (node instanceof Element) visit(node);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const visit = (el) => {
|
|
50
|
+
const style = getComputedStyle(el);
|
|
51
|
+
if (style.display === "none") return;
|
|
52
|
+
const box = el.getBoundingClientRect();
|
|
53
|
+
if (box.width <= 1 && box.height <= 1) return;
|
|
54
|
+
if (!el.matches(CONTROL_SELECTOR) && !isVisualBox(el, style)) {
|
|
55
|
+
walk(el);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const rect = el.getBoundingClientRect();
|
|
59
|
+
const radius = style.borderRadius && style.borderRadius !== "0px" ? style.borderRadius : "0.25rem";
|
|
60
|
+
push(rect.left, rect.top, rect.width, rect.height, radius);
|
|
61
|
+
};
|
|
62
|
+
walk(root);
|
|
63
|
+
return blocks;
|
|
64
|
+
}
|
|
65
|
+
function ContentSkeleton({ on, fallback, className, children }) {
|
|
66
|
+
const contentRef = useRef(null);
|
|
67
|
+
const [blocks, setBlocks] = useState(null);
|
|
68
|
+
const remeasure = useCallback(() => {
|
|
69
|
+
if (contentRef.current) setBlocks(measure(contentRef.current));
|
|
70
|
+
}, []);
|
|
71
|
+
useLayoutEffect(() => {
|
|
72
|
+
if (!on) {
|
|
73
|
+
setBlocks(null);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
remeasure();
|
|
77
|
+
const content = contentRef.current;
|
|
78
|
+
if (!content || typeof ResizeObserver === "undefined") return;
|
|
79
|
+
const observer = new ResizeObserver(remeasure);
|
|
80
|
+
observer.observe(content);
|
|
81
|
+
return () => observer.disconnect();
|
|
82
|
+
}, [on, children, remeasure]);
|
|
83
|
+
if (!on) return /* @__PURE__ */ jsx(Fragment, { children });
|
|
84
|
+
const empty = blocks !== null && blocks.length === 0;
|
|
85
|
+
return /* @__PURE__ */ jsxs("div", { "aria-hidden": true, "data-skeleton": "", className: cn("pointer-events-none relative select-none", className), children: [
|
|
86
|
+
/* @__PURE__ */ jsx("div", { ref: contentRef, className: cn("invisible", empty && "absolute inset-x-0 top-0"), children }),
|
|
87
|
+
empty ? fallback : blocks?.map((block, i) => /* @__PURE__ */ jsx(
|
|
88
|
+
"span",
|
|
89
|
+
{
|
|
90
|
+
className: cn("absolute", skeletonFill(true)),
|
|
91
|
+
style: { left: block.left, top: block.top, width: block.width, height: block.height, borderRadius: block.radius }
|
|
92
|
+
},
|
|
93
|
+
i
|
|
94
|
+
))
|
|
95
|
+
] });
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export {
|
|
99
|
+
ContentSkeleton
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=chunk-V7KDUUV6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/ContentSkeleton.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useCallback, useLayoutEffect, useRef, useState } from \"react\";\nimport { cn } from \"@mari-ui/core\";\nimport { skeletonFill } from \"./skeleton\";\n\ninterface Block {\n left: number;\n top: number;\n width: number;\n height: number;\n radius: string;\n}\n\n/** Tek başına tek blok olan öğeler (içine inilmez). */\nconst CONTROL_SELECTOR =\n 'input:not([type=\"hidden\"]), textarea, select, button, img, svg, video, canvas, [role=\"button\"], [role=\"checkbox\"], [role=\"switch\"], [role=\"radio\"], [role=\"slider\"], [role=\"img\"]';\n\n/** Bundan küçük kutular (ör. `sr-only` native input'lar) atlanır. */\nconst MIN_SIZE = 4;\n\nfunction isTransparent(color: string): boolean {\n return color === \"transparent\" || /rgba?\\([^)]*,\\s*0\\)$/.test(color) || color.endsWith(\" / 0)\");\n}\n\n/**\n * Metinsiz ve dört kenarı çerçeveli (ya da dolgulu) kutu: Input'un kenarlıklı\n * sarmalayıcısı, Checkbox'ın kutusu gibi. İçindeki native input yerine bu\n * kutunun kendisi (radius'uyla) tek blok olur.\n */\nfunction isVisualBox(el: Element, style: CSSStyleDeclaration): boolean {\n if (el.textContent?.trim()) return false;\n const framed = [\"Top\", \"Right\", \"Bottom\", \"Left\"].every((side) => parseFloat(style.getPropertyValue(`border-${side.toLowerCase()}-width`)) > 0);\n return framed || !isTransparent(style.backgroundColor);\n}\n\nfunction measure(root: HTMLElement): Block[] {\n const origin = root.getBoundingClientRect();\n // `getBoundingClientRect` atalardaki transform'u içerir: Modal açılırken\n // `scale(0.98)`den başlar ve ölçüm o anda yapılır — bloklar %2 dar kalıyordu\n // (transform değişimi ResizeObserver'ı tetiklemez). Ölçek çarpanıyla\n // düzeltilir; bloklar transform'un İÇİNDE çizildiği için yerel px gerekir.\n const scale = root.offsetWidth > 0 && origin.width > 0 ? origin.width / root.offsetWidth : 1;\n const blocks: Block[] = [];\n /** Viewport koordinatlı kutu → bölgeye göreli, ölçeksiz blok. */\n const push = (x: number, y: number, w: number, h: number, radius: string) => {\n const left = Math.max(x - origin.left, 0) / scale;\n // `truncate`lı metnin satır kutusu kırpılan kısmı da kapsar — bölgeye sığdır.\n const width = Math.min(x + w - origin.left, origin.width) / scale - left;\n const height = h / scale;\n if (width < MIN_SIZE || height < MIN_SIZE) return;\n blocks.push({ left, top: (y - origin.top) / scale, width, height, radius });\n };\n\n /** Satır başına bir çubuk; yüksekliği yazı boyuna göre (satır aralığı değil). */\n const pushTextLines = (text: Node, parent: Element) => {\n if (!text.textContent?.trim()) return;\n const range = document.createRange();\n range.selectNodeContents(text);\n // jsdom'da yok → blok üretilmez, `fallback` devreye girer.\n if (typeof range.getClientRects !== \"function\") return;\n const fontSize = parseFloat(getComputedStyle(parent).fontSize) || 16;\n for (const line of Array.from(range.getClientRects())) {\n const height = Math.min(line.height, fontSize * 0.8);\n push(line.left, line.top + (line.height - height) / 2, line.width, height, \"0.25rem\");\n }\n };\n\n const walk = (el: Element) => {\n for (const node of Array.from(el.childNodes)) {\n if (node.nodeType === Node.TEXT_NODE) pushTextLines(node, el);\n else if (node instanceof Element) visit(node);\n }\n };\n\n const visit = (el: Element) => {\n const style = getComputedStyle(el);\n if (style.display === \"none\") return;\n // Yalnız ekran okuyucu için (sr-only: 1×1px kırpılmış kutu) — görünmeyen metnin\n // satır ölçüsü yine tam genişlik döner; iskelette fazladan çubuk çiziliyordu.\n const box = el.getBoundingClientRect();\n if (box.width <= 1 && box.height <= 1) return;\n if (!el.matches(CONTROL_SELECTOR) && !isVisualBox(el, style)) {\n walk(el);\n return;\n }\n const rect = el.getBoundingClientRect();\n // Kendi radius'u olmayan öğe (ikon SVG'si, düz img) keskin kare değil, metin çubukları gibi hafif yuvarlak.\n const radius = style.borderRadius && style.borderRadius !== \"0px\" ? style.borderRadius : \"0.25rem\";\n push(rect.left, rect.top, rect.width, rect.height, radius);\n };\n\n walk(root);\n return blocks;\n}\n\nexport interface ContentSkeletonProps {\n on: boolean;\n /** Ölçülecek içerik yoksa (veri henüz gelmedi) gösterilecek genel iskelet. */\n fallback: React.ReactNode;\n className?: string;\n children?: React.ReactNode;\n}\n\n/**\n * Faz 15.6 — serbest içeriğin (Drawer/Modal gövdesi) KENDİ şeklinde iskeleti.\n * Gerçek içerik görünmez olarak yerinde çizilir (yükseklik korunur, yüklenince\n * zıplama olmaz), sonra her metin satırının ve her kontrolün (input, düğme,\n * checkbox kutusu…) kutusu ölçülüp üstüne bir blok konur. Genel \"6 satır\n * paragraf\" iskeleti bir formun yanında yarım kalmış görünüyordu.\n *\n * Ölçülecek bir şey yoksa (içerik boş ya da jsdom gibi yerleşimsiz ortam)\n * `fallback` gösterilir. Boyut değişince (pencere, çekmece genişliği)\n * `ResizeObserver` ile yeniden ölçülür.\n */\nexport function ContentSkeleton({ on, fallback, className, children }: Readonly<ContentSkeletonProps>) {\n const contentRef = useRef<HTMLDivElement>(null);\n const [blocks, setBlocks] = useState<Block[] | null>(null);\n\n const remeasure = useCallback(() => {\n if (contentRef.current) setBlocks(measure(contentRef.current));\n }, []);\n\n useLayoutEffect(() => {\n if (!on) {\n setBlocks(null);\n return;\n }\n remeasure();\n const content = contentRef.current;\n if (!content || typeof ResizeObserver === \"undefined\") return;\n const observer = new ResizeObserver(remeasure);\n observer.observe(content);\n return () => observer.disconnect();\n }, [on, children, remeasure]);\n\n if (!on) return <>{children}</>;\n\n const empty = blocks !== null && blocks.length === 0;\n return (\n <div aria-hidden data-skeleton=\"\" className={cn(\"pointer-events-none relative select-none\", className)}>\n <div ref={contentRef} className={cn(\"invisible\", empty && \"absolute inset-x-0 top-0\")}>\n {children}\n </div>\n {empty\n ? fallback\n : blocks?.map((block, i) => (\n <span\n // Bloklar her ölçümde baştan üretilir; sıra kararlı.\n key={i}\n className={cn(\"absolute\", skeletonFill(true))}\n style={{ left: block.left, top: block.top, width: block.width, height: block.height, borderRadius: block.radius }}\n />\n ))}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// src/avatar/utils.ts
|
|
2
|
+
import { cn } from "@mari-ui/core";
|
|
3
|
+
var SIZE_REM = { sm: "1.5rem", md: "2rem", lg: "2.5rem" };
|
|
4
|
+
var INITIAL_FONT_SIZE_CLASS = { sm: "text-[0.625rem]", md: "text-sm", lg: "text-base" };
|
|
5
|
+
var SQUARE_RADIUS_CLASS = { sm: "rounded-sm", md: "rounded-md", lg: "rounded-lg" };
|
|
6
|
+
function getSizeStyle(size) {
|
|
7
|
+
const dimension = typeof size === "number" ? size : SIZE_REM[size];
|
|
8
|
+
return { width: dimension, height: dimension };
|
|
9
|
+
}
|
|
10
|
+
function getInitialFontClass(size) {
|
|
11
|
+
return typeof size === "number" ? INITIAL_FONT_SIZE_CLASS.md : INITIAL_FONT_SIZE_CLASS[size];
|
|
12
|
+
}
|
|
13
|
+
function getShapeClasses(shape, size) {
|
|
14
|
+
const squareRadius = typeof size === "number" ? SQUARE_RADIUS_CLASS.md : SQUARE_RADIUS_CLASS[size];
|
|
15
|
+
return cn("flex shrink-0 items-center justify-center overflow-hidden", shape === "circle" ? "rounded-full" : squareRadius);
|
|
16
|
+
}
|
|
17
|
+
function getInitials(alt) {
|
|
18
|
+
const words = alt.trim().split(/\s+/).filter(Boolean);
|
|
19
|
+
if (words.length === 0) return "";
|
|
20
|
+
const first = words[0].charAt(0);
|
|
21
|
+
const last = words.length > 1 ? words[words.length - 1].charAt(0) : "";
|
|
22
|
+
return (first + last).toLocaleUpperCase("tr");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
getSizeStyle,
|
|
27
|
+
getInitialFontClass,
|
|
28
|
+
getShapeClasses,
|
|
29
|
+
getInitials
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=chunk-XUKVQO6M.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/avatar/utils.ts"],"sourcesContent":["import type React from \"react\";\nimport { cn, type Size } from \"@mari-ui/core\";\nimport type { AvatarShape, AvatarSize } from \"./types\";\n\n/**\n * Preset boyutlar `rem` — 4K/yüksek-DPI ekranlarda `px` kök font'la\n * ölçeklenmediği için küçük kalıyordu. Değerler `@mari-ui/core` componentSize\n * yükseklikleriyle hizalı (h-6/h-8/h-10 = 1.5/2/2.5rem). `size` bir sayı\n * olarak verilirse (açık kaçış) `px` kabul edilir — çağıranın kararı.\n */\nconst SIZE_REM: Record<Size, string> = { sm: \"1.5rem\", md: \"2rem\", lg: \"2.5rem\" };\n\n/**\n * Baş harf font-size'ı ve kare köşe yarıçapı kutuyla orantılı büyür. Faz 15'ten\n * beri baş harf İKİ harf (\"AY\") olabildiği için ant'ın tek-harf ölçeği\n * (14/18/24px) yerine kutunun ~%40'ı kullanılır: 24→10, 32→14, 40→16px.\n * Sayısal (özel px) boyutlarda `md`'nin değerlerine düşülür.\n */\nconst INITIAL_FONT_SIZE_CLASS: Record<Size, string> = { sm: \"text-[0.625rem]\", md: \"text-sm\", lg: \"text-base\" };\nconst SQUARE_RADIUS_CLASS: Record<Size, string> = { sm: \"rounded-sm\", md: \"rounded-md\", lg: \"rounded-lg\" };\n\nexport function getSizeStyle(size: AvatarSize): React.CSSProperties {\n const dimension = typeof size === \"number\" ? size : SIZE_REM[size];\n return { width: dimension, height: dimension };\n}\n\nexport function getInitialFontClass(size: AvatarSize): string {\n return typeof size === \"number\" ? INITIAL_FONT_SIZE_CLASS.md : INITIAL_FONT_SIZE_CLASS[size];\n}\n\n/** Sadece geometri (şekil + radius) — iskelet ve \"+N\" avatarı da bunu kullanır. */\nexport function getShapeClasses(shape: AvatarShape, size: AvatarSize): string {\n const squareRadius = typeof size === \"number\" ? SQUARE_RADIUS_CLASS.md : SQUARE_RADIUS_CLASS[size];\n return cn(\"flex shrink-0 items-center justify-center overflow-hidden\", shape === \"circle\" ? \"rounded-full\" : squareRadius);\n}\n\n/**\n * Faz 15: ilk + son kelimenin baş harfi (\"Aykut Yılmaz\" → \"AY\"); tek kelimede\n * tek harf. Büyük harf Türkçe kurallarıyla (\"ilker\" → \"İ\", \"I\" değil).\n */\nexport function getInitials(alt: string): string {\n const words = alt.trim().split(/\\s+/).filter(Boolean);\n if (words.length === 0) return \"\";\n const first = words[0]!.charAt(0);\n const last = words.length > 1 ? words[words.length - 1]!.charAt(0) : \"\";\n return (first + last).toLocaleUpperCase(\"tr\");\n}\n"],"mappings":";AACA,SAAS,UAAqB;AAS9B,IAAM,WAAiC,EAAE,IAAI,UAAU,IAAI,QAAQ,IAAI,SAAS;AAQhF,IAAM,0BAAgD,EAAE,IAAI,mBAAmB,IAAI,WAAW,IAAI,YAAY;AAC9G,IAAM,sBAA4C,EAAE,IAAI,cAAc,IAAI,cAAc,IAAI,aAAa;AAElG,SAAS,aAAa,MAAuC;AAClE,QAAM,YAAY,OAAO,SAAS,WAAW,OAAO,SAAS,IAAI;AACjE,SAAO,EAAE,OAAO,WAAW,QAAQ,UAAU;AAC/C;AAEO,SAAS,oBAAoB,MAA0B;AAC5D,SAAO,OAAO,SAAS,WAAW,wBAAwB,KAAK,wBAAwB,IAAI;AAC7F;AAGO,SAAS,gBAAgB,OAAoB,MAA0B;AAC5E,QAAM,eAAe,OAAO,SAAS,WAAW,oBAAoB,KAAK,oBAAoB,IAAI;AACjG,SAAO,GAAG,6DAA6D,UAAU,WAAW,iBAAiB,YAAY;AAC3H;AAMO,SAAS,YAAY,KAAqB;AAC/C,QAAM,QAAQ,IAAI,KAAK,EAAE,MAAM,KAAK,EAAE,OAAO,OAAO;AACpD,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,QAAM,QAAQ,MAAM,CAAC,EAAG,OAAO,CAAC;AAChC,QAAM,OAAO,MAAM,SAAS,IAAI,MAAM,MAAM,SAAS,CAAC,EAAG,OAAO,CAAC,IAAI;AACrE,UAAQ,QAAQ,MAAM,kBAAkB,IAAI;AAC9C;","names":[]}
|