@mari-ui/components 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Aykut Yılmaz
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @mari-ui/components
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
mari-ui'ın web component'leri: 70+ component (form, gezinme, veri gösterimi, grafikler, geri bildirim). Her biri ayrı bir alt yoldan (`@mari-ui/components/button`) içe aktarılır, RSC uyumludur ve `skeleton`, erişilebilirlik ve açık/koyu tema taşır.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
pnpm add @mari-ui/components @mari-ui/core @mari-ui/tokens
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
```css
|
|
10
|
+
/* Tailwind v4 kullanan proje: */
|
|
11
|
+
@import "tailwindcss";
|
|
12
|
+
@import "@mari-ui/components/tailwind.css";
|
|
13
|
+
|
|
14
|
+
/* Tailwind kullanmayan proje (hazır CSS): */
|
|
15
|
+
/* @import "@mari-ui/components/styles.css"; */
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```tsx
|
|
19
|
+
import { Button } from "@mari-ui/components/button";
|
|
20
|
+
|
|
21
|
+
<Button color="primary">Kaydet</Button>;
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
`npx @mari-ui/cli init` projenize uygun CSS girişini söyler, tema dosyalarını ve AI ajan kurallarını kurar.
|
|
25
|
+
|
|
26
|
+
Kurulum, tema ve component dokümanları: [mari-ui deposu](https://github.com/aykutyilmaz37/mari-ui#readme). Lisans: MIT.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./types/accordion/index";
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
ContentSkeleton
|
|
5
|
+
} from "./chunk-V7KDUUV6.js";
|
|
6
|
+
import {
|
|
7
|
+
SkeletonBlock
|
|
8
|
+
} from "./chunk-NPM7IDYV.js";
|
|
9
|
+
import "./chunk-XUKVQO6M.js";
|
|
10
|
+
import {
|
|
11
|
+
skeletonBoxProps
|
|
12
|
+
} from "./chunk-54HHEXXD.js";
|
|
13
|
+
|
|
14
|
+
// src/accordion/Accordion.tsx
|
|
15
|
+
import { useEffect, useId, useRef, useState } from "react";
|
|
16
|
+
import { ChevronDownIcon, ChevronRightIcon } from "lucide-react";
|
|
17
|
+
import { cn, useControllableState } from "@mari-ui/core";
|
|
18
|
+
|
|
19
|
+
// src/accordion/utils.ts
|
|
20
|
+
function toKeys(value) {
|
|
21
|
+
if (value === void 0) return void 0;
|
|
22
|
+
return Array.isArray(value) ? value : [value];
|
|
23
|
+
}
|
|
24
|
+
function toggleKey(active, key, single) {
|
|
25
|
+
if (active.includes(key)) return active.filter((k) => k !== key);
|
|
26
|
+
return single ? [key] : [...active, key];
|
|
27
|
+
}
|
|
28
|
+
function getHeaderTarget(headers, current, key) {
|
|
29
|
+
if (headers.length === 0) return null;
|
|
30
|
+
const index = current ? headers.indexOf(current) : -1;
|
|
31
|
+
switch (key) {
|
|
32
|
+
case "ArrowDown":
|
|
33
|
+
return headers[(index + 1) % headers.length] ?? null;
|
|
34
|
+
case "ArrowUp":
|
|
35
|
+
return headers[index <= 0 ? headers.length - 1 : index - 1] ?? null;
|
|
36
|
+
case "Home":
|
|
37
|
+
return headers[0] ?? null;
|
|
38
|
+
case "End":
|
|
39
|
+
return headers[headers.length - 1] ?? null;
|
|
40
|
+
default:
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// src/accordion/Accordion.tsx
|
|
46
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
47
|
+
var EXIT_MS = 200;
|
|
48
|
+
var HEADER_PAD = { sm: "px-3 py-2", md: "px-4 py-3", lg: "px-6 py-4 text-base" };
|
|
49
|
+
var BODY_PAD = { sm: "px-3 py-2", md: "p-4", lg: "px-6 py-4" };
|
|
50
|
+
var BODY_PAD_FLUSH = { sm: "px-3 pb-2", md: "px-4 pb-4", lg: "px-6 pb-4" };
|
|
51
|
+
var ICON_BOX = { sm: "h-5", md: "h-5", lg: "h-6" };
|
|
52
|
+
var ROOT = {
|
|
53
|
+
bordered: "overflow-hidden rounded-lg border border-mari-border bg-mari-surface-alt",
|
|
54
|
+
borderless: "overflow-hidden rounded-lg bg-mari-surface-alt",
|
|
55
|
+
ghost: "",
|
|
56
|
+
separated: "flex flex-col gap-2"
|
|
57
|
+
};
|
|
58
|
+
var ITEM = {
|
|
59
|
+
bordered: "border-b border-mari-border last:border-b-0",
|
|
60
|
+
borderless: "border-b border-mari-border last:border-b-0",
|
|
61
|
+
ghost: "",
|
|
62
|
+
separated: "overflow-hidden rounded-lg border border-mari-border bg-mari-surface"
|
|
63
|
+
};
|
|
64
|
+
function useRenderedContent(open, forceRender, destroyOnHidden) {
|
|
65
|
+
const [rendered, setRendered] = useState(open || forceRender);
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (open) {
|
|
68
|
+
setRendered(true);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (!destroyOnHidden || forceRender) return;
|
|
72
|
+
const timer = setTimeout(() => setRendered(false), EXIT_MS);
|
|
73
|
+
return () => clearTimeout(timer);
|
|
74
|
+
}, [open, forceRender, destroyOnHidden]);
|
|
75
|
+
return open || rendered;
|
|
76
|
+
}
|
|
77
|
+
function ExpandIcon({ open, size, placement, disabled, skeleton, custom }) {
|
|
78
|
+
const Chevron = placement === "end" ? ChevronDownIcon : ChevronRightIcon;
|
|
79
|
+
let content;
|
|
80
|
+
if (skeleton) content = /* @__PURE__ */ jsx("span", { ...skeletonBoxProps("size-3.5 rounded-sm") });
|
|
81
|
+
else
|
|
82
|
+
content = custom?.(open) ?? /* @__PURE__ */ jsx(
|
|
83
|
+
Chevron,
|
|
84
|
+
{
|
|
85
|
+
size: size === "lg" ? 18 : 16,
|
|
86
|
+
className: cn("transition-transform duration-200 motion-reduce:transition-none", open && (placement === "end" ? "rotate-180" : "rotate-90"))
|
|
87
|
+
}
|
|
88
|
+
);
|
|
89
|
+
return /* @__PURE__ */ jsx("span", { "aria-hidden": true, className: cn("flex shrink-0 items-center", ICON_BOX[size], disabled ? "text-mari-muted/60" : "text-mari-muted", placement === "end" && "order-last"), children: content });
|
|
90
|
+
}
|
|
91
|
+
function HeaderRow({ item, open, onToggle, variant, size, iconPlacement, expandIcon, skeleton, Heading, headerId, panelId }) {
|
|
92
|
+
const disabled = item.disabled || skeleton;
|
|
93
|
+
return /* @__PURE__ */ jsxs(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
"aria-hidden": skeleton || void 0,
|
|
97
|
+
className: cn(
|
|
98
|
+
"relative flex items-start gap-3",
|
|
99
|
+
HEADER_PAD[size],
|
|
100
|
+
!disabled && "cursor-pointer",
|
|
101
|
+
!disabled && variant !== "bordered" && "hover:bg-mari-surface-alt/60",
|
|
102
|
+
"has-[[data-accordion-trigger]:focus-visible]:outline-2 has-[[data-accordion-trigger]:focus-visible]:-outline-offset-2 has-[[data-accordion-trigger]:focus-visible]:outline-mari-ring",
|
|
103
|
+
variant === "ghost" && "rounded-md"
|
|
104
|
+
),
|
|
105
|
+
children: [
|
|
106
|
+
item.showArrow !== false && /* @__PURE__ */ jsx(ExpandIcon, { open, size, placement: iconPlacement, disabled: item.disabled, skeleton, custom: expandIcon }),
|
|
107
|
+
/* @__PURE__ */ jsx(Heading, { className: "m-0 min-w-0 flex-1 text-inherit font-medium", children: /* @__PURE__ */ jsx(
|
|
108
|
+
"button",
|
|
109
|
+
{
|
|
110
|
+
type: "button",
|
|
111
|
+
id: headerId,
|
|
112
|
+
"data-accordion-trigger": "",
|
|
113
|
+
"aria-expanded": open,
|
|
114
|
+
"aria-controls": panelId,
|
|
115
|
+
disabled,
|
|
116
|
+
onClick: onToggle,
|
|
117
|
+
className: cn(
|
|
118
|
+
"w-full cursor-[inherit] text-left outline-none after:absolute after:inset-0",
|
|
119
|
+
size === "lg" ? "leading-6" : "leading-5",
|
|
120
|
+
item.disabled ? "text-mari-muted" : "text-mari-foreground",
|
|
121
|
+
disabled && "cursor-not-allowed"
|
|
122
|
+
),
|
|
123
|
+
children: skeleton ? /* @__PURE__ */ jsx("span", { ...skeletonBoxProps("rounded-sm"), children: item.label }) : item.label
|
|
124
|
+
}
|
|
125
|
+
) }),
|
|
126
|
+
item.extra && /* @__PURE__ */ jsx("div", { className: cn("relative z-10 flex shrink-0 items-center", ICON_BOX[size], skeleton && "invisible"), children: item.extra })
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
function Panel({ item, open, onToggle, variant, size, iconPlacement, expandIcon, headingLevel, destroyOnHidden, region, skeleton }) {
|
|
132
|
+
const id = useId();
|
|
133
|
+
const headerId = `${id}-header`;
|
|
134
|
+
const panelId = `${id}-panel`;
|
|
135
|
+
const rendered = useRenderedContent(open, Boolean(item.forceRender), destroyOnHidden);
|
|
136
|
+
const Heading = `h${headingLevel}`;
|
|
137
|
+
const tinted = variant === "bordered";
|
|
138
|
+
return /* @__PURE__ */ jsxs("div", { className: ITEM[variant], children: [
|
|
139
|
+
/* @__PURE__ */ jsx(
|
|
140
|
+
HeaderRow,
|
|
141
|
+
{
|
|
142
|
+
item,
|
|
143
|
+
open,
|
|
144
|
+
onToggle,
|
|
145
|
+
variant,
|
|
146
|
+
size,
|
|
147
|
+
iconPlacement,
|
|
148
|
+
expandIcon,
|
|
149
|
+
Heading,
|
|
150
|
+
headerId,
|
|
151
|
+
panelId,
|
|
152
|
+
skeleton
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ jsx(
|
|
156
|
+
"div",
|
|
157
|
+
{
|
|
158
|
+
className: cn(
|
|
159
|
+
"grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none",
|
|
160
|
+
open ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
161
|
+
),
|
|
162
|
+
children: /* @__PURE__ */ jsx(
|
|
163
|
+
"div",
|
|
164
|
+
{
|
|
165
|
+
id: panelId,
|
|
166
|
+
role: region ? "region" : void 0,
|
|
167
|
+
"aria-labelledby": region ? headerId : void 0,
|
|
168
|
+
inert: !open || void 0,
|
|
169
|
+
className: "min-h-0 overflow-hidden",
|
|
170
|
+
children: rendered && /* @__PURE__ */ jsx("div", { className: cn(tinted ? cn("border-t border-mari-border bg-mari-surface", BODY_PAD[size]) : BODY_PAD_FLUSH[size], "text-mari-foreground"), children: /* @__PURE__ */ jsx(ContentSkeleton, { on: skeleton, fallback: /* @__PURE__ */ jsx(SkeletonBlock, { active: true, width: "80%", height: "0.75rem", radius: "sm" }), children: item.children }) })
|
|
171
|
+
}
|
|
172
|
+
)
|
|
173
|
+
}
|
|
174
|
+
)
|
|
175
|
+
] });
|
|
176
|
+
}
|
|
177
|
+
function Accordion({
|
|
178
|
+
items,
|
|
179
|
+
activeKey,
|
|
180
|
+
defaultActiveKey,
|
|
181
|
+
onChange,
|
|
182
|
+
single = false,
|
|
183
|
+
variant = "bordered",
|
|
184
|
+
size = "md",
|
|
185
|
+
iconPlacement = "start",
|
|
186
|
+
expandIcon,
|
|
187
|
+
headingLevel = 3,
|
|
188
|
+
destroyOnHidden = false,
|
|
189
|
+
className,
|
|
190
|
+
skeleton = false
|
|
191
|
+
}) {
|
|
192
|
+
const [active, setActive] = useControllableState({
|
|
193
|
+
value: toKeys(activeKey),
|
|
194
|
+
defaultValue: toKeys(defaultActiveKey) ?? [],
|
|
195
|
+
onChange
|
|
196
|
+
});
|
|
197
|
+
const rootRef = useRef(null);
|
|
198
|
+
const onKeyDown = (event) => {
|
|
199
|
+
const target = event.target;
|
|
200
|
+
if (!target.matches("[data-accordion-trigger]")) return;
|
|
201
|
+
const headers = Array.from(rootRef.current?.querySelectorAll("[data-accordion-trigger]:not(:disabled)") ?? []).filter(
|
|
202
|
+
// İç içe Accordion'un başlıkları bu listeye girmez.
|
|
203
|
+
(el) => el.closest("[data-accordion-root]") === rootRef.current
|
|
204
|
+
);
|
|
205
|
+
const next = getHeaderTarget(headers, target, event.key);
|
|
206
|
+
if (!next) return;
|
|
207
|
+
event.preventDefault();
|
|
208
|
+
next.focus();
|
|
209
|
+
};
|
|
210
|
+
return (
|
|
211
|
+
// Tuşlar başlık düğmelerinden kabarcıklanır; kök etkileşimli değil.
|
|
212
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions
|
|
213
|
+
/* @__PURE__ */ jsx(
|
|
214
|
+
"div",
|
|
215
|
+
{
|
|
216
|
+
ref: rootRef,
|
|
217
|
+
"data-accordion-root": "",
|
|
218
|
+
"aria-busy": skeleton || void 0,
|
|
219
|
+
onKeyDown,
|
|
220
|
+
className: cn("text-sm text-mari-foreground", ROOT[variant], className),
|
|
221
|
+
children: items.map((item) => /* @__PURE__ */ jsx(
|
|
222
|
+
Panel,
|
|
223
|
+
{
|
|
224
|
+
item,
|
|
225
|
+
open: active.includes(item.key),
|
|
226
|
+
onToggle: () => setActive(toggleKey(active, item.key, single)),
|
|
227
|
+
variant,
|
|
228
|
+
size,
|
|
229
|
+
iconPlacement,
|
|
230
|
+
expandIcon,
|
|
231
|
+
headingLevel,
|
|
232
|
+
destroyOnHidden,
|
|
233
|
+
region: items.length <= 6,
|
|
234
|
+
skeleton
|
|
235
|
+
},
|
|
236
|
+
item.key
|
|
237
|
+
))
|
|
238
|
+
}
|
|
239
|
+
)
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
export {
|
|
243
|
+
Accordion
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/accordion/Accordion.tsx","../src/accordion/utils.ts"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useId, useRef, useState } from \"react\";\nimport { ChevronDownIcon, ChevronRightIcon } from \"lucide-react\";\nimport { cn, useControllableState, type Size } from \"@mari-ui/core\";\nimport { ContentSkeleton } from \"../lib/ContentSkeleton\";\nimport { skeletonBoxProps } from \"../lib/skeleton\";\nimport { SkeletonBlock } from \"../skeleton\";\nimport type { AccordionItem, AccordionProps, AccordionVariant } from \"./types\";\nimport { getHeaderTarget, toggleKey, toKeys } from \"./utils\";\n\nexport type { AccordionProps, AccordionItem, AccordionVariant };\n\nconst EXIT_MS = 200;\n\n/** ant.design: sm 8·12, md 12·16, lg 16·24px; lg'de başlık 16px. */\nconst HEADER_PAD: Record<Size, string> = { sm: \"px-3 py-2\", md: \"px-4 py-3\", lg: \"px-6 py-4 text-base\" };\nconst BODY_PAD: Record<Size, string> = { sm: \"px-3 py-2\", md: \"p-4\", lg: \"px-6 py-4\" };\n/** Tonsuz varyantlarda gövde başlığın devamı — üst dolgu küçülür. */\nconst BODY_PAD_FLUSH: Record<Size, string> = { sm: \"px-3 pb-2\", md: \"px-4 pb-4\", lg: \"px-6 pb-4\" };\n/** İkon kutusu = başlığın satır yüksekliği → ok ilk satırla hizalı kalır. */\nconst ICON_BOX: Record<Size, string> = { sm: \"h-5\", md: \"h-5\", lg: \"h-6\" };\n\nconst ROOT: Record<AccordionVariant, string> = {\n bordered: \"overflow-hidden rounded-lg border border-mari-border bg-mari-surface-alt\",\n borderless: \"overflow-hidden rounded-lg bg-mari-surface-alt\",\n ghost: \"\",\n separated: \"flex flex-col gap-2\",\n};\n\nconst ITEM: Record<AccordionVariant, string> = {\n bordered: \"border-b border-mari-border last:border-b-0\",\n borderless: \"border-b border-mari-border last:border-b-0\",\n ghost: \"\",\n separated: \"overflow-hidden rounded-lg border border-mari-border bg-mari-surface\",\n};\n\ninterface PanelProps {\n item: AccordionItem;\n open: boolean;\n onToggle: () => void;\n variant: AccordionVariant;\n size: Size;\n iconPlacement: \"start\" | \"end\";\n expandIcon?: (open: boolean) => React.ReactNode;\n headingLevel: 2 | 3 | 4 | 5 | 6;\n destroyOnHidden: boolean;\n region: boolean;\n skeleton: boolean;\n}\n\n/** İçerik ilk açılışta mount edilir; `destroyOnHidden`da kapanış animasyonundan sonra kaldırılır. */\nfunction useRenderedContent(open: boolean, forceRender: boolean, destroyOnHidden: boolean): boolean {\n const [rendered, setRendered] = useState(open || forceRender);\n useEffect(() => {\n if (open) {\n setRendered(true);\n return;\n }\n if (!destroyOnHidden || forceRender) return;\n const timer = setTimeout(() => setRendered(false), EXIT_MS);\n return () => clearTimeout(timer);\n }, [open, forceRender, destroyOnHidden]);\n return open || rendered;\n}\n\nfunction ExpandIcon({ open, size, placement, disabled, skeleton, custom }: Readonly<{ open: boolean; size: Size; placement: \"start\" | \"end\"; disabled?: boolean; skeleton: boolean; custom?: (open: boolean) => React.ReactNode }>) {\n const Chevron = placement === \"end\" ? ChevronDownIcon : ChevronRightIcon;\n let content: React.ReactNode;\n if (skeleton) content = <span {...skeletonBoxProps(\"size-3.5 rounded-sm\")} />;\n else\n content = custom?.(open) ?? (\n <Chevron\n size={size === \"lg\" ? 18 : 16}\n className={cn(\"transition-transform duration-200 motion-reduce:transition-none\", open && (placement === \"end\" ? \"rotate-180\" : \"rotate-90\"))}\n />\n );\n return (\n <span aria-hidden className={cn(\"flex shrink-0 items-center\", ICON_BOX[size], disabled ? \"text-mari-muted/60\" : \"text-mari-muted\", placement === \"end\" && \"order-last\")}>\n {content}\n </span>\n );\n}\n\ntype HeaderRowProps = Pick<PanelProps, \"item\" | \"open\" | \"onToggle\" | \"variant\" | \"size\" | \"iconPlacement\" | \"expandIcon\" | \"skeleton\"> & {\n Heading: \"h3\";\n headerId: string;\n panelId: string;\n};\n\n/**\n * Başlık satırı: düğme `after:inset-0` ile tüm satırı tıklanabilir yapar (ant:\n * başlığın her yeri açar), `extra` üstte (`z-10`) ve düğmenin DIŞINDA — içindeki\n * bağlantı/düğme iç içe etkileşimli öğe olmaz. İskelette satır erişilebilirlik\n * ağacından çıkar (etiket yer tutucuya döndüğü için düğme adsız kalırdı).\n */\nfunction HeaderRow({ item, open, onToggle, variant, size, iconPlacement, expandIcon, skeleton, Heading, headerId, panelId }: HeaderRowProps) {\n const disabled = item.disabled || skeleton;\n return (\n <div\n aria-hidden={skeleton || undefined}\n className={cn(\n \"relative flex items-start gap-3\",\n HEADER_PAD[size],\n !disabled && \"cursor-pointer\",\n !disabled && variant !== \"bordered\" && \"hover:bg-mari-surface-alt/60\",\n \"has-[[data-accordion-trigger]:focus-visible]:outline-2 has-[[data-accordion-trigger]:focus-visible]:-outline-offset-2 has-[[data-accordion-trigger]:focus-visible]:outline-mari-ring\",\n variant === \"ghost\" && \"rounded-md\"\n )}\n >\n {item.showArrow !== false && <ExpandIcon open={open} size={size} placement={iconPlacement} disabled={item.disabled} skeleton={skeleton} custom={expandIcon} />}\n <Heading className=\"m-0 min-w-0 flex-1 text-inherit font-medium\">\n <button\n type=\"button\"\n id={headerId}\n data-accordion-trigger=\"\"\n aria-expanded={open}\n aria-controls={panelId}\n disabled={disabled}\n onClick={onToggle}\n className={cn(\n \"w-full cursor-[inherit] text-left outline-none after:absolute after:inset-0\",\n size === \"lg\" ? \"leading-6\" : \"leading-5\",\n item.disabled ? \"text-mari-muted\" : \"text-mari-foreground\",\n disabled && \"cursor-not-allowed\"\n )}\n >\n {skeleton ? <span {...skeletonBoxProps(\"rounded-sm\")}>{item.label}</span> : item.label}\n </button>\n </Heading>\n {item.extra && <div className={cn(\"relative z-10 flex shrink-0 items-center\", ICON_BOX[size], skeleton && \"invisible\")}>{item.extra}</div>}\n </div>\n );\n}\n\nfunction Panel({ item, open, onToggle, variant, size, iconPlacement, expandIcon, headingLevel, destroyOnHidden, region, skeleton }: Readonly<PanelProps>) {\n const id = useId();\n const headerId = `${id}-header`;\n const panelId = `${id}-panel`;\n const rendered = useRenderedContent(open, Boolean(item.forceRender), destroyOnHidden);\n const Heading = `h${headingLevel}` as \"h3\";\n const tinted = variant === \"bordered\";\n\n return (\n <div className={ITEM[variant]}>\n <HeaderRow\n item={item}\n open={open}\n onToggle={onToggle}\n variant={variant}\n size={size}\n iconPlacement={iconPlacement}\n expandIcon={expandIcon}\n Heading={Heading}\n headerId={headerId}\n panelId={panelId}\n skeleton={skeleton}\n />\n <div\n className={cn(\n \"grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none\",\n open ? \"grid-rows-[1fr]\" : \"grid-rows-[0fr]\"\n )}\n >\n <div\n id={panelId}\n role={region ? \"region\" : undefined}\n aria-labelledby={region ? headerId : undefined}\n // Kapalıyken odaklanamaz ve erişilebilirlik ağacında yok (görsel olarak da 0 yükseklik).\n inert={!open || undefined}\n className=\"min-h-0 overflow-hidden\"\n >\n {rendered && (\n <div className={cn(tinted ? cn(\"border-t border-mari-border bg-mari-surface\", BODY_PAD[size]) : BODY_PAD_FLUSH[size], \"text-mari-foreground\")}>\n <ContentSkeleton on={skeleton} fallback={<SkeletonBlock active width=\"80%\" height=\"0.75rem\" radius=\"sm\" />}>\n {item.children}\n </ContentSkeleton>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n\n/**\n * Faz 16.3 — yapı ant.design Collapse'tan (tüm başlık açar, ok başta ya da\n * sonda, `extra`, tekli mod, dört görünüm, üç boyut, ilk açılışta mount +\n * `destroyOnHidden`), görünüm kendi token'larımızdan. Aç/kapa yüksekliği\n * `grid-template-rows` 0fr↔1fr ile canlandırılır (sabit `max-height` yok).\n *\n * Erişilebilirlik (WAI-ARIA APG Accordion): her başlık `<hN><button\n * aria-expanded aria-controls>`; gövde `role=\"region\"` + `aria-labelledby`\n * (6'dan fazla bölümde landmark kalabalığı olmasın diye region verilmez).\n * Kapalı gövde `inert`. ↑/↓ başlıklar arası (döngülü), Home/End ilk/son.\n */\nexport function Accordion({\n items,\n activeKey,\n defaultActiveKey,\n onChange,\n single = false,\n variant = \"bordered\",\n size = \"md\",\n iconPlacement = \"start\",\n expandIcon,\n headingLevel = 3,\n destroyOnHidden = false,\n className,\n skeleton = false,\n}: Readonly<AccordionProps>) {\n const [active, setActive] = useControllableState<string[]>({\n value: toKeys(activeKey),\n defaultValue: toKeys(defaultActiveKey) ?? [],\n onChange,\n });\n const rootRef = useRef<HTMLDivElement>(null);\n\n const onKeyDown = (event: React.KeyboardEvent) => {\n const target = event.target as HTMLElement;\n if (!target.matches(\"[data-accordion-trigger]\")) return;\n const headers = Array.from(rootRef.current?.querySelectorAll<HTMLElement>(\"[data-accordion-trigger]:not(:disabled)\") ?? []).filter(\n // İç içe Accordion'un başlıkları bu listeye girmez.\n (el) => el.closest(\"[data-accordion-root]\") === rootRef.current\n );\n const next = getHeaderTarget(headers, target, event.key);\n if (!next) return;\n event.preventDefault();\n next.focus();\n };\n\n return (\n // Tuşlar başlık düğmelerinden kabarcıklanır; kök etkileşimli değil.\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n ref={rootRef}\n data-accordion-root=\"\"\n aria-busy={skeleton || undefined}\n onKeyDown={onKeyDown}\n className={cn(\"text-sm text-mari-foreground\", ROOT[variant], className)}\n >\n {items.map((item) => (\n <Panel\n key={item.key}\n item={item}\n open={active.includes(item.key)}\n onToggle={() => setActive(toggleKey(active, item.key, single))}\n variant={variant}\n size={size}\n iconPlacement={iconPlacement}\n expandIcon={expandIcon}\n headingLevel={headingLevel}\n destroyOnHidden={destroyOnHidden}\n region={items.length <= 6}\n skeleton={skeleton}\n />\n ))}\n </div>\n );\n}\n","/** `activeKey` tek anahtar ya da dizi olabilir → her zaman dizi. */\nexport function toKeys(value: string | string[] | undefined): string[] | undefined {\n if (value === undefined) return undefined;\n return Array.isArray(value) ? value : [value];\n}\n\n/** Bir bölümü aç/kapat. Tekli modda açılan bölüm diğerlerini kapatır. */\nexport function toggleKey(active: string[], key: string, single: boolean): string[] {\n if (active.includes(key)) return active.filter((k) => k !== key);\n return single ? [key] : [...active, key];\n}\n\n/**\n * APG accordion klavyesi: başlıklar arasında ↑/↓ (döngülü), Home/End.\n * Devre dışı başlıklar listeye verilmez. Diğer tuşlarda `null`.\n */\nexport function getHeaderTarget(headers: HTMLElement[], current: Element | null, key: string): HTMLElement | null {\n if (headers.length === 0) return null;\n const index = current ? headers.indexOf(current as HTMLElement) : -1;\n switch (key) {\n case \"ArrowDown\":\n return headers[(index + 1) % headers.length] ?? null;\n case \"ArrowUp\":\n return headers[index <= 0 ? headers.length - 1 : index - 1] ?? null;\n case \"Home\":\n return headers[0] ?? null;\n case \"End\":\n return headers[headers.length - 1] ?? null;\n default:\n return null;\n }\n}\n"],"mappings":"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","names":[]}
|
package/dist/alert.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./types/alert/index";
|
package/dist/alert.js
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
ContentSkeleton
|
|
5
|
+
} from "./chunk-V7KDUUV6.js";
|
|
6
|
+
import {
|
|
7
|
+
SkeletonBlock
|
|
8
|
+
} from "./chunk-NPM7IDYV.js";
|
|
9
|
+
import "./chunk-XUKVQO6M.js";
|
|
10
|
+
import {
|
|
11
|
+
bgSubtleClass,
|
|
12
|
+
borderColorClass,
|
|
13
|
+
textClass
|
|
14
|
+
} from "./chunk-IP2J3BWY.js";
|
|
15
|
+
import "./chunk-54HHEXXD.js";
|
|
16
|
+
|
|
17
|
+
// src/alert/Alert.tsx
|
|
18
|
+
import { useState } from "react";
|
|
19
|
+
import { CircleAlertIcon, CircleCheckIcon, CircleXIcon, InfoIcon, SparklesIcon, XIcon } from "lucide-react";
|
|
20
|
+
import { cn } from "@mari-ui/core";
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
var EXIT_MS = 200;
|
|
23
|
+
var ICON = {
|
|
24
|
+
success: CircleCheckIcon,
|
|
25
|
+
info: InfoIcon,
|
|
26
|
+
warning: CircleAlertIcon,
|
|
27
|
+
error: CircleXIcon,
|
|
28
|
+
primary: InfoIcon,
|
|
29
|
+
accent: SparklesIcon,
|
|
30
|
+
neutral: InfoIcon
|
|
31
|
+
};
|
|
32
|
+
var PLACEHOLDER = /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 py-0.5", children: [
|
|
33
|
+
/* @__PURE__ */ jsx(SkeletonBlock, { active: true, width: "40%", height: "0.875rem", radius: "sm" }),
|
|
34
|
+
/* @__PURE__ */ jsx(SkeletonBlock, { active: true, width: "75%", height: "0.75rem", radius: "sm" })
|
|
35
|
+
] });
|
|
36
|
+
function resolveRole(role, color) {
|
|
37
|
+
if (role === "none") return void 0;
|
|
38
|
+
if (role) return role;
|
|
39
|
+
return color === "error" || color === "warning" ? "alert" : "status";
|
|
40
|
+
}
|
|
41
|
+
function renderIcon(icon, color) {
|
|
42
|
+
if (icon === false) return null;
|
|
43
|
+
if (icon !== true && icon !== void 0) return icon;
|
|
44
|
+
const Icon = ICON[color];
|
|
45
|
+
return /* @__PURE__ */ jsx(Icon, { size: 18, "aria-hidden": true });
|
|
46
|
+
}
|
|
47
|
+
function Alert({
|
|
48
|
+
title,
|
|
49
|
+
description,
|
|
50
|
+
color = "info",
|
|
51
|
+
icon = true,
|
|
52
|
+
action,
|
|
53
|
+
closable = false,
|
|
54
|
+
onClose,
|
|
55
|
+
closeLabel = "Uyar\u0131y\u0131 kapat",
|
|
56
|
+
banner = false,
|
|
57
|
+
role,
|
|
58
|
+
className,
|
|
59
|
+
skeleton = false
|
|
60
|
+
}) {
|
|
61
|
+
const [closing, setClosing] = useState(false);
|
|
62
|
+
const [closed, setClosed] = useState(false);
|
|
63
|
+
if (closed) return null;
|
|
64
|
+
const close = () => {
|
|
65
|
+
setClosing(true);
|
|
66
|
+
onClose?.();
|
|
67
|
+
setTimeout(() => setClosed(true), EXIT_MS);
|
|
68
|
+
};
|
|
69
|
+
const iconNode = renderIcon(icon, color);
|
|
70
|
+
return /* @__PURE__ */ jsxs(
|
|
71
|
+
"div",
|
|
72
|
+
{
|
|
73
|
+
role: skeleton ? void 0 : resolveRole(role, color),
|
|
74
|
+
"aria-busy": skeleton || void 0,
|
|
75
|
+
className: cn(
|
|
76
|
+
"flex items-start gap-3 text-sm text-mari-foreground transition-opacity duration-200 motion-reduce:transition-none",
|
|
77
|
+
bgSubtleClass[color],
|
|
78
|
+
banner ? "border-b px-4 py-2.5" : "rounded-lg border p-3.5",
|
|
79
|
+
borderColorClass[color],
|
|
80
|
+
closing && "opacity-0",
|
|
81
|
+
className
|
|
82
|
+
),
|
|
83
|
+
children: [
|
|
84
|
+
/* @__PURE__ */ jsx(ContentSkeleton, { on: skeleton, fallback: PLACEHOLDER, className: "min-w-0 flex-1", children: /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-1 flex-wrap items-start gap-x-3 gap-y-2", children: [
|
|
85
|
+
iconNode && /* @__PURE__ */ jsx("span", { className: cn("flex shrink-0 items-center pt-px", textClass[color]), children: iconNode }),
|
|
86
|
+
/* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1 basis-48", children: [
|
|
87
|
+
title && /* @__PURE__ */ jsx("p", { className: "font-semibold leading-5", children: title }),
|
|
88
|
+
description && /* @__PURE__ */ jsx("div", { className: cn("leading-5", title && "mt-0.5 text-mari-muted"), children: description })
|
|
89
|
+
] }),
|
|
90
|
+
action && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center gap-2", children: action })
|
|
91
|
+
] }) }),
|
|
92
|
+
closable && /* @__PURE__ */ jsx(
|
|
93
|
+
"button",
|
|
94
|
+
{
|
|
95
|
+
type: "button",
|
|
96
|
+
onClick: close,
|
|
97
|
+
"aria-label": closeLabel,
|
|
98
|
+
className: cn(
|
|
99
|
+
"relative -m-1 inline-flex size-7 shrink-0 cursor-pointer items-center justify-center rounded-md text-mari-muted transition-colors",
|
|
100
|
+
"hover:bg-mari-foreground/5 hover:text-mari-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring",
|
|
101
|
+
// 28px → 44px (her yönde 8px).
|
|
102
|
+
"pointer-coarse:before:absolute pointer-coarse:before:-inset-2"
|
|
103
|
+
),
|
|
104
|
+
children: /* @__PURE__ */ jsx(XIcon, { size: 16, "aria-hidden": true })
|
|
105
|
+
}
|
|
106
|
+
)
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
export {
|
|
112
|
+
Alert
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/alert/Alert.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useState } from \"react\";\nimport { CircleAlertIcon, CircleCheckIcon, CircleXIcon, InfoIcon, SparklesIcon, XIcon } from \"lucide-react\";\nimport { cn, type ColorRole } from \"@mari-ui/core\";\nimport { bgSubtleClass, borderColorClass, textClass } from \"../lib/colorClasses\";\nimport { ContentSkeleton } from \"../lib/ContentSkeleton\";\nimport { SkeletonBlock } from \"../skeleton\";\nimport type { AlertProps } from \"./types\";\n\nexport type { AlertProps };\n\nconst EXIT_MS = 200;\n\nconst ICON: Record<ColorRole, React.ComponentType<{ size?: number; className?: string; \"aria-hidden\"?: boolean }>> = {\n success: CircleCheckIcon,\n info: InfoIcon,\n warning: CircleAlertIcon,\n error: CircleXIcon,\n primary: InfoIcon,\n accent: SparklesIcon,\n neutral: InfoIcon,\n};\n\nconst PLACEHOLDER = (\n <div className=\"flex flex-col gap-2 py-0.5\">\n <SkeletonBlock active width=\"40%\" height=\"0.875rem\" radius=\"sm\" />\n <SkeletonBlock active width=\"75%\" height=\"0.75rem\" radius=\"sm\" />\n </div>\n);\n\nfunction resolveRole(role: AlertProps[\"role\"], color: ColorRole): \"alert\" | \"status\" | undefined {\n if (role === \"none\") return undefined;\n if (role) return role;\n return color === \"error\" || color === \"warning\" ? \"alert\" : \"status\";\n}\n\nfunction renderIcon(icon: AlertProps[\"icon\"], color: ColorRole): React.ReactNode {\n if (icon === false) return null;\n if (icon !== true && icon !== undefined) return icon;\n const Icon = ICON[color];\n return <Icon size={18} aria-hidden />;\n}\n\n/**\n * Faz 16.2 — yapı ant.design Alert'ten, görünüm kendi token'larımızdan\n * (tonlu zemin + rol renginde ince kenarlık ve ikon; metin gövde renginde —\n * renkli uzun metin okunmaz). Eylem sağda, dar ekranda metnin altına iner.\n *\n * Erişilebilirlik: `error`/`warning` `role=\"alert\"` (hemen duyurulur), diğerleri\n * `role=\"status\"`. İkon görsel — anlam başlık/metinde. Kapat düğmesi\n * adlandırılmış, 44px dokunma hedefi; kapanınca kısa bir solma ile kalkar.\n */\nexport function Alert({\n title,\n description,\n color = \"info\",\n icon = true,\n action,\n closable = false,\n onClose,\n closeLabel = \"Uyarıyı kapat\",\n banner = false,\n role,\n className,\n skeleton = false,\n}: Readonly<AlertProps>) {\n const [closing, setClosing] = useState(false);\n const [closed, setClosed] = useState(false);\n if (closed) return null;\n\n const close = () => {\n setClosing(true);\n onClose?.();\n setTimeout(() => setClosed(true), EXIT_MS);\n };\n\n const iconNode = renderIcon(icon, color);\n\n return (\n <div\n role={skeleton ? undefined : resolveRole(role, color)}\n aria-busy={skeleton || undefined}\n className={cn(\n \"flex items-start gap-3 text-sm text-mari-foreground transition-opacity duration-200 motion-reduce:transition-none\",\n bgSubtleClass[color],\n banner ? \"border-b px-4 py-2.5\" : \"rounded-lg border p-3.5\",\n borderColorClass[color],\n closing && \"opacity-0\",\n className\n )}\n >\n <ContentSkeleton on={skeleton} fallback={PLACEHOLDER} className=\"min-w-0 flex-1\">\n <div className=\"flex min-w-0 flex-1 flex-wrap items-start gap-x-3 gap-y-2\">\n {iconNode && <span className={cn(\"flex shrink-0 items-center pt-px\", textClass[color])}>{iconNode}</span>}\n <div className=\"min-w-0 flex-1 basis-48\">\n {title && <p className=\"font-semibold leading-5\">{title}</p>}\n {description && <div className={cn(\"leading-5\", title && \"mt-0.5 text-mari-muted\")}>{description}</div>}\n </div>\n {action && <div className=\"flex shrink-0 items-center gap-2\">{action}</div>}\n </div>\n </ContentSkeleton>\n {closable && (\n <button\n type=\"button\"\n onClick={close}\n aria-label={closeLabel}\n className={cn(\n \"relative -m-1 inline-flex size-7 shrink-0 cursor-pointer items-center justify-center rounded-md text-mari-muted transition-colors\",\n \"hover:bg-mari-foreground/5 hover:text-mari-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-mari-ring\",\n // 28px → 44px (her yönde 8px).\n \"pointer-coarse:before:absolute pointer-coarse:before:-inset-2\"\n )}\n >\n <XIcon size={16} aria-hidden />\n </button>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAEA,SAAgB,gBAAgB;AAChC,SAAS,iBAAiB,iBAAiB,aAAa,UAAU,cAAc,aAAa;AAC7F,SAAS,UAA0B;AAqBjC,SACE,KADF;AAbF,IAAM,UAAU;AAEhB,IAAM,OAA+G;AAAA,EACnH,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AACX;AAEA,IAAM,cACJ,qBAAC,SAAI,WAAU,8BACb;AAAA,sBAAC,iBAAc,QAAM,MAAC,OAAM,OAAM,QAAO,YAAW,QAAO,MAAK;AAAA,EAChE,oBAAC,iBAAc,QAAM,MAAC,OAAM,OAAM,QAAO,WAAU,QAAO,MAAK;AAAA,GACjE;AAGF,SAAS,YAAY,MAA0B,OAAkD;AAC/F,MAAI,SAAS,OAAQ,QAAO;AAC5B,MAAI,KAAM,QAAO;AACjB,SAAO,UAAU,WAAW,UAAU,YAAY,UAAU;AAC9D;AAEA,SAAS,WAAW,MAA0B,OAAmC;AAC/E,MAAI,SAAS,MAAO,QAAO;AAC3B,MAAI,SAAS,QAAQ,SAAS,OAAW,QAAO;AAChD,QAAM,OAAO,KAAK,KAAK;AACvB,SAAO,oBAAC,QAAK,MAAM,IAAI,eAAW,MAAC;AACrC;AAWO,SAAS,MAAM;AAAA,EACpB;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,OAAO;AAAA,EACP;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA,aAAa;AAAA,EACb,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA,WAAW;AACb,GAAyB;AACvB,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,MAAI,OAAQ,QAAO;AAEnB,QAAM,QAAQ,MAAM;AAClB,eAAW,IAAI;AACf,cAAU;AACV,eAAW,MAAM,UAAU,IAAI,GAAG,OAAO;AAAA,EAC3C;AAEA,QAAM,WAAW,WAAW,MAAM,KAAK;AAEvC,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM,WAAW,SAAY,YAAY,MAAM,KAAK;AAAA,MACpD,aAAW,YAAY;AAAA,MACvB,WAAW;AAAA,QACT;AAAA,QACA,cAAc,KAAK;AAAA,QACnB,SAAS,yBAAyB;AAAA,QAClC,iBAAiB,KAAK;AAAA,QACtB,WAAW;AAAA,QACX;AAAA,MACF;AAAA,MAEA;AAAA,4BAAC,mBAAgB,IAAI,UAAU,UAAU,aAAa,WAAU,kBAC9D,+BAAC,SAAI,WAAU,6DACZ;AAAA,sBAAY,oBAAC,UAAK,WAAW,GAAG,oCAAoC,UAAU,KAAK,CAAC,GAAI,oBAAS;AAAA,UAClG,qBAAC,SAAI,WAAU,2BACZ;AAAA,qBAAS,oBAAC,OAAE,WAAU,2BAA2B,iBAAM;AAAA,YACvD,eAAe,oBAAC,SAAI,WAAW,GAAG,aAAa,SAAS,wBAAwB,GAAI,uBAAY;AAAA,aACnG;AAAA,UACC,UAAU,oBAAC,SAAI,WAAU,oCAAoC,kBAAO;AAAA,WACvE,GACF;AAAA,QACC,YACC;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL,SAAS;AAAA,YACT,cAAY;AAAA,YACZ,WAAW;AAAA,cACT;AAAA,cACA;AAAA;AAAA,cAEA;AAAA,YACF;AAAA,YAEA,8BAAC,SAAM,MAAM,IAAI,eAAW,MAAC;AAAA;AAAA,QAC/B;AAAA;AAAA;AAAA,EAEJ;AAEJ;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./types/autocomplete/index";
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
Input
|
|
5
|
+
} from "./chunk-P7Z5BREP.js";
|
|
6
|
+
import {
|
|
7
|
+
getFilteredOption,
|
|
8
|
+
splitMatch
|
|
9
|
+
} from "./chunk-YZ7MDC6B.js";
|
|
10
|
+
import "./chunk-KSPM2Z3T.js";
|
|
11
|
+
import "./chunk-DUCIAQGR.js";
|
|
12
|
+
import "./chunk-LBQMEHK6.js";
|
|
13
|
+
import {
|
|
14
|
+
elevationClass
|
|
15
|
+
} from "./chunk-TCYDVNSU.js";
|
|
16
|
+
import "./chunk-FFXRFQSU.js";
|
|
17
|
+
import "./chunk-IP2J3BWY.js";
|
|
18
|
+
import "./chunk-54HHEXXD.js";
|
|
19
|
+
|
|
20
|
+
// src/autocomplete/AutoComplete.tsx
|
|
21
|
+
import { useEffect, useId, useRef, useState } from "react";
|
|
22
|
+
import { cn, useControllableState } from "@mari-ui/core";
|
|
23
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
24
|
+
function HighlightedValue({ value, searchText }) {
|
|
25
|
+
const parts = splitMatch(value, searchText);
|
|
26
|
+
if (!parts) return /* @__PURE__ */ jsx(Fragment, { children: value });
|
|
27
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
28
|
+
parts[0],
|
|
29
|
+
/* @__PURE__ */ jsx("mark", { className: "bg-transparent font-semibold text-mari-foreground", children: parts[1] }),
|
|
30
|
+
parts[2]
|
|
31
|
+
] });
|
|
32
|
+
}
|
|
33
|
+
function AutoComplete({
|
|
34
|
+
options,
|
|
35
|
+
value,
|
|
36
|
+
defaultValue = "",
|
|
37
|
+
onSearch,
|
|
38
|
+
onSelect,
|
|
39
|
+
placeholder = "Ara",
|
|
40
|
+
closeOnBlur = true,
|
|
41
|
+
notFoundContent,
|
|
42
|
+
size,
|
|
43
|
+
color,
|
|
44
|
+
disabled,
|
|
45
|
+
id,
|
|
46
|
+
name,
|
|
47
|
+
"aria-label": ariaLabel,
|
|
48
|
+
className,
|
|
49
|
+
skeleton = false
|
|
50
|
+
}) {
|
|
51
|
+
const [searchText, setSearchText] = useControllableState({ value, defaultValue, onChange: onSearch });
|
|
52
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
53
|
+
const [activeIndex, setActiveIndex] = useState(-1);
|
|
54
|
+
const listboxId = useId();
|
|
55
|
+
const listRef = useRef(null);
|
|
56
|
+
const filteredOptions = getFilteredOption(options, searchText);
|
|
57
|
+
const showNotFound = filteredOptions.length === 0 && notFoundContent !== void 0 && searchText.trim() !== "";
|
|
58
|
+
const isOpen = isFocused && (filteredOptions.length > 0 || showNotFound);
|
|
59
|
+
const activeOption = activeIndex >= 0 ? filteredOptions[activeIndex] : void 0;
|
|
60
|
+
const optionId = (optId) => `${listboxId}-option-${optId}`;
|
|
61
|
+
useEffect(() => {
|
|
62
|
+
if (!activeOption) return;
|
|
63
|
+
document.getElementById(optionId(activeOption.id))?.scrollIntoView?.({ block: "nearest" });
|
|
64
|
+
}, [activeOption?.id]);
|
|
65
|
+
if (skeleton) return /* @__PURE__ */ jsx(Input, { skeleton: true, size, className });
|
|
66
|
+
const handleSelect = (optionValue) => {
|
|
67
|
+
setSearchText(optionValue);
|
|
68
|
+
onSelect?.(optionValue);
|
|
69
|
+
setIsFocused(false);
|
|
70
|
+
setActiveIndex(-1);
|
|
71
|
+
};
|
|
72
|
+
const handleKeyDown = (e) => {
|
|
73
|
+
if (e.key === "ArrowDown") {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
setIsFocused(true);
|
|
76
|
+
setActiveIndex((i) => Math.min(i + 1, filteredOptions.length - 1));
|
|
77
|
+
} else if (e.key === "ArrowUp") {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
setActiveIndex((i) => Math.max(i - 1, 0));
|
|
80
|
+
} else if (e.key === "Enter" && activeOption) {
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
handleSelect(activeOption.value);
|
|
83
|
+
} else if (e.key === "Escape") {
|
|
84
|
+
setIsFocused(false);
|
|
85
|
+
setActiveIndex(-1);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("relative", className), children: [
|
|
89
|
+
/* @__PURE__ */ jsx(
|
|
90
|
+
Input,
|
|
91
|
+
{
|
|
92
|
+
id,
|
|
93
|
+
name,
|
|
94
|
+
value: searchText,
|
|
95
|
+
placeholder,
|
|
96
|
+
size,
|
|
97
|
+
color,
|
|
98
|
+
disabled,
|
|
99
|
+
allowClear: true,
|
|
100
|
+
onClear: () => {
|
|
101
|
+
setSearchText("");
|
|
102
|
+
setActiveIndex(-1);
|
|
103
|
+
},
|
|
104
|
+
onChange: (e) => {
|
|
105
|
+
setSearchText(e.target.value);
|
|
106
|
+
setActiveIndex(-1);
|
|
107
|
+
},
|
|
108
|
+
onKeyDown: handleKeyDown,
|
|
109
|
+
onFocus: () => setIsFocused(true),
|
|
110
|
+
onBlur: closeOnBlur ? () => setIsFocused(false) : void 0,
|
|
111
|
+
role: "combobox",
|
|
112
|
+
"aria-label": ariaLabel ?? placeholder,
|
|
113
|
+
"aria-autocomplete": "list",
|
|
114
|
+
"aria-expanded": isOpen,
|
|
115
|
+
"aria-controls": listboxId,
|
|
116
|
+
"aria-activedescendant": activeOption ? optionId(activeOption.id) : void 0,
|
|
117
|
+
autoComplete: "off"
|
|
118
|
+
}
|
|
119
|
+
),
|
|
120
|
+
/* @__PURE__ */ jsxs(
|
|
121
|
+
"ul",
|
|
122
|
+
{
|
|
123
|
+
ref: listRef,
|
|
124
|
+
id: listboxId,
|
|
125
|
+
role: "listbox",
|
|
126
|
+
className: cn(
|
|
127
|
+
"absolute left-0 top-full z-mari-dropdown mt-1 max-h-64 w-full overflow-y-auto overscroll-contain rounded-lg bg-mari-surface p-1 text-sm transition-[opacity,translate] duration-150",
|
|
128
|
+
elevationClass.md,
|
|
129
|
+
isOpen ? "pointer-events-auto translate-y-0 opacity-100" : "pointer-events-none -translate-y-1 opacity-0"
|
|
130
|
+
),
|
|
131
|
+
children: [
|
|
132
|
+
filteredOptions.map((option, i) => /* @__PURE__ */ jsx("li", { role: "presentation", children: /* @__PURE__ */ jsx(
|
|
133
|
+
"button",
|
|
134
|
+
{
|
|
135
|
+
id: optionId(option.id),
|
|
136
|
+
role: "option",
|
|
137
|
+
"aria-selected": i === activeIndex,
|
|
138
|
+
type: "button",
|
|
139
|
+
tabIndex: -1,
|
|
140
|
+
onMouseDown: (e) => e.preventDefault(),
|
|
141
|
+
onClick: () => handleSelect(option.value),
|
|
142
|
+
className: cn(
|
|
143
|
+
"flex min-h-8 w-full cursor-pointer items-center rounded-md px-2.5 py-1.5 text-left text-mari-muted hover:bg-mari-surface-alt pointer-coarse:min-h-11",
|
|
144
|
+
i === activeIndex && "bg-mari-surface-alt text-mari-foreground"
|
|
145
|
+
),
|
|
146
|
+
children: /* @__PURE__ */ jsx("span", { className: "truncate", children: /* @__PURE__ */ jsx(HighlightedValue, { value: option.value, searchText }) })
|
|
147
|
+
}
|
|
148
|
+
) }, option.id)),
|
|
149
|
+
showNotFound && /* @__PURE__ */ jsx("li", { role: "presentation", className: "px-2.5 py-2 text-mari-muted", children: notFoundContent })
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
] });
|
|
154
|
+
}
|
|
155
|
+
export {
|
|
156
|
+
AutoComplete
|
|
157
|
+
};
|
|
158
|
+
//# sourceMappingURL=autocomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/autocomplete/AutoComplete.tsx"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useId, useRef, useState } from \"react\";\nimport { cn, useControllableState } from \"@mari-ui/core\";\nimport { Input } from \"../input\";\nimport { elevationClass } from \"../lib/elevationClass\";\nimport type { AutoCompleteProps } from \"./types\";\nimport { getFilteredOption, splitMatch } from \"./utils\";\n\nexport type { AutoCompleteProps };\n\nfunction HighlightedValue({ value, searchText }: Readonly<{ value: string; searchText: string }>) {\n const parts = splitMatch(value, searchText);\n if (!parts) return <>{value}</>;\n return (\n <>\n {parts[0]}\n <mark className=\"bg-transparent font-semibold text-mari-foreground\">{parts[1]}</mark>\n {parts[2]}\n </>\n );\n}\n\n/**\n * ARIA \"combobox\" deseni (Faz 13): `role=\"combobox\"`/`listbox`/`option` +\n * Ok tuşları/Enter/Escape.\n *\n * Faz 15: temizleme bir `<svg onClick>` idi — buton değildi, klavyeyle\n * erişilemiyordu ve alan boşken de görünüyordu → Input'un etiketli\n * `allowClear`'ı. Liste yükseklik sınırı yoktu (100 seçenek sayfayı uzatırdı);\n * klavyeyle gezinirken aktif seçenek görünür alana kaydırılır. Eşleşen kısım\n * kalın. Türkçe/aksansız arama (`foldForSearch`). `size`/`color`/`disabled`\n * artık geçirilebilir.\n */\nexport function AutoComplete({\n options,\n value,\n defaultValue = \"\",\n onSearch,\n onSelect,\n placeholder = \"Ara\",\n closeOnBlur = true,\n notFoundContent,\n size,\n color,\n disabled,\n id,\n name,\n \"aria-label\": ariaLabel,\n className,\n skeleton = false,\n}: Readonly<AutoCompleteProps>) {\n const [searchText, setSearchText] = useControllableState<string>({ value, defaultValue, onChange: onSearch });\n const [isFocused, setIsFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n const listboxId = useId();\n const listRef = useRef<HTMLUListElement>(null);\n\n const filteredOptions = getFilteredOption(options, searchText);\n const showNotFound = filteredOptions.length === 0 && notFoundContent !== undefined && searchText.trim() !== \"\";\n const isOpen = isFocused && (filteredOptions.length > 0 || showNotFound);\n const activeOption = activeIndex >= 0 ? filteredOptions[activeIndex] : undefined;\n const optionId = (optId: number) => `${listboxId}-option-${optId}`;\n\n useEffect(() => {\n if (!activeOption) return;\n document.getElementById(optionId(activeOption.id))?.scrollIntoView?.({ block: \"nearest\" });\n // eslint-disable-next-line react-hooks/exhaustive-deps -- yalnızca aktif seçenek değişince\n }, [activeOption?.id]);\n\n if (skeleton) return <Input skeleton size={size} className={className} />;\n\n const handleSelect = (optionValue: string) => {\n setSearchText(optionValue);\n onSelect?.(optionValue);\n setIsFocused(false);\n setActiveIndex(-1);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n setIsFocused(true);\n setActiveIndex((i) => Math.min(i + 1, filteredOptions.length - 1));\n } else if (e.key === \"ArrowUp\") {\n e.preventDefault();\n setActiveIndex((i) => Math.max(i - 1, 0));\n } else if (e.key === \"Enter\" && activeOption) {\n e.preventDefault();\n handleSelect(activeOption.value);\n } else if (e.key === \"Escape\") {\n setIsFocused(false);\n setActiveIndex(-1);\n }\n };\n\n return (\n <div className={cn(\"relative\", className)}>\n <Input\n id={id}\n name={name}\n value={searchText}\n placeholder={placeholder}\n size={size}\n color={color}\n disabled={disabled}\n allowClear\n onClear={() => {\n setSearchText(\"\");\n setActiveIndex(-1);\n }}\n onChange={(e) => {\n setSearchText(e.target.value);\n setActiveIndex(-1);\n }}\n onKeyDown={handleKeyDown}\n onFocus={() => setIsFocused(true)}\n onBlur={closeOnBlur ? () => setIsFocused(false) : undefined}\n role=\"combobox\"\n // `placeholder` bir accessible name SAYILMAZ — tüketici `aria-label`\n // vermediyse placeholder'dan türetilir.\n aria-label={ariaLabel ?? placeholder}\n aria-autocomplete=\"list\"\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-activedescendant={activeOption ? optionId(activeOption.id) : undefined}\n autoComplete=\"off\"\n />\n <ul\n ref={listRef}\n id={listboxId}\n role=\"listbox\"\n className={cn(\n \"absolute left-0 top-full z-mari-dropdown mt-1 max-h-64 w-full overflow-y-auto overscroll-contain rounded-lg bg-mari-surface p-1 text-sm transition-[opacity,translate] duration-150\",\n elevationClass.md,\n isOpen ? \"pointer-events-auto translate-y-0 opacity-100\" : \"pointer-events-none -translate-y-1 opacity-0\"\n )}\n >\n {filteredOptions.map((option, i) => (\n <li key={option.id} role=\"presentation\">\n <button\n id={optionId(option.id)}\n role=\"option\"\n aria-selected={i === activeIndex}\n type=\"button\"\n tabIndex={-1}\n // onMouseDown (blur'dan ÖNCE) — aksi halde Input'un onBlur'u\n // listeyi gizleyip tıklamayı iptal ederdi.\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => handleSelect(option.value)}\n className={cn(\n \"flex min-h-8 w-full cursor-pointer items-center rounded-md px-2.5 py-1.5 text-left text-mari-muted hover:bg-mari-surface-alt pointer-coarse:min-h-11\",\n i === activeIndex && \"bg-mari-surface-alt text-mari-foreground\"\n )}\n >\n <span className=\"truncate\">\n <HighlightedValue value={option.value} searchText={searchText} />\n </span>\n </button>\n </li>\n ))}\n {showNotFound && (\n <li role=\"presentation\" className=\"px-2.5 py-2 text-mari-muted\">\n {notFoundContent}\n </li>\n )}\n </ul>\n </div>\n );\n}\n"],"mappings":"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","names":[]}
|