@g4rcez/components 5.0.1 → 5.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AnimatePresence-j36AYeOQ.js +181 -0
- package/dist/AnimatePresence-j36AYeOQ.js.map +1 -0
- package/dist/Calendar.es-xICmgvjq.js +23 -0
- package/dist/Calendar.es-xICmgvjq.js.map +1 -0
- package/dist/Funnel.es-DjKVl8Nj.js +23 -0
- package/dist/Funnel.es-DjKVl8Nj.js.map +1 -0
- package/dist/{MotionConfig-DKKYqBH2.js → MotionConfig-CXHoPGbK.js} +2 -2
- package/dist/{MotionConfig-DKKYqBH2.js.map → MotionConfig-CXHoPGbK.js.map} +1 -1
- package/dist/Plus.es-DbyRkEE2.js +23 -0
- package/dist/Plus.es-DbyRkEE2.js.map +1 -0
- package/dist/Trash.es-BFAc8PMf.js +23 -0
- package/dist/Trash.es-BFAc8PMf.js.map +1 -0
- package/dist/{calendar-PCCZDUIL.js → calendar-DEPkz8sw.js} +364 -502
- package/dist/calendar-DEPkz8sw.js.map +1 -0
- package/dist/calendar-header-Dfr-CwkY.js +174 -0
- package/dist/calendar-header-Dfr-CwkY.js.map +1 -0
- package/dist/chunk-jwUa06l-.js +23 -0
- package/dist/components/core/button.d.ts +77 -0
- package/dist/components/core/button.d.ts.map +1 -0
- package/dist/components/core/button.js +1 -1
- package/dist/components/core/button.jsx +79 -0
- package/dist/components/core/heading.d.ts +3 -0
- package/dist/components/core/heading.d.ts.map +1 -0
- package/dist/components/core/heading.js +11 -0
- package/dist/components/core/heading.js.map +1 -0
- package/dist/components/core/heading.jsx +4 -0
- package/dist/components/core/polymorph.d.ts +10 -0
- package/dist/components/core/polymorph.d.ts.map +1 -0
- package/dist/{polymorph-BLXhrn9n.js → components/core/polymorph.js} +2 -2
- package/dist/components/core/polymorph.js.map +1 -0
- package/dist/components/core/polymorph.jsx +5 -0
- package/dist/components/core/render-on-view.d.ts +7 -0
- package/dist/components/core/render-on-view.d.ts.map +1 -0
- package/dist/components/core/render-on-view.js +29 -0
- package/dist/components/core/render-on-view.js.map +1 -0
- package/dist/components/core/render-on-view.jsx +31 -0
- package/dist/components/core/resizable.d.ts +9 -0
- package/dist/components/core/resizable.d.ts.map +1 -0
- package/dist/components/core/resizable.js +60 -0
- package/dist/components/core/resizable.js.map +1 -0
- package/dist/components/core/resizable.jsx +57 -0
- package/dist/components/core/slot.d.ts +16 -0
- package/dist/components/core/slot.d.ts.map +1 -0
- package/dist/{slot-pC8kH9De.js → components/core/slot.js} +2 -2
- package/dist/components/core/slot.js.map +1 -0
- package/dist/components/core/slot.jsx +156 -0
- package/dist/components/core/tag.d.ts +35 -0
- package/dist/components/core/tag.d.ts.map +1 -0
- package/dist/components/core/tag.js +1 -1
- package/dist/components/core/tag.jsx +53 -0
- package/dist/components/core/typography.d.ts +25 -0
- package/dist/components/core/typography.d.ts.map +1 -0
- package/dist/components/core/typography.js +40 -0
- package/dist/components/core/typography.js.map +1 -0
- package/dist/components/core/typography.jsx +20 -0
- package/dist/components/display/alert.d.ts +28 -0
- package/dist/components/display/alert.d.ts.map +1 -0
- package/dist/components/display/alert.js +83 -102
- package/dist/components/display/alert.js.map +1 -1
- package/dist/components/display/alert.jsx +58 -0
- package/dist/components/display/calendar.d.ts +42 -0
- package/dist/components/display/calendar.d.ts.map +1 -0
- package/dist/components/display/calendar.js +1 -1
- package/dist/components/display/calendar.jsx +323 -0
- package/dist/components/display/card.d.ts +29 -0
- package/dist/components/display/card.d.ts.map +1 -0
- package/dist/components/display/card.js +2 -2
- package/dist/components/display/card.jsx +43 -0
- package/dist/components/display/empty.d.ts +8 -0
- package/dist/components/display/empty.d.ts.map +1 -0
- package/dist/components/display/empty.js +25 -0
- package/dist/components/display/empty.js.map +1 -0
- package/dist/components/display/empty.jsx +13 -0
- package/dist/components/display/list.d.ts +16 -0
- package/dist/components/display/list.d.ts.map +1 -0
- package/dist/components/display/list.js +132 -122
- package/dist/components/display/list.js.map +1 -1
- package/dist/components/display/list.jsx +90 -0
- package/dist/components/display/notifications.d.ts +27 -0
- package/dist/components/display/notifications.d.ts.map +1 -0
- package/dist/components/display/notifications.js +1 -1
- package/dist/components/display/notifications.jsx +132 -0
- package/dist/components/display/progress.d.ts +16 -0
- package/dist/components/display/progress.d.ts.map +1 -0
- package/dist/components/display/progress.js +3 -0
- package/dist/components/display/progress.jsx +19 -0
- package/dist/components/display/shortcut.d.ts +4 -0
- package/dist/components/display/shortcut.d.ts.map +1 -0
- package/dist/components/display/shortcut.js +2 -0
- package/dist/components/display/shortcut.jsx +23 -0
- package/dist/components/display/skeleton.d.ts +12 -0
- package/dist/components/display/skeleton.d.ts.map +1 -0
- package/dist/components/display/skeleton.js +41 -0
- package/dist/components/display/skeleton.js.map +1 -0
- package/dist/components/display/skeleton.jsx +19 -0
- package/dist/components/display/spinner.d.ts +5 -0
- package/dist/components/display/spinner.d.ts.map +1 -0
- package/dist/components/display/spinner.js +17 -0
- package/dist/components/display/spinner.js.map +1 -0
- package/dist/components/display/spinner.jsx +11 -0
- package/dist/components/display/stats.d.ts +12 -0
- package/dist/components/display/stats.d.ts.map +1 -0
- package/dist/components/display/stats.jsx +16 -0
- package/dist/components/display/step.d.ts +24 -0
- package/dist/components/display/step.d.ts.map +1 -0
- package/dist/components/display/step.js +3 -0
- package/dist/components/display/step.jsx +145 -0
- package/dist/components/display/tabs.d.ts +24 -0
- package/dist/components/display/tabs.d.ts.map +1 -0
- package/dist/components/display/tabs.js +1 -1
- package/dist/components/display/tabs.jsx +125 -0
- package/dist/components/display/timeline.d.ts +10 -0
- package/dist/components/display/timeline.d.ts.map +1 -0
- package/dist/components/display/timeline.js +1 -1
- package/dist/components/display/timeline.jsx +25 -0
- package/dist/components/floating/command-palette.d.ts +49 -0
- package/dist/components/floating/command-palette.d.ts.map +1 -0
- package/dist/components/floating/command-palette.js +255 -0
- package/dist/components/floating/command-palette.js.map +1 -0
- package/dist/components/floating/command-palette.jsx +232 -0
- package/dist/components/floating/dropdown.d.ts +15 -0
- package/dist/components/floating/dropdown.d.ts.map +1 -0
- package/dist/components/floating/dropdown.js +1 -1
- package/dist/components/floating/dropdown.js.map +1 -1
- package/dist/components/floating/dropdown.jsx +56 -0
- package/dist/components/floating/expand.d.ts +11 -0
- package/dist/components/floating/expand.d.ts.map +1 -0
- package/dist/components/floating/expand.js +15 -14
- package/dist/components/floating/expand.js.map +1 -1
- package/dist/components/floating/expand.jsx +44 -0
- package/dist/components/floating/menu.d.ts +52 -0
- package/dist/components/floating/menu.d.ts.map +1 -0
- package/dist/components/floating/menu.js +1 -1
- package/dist/components/floating/menu.jsx +165 -0
- package/dist/components/floating/modal.d.ts +63 -0
- package/dist/components/floating/modal.d.ts.map +1 -0
- package/dist/components/floating/modal.js +1 -1
- package/dist/components/floating/modal.jsx +375 -0
- package/dist/components/floating/toolbar.d.ts +6 -0
- package/dist/components/floating/toolbar.d.ts.map +1 -0
- package/dist/components/floating/toolbar.js +20 -0
- package/dist/components/floating/toolbar.js.map +1 -0
- package/dist/components/floating/toolbar.jsx +9 -0
- package/dist/components/floating/tooltip.d.ts +17 -0
- package/dist/components/floating/tooltip.d.ts.map +1 -0
- package/dist/components/floating/tooltip.js +2 -2
- package/dist/components/floating/tooltip.js.map +1 -1
- package/dist/components/floating/tooltip.jsx +67 -0
- package/dist/components/floating/wizard.d.ts +26 -0
- package/dist/components/floating/wizard.d.ts.map +1 -0
- package/dist/components/floating/wizard.js +3 -0
- package/dist/components/floating/wizard.jsx +165 -0
- package/dist/components/form/autocomplete.d.ts +16 -0
- package/dist/components/form/autocomplete.d.ts.map +1 -0
- package/dist/components/form/autocomplete.js +344 -2
- package/dist/components/form/autocomplete.js.map +1 -0
- package/dist/components/form/autocomplete.jsx +299 -0
- package/dist/components/form/checkbox.d.ts +12 -0
- package/dist/components/form/checkbox.d.ts.map +1 -0
- package/dist/components/form/checkbox.js +29 -27
- package/dist/components/form/checkbox.js.map +1 -1
- package/dist/components/form/checkbox.jsx +27 -0
- package/dist/components/form/date-picker.d.ts +10 -0
- package/dist/components/form/date-picker.d.ts.map +1 -0
- package/dist/components/form/date-picker.js +1 -1
- package/dist/components/form/date-picker.jsx +115 -0
- package/dist/components/form/file-upload.d.ts +20 -0
- package/dist/components/form/file-upload.d.ts.map +1 -0
- package/dist/components/form/file-upload.js +1 -1
- package/dist/components/form/file-upload.jsx +160 -0
- package/dist/components/form/form.d.ts +3 -0
- package/dist/components/form/form.d.ts.map +1 -0
- package/dist/components/form/form.jsx +10 -0
- package/dist/components/form/formReset.d.ts +2 -0
- package/dist/components/form/formReset.d.ts.map +1 -0
- package/dist/components/form/formReset.js +10 -0
- package/dist/components/form/formReset.js.map +1 -0
- package/dist/components/form/formReset.jsx +17 -0
- package/dist/components/form/free-text.d.ts +11 -0
- package/dist/components/form/free-text.d.ts.map +1 -0
- package/dist/components/form/free-text.js +70 -0
- package/dist/components/form/free-text.js.map +1 -0
- package/dist/components/form/free-text.jsx +41 -0
- package/dist/components/form/input-field.d.ts +34 -0
- package/dist/components/form/input-field.d.ts.map +1 -0
- package/dist/components/form/input-field.js +3 -0
- package/dist/components/form/input-field.jsx +64 -0
- package/dist/components/form/input.d.ts +52 -0
- package/dist/components/form/input.d.ts.map +1 -0
- package/dist/components/form/input.js +1 -1
- package/dist/components/form/input.jsx +36 -0
- package/dist/components/form/multi-select.d.ts +19 -0
- package/dist/components/form/multi-select.d.ts.map +1 -0
- package/dist/components/form/multi-select.js +420 -0
- package/dist/components/form/multi-select.js.map +1 -0
- package/dist/components/form/multi-select.jsx +352 -0
- package/dist/components/form/radiobox.d.ts +7 -0
- package/dist/components/form/radiobox.d.ts.map +1 -0
- package/dist/components/form/radiobox.jsx +6 -0
- package/dist/components/form/select.d.ts +13 -0
- package/dist/components/form/select.d.ts.map +1 -0
- package/dist/components/form/select.js +55 -51
- package/dist/components/form/select.js.map +1 -1
- package/dist/components/form/select.jsx +47 -0
- package/dist/components/form/slider.d.ts +7 -0
- package/dist/components/form/slider.d.ts.map +1 -0
- package/dist/components/form/slider.js +3 -0
- package/dist/components/form/slider.jsx +45 -0
- package/dist/components/form/switch.d.ts +10 -0
- package/dist/components/form/switch.d.ts.map +1 -0
- package/dist/components/form/switch.js +32 -26
- package/dist/components/form/switch.js.map +1 -1
- package/dist/components/form/switch.jsx +59 -0
- package/dist/components/form/task-list.d.ts +3 -0
- package/dist/components/form/task-list.d.ts.map +1 -0
- package/dist/components/form/task-list.jsx +26 -0
- package/dist/components/form/textarea.d.ts +5 -0
- package/dist/components/form/textarea.d.ts.map +1 -0
- package/dist/components/form/textarea.js +19 -0
- package/dist/components/form/textarea.js.map +1 -0
- package/dist/components/form/textarea.jsx +26 -0
- package/dist/components/index.d.ts +45 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +44 -0
- package/dist/components/page-calendar/calendar-header.d.ts +16 -0
- package/dist/components/page-calendar/calendar-header.d.ts.map +1 -0
- package/dist/components/page-calendar/calendar-header.js +2 -0
- package/dist/components/page-calendar/calendar-header.jsx +85 -0
- package/dist/components/page-calendar/day-view.d.ts +12 -0
- package/dist/components/page-calendar/day-view.d.ts.map +1 -0
- package/dist/components/page-calendar/day-view.js +124 -0
- package/dist/components/page-calendar/day-view.js.map +1 -0
- package/dist/components/page-calendar/day-view.jsx +89 -0
- package/dist/components/page-calendar/event-pill.d.ts +9 -0
- package/dist/components/page-calendar/event-pill.d.ts.map +1 -0
- package/dist/components/page-calendar/event-pill.js +44 -0
- package/dist/components/page-calendar/event-pill.js.map +1 -0
- package/dist/components/page-calendar/event-pill.jsx +25 -0
- package/dist/components/page-calendar/index.d.ts +4 -0
- package/dist/components/page-calendar/index.d.ts.map +1 -0
- package/dist/components/page-calendar/index.js +2 -0
- package/dist/components/page-calendar/month-view.d.ts +11 -0
- package/dist/components/page-calendar/month-view.d.ts.map +1 -0
- package/dist/components/page-calendar/month-view.js +109 -0
- package/dist/components/page-calendar/month-view.js.map +1 -0
- package/dist/components/page-calendar/month-view.jsx +93 -0
- package/dist/components/page-calendar/page-calendar.d.ts +18 -0
- package/dist/components/page-calendar/page-calendar.d.ts.map +1 -0
- package/dist/components/page-calendar/page-calendar.js +75 -0
- package/dist/components/page-calendar/page-calendar.js.map +1 -0
- package/dist/components/page-calendar/page-calendar.jsx +41 -0
- package/dist/components/page-calendar/page-calendar.types.d.ts +18 -0
- package/dist/components/page-calendar/page-calendar.types.d.ts.map +1 -0
- package/dist/components/page-calendar/page-calendar.types.js +1 -0
- package/dist/components/page-calendar/page-calendar.utils.d.ts +24 -0
- package/dist/components/page-calendar/page-calendar.utils.d.ts.map +1 -0
- package/dist/components/page-calendar/page-calendar.utils.js +93 -0
- package/dist/components/page-calendar/week-view.d.ts +11 -0
- package/dist/components/page-calendar/week-view.d.ts.map +1 -0
- package/dist/components/page-calendar/week-view.js +88 -0
- package/dist/components/page-calendar/week-view.js.map +1 -0
- package/dist/components/page-calendar/week-view.jsx +66 -0
- package/dist/components/table/filter.d.ts +42 -0
- package/dist/components/table/filter.d.ts.map +1 -0
- package/dist/components/table/filter.js +239 -0
- package/dist/components/table/filter.js.map +1 -0
- package/dist/components/table/filter.jsx +174 -0
- package/dist/components/table/group.d.ts +17 -0
- package/dist/components/table/group.d.ts.map +1 -0
- package/dist/components/table/group.js +3 -0
- package/dist/components/table/group.jsx +77 -0
- package/dist/components/table/index.d.ts +19 -0
- package/dist/components/table/index.d.ts.map +1 -0
- package/dist/components/table/index.js +102 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/index.jsx +63 -0
- package/dist/components/table/inner-table.d.ts +29 -0
- package/dist/components/table/inner-table.d.ts.map +1 -0
- package/dist/components/table/inner-table.js +2 -0
- package/dist/components/table/inner-table.jsx +102 -0
- package/dist/components/table/metadata.d.ts +4 -0
- package/dist/components/table/metadata.d.ts.map +1 -0
- package/dist/components/table/metadata.js +73 -0
- package/dist/components/table/metadata.js.map +1 -0
- package/dist/components/table/metadata.jsx +36 -0
- package/dist/components/table/pagination.d.ts +5 -0
- package/dist/components/table/pagination.d.ts.map +1 -0
- package/dist/components/table/pagination.js +70 -0
- package/dist/components/table/pagination.js.map +1 -0
- package/dist/components/table/pagination.jsx +74 -0
- package/dist/components/table/row.d.ts +11 -0
- package/dist/components/table/row.d.ts.map +1 -0
- package/dist/components/table/row.js +58 -0
- package/dist/components/table/row.js.map +1 -0
- package/dist/components/table/row.jsx +49 -0
- package/dist/components/table/sort.d.ts +28 -0
- package/dist/components/table/sort.d.ts.map +1 -0
- package/dist/components/table/sort.js +3 -0
- package/dist/components/table/sort.jsx +111 -0
- package/dist/components/table/table-lib.d.ts +135 -0
- package/dist/components/table/table-lib.d.ts.map +1 -0
- package/dist/components/table/table-lib.js +83 -0
- package/dist/components/table/table.context.d.ts +10 -0
- package/dist/components/table/table.context.d.ts.map +1 -0
- package/dist/components/table/table.context.jsx +5 -0
- package/dist/components/table/thead.d.ts +9 -0
- package/dist/components/table/thead.d.ts.map +1 -0
- package/dist/components/table/thead.js +3 -0
- package/dist/components/table/thead.jsx +103 -0
- package/dist/config/context.d.ts +21 -0
- package/dist/config/context.d.ts.map +1 -0
- package/dist/config/context.js +12 -0
- package/dist/config/default-translations.d.ts +112 -0
- package/dist/config/default-translations.d.ts.map +1 -0
- package/dist/config/default-translations.jsx +105 -0
- package/dist/config/default-tweaks.d.ts +13 -0
- package/dist/config/default-tweaks.d.ts.map +1 -0
- package/dist/config/default-tweaks.js +4 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +2 -0
- package/dist/{use-translations-DTLfPE3_.js → context-CsnUsfeP.js} +55 -40
- package/dist/context-CsnUsfeP.js.map +1 -0
- package/dist/{date-picker-BhKEFZew.js → date-picker-DNzupG8R.js} +301 -317
- package/dist/date-picker-DNzupG8R.js.map +1 -0
- package/dist/dict-CisoYSMO.js +28 -0
- package/dist/dict-CisoYSMO.js.map +1 -0
- package/dist/dist-ChfJ5LO9.js +498 -0
- package/dist/dist-ChfJ5LO9.js.map +1 -0
- package/dist/{dist-BrGpYRaj.js → dist-DIjUECx9.js} +56 -56
- package/dist/{dist-BrGpYRaj.js.map → dist-DIjUECx9.js.map} +1 -1
- package/dist/dom-Bn4wY_Zx.js.map +1 -1
- package/dist/{file-upload-DWbZfeG5.js → file-upload-C2zNnv9n.js} +501 -481
- package/dist/{file-upload-DWbZfeG5.js.map → file-upload-C2zNnv9n.js.map} +1 -1
- package/dist/fzf-CPGDDCoU.js +64 -0
- package/dist/fzf-CPGDDCoU.js.map +1 -0
- package/dist/getISOWeek-EcB4Ebqp.js +72 -0
- package/dist/getISOWeek-EcB4Ebqp.js.map +1 -0
- package/dist/group-Dl14TJXO.js +222 -0
- package/dist/group-Dl14TJXO.js.map +1 -0
- package/dist/hooks/use-click-outside.d.ts +3 -0
- package/dist/hooks/use-click-outside.d.ts.map +1 -0
- package/dist/hooks/use-click-outside.js +17 -0
- package/dist/hooks/use-color-parser.d.ts +2 -0
- package/dist/hooks/use-color-parser.d.ts.map +1 -0
- package/dist/hooks/use-color-parser.js +9 -0
- package/dist/hooks/use-components-provider.d.ts +15 -0
- package/dist/hooks/use-components-provider.d.ts.map +1 -0
- package/dist/hooks/use-components-provider.jsx +22 -0
- package/dist/hooks/use-debounce.d.ts +5 -0
- package/dist/hooks/use-debounce.d.ts.map +1 -0
- package/dist/hooks/use-debounce.js +12 -0
- package/dist/hooks/use-floating-ref.d.ts +2 -0
- package/dist/hooks/use-floating-ref.d.ts.map +1 -0
- package/dist/hooks/use-floating-ref.js +6 -0
- package/dist/hooks/use-form.d.ts +394 -0
- package/dist/hooks/use-form.d.ts.map +1 -0
- package/dist/hooks/use-form.js +563 -0
- package/dist/hooks/use-hover.d.ts +3 -0
- package/dist/hooks/use-hover.d.ts.map +1 -0
- package/dist/hooks/use-hover.js +18 -0
- package/dist/hooks/use-input-id.d.ts +4 -0
- package/dist/hooks/use-input-id.d.ts.map +1 -0
- package/dist/hooks/use-input-id.js +5 -0
- package/dist/hooks/use-is-coarse-device.d.ts +2 -0
- package/dist/hooks/use-is-coarse-device.d.ts.map +1 -0
- package/dist/hooks/use-is-coarse-device.js +12 -0
- package/dist/hooks/use-locale.d.ts +3 -0
- package/dist/hooks/use-locale.d.ts.map +1 -0
- package/dist/hooks/use-locale.js +10 -0
- package/dist/hooks/use-media-query.d.ts +2 -0
- package/dist/hooks/use-media-query.d.ts.map +1 -0
- package/dist/hooks/use-media-query.js +25 -0
- package/dist/hooks/use-on-event.d.ts +4 -0
- package/dist/hooks/use-on-event.d.ts.map +1 -0
- package/dist/hooks/use-on-event.js +10 -0
- package/dist/hooks/use-parent.d.ts +3 -0
- package/dist/hooks/use-parent.d.ts.map +1 -0
- package/dist/hooks/use-parent.js +21 -0
- package/dist/hooks/use-preferences.d.ts +2 -0
- package/dist/hooks/use-preferences.d.ts.map +1 -0
- package/dist/hooks/use-preferences.js +23 -0
- package/dist/hooks/use-previous.d.ts +2 -0
- package/dist/hooks/use-previous.d.ts.map +1 -0
- package/dist/hooks/use-previous.js +9 -0
- package/dist/hooks/use-reactive.d.ts +2 -0
- package/dist/hooks/use-reactive.d.ts.map +1 -0
- package/dist/hooks/use-reactive.js +9 -0
- package/dist/hooks/use-remove-scroll.d.ts +4 -0
- package/dist/hooks/use-remove-scroll.d.ts.map +1 -0
- package/dist/hooks/use-remove-scroll.js +48 -0
- package/dist/hooks/use-resize-observer.d.ts +2 -0
- package/dist/hooks/use-resize-observer.d.ts.map +1 -0
- package/dist/hooks/use-resize-observer.js +17 -0
- package/dist/hooks/use-stable-ref.d.ts +2 -0
- package/dist/hooks/use-stable-ref.d.ts.map +1 -0
- package/dist/hooks/use-stable-ref.js +9 -0
- package/dist/hooks/use-swipe.d.ts +8 -0
- package/dist/hooks/use-swipe.d.ts.map +1 -0
- package/dist/hooks/use-swipe.js +17 -0
- package/dist/hooks/use-translations.d.ts +110 -0
- package/dist/hooks/use-translations.d.ts.map +1 -0
- package/dist/hooks/use-translations.js +9 -0
- package/dist/hooks/use-tweaks.d.ts +3 -0
- package/dist/hooks/use-tweaks.d.ts.map +1 -0
- package/dist/hooks/use-tweaks.js +9 -0
- package/dist/hooks/use-window-size.d.ts +5 -0
- package/dist/hooks/use-window-size.d.ts.map +1 -0
- package/dist/hooks/use-window-size.js +14 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -7932
- package/dist/index.js.map +1 -1
- package/dist/inner-table-CeDX60cL.js +151 -0
- package/dist/inner-table-CeDX60cL.js.map +1 -0
- package/dist/input-Cmyuea4Y.js +412 -0
- package/dist/input-Cmyuea4Y.js.map +1 -0
- package/dist/{input-field-B_whI66Q.js → input-field-ffx1MbHo.js} +29 -16
- package/dist/input-field-ffx1MbHo.js.map +1 -0
- package/dist/isSameMonth-C3lsSwcg.js +10 -0
- package/dist/isSameMonth-C3lsSwcg.js.map +1 -0
- package/dist/isToday-COXfxFui.js +32 -0
- package/dist/isToday-COXfxFui.js.map +1 -0
- package/dist/lib/combi-keys.d.ts +15 -0
- package/dist/lib/combi-keys.d.ts.map +1 -0
- package/dist/lib/combi-keys.js +60 -0
- package/dist/lib/dict.d.ts +9 -0
- package/dist/lib/dict.d.ts.map +1 -0
- package/dist/lib/dict.js +28 -0
- package/dist/lib/dom.d.ts +20 -0
- package/dist/lib/dom.d.ts.map +1 -0
- package/dist/lib/dom.js +185 -0
- package/dist/lib/fns.d.ts +11 -0
- package/dist/lib/fns.d.ts.map +1 -0
- package/dist/lib/fns.js +46 -0
- package/dist/lib/fzf.d.ts +16 -0
- package/dist/lib/fzf.d.ts.map +1 -0
- package/dist/lib/fzf.js +115 -0
- package/dist/lib/keyboard-area.d.ts +16 -0
- package/dist/lib/keyboard-area.d.ts.map +1 -0
- package/dist/lib/keyboard-area.js +14 -0
- package/dist/modal-Df8-6i-o.js +408 -0
- package/dist/modal-Df8-6i-o.js.map +1 -0
- package/dist/notifications-NhCESJUV.js +1697 -0
- package/dist/notifications-NhCESJUV.js.map +1 -0
- package/dist/page-calendar.utils-Bd0PHktL.js +102 -0
- package/dist/page-calendar.utils-Bd0PHktL.js.map +1 -0
- package/dist/preset/preset.tailwind.d.ts.map +1 -1
- package/dist/preset/preset.tailwind.js +6 -7
- package/dist/preset/src/styles/dark.js +1 -1
- package/dist/progress-8LO5gWLp.js +104 -0
- package/dist/progress-8LO5gWLp.js.map +1 -0
- package/dist/{proxy-BcJ_5Dwq.js → proxy-fP2NxmhM.js} +658 -844
- package/dist/proxy-fP2NxmhM.js.map +1 -0
- package/dist/shim-Czv-YhKR.js +93 -0
- package/dist/shim-Czv-YhKR.js.map +1 -0
- package/dist/shortcut-CQCmgmlU.js +100 -0
- package/dist/shortcut-CQCmgmlU.js.map +1 -0
- package/dist/slider-TX9hiHO-.js +1196 -0
- package/dist/slider-TX9hiHO-.js.map +1 -0
- package/dist/sort-DGmiselV.js +195 -0
- package/dist/sort-DGmiselV.js.map +1 -0
- package/dist/step-DFpJ7zCG.js +185 -0
- package/dist/step-DFpJ7zCG.js.map +1 -0
- package/dist/styles/dark.js +1 -1
- package/dist/subMonths-QcCnE3Yh.js +43 -0
- package/dist/subMonths-QcCnE3Yh.js.map +1 -0
- package/dist/table-lib-1bkYSklk.js +174 -0
- package/dist/table-lib-1bkYSklk.js.map +1 -0
- package/dist/{tabs-Ciy0l9OF.js → tabs-Brc963EW.js} +2 -2
- package/dist/{tabs-Ciy0l9OF.js.map → tabs-Brc963EW.js.map} +1 -1
- package/dist/thead-B6WELJZ-.js +211 -0
- package/dist/thead-B6WELJZ-.js.map +1 -0
- package/dist/types.d.ts +26 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/dist/use-locale-DPM_sg4s.js +12 -0
- package/dist/use-locale-DPM_sg4s.js.map +1 -0
- package/dist/use-remove-scroll-pAgC09Sq.js +38 -0
- package/dist/use-remove-scroll-pAgC09Sq.js.map +1 -0
- package/dist/use-translations-BE4PuhLm.js +11 -0
- package/dist/use-translations-BE4PuhLm.js.map +1 -0
- package/dist/useAnimationFrame-DnKbaXfi.js +223 -0
- package/dist/useAnimationFrame-DnKbaXfi.js.map +1 -0
- package/dist/valueToPercent-DZc_m1tm.js +43 -0
- package/dist/valueToPercent-DZc_m1tm.js.map +1 -0
- package/dist/visuallyHidden-B7wI86yi.js +303 -0
- package/dist/visuallyHidden-B7wI86yi.js.map +1 -0
- package/dist/with-selector-BFW5n-pb.js +102 -0
- package/dist/with-selector-BFW5n-pb.js.map +1 -0
- package/dist/wizard-7u_qZ-78.js +218 -0
- package/dist/wizard-7u_qZ-78.js.map +1 -0
- package/package.json +19 -11
- package/dist/autocomplete-D3VOTihi.js +0 -415
- package/dist/autocomplete-D3VOTihi.js.map +0 -1
- package/dist/calendar-PCCZDUIL.js.map +0 -1
- package/dist/components/table/table.js +0 -3
- package/dist/date-picker-BhKEFZew.js.map +0 -1
- package/dist/input-B7jqwPG4.js +0 -473
- package/dist/input-B7jqwPG4.js.map +0 -1
- package/dist/input-field-B_whI66Q.js.map +0 -1
- package/dist/modal-Bz-61ays.js +0 -373
- package/dist/modal-Bz-61ays.js.map +0 -1
- package/dist/notifications-MT4XkLov.js +0 -2203
- package/dist/notifications-MT4XkLov.js.map +0 -1
- package/dist/polymorph-BLXhrn9n.js.map +0 -1
- package/dist/proxy-BcJ_5Dwq.js.map +0 -1
- package/dist/skeleton-CBYEq3lM.js +0 -26
- package/dist/skeleton-CBYEq3lM.js.map +0 -1
- package/dist/slot-pC8kH9De.js.map +0 -1
- package/dist/table-CUFbAI2k.js +0 -1914
- package/dist/table-CUFbAI2k.js.map +0 -1
- package/dist/use-translations-DTLfPE3_.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-TX9hiHO-.js","names":["React","React","useId","React","React","React","_formatErrorMessage","React","React","React","React","_formatErrorMessage","REASONS.keyboard","REASONS.inputChange","React","React","React","ownerWindow","REASONS.drag","REASONS.trackPress","React","React","React","React","ownerWindow"],"sources":["../../../node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/utils/esm/useControlled.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/useValueChanged.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/useBaseUiId.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/areArraysEqual.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/list/CompositeListContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/list/CompositeList.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/field/control/FieldControlDataAttributes.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/field-constants/constants.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/field-root-context/FieldRootContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/field-register-control/useRegisterFieldControl.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/form-context/FormContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/labelable-provider/LabelableContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/utils/resolveAriaLabelledBy.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/asc.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/replaceArrayItemAtIndex.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/getSliderValue.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/validateMinimumDistance.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/root/stateAttributesMapping.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/root/SliderRootContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/root/SliderRoot.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/direction-context/DirectionContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/getMidpoint.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/roundValueToStep.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/getPushedThumbValues.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/utils/resolveThumbCollision.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/control/SliderControl.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/track/SliderTrack.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/utils/useIsHydrating.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/composite.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/composite/list/useCompositeListItem.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/csp-context/CSPContext.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/internals/labelable-provider/useLabelableId.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/thumb/SliderThumbDataAttributes.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/thumb/prehydrationScript.min.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/thumb/SliderThumb.js","../../../node_modules/.pnpm/@base-ui+react@1.5.0_@types+react@19.2.14_date-fns@4.3.0_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@base-ui/react/esm/slider/indicator/SliderIndicator.js","../src/components/form/slider.tsx"],"sourcesContent":["'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nimport { error } from \"./error.js\";\nexport function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n error([`A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && serializeToDevModeString(defaultValue) !== serializeToDevModeString(defaultProp)) {\n error([`A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [defaultProp]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}\nfunction serializeToDevModeString(input) {\n let nextId = 0;\n const seen = new WeakMap();\n try {\n const result = JSON.stringify(input, function replacer(key, value) {\n if (key === '_owner' && this != null && typeof this === 'object' && '$$typeof' in this) {\n return undefined;\n }\n if (typeof value === 'bigint') {\n return `__bigint__:${value}`;\n }\n if (value !== null && typeof value === 'object') {\n const id = seen.get(value);\n if (id !== undefined) {\n return `__object__:${id}`;\n }\n seen.set(value, nextId);\n nextId += 1;\n }\n return value;\n });\n return result ?? `__top__:${typeof input}`;\n } catch {\n return '__unserializable__';\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nexport function useValueChanged(value, onChange) {\n const valueRef = React.useRef(value);\n const onChangeCallback = useStableCallback(onChange);\n useIsoLayoutEffect(() => {\n if (valueRef.current === value) {\n return;\n }\n onChangeCallback(valueRef.current);\n }, [value, onChangeCallback]);\n useIsoLayoutEffect(() => {\n valueRef.current = value;\n }, [value]);\n}","'use client';\n\nimport { useId } from '@base-ui/utils/useId';\n\n/**\n * Wraps `useId` and prefixes generated `id`s with `base-ui-`\n * @param {string | undefined} idOverride overrides the generated id when provided\n * @returns {string | undefined}\n */\nexport function useBaseUiId(idOverride) {\n return useId(idOverride, 'base-ui');\n}","export function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {\n return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));\n}","'use client';\n\nimport * as React from 'react';\nexport const CompositeListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n subscribeMapChange: () => {\n return () => {};\n },\n elementsRef: {\n current: []\n },\n nextIndexRef: {\n current: 0\n }\n});\nif (process.env.NODE_ENV !== \"production\") CompositeListContext.displayName = \"CompositeListContext\";\nexport function useCompositeListContext() {\n return React.useContext(CompositeListContext);\n}","/* eslint-disable no-bitwise */\n'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { CompositeListContext } from \"./CompositeListContext.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Provides context for a list of items in a composite component.\n * @internal\n */\nexport function CompositeList(props) {\n const {\n children,\n elementsRef,\n labelsRef,\n onMapChange: onMapChangeProp\n } = props;\n const onMapChange = useStableCallback(onMapChangeProp);\n const nextIndexRef = React.useRef(0);\n const listeners = useRefWithInit(createListeners).current;\n\n // We use a stable `map` to avoid O(n^2) re-allocation costs for large lists.\n // `mapTick` is our re-render trigger mechanism. We also need to update the\n // elements and label refs, but there's a lot of async work going on and sometimes\n // the effect that handles `onMapChange` gets called after those refs have been\n // filled, and we don't want to lose those values by setting their lengths to `0`.\n // We also need to have them at the proper length because floating-ui uses that\n // information for list navigation.\n\n const map = useRefWithInit(createMap).current;\n // `mapTick` uses a counter rather than objects for low precision-loss risk and better memory efficiency\n const [mapTick, setMapTick] = React.useState(0);\n const lastTickRef = React.useRef(mapTick);\n const register = useStableCallback((node, metadata) => {\n map.set(node, metadata ?? null);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const unregister = useStableCallback(node => {\n map.delete(node);\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n });\n const sortedMap = React.useMemo(() => {\n // `mapTick` is the `useMemo` trigger as `map` is stable.\n disableEslintWarning(mapTick);\n const newMap = new Map();\n // Filter out disconnected elements before sorting to avoid inconsistent\n // compareDocumentPosition results when elements are detached from the DOM.\n const sortedNodes = Array.from(map.keys()).filter(node => node.isConnected).sort(sortByDocumentPosition);\n sortedNodes.forEach((node, index) => {\n const metadata = map.get(node) ?? {};\n newMap.set(node, {\n ...metadata,\n index\n });\n });\n return newMap;\n }, [map, mapTick]);\n useIsoLayoutEffect(() => {\n if (typeof MutationObserver !== 'function' || sortedMap.size === 0) {\n return undefined;\n }\n const mutationObserver = new MutationObserver(entries => {\n const diff = new Set();\n const updateDiff = node => diff.has(node) ? diff.delete(node) : diff.add(node);\n entries.forEach(entry => {\n entry.removedNodes.forEach(updateDiff);\n entry.addedNodes.forEach(updateDiff);\n });\n if (diff.size === 0) {\n lastTickRef.current += 1;\n setMapTick(lastTickRef.current);\n }\n });\n sortedMap.forEach((_, node) => {\n if (node.parentElement) {\n mutationObserver.observe(node.parentElement, {\n childList: true\n });\n }\n });\n return () => {\n mutationObserver.disconnect();\n };\n }, [sortedMap]);\n useIsoLayoutEffect(() => {\n const shouldUpdateLengths = lastTickRef.current === mapTick;\n if (shouldUpdateLengths) {\n if (elementsRef.current.length !== sortedMap.size) {\n elementsRef.current.length = sortedMap.size;\n }\n if (labelsRef && labelsRef.current.length !== sortedMap.size) {\n labelsRef.current.length = sortedMap.size;\n }\n nextIndexRef.current = sortedMap.size;\n }\n onMapChange(sortedMap);\n }, [onMapChange, sortedMap, elementsRef, labelsRef, mapTick]);\n useIsoLayoutEffect(() => {\n return () => {\n elementsRef.current = [];\n };\n }, [elementsRef]);\n useIsoLayoutEffect(() => {\n return () => {\n if (labelsRef) {\n labelsRef.current = [];\n }\n };\n }, [labelsRef]);\n const subscribeMapChange = useStableCallback(fn => {\n listeners.add(fn);\n return () => {\n listeners.delete(fn);\n };\n });\n useIsoLayoutEffect(() => {\n listeners.forEach(l => l(sortedMap));\n }, [listeners, sortedMap]);\n const contextValue = React.useMemo(() => ({\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n }), [register, unregister, subscribeMapChange, elementsRef, labelsRef, nextIndexRef]);\n return /*#__PURE__*/_jsx(CompositeListContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nfunction createMap() {\n return new Map();\n}\nfunction createListeners() {\n return new Set();\n}\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction disableEslintWarning(_) {}","export let FieldControlDataAttributes = /*#__PURE__*/function (FieldControlDataAttributes) {\n /**\n * Present when the field is disabled.\n */\n FieldControlDataAttributes[\"disabled\"] = \"data-disabled\";\n /**\n * Present when the field is in a valid state.\n */\n FieldControlDataAttributes[\"valid\"] = \"data-valid\";\n /**\n * Present when the field is in an invalid state.\n */\n FieldControlDataAttributes[\"invalid\"] = \"data-invalid\";\n /**\n * Present when the field has been touched.\n */\n FieldControlDataAttributes[\"touched\"] = \"data-touched\";\n /**\n * Present when the field's value has changed.\n */\n FieldControlDataAttributes[\"dirty\"] = \"data-dirty\";\n /**\n * Present when the field is filled.\n */\n FieldControlDataAttributes[\"filled\"] = \"data-filled\";\n /**\n * Present when the field control is focused.\n */\n FieldControlDataAttributes[\"focused\"] = \"data-focused\";\n return FieldControlDataAttributes;\n}({});","import { FieldControlDataAttributes } from \"../../field/control/FieldControlDataAttributes.js\";\nexport const DEFAULT_VALIDITY_STATE = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: null,\n valueMissing: false\n};\nexport const DEFAULT_FIELD_STATE_ATTRIBUTES = {\n valid: null,\n touched: false,\n dirty: false,\n filled: false,\n focused: false\n};\nexport const DEFAULT_FIELD_ROOT_STATE = {\n disabled: false,\n ...DEFAULT_FIELD_STATE_ATTRIBUTES\n};\nexport const fieldValidityMapping = {\n valid(value) {\n if (value === null) {\n return null;\n }\n if (value) {\n return {\n [FieldControlDataAttributes.valid]: ''\n };\n }\n return {\n [FieldControlDataAttributes.invalid]: ''\n };\n }\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { NOOP } from \"../noop.js\";\nimport { DEFAULT_FIELD_ROOT_STATE, DEFAULT_FIELD_STATE_ATTRIBUTES, DEFAULT_VALIDITY_STATE } from \"../field-constants/constants.js\";\nexport const DEFAULT_FIELD_ROOT_CONTEXT = {\n invalid: undefined,\n name: undefined,\n validityData: {\n state: DEFAULT_VALIDITY_STATE,\n errors: [],\n error: '',\n value: '',\n initialValue: null\n },\n setValidityData: NOOP,\n disabled: undefined,\n touched: DEFAULT_FIELD_STATE_ATTRIBUTES.touched,\n setTouched: NOOP,\n dirty: DEFAULT_FIELD_STATE_ATTRIBUTES.dirty,\n setDirty: NOOP,\n filled: DEFAULT_FIELD_STATE_ATTRIBUTES.filled,\n setFilled: NOOP,\n focused: DEFAULT_FIELD_STATE_ATTRIBUTES.focused,\n setFocused: NOOP,\n validate: () => null,\n validationMode: 'onSubmit',\n validationDebounceTime: 0,\n shouldValidateOnChange: () => false,\n state: DEFAULT_FIELD_ROOT_STATE,\n markedDirtyRef: {\n current: false\n },\n registerFieldControl: NOOP,\n validation: {\n getValidationProps: (props = EMPTY_OBJECT) => props,\n getInputValidationProps: (props = EMPTY_OBJECT) => props,\n inputRef: {\n current: null\n },\n commit: async () => {}\n }\n};\nexport const FieldRootContext = /*#__PURE__*/React.createContext(DEFAULT_FIELD_ROOT_CONTEXT);\nif (process.env.NODE_ENV !== \"production\") FieldRootContext.displayName = \"FieldRootContext\";\nexport function useFieldRootContext(optional = true) {\n const context = React.useContext(FieldRootContext);\n if (context.setValidityData === NOOP && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.' : _formatErrorMessage(28));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useFieldRootContext } from \"../field-root-context/FieldRootContext.js\";\nexport function useRegisterFieldControl(controlRef, id, value, getFormValueOverride, enabled = true) {\n const {\n registerFieldControl\n } = useFieldRootContext();\n const sourceRef = React.useRef(null);\n if (!sourceRef.current) {\n sourceRef.current = Symbol();\n }\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n if (!source || !enabled) {\n return undefined;\n }\n const registration = {\n controlRef,\n getValue: getFormValueOverride,\n id,\n value\n };\n registerFieldControl(source, registration);\n return () => {\n registerFieldControl(source, undefined);\n };\n }, [controlRef, enabled, getFormValueOverride, id, registerFieldControl, value]);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.js\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n formRef: {\n current: {\n fields: new Map()\n }\n },\n errors: {},\n clearErrors: NOOP,\n validationMode: 'onSubmit',\n submitAttemptedRef: {\n current: false\n }\n});\nif (process.env.NODE_ENV !== \"production\") FormContext.displayName = \"FormContext\";\nexport function useFormContext() {\n return React.useContext(FormContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.js\";\n/**\n * A context for providing [labelable elements](https://html.spec.whatwg.org/multipage/forms.html#category-label)\\\n * with an accessible name (label) and description.\n */\nexport const LabelableContext = /*#__PURE__*/React.createContext({\n controlId: undefined,\n registerControlId: NOOP,\n labelId: undefined,\n setLabelId: NOOP,\n messageIds: [],\n setMessageIds: NOOP,\n getDescriptionProps: externalProps => externalProps\n});\nif (process.env.NODE_ENV !== \"production\") LabelableContext.displayName = \"LabelableContext\";\nexport function useLabelableContext() {\n return React.useContext(LabelableContext);\n}","'use client';\n\nexport function getDefaultLabelId(id) {\n return id == null ? undefined : `${id}-label`;\n}\nexport function resolveAriaLabelledBy(fieldLabelId, localLabelId) {\n return fieldLabelId ?? localLabelId;\n}","export function asc(a, b) {\n return a - b;\n}","import { asc } from \"./asc.js\";\nexport function replaceArrayItemAtIndex(array, index, newValue) {\n const output = array.slice();\n output[index] = newValue;\n return output.sort(asc);\n}","import { clamp } from \"../../internals/clamp.js\";\nimport { replaceArrayItemAtIndex } from \"./replaceArrayItemAtIndex.js\";\nexport function getSliderValue(valueInput, index, min, max, range, values) {\n let newValue = valueInput;\n newValue = clamp(newValue, min, max);\n if (range) {\n newValue = replaceArrayItemAtIndex(values, index,\n // Bound the new value to the thumb's neighbours.\n clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity));\n }\n return newValue;\n}","export function validateMinimumDistance(values, step, minStepsBetweenValues) {\n if (!Array.isArray(values)) {\n return true;\n }\n const distances = values.reduce((acc, val, index, vals) => {\n if (index === vals.length - 1) {\n return acc;\n }\n acc.push(Math.abs(val - vals[index + 1]));\n return acc;\n }, []);\n return Math.min(...distances) >= step * minStepsBetweenValues;\n}","import { fieldValidityMapping } from \"../../internals/field-constants/constants.js\";\nexport const sliderStateAttributesMapping = {\n activeThumbIndex: () => null,\n max: () => null,\n min: () => null,\n minStepsBetweenValues: () => null,\n step: () => null,\n values: () => null,\n ...fieldValidityMapping\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SliderRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") SliderRootContext.displayName = \"SliderRootContext\";\nexport function useSliderRootContext() {\n const context = React.useContext(SliderRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SliderRootContext is missing. Slider parts must be placed within <Slider.Root>.' : _formatErrorMessage(62));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { warn } from '@base-ui/utils/warn';\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.js\";\nimport { useValueChanged } from \"../../internals/useValueChanged.js\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { clamp } from \"../../internals/clamp.js\";\nimport { areArraysEqual } from \"../../internals/areArraysEqual.js\";\nimport { activeElement, contains } from \"../../floating-ui-react/utils.js\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.js\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.js\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.js\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.js\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.js\";\nimport { resolveAriaLabelledBy, getDefaultLabelId } from \"../../utils/resolveAriaLabelledBy.js\";\nimport { asc } from \"../utils/asc.js\";\nimport { getSliderValue } from \"../utils/getSliderValue.js\";\nimport { validateMinimumDistance } from \"../utils/validateMinimumDistance.js\";\nimport { sliderStateAttributesMapping } from \"./stateAttributesMapping.js\";\nimport { SliderRootContext } from \"./SliderRootContext.js\";\nimport { REASONS } from \"../../internals/reasons.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction getSliderChangeEventReason(event) {\n return 'key' in event ? REASONS.keyboard : REASONS.inputChange;\n}\nfunction areValuesEqual(newValue, oldValue) {\n if (typeof newValue === 'number' && typeof oldValue === 'number') {\n return newValue === oldValue;\n }\n if (Array.isArray(newValue) && Array.isArray(oldValue)) {\n return areArraysEqual(newValue, oldValue);\n }\n return false;\n}\n\n/**\n * Groups all parts of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(componentProps, forwardedRef) {\n const {\n 'aria-labelledby': ariaLabelledByProp,\n className,\n defaultValue,\n disabled: disabledProp = false,\n id: idProp,\n format,\n largeStep = 10,\n locale,\n render,\n max = 100,\n min = 0,\n minStepsBetweenValues = 0,\n form,\n name: nameProp,\n onValueChange: onValueChangeProp,\n onValueCommitted: onValueCommittedProp,\n orientation = 'horizontal',\n step = 1,\n thumbCollisionBehavior = 'push',\n thumbAlignment = 'center',\n value: valueProp,\n style,\n ...elementProps\n } = componentProps;\n const id = useBaseUiId(idProp);\n const defaultLabelId = getDefaultLabelId(id);\n const onValueChange = useStableCallback(onValueChangeProp);\n const onValueCommitted = useStableCallback(onValueCommittedProp);\n const {\n clearErrors\n } = useFormContext();\n const {\n state: fieldState,\n disabled: fieldDisabled,\n name: fieldName,\n setTouched,\n setDirty,\n validityData,\n shouldValidateOnChange,\n validation\n } = useFieldRootContext();\n const {\n labelId: fieldLabelId\n } = useLabelableContext();\n const [labelId, setLabelId] = React.useState();\n const ariaLabelledby = ariaLabelledByProp ?? resolveAriaLabelledBy(fieldLabelId, labelId);\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n\n // The internal value is potentially unsorted, e.g. to support frozen arrays\n // https://github.com/mui/material-ui/pull/28472\n const [valueUnwrapped, setValueUnwrapped] = useControlled({\n controlled: valueProp,\n default: defaultValue ?? min,\n name: 'Slider'\n });\n const sliderRef = React.useRef(null);\n const controlRef = React.useRef(null);\n const thumbRefs = React.useRef([]);\n // The input element nested in the pressed thumb.\n const pressedInputRef = React.useRef(null);\n // The px distance between the pointer and the center of a pressed thumb.\n const pressedThumbCenterOffsetRef = React.useRef(null);\n // The index of the pressed thumb, or the closest thumb if the `Control` was pressed.\n // This is updated on pointerdown, which is sooner than the `active/activeIndex`\n // state which is updated later when the nested `input` receives focus.\n const pressedThumbIndexRef = React.useRef(-1);\n // The values when the current drag interaction started.\n const pressedValuesRef = React.useRef(null);\n const lastChangedValueRef = React.useRef(null);\n const lastChangeReasonRef = React.useRef('none');\n const formatOptionsRef = useValueAsRef(format);\n\n // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n const [active, setActiveState] = React.useState(-1);\n const [lastUsedThumbIndex, setLastUsedThumbIndex] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const [thumbMap, setThumbMap] = React.useState(() => new Map());\n const [indicatorPosition, setIndicatorPosition] = React.useState([undefined, undefined]);\n const setActive = useStableCallback(value => {\n setActiveState(value);\n if (value !== -1) {\n setLastUsedThumbIndex(value);\n }\n });\n useRegisterFieldControl(controlRef, id, valueUnwrapped);\n useValueChanged(valueUnwrapped, () => {\n clearErrors(name);\n if (shouldValidateOnChange()) {\n validation.commit(valueUnwrapped);\n } else {\n validation.commit(valueUnwrapped, true);\n }\n const initialValue = validityData.initialValue;\n let isDirty;\n if (Array.isArray(valueUnwrapped) && Array.isArray(initialValue)) {\n isDirty = !areArraysEqual(valueUnwrapped, initialValue);\n } else {\n isDirty = valueUnwrapped !== initialValue;\n }\n setDirty(isDirty);\n });\n const registerFieldControlRef = useStableCallback(element => {\n if (element) {\n controlRef.current = element;\n }\n });\n const range = Array.isArray(valueUnwrapped);\n const values = React.useMemo(() => {\n if (!range) {\n return [clamp(valueUnwrapped, min, max)];\n }\n return valueUnwrapped.slice().sort(asc);\n }, [max, min, range, valueUnwrapped]);\n const setValue = useStableCallback((newValue, details) => {\n if (Number.isNaN(newValue) || areValuesEqual(newValue, valueUnwrapped)) {\n return;\n }\n const changeDetails = details ?? createChangeEventDetails(REASONS.none, undefined, undefined, {\n activeThumbIndex: -1\n });\n lastChangeReasonRef.current = changeDetails.reason;\n\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = changeDetails.event;\n const EventConstructor = nativeEvent.constructor ?? Event;\n const clonedEvent = new EventConstructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value: newValue,\n name\n }\n });\n changeDetails.event = clonedEvent;\n lastChangedValueRef.current = newValue;\n onValueChange(newValue, changeDetails);\n if (changeDetails.isCanceled) {\n return;\n }\n setValueUnwrapped(newValue);\n });\n const handleInputChange = useStableCallback((valueInput, index, event) => {\n const newValue = getSliderValue(valueInput, index, min, max, range, values);\n if (validateMinimumDistance(newValue, step, minStepsBetweenValues)) {\n const reason = getSliderChangeEventReason(event);\n setValue(newValue, createChangeEventDetails(reason, event.nativeEvent, undefined, {\n activeThumbIndex: index\n }));\n setTouched(true);\n const nextValue = lastChangedValueRef.current ?? newValue;\n onValueCommitted(nextValue, createGenericEventDetails(reason, event.nativeEvent));\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (min >= max) {\n warn('Slider `max` must be greater than `min`.');\n }\n }\n useIsoLayoutEffect(() => {\n const activeEl = activeElement(ownerDocument(sliderRef.current));\n if (disabled && contains(sliderRef.current, activeEl)) {\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n activeEl.blur();\n }\n }, [disabled]);\n if (disabled && active !== -1) {\n setActive(-1);\n }\n const state = React.useMemo(() => ({\n ...fieldState,\n activeThumbIndex: active,\n disabled,\n dragging,\n orientation,\n max,\n min,\n minStepsBetweenValues,\n step,\n values\n }), [fieldState, active, disabled, dragging, max, min, minStepsBetweenValues, orientation, step, values]);\n const contextValue = React.useMemo(() => ({\n active,\n controlRef,\n disabled,\n dragging,\n validation,\n formatOptionsRef,\n handleInputChange,\n indicatorPosition,\n inset: thumbAlignment !== 'center',\n labelId: ariaLabelledby,\n rootLabelId: defaultLabelId,\n largeStep,\n lastUsedThumbIndex,\n lastChangedValueRef,\n lastChangeReasonRef,\n form,\n locale,\n max,\n min,\n minStepsBetweenValues,\n name,\n onValueCommitted,\n orientation,\n pressedInputRef,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n pressedValuesRef,\n registerFieldControlRef,\n renderBeforeHydration: thumbAlignment === 'edge',\n setActive,\n setDragging,\n setIndicatorPosition,\n setLabelId,\n setValue,\n state,\n step,\n thumbCollisionBehavior,\n thumbMap,\n thumbRefs,\n values\n }), [active, controlRef, ariaLabelledby, defaultLabelId, disabled, dragging, validation, formatOptionsRef, handleInputChange, indicatorPosition, largeStep, lastUsedThumbIndex, lastChangedValueRef, lastChangeReasonRef, form, locale, max, min, minStepsBetweenValues, name, onValueCommitted, orientation, pressedInputRef, pressedThumbCenterOffsetRef, pressedThumbIndexRef, pressedValuesRef, registerFieldControlRef, setActive, setDragging, setIndicatorPosition, setLabelId, setValue, state, step, thumbCollisionBehavior, thumbAlignment, thumbMap, thumbRefs, values]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, sliderRef],\n props: [{\n 'aria-labelledby': ariaLabelledby,\n id,\n role: 'group'\n }, validation.getValidationProps, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(SliderRootContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: thumbRefs,\n onMapChange: setThumbMap,\n children: element\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") SliderRoot.displayName = \"SliderRoot\";","'use client';\n\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const DirectionContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") DirectionContext.displayName = \"DirectionContext\";\nexport function useDirection() {\n const context = React.useContext(DirectionContext);\n return context?.direction ?? 'ltr';\n}","export function getMidpoint(element) {\n const rect = element.getBoundingClientRect();\n return {\n x: (rect.left + rect.right) / 2,\n y: (rect.top + rect.bottom) / 2\n };\n}","export function getDecimalPrecision(num) {\n if (num === 0) {\n return 0;\n }\n\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nexport function roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(Math.max(getDecimalPrecision(step), getDecimalPrecision(min))));\n}","import { clamp } from \"../../internals/clamp.js\";\n/**\n * Returns a new array of slider values where attempting to move the thumb at `index`\n * beyond its neighbours \"pushes\" them while respecting `minStepsBetweenValues`.\n */\nexport function getPushedThumbValues({\n values,\n index,\n nextValue,\n min,\n max,\n step,\n minStepsBetweenValues,\n initialValues\n}) {\n if (values.length === 0) {\n return [];\n }\n const nextValues = values.slice();\n const minValueDifference = step * minStepsBetweenValues;\n const lastIndex = nextValues.length - 1;\n const baseInitialValues = initialValues ?? values;\n const indexMin = min + index * minValueDifference;\n const indexMax = max - (lastIndex - index) * minValueDifference;\n nextValues[index] = clamp(nextValue, indexMin, indexMax);\n for (let i = index + 1; i <= lastIndex; i += 1) {\n const minAllowed = nextValues[i - 1] + minValueDifference;\n const maxAllowed = max - (lastIndex - i) * minValueDifference;\n const initialValue = baseInitialValues[i] ?? nextValues[i];\n let candidate = Math.max(nextValues[i], minAllowed);\n if (initialValue < candidate) {\n candidate = Math.max(initialValue, minAllowed);\n }\n nextValues[i] = clamp(candidate, minAllowed, maxAllowed);\n }\n for (let i = index - 1; i >= 0; i -= 1) {\n const maxAllowed = nextValues[i + 1] - minValueDifference;\n const minAllowed = min + i * minValueDifference;\n const initialValue = baseInitialValues[i] ?? nextValues[i];\n let candidate = Math.min(nextValues[i], maxAllowed);\n if (initialValue > candidate) {\n candidate = Math.min(initialValue, maxAllowed);\n }\n nextValues[i] = clamp(candidate, minAllowed, maxAllowed);\n }\n for (let i = 0; i <= lastIndex; i += 1) {\n nextValues[i] = Number(nextValues[i].toFixed(12));\n }\n return nextValues;\n}","import { clamp } from \"../../internals/clamp.js\";\nimport { getPushedThumbValues } from \"./getPushedThumbValues.js\";\nexport function resolveThumbCollision({\n behavior,\n values,\n currentValues,\n initialValues,\n pressedIndex,\n nextValue,\n min,\n max,\n step,\n minStepsBetweenValues\n}) {\n const activeValues = currentValues ?? values;\n const baselineValues = initialValues ?? values;\n const range = activeValues.length > 1;\n if (!range) {\n return {\n value: nextValue,\n thumbIndex: 0,\n didSwap: false\n };\n }\n const minValueDifference = step * minStepsBetweenValues;\n switch (behavior) {\n case 'swap':\n {\n const pressedInitialValue = activeValues[pressedIndex];\n const epsilon = 1e-7;\n const candidateValues = activeValues.slice();\n const previousNeighbor = candidateValues[pressedIndex - 1];\n const nextNeighbor = candidateValues[pressedIndex + 1];\n const lowerBound = previousNeighbor != null ? previousNeighbor + minValueDifference : min;\n const upperBound = nextNeighbor != null ? nextNeighbor - minValueDifference : max;\n const constrainedValue = clamp(nextValue, lowerBound, upperBound);\n const pressedValueAfterClamp = Number(constrainedValue.toFixed(12));\n candidateValues[pressedIndex] = pressedValueAfterClamp;\n const movingForward = nextValue > pressedInitialValue;\n const movingBackward = nextValue < pressedInitialValue;\n const shouldSwapForward = movingForward && nextNeighbor != null && nextValue >= nextNeighbor - epsilon;\n const shouldSwapBackward = movingBackward && previousNeighbor != null && nextValue <= previousNeighbor + epsilon;\n if (!shouldSwapForward && !shouldSwapBackward) {\n return {\n value: candidateValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n const targetIndex = shouldSwapForward ? pressedIndex + 1 : pressedIndex - 1;\n const initialValuesForPush = candidateValues.map((_, index) => {\n if (index === pressedIndex) {\n return pressedValueAfterClamp;\n }\n const baseline = baselineValues[index];\n if (baseline != null) {\n return baseline;\n }\n return activeValues[index];\n });\n let nextValueForTarget = nextValue;\n if (shouldSwapForward) {\n nextValueForTarget = Math.max(nextValue, candidateValues[targetIndex]);\n } else {\n nextValueForTarget = Math.min(nextValue, candidateValues[targetIndex]);\n }\n const adjustedValues = getPushedThumbValues({\n values: candidateValues,\n index: targetIndex,\n nextValue: nextValueForTarget,\n min,\n max,\n step,\n minStepsBetweenValues,\n initialValues: initialValuesForPush\n });\n const neighborIndex = shouldSwapForward ? targetIndex - 1 : targetIndex + 1;\n if (neighborIndex >= 0 && neighborIndex < adjustedValues.length) {\n const previousValue = adjustedValues[neighborIndex - 1];\n const nextValueAfter = adjustedValues[neighborIndex + 1];\n let neighborLowerBound = previousValue != null ? previousValue + minValueDifference : min;\n neighborLowerBound = Math.max(neighborLowerBound, min + neighborIndex * minValueDifference);\n let neighborUpperBound = nextValueAfter != null ? nextValueAfter - minValueDifference : max;\n neighborUpperBound = Math.min(neighborUpperBound, max - (adjustedValues.length - 1 - neighborIndex) * minValueDifference);\n const restoredValue = clamp(pressedValueAfterClamp, neighborLowerBound, neighborUpperBound);\n adjustedValues[neighborIndex] = Number(restoredValue.toFixed(12));\n }\n return {\n value: adjustedValues,\n thumbIndex: targetIndex,\n didSwap: true\n };\n }\n case 'push':\n {\n const nextValues = getPushedThumbValues({\n values: activeValues,\n index: pressedIndex,\n nextValue,\n min,\n max,\n step,\n minStepsBetweenValues\n });\n return {\n value: nextValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n case 'none':\n default:\n {\n const candidateValues = activeValues.slice();\n const previousNeighbor = candidateValues[pressedIndex - 1];\n const nextNeighbor = candidateValues[pressedIndex + 1];\n const lowerBound = previousNeighbor != null ? previousNeighbor + minValueDifference : min;\n const upperBound = nextNeighbor != null ? nextNeighbor - minValueDifference : max;\n const constrainedValue = clamp(nextValue, lowerBound, upperBound);\n candidateValues[pressedIndex] = Number(constrainedValue.toFixed(12));\n return {\n value: candidateValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { activeElement, contains, getTarget } from \"../../floating-ui-react/utils.js\";\nimport { clamp } from \"../../internals/clamp.js\";\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.js\";\nimport { REASONS } from \"../../internals/reasons.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\nimport { getMidpoint } from \"../utils/getMidpoint.js\";\nimport { roundValueToStep } from \"../utils/roundValueToStep.js\";\nimport { validateMinimumDistance } from \"../utils/validateMinimumDistance.js\";\nimport { resolveThumbCollision } from \"../utils/resolveThumbCollision.js\";\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction getControlOffset(styles, vertical) {\n if (!styles) {\n return {\n start: 0,\n end: 0\n };\n }\n function parseSize(value) {\n const parsed = value != null ? parseFloat(value) : 0;\n return Number.isNaN(parsed) ? 0 : parsed;\n }\n const start = !vertical ? 'InlineStart' : 'Top';\n const end = !vertical ? 'InlineEnd' : 'Bottom';\n return {\n start: parseSize(styles[`border${start}Width`]) + parseSize(styles[`padding${start}`]),\n end: parseSize(styles[`border${end}Width`]) + parseSize(styles[`padding${end}`])\n };\n}\nfunction getFingerCoords(event, touchIdRef) {\n // The event is TouchEvent\n if (touchIdRef.current != null && event.changedTouches) {\n const touchEvent = event;\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n if (touch.identifier === touchIdRef.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return null;\n }\n\n // The event is PointerEvent\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\n\n/**\n * The clickable, interactive part of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderControl = /*#__PURE__*/React.forwardRef(function SliderControl(componentProps, forwardedRef) {\n const {\n render: renderProp,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n disabled,\n dragging,\n inset,\n lastChangedValueRef,\n lastChangeReasonRef,\n max,\n min,\n minStepsBetweenValues,\n onValueCommitted,\n orientation,\n pressedInputRef,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n pressedValuesRef,\n registerFieldControlRef,\n renderBeforeHydration,\n setActive,\n setDragging,\n setValue,\n state,\n step,\n thumbCollisionBehavior,\n thumbRefs,\n values\n } = useSliderRootContext();\n const direction = useDirection();\n const range = values.length > 1;\n const vertical = orientation === 'vertical';\n const controlRef = React.useRef(null);\n const stylesRef = React.useRef(null);\n const setStylesRef = useStableCallback(element => {\n if (element && stylesRef.current == null) {\n stylesRef.current = ownerWindow(element).getComputedStyle(element);\n }\n });\n\n // A number that uniquely identifies the current finger in the touch session.\n const touchIdRef = React.useRef(null);\n // The number of touch/pointermove events that have fired.\n const moveCountRef = React.useRef(0);\n // The offset amount to each side of the control for inset sliders.\n // This value should be equal to the radius or half the width/height of the thumb.\n const insetThumbOffsetRef = React.useRef(0);\n const latestValuesRef = useValueAsRef(values);\n function updatePressedThumb(nextIndex) {\n if (pressedThumbIndexRef.current !== nextIndex) {\n pressedThumbIndexRef.current = nextIndex;\n }\n const thumbElement = thumbRefs.current[nextIndex];\n if (!thumbElement) {\n pressedThumbCenterOffsetRef.current = null;\n pressedInputRef.current = null;\n return;\n }\n pressedInputRef.current = thumbElement.querySelector('input[type=\"range\"]');\n }\n function getFingerState(fingerCoords) {\n const control = controlRef.current;\n if (!control) {\n return null;\n }\n const {\n width,\n height,\n bottom,\n left,\n right\n } = control.getBoundingClientRect();\n const controlOffset = getControlOffset(stylesRef.current, vertical);\n const insetThumbOffset = insetThumbOffsetRef.current;\n const controlSize = (vertical ? height : width) - controlOffset.start - controlOffset.end - insetThumbOffset * 2;\n const thumbCenterOffset = pressedThumbCenterOffsetRef.current ?? 0;\n const fingerX = fingerCoords.x - thumbCenterOffset;\n const fingerY = fingerCoords.y - thumbCenterOffset;\n const valueSize = vertical ? bottom - fingerY - controlOffset.end : (direction === 'rtl' ? right - fingerX : fingerX - left) - controlOffset.start;\n // the value at the finger origin scaled down to fit the range [0, 1]\n const valueRescaled = clamp((valueSize - insetThumbOffset) / controlSize, 0, 1);\n let newValue = (max - min) * valueRescaled + min;\n newValue = roundValueToStep(newValue, step, min);\n newValue = clamp(newValue, min, max);\n if (!range) {\n return {\n value: newValue,\n thumbIndex: 0,\n didSwap: false\n };\n }\n const thumbIndex = pressedThumbIndexRef.current;\n if (thumbIndex < 0) {\n return null;\n }\n const collisionResult = resolveThumbCollision({\n behavior: thumbCollisionBehavior,\n values,\n currentValues: latestValuesRef.current ?? values,\n initialValues: pressedValuesRef.current,\n pressedIndex: thumbIndex,\n nextValue: newValue,\n min,\n max,\n step,\n minStepsBetweenValues\n });\n if (thumbCollisionBehavior === 'swap' && collisionResult.didSwap) {\n updatePressedThumb(collisionResult.thumbIndex);\n } else {\n pressedThumbIndexRef.current = collisionResult.thumbIndex;\n }\n return collisionResult;\n }\n function startPressing(fingerCoords) {\n pressedValuesRef.current = range ? values.slice() : null;\n latestValuesRef.current = values;\n const pressedThumbIndex = pressedThumbIndexRef.current;\n let closestThumbIndex = pressedThumbIndex;\n if (pressedThumbIndex > -1 && pressedThumbIndex < values.length) {\n if (values[pressedThumbIndex] === max) {\n let candidateIndex = pressedThumbIndex;\n while (candidateIndex > 0 && values[candidateIndex - 1] === max) {\n candidateIndex -= 1;\n }\n closestThumbIndex = candidateIndex;\n }\n } else {\n // pressed on control\n const axis = !vertical ? 'x' : 'y';\n let minDistance;\n closestThumbIndex = -1;\n for (let i = 0; i < thumbRefs.current.length; i += 1) {\n const thumbEl = thumbRefs.current[i];\n if (isElement(thumbEl)) {\n const midpoint = getMidpoint(thumbEl);\n const distance = Math.abs(fingerCoords[axis] - midpoint[axis]);\n if (minDistance === undefined || distance <= minDistance) {\n closestThumbIndex = i;\n minDistance = distance;\n }\n }\n }\n }\n if (closestThumbIndex > -1 && closestThumbIndex !== pressedThumbIndex) {\n updatePressedThumb(closestThumbIndex);\n }\n if (inset) {\n const thumbEl = thumbRefs.current[closestThumbIndex];\n if (isElement(thumbEl)) {\n const thumbRect = thumbEl.getBoundingClientRect();\n const side = !vertical ? 'width' : 'height';\n insetThumbOffsetRef.current = thumbRect[side] / 2;\n }\n }\n }\n function focusThumb(thumbIndex) {\n const input = thumbRefs.current?.[thumbIndex]?.querySelector('input[type=\"range\"]');\n if (!input) {\n return;\n }\n input.focus({\n preventScroll: true,\n // Prevent pointer-driven focus rings in browsers that support this option.\n // Supported in Chrome from 144+.\n focusVisible: false\n });\n }\n const handleTouchMove = useStableCallback(nativeEvent => {\n const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n if (fingerCoords == null) {\n return;\n }\n moveCountRef.current += 1;\n\n // Cancel move in case some other element consumed a pointerup event and it was not fired.\n if (nativeEvent.type === 'pointermove' && nativeEvent.buttons === 0) {\n handleTouchEnd(nativeEvent);\n return;\n }\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n if (validateMinimumDistance(finger.value, step, minStepsBetweenValues)) {\n if (!dragging && moveCountRef.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n setValue(finger.value, createChangeEventDetails(REASONS.drag, nativeEvent, undefined, {\n activeThumbIndex: finger.thumbIndex\n }));\n latestValuesRef.current = Array.isArray(finger.value) ? finger.value : [finger.value];\n if (finger.didSwap) {\n focusThumb(finger.thumbIndex);\n }\n }\n });\n function handleTouchEnd(nativeEvent) {\n setActive(-1);\n setDragging(false);\n pressedInputRef.current = null;\n pressedThumbCenterOffsetRef.current = null;\n const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n const finger = fingerCoords != null ? getFingerState(fingerCoords) : null;\n if (finger != null) {\n const commitReason = lastChangeReasonRef.current;\n onValueCommitted(lastChangedValueRef.current ?? finger.value, createGenericEventDetails(commitReason, nativeEvent));\n }\n if ('pointerType' in nativeEvent && controlRef.current?.hasPointerCapture(nativeEvent.pointerId)) {\n controlRef.current?.releasePointerCapture(nativeEvent.pointerId);\n }\n pressedThumbIndexRef.current = -1;\n touchIdRef.current = null;\n pressedValuesRef.current = null;\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n }\n const handleTouchStart = useStableCallback(nativeEvent => {\n if (disabled) {\n return;\n }\n const touch = nativeEvent.changedTouches[0];\n if (touch != null) {\n touchIdRef.current = touch.identifier;\n }\n const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n if (fingerCoords != null) {\n startPressing(fingerCoords);\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n focusThumb(finger.thumbIndex);\n setValue(finger.value, createChangeEventDetails(REASONS.trackPress, nativeEvent, undefined, {\n activeThumbIndex: finger.thumbIndex\n }));\n latestValuesRef.current = Array.isArray(finger.value) ? finger.value : [finger.value];\n if (finger.didSwap) {\n focusThumb(finger.thumbIndex);\n }\n }\n moveCountRef.current = 0;\n const doc = ownerDocument(controlRef.current);\n doc.addEventListener('touchmove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('touchend', handleTouchEnd, {\n passive: true\n });\n });\n const stopListening = useStableCallback(() => {\n const doc = ownerDocument(controlRef.current);\n doc.removeEventListener('pointermove', handleTouchMove);\n doc.removeEventListener('pointerup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n pressedValuesRef.current = null;\n });\n const focusFrame = useAnimationFrame();\n React.useEffect(() => {\n const control = controlRef.current;\n if (!control) {\n return () => stopListening();\n }\n const unsubscribeTouchStart = addEventListener(control, 'touchstart', handleTouchStart, {\n passive: true\n });\n return () => {\n unsubscribeTouchStart();\n focusFrame.cancel();\n stopListening();\n };\n }, [stopListening, handleTouchStart, controlRef, focusFrame]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, registerFieldControlRef, controlRef, setStylesRef],\n props: [{\n ['data-base-ui-slider-control']: renderBeforeHydration ? '' : undefined,\n onPointerDown(event) {\n const control = controlRef.current;\n const target = getTarget(event.nativeEvent);\n if (!control || disabled || event.defaultPrevented || !isElement(target) ||\n // Only handle left clicks\n event.button !== 0) {\n return;\n }\n const fingerCoords = getFingerCoords(event, touchIdRef);\n if (fingerCoords != null) {\n startPressing(fingerCoords);\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n const pressedOnFocusedThumb = contains(thumbRefs.current[finger.thumbIndex], activeElement(ownerDocument(control)));\n if (pressedOnFocusedThumb) {\n event.preventDefault();\n } else {\n focusFrame.request(() => {\n focusThumb(finger.thumbIndex);\n });\n }\n setDragging(true);\n const pressedOnAnyThumb = pressedThumbCenterOffsetRef.current != null;\n if (!pressedOnAnyThumb) {\n setValue(finger.value, createChangeEventDetails(REASONS.trackPress, event.nativeEvent, undefined, {\n activeThumbIndex: finger.thumbIndex\n }));\n latestValuesRef.current = Array.isArray(finger.value) ? finger.value : [finger.value];\n if (finger.didSwap) {\n focusThumb(finger.thumbIndex);\n }\n }\n }\n if (event.nativeEvent.pointerId) {\n control.setPointerCapture(event.nativeEvent.pointerId);\n }\n moveCountRef.current = 0;\n const doc = ownerDocument(controlRef.current);\n doc.addEventListener('pointermove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('pointerup', handleTouchEnd, {\n once: true\n });\n }\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderControl.displayName = \"SliderControl\";","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\n\n/**\n * Contains the slider indicator and represents the entire range of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderTrack = /*#__PURE__*/React.forwardRef(function SliderTrack(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n state\n } = useSliderRootContext();\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n style: {\n position: 'relative'\n }\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderTrack.displayName = \"SliderTrack\";","import { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { NOOP } from \"../internals/noop.js\";\nfunction subscribe() {\n return NOOP;\n}\nfunction getSnapshot() {\n return false;\n}\nfunction getServerSnapshot() {\n return true;\n}\n\n/**\n * Returns `true` while React is hydrating server-rendered markup and `false`\n * for fresh client-only mounts.\n */\nexport function useIsHydrating() {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}","import { isHTMLElement } from '@floating-ui/utils/dom';\nexport { stopEvent, isIndexOutOfListBounds, isListIndexDisabled, createGridCellMap, findNonDisabledListIndex, getGridCellIndexOfCorner, getGridCellIndices, getGridNavigatedIndex, getMaxListIndex, getMinListIndex } from \"../../floating-ui-react/utils.js\";\nexport const ARROW_UP = 'ArrowUp';\nexport const ARROW_DOWN = 'ArrowDown';\nexport const ARROW_LEFT = 'ArrowLeft';\nexport const ARROW_RIGHT = 'ArrowRight';\nexport const HOME = 'Home';\nexport const END = 'End';\nexport const PAGE_UP = 'PageUp';\nexport const PAGE_DOWN = 'PageDown';\nexport const HORIZONTAL_KEYS = new Set([ARROW_LEFT, ARROW_RIGHT]);\nexport const HORIZONTAL_KEYS_WITH_EXTRA_KEYS = new Set([ARROW_LEFT, ARROW_RIGHT, HOME, END]);\nexport const VERTICAL_KEYS = new Set([ARROW_UP, ARROW_DOWN]);\nexport const VERTICAL_KEYS_WITH_EXTRA_KEYS = new Set([ARROW_UP, ARROW_DOWN, HOME, END]);\nexport const ARROW_KEYS = new Set([...HORIZONTAL_KEYS, ...VERTICAL_KEYS]);\nexport const COMPOSITE_KEYS = new Set([...ARROW_KEYS, HOME, END]);\nexport const SHIFT = 'Shift';\nexport const CONTROL = 'Control';\nexport const ALT = 'Alt';\nexport const META = 'Meta';\nexport const MODIFIER_KEYS = new Set([SHIFT, CONTROL, ALT, META]);\nfunction isInputElement(element) {\n return isHTMLElement(element) && element.tagName === 'INPUT';\n}\nexport function isNativeInput(element) {\n if (isInputElement(element) && element.selectionStart != null) {\n return true;\n }\n if (isHTMLElement(element) && element.tagName === 'TEXTAREA') {\n return true;\n }\n return false;\n}\nexport function scrollIntoViewIfNeeded(scrollContainer, element, direction, orientation) {\n if (!scrollContainer || !element || !element.scrollTo) {\n return;\n }\n let targetX = scrollContainer.scrollLeft;\n let targetY = scrollContainer.scrollTop;\n const isOverflowingX = scrollContainer.clientWidth < scrollContainer.scrollWidth;\n const isOverflowingY = scrollContainer.clientHeight < scrollContainer.scrollHeight;\n if (isOverflowingX && orientation !== 'vertical') {\n const elementOffsetLeft = getOffset(scrollContainer, element, 'left');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (direction === 'ltr') {\n if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n } else if (elementOffsetLeft - elementStyles.scrollMarginLeft < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n }\n }\n if (direction === 'rtl') {\n if (elementOffsetLeft - elementStyles.scrollMarginRight < scrollContainer.scrollLeft + containerStyles.scrollPaddingLeft) {\n // overflow to the left, scroll to align left edges\n targetX = elementOffsetLeft - elementStyles.scrollMarginLeft - containerStyles.scrollPaddingLeft;\n } else if (elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight > scrollContainer.scrollLeft + scrollContainer.clientWidth - containerStyles.scrollPaddingRight) {\n // overflow to the right, scroll to align right edges\n targetX = elementOffsetLeft + element.offsetWidth + elementStyles.scrollMarginRight - scrollContainer.clientWidth + containerStyles.scrollPaddingRight;\n }\n }\n }\n if (isOverflowingY && orientation !== 'horizontal') {\n const elementOffsetTop = getOffset(scrollContainer, element, 'top');\n const containerStyles = getStyles(scrollContainer);\n const elementStyles = getStyles(element);\n if (elementOffsetTop - elementStyles.scrollMarginTop < scrollContainer.scrollTop + containerStyles.scrollPaddingTop) {\n // overflow upwards, align top edges\n targetY = elementOffsetTop - elementStyles.scrollMarginTop - containerStyles.scrollPaddingTop;\n } else if (elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom > scrollContainer.scrollTop + scrollContainer.clientHeight - containerStyles.scrollPaddingBottom) {\n // overflow downwards, align bottom edges\n targetY = elementOffsetTop + element.offsetHeight + elementStyles.scrollMarginBottom - scrollContainer.clientHeight + containerStyles.scrollPaddingBottom;\n }\n }\n scrollContainer.scrollTo({\n left: targetX,\n top: targetY,\n behavior: 'auto'\n });\n}\nfunction getOffset(ancestor, element, side) {\n const propName = side === 'left' ? 'offsetLeft' : 'offsetTop';\n let result = 0;\n while (element.offsetParent) {\n result += element[propName];\n if (element.offsetParent === ancestor) {\n break;\n }\n element = element.offsetParent;\n }\n return result;\n}\nfunction getStyles(element) {\n const styles = getComputedStyle(element);\n return {\n scrollMarginTop: parseFloat(styles.scrollMarginTop) || 0,\n scrollMarginRight: parseFloat(styles.scrollMarginRight) || 0,\n scrollMarginBottom: parseFloat(styles.scrollMarginBottom) || 0,\n scrollMarginLeft: parseFloat(styles.scrollMarginLeft) || 0,\n scrollPaddingTop: parseFloat(styles.scrollPaddingTop) || 0,\n scrollPaddingRight: parseFloat(styles.scrollPaddingRight) || 0,\n scrollPaddingBottom: parseFloat(styles.scrollPaddingBottom) || 0,\n scrollPaddingLeft: parseFloat(styles.scrollPaddingLeft) || 0\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useCompositeListContext } from \"./CompositeListContext.js\";\nexport let IndexGuessBehavior = /*#__PURE__*/function (IndexGuessBehavior) {\n IndexGuessBehavior[IndexGuessBehavior[\"None\"] = 0] = \"None\";\n IndexGuessBehavior[IndexGuessBehavior[\"GuessFromOrder\"] = 1] = \"GuessFromOrder\";\n return IndexGuessBehavior;\n}({});\n\n/**\n * Used to register a list item and its index (DOM position) in the `CompositeList`.\n */\nexport function useCompositeListItem(params = {}) {\n const {\n label,\n metadata,\n textRef,\n indexGuessBehavior,\n index: externalIndex\n } = params;\n const {\n register,\n unregister,\n subscribeMapChange,\n elementsRef,\n labelsRef,\n nextIndexRef\n } = useCompositeListContext();\n const indexRef = React.useRef(-1);\n const [index, setIndex] = React.useState(externalIndex ?? (indexGuessBehavior === IndexGuessBehavior.GuessFromOrder ? () => {\n if (indexRef.current === -1) {\n const newIndex = nextIndexRef.current;\n nextIndexRef.current += 1;\n indexRef.current = newIndex;\n }\n return indexRef.current;\n } : -1));\n const componentRef = React.useRef(null);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index !== -1 && node !== null) {\n elementsRef.current[index] = node;\n if (labelsRef) {\n const isLabelDefined = label !== undefined;\n labelsRef.current[index] = isLabelDefined ? label : textRef?.current?.textContent ?? node.textContent;\n }\n }\n }, [index, elementsRef, labelsRef, label, textRef]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n const node = componentRef.current;\n if (node) {\n register(node, metadata);\n return () => {\n unregister(node);\n };\n }\n return undefined;\n }, [externalIndex, register, unregister, metadata]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n return subscribeMapChange(map => {\n const i = componentRef.current ? map.get(componentRef.current)?.index : null;\n if (i != null) {\n setIndex(i);\n }\n });\n }, [externalIndex, subscribeMapChange, setIndex]);\n return React.useMemo(() => ({\n ref,\n index\n }), [index, ref]);\n}","'use client';\n\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const CSPContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CSPContext.displayName = \"CSPContext\";\nconst DEFAULT_CSP_CONTEXT_VALUE = {\n disableStyleElements: false\n};\n\n/**\n * @internal\n */\nexport function useCSPContext() {\n return React.useContext(CSPContext) ?? DEFAULT_CSP_CONTEXT_VALUE;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { NOOP } from \"../noop.js\";\nimport { useBaseUiId } from \"../useBaseUiId.js\";\nimport { useLabelableContext } from \"./LabelableContext.js\";\nexport function useLabelableId(params = {}) {\n const {\n id,\n implicit = false,\n controlRef\n } = params;\n const {\n controlId,\n registerControlId\n } = useLabelableContext();\n const defaultId = useBaseUiId(id);\n const controlIdForEffect = implicit ? controlId : undefined;\n const controlSourceRef = useRefWithInit(() => Symbol('labelable-control'));\n const hasRegisteredRef = React.useRef(false);\n const hadExplicitIdRef = React.useRef(id != null);\n const unregisterControlId = useStableCallback(() => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSourceRef.current, undefined);\n });\n useIsoLayoutEffect(() => {\n if (registerControlId === NOOP) {\n return undefined;\n }\n let nextId;\n if (implicit) {\n const elem = controlRef?.current;\n if (isElement(elem) && elem.closest('label') != null) {\n nextId = id ?? null;\n } else {\n nextId = controlIdForEffect ?? defaultId;\n }\n } else if (id != null) {\n hadExplicitIdRef.current = true;\n nextId = id;\n } else if (hadExplicitIdRef.current) {\n nextId = defaultId;\n } else {\n unregisterControlId();\n return undefined;\n }\n if (nextId === undefined) {\n unregisterControlId();\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, nextId);\n return undefined;\n }, [id, controlRef, controlIdForEffect, registerControlId, implicit, defaultId, controlSourceRef, unregisterControlId]);\n React.useEffect(() => {\n return unregisterControlId;\n }, [unregisterControlId]);\n return controlId ?? defaultId;\n}","export let SliderThumbDataAttributes = /*#__PURE__*/function (SliderThumbDataAttributes) {\n /**\n * Indicates the index of the thumb in range sliders.\n */\n SliderThumbDataAttributes[\"index\"] = \"data-index\";\n /**\n * Present while the user is dragging.\n */\n SliderThumbDataAttributes[\"dragging\"] = \"data-dragging\";\n /**\n * Indicates the orientation of the slider.\n * @type {'horizontal' | 'vertical'}\n */\n SliderThumbDataAttributes[\"orientation\"] = \"data-orientation\";\n /**\n * Present when the slider is disabled.\n */\n SliderThumbDataAttributes[\"disabled\"] = \"data-disabled\";\n /**\n * Present when the slider is in a valid state (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"valid\"] = \"data-valid\";\n /**\n * Present when the slider is in an invalid state (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"invalid\"] = \"data-invalid\";\n /**\n * Present when the slider has been touched (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"touched\"] = \"data-touched\";\n /**\n * Present when the slider's value has changed (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"dirty\"] = \"data-dirty\";\n /**\n * Present when the slider is focused (when wrapped in Field.Root).\n */\n SliderThumbDataAttributes[\"focused\"] = \"data-focused\";\n return SliderThumbDataAttributes;\n}({});","// This file is autogenerated. Do not edit it directly.\n// To update it, modify the corresponding source file and run `pnpm inline-scripts`.\n\n// prettier-ignore\nexport const script = '!function(){const t=document.currentScript?.parentElement;if(!t)return;const e=t.closest(\"[data-base-ui-slider-control]\");if(!e)return;const r=e.querySelector(\"[data-base-ui-slider-indicator]\"),i=e.getBoundingClientRect(),n=\"vertical\"===e.getAttribute(\"data-orientation\")?\"height\":\"width\",o=e.querySelectorAll(\\'input[type=\"range\"]\\'),l=o.length>1,s=o.length-1;let a=null,u=null;for(let t=0;t<o.length;t+=1){const e=o[t],y=parseFloat(e.getAttribute(\"value\")??\"\");if(Number.isNaN(y))return;const c=e.parentElement;if(!c)return;const p=parseFloat(e.getAttribute(\"max\")??\"100\"),g=parseFloat(e.getAttribute(\"min\")??\"0\"),b=c?.getBoundingClientRect(),d=i[n]-b[n],m=100*(y-g)/(p-g),v=(b[n]/2+d*m/100)/i[n]*100;c.style.setProperty(\"--position\",`${v}%`),Number.isFinite(v)&&(c.style.removeProperty(\"visibility\"),r&&(0===t?(a=v,r.style.setProperty(\"--start-position\",`${v}%`),l||r.style.removeProperty(\"visibility\")):t===s&&(u=v-(a??0),r.style.setProperty(\"--end-position\",`${v}%`),r.style.setProperty(\"--relative-size\",`${u}%`),r.style.removeProperty(\"visibility\"))))}}();';","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { visuallyHidden } from '@base-ui/utils/visuallyHidden';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { clamp } from \"../../internals/clamp.js\";\nimport { formatNumber } from \"../../utils/formatNumber.js\";\nimport { mergeProps } from \"../../merge-props/index.js\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.js\";\nimport { useIsHydrating } from \"../../utils/useIsHydrating.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { valueToPercent } from \"../../utils/valueToPercent.js\";\nimport { ARROW_DOWN, ARROW_UP, ARROW_RIGHT, ARROW_LEFT, HOME, END, COMPOSITE_KEYS, PAGE_UP, PAGE_DOWN } from \"../../internals/composite/composite.js\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.js\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.js\";\nimport { useCSPContext } from \"../../internals/csp-context/CSPContext.js\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.js\";\nimport { matchesFocusVisible } from \"../../floating-ui-react/utils/element.js\";\nimport { useLabelableId } from \"../../internals/labelable-provider/useLabelableId.js\";\nimport { getMidpoint } from \"../utils/getMidpoint.js\";\nimport { getSliderValue } from \"../utils/getSliderValue.js\";\nimport { getDecimalPrecision, roundValueToStep } from \"../utils/roundValueToStep.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\nimport { SliderThumbDataAttributes } from \"./SliderThumbDataAttributes.js\";\nimport { script as prehydrationScript } from \"./prehydrationScript.min.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ALL_KEYS = new Set([...COMPOSITE_KEYS, PAGE_UP, PAGE_DOWN]);\nfunction getDefaultAriaValueText(values, index, format, locale) {\n if (index < 0) {\n return undefined;\n }\n if (values.length === 2) {\n if (index === 0) {\n return `${formatNumber(values[index], locale, format)} start range`;\n }\n return `${formatNumber(values[index], locale, format)} end range`;\n }\n return format ? formatNumber(values[index], locale, format) : undefined;\n}\nfunction getNewValue(thumbValue, increment, direction, min, max) {\n const value = direction === 1 ? thumbValue + increment : thumbValue - increment;\n const roundedValue = Number(value.toFixed(Math.max(getDecimalPrecision(thumbValue), getDecimalPrecision(increment), getDecimalPrecision(min))));\n return clamp(roundedValue, min, max);\n}\n\n/**\n * The draggable part of the slider at the tip of the indicator.\n * Renders a `<div>` element and a nested `<input type=\"range\">`.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderThumb = /*#__PURE__*/React.forwardRef(function SliderThumb(componentProps, forwardedRef) {\n const {\n render,\n children: childrenProp,\n className,\n 'aria-describedby': ariaDescribedByProp,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledByProp,\n disabled: disabledProp = false,\n getAriaLabel: getAriaLabelProp,\n getAriaValueText: getAriaValueTextProp,\n id: idProp,\n index: indexProp,\n inputRef: inputRefProp,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onKeyDown: onKeyDownProp,\n tabIndex: tabIndexProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n nonce\n } = useCSPContext();\n const id = useBaseUiId(idProp);\n const {\n active: activeIndex,\n lastUsedThumbIndex,\n controlRef,\n disabled: contextDisabled,\n validation,\n formatOptionsRef,\n handleInputChange,\n inset,\n labelId,\n largeStep,\n locale,\n max,\n min,\n minStepsBetweenValues,\n form,\n name,\n orientation,\n pressedInputRef,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n renderBeforeHydration,\n setActive,\n setIndicatorPosition,\n state,\n step,\n values: sliderValues\n } = useSliderRootContext();\n const direction = useDirection();\n const disabled = disabledProp || contextDisabled;\n const range = sliderValues.length > 1;\n const vertical = orientation === 'vertical';\n const rtl = direction === 'rtl';\n const {\n setTouched,\n setFocused,\n validationMode\n } = useFieldRootContext();\n const thumbRef = React.useRef(null);\n const inputRef = React.useRef(null);\n const restoringFocusVisibleRef = React.useRef(false);\n const defaultInputId = useBaseUiId();\n const labelableId = useLabelableId();\n const inputId = range ? defaultInputId : labelableId;\n const thumbMetadata = React.useMemo(() => ({\n inputId\n }), [inputId]);\n const {\n ref: listItemRef,\n index: compositeIndex\n } = useCompositeListItem({\n metadata: thumbMetadata\n });\n const index = !range ? 0 : indexProp ?? compositeIndex;\n const last = index === sliderValues.length - 1;\n const thumbValue = sliderValues[index];\n const thumbValuePercent = valueToPercent(thumbValue, min, max);\n const [positionPercent, setPositionPercent] = React.useState();\n const isHydrating = useIsHydrating();\n const safeLastUsedThumbIndex = lastUsedThumbIndex >= 0 && lastUsedThumbIndex < sliderValues.length ? lastUsedThumbIndex : -1;\n const getInsetPosition = useStableCallback(() => {\n const control = controlRef.current;\n const thumb = thumbRef.current;\n if (!control || !thumb) {\n return;\n }\n const thumbRect = thumb.getBoundingClientRect();\n const controlRect = control.getBoundingClientRect();\n const side = vertical ? 'height' : 'width';\n // the total travel distance adjusted to account for the thumb size\n const controlSize = controlRect[side] - thumbRect[side];\n // px distance from the starting edge (inline-start or bottom) to the thumb center\n const thumbOffsetFromControlEdge = thumbRect[side] / 2 + controlSize * thumbValuePercent / 100;\n const nextPositionPercent = thumbOffsetFromControlEdge / controlRect[side] * 100;\n const nextInsetPosition = Number.isFinite(nextPositionPercent) ? nextPositionPercent : undefined;\n setPositionPercent(nextInsetPosition);\n if (index === 0) {\n setIndicatorPosition(prevPosition => [nextInsetPosition, prevPosition[1]]);\n } else if (last) {\n setIndicatorPosition(prevPosition => [prevPosition[0], nextInsetPosition]);\n }\n });\n useIsoLayoutEffect(() => {\n if (inset) {\n queueMicrotask(getInsetPosition);\n }\n }, [getInsetPosition, inset]);\n useIsoLayoutEffect(() => {\n if (inset) {\n getInsetPosition();\n }\n }, [getInsetPosition, inset, thumbValuePercent]);\n useIsoLayoutEffect(() => {\n if (!inset) {\n return undefined;\n }\n const control = controlRef.current;\n const thumb = thumbRef.current;\n if (!control || !thumb) {\n return undefined;\n }\n const ResizeObserverCtor = ownerWindow(control).ResizeObserver;\n if (typeof ResizeObserverCtor !== 'function') {\n return undefined;\n }\n const resizeObserver = new ResizeObserverCtor(getInsetPosition);\n resizeObserver.observe(control);\n resizeObserver.observe(thumb);\n return () => {\n resizeObserver.disconnect();\n };\n }, [controlRef, getInsetPosition, inset]);\n const startEdge = vertical ? 'bottom' : 'insetInlineStart';\n const crossOffsetProperty = vertical ? 'left' : 'top';\n let zIndex;\n if (range) {\n if (activeIndex === index) {\n zIndex = 2;\n } else if (safeLastUsedThumbIndex === index) {\n zIndex = 1;\n }\n } else if (activeIndex === index) {\n zIndex = 1;\n }\n let thumbStyle;\n if (inset) {\n thumbStyle = {\n ['--position']: `${positionPercent ?? 0}%`,\n visibility: renderBeforeHydration && isHydrating || positionPercent === undefined ? 'hidden' : undefined,\n position: 'absolute',\n [startEdge]: 'var(--position)',\n [crossOffsetProperty]: '50%',\n translate: `${(vertical || !rtl ? -1 : 1) * 50}% ${(vertical ? 1 : -1) * 50}%`,\n zIndex\n };\n } else {\n thumbStyle = !Number.isFinite(thumbValuePercent) ? visuallyHidden : {\n position: 'absolute',\n [startEdge]: `${thumbValuePercent}%`,\n [crossOffsetProperty]: '50%',\n translate: `${(vertical || !rtl ? -1 : 1) * 50}% ${(vertical ? 1 : -1) * 50}%`,\n zIndex\n };\n }\n let cssWritingMode;\n if (orientation === 'vertical') {\n cssWritingMode = rtl ? 'vertical-rl' : 'vertical-lr';\n }\n const ariaLabel = typeof getAriaLabelProp === 'function' ? getAriaLabelProp(index) : ariaLabelProp;\n const inputProps = mergeProps({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledByProp ?? (ariaLabel == null ? labelId : undefined),\n 'aria-describedby': ariaDescribedByProp,\n 'aria-orientation': orientation,\n 'aria-valuenow': thumbValue,\n 'aria-valuetext': typeof getAriaValueTextProp === 'function' ? getAriaValueTextProp(formatNumber(thumbValue, locale, formatOptionsRef.current ?? undefined), thumbValue, index) : getDefaultAriaValueText(sliderValues, index, formatOptionsRef.current ?? undefined, locale),\n disabled,\n form,\n id: inputId,\n max,\n min,\n name,\n onChange(event) {\n handleInputChange(event.currentTarget.valueAsNumber, index, event);\n },\n onFocus(event) {\n const isRestoringFocusVisible = restoringFocusVisibleRef.current;\n restoringFocusVisibleRef.current = false;\n setActive(index);\n setFocused(true);\n if (isRestoringFocusVisible) {\n event.stopPropagation();\n }\n },\n onBlur(event) {\n if (restoringFocusVisibleRef.current) {\n event.stopPropagation();\n return;\n }\n if (!thumbRef.current) {\n return;\n }\n setActive(-1);\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(getSliderValue(thumbValue, index, min, max, range, sliderValues));\n }\n },\n onKeyDown(event) {\n if (!ALL_KEYS.has(event.key)) {\n return;\n }\n if (COMPOSITE_KEYS.has(event.key)) {\n event.stopPropagation();\n }\n let newValue = null;\n const roundedValue = roundValueToStep(thumbValue, step, min);\n switch (event.key) {\n case ARROW_UP:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, 1, min, max);\n break;\n case ARROW_RIGHT:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, rtl ? -1 : 1, min, max);\n break;\n case ARROW_DOWN:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, -1, min, max);\n break;\n case ARROW_LEFT:\n newValue = getNewValue(roundedValue, event.shiftKey ? largeStep : step, rtl ? 1 : -1, min, max);\n break;\n case PAGE_UP:\n newValue = getNewValue(roundedValue, largeStep, 1, min, max);\n break;\n case PAGE_DOWN:\n newValue = getNewValue(roundedValue, largeStep, -1, min, max);\n break;\n case END:\n newValue = max;\n if (range) {\n newValue = Number.isFinite(sliderValues[index + 1]) ? sliderValues[index + 1] - step * minStepsBetweenValues : max;\n }\n break;\n case HOME:\n newValue = min;\n if (range) {\n newValue = Number.isFinite(sliderValues[index - 1]) ? sliderValues[index - 1] + step * minStepsBetweenValues : min;\n }\n break;\n default:\n break;\n }\n if (newValue !== null) {\n const input = event.currentTarget;\n if (!matchesFocusVisible(input)) {\n restoringFocusVisibleRef.current = true;\n input.blur();\n input.focus({\n preventScroll: true,\n // Show `:focus-visible` after keyboard interaction, even if the\n // thumb was previously focused by a pointer.\n focusVisible: true\n });\n }\n handleInputChange(newValue, index, event);\n event.preventDefault();\n }\n },\n step,\n style: {\n ...visuallyHidden,\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%',\n writingMode: cssWritingMode\n },\n tabIndex: tabIndexProp ?? undefined,\n type: 'range',\n value: thumbValue ?? ''\n }, validation.getInputValidationProps);\n const mergedInputRef = useMergedRefs(inputRef, validation.inputRef, inputRefProp);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, listItemRef, thumbRef],\n props: [{\n [SliderThumbDataAttributes.index]: index,\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [childrenProp, /*#__PURE__*/_jsx(\"input\", {\n ref: mergedInputRef,\n ...inputProps,\n suppressHydrationWarning: true\n }), inset && isHydrating && renderBeforeHydration &&\n // this must be rendered with the last thumb to ensure all\n // preceding thumbs are already rendered in the DOM\n last && /*#__PURE__*/_jsx(\"script\", {\n nonce: nonce\n // eslint-disable-next-line react/no-danger\n ,\n dangerouslySetInnerHTML: {\n __html: prehydrationScript\n },\n suppressHydrationWarning: true\n })]\n }),\n id,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onPointerDown(event) {\n pressedThumbIndexRef.current = index;\n if (thumbRef.current != null) {\n const axis = orientation === 'horizontal' ? 'x' : 'y';\n const midpoint = getMidpoint(thumbRef.current);\n const offset = (orientation === 'horizontal' ? event.clientX : event.clientY) - midpoint[axis];\n pressedThumbCenterOffsetRef.current = offset;\n }\n if (inputRef.current != null && pressedInputRef.current !== inputRef.current) {\n pressedInputRef.current = inputRef.current;\n }\n },\n style: thumbStyle,\n suppressHydrationWarning: renderBeforeHydration || undefined\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderThumb.displayName = \"SliderThumb\";","'use client';\n\nimport * as React from 'react';\nimport { valueToPercent } from \"../../utils/valueToPercent.js\";\nimport { useIsHydrating } from \"../../utils/useIsHydrating.js\";\nimport { useRenderElement } from \"../../internals/useRenderElement.js\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.js\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.js\";\nfunction getInsetStyles(vertical, range, start, end, renderBeforeHydration, hydrating) {\n const visibility = start === undefined || range && end === undefined ? 'hidden' : undefined;\n const startEdge = vertical ? 'bottom' : 'insetInlineStart';\n const mainSide = vertical ? 'height' : 'width';\n const crossSide = vertical ? 'width' : 'height';\n const styles = {\n visibility: renderBeforeHydration && hydrating ? 'hidden' : visibility,\n position: vertical ? 'absolute' : 'relative',\n [crossSide]: 'inherit'\n };\n styles['--start-position'] = `${start ?? 0}%`;\n if (!range) {\n styles[startEdge] = 0;\n styles[mainSide] = 'var(--start-position)';\n return styles;\n }\n styles['--relative-size'] = `${(end ?? 0) - (start ?? 0)}%`;\n styles[startEdge] = 'var(--start-position)';\n styles[mainSide] = 'var(--relative-size)';\n return styles;\n}\nfunction getCenteredStyles(vertical, range, start, end) {\n const startEdge = vertical ? 'bottom' : 'insetInlineStart';\n const mainSide = vertical ? 'height' : 'width';\n const crossSide = vertical ? 'width' : 'height';\n const styles = {\n position: vertical ? 'absolute' : 'relative',\n [crossSide]: 'inherit'\n };\n if (!range) {\n styles[startEdge] = 0;\n styles[mainSide] = `${start}%`;\n return styles;\n }\n const size = end - start;\n styles[startEdge] = `${start}%`;\n styles[mainSide] = `${size}%`;\n return styles;\n}\n\n/**\n * Visualizes the current value of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderIndicator = /*#__PURE__*/React.forwardRef(function SliderIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style: styleProp,\n ...elementProps\n } = componentProps;\n const {\n indicatorPosition,\n inset,\n max,\n min,\n orientation,\n renderBeforeHydration,\n state,\n values\n } = useSliderRootContext();\n const isHydrating = useIsHydrating();\n const vertical = orientation === 'vertical';\n const range = values.length > 1;\n const style = inset ? getInsetStyles(vertical, range, indicatorPosition[0], indicatorPosition[1], renderBeforeHydration, isHydrating) : getCenteredStyles(vertical, range, valueToPercent(values[0], min, max), valueToPercent(values[values.length - 1], min, max));\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n ['data-base-ui-slider-indicator']: renderBeforeHydration ? '' : undefined,\n style,\n suppressHydrationWarning: renderBeforeHydration || undefined\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderIndicator.displayName = \"SliderIndicator\";","\"use client\";\nimport { Slider as Base } from \"@base-ui/react/slider\";\nimport { Is } from \"sidekicker\";\nimport { css } from \"../../lib/dom\";\nimport { Tooltip } from \"../floating/tooltip\";\nimport { useEffect, useRef, useState } from \"react\";\nimport { uuid } from \"../../lib/fns\";\nimport { useLocale } from \"../../hooks/use-locale\";\n\ntype SliderProps = Parameters<typeof Base.Root>[0] & {\n tooltip?: boolean;\n};\n\nconst Thumb = (props: { tooltip: boolean }) => {\n const [float, setFloat] = useState<number | null>(null);\n const ref = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const html = ref.current;\n if (html === null) return;\n const initialValue = Number(html.getAttribute(\"aria-valuenow\"));\n if (Is.number(initialValue)) {\n setFloat(initialValue);\n }\n const observer = new MutationObserver((changes) => {\n const span = changes[0].target as HTMLSpanElement;\n const value = Number(span.getAttribute(\"aria-valuenow\"));\n setFloat(Is.number(value) ? value : null);\n });\n observer.observe(html, { attributeFilter: [\"aria-valuenow\"] });\n return () => observer.disconnect();\n }, []);\n\n return (\n <Tooltip\n title=\"\"\n ref={ref}\n as={Base.Thumb}\n enabled={props.tooltip}\n className=\"focus-within::scale-105 block size-slider-thumb-size cursor-grab rounded-full border-2 border-input-border bg-input-switch shadow-shadow-floating focus-within:border-primary focus-within:outline active:cursor-grabbing\"\n >\n {float}\n </Tooltip>\n );\n};\n\nexport const Slider = (props: SliderProps) => {\n const { tooltip, className, defaultValue, value, ...restProps } = props;\n const id = useRef(uuid());\n const array = defaultValue || value || [];\n const locale = useLocale();\n\n return (\n <Base.Root {...restProps} value={value} locale={locale} defaultValue={defaultValue}>\n <Base.Control className={css(\"relative flex h-slider-control-h w-full touch-none select-none items-center\", className)}>\n <Base.Track className=\"relative h-slider-track-h grow rounded-full bg-background\">\n <Base.Indicator className=\"absolute h-full rounded-full bg-primary\" />\n </Base.Track>\n {Array.isArray(array) ? array.map((_, i) => <Thumb tooltip={tooltip ?? false} key={`${id.current}-${i}`} />) : null}\n </Base.Control>\n </Base.Root>\n );\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { t as e } from "./Plus.es-DbyRkEE2.js";
|
|
2
|
+
import { t } from "./Trash.es-BFAc8PMf.js";
|
|
3
|
+
import { t as n } from "./IconBase.es-BlJQ9IXo.js";
|
|
4
|
+
import { t as r } from "./use-translations-BE4PuhLm.js";
|
|
5
|
+
import { c as i } from "./fns-KbsWlOTG.js";
|
|
6
|
+
import { Select as a } from "./components/form/select.js";
|
|
7
|
+
import { Dropdown as o } from "./components/floating/dropdown.js";
|
|
8
|
+
import { i as s } from "./table-lib-1bkYSklk.js";
|
|
9
|
+
import * as c from "react";
|
|
10
|
+
import { Fragment as l, useState as u } from "react";
|
|
11
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
12
|
+
//#region ../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/CaretUpDown.es.js
|
|
13
|
+
var p = /* @__PURE__ */ new Map([
|
|
14
|
+
["bold", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M184.49,167.51a12,12,0,0,1,0,17l-48,48a12,12,0,0,1-17,0l-48-48a12,12,0,0,1,17-17L128,207l39.51-39.52A12,12,0,0,1,184.49,167.51Zm-96-79L128,49l39.51,39.52a12,12,0,0,0,17-17l-48-48a12,12,0,0,0-17,0l-48,48a12,12,0,0,0,17,17Z" }))],
|
|
15
|
+
["duotone", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", {
|
|
16
|
+
d: "M80,176h96l-48,48ZM128,32,80,80h96Z",
|
|
17
|
+
opacity: "0.2"
|
|
18
|
+
}), /* @__PURE__ */ c.createElement("path", { d: "M176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Zm-48,44.69L99.31,184h57.38ZM80,88h96a8,8,0,0,0,5.66-13.66l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,80,88Zm48-44.69L156.69,72H99.31Z" }))],
|
|
19
|
+
["fill", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M72.61,83.06a8,8,0,0,1,1.73-8.72l48-48a8,8,0,0,1,11.32,0l48,48A8,8,0,0,1,176,88H80A8,8,0,0,1,72.61,83.06ZM176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Z" }))],
|
|
20
|
+
["light", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M180.24,171.76a6,6,0,0,1,0,8.48l-48,48a6,6,0,0,1-8.48,0l-48-48a6,6,0,0,1,8.48-8.48L128,215.51l43.76-43.75A6,6,0,0,1,180.24,171.76Zm-96-87.52L128,40.49l43.76,43.75a6,6,0,0,0,8.48-8.48l-48-48a6,6,0,0,0-8.48,0l-48,48a6,6,0,0,0,8.48,8.48Z" }))],
|
|
21
|
+
["regular", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M181.66,170.34a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-48-48a8,8,0,0,1,11.32-11.32L128,212.69l42.34-42.35A8,8,0,0,1,181.66,170.34Zm-96-84.68L128,43.31l42.34,42.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,85.66Z" }))],
|
|
22
|
+
["thin", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M178.83,173.17a4,4,0,0,1,0,5.66l-48,48a4,4,0,0,1-5.66,0l-48-48a4,4,0,0,1,5.66-5.66L128,218.34l45.17-45.17A4,4,0,0,1,178.83,173.17Zm-96-90.34L128,37.66l45.17,45.17a4,4,0,1,0,5.66-5.66l-48-48a4,4,0,0,0-5.66,0l-48,48a4,4,0,0,0,5.66,5.66Z" }))]
|
|
23
|
+
]), m = /* @__PURE__ */ new Map([
|
|
24
|
+
["bold", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M128,128a12,12,0,0,1-12,12H48a12,12,0,0,1,0-24h68A12,12,0,0,1,128,128ZM48,76H180a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24Zm52,104H48a12,12,0,0,0,0,24h52a12,12,0,0,0,0-24Zm132.49-20.49a12,12,0,0,0-17,0L196,179V112a12,12,0,0,0-24,0v67l-19.51-19.52a12,12,0,0,0-17,17l40,40a12,12,0,0,0,17,0l40-40A12,12,0,0,0,232.49,159.51Z" }))],
|
|
25
|
+
["duotone", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", {
|
|
26
|
+
d: "M224,80v88l-24,24H48V64H208A16,16,0,0,1,224,80Z",
|
|
27
|
+
opacity: "0.2"
|
|
28
|
+
}), /* @__PURE__ */ c.createElement("path", { d: "M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z" }))],
|
|
29
|
+
["fill", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h96a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm40,112H72a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Zm8-48H72a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm77.66,29.66-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L160,164.69V120a8,8,0,0,1,16,0v44.69l10.34-10.35a8,8,0,0,1,11.32,11.32Z" }))],
|
|
30
|
+
["light", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M126,128a6,6,0,0,1-6,6H48a6,6,0,0,1,0-12h72A6,6,0,0,1,126,128ZM48,70H184a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12Zm56,116H48a6,6,0,0,0,0,12h56a6,6,0,0,0,0-12Zm124.24-22.24a6,6,0,0,0-8.48,0L190,193.51V112a6,6,0,0,0-12,0v81.51l-29.76-29.75a6,6,0,0,0-8.48,8.48l40,40a6,6,0,0,0,8.48,0l40-40A6,6,0,0,0,228.24,163.76Z" }))],
|
|
31
|
+
["regular", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z" }))],
|
|
32
|
+
["thin", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M124,128a4,4,0,0,1-4,4H48a4,4,0,0,1,0-8h72A4,4,0,0,1,124,128ZM48,68H184a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8Zm56,120H48a4,4,0,0,0,0,8h56a4,4,0,0,0,0-8Zm122.83-22.83a4,4,0,0,0-5.66,0L188,198.34V112a4,4,0,0,0-8,0v86.34l-33.17-33.17a4,4,0,0,0-5.66,5.66l40,40a4,4,0,0,0,5.66,0l40-40A4,4,0,0,0,226.83,165.17Z" }))]
|
|
33
|
+
]), h = /* @__PURE__ */ new Map([
|
|
34
|
+
["bold", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M36,128a12,12,0,0,1,12-12h68a12,12,0,0,1,0,24H48A12,12,0,0,1,36,128ZM48,76h52a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24ZM180,180H48a12,12,0,0,0,0,24H180a12,12,0,0,0,0-24ZM232.49,79.51l-40-40a12,12,0,0,0-17,0l-40,40a12,12,0,0,0,17,17L172,77v67a12,12,0,0,0,24,0V77l19.51,19.52a12,12,0,0,0,17-17Z" }))],
|
|
35
|
+
["duotone", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", {
|
|
36
|
+
d: "M224,88v88a16,16,0,0,1-16,16H48V64H200Z",
|
|
37
|
+
opacity: "0.2"
|
|
38
|
+
}), /* @__PURE__ */ c.createElement("path", { d: "M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z" }))],
|
|
39
|
+
["fill", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h40a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm0,48h48a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm96,64H72a8,8,0,0,1,0-16h96a8,8,0,0,1,0,16Zm29.66-82.34a8,8,0,0,1-11.32,0L176,91.31V136a8,8,0,0,1-16,0V91.31l-10.34,10.35a8,8,0,0,1-11.32-11.32l24-24a8,8,0,0,1,11.32,0l24,24A8,8,0,0,1,197.66,101.66Z" }))],
|
|
40
|
+
["light", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M42,128a6,6,0,0,1,6-6h72a6,6,0,0,1,0,12H48A6,6,0,0,1,42,128Zm6-58h56a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12ZM184,186H48a6,6,0,0,0,0,12H184a6,6,0,0,0,0-12ZM228.24,83.76l-40-40a6,6,0,0,0-8.48,0l-40,40a6,6,0,0,0,8.48,8.48L178,62.49V144a6,6,0,0,0,12,0V62.49l29.76,29.75a6,6,0,0,0,8.48-8.48Z" }))],
|
|
41
|
+
["regular", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z" }))],
|
|
42
|
+
["thin", /* @__PURE__ */ c.createElement(c.Fragment, null, /* @__PURE__ */ c.createElement("path", { d: "M44,128a4,4,0,0,1,4-4h72a4,4,0,0,1,0,8H48A4,4,0,0,1,44,128Zm4-60h56a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8ZM184,188H48a4,4,0,0,0,0,8H184a4,4,0,0,0,0-8ZM226.83,85.17l-40-40a4,4,0,0,0-5.66,0l-40,40a4,4,0,0,0,5.66,5.66L180,57.66V144a4,4,0,0,0,8,0V57.66l33.17,33.17a4,4,0,1,0,5.66-5.66Z" }))]
|
|
43
|
+
]), g = c.forwardRef((e, t) => /* @__PURE__ */ c.createElement(n, {
|
|
44
|
+
ref: t,
|
|
45
|
+
...e,
|
|
46
|
+
weights: p
|
|
47
|
+
}));
|
|
48
|
+
g.displayName = "CaretUpDownIcon";
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region ../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortAscending.es.js
|
|
51
|
+
var _ = c.forwardRef((e, t) => /* @__PURE__ */ c.createElement(n, {
|
|
52
|
+
ref: t,
|
|
53
|
+
...e,
|
|
54
|
+
weights: m
|
|
55
|
+
}));
|
|
56
|
+
_.displayName = "SortAscendingIcon";
|
|
57
|
+
//#endregion
|
|
58
|
+
//#region ../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortDescending.es.js
|
|
59
|
+
var v = c.forwardRef((e, t) => /* @__PURE__ */ c.createElement(n, {
|
|
60
|
+
ref: t,
|
|
61
|
+
...e,
|
|
62
|
+
weights: h
|
|
63
|
+
}));
|
|
64
|
+
v.displayName = "SortDescendingIcon";
|
|
65
|
+
//#endregion
|
|
66
|
+
//#region src/components/table/sort.tsx
|
|
67
|
+
var y = (e) => (t, n) => e.reduce((e, r) => {
|
|
68
|
+
let i = r.type === "desc" ? -1 : 1, a = r.value, o = t[a] > n[a] ? i : t[a] < n[a] ? -i : 0;
|
|
69
|
+
return e === 0 ? o : e;
|
|
70
|
+
}, 0), b = (e, t) => (e.sort(y(t)), e), x = (e, t, n) => ({
|
|
71
|
+
label: t,
|
|
72
|
+
id: i(),
|
|
73
|
+
type: n,
|
|
74
|
+
value: e.id
|
|
75
|
+
}), S = (n) => {
|
|
76
|
+
let i = r(), s = {
|
|
77
|
+
asc: {
|
|
78
|
+
label: i.tableSortAsc,
|
|
79
|
+
value: "asc"
|
|
80
|
+
},
|
|
81
|
+
desc: {
|
|
82
|
+
label: i.tableSortDesc,
|
|
83
|
+
value: "desc"
|
|
84
|
+
}
|
|
85
|
+
}, c = [s.asc, s.desc], u = () => {
|
|
86
|
+
let e = n.cols[0];
|
|
87
|
+
e && n.set((t) => [...t, x(e, s.asc.label, s.asc.value)]);
|
|
88
|
+
}, p = (e) => (t) => {
|
|
89
|
+
let r = t.target.value;
|
|
90
|
+
n.set((t) => t.map((t) => t.id === e ? {
|
|
91
|
+
...t,
|
|
92
|
+
value: r
|
|
93
|
+
} : t));
|
|
94
|
+
}, m = (e) => (t) => {
|
|
95
|
+
let r = t.target.value;
|
|
96
|
+
n.set((t) => t.map((t) => t.id === e ? {
|
|
97
|
+
...t,
|
|
98
|
+
type: r
|
|
99
|
+
} : t));
|
|
100
|
+
}, h = (e) => {
|
|
101
|
+
let t = e.currentTarget.dataset.id || "";
|
|
102
|
+
n.set((e) => e.filter((e) => e.id !== t));
|
|
103
|
+
};
|
|
104
|
+
return /* @__PURE__ */ d(l, { children: /* @__PURE__ */ d(o, {
|
|
105
|
+
title: i.tableSortDropdownTitle,
|
|
106
|
+
trigger: /* @__PURE__ */ f("span", {
|
|
107
|
+
className: "flex items-center gap-table-inline-gap-tight proportional-nums",
|
|
108
|
+
children: [
|
|
109
|
+
/* @__PURE__ */ d(g, { size: 14 }),
|
|
110
|
+
i.tableSortOrderByLabel,
|
|
111
|
+
" ",
|
|
112
|
+
n.sorters.length === 0 ? "" : ` (${n.sorters.length})`
|
|
113
|
+
]
|
|
114
|
+
}),
|
|
115
|
+
children: /* @__PURE__ */ f("ul", {
|
|
116
|
+
className: "mt-table-groups-mt space-y-2",
|
|
117
|
+
children: [n.sorters.map((e) => /* @__PURE__ */ f("li", {
|
|
118
|
+
className: "flex flex-nowrap gap-3",
|
|
119
|
+
children: [
|
|
120
|
+
/* @__PURE__ */ d(a, {
|
|
121
|
+
options: n.options,
|
|
122
|
+
value: e.value,
|
|
123
|
+
onChange: p(e.id),
|
|
124
|
+
title: i.tableSortOrderInputTitle,
|
|
125
|
+
placeholder: i.tableSortOrderInputPlaceholder
|
|
126
|
+
}),
|
|
127
|
+
/* @__PURE__ */ d(a, {
|
|
128
|
+
onChange: m(e.id),
|
|
129
|
+
value: e.type,
|
|
130
|
+
options: c,
|
|
131
|
+
title: i.tableSortTypeInputTitle,
|
|
132
|
+
placeholder: i.tableSortTypeInputPlaceholder
|
|
133
|
+
}),
|
|
134
|
+
/* @__PURE__ */ d("button", {
|
|
135
|
+
className: "mt-table-groups-mt",
|
|
136
|
+
"data-id": e.id,
|
|
137
|
+
onClick: h,
|
|
138
|
+
children: /* @__PURE__ */ d("span", {
|
|
139
|
+
className: "text-danger",
|
|
140
|
+
children: /* @__PURE__ */ d(t, {
|
|
141
|
+
"aria-hidden": "true",
|
|
142
|
+
size: 14
|
|
143
|
+
})
|
|
144
|
+
})
|
|
145
|
+
})
|
|
146
|
+
]
|
|
147
|
+
}, `sorter-select-${e.id}`)), /* @__PURE__ */ d("li", { children: /* @__PURE__ */ f("button", {
|
|
148
|
+
type: "button",
|
|
149
|
+
onClick: u,
|
|
150
|
+
className: "flex items-center gap-table-inline-gap-tight text-primary",
|
|
151
|
+
children: [
|
|
152
|
+
/* @__PURE__ */ d(e, { size: 14 }),
|
|
153
|
+
" ",
|
|
154
|
+
i.tableSortAddButton
|
|
155
|
+
]
|
|
156
|
+
}) })]
|
|
157
|
+
})
|
|
158
|
+
}) });
|
|
159
|
+
}, C = (e) => {
|
|
160
|
+
let t = r(), [n, i] = u(() => {
|
|
161
|
+
let t = e.sorters.find((t) => t.value === e.col.id);
|
|
162
|
+
return t ? t.type : "undefined";
|
|
163
|
+
}), a = () => {
|
|
164
|
+
let t = n === "undefined" ? "asc" : n === "asc" ? "desc" : "undefined";
|
|
165
|
+
i(t), e.setSorters((n) => {
|
|
166
|
+
if (t === "undefined") return n.filter((t) => t.value !== e.col.id);
|
|
167
|
+
let r = n.findIndex((t) => t.value === e.col.id), i = x(e.col, t, t);
|
|
168
|
+
return r === -1 ? [...n, i] : (n[r] = i, [...n]);
|
|
169
|
+
});
|
|
170
|
+
}, o = `${e.col.id}-sorter-id`, c = s(e.col);
|
|
171
|
+
return /* @__PURE__ */ f("button", {
|
|
172
|
+
"aria-labelledby": o,
|
|
173
|
+
className: "isolate flex items-center",
|
|
174
|
+
onClick: a,
|
|
175
|
+
type: "button",
|
|
176
|
+
children: [
|
|
177
|
+
/* @__PURE__ */ f("span", {
|
|
178
|
+
id: o,
|
|
179
|
+
className: "sr-only",
|
|
180
|
+
children: [
|
|
181
|
+
t.tableSortDropdownTitle,
|
|
182
|
+
" ",
|
|
183
|
+
c
|
|
184
|
+
]
|
|
185
|
+
}),
|
|
186
|
+
n === "asc" ? /* @__PURE__ */ d(_, { size: 14 }) : null,
|
|
187
|
+
n === "desc" ? /* @__PURE__ */ d(v, { size: 14 }) : null,
|
|
188
|
+
n === "undefined" ? /* @__PURE__ */ d(g, { size: 14 }) : null
|
|
189
|
+
]
|
|
190
|
+
});
|
|
191
|
+
};
|
|
192
|
+
//#endregion
|
|
193
|
+
export { C as n, b as r, S as t };
|
|
194
|
+
|
|
195
|
+
//# sourceMappingURL=sort-DGmiselV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-DGmiselV.js","names":["e","e","a","e","a","e","o","a","n","o","n","c","e","n","c"],"sources":["../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/CaretUpDown.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/SortAscending.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/defs/SortDescending.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/CaretUpDown.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortAscending.es.js","../../../node_modules/.pnpm/@phosphor-icons+react@2.1.10_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@phosphor-icons/react/dist/csr/SortDescending.es.js","../src/components/table/sort.tsx"],"sourcesContent":["import * as e from \"react\";\nconst a = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M184.49,167.51a12,12,0,0,1,0,17l-48,48a12,12,0,0,1-17,0l-48-48a12,12,0,0,1,17-17L128,207l39.51-39.52A12,12,0,0,1,184.49,167.51Zm-96-79L128,49l39.51,39.52a12,12,0,0,0,17-17l-48-48a12,12,0,0,0-17,0l-48,48a12,12,0,0,0,17,17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M80,176h96l-48,48ZM128,32,80,80h96Z\", opacity: \"0.2\" }), /* @__PURE__ */ e.createElement(\"path\", { d: \"M176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Zm-48,44.69L99.31,184h57.38ZM80,88h96a8,8,0,0,0,5.66-13.66l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,80,88Zm48-44.69L156.69,72H99.31Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M72.61,83.06a8,8,0,0,1,1.73-8.72l48-48a8,8,0,0,1,11.32,0l48,48A8,8,0,0,1,176,88H80A8,8,0,0,1,72.61,83.06ZM176,168H80a8,8,0,0,0-5.66,13.66l48,48a8,8,0,0,0,11.32,0l48-48A8,8,0,0,0,176,168Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M180.24,171.76a6,6,0,0,1,0,8.48l-48,48a6,6,0,0,1-8.48,0l-48-48a6,6,0,0,1,8.48-8.48L128,215.51l43.76-43.75A6,6,0,0,1,180.24,171.76Zm-96-87.52L128,40.49l43.76,43.75a6,6,0,0,0,8.48-8.48l-48-48a6,6,0,0,0-8.48,0l-48,48a6,6,0,0,0,8.48,8.48Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M181.66,170.34a8,8,0,0,1,0,11.32l-48,48a8,8,0,0,1-11.32,0l-48-48a8,8,0,0,1,11.32-11.32L128,212.69l42.34-42.35A8,8,0,0,1,181.66,170.34Zm-96-84.68L128,43.31l42.34,42.35a8,8,0,0,0,11.32-11.32l-48-48a8,8,0,0,0-11.32,0l-48,48A8,8,0,0,0,85.66,85.66Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(\"path\", { d: \"M178.83,173.17a4,4,0,0,1,0,5.66l-48,48a4,4,0,0,1-5.66,0l-48-48a4,4,0,0,1,5.66-5.66L128,218.34l45.17-45.17A4,4,0,0,1,178.83,173.17Zm-96-90.34L128,37.66l45.17,45.17a4,4,0,1,0,5.66-5.66l-48-48a4,4,0,0,0-5.66,0l-48,48a4,4,0,0,0,5.66,5.66Z\" }))\n ]\n]);\nexport {\n a as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a12,12,0,0,1-12,12H48a12,12,0,0,1,0-24h68A12,12,0,0,1,128,128ZM48,76H180a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24Zm52,104H48a12,12,0,0,0,0,24h52a12,12,0,0,0,0-24Zm132.49-20.49a12,12,0,0,0-17,0L196,179V112a12,12,0,0,0-24,0v67l-19.51-19.52a12,12,0,0,0-17,17l40,40a12,12,0,0,0,17,0l40-40A12,12,0,0,0,232.49,159.51Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,80v88l-24,24H48V64H208A16,16,0,0,1,224,80Z\", opacity: \"0.2\" }), /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h96a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm40,112H72a8,8,0,0,1,0-16h40a8,8,0,0,1,0,16Zm8-48H72a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm77.66,29.66-24,24a8,8,0,0,1-11.32,0l-24-24a8,8,0,0,1,11.32-11.32L160,164.69V120a8,8,0,0,1,16,0v44.69l10.34-10.35a8,8,0,0,1,11.32,11.32Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M126,128a6,6,0,0,1-6,6H48a6,6,0,0,1,0-12h72A6,6,0,0,1,126,128ZM48,70H184a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12Zm56,116H48a6,6,0,0,0,0,12h56a6,6,0,0,0,0-12Zm124.24-22.24a6,6,0,0,0-8.48,0L190,193.51V112a6,6,0,0,0-12,0v81.51l-29.76-29.75a6,6,0,0,0-8.48,8.48l40,40a6,6,0,0,0,8.48,0l40-40A6,6,0,0,0,228.24,163.76Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M128,128a8,8,0,0,1-8,8H48a8,8,0,0,1,0-16h72A8,8,0,0,1,128,128ZM48,72H184a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16Zm56,112H48a8,8,0,0,0,0,16h56a8,8,0,0,0,0-16Zm125.66-21.66a8,8,0,0,0-11.32,0L192,188.69V112a8,8,0,0,0-16,0v76.69l-26.34-26.35a8,8,0,0,0-11.32,11.32l40,40a8,8,0,0,0,11.32,0l40-40A8,8,0,0,0,229.66,162.34Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M124,128a4,4,0,0,1-4,4H48a4,4,0,0,1,0-8h72A4,4,0,0,1,124,128ZM48,68H184a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8Zm56,120H48a4,4,0,0,0,0,8h56a4,4,0,0,0,0-8Zm122.83-22.83a4,4,0,0,0-5.66,0L188,198.34V112a4,4,0,0,0-8,0v86.34l-33.17-33.17a4,4,0,0,0-5.66,5.66l40,40a4,4,0,0,0,5.66,0l40-40A4,4,0,0,0,226.83,165.17Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as a from \"react\";\nconst e = /* @__PURE__ */ new Map([\n [\n \"bold\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M36,128a12,12,0,0,1,12-12h68a12,12,0,0,1,0,24H48A12,12,0,0,1,36,128ZM48,76h52a12,12,0,0,0,0-24H48a12,12,0,0,0,0,24ZM180,180H48a12,12,0,0,0,0,24H180a12,12,0,0,0,0-24ZM232.49,79.51l-40-40a12,12,0,0,0-17,0l-40,40a12,12,0,0,0,17,17L172,77v67a12,12,0,0,0,24,0V77l19.51,19.52a12,12,0,0,0,17-17Z\" }))\n ],\n [\n \"duotone\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M224,88v88a16,16,0,0,1-16,16H48V64H200Z\", opacity: \"0.2\" }), /* @__PURE__ */ a.createElement(\"path\", { d: \"M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z\" }))\n ],\n [\n \"fill\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,72h40a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm0,48h48a8,8,0,0,1,0,16H72a8,8,0,0,1,0-16Zm96,64H72a8,8,0,0,1,0-16h96a8,8,0,0,1,0,16Zm29.66-82.34a8,8,0,0,1-11.32,0L176,91.31V136a8,8,0,0,1-16,0V91.31l-10.34,10.35a8,8,0,0,1-11.32-11.32l24-24a8,8,0,0,1,11.32,0l24,24A8,8,0,0,1,197.66,101.66Z\" }))\n ],\n [\n \"light\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M42,128a6,6,0,0,1,6-6h72a6,6,0,0,1,0,12H48A6,6,0,0,1,42,128Zm6-58h56a6,6,0,0,0,0-12H48a6,6,0,0,0,0,12ZM184,186H48a6,6,0,0,0,0,12H184a6,6,0,0,0,0-12ZM228.24,83.76l-40-40a6,6,0,0,0-8.48,0l-40,40a6,6,0,0,0,8.48,8.48L178,62.49V144a6,6,0,0,0,12,0V62.49l29.76,29.75a6,6,0,0,0,8.48-8.48Z\" }))\n ],\n [\n \"regular\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M40,128a8,8,0,0,1,8-8h72a8,8,0,0,1,0,16H48A8,8,0,0,1,40,128Zm8-56h56a8,8,0,0,0,0-16H48a8,8,0,0,0,0,16ZM184,184H48a8,8,0,0,0,0,16H184a8,8,0,0,0,0-16ZM229.66,82.34l-40-40a8,8,0,0,0-11.32,0l-40,40a8,8,0,0,0,11.32,11.32L176,67.31V144a8,8,0,0,0,16,0V67.31l26.34,26.35a8,8,0,0,0,11.32-11.32Z\" }))\n ],\n [\n \"thin\",\n /* @__PURE__ */ a.createElement(a.Fragment, null, /* @__PURE__ */ a.createElement(\"path\", { d: \"M44,128a4,4,0,0,1,4-4h72a4,4,0,0,1,0,8H48A4,4,0,0,1,44,128Zm4-60h56a4,4,0,0,0,0-8H48a4,4,0,0,0,0,8ZM184,188H48a4,4,0,0,0,0,8H184a4,4,0,0,0,0-8ZM226.83,85.17l-40-40a4,4,0,0,0-5.66,0l-40,40a4,4,0,0,0,5.66,5.66L180,57.66V144a4,4,0,0,0,8,0V57.66l33.17,33.17a4,4,0,1,0,5.66-5.66Z\" }))\n ]\n]);\nexport {\n e as default\n};\n","import * as o from \"react\";\nimport a from \"../lib/IconBase.es.js\";\nimport n from \"../defs/CaretUpDown.es.js\";\nconst e = o.forwardRef((r, t) => /* @__PURE__ */ o.createElement(a, { ref: t, ...r, weights: n }));\ne.displayName = \"CaretUpDownIcon\";\nconst c = e;\nexport {\n c as CaretUpDown,\n e as CaretUpDownIcon\n};\n","import * as o from \"react\";\nimport n from \"../lib/IconBase.es.js\";\nimport c from \"../defs/SortAscending.es.js\";\nconst e = o.forwardRef((r, t) => /* @__PURE__ */ o.createElement(n, { ref: t, ...r, weights: c }));\ne.displayName = \"SortAscendingIcon\";\nconst i = e;\nexport {\n i as SortAscending,\n e as SortAscendingIcon\n};\n","import * as e from \"react\";\nimport n from \"../lib/IconBase.es.js\";\nimport c from \"../defs/SortDescending.es.js\";\nconst o = e.forwardRef((r, t) => /* @__PURE__ */ e.createElement(n, { ref: t, ...r, weights: c }));\no.displayName = \"SortDescendingIcon\";\nconst i = o;\nexport {\n i as SortDescending,\n o as SortDescendingIcon\n};\n","\"use client\";\nimport { SortAscendingIcon, SortDescendingIcon, CaretUpDownIcon, PlusIcon, TrashIcon } from \"@phosphor-icons/react\";\nimport React, { Fragment, useState } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { uuid } from \"../../lib/fns\";\nimport { Any, Label } from \"../../types\";\nimport { Dropdown } from \"../floating/dropdown\";\nimport { OptionProps, Select } from \"../form/select\";\nimport { Col, getLabel, TableConfiguration, TableOperationProps } from \"./table-lib\";\n\ntype Keyof<T extends Any> = keyof T extends infer R extends string ? R : never;\n\nenum Order {\n Asc = \"asc\",\n Desc = \"desc\",\n Undefined = \"undefined\",\n}\n\nexport type Sorter<T extends Any> = { value: Keyof<T>; type: Order; label: Label; id: string };\n\nconst createSorterFn =\n <T extends Any>(fields: Sorter<T>[]) =>\n (a: T, b: T) =>\n fields.reduce<number>((acc, x) => {\n const reverse = x.type === \"desc\" ? -1 : 1;\n const property = x.value;\n const p = a[property] > b[property] ? reverse : a[property] < b[property] ? -reverse : 0;\n return acc !== 0 ? acc : p;\n }, 0);\n\nexport const multiSort = <T extends Any>(array: T[], fields: Sorter<T>[]) => {\n array.sort(createSorterFn(fields));\n return array;\n};\n\ntype Props<T extends Any> = TableConfiguration<\n T,\n {\n cols: Col<T>[];\n sorters: Sorter<T>[];\n set: React.Dispatch<React.SetStateAction<Sorter<T>[]>>;\n }\n>;\n\nconst createSorter = <T extends Any>(col: Col<T>, label: string, order: Order): Sorter<T> => ({\n label,\n id: uuid(),\n type: order,\n value: col.id as Keyof<T>,\n});\n\nexport const Sort = <T extends Any>(props: Props<T>) => {\n const translation = useTranslations();\n\n const orders = {\n asc: { label: translation.tableSortAsc, value: Order.Asc },\n desc: { label: translation.tableSortDesc, value: Order.Desc },\n } satisfies Omit<Record<Order, OptionProps>, Order.Undefined>;\n\n const orderOptions: OptionProps[] = [orders.asc, orders.desc];\n\n const onAddSorter = () => {\n const col = props.cols[0];\n if (col) props.set((prev) => [...prev, createSorter(col, orders.asc.label, orders.asc.value)]);\n };\n\n const onSetSorter = (id: string) => (e: React.ChangeEvent<HTMLSelectElement>) => {\n const value = e.target.value;\n props.set((prev) => prev.map((x) => (x.id === id ? { ...x, value: value as Keyof<T> } : x)));\n };\n\n const onSortOrderType = (id: string) => (e: React.ChangeEvent<HTMLSelectElement>) => {\n const type = e.target.value;\n props.set((prev) => prev.map((x) => (x.id === id ? { ...x, type: type as Order } : x)));\n };\n\n const onDelete = (e: React.MouseEvent<HTMLButtonElement>) => {\n const id = e.currentTarget.dataset.id || \"\";\n props.set((prev) => prev.filter((x) => x.id !== id));\n };\n\n return (\n <Fragment>\n <Dropdown\n title={translation.tableSortDropdownTitle}\n trigger={\n <span className=\"flex items-center gap-table-inline-gap-tight proportional-nums\">\n <CaretUpDownIcon size={14} />\n {translation.tableSortOrderByLabel} {props.sorters.length === 0 ? \"\" : ` (${props.sorters.length})`}\n </span>\n }\n >\n <ul className=\"mt-table-groups-mt space-y-2\">\n {props.sorters.map((sorter) => {\n return (\n <li key={`sorter-select-${sorter.id}`} className=\"flex flex-nowrap gap-3\">\n <Select\n options={props.options}\n value={sorter.value as string}\n onChange={onSetSorter(sorter.id)}\n title={translation.tableSortOrderInputTitle}\n placeholder={translation.tableSortOrderInputPlaceholder}\n />\n <Select\n onChange={onSortOrderType(sorter.id)}\n value={sorter.type}\n options={orderOptions}\n title={translation.tableSortTypeInputTitle}\n placeholder={translation.tableSortTypeInputPlaceholder}\n />\n <button className=\"mt-table-groups-mt\" data-id={sorter.id} onClick={onDelete}>\n <span className=\"text-danger\">\n <TrashIcon aria-hidden=\"true\" size={14} />\n </span>\n </button>\n </li>\n );\n })}\n <li>\n <button type=\"button\" onClick={onAddSorter} className=\"flex items-center gap-table-inline-gap-tight text-primary\">\n <PlusIcon size={14} /> {translation.tableSortAddButton}\n </button>\n </li>\n </ul>\n </Dropdown>\n </Fragment>\n );\n};\n\ntype SorterHeadProps<T extends Any> = Pick<TableOperationProps<T>, \"sorters\" | \"setSorters\"> & { col: Col<T> };\n\nexport const SorterHead = <T extends Any>(props: SorterHeadProps<T>) => {\n const translations = useTranslations();\n const [status, setStatus] = useState(() => {\n const sorter = props.sorters.find((sort) => sort.value === props.col.id);\n return sorter ? sorter.type : Order.Undefined;\n });\n\n const onClick = () => {\n const next = status === Order.Undefined ? Order.Asc : status === Order.Asc ? Order.Desc : Order.Undefined;\n setStatus(next);\n props.setSorters((prev) => {\n if (next === Order.Undefined) return prev.filter((x) => x.value !== props.col.id);\n const findIndex = prev.findIndex((p) => (p.value as string) === props.col.id);\n const sorter = createSorter(props.col, next, next);\n if (findIndex === -1) return [...prev, sorter];\n prev[findIndex] = sorter;\n return [...prev];\n });\n };\n\n const labelId = `${props.col.id}-sorter-id`;\n\n const label = getLabel(props.col);\n\n return (\n <button aria-labelledby={labelId} className=\"isolate flex items-center\" onClick={onClick} type=\"button\">\n <span id={labelId} className=\"sr-only\">\n {translations.tableSortDropdownTitle} {label}\n </span>\n {status === Order.Asc ? <SortAscendingIcon size={14} /> : null}\n {status === Order.Desc ? <SortDescendingIcon size={14} /> : null}\n {status === Order.Undefined ? <CaretUpDownIcon size={14} /> : null}\n </button>\n );\n};\n"],"x_google_ignoreList":[0,1,2,3,4,5],"mappings":"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"}
|