@ryuzaki13/react-foundation-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +37 -0
- package/dist/badge/Badge.d.ts +17 -0
- package/dist/badge/Badge.d.ts.map +1 -0
- package/dist/badge/BadgeList.d.ts +11 -0
- package/dist/badge/BadgeList.d.ts.map +1 -0
- package/dist/badge/index.d.ts +3 -0
- package/dist/badge/index.d.ts.map +1 -0
- package/dist/badge/index.js +2 -0
- package/dist/badge/stories/Badge.stories.d.ts +54 -0
- package/dist/badge/stories/Badge.stories.d.ts.map +1 -0
- package/dist/badge/stories/Badge.stories.js +147 -0
- package/dist/badge/stories/Badge.stories.js.map +1 -0
- package/dist/base-table/index.d.ts +12 -0
- package/dist/base-table/index.d.ts.map +1 -0
- package/dist/base-table/index.js +3 -0
- package/dist/base-table/lib/columnPinning.d.ts +54 -0
- package/dist/base-table/lib/columnPinning.d.ts.map +1 -0
- package/dist/base-table/lib/formatting.d.ts +43 -0
- package/dist/base-table/lib/formatting.d.ts.map +1 -0
- package/dist/base-table/lib/mergeDuplicates.d.ts +29 -0
- package/dist/base-table/lib/mergeDuplicates.d.ts.map +1 -0
- package/dist/base-table/model/useTableColumnOrder.d.ts +37 -0
- package/dist/base-table/model/useTableColumnOrder.d.ts.map +1 -0
- package/dist/base-table/model/useTableColumnPinning.d.ts +37 -0
- package/dist/base-table/model/useTableColumnPinning.d.ts.map +1 -0
- package/dist/base-table/model/useTableColumnSizing.d.ts +41 -0
- package/dist/base-table/model/useTableColumnSizing.d.ts.map +1 -0
- package/dist/base-table/model/useTableColumnVisibility.d.ts +40 -0
- package/dist/base-table/model/useTableColumnVisibility.d.ts.map +1 -0
- package/dist/base-table/ui/BaseTable.d.ts +69 -0
- package/dist/base-table/ui/BaseTable.d.ts.map +1 -0
- package/dist/base-table/ui/BaseTableHeaderCell.d.ts +18 -0
- package/dist/base-table/ui/BaseTableHeaderCell.d.ts.map +1 -0
- package/dist/base-table/ui/FormattedTableCell.d.ts +23 -0
- package/dist/base-table/ui/FormattedTableCell.d.ts.map +1 -0
- package/dist/button/Button.d.ts +19 -0
- package/dist/button/Button.d.ts.map +1 -0
- package/dist/button/ButtonRemove.d.ts +12 -0
- package/dist/button/ButtonRemove.d.ts.map +1 -0
- package/dist/button/index.d.ts +3 -0
- package/dist/button/index.d.ts.map +1 -0
- package/dist/button/index.js +23 -0
- package/dist/button/index.js.map +1 -0
- package/dist/button/stories/Button.stories.d.ts +69 -0
- package/dist/button/stories/Button.stories.d.ts.map +1 -0
- package/dist/button/stories/Button.stories.js +223 -0
- package/dist/button/stories/Button.stories.js.map +1 -0
- package/dist/check-box/CheckBox.d.ts +13 -0
- package/dist/check-box/CheckBox.d.ts.map +1 -0
- package/dist/check-box/index.d.ts +2 -0
- package/dist/check-box/index.d.ts.map +1 -0
- package/dist/check-box/index.js +2 -0
- package/dist/check-box/stories/CheckBox.stories.d.ts +58 -0
- package/dist/check-box/stories/CheckBox.stories.d.ts.map +1 -0
- package/dist/check-box/stories/CheckBox.stories.js +150 -0
- package/dist/check-box/stories/CheckBox.stories.js.map +1 -0
- package/dist/chunks/BadgeList-DHW_Ktr3.js +65 -0
- package/dist/chunks/BadgeList-DHW_Ktr3.js.map +1 -0
- package/dist/chunks/Button-BZ_b-Kin.js +55 -0
- package/dist/chunks/Button-BZ_b-Kin.js.map +1 -0
- package/dist/chunks/CalendarView-B75faWIU.js +435 -0
- package/dist/chunks/CalendarView-B75faWIU.js.map +1 -0
- package/dist/chunks/CheckBox-Cck5w1Ud.js +48 -0
- package/dist/chunks/CheckBox-Cck5w1Ud.js.map +1 -0
- package/dist/chunks/CheckBox.module-D0Ze9qh3.js +10 -0
- package/dist/chunks/CheckBox.module-D0Ze9qh3.js.map +1 -0
- package/dist/chunks/DateInput-CINDYueM.js +340 -0
- package/dist/chunks/DateInput-CINDYueM.js.map +1 -0
- package/dist/chunks/DateRangePresetSelect-CyzGMvVp.js +105 -0
- package/dist/chunks/DateRangePresetSelect-CyzGMvVp.js.map +1 -0
- package/dist/chunks/Detail-DKolHye4.js +80 -0
- package/dist/chunks/Detail-DKolHye4.js.map +1 -0
- package/dist/chunks/Dialog-BPS4BeWZ.js +50 -0
- package/dist/chunks/Dialog-BPS4BeWZ.js.map +1 -0
- package/dist/chunks/DisclosureGroup-0BtaXO54.js +49 -0
- package/dist/chunks/DisclosureGroup-0BtaXO54.js.map +1 -0
- package/dist/chunks/DropZone-hf7Em__0.js +98 -0
- package/dist/chunks/DropZone-hf7Em__0.js.map +1 -0
- package/dist/chunks/DropdownMenu-Ds-trH4M.js +534 -0
- package/dist/chunks/DropdownMenu-Ds-trH4M.js.map +1 -0
- package/dist/chunks/Flex-DbBdq336.js +137 -0
- package/dist/chunks/Flex-DbBdq336.js.map +1 -0
- package/dist/chunks/Grid-ByIIytjh.js +159 -0
- package/dist/chunks/Grid-ByIIytjh.js.map +1 -0
- package/dist/chunks/Input-Ce2HXBUc.js +227 -0
- package/dist/chunks/Input-Ce2HXBUc.js.map +1 -0
- package/dist/chunks/InputDateTime-DPtY_4Od.js +258 -0
- package/dist/chunks/InputDateTime-DPtY_4Od.js.map +1 -0
- package/dist/chunks/InputFile-ga5yJmdZ.js +105 -0
- package/dist/chunks/InputFile-ga5yJmdZ.js.map +1 -0
- package/dist/chunks/InputFiles-Or2Nvfgk.js +141 -0
- package/dist/chunks/InputFiles-Or2Nvfgk.js.map +1 -0
- package/dist/chunks/InputImage-BeA5WJz1.js +100 -0
- package/dist/chunks/InputImage-BeA5WJz1.js.map +1 -0
- package/dist/chunks/LabeledExpandableActionPanel-Bx-DWmYz.js +82 -0
- package/dist/chunks/LabeledExpandableActionPanel-Bx-DWmYz.js.map +1 -0
- package/dist/chunks/Listbox-CY1wQOCP.js +81 -0
- package/dist/chunks/Listbox-CY1wQOCP.js.map +1 -0
- package/dist/chunks/MultiSelect-CBqTylqO.js +422 -0
- package/dist/chunks/MultiSelect-CBqTylqO.js.map +1 -0
- package/dist/chunks/NotificationsHost-BQc-zOr2.js +151 -0
- package/dist/chunks/NotificationsHost-BQc-zOr2.js.map +1 -0
- package/dist/chunks/PresetRangeDateInput-YBQm_4Fb.js +53 -0
- package/dist/chunks/PresetRangeDateInput-YBQm_4Fb.js.map +1 -0
- package/dist/chunks/RadioButton-DJp31HFR.js +48 -0
- package/dist/chunks/RadioButton-DJp31HFR.js.map +1 -0
- package/dist/chunks/RadioGroup-BAhN1d1X.js +121 -0
- package/dist/chunks/RadioGroup-BAhN1d1X.js.map +1 -0
- package/dist/chunks/Select-B7k_8_Lf.js +182 -0
- package/dist/chunks/Select-B7k_8_Lf.js.map +1 -0
- package/dist/chunks/SelectOptionContent-CI7wq9Oi.js +27 -0
- package/dist/chunks/SelectOptionContent-CI7wq9Oi.js.map +1 -0
- package/dist/chunks/SerializableSelect-53uNCqdE.js +33 -0
- package/dist/chunks/SerializableSelect-53uNCqdE.js.map +1 -0
- package/dist/chunks/SingleDateTimeInput-CwvIbwje.js +331 -0
- package/dist/chunks/SingleDateTimeInput-CwvIbwje.js.map +1 -0
- package/dist/chunks/Splitter-NjNFuEq4.js +168 -0
- package/dist/chunks/Splitter-NjNFuEq4.js.map +1 -0
- package/dist/chunks/StateSelect-D0wuUdT9.js +78 -0
- package/dist/chunks/StateSelect-D0wuUdT9.js.map +1 -0
- package/dist/chunks/Switch-B476FBUD.js +81 -0
- package/dist/chunks/Switch-B476FBUD.js.map +1 -0
- package/dist/chunks/TextEditorLexicalClient-DcixYuo4.js +1178 -0
- package/dist/chunks/TextEditorLexicalClient-DcixYuo4.js.map +1 -0
- package/dist/chunks/Textarea-DeJJjjkI.js +44 -0
- package/dist/chunks/Textarea-DeJJjjkI.js.map +1 -0
- package/dist/chunks/TimePanel-_kF2RtHk.js +135 -0
- package/dist/chunks/TimePanel-_kF2RtHk.js.map +1 -0
- package/dist/chunks/Toggle-C_fE-bkM.js +73 -0
- package/dist/chunks/Toggle-C_fE-bkM.js.map +1 -0
- package/dist/chunks/TreeMultiSelect-DRYNx7u5.js +40 -0
- package/dist/chunks/TreeMultiSelect-DRYNx7u5.js.map +1 -0
- package/dist/chunks/TreePickerBase-DYzTsSBQ.js +423 -0
- package/dist/chunks/TreePickerBase-DYzTsSBQ.js.map +1 -0
- package/dist/chunks/TreeSelect-DGLDu6qc.js +37 -0
- package/dist/chunks/TreeSelect-DGLDu6qc.js.map +1 -0
- package/dist/chunks/base-table-DVje02Zi.js +514 -0
- package/dist/chunks/base-table-DVje02Zi.js.map +1 -0
- package/dist/chunks/editorModel-DCJRgzlr.js +10 -0
- package/dist/chunks/editorModel-DCJRgzlr.js.map +1 -0
- package/dist/chunks/floating-arrow-CdRV69sg.js +48 -0
- package/dist/chunks/floating-arrow-CdRV69sg.js.map +1 -0
- package/dist/chunks/layout-picker-BA9vA8JI.js +1171 -0
- package/dist/chunks/layout-picker-BA9vA8JI.js.map +1 -0
- package/dist/chunks/misc-DrmMj8GO.js +298 -0
- package/dist/chunks/misc-DrmMj8GO.js.map +1 -0
- package/dist/chunks/modal-DqVcZws_.js +153 -0
- package/dist/chunks/modal-DqVcZws_.js.map +1 -0
- package/dist/chunks/picker-Cj4RnJh6.js +318 -0
- package/dist/chunks/picker-Cj4RnJh6.js.map +1 -0
- package/dist/chunks/plugins-BqaLckPx.js +118 -0
- package/dist/chunks/plugins-BqaLckPx.js.map +1 -0
- package/dist/chunks/popover-C79P5bm2.js +222 -0
- package/dist/chunks/popover-C79P5bm2.js.map +1 -0
- package/dist/chunks/separator-CIqnk2z9.js +15 -0
- package/dist/chunks/separator-CIqnk2z9.js.map +1 -0
- package/dist/chunks/slider-34wxzKkG.js +695 -0
- package/dist/chunks/slider-34wxzKkG.js.map +1 -0
- package/dist/chunks/sortable-CwDHC3CA.js +185 -0
- package/dist/chunks/sortable-CwDHC3CA.js.map +1 -0
- package/dist/chunks/table-BYA0hCj7.js +141 -0
- package/dist/chunks/table-BYA0hCj7.js.map +1 -0
- package/dist/chunks/table-column-interactions-DPyJDD7P.js +87 -0
- package/dist/chunks/table-column-interactions-DPyJDD7P.js.map +1 -0
- package/dist/chunks/tabs-CjU2KCgs.js +384 -0
- package/dist/chunks/tabs-CjU2KCgs.js.map +1 -0
- package/dist/chunks/toolbar-C-Ziw_Uh.js +369 -0
- package/dist/chunks/toolbar-C-Ziw_Uh.js.map +1 -0
- package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js +113 -0
- package/dist/chunks/treeStoryFixtures-Bhm3Gdky.js.map +1 -0
- package/dist/chunks/ui.module-BisoTevy.js +58 -0
- package/dist/chunks/ui.module-BisoTevy.js.map +1 -0
- package/dist/chunks/uiClasses-BNjBunnY.js +82 -0
- package/dist/chunks/uiClasses-BNjBunnY.js.map +1 -0
- package/dist/chunks/wheel-picker-DUHGy7wE.js +143 -0
- package/dist/chunks/wheel-picker-DUHGy7wE.js.map +1 -0
- package/dist/context-menu/components/ContextMenu.d.ts +19 -0
- package/dist/context-menu/components/ContextMenu.d.ts.map +1 -0
- package/dist/context-menu/components/ContextMenuTrigger.d.ts +8 -0
- package/dist/context-menu/components/ContextMenuTrigger.d.ts.map +1 -0
- package/dist/context-menu/components/DropdownMenu.d.ts +17 -0
- package/dist/context-menu/components/DropdownMenu.d.ts.map +1 -0
- package/dist/context-menu/components/DropdownMenuTrigger.d.ts +8 -0
- package/dist/context-menu/components/DropdownMenuTrigger.d.ts.map +1 -0
- package/dist/context-menu/components/MenuContent.d.ts +13 -0
- package/dist/context-menu/components/MenuContent.d.ts.map +1 -0
- package/dist/context-menu/components/MenuContext.d.ts +21 -0
- package/dist/context-menu/components/MenuContext.d.ts.map +1 -0
- package/dist/context-menu/components/MenuGroupLabel.d.ts +7 -0
- package/dist/context-menu/components/MenuGroupLabel.d.ts.map +1 -0
- package/dist/context-menu/components/MenuItem.d.ts +15 -0
- package/dist/context-menu/components/MenuItem.d.ts.map +1 -0
- package/dist/context-menu/components/MenuRoot.d.ts +14 -0
- package/dist/context-menu/components/MenuRoot.d.ts.map +1 -0
- package/dist/context-menu/components/MenuSeparator.d.ts +6 -0
- package/dist/context-menu/components/MenuSeparator.d.ts.map +1 -0
- package/dist/context-menu/components/RadialMenuContent.d.ts +16 -0
- package/dist/context-menu/components/RadialMenuContent.d.ts.map +1 -0
- package/dist/context-menu/components/RadialMenuItem.d.ts +11 -0
- package/dist/context-menu/components/RadialMenuItem.d.ts.map +1 -0
- package/dist/context-menu/components/helpers.d.ts +5 -0
- package/dist/context-menu/components/helpers.d.ts.map +1 -0
- package/dist/context-menu/index.d.ts +3 -0
- package/dist/context-menu/index.d.ts.map +1 -0
- package/dist/context-menu/index.js +2 -0
- package/dist/context-menu/stories/ContextMenu.stories.d.ts +16 -0
- package/dist/context-menu/stories/ContextMenu.stories.d.ts.map +1 -0
- package/dist/context-menu/stories/ContextMenu.stories.js +136 -0
- package/dist/context-menu/stories/ContextMenu.stories.js.map +1 -0
- package/dist/date-input/index.d.ts +3 -0
- package/dist/date-input/index.d.ts.map +1 -0
- package/dist/date-input/index.js +3 -0
- package/dist/date-input/lib/dateInputCalendar.d.ts +35 -0
- package/dist/date-input/lib/dateInputCalendar.d.ts.map +1 -0
- package/dist/date-input/lib/dateInputValue.d.ts +81 -0
- package/dist/date-input/lib/dateInputValue.d.ts.map +1 -0
- package/dist/date-input/lib/index.d.ts +4 -0
- package/dist/date-input/lib/index.d.ts.map +1 -0
- package/dist/date-input/lib/types.d.ts +39 -0
- package/dist/date-input/lib/types.d.ts.map +1 -0
- package/dist/date-input/model/index.d.ts +2 -0
- package/dist/date-input/model/index.d.ts.map +1 -0
- package/dist/date-input/model/useDateInput.d.ts +15 -0
- package/dist/date-input/model/useDateInput.d.ts.map +1 -0
- package/dist/date-input/stories/DateInput.stories.d.ts +132 -0
- package/dist/date-input/stories/DateInput.stories.d.ts.map +1 -0
- package/dist/date-input/stories/DateInput.stories.js +247 -0
- package/dist/date-input/stories/DateInput.stories.js.map +1 -0
- package/dist/date-input/ui/CalendarDayView.d.ts +19 -0
- package/dist/date-input/ui/CalendarDayView.d.ts.map +1 -0
- package/dist/date-input/ui/CalendarMonthView.d.ts +19 -0
- package/dist/date-input/ui/CalendarMonthView.d.ts.map +1 -0
- package/dist/date-input/ui/CalendarView.d.ts +24 -0
- package/dist/date-input/ui/CalendarView.d.ts.map +1 -0
- package/dist/date-input/ui/CalendarYearView.d.ts +19 -0
- package/dist/date-input/ui/CalendarYearView.d.ts.map +1 -0
- package/dist/date-input/ui/DateInput.d.ts +49 -0
- package/dist/date-input/ui/DateInput.d.ts.map +1 -0
- package/dist/date-input/ui/index.d.ts +3 -0
- package/dist/date-input/ui/index.d.ts.map +1 -0
- package/dist/date-range-preset-select/DateRangePresetSelect.d.ts +12 -0
- package/dist/date-range-preset-select/DateRangePresetSelect.d.ts.map +1 -0
- package/dist/date-range-preset-select/index.d.ts +4 -0
- package/dist/date-range-preset-select/index.d.ts.map +1 -0
- package/dist/date-range-preset-select/index.js +2 -0
- package/dist/date-range-preset-select/lib/dateRangePresets.d.ts +61 -0
- package/dist/date-range-preset-select/lib/dateRangePresets.d.ts.map +1 -0
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts +22 -0
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.d.ts.map +1 -0
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js +41 -0
- package/dist/date-range-preset-select/stories/DateRangePresetSelect.stories.js.map +1 -0
- package/dist/date-time-input/index.d.ts +2 -0
- package/dist/date-time-input/index.d.ts.map +1 -0
- package/dist/date-time-input/index.js +2 -0
- package/dist/date-time-input/lib/dateTimeValue.d.ts +65 -0
- package/dist/date-time-input/lib/dateTimeValue.d.ts.map +1 -0
- package/dist/date-time-input/lib/index.d.ts +5 -0
- package/dist/date-time-input/lib/index.d.ts.map +1 -0
- package/dist/date-time-input/lib/timePanelState.d.ts +16 -0
- package/dist/date-time-input/lib/timePanelState.d.ts.map +1 -0
- package/dist/date-time-input/model/index.d.ts +2 -0
- package/dist/date-time-input/model/index.d.ts.map +1 -0
- package/dist/date-time-input/model/useDateTimeSegments.d.ts +27 -0
- package/dist/date-time-input/model/useDateTimeSegments.d.ts.map +1 -0
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts +95 -0
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.d.ts.map +1 -0
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.js +195 -0
- package/dist/date-time-input/stories/SingleDateTimeInput.stories.js.map +1 -0
- package/dist/date-time-input/stories/TimePanel.stories.d.ts +26 -0
- package/dist/date-time-input/stories/TimePanel.stories.d.ts.map +1 -0
- package/dist/date-time-input/stories/TimePanel.stories.js +53 -0
- package/dist/date-time-input/stories/TimePanel.stories.js.map +1 -0
- package/dist/date-time-input/ui/SingleDateTimeInput.d.ts +19 -0
- package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -0
- package/dist/date-time-input/ui/TimePanel.d.ts +17 -0
- package/dist/date-time-input/ui/TimePanel.d.ts.map +1 -0
- package/dist/date-time-input/ui/index.d.ts +2 -0
- package/dist/date-time-input/ui/index.d.ts.map +1 -0
- package/dist/detail/Detail.d.ts +36 -0
- package/dist/detail/Detail.d.ts.map +1 -0
- package/dist/detail/index.d.ts +2 -0
- package/dist/detail/index.d.ts.map +1 -0
- package/dist/detail/index.js +2 -0
- package/dist/detail/stories/Detail.stories.d.ts +67 -0
- package/dist/detail/stories/Detail.stories.d.ts.map +1 -0
- package/dist/detail/stories/Detail.stories.js +170 -0
- package/dist/detail/stories/Detail.stories.js.map +1 -0
- package/dist/dialog/Dialog.d.ts +14 -0
- package/dist/dialog/Dialog.d.ts.map +1 -0
- package/dist/dialog/index.d.ts +2 -0
- package/dist/dialog/index.d.ts.map +1 -0
- package/dist/dialog/index.js +2 -0
- package/dist/dialog/stories/Dialog.stories.d.ts +50 -0
- package/dist/dialog/stories/Dialog.stories.d.ts.map +1 -0
- package/dist/dialog/stories/Dialog.stories.js +89 -0
- package/dist/dialog/stories/Dialog.stories.js.map +1 -0
- package/dist/disclosure/Disclosure.d.ts +10 -0
- package/dist/disclosure/Disclosure.d.ts.map +1 -0
- package/dist/disclosure/DisclosureGroup.d.ts +12 -0
- package/dist/disclosure/DisclosureGroup.d.ts.map +1 -0
- package/dist/disclosure/index.d.ts +3 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/disclosure/index.js +2 -0
- package/dist/disclosure/stories/Disclosure.stories.d.ts +35 -0
- package/dist/disclosure/stories/Disclosure.stories.d.ts.map +1 -0
- package/dist/disclosure/stories/Disclosure.stories.js +70 -0
- package/dist/disclosure/stories/Disclosure.stories.js.map +1 -0
- package/dist/drop-zone/DropZone.d.ts +46 -0
- package/dist/drop-zone/DropZone.d.ts.map +1 -0
- package/dist/drop-zone/index.d.ts +3 -0
- package/dist/drop-zone/index.d.ts.map +1 -0
- package/dist/drop-zone/index.js +2 -0
- package/dist/drop-zone/stories/DropZone.stories.d.ts +63 -0
- package/dist/drop-zone/stories/DropZone.stories.d.ts.map +1 -0
- package/dist/drop-zone/stories/DropZone.stories.js +97 -0
- package/dist/drop-zone/stories/DropZone.stories.js.map +1 -0
- package/dist/errors/BadRequestPage.d.ts +2 -0
- package/dist/errors/BadRequestPage.d.ts.map +1 -0
- package/dist/errors/BoomExplosion.d.ts +2 -0
- package/dist/errors/BoomExplosion.d.ts.map +1 -0
- package/dist/errors/ErrorBoundary.d.ts +23 -0
- package/dist/errors/ErrorBoundary.d.ts.map +1 -0
- package/dist/errors/ErrorDisplay.d.ts +6 -0
- package/dist/errors/ErrorDisplay.d.ts.map +1 -0
- package/dist/errors/ErrorExplosion.d.ts +8 -0
- package/dist/errors/ErrorExplosion.d.ts.map +1 -0
- package/dist/errors/ForbiddenPage.d.ts +2 -0
- package/dist/errors/ForbiddenPage.d.ts.map +1 -0
- package/dist/errors/NotFoundPage.d.ts +2 -0
- package/dist/errors/NotFoundPage.d.ts.map +1 -0
- package/dist/errors/PageError.d.ts +9 -0
- package/dist/errors/PageError.d.ts.map +1 -0
- package/dist/errors/SimpleErrorDisplay.d.ts +4 -0
- package/dist/errors/SimpleErrorDisplay.d.ts.map +1 -0
- package/dist/errors/UnauthorizedPage.d.ts +2 -0
- package/dist/errors/UnauthorizedPage.d.ts.map +1 -0
- package/dist/errors/ViewNotChanged.d.ts +3 -0
- package/dist/errors/ViewNotChanged.d.ts.map +1 -0
- package/dist/errors/constants.d.ts +2 -0
- package/dist/errors/constants.d.ts.map +1 -0
- package/dist/errors/index.d.ts +12 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +216 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/expandable-action-panel/ExpandableActionPanel.d.ts +22 -0
- package/dist/expandable-action-panel/ExpandableActionPanel.d.ts.map +1 -0
- package/dist/expandable-action-panel/LabeledExpandableActionPanel.d.ts +15 -0
- package/dist/expandable-action-panel/LabeledExpandableActionPanel.d.ts.map +1 -0
- package/dist/expandable-action-panel/index.d.ts +3 -0
- package/dist/expandable-action-panel/index.d.ts.map +1 -0
- package/dist/expandable-action-panel/index.js +2 -0
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts +44 -0
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.d.ts.map +1 -0
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js +117 -0
- package/dist/expandable-action-panel/stories/ExpandableActionPanel.stories.js.map +1 -0
- package/dist/flex/Flex.d.ts +6 -0
- package/dist/flex/Flex.d.ts.map +1 -0
- package/dist/flex/FlexCenter.d.ts +8 -0
- package/dist/flex/FlexCenter.d.ts.map +1 -0
- package/dist/flex/FlexContainer.d.ts +3 -0
- package/dist/flex/FlexContainer.d.ts.map +1 -0
- package/dist/flex/FlexItem.d.ts +3 -0
- package/dist/flex/FlexItem.d.ts.map +1 -0
- package/dist/flex/FlexSpacer.d.ts +3 -0
- package/dist/flex/FlexSpacer.d.ts.map +1 -0
- package/dist/flex/PredefinedFlex.d.ts +3 -0
- package/dist/flex/PredefinedFlex.d.ts.map +1 -0
- package/dist/flex/index.d.ts +7 -0
- package/dist/flex/index.d.ts.map +1 -0
- package/dist/flex/index.js +14 -0
- package/dist/flex/index.js.map +1 -0
- package/dist/flex/stories/Flex.stories.d.ts +24 -0
- package/dist/flex/stories/Flex.stories.d.ts.map +1 -0
- package/dist/flex/stories/Flex.stories.js +607 -0
- package/dist/flex/stories/Flex.stories.js.map +1 -0
- package/dist/flex/types.d.ts +73 -0
- package/dist/flex/types.d.ts.map +1 -0
- package/dist/flex/useFlexClasses.d.ts +8 -0
- package/dist/flex/useFlexClasses.d.ts.map +1 -0
- package/dist/floating-arrow/FloatingArrow.d.ts +8 -0
- package/dist/floating-arrow/FloatingArrow.d.ts.map +1 -0
- package/dist/floating-arrow/getArrowStyle.d.ts +3 -0
- package/dist/floating-arrow/getArrowStyle.d.ts.map +1 -0
- package/dist/floating-arrow/index.d.ts +2 -0
- package/dist/floating-arrow/index.d.ts.map +1 -0
- package/dist/floating-arrow/index.js +2 -0
- package/dist/fullscreen-portal/FullscreenPortal.d.ts +17 -0
- package/dist/fullscreen-portal/FullscreenPortal.d.ts.map +1 -0
- package/dist/fullscreen-portal/index.d.ts +2 -0
- package/dist/fullscreen-portal/index.d.ts.map +1 -0
- package/dist/fullscreen-portal/index.js +42 -0
- package/dist/fullscreen-portal/index.js.map +1 -0
- package/dist/grid/Grid.d.ts +5 -0
- package/dist/grid/Grid.d.ts.map +1 -0
- package/dist/grid/GridContainer.d.ts +3 -0
- package/dist/grid/GridContainer.d.ts.map +1 -0
- package/dist/grid/GridItem.d.ts +3 -0
- package/dist/grid/GridItem.d.ts.map +1 -0
- package/dist/grid/index.d.ts +4 -0
- package/dist/grid/index.d.ts.map +1 -0
- package/dist/grid/index.js +2 -0
- package/dist/grid/stories/Grid.stories.d.ts +24 -0
- package/dist/grid/stories/Grid.stories.d.ts.map +1 -0
- package/dist/grid/stories/Grid.stories.js +840 -0
- package/dist/grid/stories/Grid.stories.js.map +1 -0
- package/dist/grid/types.d.ts +299 -0
- package/dist/grid/types.d.ts.map +1 -0
- package/dist/grid/useGridClasses.d.ts +10 -0
- package/dist/grid/useGridClasses.d.ts.map +1 -0
- package/dist/image/index.d.ts +6 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/image/index.js +500 -0
- package/dist/image/index.js.map +1 -0
- package/dist/image/ui/ImageCropper.d.ts +13 -0
- package/dist/image/ui/ImageCropper.d.ts.map +1 -0
- package/dist/image/ui/ImagePlaceholder.d.ts +9 -0
- package/dist/image/ui/ImagePlaceholder.d.ts.map +1 -0
- package/dist/image/ui/ImageRenderer.d.ts +24 -0
- package/dist/image/ui/ImageRenderer.d.ts.map +1 -0
- package/dist/image/ui/ImageSelection.d.ts +40 -0
- package/dist/image/ui/ImageSelection.d.ts.map +1 -0
- package/dist/image/ui/ImageView.d.ts +40 -0
- package/dist/image/ui/ImageView.d.ts.map +1 -0
- package/dist/input/Input.d.ts +65 -0
- package/dist/input/Input.d.ts.map +1 -0
- package/dist/input/index.d.ts +3 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/index.js +2 -0
- package/dist/input/lib/index.d.ts +2 -0
- package/dist/input/lib/index.d.ts.map +1 -0
- package/dist/input/lib/useInputFieldIds.d.ts +15 -0
- package/dist/input/lib/useInputFieldIds.d.ts.map +1 -0
- package/dist/input/stories/Input.stories.d.ts +69 -0
- package/dist/input/stories/Input.stories.d.ts.map +1 -0
- package/dist/input/stories/Input.stories.js +132 -0
- package/dist/input/stories/Input.stories.js.map +1 -0
- package/dist/input-date-time/InputDateTime.d.ts +23 -0
- package/dist/input-date-time/InputDateTime.d.ts.map +1 -0
- package/dist/input-date-time/index.d.ts +3 -0
- package/dist/input-date-time/index.d.ts.map +1 -0
- package/dist/input-date-time/index.js +2 -0
- package/dist/input-date-time/maskParser.d.ts +32 -0
- package/dist/input-date-time/maskParser.d.ts.map +1 -0
- package/dist/input-date-time/stories/InputDateTime.stories.d.ts +69 -0
- package/dist/input-date-time/stories/InputDateTime.stories.d.ts.map +1 -0
- package/dist/input-date-time/stories/InputDateTime.stories.js +125 -0
- package/dist/input-date-time/stories/InputDateTime.stories.js.map +1 -0
- package/dist/input-date-time/useMaskedSegments.d.ts +22 -0
- package/dist/input-date-time/useMaskedSegments.d.ts.map +1 -0
- package/dist/input-file/InputFile.d.ts +63 -0
- package/dist/input-file/InputFile.d.ts.map +1 -0
- package/dist/input-file/index.d.ts +3 -0
- package/dist/input-file/index.d.ts.map +1 -0
- package/dist/input-file/index.js +2 -0
- package/dist/input-file/stories/InputFile.stories.d.ts +85 -0
- package/dist/input-file/stories/InputFile.stories.d.ts.map +1 -0
- package/dist/input-file/stories/InputFile.stories.js +158 -0
- package/dist/input-file/stories/InputFile.stories.js.map +1 -0
- package/dist/input-files/InputFiles.d.ts +64 -0
- package/dist/input-files/InputFiles.d.ts.map +1 -0
- package/dist/input-files/InputFilesList.d.ts +8 -0
- package/dist/input-files/InputFilesList.d.ts.map +1 -0
- package/dist/input-files/index.d.ts +4 -0
- package/dist/input-files/index.d.ts.map +1 -0
- package/dist/input-files/index.js +2 -0
- package/dist/input-files/stories/InputFiles.stories.d.ts +86 -0
- package/dist/input-files/stories/InputFiles.stories.d.ts.map +1 -0
- package/dist/input-files/stories/InputFiles.stories.js +158 -0
- package/dist/input-files/stories/InputFiles.stories.js.map +1 -0
- package/dist/input-image/InputImage.d.ts +42 -0
- package/dist/input-image/InputImage.d.ts.map +1 -0
- package/dist/input-image/index.d.ts +3 -0
- package/dist/input-image/index.d.ts.map +1 -0
- package/dist/input-image/index.js +2 -0
- package/dist/input-image/stories/InputImage.stories.d.ts +81 -0
- package/dist/input-image/stories/InputImage.stories.d.ts.map +1 -0
- package/dist/input-image/stories/InputImage.stories.js +174 -0
- package/dist/input-image/stories/InputImage.stories.js.map +1 -0
- package/dist/input-search/InputSearch.d.ts +8 -0
- package/dist/input-search/InputSearch.d.ts.map +1 -0
- package/dist/input-search/index.d.ts +2 -0
- package/dist/input-search/index.d.ts.map +1 -0
- package/dist/input-search/index.js +30 -0
- package/dist/input-search/index.js.map +1 -0
- package/dist/layout-picker/index.d.ts +3 -0
- package/dist/layout-picker/index.d.ts.map +1 -0
- package/dist/layout-picker/index.js +2 -0
- package/dist/layout-picker/lib/index.d.ts +4 -0
- package/dist/layout-picker/lib/index.d.ts.map +1 -0
- package/dist/layout-picker/lib/layout.d.ts +11 -0
- package/dist/layout-picker/lib/layout.d.ts.map +1 -0
- package/dist/layout-picker/lib/presets.d.ts +789 -0
- package/dist/layout-picker/lib/presets.d.ts.map +1 -0
- package/dist/layout-picker/lib/types.d.ts +22 -0
- package/dist/layout-picker/lib/types.d.ts.map +1 -0
- package/dist/layout-picker/stories/LayoutPicker.stories.d.ts +873 -0
- package/dist/layout-picker/stories/LayoutPicker.stories.d.ts.map +1 -0
- package/dist/layout-picker/stories/LayoutPicker.stories.js +422 -0
- package/dist/layout-picker/stories/LayoutPicker.stories.js.map +1 -0
- package/dist/layout-picker/ui/LayoutPicker.d.ts +18 -0
- package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -0
- package/dist/layout-picker/ui/index.d.ts +2 -0
- package/dist/layout-picker/ui/index.d.ts.map +1 -0
- package/dist/list/List.d.ts +43 -0
- package/dist/list/List.d.ts.map +1 -0
- package/dist/list/index.d.ts +2 -0
- package/dist/list/index.d.ts.map +1 -0
- package/dist/list/index.js +88 -0
- package/dist/list/index.js.map +1 -0
- package/dist/listbox/Listbox.d.ts +31 -0
- package/dist/listbox/Listbox.d.ts.map +1 -0
- package/dist/listbox/index.d.ts +2 -0
- package/dist/listbox/index.d.ts.map +1 -0
- package/dist/listbox/index.js +2 -0
- package/dist/listbox/stories/Listbox.stories.d.ts +76 -0
- package/dist/listbox/stories/Listbox.stories.d.ts.map +1 -0
- package/dist/listbox/stories/Listbox.stories.js +140 -0
- package/dist/listbox/stories/Listbox.stories.js.map +1 -0
- package/dist/misc/AnimatedLogo.d.ts +2 -0
- package/dist/misc/AnimatedLogo.d.ts.map +1 -0
- package/dist/misc/CopyTextWrapper.d.ts +10 -0
- package/dist/misc/CopyTextWrapper.d.ts.map +1 -0
- package/dist/misc/IconWrapper.d.ts +8 -0
- package/dist/misc/IconWrapper.d.ts.map +1 -0
- package/dist/misc/LazyDynamicComponent.d.ts +15 -0
- package/dist/misc/LazyDynamicComponent.d.ts.map +1 -0
- package/dist/misc/LazyValue.d.ts +8 -0
- package/dist/misc/LazyValue.d.ts.map +1 -0
- package/dist/misc/LoadingMessage.d.ts +8 -0
- package/dist/misc/LoadingMessage.d.ts.map +1 -0
- package/dist/misc/Message.d.ts +11 -0
- package/dist/misc/Message.d.ts.map +1 -0
- package/dist/misc/NoData.d.ts +8 -0
- package/dist/misc/NoData.d.ts.map +1 -0
- package/dist/misc/Notice.d.ts +8 -0
- package/dist/misc/Notice.d.ts.map +1 -0
- package/dist/misc/OneStepScroller.d.ts +27 -0
- package/dist/misc/OneStepScroller.d.ts.map +1 -0
- package/dist/misc/Scrollable.d.ts +14 -0
- package/dist/misc/Scrollable.d.ts.map +1 -0
- package/dist/misc/SkeletonLine.d.ts +9 -0
- package/dist/misc/SkeletonLine.d.ts.map +1 -0
- package/dist/misc/StateIcon.d.ts +18 -0
- package/dist/misc/StateIcon.d.ts.map +1 -0
- package/dist/misc/StateWrapper.d.ts +11 -0
- package/dist/misc/StateWrapper.d.ts.map +1 -0
- package/dist/misc/index.d.ts +15 -0
- package/dist/misc/index.d.ts.map +1 -0
- package/dist/misc/index.js +2 -0
- package/dist/modal/Modal.d.ts +30 -0
- package/dist/modal/Modal.d.ts.map +1 -0
- package/dist/modal/ModalManagerProvider.d.ts +8 -0
- package/dist/modal/ModalManagerProvider.d.ts.map +1 -0
- package/dist/modal/index.d.ts +4 -0
- package/dist/modal/index.d.ts.map +1 -0
- package/dist/modal/index.js +2 -0
- package/dist/modal/stories/Modal.stories.d.ts +74 -0
- package/dist/modal/stories/Modal.stories.d.ts.map +1 -0
- package/dist/modal/stories/Modal.stories.js +320 -0
- package/dist/modal/stories/Modal.stories.js.map +1 -0
- package/dist/modal/types.d.ts +8 -0
- package/dist/modal/types.d.ts.map +1 -0
- package/dist/modal/useModalManager.d.ts +13 -0
- package/dist/modal/useModalManager.d.ts.map +1 -0
- package/dist/multi-select/index.d.ts +2 -0
- package/dist/multi-select/index.d.ts.map +1 -0
- package/dist/multi-select/index.js +35 -0
- package/dist/multi-select/index.js.map +1 -0
- package/dist/multi-select/model/index.d.ts +1 -0
- package/dist/multi-select/model/index.d.ts.map +1 -0
- package/dist/multi-select/ui/MultiSelect.d.ts +55 -0
- package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -0
- package/dist/multi-select/ui/MultiSelectOption.d.ts +14 -0
- package/dist/multi-select/ui/MultiSelectOption.d.ts.map +1 -0
- package/dist/multi-select/ui/MultiSelectOptionSkeleton.d.ts +10 -0
- package/dist/multi-select/ui/MultiSelectOptionSkeleton.d.ts.map +1 -0
- package/dist/multi-select/ui/MultiSelectOptionsToolbar.d.ts +8 -0
- package/dist/multi-select/ui/MultiSelectOptionsToolbar.d.ts.map +1 -0
- package/dist/multi-select/ui/MultiSelectToken.d.ts +9 -0
- package/dist/multi-select/ui/MultiSelectToken.d.ts.map +1 -0
- package/dist/multi-select/ui/SerializableMultiSelect.d.ts +14 -0
- package/dist/multi-select/ui/SerializableMultiSelect.d.ts.map +1 -0
- package/dist/multi-select/ui/defaultRenderers.d.ts +14 -0
- package/dist/multi-select/ui/defaultRenderers.d.ts.map +1 -0
- package/dist/multi-select/ui/index.d.ts +4 -0
- package/dist/multi-select/ui/index.d.ts.map +1 -0
- package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts +67 -0
- package/dist/multi-select/ui/stories/MultiSelect.stories.d.ts.map +1 -0
- package/dist/multi-select/ui/stories/MultiSelect.stories.js +114 -0
- package/dist/multi-select/ui/stories/MultiSelect.stories.js.map +1 -0
- package/dist/notifications/index.d.ts +13 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +3 -0
- package/dist/notifications/model/NotificationsProvider.d.ts +22 -0
- package/dist/notifications/model/NotificationsProvider.d.ts.map +1 -0
- package/dist/notifications/model/index.d.ts +2 -0
- package/dist/notifications/model/index.d.ts.map +1 -0
- package/dist/notifications/ui/NotificationsHost.d.ts +6 -0
- package/dist/notifications/ui/NotificationsHost.d.ts.map +1 -0
- package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts +21 -0
- package/dist/notifications/ui/stories/NotificationsHost.stories.d.ts.map +1 -0
- package/dist/notifications/ui/stories/NotificationsHost.stories.js +326 -0
- package/dist/notifications/ui/stories/NotificationsHost.stories.js.map +1 -0
- package/dist/pages/NotFoundPage.d.ts +5 -0
- package/dist/pages/NotFoundPage.d.ts.map +1 -0
- package/dist/pages/index.d.ts +2 -0
- package/dist/pages/index.d.ts.map +1 -0
- package/dist/pages/index.js +15 -0
- package/dist/pages/index.js.map +1 -0
- package/dist/panel/Section.d.ts +9 -0
- package/dist/panel/Section.d.ts.map +1 -0
- package/dist/panel/index.d.ts +2 -0
- package/dist/panel/index.d.ts.map +1 -0
- package/dist/panel/index.js +16 -0
- package/dist/panel/index.js.map +1 -0
- package/dist/period-select/PeriodSelect.d.ts +14 -0
- package/dist/period-select/PeriodSelect.d.ts.map +1 -0
- package/dist/period-select/index.d.ts +3 -0
- package/dist/period-select/index.d.ts.map +1 -0
- package/dist/period-select/index.js +100 -0
- package/dist/period-select/index.js.map +1 -0
- package/dist/period-select/lib/constants.d.ts +2 -0
- package/dist/period-select/lib/constants.d.ts.map +1 -0
- package/dist/period-select/lib/index.d.ts +3 -0
- package/dist/period-select/lib/index.d.ts.map +1 -0
- package/dist/period-select/lib/periodSelect.d.ts +34 -0
- package/dist/period-select/lib/periodSelect.d.ts.map +1 -0
- package/dist/period-select/stories/PeriodSelect.stories.d.ts +96 -0
- package/dist/period-select/stories/PeriodSelect.stories.d.ts.map +1 -0
- package/dist/period-select/stories/PeriodSelect.stories.js +166 -0
- package/dist/period-select/stories/PeriodSelect.stories.js.map +1 -0
- package/dist/picker/PickerField.d.ts +4 -0
- package/dist/picker/PickerField.d.ts.map +1 -0
- package/dist/picker/PickerPopup.d.ts +26 -0
- package/dist/picker/PickerPopup.d.ts.map +1 -0
- package/dist/picker/PickerStatus.d.ts +9 -0
- package/dist/picker/PickerStatus.d.ts.map +1 -0
- package/dist/picker/PickerTriggerActions.d.ts +13 -0
- package/dist/picker/PickerTriggerActions.d.ts.map +1 -0
- package/dist/picker/PickerTriggerInput.d.ts +11 -0
- package/dist/picker/PickerTriggerInput.d.ts.map +1 -0
- package/dist/picker/index.d.ts +8 -0
- package/dist/picker/index.d.ts.map +1 -0
- package/dist/picker/index.js +2 -0
- package/dist/picker/model/createPickerTriggerPolicy.d.ts +22 -0
- package/dist/picker/model/createPickerTriggerPolicy.d.ts.map +1 -0
- package/dist/picker/model/extractPickerTextContent.d.ts +3 -0
- package/dist/picker/model/extractPickerTextContent.d.ts.map +1 -0
- package/dist/picker/model/index.d.ts +8 -0
- package/dist/picker/model/index.d.ts.map +1 -0
- package/dist/picker/model/usePickerDefaultFilter.d.ts +9 -0
- package/dist/picker/model/usePickerDefaultFilter.d.ts.map +1 -0
- package/dist/picker/model/usePickerFloatingListbox.d.ts +66 -0
- package/dist/picker/model/usePickerFloatingListbox.d.ts.map +1 -0
- package/dist/picker/model/usePickerQuery.d.ts +16 -0
- package/dist/picker/model/usePickerQuery.d.ts.map +1 -0
- package/dist/picker/model/usePickerSelectionLifecycle.d.ts +19 -0
- package/dist/picker/model/usePickerSelectionLifecycle.d.ts.map +1 -0
- package/dist/picker/model/usePickerTriggerController.d.ts +37 -0
- package/dist/picker/model/usePickerTriggerController.d.ts.map +1 -0
- package/dist/picker/types.d.ts +17 -0
- package/dist/picker/types.d.ts.map +1 -0
- package/dist/polymorphic/PolymorphicComponent.d.ts +7 -0
- package/dist/polymorphic/PolymorphicComponent.d.ts.map +1 -0
- package/dist/polymorphic/index.d.ts +2 -0
- package/dist/polymorphic/index.d.ts.map +1 -0
- package/dist/polymorphic/index.js +7 -0
- package/dist/polymorphic/index.js.map +1 -0
- package/dist/popover/FloatingPopover.d.ts +16 -0
- package/dist/popover/FloatingPopover.d.ts.map +1 -0
- package/dist/popover/FloatingTooltip.d.ts +7 -0
- package/dist/popover/FloatingTooltip.d.ts.map +1 -0
- package/dist/popover/components/Popover.d.ts +21 -0
- package/dist/popover/components/Popover.d.ts.map +1 -0
- package/dist/popover/components/PopoverContent.d.ts +16 -0
- package/dist/popover/components/PopoverContent.d.ts.map +1 -0
- package/dist/popover/components/PopoverContext.d.ts +15 -0
- package/dist/popover/components/PopoverContext.d.ts.map +1 -0
- package/dist/popover/components/PopoverTrigger.d.ts +9 -0
- package/dist/popover/components/PopoverTrigger.d.ts.map +1 -0
- package/dist/popover/index.d.ts +7 -0
- package/dist/popover/index.d.ts.map +1 -0
- package/dist/popover/index.js +2 -0
- package/dist/popover/stories/Popover.stories.d.ts +10 -0
- package/dist/popover/stories/Popover.stories.d.ts.map +1 -0
- package/dist/popover/stories/Popover.stories.js +75 -0
- package/dist/popover/stories/Popover.stories.js.map +1 -0
- package/dist/preset-range-date-input/index.d.ts +3 -0
- package/dist/preset-range-date-input/index.d.ts.map +1 -0
- package/dist/preset-range-date-input/index.js +7 -0
- package/dist/preset-range-date-input/index.js.map +1 -0
- package/dist/preset-range-date-input/lib/constants.d.ts +5 -0
- package/dist/preset-range-date-input/lib/constants.d.ts.map +1 -0
- package/dist/preset-range-date-input/lib/index.d.ts +2 -0
- package/dist/preset-range-date-input/lib/index.d.ts.map +1 -0
- package/dist/preset-range-date-input/ui/PresetRangeDateInput.d.ts +19 -0
- package/dist/preset-range-date-input/ui/PresetRangeDateInput.d.ts.map +1 -0
- package/dist/preset-range-date-input/ui/index.d.ts +3 -0
- package/dist/preset-range-date-input/ui/index.d.ts.map +1 -0
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts +22 -0
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.d.ts.map +1 -0
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js +45 -0
- package/dist/preset-range-date-input/ui/stories/PresetRangeDateInput.stories.js.map +1 -0
- package/dist/preset-select/PresetSelect.d.ts +21 -0
- package/dist/preset-select/PresetSelect.d.ts.map +1 -0
- package/dist/preset-select/index.d.ts +2 -0
- package/dist/preset-select/index.d.ts.map +1 -0
- package/dist/preset-select/index.js +28 -0
- package/dist/preset-select/index.js.map +1 -0
- package/dist/radio-button/RadioButton.d.ts +11 -0
- package/dist/radio-button/RadioButton.d.ts.map +1 -0
- package/dist/radio-button/index.d.ts +2 -0
- package/dist/radio-button/index.d.ts.map +1 -0
- package/dist/radio-button/index.js +2 -0
- package/dist/radio-button/stories/RadioButton.stories.d.ts +60 -0
- package/dist/radio-button/stories/RadioButton.stories.d.ts.map +1 -0
- package/dist/radio-button/stories/RadioButton.stories.js +121 -0
- package/dist/radio-button/stories/RadioButton.stories.js.map +1 -0
- package/dist/radio-group/RadioGroup.d.ts +32 -0
- package/dist/radio-group/RadioGroup.d.ts.map +1 -0
- package/dist/radio-group/index.d.ts +2 -0
- package/dist/radio-group/index.d.ts.map +1 -0
- package/dist/radio-group/index.js +2 -0
- package/dist/radio-group/stories/RadioGroup.stories.d.ts +74 -0
- package/dist/radio-group/stories/RadioGroup.stories.d.ts.map +1 -0
- package/dist/radio-group/stories/RadioGroup.stories.js +146 -0
- package/dist/radio-group/stories/RadioGroup.stories.js.map +1 -0
- package/dist/select/Select.d.ts +41 -0
- package/dist/select/Select.d.ts.map +1 -0
- package/dist/select/SelectOptionContent.d.ts +11 -0
- package/dist/select/SelectOptionContent.d.ts.map +1 -0
- package/dist/select/SerializableSelect.d.ts +19 -0
- package/dist/select/SerializableSelect.d.ts.map +1 -0
- package/dist/select/index.d.ts +4 -0
- package/dist/select/index.d.ts.map +1 -0
- package/dist/select/index.js +3 -0
- package/dist/select/lib/getOptionSearchText.d.ts +12 -0
- package/dist/select/lib/getOptionSearchText.d.ts.map +1 -0
- package/dist/select/lib/index.d.ts +2 -0
- package/dist/select/lib/index.d.ts.map +1 -0
- package/dist/select/stories/Select.stories.d.ts +127 -0
- package/dist/select/stories/Select.stories.d.ts.map +1 -0
- package/dist/select/stories/Select.stories.js +214 -0
- package/dist/select/stories/Select.stories.js.map +1 -0
- package/dist/select/stories/SerializableSelect.stories.d.ts +91 -0
- package/dist/select/stories/SerializableSelect.stories.d.ts.map +1 -0
- package/dist/select/stories/SerializableSelect.stories.js +165 -0
- package/dist/select/stories/SerializableSelect.stories.js.map +1 -0
- package/dist/separator/Separator.d.ts +10 -0
- package/dist/separator/Separator.d.ts.map +1 -0
- package/dist/separator/index.d.ts +2 -0
- package/dist/separator/index.d.ts.map +1 -0
- package/dist/separator/index.js +2 -0
- package/dist/simple-table/SimpleTable.d.ts +35 -0
- package/dist/simple-table/SimpleTable.d.ts.map +1 -0
- package/dist/simple-table/index.d.ts +2 -0
- package/dist/simple-table/index.d.ts.map +1 -0
- package/dist/simple-table/index.js +31 -0
- package/dist/simple-table/index.js.map +1 -0
- package/dist/slider/Slider.d.ts +86 -0
- package/dist/slider/Slider.d.ts.map +1 -0
- package/dist/slider/SliderInput.d.ts +53 -0
- package/dist/slider/SliderInput.d.ts.map +1 -0
- package/dist/slider/index.d.ts +6 -0
- package/dist/slider/index.d.ts.map +1 -0
- package/dist/slider/index.js +2 -0
- package/dist/slider/lib/index.d.ts +3 -0
- package/dist/slider/lib/index.d.ts.map +1 -0
- package/dist/slider/lib/sliderMath.d.ts +40 -0
- package/dist/slider/lib/sliderMath.d.ts.map +1 -0
- package/dist/slider/lib/types.d.ts +80 -0
- package/dist/slider/lib/types.d.ts.map +1 -0
- package/dist/slider/stories/Slider.stories.d.ts +29 -0
- package/dist/slider/stories/Slider.stories.d.ts.map +1 -0
- package/dist/slider/stories/Slider.stories.js +310 -0
- package/dist/slider/stories/Slider.stories.js.map +1 -0
- package/dist/slider/stories/SliderInput.stories.d.ts +30 -0
- package/dist/slider/stories/SliderInput.stories.d.ts.map +1 -0
- package/dist/slider/stories/SliderInput.stories.js +282 -0
- package/dist/slider/stories/SliderInput.stories.js.map +1 -0
- package/dist/sortable/Sortable.d.ts +52 -0
- package/dist/sortable/Sortable.d.ts.map +1 -0
- package/dist/sortable/SortableDragHandle.d.ts +18 -0
- package/dist/sortable/SortableDragHandle.d.ts.map +1 -0
- package/dist/sortable/index.d.ts +14 -0
- package/dist/sortable/index.d.ts.map +1 -0
- package/dist/sortable/index.js +2 -0
- package/dist/sortable/sortableUtils.d.ts +18 -0
- package/dist/sortable/sortableUtils.d.ts.map +1 -0
- package/dist/sortable/stories/Sortable.stories.d.ts +58 -0
- package/dist/sortable/stories/Sortable.stories.d.ts.map +1 -0
- package/dist/sortable/stories/Sortable.stories.js +255 -0
- package/dist/sortable/stories/Sortable.stories.js.map +1 -0
- package/dist/splitter/Splitter.d.ts +14 -0
- package/dist/splitter/Splitter.d.ts.map +1 -0
- package/dist/splitter/index.d.ts +2 -0
- package/dist/splitter/index.d.ts.map +1 -0
- package/dist/splitter/index.js +2 -0
- package/dist/splitter/stories/Splitter.stories.d.ts +66 -0
- package/dist/splitter/stories/Splitter.stories.d.ts.map +1 -0
- package/dist/splitter/stories/Splitter.stories.js +223 -0
- package/dist/splitter/stories/Splitter.stories.js.map +1 -0
- package/dist/state-select/StateSelect.d.ts +19 -0
- package/dist/state-select/StateSelect.d.ts.map +1 -0
- package/dist/state-select/index.d.ts +3 -0
- package/dist/state-select/index.d.ts.map +1 -0
- package/dist/state-select/index.js +2 -0
- package/dist/state-select/stories/StateSelect.stories.d.ts +70 -0
- package/dist/state-select/stories/StateSelect.stories.d.ts.map +1 -0
- package/dist/state-select/stories/StateSelect.stories.js +145 -0
- package/dist/state-select/stories/StateSelect.stories.js.map +1 -0
- package/dist/styles-entry.js +0 -0
- package/dist/styles.css +2 -0
- package/dist/switch/Switch.d.ts +19 -0
- package/dist/switch/Switch.d.ts.map +1 -0
- package/dist/switch/index.d.ts +2 -0
- package/dist/switch/index.d.ts.map +1 -0
- package/dist/switch/index.js +2 -0
- package/dist/switch/stories/Switch.stories.d.ts +59 -0
- package/dist/switch/stories/Switch.stories.d.ts.map +1 -0
- package/dist/switch/stories/Switch.stories.js +90 -0
- package/dist/switch/stories/Switch.stories.js.map +1 -0
- package/dist/table/Table.d.ts +152 -0
- package/dist/table/Table.d.ts.map +1 -0
- package/dist/table/index.d.ts +2 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/index.js +2 -0
- package/dist/table-column-interactions/TableColumnResizeHandle.d.ts +13 -0
- package/dist/table-column-interactions/TableColumnResizeHandle.d.ts.map +1 -0
- package/dist/table-column-interactions/TableHeaderInteractionCell.d.ts +19 -0
- package/dist/table-column-interactions/TableHeaderInteractionCell.d.ts.map +1 -0
- package/dist/table-column-interactions/index.d.ts +3 -0
- package/dist/table-column-interactions/index.d.ts.map +1 -0
- package/dist/table-column-interactions/index.js +2 -0
- package/dist/table-sorting/TableSortingControls.d.ts +15 -0
- package/dist/table-sorting/TableSortingControls.d.ts.map +1 -0
- package/dist/table-sorting/index.d.ts +2 -0
- package/dist/table-sorting/index.d.ts.map +1 -0
- package/dist/table-sorting/index.js +47 -0
- package/dist/table-sorting/index.js.map +1 -0
- package/dist/tabs/index.d.ts +6 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tabs/index.js +2 -0
- package/dist/tabs/lib/tabs.d.ts +25 -0
- package/dist/tabs/lib/tabs.d.ts.map +1 -0
- package/dist/tabs/model/types.d.ts +72 -0
- package/dist/tabs/model/types.d.ts.map +1 -0
- package/dist/tabs/model/useTabsState.d.ts +35 -0
- package/dist/tabs/model/useTabsState.d.ts.map +1 -0
- package/dist/tabs/stories/Tabs.stories.d.ts +94 -0
- package/dist/tabs/stories/Tabs.stories.d.ts.map +1 -0
- package/dist/tabs/stories/Tabs.stories.js +283 -0
- package/dist/tabs/stories/Tabs.stories.js.map +1 -0
- package/dist/tabs/ui/Tabs.d.ts +16 -0
- package/dist/tabs/ui/Tabs.d.ts.map +1 -0
- package/dist/tabs/ui/TabsBox.d.ts +7 -0
- package/dist/tabs/ui/TabsBox.d.ts.map +1 -0
- package/dist/tabs/ui/TabsLayout.d.ts +39 -0
- package/dist/tabs/ui/TabsLayout.d.ts.map +1 -0
- package/dist/tabs/ui/TabsLoadingState.d.ts +14 -0
- package/dist/tabs/ui/TabsLoadingState.d.ts.map +1 -0
- package/dist/tabs/ui/TabsNoDataState.d.ts +12 -0
- package/dist/tabs/ui/TabsNoDataState.d.ts.map +1 -0
- package/dist/tabs/ui/TabsPanel.d.ts +15 -0
- package/dist/tabs/ui/TabsPanel.d.ts.map +1 -0
- package/dist/tabs/ui/TabsTabList.d.ts +15 -0
- package/dist/tabs/ui/TabsTabList.d.ts.map +1 -0
- package/dist/text/HighlightText.d.ts +5 -0
- package/dist/text/HighlightText.d.ts.map +1 -0
- package/dist/text/Text.d.ts +22 -0
- package/dist/text/Text.d.ts.map +1 -0
- package/dist/text/TextOverflow.d.ts +32 -0
- package/dist/text/TextOverflow.d.ts.map +1 -0
- package/dist/text/index.d.ts +4 -0
- package/dist/text/index.d.ts.map +1 -0
- package/dist/text/index.js +84 -0
- package/dist/text/index.js.map +1 -0
- package/dist/text-editor/EmailDialog.d.ts +13 -0
- package/dist/text-editor/EmailDialog.d.ts.map +1 -0
- package/dist/text-editor/LinkDialog.d.ts +13 -0
- package/dist/text-editor/LinkDialog.d.ts.map +1 -0
- package/dist/text-editor/Paragraph.d.ts +6 -0
- package/dist/text-editor/Paragraph.d.ts.map +1 -0
- package/dist/text-editor/PhoneDialog.d.ts +13 -0
- package/dist/text-editor/PhoneDialog.d.ts.map +1 -0
- package/dist/text-editor/SemanticDialog.d.ts +30 -0
- package/dist/text-editor/SemanticDialog.d.ts.map +1 -0
- package/dist/text-editor/TextEditorDialogs.d.ts +22 -0
- package/dist/text-editor/TextEditorDialogs.d.ts.map +1 -0
- package/dist/text-editor/TextEditorLexical.d.ts +6 -0
- package/dist/text-editor/TextEditorLexical.d.ts.map +1 -0
- package/dist/text-editor/TextEditorLexicalClient.d.ts +9 -0
- package/dist/text-editor/TextEditorLexicalClient.d.ts.map +1 -0
- package/dist/text-editor/TimeDialog.d.ts +18 -0
- package/dist/text-editor/TimeDialog.d.ts.map +1 -0
- package/dist/text-editor/editorModel.d.ts +34 -0
- package/dist/text-editor/editorModel.d.ts.map +1 -0
- package/dist/text-editor/index.d.ts +7 -0
- package/dist/text-editor/index.d.ts.map +1 -0
- package/dist/text-editor/index.js +22 -0
- package/dist/text-editor/index.js.map +1 -0
- package/dist/text-editor/lexical/plugins/InitialHtmlPlugin.d.ts +10 -0
- package/dist/text-editor/lexical/plugins/InitialHtmlPlugin.d.ts.map +1 -0
- package/dist/text-editor/lexical/plugins/SelectionStatePlugin.d.ts +12 -0
- package/dist/text-editor/lexical/plugins/SelectionStatePlugin.d.ts.map +1 -0
- package/dist/text-editor/lexical/plugins/index.d.ts +3 -0
- package/dist/text-editor/lexical/plugins/index.d.ts.map +1 -0
- package/dist/text-editor/lexical/plugins/index.js +2 -0
- package/dist/text-editor/lib/semantic/getSemanticTagDepth.d.ts +3 -0
- package/dist/text-editor/lib/semantic/getSemanticTagDepth.d.ts.map +1 -0
- package/dist/text-editor/lib/serialization/createLexicalRaw.d.ts +4 -0
- package/dist/text-editor/lib/serialization/createLexicalRaw.d.ts.map +1 -0
- package/dist/text-editor/lib/toolbar/resolveToolbarState.d.ts +5 -0
- package/dist/text-editor/lib/toolbar/resolveToolbarState.d.ts.map +1 -0
- package/dist/text-editor/lib/toolbar/styleMappers.d.ts +5 -0
- package/dist/text-editor/lib/toolbar/styleMappers.d.ts.map +1 -0
- package/dist/text-editor/linkTypes.d.ts +2 -0
- package/dist/text-editor/linkTypes.d.ts.map +1 -0
- package/dist/text-editor/model/hooks/useTextEditorLexicalActions.d.ts +27 -0
- package/dist/text-editor/model/hooks/useTextEditorLexicalActions.d.ts.map +1 -0
- package/dist/text-editor/model/textEditorTypes.d.ts +20 -0
- package/dist/text-editor/model/textEditorTypes.d.ts.map +1 -0
- package/dist/text-editor/nodes/AccessibleLinkNode.d.ts +42 -0
- package/dist/text-editor/nodes/AccessibleLinkNode.d.ts.map +1 -0
- package/dist/text-editor/nodes/SemanticTagNode.d.ts +39 -0
- package/dist/text-editor/nodes/SemanticTagNode.d.ts.map +1 -0
- package/dist/text-editor/semanticTagConfigs.d.ts +4 -0
- package/dist/text-editor/semanticTagConfigs.d.ts.map +1 -0
- package/dist/text-editor/toolbar/ActionControls.d.ts +9 -0
- package/dist/text-editor/toolbar/ActionControls.d.ts.map +1 -0
- package/dist/text-editor/toolbar/AlignmentControls.d.ts +11 -0
- package/dist/text-editor/toolbar/AlignmentControls.d.ts.map +1 -0
- package/dist/text-editor/toolbar/HistoryControls.d.ts +10 -0
- package/dist/text-editor/toolbar/HistoryControls.d.ts.map +1 -0
- package/dist/text-editor/toolbar/LinkButtons.d.ts +11 -0
- package/dist/text-editor/toolbar/LinkButtons.d.ts.map +1 -0
- package/dist/text-editor/toolbar/TagButtons.d.ts +10 -0
- package/dist/text-editor/toolbar/TagButtons.d.ts.map +1 -0
- package/dist/text-editor/toolbar/TextEditorToolbarLexical.d.ts +21 -0
- package/dist/text-editor/toolbar/TextEditorToolbarLexical.d.ts.map +1 -0
- package/dist/text-editor/toolbar/ToolbarControl.d.ts +15 -0
- package/dist/text-editor/toolbar/ToolbarControl.d.ts.map +1 -0
- package/dist/text-editor/toolbar/index.d.ts +8 -0
- package/dist/text-editor/toolbar/index.d.ts.map +1 -0
- package/dist/text-editor/toolbar/index.js +2 -0
- package/dist/text-editor/toolbar/types.d.ts +60 -0
- package/dist/text-editor/toolbar/types.d.ts.map +1 -0
- package/dist/text-editor/types.d.ts +2 -0
- package/dist/text-editor/types.d.ts.map +1 -0
- package/dist/textarea/Textarea.d.ts +11 -0
- package/dist/textarea/Textarea.d.ts.map +1 -0
- package/dist/textarea/index.d.ts +2 -0
- package/dist/textarea/index.d.ts.map +1 -0
- package/dist/textarea/index.js +2 -0
- package/dist/textarea/stories/Textarea.stories.d.ts +64 -0
- package/dist/textarea/stories/Textarea.stories.d.ts.map +1 -0
- package/dist/textarea/stories/Textarea.stories.js +98 -0
- package/dist/textarea/stories/Textarea.stories.js.map +1 -0
- package/dist/three-scene/ThreeSceneErrorBoundary.d.ts +17 -0
- package/dist/three-scene/ThreeSceneErrorBoundary.d.ts.map +1 -0
- package/dist/three-scene/ThreeSceneGuard.d.ts +13 -0
- package/dist/three-scene/ThreeSceneGuard.d.ts.map +1 -0
- package/dist/three-scene/index.d.ts +3 -0
- package/dist/three-scene/index.d.ts.map +1 -0
- package/dist/three-scene/index.js +38 -0
- package/dist/three-scene/index.js.map +1 -0
- package/dist/toggle/Toggle.d.ts +14 -0
- package/dist/toggle/Toggle.d.ts.map +1 -0
- package/dist/toggle/index.d.ts +2 -0
- package/dist/toggle/index.d.ts.map +1 -0
- package/dist/toggle/index.js +2 -0
- package/dist/toggle/stories/Toggle.stories.d.ts +61 -0
- package/dist/toggle/stories/Toggle.stories.d.ts.map +1 -0
- package/dist/toggle/stories/Toggle.stories.js +102 -0
- package/dist/toggle/stories/Toggle.stories.js.map +1 -0
- package/dist/toolbar/Toolbar.d.ts +17 -0
- package/dist/toolbar/Toolbar.d.ts.map +1 -0
- package/dist/toolbar/index.d.ts +2 -0
- package/dist/toolbar/index.d.ts.map +1 -0
- package/dist/toolbar/index.js +55 -0
- package/dist/toolbar/index.js.map +1 -0
- package/dist/tree/Tree.d.ts +64 -0
- package/dist/tree/Tree.d.ts.map +1 -0
- package/dist/tree/index.d.ts +2 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/dist/tree/index.js +102 -0
- package/dist/tree/index.js.map +1 -0
- package/dist/tree-select/TreeMultiSelect.d.ts +13 -0
- package/dist/tree-select/TreeMultiSelect.d.ts.map +1 -0
- package/dist/tree-select/TreeNodeContent.d.ts +15 -0
- package/dist/tree-select/TreeNodeContent.d.ts.map +1 -0
- package/dist/tree-select/TreePickerBase.d.ts +22 -0
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -0
- package/dist/tree-select/TreeSelect.d.ts +14 -0
- package/dist/tree-select/TreeSelect.d.ts.map +1 -0
- package/dist/tree-select/helpers.d.ts +3 -0
- package/dist/tree-select/helpers.d.ts.map +1 -0
- package/dist/tree-select/index.d.ts +5 -0
- package/dist/tree-select/index.d.ts.map +1 -0
- package/dist/tree-select/index.js +10 -0
- package/dist/tree-select/index.js.map +1 -0
- package/dist/tree-select/model/treeUtils.d.ts +37 -0
- package/dist/tree-select/model/treeUtils.d.ts.map +1 -0
- package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts +35 -0
- package/dist/tree-select/stories/TreeMultiSelect.stories.d.ts.map +1 -0
- package/dist/tree-select/stories/TreeMultiSelect.stories.js +64 -0
- package/dist/tree-select/stories/TreeMultiSelect.stories.js.map +1 -0
- package/dist/tree-select/stories/TreeSelect.stories.d.ts +35 -0
- package/dist/tree-select/stories/TreeSelect.stories.d.ts.map +1 -0
- package/dist/tree-select/stories/TreeSelect.stories.js +66 -0
- package/dist/tree-select/stories/TreeSelect.stories.js.map +1 -0
- package/dist/tree-select/stories/treeStoryFixtures.d.ts +3 -0
- package/dist/tree-select/stories/treeStoryFixtures.d.ts.map +1 -0
- package/dist/tree-select/types.d.ts +16 -0
- package/dist/tree-select/types.d.ts.map +1 -0
- package/dist/tree-table/TreeTable.d.ts +174 -0
- package/dist/tree-table/TreeTable.d.ts.map +1 -0
- package/dist/tree-table/index.d.ts +2 -0
- package/dist/tree-table/index.d.ts.map +1 -0
- package/dist/tree-table/index.js +220 -0
- package/dist/tree-table/index.js.map +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/uiClasses.d.ts +16 -0
- package/dist/uiClasses.d.ts.map +1 -0
- package/dist/wheel-picker/WheelPicker.d.ts +21 -0
- package/dist/wheel-picker/WheelPicker.d.ts.map +1 -0
- package/dist/wheel-picker/index.d.ts +3 -0
- package/dist/wheel-picker/index.d.ts.map +1 -0
- package/dist/wheel-picker/index.js +2 -0
- package/dist/wheel-picker/lib/wheelPickerMath.d.ts +25 -0
- package/dist/wheel-picker/lib/wheelPickerMath.d.ts.map +1 -0
- package/package.json +1007 -0
- package/src/styles/_align.scss +96 -0
- package/src/styles/_base.scss +443 -0
- package/src/styles/_border.scss +99 -0
- package/src/styles/_color.scss +161 -0
- package/src/styles/_components.scss +14 -0
- package/src/styles/_controls.scss +42 -0
- package/src/styles/_flex.scss +98 -0
- package/src/styles/_gap.scss +57 -0
- package/src/styles/_grid.scss +52 -0
- package/src/styles/_layout.scss +288 -0
- package/src/styles/_margin.scss +315 -0
- package/src/styles/_normalize.scss +194 -0
- package/src/styles/_root-tokens.scss +41 -0
- package/src/styles/_text.scss +222 -0
- package/src/styles/_variables.scss +22 -0
- package/src/styles/config/_index.scss +400 -0
- package/src/styles/fonts.scss +47 -0
- package/src/styles/foundation.scss +12 -0
- package/src/styles/mixins/_controls.scss +125 -0
- package/src/styles/mixins/_index.scss +3 -0
- package/src/styles/mixins/_media.scss +70 -0
- package/src/styles/mixins/_mixin.scss +299 -0
- package/src/styles/styles.scss +15 -0
- package/src/styles/themes/_index.scss +2 -0
- package/src/styles/themes/_theme.scss +17 -0
- package/src/styles/themes/dark/_default.scss +24 -0
- package/src/styles/themes/light/_default.scss +7 -0
- package/styles/config.scss +1 -0
- package/styles/foundation.scss +1 -0
- package/styles/mixins.scss +1 -0
- package/styles/themes.scss +1 -0
- package/styles.scss +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-34wxzKkG.js","names":[],"sources":["../../src/slider/lib/sliderMath.ts","../../src/slider/Slider.module.scss","../../src/slider/Slider.tsx","../../src/slider/SliderInput.tsx"],"sourcesContent":["import {\n\tfindClosestNumberScaleMark,\n\tfindClosestNumberScaleMarkByPercent,\n\tgetNumberScaleMarkPercent,\n\tprepareNumberScaleMarks,\n\tresolveNumberScaleBounds,\n\tsnapNumberScaleValue,\n\tsnapNumberScaleValueToStep,\n\tvalueToNumberScalePercent\n} from \"@ryuzaki13/react-foundation-lib/number-scale\";\nimport { resolveRangeOutputValue } from \"@ryuzaki13/react-foundation-lib/range-output\";\n\nimport { SliderFillRange, SliderMark, SliderMathOptions, SliderRangeMark, SliderRangeOutputValueFallback, SliderRangeValue } from \"./types\";\n\nexport function prepareSliderMarks<TMark extends SliderMark>(marks: readonly TMark[] | undefined, min: number, max: number): TMark[] {\n\treturn prepareNumberScaleMarks(marks, min, max);\n}\n\nexport function getSliderMarkPercent<TMark extends SliderMark>(mark: TMark, marks: readonly TMark[], options: SliderMathOptions<TMark>) {\n\tconst markIndex = marks.findIndex((item) => item.value === mark.value);\n\treturn getNumberScaleMarkPercent(Math.max(0, markIndex), marks, options.min, options.max, options.marksPosition);\n}\n\n/**\n * Возвращает визуальную позицию значения: по шкале min/max или по позиции ближайшей mark.\n */\nexport function valueToSliderVisualPercent<TMark extends SliderMark>(value: number, options: SliderMathOptions<TMark>) {\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\tconst marks = prepareSliderMarks(options.marks, min, max);\n\n\tif (marks.length > 0) {\n\t\tconst exactMark = marks.find((mark) => mark.value === value);\n\t\tconst mark = exactMark ?? findClosestNumberScaleMark(value, marks);\n\n\t\tif (mark) {\n\t\t\treturn getSliderMarkPercent(mark, marks, { ...options, min, max, marks });\n\t\t}\n\t}\n\n\treturn valueToNumberScalePercent(value, min, max);\n}\n\n/**\n * Возвращает mark, который визуально ближе всего к pointer percent.\n */\nexport function getClosestSliderMarkByPercent<TMark extends SliderMark>(percent: number, options: SliderMathOptions<TMark>) {\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\tconst marks = prepareSliderMarks(options.marks, min, max);\n\n\treturn findClosestNumberScaleMarkByPercent(percent, marks, min, max, options.marksPosition);\n}\n\nexport function snapSliderValue<TMark extends SliderMark>(value: number, options: SliderMathOptions<TMark>) {\n\treturn snapNumberScaleValue(value, options);\n}\n\nexport function normalizeSingleSliderValue(value: number | undefined, options: SliderMathOptions) {\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\n\tif (value === undefined) {\n\t\treturn min;\n\t}\n\n\treturn snapSliderValue(value, { ...options, min, max });\n}\n\n/**\n * Возвращает публичное значение mark: `outputValue`, если оно задано, иначе координату `value`.\n */\nexport function getRangeMarkOutputValue(mark: SliderRangeMark | undefined): number | null | undefined {\n\tif (!mark) {\n\t\treturn undefined;\n\t}\n\n\tif (!Object.hasOwn(mark, \"outputValue\") || mark.outputValue === undefined) {\n\t\treturn mark.value;\n\t}\n\n\treturn mark.outputValue;\n}\n\n/**\n * Готовит range-значение к внешней сериализации, заменяя открытые границы на заданные подстановки.\n *\n * Функция не участвует во внутренней логике слайдера: `SliderRange` и `SliderRangeInput`\n * продолжают отдавать `null` через `onChange`, а потребитель явно применяет подстановку\n * рядом со своим обработчиком сохранения/отправки.\n */\nexport function resolveSliderRangeOutputValue(\n\tvalue: SliderRangeValue,\n\tfallback: SliderRangeOutputValueFallback | undefined\n): SliderRangeValue {\n\treturn resolveRangeOutputValue(value, fallback);\n}\n\nfunction findRangeMarkByOutputValue(\n\tvalue: number | null,\n\tmarks: readonly SliderRangeMark[],\n\tthumbIndex: number\n): SliderRangeMark | undefined {\n\tconst matchingMarks = marks.filter((mark) => getRangeMarkOutputValue(mark) === value);\n\n\tif (!matchingMarks.length) {\n\t\treturn undefined;\n\t}\n\n\tif (value === null) {\n\t\treturn thumbIndex === 0 ? matchingMarks[0] : matchingMarks[matchingMarks.length - 1];\n\t}\n\n\treturn matchingMarks[0];\n}\n\n/**\n * Ищет ближайшую mark по публичному output-значению, а не по координате шкалы.\n */\nfunction findClosestRangeMarkByOutputValue(\n\tvalue: number,\n\tmarks: readonly SliderRangeMark[],\n\tthumbIndex: number\n): SliderRangeMark | undefined {\n\tconst exactMark = findRangeMarkByOutputValue(value, marks, thumbIndex);\n\tif (exactMark) {\n\t\treturn exactMark;\n\t}\n\n\tlet nearestMark: SliderRangeMark | undefined;\n\tlet nearestDistance = Number.POSITIVE_INFINITY;\n\n\tfor (const mark of marks) {\n\t\tconst outputValue = getRangeMarkOutputValue(mark);\n\t\tif (typeof outputValue !== \"number\" || !Number.isFinite(outputValue)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst distance = Math.abs(value - outputValue);\n\t\tif (distance < nearestDistance) {\n\t\t\tnearestMark = mark;\n\t\t\tnearestDistance = distance;\n\t\t}\n\t}\n\n\treturn nearestMark;\n}\n\nfunction normalizeRangeEndpoint(\n\tvalue: number | null,\n\tfallbackVisualValue: number,\n\tthumbIndex: number,\n\toptions: SliderMathOptions<SliderRangeMark>\n) {\n\tif (value === null) {\n\t\treturn null;\n\t}\n\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\tconst marks = prepareSliderMarks(options.marks, min, max);\n\tconst publicValue = Number.isFinite(value) ? value : fallbackVisualValue;\n\n\tif (marks.length > 0) {\n\t\tconst snappedMark = findClosestRangeMarkByOutputValue(publicValue, marks, thumbIndex);\n\t\tconst outputValue = getRangeMarkOutputValue(snappedMark);\n\n\t\treturn outputValue !== undefined ? outputValue : (snappedMark?.value ?? fallbackVisualValue);\n\t}\n\n\treturn snapNumberScaleValueToStep(publicValue, min, max, options.step);\n}\n\n/**\n * Нормализует публичное range-значение, сохраняя null как открытую границу.\n */\nexport function normalizeRangeSliderValue(\n\tvalue: SliderRangeValue | undefined,\n\toptions: SliderMathOptions<SliderRangeMark>\n): SliderRangeValue {\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\n\tif (!value) {\n\t\treturn [null, null];\n\t}\n\n\tconst start = normalizeRangeEndpoint(value[0], min, 0, { ...options, min, max });\n\tconst end = normalizeRangeEndpoint(value[1], max, 1, { ...options, min, max });\n\n\tif (start !== null && end !== null && start > end) {\n\t\treturn [end, start];\n\t}\n\n\treturn [start, end];\n}\n\nfunction getRangeEndpointVisualValue(\n\tvalue: number | null,\n\tfallbackVisualValue: number,\n\tthumbIndex: number,\n\toptions: SliderMathOptions<SliderRangeMark>\n) {\n\tif (value === null) {\n\t\treturn fallbackVisualValue;\n\t}\n\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\tconst marks = prepareSliderMarks(options.marks, min, max);\n\n\tif (marks.length > 0) {\n\t\tconst exactOutputMark = findRangeMarkByOutputValue(value, marks, thumbIndex);\n\t\tconst outputMark =\n\t\t\texactOutputMark ?? (typeof value === \"number\" ? findClosestRangeMarkByOutputValue(value, marks, thumbIndex) : undefined);\n\n\t\treturn outputMark?.value ?? fallbackVisualValue;\n\t}\n\n\treturn snapNumberScaleValueToStep(value, min, max, options.step);\n}\n\n/**\n * Переводит публичный range tuple в finite-позиции thumb, где null стоит на краю шкалы.\n */\nexport function getRangeSliderVisualValue(\n\tvalue: SliderRangeValue | undefined,\n\toptions: SliderMathOptions<SliderRangeMark>\n): [number, number] {\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\tconst normalized = normalizeRangeSliderValue(value, { ...options, min, max });\n\tconst start = getRangeEndpointVisualValue(normalized[0], min, 0, { ...options, min, max });\n\tconst end = getRangeEndpointVisualValue(normalized[1], max, 1, { ...options, min, max });\n\n\treturn start <= end ? [start, end] : [end, start];\n}\n\n/**\n * Преобразует координату шкалы, выбранную pointer/keyboard, в публичное range-значение.\n */\nexport function visualValueToRangeEndpoint(value: number, options: SliderMathOptions<SliderRangeMark>) {\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\tconst marks = prepareSliderMarks(options.marks, min, max);\n\n\tif (marks.length > 0) {\n\t\tconst mark = findClosestNumberScaleMark(value, marks);\n\t\tconst outputValue = getRangeMarkOutputValue(mark);\n\n\t\treturn outputValue !== undefined ? outputValue : (mark?.value ?? value);\n\t}\n\n\treturn snapNumberScaleValueToStep(value, min, max, options.step);\n}\n\nexport function getClosestSliderThumb(targetValue: number, value: readonly [number, number]) {\n\tconst [start, end] = value;\n\treturn Math.abs(targetValue - start) <= Math.abs(targetValue - end) ? 0 : 1;\n}\n\nexport function resolveSliderFillRange(value: number | readonly [number, number], options: SliderMathOptions): SliderFillRange {\n\tconst { min, max } = resolveNumberScaleBounds(options.min, options.max);\n\n\tif (Array.isArray(value)) {\n\t\treturn {\n\t\t\tstartPercent: valueToSliderVisualPercent(value[0], { ...options, min, max }),\n\t\t\tendPercent: valueToSliderVisualPercent(value[1], { ...options, min, max })\n\t\t};\n\t}\n\n\treturn {\n\t\tstartPercent: 0,\n\t\tendPercent: valueToSliderVisualPercent(value as number, { ...options, min, max })\n\t};\n}\n","@use \"@/styles/mixins\" as *;\n\n.slider {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--space-sm);\n}\n\n.sliderCompact {\n\tgap: 0;\n}\n\n.trackShell {\n\tposition: relative;\n\tpadding-inline: calc((var(--control-height) - var(--space-xs)) / 2);\n}\n\n.track {\n\tposition: relative;\n\theight: var(--control-height);\n\tcursor: pointer;\n\ttouch-action: none;\n\tuser-select: none;\n}\n\n.rail,\n.fill {\n\tposition: absolute;\n\ttop: 50%;\n\ttransform: translateY(-50%);\n\theight: var(--space-xs);\n\tborder-radius: 999px;\n}\n\n.rail {\n\tleft: 0;\n\tright: 0;\n\tbackground-color: var(--surface-2);\n\tborder: var(--border);\n}\n\n.fill {\n\tbackground-color: var(--content-0);\n}\n\n.thumb {\n\tposition: absolute;\n\ttop: 50%;\n\ttransform: translate(-50%, -50%);\n\twidth: calc(var(--control-height) - var(--space-xs));\n\theight: calc(var(--control-height) - var(--space-xs));\n\tborder: var(--border);\n\tborder-radius: 50%;\n\tbackground-color: var(--surface-0);\n\tcolor: var(--content-0);\n\tbox-shadow: var(--shadow-sm);\n\tcursor: grab;\n\tz-index: 2;\n\ttransition:\n\t\ttransform var(--transition-fast) ease,\n\t\tborder-color var(--transition-fast) ease,\n\t\tbox-shadow var(--transition-fast) ease,\n\t\tbackground-color var(--transition-fast) ease;\n\n\t&:active,\n\t&:hover {\n\t\tborder-color: var(--border-1);\n\t}\n\n\t&:focus-visible {\n\t\t@include focusVisible;\n\t}\n\n\t&[data-dragging] {\n\t\tcursor: grabbing;\n\t\ttransform: translate(-50%, -50%) scale(1.04);\n\t\tbox-shadow: var(--shadow-md);\n\t}\n}\n\n.marks {\n\tposition: relative;\n\tmin-height: calc(var(--font-size-sm) + var(--space-md));\n\tmargin-inline: calc((var(--control-height) - var(--space-xs)) / 2);\n}\n\n.mark {\n\tposition: absolute;\n\ttop: 0;\n\ttransform: translateX(-50%);\n\tdisplay: inline-flex;\n\tflex-direction: column;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcolor: var(--content-2);\n\tcursor: pointer;\n\twhite-space: nowrap;\n\n\t&:focus-visible {\n\t\t@include focusVisible;\n\t\tborder-radius: var(--radius-sm);\n\t}\n\n\t&[data-active] {\n\t\tcolor: var(--content-0);\n\t}\n}\n\n.compactMark {\n\tposition: absolute;\n\ttop: 50%;\n\ttransform: translate(-50%, -50%);\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tborder: none;\n\tbackground: transparent;\n\tpadding: 0;\n\tcolor: var(--content-2);\n\tcursor: pointer;\n\tz-index: 1;\n\n\t&:focus-visible {\n\t\t@include focusVisible;\n\t\tborder-radius: var(--radius-sm);\n\t}\n\n\t&[data-active] {\n\t\tcolor: var(--content-0);\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t}\n}\n\n.markDot {\n\twidth: var(--space-sm);\n\theight: var(--space-sm);\n\tborder-radius: 50%;\n\tbackground-color: currentColor;\n\t// opacity: 0.55;\n}\n\n.markLabel {\n\tfont-size: var(--font-size-sm);\n}\n\n.popoverContent {\n\tmin-width: min(24em, calc(100vw - var(--space-xl)));\n}\n\n.rangeInputControl {\n\tgap: var(--space-xs);\n\tcursor: text;\n}\n\n.rangeSegmentInput {\n\tmin-width: 0;\n\twidth: 7ch;\n\tborder: none;\n\tbackground: transparent;\n\toutline: none;\n\tpadding: 0;\n\tmargin: 0;\n\tfont-family: var(--font-family-mono);\n\tcolor: inherit;\n\ttext-align: center;\n\tcaret-color: var(--content-0);\n\tfont-variant-numeric: tabular-nums;\n\n\t&::selection {\n\t\tbackground-color: var(--focus-ring);\n\t\tcolor: var(--surface-0);\n\t}\n\n\t&:disabled {\n\t\topacity: 0.25;\n\t}\n}\n\n.rangeSeparator {\n\tuser-select: none;\n\tcolor: var(--content-2);\n\tflex-shrink: 0;\n\n\t&[data-disabled] {\n\t\topacity: 0.25;\n\t}\n}\n","import React, { KeyboardEvent, useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { offsetNumberScaleValue, percentToNumberScaleValue, resolveNumberScaleBounds } from \"@ryuzaki13/react-foundation-lib/number-scale\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputUI, useInputFieldIds } from \"../input\";\nimport { FloatingPopover } from \"../popover\";\nimport { UiBaseProps, UiSize } from \"../types\";\n\nimport {\n\tgetClosestSliderMarkByPercent,\n\tgetClosestSliderThumb,\n\tgetRangeSliderVisualValue,\n\tgetSliderMarkPercent,\n\tnormalizeRangeSliderValue,\n\tnormalizeSingleSliderValue,\n\tprepareSliderMarks,\n\tresolveSliderFillRange,\n\tvalueToSliderVisualPercent,\n\tvisualValueToRangeEndpoint,\n\ttype SliderMark,\n\ttype SliderMarksPosition,\n\ttype SliderRangeMark,\n\ttype SliderRangeValue\n} from \"./lib\";\nimport styles from \"./Slider.module.scss\";\n\ntype SliderMarksDisplay = \"compact\" | \"full\";\n\ninterface SliderCommonProps<TMark extends SliderMark> {\n\t/**\n\t * Минимальная координата шкалы. Marks вне этой границы отбрасываются.\n\t */\n\tmin: number;\n\t/**\n\t * Максимальная координата шкалы. Marks вне этой границы отбрасываются.\n\t */\n\tmax: number;\n\t/**\n\t * Шаг изменения, когда `marks` не заданы или после фильтрации не осталось валидных marks.\n\t */\n\tstep?: number;\n\t/**\n\t * Дискретные точки выбора. Если заданы, бегунок всегда ходит только по marks.\n\t */\n\tmarks?: readonly TMark[];\n\t/**\n\t * Способ визуального размещения marks и бегунка: по числовой координате `value` или равномерно по индексу.\n\t */\n\tmarksPosition?: SliderMarksPosition;\n\t/**\n\t * Внешний CSS-класс контейнера поля.\n\t */\n\tclassName?: string;\n\t/**\n\t * Текст внешней ошибки, отображается через общую `InputUI`-обёртку.\n\t */\n\terror?: string;\n\t/**\n\t * Вызывается после успешного изменения значения, чтобы потребитель мог сбросить внешнюю ошибку.\n\t */\n\tonClearError?: () => void;\n}\n\n/**\n * Single-value slider. Возвращает координату шкалы, потому что single marks не используют `outputValue`.\n */\nexport interface SliderProps extends Omit<UiBaseProps<number, number | undefined>, \"placeholder\">, SliderCommonProps<SliderMark> {}\n\n/**\n * Range slider. Возвращает бизнес-значения `SliderRangeMark.outputValue`, если они заданы, иначе координаты `value`.\n */\nexport interface SliderRangeProps\n\textends Omit<UiBaseProps<SliderRangeValue, SliderRangeValue | undefined>, \"placeholder\">,\n\t\tSliderCommonProps<SliderRangeMark> {}\n\ninterface SliderBaseCommonProps<TMark extends SliderMark> extends SliderCommonProps<TMark> {\n\t/**\n\t * Подпись поля в общей `InputUI`-обёртке.\n\t */\n\tlabel?: React.ReactNode;\n\t/**\n\t * Описание поля под подписью.\n\t */\n\tdescription?: string;\n\t/**\n\t * Блокирует pointer, keyboard и click-взаимодействие.\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Размер общей `InputUI`-обёртки.\n\t */\n\tsize?: UiSize;\n\t/**\n\t * Compact показывает только ticks/tooltip внутри высоты control, full добавляет строку labels для popover.\n\t */\n\tmarksDisplay?: SliderMarksDisplay;\n}\n\ninterface SliderBaseSingleProps extends SliderBaseCommonProps<SliderMark> {\n\tmode: \"single\";\n\tvalue: number | undefined;\n\tonChange: (value: number) => void;\n}\n\ninterface SliderBaseRangeProps extends SliderBaseCommonProps<SliderRangeMark> {\n\tmode: \"range\";\n\tvalue: SliderRangeValue | undefined;\n\tonChange: (value: SliderRangeValue) => void;\n}\n\nexport type SliderBaseProps = SliderBaseSingleProps | SliderBaseRangeProps;\n\nfunction resolveKeyboardOffset(eventKey: string) {\n\tif (eventKey === \"ArrowLeft\" || eventKey === \"ArrowDown\") {\n\t\treturn -1;\n\t}\n\n\tif (eventKey === \"ArrowRight\" || eventKey === \"ArrowUp\") {\n\t\treturn 1;\n\t}\n\n\tif (eventKey === \"PageDown\") {\n\t\treturn -10;\n\t}\n\n\tif (eventKey === \"PageUp\") {\n\t\treturn 10;\n\t}\n\n\treturn null;\n}\n\nfunction areRangeValuesEqual(left: SliderRangeValue | undefined, right: SliderRangeValue) {\n\treturn !!left && left[0] === right[0] && left[1] === right[1];\n}\n\nfunction formatRangeEndpoint(value: number | null, thumbIndex: number) {\n\tif (value === null) {\n\t\treturn thumbIndex === 0 ? \"-∞\" : \"∞\";\n\t}\n\n\treturn String(value);\n}\n\nfunction getMarkLabelByValue<TMark extends SliderMark>(value: number, marks: readonly TMark[]) {\n\treturn marks.find((mark) => mark.value === value)?.label ?? String(value);\n}\n\nfunction renderTooltipContent(content: React.ReactNode) {\n\treturn typeof content === \"string\" || typeof content === \"number\" ? <span className=\"textNoWrap\">{content}</span> : content;\n}\n\nexport function SliderBase(props: SliderBaseProps) {\n\tconst {\n\t\tmin: rawMin,\n\t\tmax: rawMax,\n\t\tstep,\n\t\tmarks,\n\t\tmarksPosition = \"value\",\n\t\tmarksDisplay = \"compact\",\n\t\tclassName,\n\t\terror,\n\t\tonClearError,\n\t\tlabel,\n\t\tdescription,\n\t\tdisabled,\n\t\tsize\n\t} = props;\n\tconst { min, max } = useMemo(() => resolveNumberScaleBounds(rawMin, rawMax), [rawMin, rawMax]);\n\tconst normalizedMarks = useMemo(() => prepareSliderMarks(marks, min, max), [marks, min, max]);\n\tconst sliderOptions = useMemo(\n\t\t() => ({\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep,\n\t\t\tmarks: normalizedMarks,\n\t\t\tmarksPosition\n\t\t}),\n\t\t[min, max, step, normalizedMarks, marksPosition]\n\t);\n\n\tconst isRange = props.mode === \"range\";\n\tconst currentSingleValue = !isRange ? normalizeSingleSliderValue(props.value, sliderOptions) : undefined;\n\tconst currentRangeValue = isRange ? normalizeRangeSliderValue(props.value, sliderOptions) : undefined;\n\tconst visualRangeValue = isRange ? getRangeSliderVisualValue(props.value, sliderOptions) : undefined;\n\tconst thumbValues = isRange ? visualRangeValue! : [currentSingleValue!];\n\tconst fillRange = resolveSliderFillRange(isRange ? visualRangeValue! : currentSingleValue!, sliderOptions);\n\n\tconst trackRef = useRef<HTMLDivElement | null>(null);\n\tconst thumbRefs = useRef<Array<HTMLButtonElement | null>>([]);\n\tconst dragThumbIndexRef = useRef<number | null>(null);\n\tconst dragPointerIdRef = useRef<number | null>(null);\n\tconst [dragThumbIndex, setDragThumbIndex] = useState<number | null>(null);\n\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\tconst emitSingleValue = (nextValue: number) => {\n\t\tif (disabled || props.mode !== \"single\") {\n\t\t\treturn;\n\t\t}\n\n\t\tif (props.value !== undefined && props.value === nextValue) {\n\t\t\treturn;\n\t\t}\n\n\t\tprops.onChange(nextValue);\n\t\tonClearError?.();\n\t};\n\n\tconst emitRangeValue = (nextValue: SliderRangeValue) => {\n\t\tif (disabled || props.mode !== \"range\") {\n\t\t\treturn;\n\t\t}\n\n\t\tif (areRangeValuesEqual(props.value, nextValue)) {\n\t\t\treturn;\n\t\t}\n\n\t\tprops.onChange(nextValue);\n\t\tonClearError?.();\n\t};\n\n\tconst applySliderValue = (rawValue: number, thumbIndex: number) => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (props.mode === \"range\") {\n\t\t\tconst [startVisualValue, endVisualValue] = visualRangeValue!;\n\t\t\tconst [startValue, endValue] = currentRangeValue!;\n\t\t\tconst nextValue =\n\t\t\t\tthumbIndex === 0\n\t\t\t\t\t? normalizeRangeSliderValue(\n\t\t\t\t\t\t\t[visualValueToRangeEndpoint(Math.min(rawValue, endVisualValue), sliderOptions), endValue],\n\t\t\t\t\t\t\tsliderOptions\n\t\t\t\t\t\t)\n\t\t\t\t\t: normalizeRangeSliderValue(\n\t\t\t\t\t\t\t[startValue, visualValueToRangeEndpoint(Math.max(rawValue, startVisualValue), sliderOptions)],\n\t\t\t\t\t\t\tsliderOptions\n\t\t\t\t\t\t);\n\n\t\t\temitRangeValue(nextValue);\n\t\t\treturn;\n\t\t}\n\n\t\temitSingleValue(normalizeSingleSliderValue(rawValue, sliderOptions));\n\t};\n\n\tconst resolveValueFromPointer = (clientX: number) => {\n\t\tconst bounds = trackRef.current?.getBoundingClientRect();\n\t\tif (!bounds) {\n\t\t\treturn min;\n\t\t}\n\n\t\tconst percent = ((clientX - bounds.left) / bounds.width) * 100;\n\t\tconst closestMark = normalizedMarks.length > 0 ? getClosestSliderMarkByPercent(percent, sliderOptions) : undefined;\n\n\t\treturn closestMark?.value ?? percentToNumberScaleValue(percent, min, max);\n\t};\n\tconst applySliderValueRef = useRef(applySliderValue);\n\tconst resolveValueFromPointerRef = useRef(resolveValueFromPointer);\n\n\tuseEffect(() => {\n\t\tapplySliderValueRef.current = applySliderValue;\n\t\tresolveValueFromPointerRef.current = resolveValueFromPointer;\n\t});\n\n\tuseEffect(() => {\n\t\tconst onPointerUp = (event?: PointerEvent) => {\n\t\t\tif (dragPointerIdRef.current !== null && event && event.pointerId !== dragPointerIdRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdragPointerIdRef.current = null;\n\t\t\tdragThumbIndexRef.current = null;\n\t\t\tsetDragThumbIndex(null);\n\t\t};\n\n\t\tconst onPointerMove = (event: PointerEvent) => {\n\t\t\tif (dragThumbIndexRef.current === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (dragPointerIdRef.current !== null && event.pointerId !== dragPointerIdRef.current) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tapplySliderValueRef.current(resolveValueFromPointerRef.current(event.clientX), dragThumbIndexRef.current);\n\t\t};\n\n\t\twindow.addEventListener(\"pointermove\", onPointerMove);\n\t\twindow.addEventListener(\"pointerup\", onPointerUp);\n\t\twindow.addEventListener(\"pointercancel\", onPointerUp);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"pointermove\", onPointerMove);\n\t\t\twindow.removeEventListener(\"pointerup\", onPointerUp);\n\t\t\twindow.removeEventListener(\"pointercancel\", onPointerUp);\n\t\t};\n\t}, []);\n\n\tconst beginPointerDrag = (pointerId: number, thumbIndex: number) => {\n\t\tdragPointerIdRef.current = pointerId;\n\t\tdragThumbIndexRef.current = thumbIndex;\n\t\tsetDragThumbIndex(thumbIndex);\n\t\tthumbRefs.current[thumbIndex]?.focus();\n\t};\n\n\tconst handleTrackPointerDown = (event: React.PointerEvent<HTMLDivElement>) => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\n\t\tconst rawValue = resolveValueFromPointer(event.clientX);\n\t\tconst thumbIndex = isRange ? getClosestSliderThumb(rawValue, visualRangeValue!) : 0;\n\n\t\tapplySliderValue(rawValue, thumbIndex);\n\t\tbeginPointerDrag(event.pointerId, thumbIndex);\n\t};\n\n\tconst handleThumbPointerDown = (thumbIndex: number) => (event: React.PointerEvent<HTMLButtonElement>) => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tbeginPointerDrag(event.pointerId, thumbIndex);\n\t};\n\n\tconst handleThumbKeyDown = (thumbIndex: number) => (event: KeyboardEvent<HTMLButtonElement>) => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lowerBound = isRange && thumbIndex === 1 ? visualRangeValue![0] : min;\n\t\tconst upperBound = isRange && thumbIndex === 0 ? visualRangeValue![1] : max;\n\t\tconst keyboardOffset = resolveKeyboardOffset(event.key);\n\n\t\tif (event.key === \"Home\") {\n\t\t\tevent.preventDefault();\n\t\t\tapplySliderValue(lowerBound, thumbIndex);\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.key === \"End\") {\n\t\t\tevent.preventDefault();\n\t\t\tapplySliderValue(upperBound, thumbIndex);\n\t\t\treturn;\n\t\t}\n\n\t\tif (keyboardOffset === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tconst baseValue = thumbValues[thumbIndex];\n\t\tconst nextValue = offsetNumberScaleValue(baseValue, keyboardOffset, sliderOptions, lowerBound, upperBound);\n\t\tapplySliderValue(nextValue, thumbIndex);\n\t};\n\n\tconst handleMarkSelect = (markValue: number) => {\n\t\tif (disabled) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst thumbIndex = isRange ? getClosestSliderThumb(markValue, visualRangeValue!) : 0;\n\t\tapplySliderValue(markValue, thumbIndex);\n\t\tthumbRefs.current[thumbIndex]?.focus();\n\t};\n\n\tconst getThumbValueText = (thumbValue: number, thumbIndex: number) => {\n\t\tif (isRange) {\n\t\t\tconst publicValue = currentRangeValue![thumbIndex];\n\t\t\tconst exactMark = normalizedMarks.find((mark) => mark.value === thumbValue);\n\n\t\t\treturn exactMark?.label ?? formatRangeEndpoint(publicValue, thumbIndex);\n\t\t}\n\n\t\treturn getMarkLabelByValue(thumbValue, normalizedMarks);\n\t};\n\n\treturn (\n\t\t<InputUI\n\t\t\tlabel={label}\n\t\t\tdescription={description}\n\t\t\tdisabled={disabled}\n\t\t\tclassName={className}\n\t\t\tsize={size}\n\t\t\terror={error}\n\t\t\tcontrolId={controlId}\n\t\t\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<div id={controlId} className={cn(styles.slider, marksDisplay === \"compact\" && styles.sliderCompact)}>\n\t\t\t\t<div className={styles.trackShell}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tref={trackRef}\n\t\t\t\t\t\tdata-slot=\"track\"\n\t\t\t\t\t\tclassName={styles.track}\n\t\t\t\t\t\trole=\"presentation\"\n\t\t\t\t\t\tonPointerDown={handleTrackPointerDown}>\n\t\t\t\t\t\t<div className={styles.rail} />\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tdata-slot=\"fill\"\n\t\t\t\t\t\t\tclassName={styles.fill}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tleft: `${fillRange.startPercent}%`,\n\t\t\t\t\t\t\t\twidth: `${fillRange.endPercent - fillRange.startPercent}%`\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t{marksDisplay === \"compact\" &&\n\t\t\t\t\t\t\tnormalizedMarks.map((mark) => {\n\t\t\t\t\t\t\t\tconst markPercent = getSliderMarkPercent(mark, normalizedMarks, sliderOptions);\n\t\t\t\t\t\t\t\tconst isActive = isRange\n\t\t\t\t\t\t\t\t\t? mark.value >= visualRangeValue![0] && mark.value <= visualRangeValue![1]\n\t\t\t\t\t\t\t\t\t: mark.value <= currentSingleValue!;\n\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<FloatingPopover key={mark.value} tooltip placement=\"top\" content={renderTooltipContent(mark.label)}>\n\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\t\tdata-slot=\"mark\"\n\t\t\t\t\t\t\t\t\t\t\tdata-active={isActive ? \"\" : undefined}\n\t\t\t\t\t\t\t\t\t\t\tclassName={styles.compactMark}\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ left: `${markPercent}%` }}\n\t\t\t\t\t\t\t\t\t\t\taria-label={mark.ariaLabel}\n\t\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\t\tonClick={() => handleMarkSelect(mark.value)}>\n\t\t\t\t\t\t\t\t\t\t\t<span className={styles.markDot} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t</FloatingPopover>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t})}\n\n\t\t\t\t\t\t{thumbValues.map((thumbValue, thumbIndex) => {\n\t\t\t\t\t\t\tconst thumbLabel = getThumbValueText(thumbValue, thumbIndex);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<FloatingPopover\n\t\t\t\t\t\t\t\t\tkey={thumbIndex}\n\t\t\t\t\t\t\t\t\ttooltip\n\t\t\t\t\t\t\t\t\tplacement=\"top\"\n\t\t\t\t\t\t\t\t\tcontent={renderTooltipContent(thumbLabel)}\n\t\t\t\t\t\t\t\t\topenDelay={0}\n\t\t\t\t\t\t\t\t\tcloseDelay={100}>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tref={(node) => {\n\t\t\t\t\t\t\t\t\t\t\tthumbRefs.current[thumbIndex] = node;\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\trole=\"slider\"\n\t\t\t\t\t\t\t\t\t\tdata-slot=\"thumb\"\n\t\t\t\t\t\t\t\t\t\tdata-thumb-index={thumbIndex}\n\t\t\t\t\t\t\t\t\t\tdata-dragging={dragThumbIndex === thumbIndex ? \"\" : undefined}\n\t\t\t\t\t\t\t\t\t\tclassName={styles.thumb}\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\tstyle={{ left: `${valueToSliderVisualPercent(thumbValue, sliderOptions)}%` }}\n\t\t\t\t\t\t\t\t\t\taria-disabled={disabled || undefined}\n\t\t\t\t\t\t\t\t\t\taria-orientation=\"horizontal\"\n\t\t\t\t\t\t\t\t\t\taria-valuemin={isRange && thumbIndex === 1 ? visualRangeValue![0] : min}\n\t\t\t\t\t\t\t\t\t\taria-valuemax={isRange && thumbIndex === 0 ? visualRangeValue![1] : max}\n\t\t\t\t\t\t\t\t\t\taria-valuenow={thumbValue}\n\t\t\t\t\t\t\t\t\t\taria-valuetext={\n\t\t\t\t\t\t\t\t\t\t\ttypeof thumbLabel === \"string\" || typeof thumbLabel === \"number\"\n\t\t\t\t\t\t\t\t\t\t\t\t? String(thumbLabel)\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\t\t\t\t\tlabelId\n\t\t\t\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t\t\t\t: isRange\n\t\t\t\t\t\t\t\t\t\t\t\t\t? thumbIndex === 0\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? \"Минимальное значение\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Максимальное значение\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t: \"Значение\"\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonPointerDown={handleThumbPointerDown(thumbIndex)}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleThumbKeyDown(thumbIndex)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</FloatingPopover>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\n\t\t\t\t{marksDisplay === \"full\" && normalizedMarks.length > 0 && (\n\t\t\t\t\t<div className={styles.marks}>\n\t\t\t\t\t\t{normalizedMarks.map((mark) => {\n\t\t\t\t\t\t\tconst isActive = isRange\n\t\t\t\t\t\t\t\t? mark.value >= visualRangeValue![0] && mark.value <= visualRangeValue![1]\n\t\t\t\t\t\t\t\t: mark.value <= currentSingleValue!;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tkey={mark.value}\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tdata-slot=\"mark\"\n\t\t\t\t\t\t\t\t\tdata-active={isActive ? \"\" : undefined}\n\t\t\t\t\t\t\t\t\tclassName={styles.mark}\n\t\t\t\t\t\t\t\t\tstyle={{ left: `${getSliderMarkPercent(mark, normalizedMarks, sliderOptions)}%` }}\n\t\t\t\t\t\t\t\t\taria-label={mark.ariaLabel}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tonClick={() => handleMarkSelect(mark.value)}>\n\t\t\t\t\t\t\t\t\t<span className={styles.markDot} aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t<span className={styles.markLabel}>{mark.label}</span>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</InputUI>\n\t);\n}\n\nexport function Slider(props: SliderProps) {\n\treturn <SliderBase {...props} mode=\"single\" marksDisplay=\"compact\" />;\n}\n\nexport function SliderRange(props: SliderRangeProps) {\n\treturn <SliderBase {...props} mode=\"range\" marksDisplay=\"compact\" />;\n}\n","import { KeyboardEvent, useCallback, useEffect, useEffectEvent, useMemo, useState } from \"react\";\n\nimport { toFiniteNumber } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { resolveNumberScaleBounds } from \"@ryuzaki13/react-foundation-lib/number-scale\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputControl, InputText, InputUI, useInputFieldIds } from \"../input\";\nimport { PickerTriggerActions } from \"../picker\";\nimport { Popover } from \"../popover\";\nimport { UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport {\n\tgetRangeMarkOutputValue,\n\tnormalizeRangeSliderValue,\n\tnormalizeSingleSliderValue,\n\tprepareSliderMarks,\n\ttype SliderMark,\n\ttype SliderMarksPosition,\n\ttype SliderRangeMark,\n\ttype SliderRangeValue\n} from \"./lib\";\nimport { SliderBase } from \"./Slider\";\nimport styles from \"./Slider.module.scss\";\n\ninterface SliderInputCommonProps {\n\t/**\n\t * Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.\n\t */\n\tmin: number;\n\t/**\n\t * Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.\n\t */\n\tmax: number;\n\t/**\n\t * Шаг ручного ввода и слайдера, если не заданы marks.\n\t */\n\tstep?: number;\n\t/**\n\t * Способ визуального размещения marks и бегунка в popover.\n\t */\n\tmarksPosition?: SliderMarksPosition;\n\t/**\n\t * Внешний CSS-класс общей обёртки поля.\n\t */\n\tclassName?: string;\n\t/**\n\t * Текст внешней ошибки.\n\t */\n\terror?: string;\n\t/**\n\t * Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.\n\t */\n\tonClearError?: () => void;\n}\n\nexport interface SliderInputProps extends UiBaseProps<number, number | undefined>, SliderInputCommonProps {\n\t/**\n\t * Marks single-слайдера. Single-компонент отдаёт наружу `mark.value`.\n\t */\n\tmarks?: readonly SliderMark[];\n}\n\nexport interface SliderRangeInputProps extends UiBaseProps<SliderRangeValue, SliderRangeValue | undefined>, SliderInputCommonProps {\n\t/**\n\t * Marks range-слайдера. `value` задаёт координату на шкале, `outputValue` задаёт публичное значение для потребителя.\n\t */\n\tmarks?: readonly SliderRangeMark[];\n\t/**\n\t * Показывает вместо ручных сегментов готовый текст по выбранным marks.\n\t * Popover остаётся единственным способом изменить значение через слайдер, а потребитель получает изменение при закрытии popover.\n\t */\n\treadonlyValueText?: boolean;\n}\n\nfunction createSliderToggle({\n\topen,\n\tdisabled,\n\tsetOpen\n}: {\n\topen: boolean;\n\tdisabled?: boolean;\n\tsetOpen: (nextOpen: boolean | ((prev: boolean) => boolean)) => void;\n}) {\n\treturn (\n\t\t<Popover.Trigger passive>\n\t\t\t<div>\n\t\t\t\t<PickerTriggerActions\n\t\t\t\t\topen={open}\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\topenAriaLabel=\"Открыть слайдер\"\n\t\t\t\t\tcloseAriaLabel=\"Закрыть слайдер\"\n\t\t\t\t\tonToggleMouseDown={(event) => event.preventDefault()}\n\t\t\t\t\tonToggleClick={() => setOpen((prev) => !prev)}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</Popover.Trigger>\n\t);\n}\n\nfunction formatRangeDraft(\n\tvalue: SliderRangeValue | undefined,\n\toptions: {\n\t\tmin: number;\n\t\tmax: number;\n\t\tstep?: number;\n\t\tmarks?: readonly SliderRangeMark[];\n\t\tmarksPosition?: SliderMarksPosition;\n\t}\n) {\n\tconst normalized = normalizeRangeSliderValue(value, options);\n\n\treturn {\n\t\tstart: normalized[0] === null ? \"-∞\" : String(normalized[0]),\n\t\tend: normalized[1] === null ? \"∞\" : String(normalized[1])\n\t};\n}\n\nfunction parseRangeDraftSegment(value: string, infinityText: string) {\n\tconst trimmed = value.trim();\n\tif (trimmed === \"\" || trimmed === infinityText) {\n\t\treturn null;\n\t}\n\n\treturn toFiniteNumber(trimmed);\n}\n\nfunction getRangeMarkByOutputValue(value: number | null, marks: readonly SliderRangeMark[], endpoint: \"start\" | \"end\") {\n\tconst matchingMarks = marks.filter((mark) => getRangeMarkOutputValue(mark) === value);\n\n\tif (!matchingMarks.length) {\n\t\treturn undefined;\n\t}\n\n\treturn value === null && endpoint === \"end\" ? matchingMarks[matchingMarks.length - 1] : matchingMarks[0];\n}\n\nfunction getRangeMarkReadonlyLabel(mark: SliderRangeMark | undefined, value: number | null) {\n\tif (mark?.readonlyLabel?.trim()) {\n\t\treturn mark.readonlyLabel.trim();\n\t}\n\n\tif (typeof mark?.label === \"string\" || typeof mark?.label === \"number\") {\n\t\treturn String(mark.label);\n\t}\n\t// SHARE: lib/formatters/string.toSafeString\n\treturn value === null ? \"\" : String(value);\n}\n\nfunction getRangeEndpointLabel(value: number | null, marks: readonly SliderRangeMark[], endpoint: \"start\" | \"end\") {\n\tconst mark = getRangeMarkByOutputValue(value, marks, endpoint);\n\treturn getRangeMarkReadonlyLabel(mark, value);\n}\n\nfunction getRangeReadonlyText(value: SliderRangeValue, marks: readonly SliderRangeMark[], placeholder?: string) {\n\tconst [start, end] = value;\n\tconst isStartOpen = start === null;\n\tconst isEndOpen = end === null;\n\n\tif (isStartOpen && isEndOpen) {\n\t\treturn placeholder ?? \"\";\n\t}\n\n\tif (isStartOpen) {\n\t\treturn `Меньше ${getRangeEndpointLabel(end, marks, \"end\")}`;\n\t}\n\n\tif (isEndOpen) {\n\t\treturn `Больше ${getRangeEndpointLabel(start, marks, \"start\")}`;\n\t}\n\n\tif (start === end) {\n\t\treturn `Равно ${getRangeEndpointLabel(start, marks, \"start\")}`;\n\t}\n\n\treturn `От ${getRangeEndpointLabel(start, marks, \"start\")} до ${getRangeEndpointLabel(end, marks, \"end\")}`;\n}\n\nexport function SliderInput({\n\tvalue,\n\tonChange,\n\tmin: rawMin,\n\tmax: rawMax,\n\tstep,\n\tmarks,\n\tmarksPosition = \"value\",\n\tclassName,\n\terror,\n\tonClearError,\n\tlabel,\n\tdescription,\n\tplaceholder,\n\tdisabled,\n\tsize\n}: SliderInputProps) {\n\tconst { min, max } = useMemo(() => resolveNumberScaleBounds(rawMin, rawMax), [rawMin, rawMax]);\n\tconst normalizedMarks = useMemo(() => prepareSliderMarks(marks, min, max), [marks, min, max]);\n\tconst sliderOptions = useMemo(\n\t\t() => ({\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep,\n\t\t\tmarks: normalizedMarks,\n\t\t\tmarksPosition\n\t\t}),\n\t\t[min, max, step, normalizedMarks, marksPosition]\n\t);\n\tconst normalizedValue = normalizeSingleSliderValue(value, sliderOptions);\n\n\tconst [open, setOpen] = useState(false);\n\tconst [draftValue, setDraftValue] = useState(String(normalizedValue));\n\n\tconst syncDraftValue = useEffectEvent((nextValue: string) => {\n\t\tsetDraftValue(nextValue);\n\t});\n\n\tuseEffect(() => {\n\t\tsyncDraftValue(String(normalizedValue));\n\t}, [normalizedValue]);\n\n\tconst commitDraftValue = useCallback(() => {\n\t\tif (disabled) {\n\t\t\tsetDraftValue(String(normalizedValue));\n\t\t\treturn;\n\t\t}\n\n\t\tconst parsedValue = toFiniteNumber(draftValue);\n\t\tif (parsedValue === undefined) {\n\t\t\tsetDraftValue(String(normalizedValue));\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextValue = normalizeSingleSliderValue(parsedValue, sliderOptions);\n\t\tif (value !== nextValue) {\n\t\t\tonChange(nextValue);\n\t\t\tonClearError?.();\n\t\t}\n\n\t\tsetDraftValue(String(nextValue));\n\t}, [disabled, draftValue, normalizedValue, onChange, onClearError, sliderOptions, value]);\n\n\tconst handleDraftKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n\t\tif (event.key !== \"Enter\") {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tcommitDraftValue();\n\t};\n\n\tconst handleSliderChange = (nextValue: number) => {\n\t\tonChange(nextValue);\n\t\tsetDraftValue(String(nextValue));\n\t\tonClearError?.();\n\t};\n\n\treturn (\n\t\t<Popover open={open} onOpenChange={setOpen}>\n\t\t\t<InputText\n\t\t\t\tlabel={label}\n\t\t\t\tdescription={description}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tsize={size}\n\t\t\t\tclassName={className}\n\t\t\t\terror={error}\n\t\t\t\tvalue={draftValue}\n\t\t\t\tonChange={setDraftValue}\n\t\t\t\tonBlur={commitDraftValue}\n\t\t\t\tonKeyDown={handleDraftKeyDown}\n\t\t\t\tendAdornmentWidth=\"var(--control-height)\"\n\t\t\t\tendAdornment={createSliderToggle({ open, disabled, setOpen })}\n\t\t\t/>\n\n\t\t\t<Popover.Content background=\"primary\">\n\t\t\t\t<div className={styles.popoverContent}>\n\t\t\t\t\t<SliderBase\n\t\t\t\t\t\tmode=\"single\"\n\t\t\t\t\t\tmin={min}\n\t\t\t\t\t\tmax={max}\n\t\t\t\t\t\tstep={step}\n\t\t\t\t\t\tmarks={normalizedMarks}\n\t\t\t\t\t\tmarksPosition={marksPosition}\n\t\t\t\t\t\tmarksDisplay=\"full\"\n\t\t\t\t\t\tvalue={value}\n\t\t\t\t\t\tonChange={handleSliderChange}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Popover.Content>\n\t\t</Popover>\n\t);\n}\n\nexport function SliderRangeInput({\n\tvalue,\n\tonChange,\n\tmin: rawMin,\n\tmax: rawMax,\n\tstep,\n\tmarks,\n\tmarksPosition = \"value\",\n\tclassName,\n\terror,\n\tonClearError,\n\tlabel,\n\tdescription,\n\treadonlyValueText,\n\tplaceholder,\n\tdisabled,\n\tsize\n}: SliderRangeInputProps) {\n\tconst { min, max } = useMemo(() => resolveNumberScaleBounds(rawMin, rawMax), [rawMin, rawMax]);\n\tconst normalizedMarks = useMemo(() => prepareSliderMarks(marks, min, max), [marks, min, max]);\n\tconst sliderOptions = useMemo(\n\t\t() => ({\n\t\t\tmin,\n\t\t\tmax,\n\t\t\tstep,\n\t\t\tmarks: normalizedMarks,\n\t\t\tmarksPosition\n\t\t}),\n\t\t[min, max, step, normalizedMarks, marksPosition]\n\t);\n\tconst normalizedValue = useMemo(() => normalizeRangeSliderValue(value, sliderOptions), [sliderOptions, value]);\n\tconst formattedValue = useMemo(() => formatRangeDraft(normalizedValue, sliderOptions), [normalizedValue, sliderOptions]);\n\n\tconst [open, setOpen] = useState(false);\n\tconst [draftStart, setDraftStart] = useState(formattedValue.start);\n\tconst [draftEnd, setDraftEnd] = useState(formattedValue.end);\n\tconst [popoverValue, setPopoverValue] = useState<SliderRangeValue>(normalizedValue);\n\n\tconst syncDraftValue = useEffectEvent((start: string, end: string) => {\n\t\tsetDraftStart(start);\n\t\tsetDraftEnd(end);\n\t});\n\n\tuseEffect(() => {\n\t\tif (open) {\n\t\t\treturn;\n\t\t}\n\n\t\tsyncDraftValue(formattedValue.start, formattedValue.end);\n\t}, [formattedValue.start, formattedValue.end, normalizedValue, open]);\n\n\tconst { controlId, labelId, descriptionId, errorId, describedBy } = useInputFieldIds({\n\t\thasLabel: label !== undefined && label !== null,\n\t\thasDescription: !!description,\n\t\thasError: !!error\n\t});\n\n\tconst rollbackDraftValue = useCallback(() => {\n\t\tsetDraftStart(formattedValue.start);\n\t\tsetDraftEnd(formattedValue.end);\n\t}, [formattedValue.end, formattedValue.start]);\n\n\tconst commitDraftValue = useCallback(() => {\n\t\tif (disabled) {\n\t\t\trollbackDraftValue();\n\t\t\treturn;\n\t\t}\n\n\t\tconst parsedStart = parseRangeDraftSegment(draftStart, \"-∞\");\n\t\tconst parsedEnd = parseRangeDraftSegment(draftEnd, \"∞\");\n\n\t\tif (parsedStart === undefined || parsedEnd === undefined) {\n\t\t\trollbackDraftValue();\n\t\t\treturn;\n\t\t}\n\n\t\tconst nextValue = normalizeRangeSliderValue([parsedStart, parsedEnd], sliderOptions);\n\t\tif (!areRangeDraftValuesEqual(normalizedValue, nextValue)) {\n\t\t\tonChange(nextValue);\n\t\t\tonClearError?.();\n\t\t}\n\n\t\tconst nextDraft = formatRangeDraft(nextValue, sliderOptions);\n\t\tsetDraftStart(nextDraft.start);\n\t\tsetDraftEnd(nextDraft.end);\n\t\tsetPopoverValue(nextValue);\n\t}, [disabled, draftEnd, draftStart, normalizedValue, onChange, onClearError, rollbackDraftValue, sliderOptions]);\n\n\tconst commitPopoverValue = useCallback(\n\t\t(nextValue: SliderRangeValue) => {\n\t\t\tconst normalizedNextValue = normalizeRangeSliderValue(nextValue, sliderOptions);\n\t\t\tif (!areRangeDraftValuesEqual(normalizedValue, normalizedNextValue)) {\n\t\t\t\tonChange(normalizedNextValue);\n\t\t\t\tonClearError?.();\n\t\t\t}\n\n\t\t\tconst nextDraft = formatRangeDraft(normalizedNextValue, sliderOptions);\n\t\t\tsetDraftStart(nextDraft.start);\n\t\t\tsetDraftEnd(nextDraft.end);\n\t\t\tsetPopoverValue(normalizedNextValue);\n\t\t},\n\t\t[normalizedValue, onChange, onClearError, sliderOptions]\n\t);\n\n\tconst handleOpenChange = (nextOpen: boolean) => {\n\t\tif (!open && nextOpen) {\n\t\t\tsetPopoverValue(normalizedValue);\n\t\t\tsetDraftStart(formattedValue.start);\n\t\t\tsetDraftEnd(formattedValue.end);\n\t\t}\n\n\t\tif (open && !nextOpen && !disabled) {\n\t\t\tcommitPopoverValue(popoverValue);\n\t\t}\n\n\t\tsetOpen(nextOpen);\n\t};\n\n\tconst handleDraftKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n\t\tif (event.key !== \"Enter\") {\n\t\t\treturn;\n\t\t}\n\n\t\tevent.preventDefault();\n\t\tcommitDraftValue();\n\t};\n\n\tconst handleSliderChange = (nextValue: SliderRangeValue) => {\n\t\tconst normalizedNextValue = normalizeRangeSliderValue(nextValue, sliderOptions);\n\t\tsetPopoverValue(normalizedNextValue);\n\t\tconst nextDraft = formatRangeDraft(normalizedNextValue, sliderOptions);\n\t\tsetDraftStart(nextDraft.start);\n\t\tsetDraftEnd(nextDraft.end);\n\t};\n\tconst displayValue = open ? popoverValue : normalizedValue;\n\tconst readonlyTextValue = readonlyValueText ? getRangeReadonlyText(displayValue, normalizedMarks, placeholder) : undefined;\n\tconst setRangeOpen = (nextOpen: boolean | ((prev: boolean) => boolean)) => {\n\t\thandleOpenChange(typeof nextOpen === \"function\" ? nextOpen(open) : nextOpen);\n\t};\n\n\treturn (\n\t\t<Popover open={open} onOpenChange={handleOpenChange}>\n\t\t\t<InputUI\n\t\t\t\tlabel={label}\n\t\t\t\tdescription={description}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={className}\n\t\t\t\tsize={size}\n\t\t\t\terror={error}\n\t\t\t\tcontrolId={controlId}\n\t\t\t\tlabelId={labelId}\n\t\t\t\tdescriptionId={descriptionId}\n\t\t\t\terrorId={errorId}>\n\t\t\t\t<InputControl\n\t\t\t\t\tendAdornmentWidth=\"var(--control-height)\"\n\t\t\t\t\tendAdornment={createSliderToggle({ open, disabled, setOpen: setRangeOpen })}>\n\t\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControlFake, styles.rangeInputControl, controlClassName)}\n\t\t\t\t\t\t\tdata-invalid={error ? \"\" : undefined}\n\t\t\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\t\t\trole=\"group\"\n\t\t\t\t\t\t\taria-invalid={!!error || undefined}\n\t\t\t\t\t\t\taria-label={typeof label === \"string\" ? label : \"Диапазон\"}\n\t\t\t\t\t\t\taria-labelledby={typeof label === \"string\" ? undefined : labelId}\n\t\t\t\t\t\t\taria-describedby={describedBy}>\n\t\t\t\t\t\t\t{readonlyValueText ? (\n\t\t\t\t\t\t\t\t<span className={cn(\"flexEllipsis\", !readonlyTextValue && uiStyles.uiPlaceholder)}>\n\t\t\t\t\t\t\t\t\t{readonlyTextValue || placeholder}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tinputMode=\"decimal\"\n\t\t\t\t\t\t\t\t\t\tclassName={styles.rangeSegmentInput}\n\t\t\t\t\t\t\t\t\t\tvalue={draftStart}\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Начало диапазона\"\n\t\t\t\t\t\t\t\t\t\tonChange={(event) => setDraftStart(event.target.value)}\n\t\t\t\t\t\t\t\t\t\tonBlur={commitDraftValue}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleDraftKeyDown}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<span className={styles.rangeSeparator} data-disabled={disabled || undefined}>\n\t\t\t\t\t\t\t\t\t\t-\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\tinputMode=\"decimal\"\n\t\t\t\t\t\t\t\t\t\tclassName={styles.rangeSegmentInput}\n\t\t\t\t\t\t\t\t\t\tvalue={draftEnd}\n\t\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\t\taria-label=\"Конец диапазона\"\n\t\t\t\t\t\t\t\t\t\tonChange={(event) => setDraftEnd(event.target.value)}\n\t\t\t\t\t\t\t\t\t\tonBlur={commitDraftValue}\n\t\t\t\t\t\t\t\t\t\tonKeyDown={handleDraftKeyDown}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</InputControl>\n\t\t\t</InputUI>\n\n\t\t\t<Popover.Content background=\"primary\">\n\t\t\t\t<div className={styles.popoverContent}>\n\t\t\t\t\t<SliderBase\n\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\tmin={min}\n\t\t\t\t\t\tmax={max}\n\t\t\t\t\t\tstep={step}\n\t\t\t\t\t\tmarks={normalizedMarks}\n\t\t\t\t\t\tmarksPosition={marksPosition}\n\t\t\t\t\t\tmarksDisplay=\"full\"\n\t\t\t\t\t\tvalue={popoverValue}\n\t\t\t\t\t\tonChange={handleSliderChange}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Popover.Content>\n\t\t</Popover>\n\t);\n}\n\nfunction areRangeDraftValuesEqual(left: SliderRangeValue, right: SliderRangeValue) {\n\treturn left[0] === right[0] && left[1] === right[1];\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { GripIcon as e } from "lucide-react";
|
|
2
|
+
import { cn as t } from "@ryuzaki13/react-foundation-lib/utils";
|
|
3
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
4
|
+
import { createContext as r, createElement as i, useContext as a, useMemo as o } from "react";
|
|
5
|
+
import { SortableContext as s, horizontalListSortingStrategy as c, rectSortingStrategy as l, useSortable as u, verticalListSortingStrategy as d } from "@dnd-kit/sortable";
|
|
6
|
+
import { CSS as f } from "@dnd-kit/utilities";
|
|
7
|
+
import { useDndSortableSensors as p } from "@ryuzaki13/react-foundation-lib/hooks";
|
|
8
|
+
import { DndContext as m, closestCenter as h } from "@dnd-kit/core";
|
|
9
|
+
//#region src/sortable/sortableUtils.ts
|
|
10
|
+
function g(e) {
|
|
11
|
+
return e?.data.current?.sortable.containerId ?? null;
|
|
12
|
+
}
|
|
13
|
+
function _(e, t) {
|
|
14
|
+
return Array.isArray(t) ? t : t[String(e)] ?? null;
|
|
15
|
+
}
|
|
16
|
+
function v(e, t) {
|
|
17
|
+
if (t) return t;
|
|
18
|
+
switch (e) {
|
|
19
|
+
case "horizontal": return c;
|
|
20
|
+
case "grid": return l;
|
|
21
|
+
default: return d;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function y(e) {
|
|
25
|
+
let { event: t, items: n } = e, { active: r, over: i } = t;
|
|
26
|
+
if (!i || r.id === i.id) return null;
|
|
27
|
+
let a = g(r), o = g(i);
|
|
28
|
+
if (a == null || o == null || a !== o) return null;
|
|
29
|
+
let s = _(a, n);
|
|
30
|
+
if (!s) return null;
|
|
31
|
+
let c = s.indexOf(r.id), l = s.indexOf(i.id);
|
|
32
|
+
return c < 0 || l < 0 ? null : {
|
|
33
|
+
containerId: a,
|
|
34
|
+
activeId: r.id,
|
|
35
|
+
overId: i.id,
|
|
36
|
+
fromIndex: c,
|
|
37
|
+
toIndex: l
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/sortable/Sortable.tsx
|
|
42
|
+
var b = r(null);
|
|
43
|
+
function x(e, t) {
|
|
44
|
+
return typeof e == "function" ? e(t) : e;
|
|
45
|
+
}
|
|
46
|
+
function S(e, t) {
|
|
47
|
+
return typeof e == "function" ? e(t) : e;
|
|
48
|
+
}
|
|
49
|
+
function C(e) {
|
|
50
|
+
let { children: t, collisionDetection: r = h, sensors: i, onDragCancel: a, onDragEnd: s, onDragMove: c, onDragOver: l, onDragPending: u, onDragStart: d, accessibility: f, ...g } = e, _ = p(), v = typeof document > "u" ? void 0 : document.body, y = o(() => ({
|
|
51
|
+
...f,
|
|
52
|
+
container: f?.container ?? v
|
|
53
|
+
}), [f, v]);
|
|
54
|
+
return /* @__PURE__ */ n(m, {
|
|
55
|
+
...g,
|
|
56
|
+
accessibility: y,
|
|
57
|
+
sensors: i ?? _,
|
|
58
|
+
collisionDetection: r,
|
|
59
|
+
onDragStart: d,
|
|
60
|
+
onDragMove: c,
|
|
61
|
+
onDragOver: l,
|
|
62
|
+
onDragEnd: s,
|
|
63
|
+
onDragCancel: a,
|
|
64
|
+
onDragPending: u,
|
|
65
|
+
children: t
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
function w(e) {
|
|
69
|
+
let { children: t, containerId: r, items: i, layout: a = "vertical", strategy: o } = e;
|
|
70
|
+
return /* @__PURE__ */ n(s, {
|
|
71
|
+
id: String(r),
|
|
72
|
+
items: [...i],
|
|
73
|
+
strategy: v(a, o),
|
|
74
|
+
children: t
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
function T(e) {
|
|
78
|
+
let { as: r, id: a, children: s, className: c, style: l, disabled: d = !1, dragActivator: p = "handle", ...m } = e, h = r ?? "div", { attributes: g, listeners: _, setActivatorNodeRef: v, setNodeRef: y, transform: S, transition: C, isDragging: w, isOver: T, isSorting: E } = u({
|
|
79
|
+
id: a,
|
|
80
|
+
disabled: d
|
|
81
|
+
}), D = {
|
|
82
|
+
transform: f.Transform.toString(S),
|
|
83
|
+
transition: C,
|
|
84
|
+
zIndex: !d && w ? 2 : 1,
|
|
85
|
+
opacity: !d && w ? .6 : void 0,
|
|
86
|
+
...l
|
|
87
|
+
}, O = o(() => ({
|
|
88
|
+
attributes: g,
|
|
89
|
+
listeners: p === "handle" ? _ : void 0,
|
|
90
|
+
setActivatorNodeRef: v,
|
|
91
|
+
disabled: d || p !== "handle",
|
|
92
|
+
isDragging: w
|
|
93
|
+
}), [
|
|
94
|
+
g,
|
|
95
|
+
_,
|
|
96
|
+
v,
|
|
97
|
+
d,
|
|
98
|
+
p,
|
|
99
|
+
w
|
|
100
|
+
]), k = {
|
|
101
|
+
isDragging: w,
|
|
102
|
+
isOver: T,
|
|
103
|
+
isSorting: E,
|
|
104
|
+
disabled: d
|
|
105
|
+
}, A = p === "item" && !d ? {
|
|
106
|
+
...g,
|
|
107
|
+
..._
|
|
108
|
+
} : {};
|
|
109
|
+
return /* @__PURE__ */ n(b.Provider, {
|
|
110
|
+
value: O,
|
|
111
|
+
children: i(h, {
|
|
112
|
+
...m,
|
|
113
|
+
...A,
|
|
114
|
+
ref: y,
|
|
115
|
+
className: t(c),
|
|
116
|
+
style: D,
|
|
117
|
+
"data-sortable-id": String(a),
|
|
118
|
+
"data-sortable-dragging": w ? "true" : "false",
|
|
119
|
+
"data-sortable-disabled": d ? "true" : "false"
|
|
120
|
+
}, x(s, k))
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function E(e) {
|
|
124
|
+
let { as: t, children: n, disabled: r = !1, ...o } = e, s = t ?? "div", c = a(b), l = r || !c || c.disabled, u = l ? {} : {
|
|
125
|
+
...c.attributes,
|
|
126
|
+
...c.listeners
|
|
127
|
+
}, d = {
|
|
128
|
+
disabled: l,
|
|
129
|
+
isDragging: c?.isDragging ?? !1
|
|
130
|
+
};
|
|
131
|
+
return i(s, {
|
|
132
|
+
...o,
|
|
133
|
+
...u,
|
|
134
|
+
ref: !l && c ? c.setActivatorNodeRef : void 0,
|
|
135
|
+
"aria-disabled": l || void 0,
|
|
136
|
+
"data-sortable-handle": "true",
|
|
137
|
+
"data-sortable-handle-disabled": l ? "true" : "false",
|
|
138
|
+
"data-sortable-handle-dragging": d.isDragging ? "true" : "false"
|
|
139
|
+
}, S(n, d));
|
|
140
|
+
}
|
|
141
|
+
var D = { dragHandle: "_7rGb26" };
|
|
142
|
+
//#endregion
|
|
143
|
+
//#region src/sortable/SortableDragHandle.tsx
|
|
144
|
+
function O(e, t) {
|
|
145
|
+
return e ?? t;
|
|
146
|
+
}
|
|
147
|
+
function k(e, t, n) {
|
|
148
|
+
return e == null ? t ?? n : t;
|
|
149
|
+
}
|
|
150
|
+
function A(r) {
|
|
151
|
+
if (r.as === "button") {
|
|
152
|
+
let { as: i, children: a, className: o, disabled: s = !1, icon: c = /* @__PURE__ */ n(e, { "aria-hidden": "true" }), type: l = "button", ...u } = r, d = k(a, u["aria-label"], u.title);
|
|
153
|
+
return /* @__PURE__ */ n(E, {
|
|
154
|
+
...u,
|
|
155
|
+
as: i,
|
|
156
|
+
type: l,
|
|
157
|
+
disabled: s,
|
|
158
|
+
"aria-label": d,
|
|
159
|
+
className: t(D.dragHandle, o),
|
|
160
|
+
children: O(a, c)
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
let { as: i, children: a, className: o, disabled: s = !1, icon: c = /* @__PURE__ */ n(e, { "aria-hidden": "true" }), ...l } = r, u = k(a, l["aria-label"], l.title);
|
|
164
|
+
return /* @__PURE__ */ n(E, {
|
|
165
|
+
...l,
|
|
166
|
+
as: i,
|
|
167
|
+
disabled: s,
|
|
168
|
+
"aria-label": u,
|
|
169
|
+
className: t(D.dragHandle, o),
|
|
170
|
+
children: O(a, c)
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
//#endregion
|
|
174
|
+
//#region src/sortable/index.ts
|
|
175
|
+
var j = {
|
|
176
|
+
Root: C,
|
|
177
|
+
Container: w,
|
|
178
|
+
Item: T,
|
|
179
|
+
Handle: E,
|
|
180
|
+
DragHandle: A
|
|
181
|
+
};
|
|
182
|
+
//#endregion
|
|
183
|
+
export { T as a, E as i, A as n, C as o, w as r, y as s, j as t };
|
|
184
|
+
|
|
185
|
+
//# sourceMappingURL=sortable-CwDHC3CA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortable-CwDHC3CA.js","names":[],"sources":["../../src/sortable/sortableUtils.ts","../../src/sortable/Sortable.tsx","../../src/sortable/SortableDragHandle.module.scss","../../src/sortable/SortableDragHandle.tsx","../../src/sortable/index.ts"],"sourcesContent":["import { type DragEndEvent, type UniqueIdentifier } from \"@dnd-kit/core\";\nimport { horizontalListSortingStrategy, rectSortingStrategy, verticalListSortingStrategy, type SortingStrategy } from \"@dnd-kit/sortable\";\n\nexport type SortableLayout = \"vertical\" | \"horizontal\" | \"grid\";\n\nexport interface SortableReorderResult {\n\tcontainerId: UniqueIdentifier;\n\tactiveId: UniqueIdentifier;\n\toverId: UniqueIdentifier;\n\tfromIndex: number;\n\ttoIndex: number;\n}\n\ntype SortableItemsByContainer = Record<string, readonly UniqueIdentifier[]>;\n\nfunction resolveContainerId(eventPart: DragEndEvent[\"active\"] | DragEndEvent[\"over\"] | null | undefined): UniqueIdentifier | null {\n\treturn eventPart?.data.current?.sortable.containerId ?? null;\n}\n\nfunction resolveContainerItems(\n\tcontainerId: UniqueIdentifier,\n\titems: readonly UniqueIdentifier[] | SortableItemsByContainer\n): readonly UniqueIdentifier[] | null {\n\tif (Array.isArray(items)) {\n\t\treturn items;\n\t}\n\n\treturn (items as SortableItemsByContainer)[String(containerId)] ?? null;\n}\n\nexport function resolveSortableStrategy(layout: SortableLayout, strategy?: SortingStrategy): SortingStrategy {\n\tif (strategy) {\n\t\treturn strategy;\n\t}\n\n\tswitch (layout) {\n\t\tcase \"horizontal\":\n\t\t\treturn horizontalListSortingStrategy;\n\t\tcase \"grid\":\n\t\t\treturn rectSortingStrategy;\n\t\tcase \"vertical\":\n\t\tdefault:\n\t\t\treturn verticalListSortingStrategy;\n\t}\n}\n\nexport function getSortableReorderResult(params: {\n\tevent: DragEndEvent;\n\titems: readonly UniqueIdentifier[] | SortableItemsByContainer;\n}): SortableReorderResult | null {\n\tconst { event, items } = params;\n\tconst { active, over } = event;\n\n\tif (!over || active.id === over.id) {\n\t\treturn null;\n\t}\n\n\tconst activeContainerId = resolveContainerId(active);\n\tconst overContainerId = resolveContainerId(over);\n\tif (activeContainerId == null || overContainerId == null || activeContainerId !== overContainerId) {\n\t\treturn null;\n\t}\n\n\tconst containerItems = resolveContainerItems(activeContainerId, items);\n\tif (!containerItems) {\n\t\treturn null;\n\t}\n\n\tconst fromIndex = containerItems.indexOf(active.id);\n\tconst toIndex = containerItems.indexOf(over.id);\n\tif (fromIndex < 0 || toIndex < 0) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\tcontainerId: activeContainerId,\n\t\tactiveId: active.id,\n\t\toverId: over.id,\n\t\tfromIndex,\n\t\ttoIndex\n\t};\n}\n","import {\n\tcreateContext,\n\tcreateElement,\n\tuseContext,\n\tuseMemo,\n\ttype ComponentPropsWithoutRef,\n\ttype CSSProperties,\n\ttype ElementType,\n\ttype ReactNode\n} from \"react\";\n\nimport { closestCenter, DndContext, type DndContextProps } from \"@dnd-kit/core\";\nimport { SortableContext, useSortable, type SortingStrategy } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\n\nimport { useDndSortableSensors } from \"@ryuzaki13/react-foundation-lib/hooks\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { resolveSortableStrategy, type SortableLayout } from \"./sortableUtils\";\n\nimport type { UniqueIdentifier } from \"@dnd-kit/core\";\n\ntype SortableItemRenderState = {\n\tisDragging: boolean;\n\tisOver: boolean;\n\tisSorting: boolean;\n\tdisabled: boolean;\n};\n\ntype SortableHandleContextValue = {\n\tattributes: Record<string, unknown>;\n\tlisteners: Record<string, ((event: unknown) => void) | undefined> | undefined;\n\tsetActivatorNodeRef: (element: HTMLElement | null) => void;\n\tdisabled: boolean;\n\tisDragging: boolean;\n};\n\ntype SortableRootProps = Omit<DndContextProps, \"children\" | \"collisionDetection\" | \"sensors\"> & {\n\tchildren: ReactNode;\n\tcollisionDetection?: DndContextProps[\"collisionDetection\"];\n\tsensors?: DndContextProps[\"sensors\"];\n};\n\ntype SortableContainerProps = {\n\tchildren: ReactNode;\n\tcontainerId: UniqueIdentifier;\n\titems: readonly UniqueIdentifier[];\n\tlayout?: SortableLayout;\n\tstrategy?: SortingStrategy;\n};\n\ntype SortableItemBaseProps = {\n\tas?: ElementType;\n\tid: UniqueIdentifier;\n\tchildren?: ReactNode | ((state: SortableItemRenderState) => ReactNode);\n\tclassName?: string;\n\tstyle?: CSSProperties;\n\tdisabled?: boolean;\n\tdragActivator?: \"handle\" | \"item\";\n};\n\ntype SortableItemProps<E extends ElementType = \"div\"> = SortableItemBaseProps &\n\tOmit<ComponentPropsWithoutRef<E>, keyof SortableItemBaseProps | \"children\" | \"style\" | \"id\">;\n\ntype SortableHandleBaseProps = {\n\tas?: ElementType;\n\tchildren?: ReactNode | ((state: Pick<SortableHandleContextValue, \"disabled\" | \"isDragging\">) => ReactNode);\n\tdisabled?: boolean;\n};\n\ntype SortableHandleProps<E extends ElementType = \"div\"> = SortableHandleBaseProps &\n\tOmit<ComponentPropsWithoutRef<E>, keyof SortableHandleBaseProps | \"children\">;\n\nconst SortableHandleContext = createContext<SortableHandleContextValue | null>(null);\n\nfunction toItemChildren(children: SortableItemProps[\"children\"], state: SortableItemRenderState) {\n\treturn typeof children === \"function\" ? children(state) : children;\n}\n\nfunction toHandleChildren(children: SortableHandleProps[\"children\"], state: Pick<SortableHandleContextValue, \"disabled\" | \"isDragging\">) {\n\treturn typeof children === \"function\" ? children(state) : children;\n}\n\nexport function SortableRoot(props: SortableRootProps) {\n\tconst {\n\t\tchildren,\n\t\tcollisionDetection = closestCenter,\n\t\tsensors,\n\t\tonDragCancel,\n\t\tonDragEnd,\n\t\tonDragMove,\n\t\tonDragOver,\n\t\tonDragPending,\n\t\tonDragStart,\n\t\taccessibility,\n\t\t...restProps\n\t} = props;\n\tconst defaultSensors = useDndSortableSensors();\n\tconst defaultAccessibilityContainer = typeof document === \"undefined\" ? undefined : document.body;\n\tconst resolvedAccessibility = useMemo<DndContextProps[\"accessibility\"]>(\n\t\t() => ({\n\t\t\t...accessibility,\n\t\t\tcontainer: accessibility?.container ?? defaultAccessibilityContainer\n\t\t}),\n\t\t[accessibility, defaultAccessibilityContainer]\n\t);\n\n\treturn (\n\t\t<DndContext\n\t\t\t{...restProps}\n\t\t\taccessibility={resolvedAccessibility}\n\t\t\tsensors={sensors ?? defaultSensors}\n\t\t\tcollisionDetection={collisionDetection}\n\t\t\tonDragStart={onDragStart}\n\t\t\tonDragMove={onDragMove}\n\t\t\tonDragOver={onDragOver}\n\t\t\tonDragEnd={onDragEnd}\n\t\t\tonDragCancel={onDragCancel}\n\t\t\tonDragPending={onDragPending}>\n\t\t\t{children}\n\t\t</DndContext>\n\t);\n}\n\nexport function SortableContainer(props: SortableContainerProps) {\n\tconst { children, containerId, items, layout = \"vertical\", strategy } = props;\n\n\treturn (\n\t\t<SortableContext id={String(containerId)} items={[...items]} strategy={resolveSortableStrategy(layout, strategy)}>\n\t\t\t{children}\n\t\t</SortableContext>\n\t);\n}\n\nexport function SortableItem<E extends ElementType = \"div\">(props: SortableItemProps<E>) {\n\tconst { as, id, children, className, style, disabled = false, dragActivator = \"handle\", ...restProps } = props;\n\tconst Component = (as ?? \"div\") as ElementType;\n\tconst { attributes, listeners, setActivatorNodeRef, setNodeRef, transform, transition, isDragging, isOver, isSorting } = useSortable({\n\t\tid,\n\t\tdisabled\n\t});\n\n\tconst itemStyle: CSSProperties = {\n\t\ttransform: CSS.Transform.toString(transform),\n\t\ttransition,\n\t\tzIndex: !disabled && isDragging ? 2 : 1,\n\t\topacity: !disabled && isDragging ? 0.6 : undefined,\n\t\t...style\n\t};\n\tconst handleContextValue = useMemo<SortableHandleContextValue>(\n\t\t() => ({\n\t\t\tattributes: attributes as unknown as Record<string, unknown>,\n\t\t\tlisteners:\n\t\t\t\tdragActivator === \"handle\" ? (listeners as Record<string, ((event: unknown) => void) | undefined> | undefined) : undefined,\n\t\t\tsetActivatorNodeRef,\n\t\t\tdisabled: disabled || dragActivator !== \"handle\",\n\t\t\tisDragging\n\t\t}),\n\t\t[attributes, listeners, setActivatorNodeRef, disabled, dragActivator, isDragging]\n\t);\n\tconst itemState: SortableItemRenderState = {\n\t\tisDragging,\n\t\tisOver,\n\t\tisSorting,\n\t\tdisabled\n\t};\n\tconst dragBindings = dragActivator === \"item\" && !disabled ? { ...attributes, ...listeners } : {};\n\n\treturn (\n\t\t<SortableHandleContext.Provider value={handleContextValue}>\n\t\t\t{createElement(\n\t\t\t\tComponent,\n\t\t\t\t{\n\t\t\t\t\t...restProps,\n\t\t\t\t\t...dragBindings,\n\t\t\t\t\tref: setNodeRef,\n\t\t\t\t\tclassName: cn(className),\n\t\t\t\t\tstyle: itemStyle,\n\t\t\t\t\t\"data-sortable-id\": String(id),\n\t\t\t\t\t\"data-sortable-dragging\": isDragging ? \"true\" : \"false\",\n\t\t\t\t\t\"data-sortable-disabled\": disabled ? \"true\" : \"false\"\n\t\t\t\t},\n\t\t\t\ttoItemChildren(children, itemState)\n\t\t\t)}\n\t\t</SortableHandleContext.Provider>\n\t);\n}\n\nexport function SortableHandle<E extends ElementType = \"div\">(props: SortableHandleProps<E>) {\n\tconst { as, children, disabled = false, ...restProps } = props;\n\tconst Component = (as ?? \"div\") as ElementType;\n\tconst context = useContext(SortableHandleContext);\n\tconst handleDisabled = disabled || !context || context.disabled;\n\tconst dragBindings = !handleDisabled ? { ...context.attributes, ...context.listeners } : {};\n\tconst handleState = {\n\t\tdisabled: handleDisabled,\n\t\tisDragging: context?.isDragging ?? false\n\t};\n\n\treturn createElement(\n\t\tComponent,\n\t\t{\n\t\t\t...restProps,\n\t\t\t...dragBindings,\n\t\t\tref: !handleDisabled && context ? context.setActivatorNodeRef : undefined,\n\t\t\t\"aria-disabled\": handleDisabled || undefined,\n\t\t\t\"data-sortable-handle\": \"true\",\n\t\t\t\"data-sortable-handle-disabled\": handleDisabled ? \"true\" : \"false\",\n\t\t\t\"data-sortable-handle-dragging\": handleState.isDragging ? \"true\" : \"false\"\n\t\t},\n\t\ttoHandleChildren(children, handleState)\n\t);\n}\n",".dragHandle {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tpadding: 0;\n\tborder: none;\n\tborder-radius: var(--radius-sm);\n\tbackground: transparent;\n\tcolor: inherit;\n\tline-height: 1;\n\tuser-select: none;\n\ttouch-action: none;\n\tcursor: grab;\n\n\t&:focus-visible {\n\t\toutline: var(--focus);\n\t\toutline-offset: var(--focus-offset);\n\t}\n\n\t&:active,\n\t&[data-sortable-handle-dragging=\"true\"] {\n\t\tcursor: grabbing;\n\t}\n\n\t&[data-sortable-handle-disabled=\"true\"] {\n\t\tcursor: default;\n\t\topacity: 0.25;\n\t}\n\n\tsvg {\n\t\tdisplay: block;\n\t\twidth: 1.25em;\n\t\theight: 1.25em;\n\t}\n}\n","import type { ComponentPropsWithoutRef, ReactNode } from \"react\";\n\nimport { GripIcon } from \"lucide-react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { SortableHandle } from \"./Sortable\";\nimport styles from \"./SortableDragHandle.module.scss\";\n\ntype SortableDragHandleBaseProps = {\n\tchildren?: ReactNode;\n\tclassName?: string;\n\tdisabled?: boolean;\n\ticon?: ReactNode;\n};\n\ntype SortableDragHandleDivProps = SortableDragHandleBaseProps &\n\tOmit<ComponentPropsWithoutRef<\"div\">, keyof SortableDragHandleBaseProps | \"children\"> & {\n\t\tas?: \"div\";\n\t};\n\ntype SortableDragHandleButtonProps = SortableDragHandleBaseProps &\n\tOmit<ComponentPropsWithoutRef<\"button\">, keyof SortableDragHandleBaseProps | \"children\" | \"type\"> & {\n\t\tas: \"button\";\n\t\ttype?: \"button\" | \"submit\" | \"reset\";\n\t};\n\nexport type SortableDragHandleProps = SortableDragHandleDivProps | SortableDragHandleButtonProps;\n\nfunction renderHandleContent(children: ReactNode, icon: ReactNode) {\n\treturn children ?? icon;\n}\n\nfunction resolveIconOnlyAriaLabel(children: ReactNode, ariaLabel: string | undefined, title: string | undefined) {\n\treturn children == null ? (ariaLabel ?? title) : ariaLabel;\n}\n\nexport function SortableDragHandle(props: SortableDragHandleProps) {\n\tif (props.as === \"button\") {\n\t\tconst { as, children, className, disabled = false, icon = <GripIcon aria-hidden=\"true\" />, type = \"button\", ...restProps } = props;\n\t\tconst ariaLabel = resolveIconOnlyAriaLabel(children, restProps[\"aria-label\"], restProps.title);\n\n\t\treturn (\n\t\t\t<SortableHandle<\"button\">\n\t\t\t\t{...restProps}\n\t\t\t\tas={as}\n\t\t\t\ttype={type}\n\t\t\t\tdisabled={disabled}\n\t\t\t\taria-label={ariaLabel}\n\t\t\t\tclassName={cn(styles.dragHandle, className)}>\n\t\t\t\t{renderHandleContent(children, icon)}\n\t\t\t</SortableHandle>\n\t\t);\n\t}\n\n\tconst { as, children, className, disabled = false, icon = <GripIcon aria-hidden=\"true\" />, ...restProps } = props;\n\tconst ariaLabel = resolveIconOnlyAriaLabel(children, restProps[\"aria-label\"], restProps.title);\n\n\treturn (\n\t\t<SortableHandle<\"div\">\n\t\t\t{...restProps}\n\t\t\tas={as}\n\t\t\tdisabled={disabled}\n\t\t\taria-label={ariaLabel}\n\t\t\tclassName={cn(styles.dragHandle, className)}>\n\t\t\t{renderHandleContent(children, icon)}\n\t\t</SortableHandle>\n\t);\n}\n","import { SortableContainer, SortableHandle, SortableItem, SortableRoot } from \"./Sortable\";\nimport { SortableDragHandle } from \"./SortableDragHandle\";\n\nexport { getSortableReorderResult } from \"./sortableUtils\";\nexport { SortableContainer, SortableDragHandle, SortableHandle, SortableItem, SortableRoot };\n\nexport type { SortableDragHandleProps } from \"./SortableDragHandle\";\nexport type { SortableLayout, SortableReorderResult } from \"./sortableUtils\";\n\nexport const Sortable = {\n\tRoot: SortableRoot,\n\tContainer: SortableContainer,\n\tItem: SortableItem,\n\tHandle: SortableHandle,\n\tDragHandle: SortableDragHandle\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { a as e, c as t, d as ee, i as n, m as r, n as i, o as te, r as ne, s as re, t as ie } from "./base-table-DVje02Zi.js";
|
|
2
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect as ae, useEffectEvent as o, useMemo as s, useRef as c } from "react";
|
|
4
|
+
import { formatPipelineDisplayValue as l } from "@ryuzaki13/react-foundation-lib/formatters";
|
|
5
|
+
import { useTableRowSelection as u } from "@ryuzaki13/react-foundation-lib/table";
|
|
6
|
+
import { getCoreRowModel as d, useReactTable as f } from "@tanstack/react-table";
|
|
7
|
+
var p = {
|
|
8
|
+
selectedIndicatorCell: "hKghZt",
|
|
9
|
+
sentinel: "QsLRvS"
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/table/Table.tsx
|
|
13
|
+
function oe(e, t) {
|
|
14
|
+
return String(t);
|
|
15
|
+
}
|
|
16
|
+
function m({ title: m, isLoading: h, isFetching: se, data: g, columns: _, selectionMode: v = "none", selectedRowIds: ce, getRowId: le, className: ue, minHeight: de, tableClassName: fe, columnVisibility: y, defaultColumnVisibility: b, columnOrder: x, defaultColumnOrder: S, columnSizing: C, defaultColumnSizing: w, columnPinning: T, defaultColumnPinning: E, enableColumnResizing: D = !1, enableColumnReordering: O = !1, columnResizeMinWidth: k, onColumnVisibilityChange: A, onColumnOrderChange: j, onColumnSizingChange: M, onColumnPinningChange: N, onRowClick: P, onRowSelectionChange: F, onReachEnd: I, getRowCanSelect: L, getRowClassName: R, renderHeaderContextMenu: pe, renderCellContent: z }) {
|
|
17
|
+
let B = s(() => g ?? [], [g]), V = s(() => t(_), [_]), H = le ?? oe, U = s(() => new Map(B.map((e, t) => [H(e, t), e])), [H, B]), me = s(() => Array.from(U.keys()), [U]), W = c(null), G = c(null), { rowSelection: he, activateRowSelection: ge } = u({
|
|
18
|
+
availableRowIds: me,
|
|
19
|
+
rowById: U,
|
|
20
|
+
selectionMode: v,
|
|
21
|
+
selectedRowIds: ce,
|
|
22
|
+
onRowSelectionChange: F
|
|
23
|
+
}), { columnVisibility: K, onColumnVisibilityChange: _e } = ne({
|
|
24
|
+
columnVisibility: y,
|
|
25
|
+
defaultColumnVisibility: b,
|
|
26
|
+
onColumnVisibilityChange: A
|
|
27
|
+
}), { columnOrder: q, onColumnOrderChange: ve } = te({
|
|
28
|
+
columnOrder: x,
|
|
29
|
+
defaultColumnOrder: S,
|
|
30
|
+
onColumnOrderChange: j
|
|
31
|
+
}), { columnSizing: J, onColumnSizingChange: ye } = n({
|
|
32
|
+
columnSizing: C,
|
|
33
|
+
defaultColumnSizing: w,
|
|
34
|
+
columnResizeMinWidth: k,
|
|
35
|
+
onColumnSizingChange: M
|
|
36
|
+
}), { columnPinning: Y, onColumnPinningChange: be } = e({
|
|
37
|
+
columnPinning: T,
|
|
38
|
+
defaultColumnPinning: E,
|
|
39
|
+
onColumnPinningChange: N
|
|
40
|
+
}), X = s(() => ({
|
|
41
|
+
columnOrder: q,
|
|
42
|
+
columnPinning: Y,
|
|
43
|
+
columnSizing: J,
|
|
44
|
+
columnVisibility: K
|
|
45
|
+
}), [
|
|
46
|
+
q,
|
|
47
|
+
Y,
|
|
48
|
+
J,
|
|
49
|
+
K
|
|
50
|
+
]), xe = o(() => {
|
|
51
|
+
I?.();
|
|
52
|
+
});
|
|
53
|
+
ae(() => {
|
|
54
|
+
if (!I || !W.current || !G.current || h) return;
|
|
55
|
+
let e = new IntersectionObserver((e) => {
|
|
56
|
+
e[0]?.isIntersecting && xe();
|
|
57
|
+
}, {
|
|
58
|
+
root: W.current,
|
|
59
|
+
threshold: .1
|
|
60
|
+
});
|
|
61
|
+
return e.observe(G.current), () => e.disconnect();
|
|
62
|
+
}, [
|
|
63
|
+
h,
|
|
64
|
+
I,
|
|
65
|
+
B.length
|
|
66
|
+
]);
|
|
67
|
+
let Z = f({
|
|
68
|
+
data: B,
|
|
69
|
+
columns: _,
|
|
70
|
+
state: {
|
|
71
|
+
columnOrder: q,
|
|
72
|
+
columnPinning: Y,
|
|
73
|
+
columnSizing: J,
|
|
74
|
+
columnVisibility: K,
|
|
75
|
+
rowSelection: he
|
|
76
|
+
},
|
|
77
|
+
onColumnOrderChange: ve,
|
|
78
|
+
onColumnPinningChange: be,
|
|
79
|
+
onColumnSizingChange: ye,
|
|
80
|
+
onColumnVisibilityChange: _e,
|
|
81
|
+
getRowId: (e, t) => H(e, t),
|
|
82
|
+
getCoreRowModel: d(),
|
|
83
|
+
enableMultiRowSelection: v === "multi",
|
|
84
|
+
enableRowSelection: (e) => v === "none" ? !1 : L ? L(e.original) : !0
|
|
85
|
+
}), Q = r(Z, X), $ = Z.getRowModel().rows, Se = s(() => re({
|
|
86
|
+
rows: $,
|
|
87
|
+
columns: Q
|
|
88
|
+
}), [$, Q]), Ce = Q[0]?.id;
|
|
89
|
+
return /* @__PURE__ */ a(i, {
|
|
90
|
+
table: Z,
|
|
91
|
+
columnState: X,
|
|
92
|
+
title: m,
|
|
93
|
+
isLoading: h,
|
|
94
|
+
isFetching: se,
|
|
95
|
+
className: ue,
|
|
96
|
+
minHeight: de,
|
|
97
|
+
tableClassName: fe,
|
|
98
|
+
selectionMode: v,
|
|
99
|
+
scrollableRef: W,
|
|
100
|
+
onActivateRow: v !== "none" || P ? (e) => {
|
|
101
|
+
ge(e.id, e.getCanSelect()), P?.(e.original);
|
|
102
|
+
} : void 0,
|
|
103
|
+
isRowInteractive: (e) => !!(P || v !== "none" && e.getCanSelect()),
|
|
104
|
+
getRowClassName: (e) => R?.(e.original),
|
|
105
|
+
getCellClassName: ({ row: e, cell: t }) => t.column.id === Ce && e.getIsSelected() ? p.selectedIndicatorCell : void 0,
|
|
106
|
+
getCellLayout: ({ cell: e }) => Se.get(e.id),
|
|
107
|
+
renderHeaderContextMenu: pe,
|
|
108
|
+
enableColumnResizing: D,
|
|
109
|
+
enableColumnReordering: O,
|
|
110
|
+
columnResizeMinWidth: k,
|
|
111
|
+
renderCellContent: (e) => {
|
|
112
|
+
let t = l({
|
|
113
|
+
field: V.runtimeByColumnId[e.cell.column.id],
|
|
114
|
+
rawValue: e.cell.getValue(),
|
|
115
|
+
rowData: e.row.original,
|
|
116
|
+
rowKind: "plain"
|
|
117
|
+
}), n = ee({
|
|
118
|
+
columnId: e.cell.column.id,
|
|
119
|
+
runtimeByColumnId: V.runtimeByColumnId,
|
|
120
|
+
customCellColumnIds: V.customCellColumnIds
|
|
121
|
+
}) ? /* @__PURE__ */ a(ie, {
|
|
122
|
+
displayValue: t,
|
|
123
|
+
align: e.columnMeta?.align
|
|
124
|
+
}) : e.defaultContent;
|
|
125
|
+
return z ? z({
|
|
126
|
+
...e,
|
|
127
|
+
defaultContent: n,
|
|
128
|
+
displayValue: t
|
|
129
|
+
}) : n;
|
|
130
|
+
},
|
|
131
|
+
afterTableContent: I ? /* @__PURE__ */ a("div", {
|
|
132
|
+
ref: G,
|
|
133
|
+
className: p.sentinel,
|
|
134
|
+
"aria-hidden": "true"
|
|
135
|
+
}) : null
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
//#endregion
|
|
139
|
+
export { m as t };
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=table-BYA0hCj7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-BYA0hCj7.js","names":[],"sources":["../../src/table/Table.module.scss","../../src/table/Table.tsx"],"sourcesContent":[".selectedIndicatorCell {\n\tbox-shadow: inset 0.1875rem 0 0 var(--content-accent);\n}\n\n.sentinel {\n\theight: 1px;\n}\n","/* eslint-disable react-hooks/incompatible-library */\nimport { useEffect, useEffectEvent, useMemo, useRef } from \"react\";\n\nimport { getCoreRowModel, useReactTable, type Row, type VisibilityState } from \"@tanstack/react-table\";\n\nimport { formatPipelineDisplayValue } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { TableFormulaRowData } from \"@ryuzaki13/react-foundation-lib/formulas\";\nimport {\n\ttype TableColumnDef,\n\ttype TableColumnOrderState,\n\ttype TableColumnSizingState,\n\ttype TableSelectionMode,\n\tuseTableRowSelection\n} from \"@ryuzaki13/react-foundation-lib/table\";\n\nimport {\n\tBaseTable,\n\tbuildBaseTableMergedCellsLayout,\n\tbuildTableFormattingSnapshot,\n\tFormattedTableCell,\n\tgetOrderedVisibleLeafColumns,\n\tshouldUseTableFormatting,\n\tuseTableColumnOrder,\n\tuseTableColumnPinning,\n\tuseTableColumnSizing,\n\tuseTableColumnVisibility,\n\ttype BaseTableColumnState,\n\ttype BaseTableProps,\n\ttype TableColumnPinningState\n} from \"../base-table\";\n\nimport styles from \"./Table.module.scss\";\n\n/**\n * Возвращает индекс как строковый id, если внешний id не передан.\n */\nfunction defaultGetRowId<TData>(_row: TData, index: number): string {\n\treturn String(index);\n}\n\n/**\n * Пропсы компонента Table.\n *\n * Компонент предназначен для плоских данных и по API осознанно сближен с TreeTable.\n */\nexport interface TableProps<TData extends object> {\n\t/**\n\t * Необязательный заголовок над таблицей.\n\t */\n\ttitle?: string;\n\t/**\n\t * Признак первичной загрузки.\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Признак фоновой догрузки или обновления данных.\n\t */\n\tisFetching?: boolean;\n\t/**\n\t * Плоский источник строк.\n\t */\n\tdata: readonly TData[] | undefined | null;\n\t/**\n\t * Описание колонок таблицы.\n\t */\n\tcolumns: readonly TableColumnDef<TData>[];\n\t/**\n\t * Режим выбора строк.\n\t */\n\tselectionMode?: TableSelectionMode;\n\t/**\n\t * Внешний список выбранных строк.\n\t *\n\t * Если передан, таблица синхронизирует визуальное выделение с этим набором id.\n\t */\n\tselectedRowIds?: readonly string[];\n\t/**\n\t * Стабильный идентификатор строки.\n\t *\n\t * Если не задан, используется индекс строки.\n\t */\n\tgetRowId?: (row: TData, index: number) => string;\n\t/**\n\t * Дополнительный CSS-класс корневого контейнера.\n\t */\n\tclassName?: string;\n\tminHeight?: `${number}em` | `${number}%`;\n\t/**\n\t * Дополнительный CSS-класс тега `table`.\n\t */\n\ttableClassName?: string;\n\t/**\n\t * Внешнее controlled-состояние видимости колонок.\n\t */\n\tcolumnVisibility?: VisibilityState;\n\t/**\n\t * Стартовое uncontrolled-состояние видимости колонок.\n\t */\n\tdefaultColumnVisibility?: VisibilityState;\n\t/**\n\t * Внешнее controlled-состояние порядка колонок.\n\t */\n\tcolumnOrder?: readonly string[];\n\t/**\n\t * Стартовое uncontrolled-состояние порядка колонок.\n\t */\n\tdefaultColumnOrder?: readonly string[];\n\t/**\n\t * Внешнее controlled-состояние ширин колонок в px.\n\t */\n\tcolumnSizing?: TableColumnSizingState;\n\t/**\n\t * Стартовое uncontrolled-состояние ширин колонок в px.\n\t */\n\tdefaultColumnSizing?: TableColumnSizingState;\n\t/**\n\t * Внешнее controlled-состояние left-pinning для колонок.\n\t */\n\tcolumnPinning?: TableColumnPinningState;\n\t/**\n\t * Стартовое uncontrolled-состояние left-pinning для колонок.\n\t */\n\tdefaultColumnPinning?: TableColumnPinningState;\n\t/**\n\t * Включает изменение ширины колонок через header-handle.\n\t */\n\tenableColumnResizing?: boolean;\n\t/**\n\t * Включает изменение порядка колонок через drag&drop заголовков.\n\t */\n\tenableColumnReordering?: boolean;\n\t/**\n\t * Минимальная ширина колонки при resize в px.\n\t */\n\tcolumnResizeMinWidth?: number;\n\t/**\n\t * Вызывается после изменения видимости колонок.\n\t */\n\tonColumnVisibilityChange?: (state: VisibilityState) => void;\n\t/**\n\t * Вызывается после изменения порядка колонок.\n\t */\n\tonColumnOrderChange?: (state: TableColumnOrderState) => void;\n\t/**\n\t * Вызывается после изменения ширины колонок.\n\t */\n\tonColumnSizingChange?: (state: TableColumnSizingState) => void;\n\t/**\n\t * Вызывается после изменения left-pinning state.\n\t */\n\tonColumnPinningChange?: (state: TableColumnPinningState) => void;\n\t/**\n\t * Вызывается при активации строки кликом или клавиатурой.\n\t */\n\tonRowClick?: (row: TData) => void;\n\t/**\n\t * Вызывается после изменения выбранных строк.\n\t */\n\tonRowSelectionChange?: (rows: TData[]) => void;\n\t/**\n\t * Вызывается при достижении конца таблицы внутри scroll-контейнера.\n\t */\n\tonReachEnd?: () => void;\n\t/**\n\t * Позволяет запретить выбор отдельных строк.\n\t */\n\tgetRowCanSelect?: (row: TData) => boolean;\n\t/**\n\t * Позволяет добавить CSS-класс для конкретной строки.\n\t */\n\tgetRowClassName?: (row: TData) => string | undefined;\n\t/**\n\t * Контекстное меню заголовка колонки. Используется для общих runtime-действий\n\t * вроде server sorting без встраивания доменной логики в shared-таблицу.\n\t */\n\trenderHeaderContextMenu?: BaseTableProps<TData>[\"renderHeaderContextMenu\"];\n\t/**\n\t * Тонкая точка расширения содержимого ячейки поверх стандартного форматирования.\n\t *\n\t * В отличие от `column.cell`, этот слот не отключает общий formatting-runtime:\n\t * `defaultContent` уже содержит отформатированное значение, если оно применимо.\n\t */\n\trenderCellContent?: BaseTableProps<TData>[\"renderCellContent\"];\n}\n\n/**\n * Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.\n */\nexport function Table<TData extends object>({\n\ttitle,\n\tisLoading,\n\tisFetching,\n\tdata,\n\tcolumns,\n\tselectionMode = \"none\",\n\tselectedRowIds,\n\tgetRowId,\n\tclassName,\n\tminHeight,\n\ttableClassName,\n\tcolumnVisibility,\n\tdefaultColumnVisibility,\n\tcolumnOrder,\n\tdefaultColumnOrder,\n\tcolumnSizing,\n\tdefaultColumnSizing,\n\tcolumnPinning,\n\tdefaultColumnPinning,\n\tenableColumnResizing = false,\n\tenableColumnReordering = false,\n\tcolumnResizeMinWidth,\n\tonColumnVisibilityChange,\n\tonColumnOrderChange,\n\tonColumnSizingChange,\n\tonColumnPinningChange,\n\tonRowClick,\n\tonRowSelectionChange,\n\tonReachEnd,\n\tgetRowCanSelect,\n\tgetRowClassName,\n\trenderHeaderContextMenu,\n\trenderCellContent\n}: TableProps<TData>) {\n\tconst tableData = useMemo(() => data ?? [], [data]);\n\tconst formattingSnapshot = useMemo(() => buildTableFormattingSnapshot(columns), [columns]);\n\tconst resolveRowId = getRowId ?? defaultGetRowId<TData>;\n\tconst rowById = useMemo(() => new Map(tableData.map((row, index) => [resolveRowId(row, index), row])), [resolveRowId, tableData]);\n\tconst availableRowIds = useMemo(() => Array.from(rowById.keys()), [rowById]);\n\tconst scrollableRef = useRef<HTMLDivElement | null>(null);\n\tconst sentinelRef = useRef<HTMLDivElement | null>(null);\n\n\tconst { rowSelection, activateRowSelection } = useTableRowSelection({\n\t\tavailableRowIds,\n\t\trowById,\n\t\tselectionMode,\n\t\tselectedRowIds,\n\t\tonRowSelectionChange\n\t});\n\tconst { columnVisibility: resolvedColumnVisibility, onColumnVisibilityChange: handleColumnVisibilityChange } = useTableColumnVisibility(\n\t\t{\n\t\t\tcolumnVisibility,\n\t\t\tdefaultColumnVisibility,\n\t\t\tonColumnVisibilityChange\n\t\t}\n\t);\n\tconst { columnOrder: resolvedColumnOrder, onColumnOrderChange: handleColumnOrderChange } = useTableColumnOrder({\n\t\tcolumnOrder,\n\t\tdefaultColumnOrder,\n\t\tonColumnOrderChange\n\t});\n\tconst { columnSizing: resolvedColumnSizing, onColumnSizingChange: handleColumnSizingChange } = useTableColumnSizing({\n\t\tcolumnSizing,\n\t\tdefaultColumnSizing,\n\t\tcolumnResizeMinWidth,\n\t\tonColumnSizingChange\n\t});\n\tconst { columnPinning: resolvedColumnPinning, onColumnPinningChange: handleColumnPinningChange } = useTableColumnPinning({\n\t\tcolumnPinning,\n\t\tdefaultColumnPinning,\n\t\tonColumnPinningChange\n\t});\n\tconst baseTableColumnState = useMemo<BaseTableColumnState>(\n\t\t() => ({\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility\n\t\t}),\n\t\t[resolvedColumnOrder, resolvedColumnPinning, resolvedColumnSizing, resolvedColumnVisibility]\n\t);\n\n\tconst emitReachEnd = useEffectEvent(() => {\n\t\tonReachEnd?.();\n\t});\n\n\tuseEffect(() => {\n\t\tif (!onReachEnd || !scrollableRef.current || !sentinelRef.current || isLoading) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst observer = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tconst entry = entries[0];\n\n\t\t\t\tif (entry?.isIntersecting) {\n\t\t\t\t\temitReachEnd();\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: scrollableRef.current,\n\t\t\t\tthreshold: 0.1\n\t\t\t}\n\t\t);\n\n\t\tobserver.observe(sentinelRef.current);\n\n\t\treturn () => observer.disconnect();\n\t}, [isLoading, onReachEnd, tableData.length]);\n\n\tconst table = useReactTable<TData>({\n\t\tdata: tableData as TData[],\n\t\tcolumns: columns as TableColumnDef<TData>[],\n\t\tstate: {\n\t\t\tcolumnOrder: resolvedColumnOrder,\n\t\t\tcolumnPinning: resolvedColumnPinning,\n\t\t\tcolumnSizing: resolvedColumnSizing,\n\t\t\tcolumnVisibility: resolvedColumnVisibility,\n\t\t\trowSelection\n\t\t},\n\t\tonColumnOrderChange: handleColumnOrderChange,\n\t\tonColumnPinningChange: handleColumnPinningChange,\n\t\tonColumnSizingChange: handleColumnSizingChange,\n\t\tonColumnVisibilityChange: handleColumnVisibilityChange,\n\t\tgetRowId: (row, index) => resolveRowId(row, index),\n\t\tgetCoreRowModel: getCoreRowModel(),\n\t\tenableMultiRowSelection: selectionMode === \"multi\",\n\t\tenableRowSelection: (row) => {\n\t\t\tif (selectionMode === \"none\") {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn getRowCanSelect ? getRowCanSelect(row.original) : true;\n\t\t}\n\t});\n\n\tconst visibleLeafColumns = getOrderedVisibleLeafColumns(table, baseTableColumnState);\n\tconst rowModelRows = table.getRowModel().rows;\n\tconst mergedCellLayout = useMemo(\n\t\t() =>\n\t\t\tbuildBaseTableMergedCellsLayout({\n\t\t\t\trows: rowModelRows,\n\t\t\t\tcolumns: visibleLeafColumns\n\t\t\t}),\n\t\t[rowModelRows, visibleLeafColumns]\n\t);\n\tconst leadingColumnId = visibleLeafColumns[0]?.id;\n\n\t/**\n\t * Активирует строку: обновляет выбор в соответствии с режимом и вызывает внешний callback.\n\t */\n\tconst activateRow = (row: Row<TData>) => {\n\t\tactivateRowSelection(row.id, row.getCanSelect());\n\t\tonRowClick?.(row.original);\n\t};\n\n\treturn (\n\t\t<BaseTable\n\t\t\ttable={table}\n\t\t\tcolumnState={baseTableColumnState}\n\t\t\ttitle={title}\n\t\t\tisLoading={isLoading}\n\t\t\tisFetching={isFetching}\n\t\t\tclassName={className}\n\t\t\tminHeight={minHeight}\n\t\t\ttableClassName={tableClassName}\n\t\t\tselectionMode={selectionMode}\n\t\t\tscrollableRef={scrollableRef}\n\t\t\tonActivateRow={selectionMode !== \"none\" || onRowClick ? activateRow : undefined}\n\t\t\tisRowInteractive={(row) => Boolean(onRowClick || (selectionMode !== \"none\" && row.getCanSelect()))}\n\t\t\tgetRowClassName={(row) => getRowClassName?.(row.original)}\n\t\t\tgetCellClassName={({ row, cell }) =>\n\t\t\t\tcell.column.id === leadingColumnId && row.getIsSelected() ? styles.selectedIndicatorCell : undefined\n\t\t\t}\n\t\t\tgetCellLayout={({ cell }) => mergedCellLayout.get(cell.id)}\n\t\t\trenderHeaderContextMenu={renderHeaderContextMenu}\n\t\t\tenableColumnResizing={enableColumnResizing}\n\t\t\tenableColumnReordering={enableColumnReordering}\n\t\t\tcolumnResizeMinWidth={columnResizeMinWidth}\n\t\t\trenderCellContent={(args) => {\n\t\t\t\tconst displayValue = formatPipelineDisplayValue({\n\t\t\t\t\tfield: formattingSnapshot.runtimeByColumnId[args.cell.column.id],\n\t\t\t\t\trawValue: args.cell.getValue(),\n\t\t\t\t\trowData: args.row.original as TableFormulaRowData,\n\t\t\t\t\trowKind: \"plain\"\n\t\t\t\t});\n\t\t\t\tconst defaultContent = !shouldUseTableFormatting({\n\t\t\t\t\tcolumnId: args.cell.column.id,\n\t\t\t\t\truntimeByColumnId: formattingSnapshot.runtimeByColumnId,\n\t\t\t\t\tcustomCellColumnIds: formattingSnapshot.customCellColumnIds\n\t\t\t\t}) ? (\n\t\t\t\t\targs.defaultContent\n\t\t\t\t) : (\n\t\t\t\t\t<FormattedTableCell displayValue={displayValue} align={args.columnMeta?.align} />\n\t\t\t\t);\n\n\t\t\t\tif (renderCellContent) {\n\t\t\t\t\treturn renderCellContent({\n\t\t\t\t\t\t...args,\n\t\t\t\t\t\tdefaultContent,\n\t\t\t\t\t\tdisplayValue\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn defaultContent;\n\t\t\t}}\n\t\t\tafterTableContent={onReachEnd ? <div ref={sentinelRef} className={styles.sentinel} aria-hidden=\"true\" /> : null}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|