@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,258 @@
|
|
|
1
|
+
import { t as e } from "./ui.module-BisoTevy.js";
|
|
2
|
+
import { c as t, n, o as r, r as i } from "./Input-Ce2HXBUc.js";
|
|
3
|
+
import { cn as a } from "@ryuzaki13/react-foundation-lib/utils";
|
|
4
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
5
|
+
import { useCallback as s, useMemo as c, useRef as l, useState as u } from "react";
|
|
6
|
+
import { dateToIndexedSegmentValues as d, indexedSegmentsToDate as f, parseDateSegmentMask as p } from "@ryuzaki13/react-foundation-lib/date-segments";
|
|
7
|
+
var m = {
|
|
8
|
+
segmentInput: "t1iysX",
|
|
9
|
+
separator: "_-4oX-p"
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/input-date-time/maskParser.ts
|
|
13
|
+
function h(e) {
|
|
14
|
+
return p(e).map((e) => e.kind === "editable" ? {
|
|
15
|
+
...e,
|
|
16
|
+
type: e.id
|
|
17
|
+
} : e);
|
|
18
|
+
}
|
|
19
|
+
function g(e, t) {
|
|
20
|
+
let n = d(e, t), r = /* @__PURE__ */ new Map();
|
|
21
|
+
return t.forEach((e, t) => {
|
|
22
|
+
e.kind === "editable" && r.set(e.type, n.get(t) ?? "");
|
|
23
|
+
}), r;
|
|
24
|
+
}
|
|
25
|
+
function _(e, t) {
|
|
26
|
+
let n = /* @__PURE__ */ new Map();
|
|
27
|
+
return e.forEach((e, r) => {
|
|
28
|
+
e.kind === "editable" && n.set(r, t.get(e.type) ?? "");
|
|
29
|
+
}), f(e, n);
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region src/input-date-time/useMaskedSegments.ts
|
|
33
|
+
function v(e, t) {
|
|
34
|
+
let n = g(e, t), r = /* @__PURE__ */ new Map();
|
|
35
|
+
return t.forEach((e, t) => {
|
|
36
|
+
e.kind === "editable" && r.set(t, n.get(e.type) ?? "");
|
|
37
|
+
}), r;
|
|
38
|
+
}
|
|
39
|
+
function y(e) {
|
|
40
|
+
let t = [];
|
|
41
|
+
return e.forEach((e, n) => {
|
|
42
|
+
e.kind === "editable" && t.push(n);
|
|
43
|
+
}), t;
|
|
44
|
+
}
|
|
45
|
+
function b({ mask: e, value: t, onChange: n, onClearError: r, disabled: i }) {
|
|
46
|
+
let a = c(() => h(e), [e]), o = c(() => y(a), [a]), d = c(() => v(t, a), [t, a]), [f, p] = u(null), [m, g] = u(() => t?.getTime()), b = t?.getTime();
|
|
47
|
+
b !== m && (g(b), p(null));
|
|
48
|
+
let x = f ?? d, S = l(/* @__PURE__ */ new Map()), C = l(0), [w, T] = u(!1), E = s((e) => {
|
|
49
|
+
let t = /* @__PURE__ */ new Map();
|
|
50
|
+
a.forEach((n, r) => {
|
|
51
|
+
n.kind === "editable" && t.set(n.type, e.get(r) ?? "");
|
|
52
|
+
});
|
|
53
|
+
let r = _(a, t);
|
|
54
|
+
r !== null && n(r);
|
|
55
|
+
}, [a, n]), D = s((e, t = !0) => {
|
|
56
|
+
let n = S.current.get(e);
|
|
57
|
+
n && (n.focus(), t && requestAnimationFrame(() => n.select()));
|
|
58
|
+
}, []), O = s((e) => {
|
|
59
|
+
let t = o.indexOf(e);
|
|
60
|
+
return t < o.length - 1 ? o[t + 1] : null;
|
|
61
|
+
}, [o]), k = s((e) => {
|
|
62
|
+
let t = o.indexOf(e);
|
|
63
|
+
return t > 0 ? o[t - 1] : null;
|
|
64
|
+
}, [o]), A = s((e, t) => e.padStart(t.length, "0"), []);
|
|
65
|
+
return {
|
|
66
|
+
segments: a,
|
|
67
|
+
segmentValues: x,
|
|
68
|
+
isFocused: w,
|
|
69
|
+
registerRef: s((e) => (t) => {
|
|
70
|
+
t ? S.current.set(e, t) : S.current.delete(e);
|
|
71
|
+
}, []),
|
|
72
|
+
handleInput: s((e) => (t) => {
|
|
73
|
+
if (i) return;
|
|
74
|
+
let n = a[e], o = t.target.value.replace(/\D/g, "").slice(0, n.length), s = new Map(x);
|
|
75
|
+
if (s.set(e, o), p(s), r?.(), o.length === n.length) {
|
|
76
|
+
let t = O(e);
|
|
77
|
+
t !== null && requestAnimationFrame(() => D(t));
|
|
78
|
+
}
|
|
79
|
+
E(s);
|
|
80
|
+
}, [
|
|
81
|
+
i,
|
|
82
|
+
a,
|
|
83
|
+
x,
|
|
84
|
+
r,
|
|
85
|
+
O,
|
|
86
|
+
D,
|
|
87
|
+
E
|
|
88
|
+
]),
|
|
89
|
+
handleKeyDown: s((e) => (t) => {
|
|
90
|
+
if (i) return;
|
|
91
|
+
let n = a[e], r = x.get(e) ?? "", o = t.currentTarget;
|
|
92
|
+
switch (t.key) {
|
|
93
|
+
case "ArrowRight":
|
|
94
|
+
if (o.selectionStart === r.length || r === "") {
|
|
95
|
+
t.preventDefault();
|
|
96
|
+
let n = O(e);
|
|
97
|
+
n !== null && D(n);
|
|
98
|
+
}
|
|
99
|
+
break;
|
|
100
|
+
case "ArrowLeft":
|
|
101
|
+
if (o.selectionStart === 0 || r === "") {
|
|
102
|
+
t.preventDefault();
|
|
103
|
+
let n = k(e);
|
|
104
|
+
n !== null && D(n);
|
|
105
|
+
}
|
|
106
|
+
break;
|
|
107
|
+
case "ArrowUp": {
|
|
108
|
+
t.preventDefault();
|
|
109
|
+
let i = r === "" ? n.min : parseInt(r, 10) + 1;
|
|
110
|
+
i > n.max && (i = n.min);
|
|
111
|
+
let a = A(i.toString(), n), s = new Map(x);
|
|
112
|
+
s.set(e, a), p(s), E(s), requestAnimationFrame(() => o.select());
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
case "ArrowDown": {
|
|
116
|
+
t.preventDefault();
|
|
117
|
+
let i = r === "" ? n.max : parseInt(r, 10) - 1;
|
|
118
|
+
i < n.min && (i = n.max);
|
|
119
|
+
let a = A(i.toString(), n), s = new Map(x);
|
|
120
|
+
s.set(e, a), p(s), E(s), requestAnimationFrame(() => o.select());
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
case "Backspace":
|
|
124
|
+
if (r === "") {
|
|
125
|
+
t.preventDefault();
|
|
126
|
+
let n = k(e);
|
|
127
|
+
n !== null && D(n);
|
|
128
|
+
}
|
|
129
|
+
break;
|
|
130
|
+
case "Delete": {
|
|
131
|
+
t.preventDefault();
|
|
132
|
+
let n = new Map(x);
|
|
133
|
+
n.set(e, ""), p(n), E(n);
|
|
134
|
+
break;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}, [
|
|
138
|
+
i,
|
|
139
|
+
a,
|
|
140
|
+
x,
|
|
141
|
+
O,
|
|
142
|
+
k,
|
|
143
|
+
D,
|
|
144
|
+
A,
|
|
145
|
+
E
|
|
146
|
+
]),
|
|
147
|
+
handleFocus: s(() => (e) => {
|
|
148
|
+
e.target.select();
|
|
149
|
+
}, []),
|
|
150
|
+
handleContainerFocus: s(() => {
|
|
151
|
+
clearTimeout(C.current), T(!0);
|
|
152
|
+
}, []),
|
|
153
|
+
handleContainerBlur: s(() => {
|
|
154
|
+
C.current = window.setTimeout(() => {
|
|
155
|
+
T(!1), p(null);
|
|
156
|
+
}, 0);
|
|
157
|
+
}, []),
|
|
158
|
+
focusFirstEmpty: s(() => {
|
|
159
|
+
let e = o.find((e) => !(x.get(e) ?? "")) ?? o[o.length - 1];
|
|
160
|
+
e !== void 0 && D(e);
|
|
161
|
+
}, [
|
|
162
|
+
o,
|
|
163
|
+
x,
|
|
164
|
+
D
|
|
165
|
+
])
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/input-date-time/InputDateTime.tsx
|
|
170
|
+
function x({ mask: s, value: c, onChange: l, label: u, description: d, disabled: f, size: p, className: h, error: g, onClearError: _, onClear: v, "aria-label": y }) {
|
|
171
|
+
let { segments: x, segmentValues: S, registerRef: C, handleInput: w, handleKeyDown: T, handleFocus: E, handleContainerFocus: D, handleContainerBlur: O, focusFirstEmpty: k } = b({
|
|
172
|
+
mask: s,
|
|
173
|
+
value: c,
|
|
174
|
+
onChange: l,
|
|
175
|
+
onClearError: _,
|
|
176
|
+
disabled: f
|
|
177
|
+
}), { controlId: A, labelId: j, descriptionId: M, errorId: N, describedBy: P } = t({
|
|
178
|
+
hasLabel: u != null,
|
|
179
|
+
hasDescription: !!d,
|
|
180
|
+
hasError: !!g
|
|
181
|
+
});
|
|
182
|
+
return /* @__PURE__ */ o(r, {
|
|
183
|
+
label: u,
|
|
184
|
+
description: d,
|
|
185
|
+
disabled: f,
|
|
186
|
+
className: h,
|
|
187
|
+
size: p,
|
|
188
|
+
error: g,
|
|
189
|
+
labelId: j,
|
|
190
|
+
descriptionId: M,
|
|
191
|
+
errorId: N,
|
|
192
|
+
children: /* @__PURE__ */ o(i, {
|
|
193
|
+
endAdornment: v ? /* @__PURE__ */ o(n, {
|
|
194
|
+
onClick: v,
|
|
195
|
+
disabled: f
|
|
196
|
+
}) : void 0,
|
|
197
|
+
endAdornmentWidth: v ? "var(--control-height)" : void 0,
|
|
198
|
+
children: ({ controlClassName: t }) => /* @__PURE__ */ o("div", {
|
|
199
|
+
id: A,
|
|
200
|
+
className: a(e.uiInputControlFake, t),
|
|
201
|
+
"data-invalid": g ? "" : void 0,
|
|
202
|
+
"data-disabled": f || void 0,
|
|
203
|
+
role: "group",
|
|
204
|
+
"aria-invalid": !!g || void 0,
|
|
205
|
+
"aria-label": y || (typeof u == "string" ? u : void 0),
|
|
206
|
+
"aria-labelledby": y ? void 0 : j,
|
|
207
|
+
"aria-describedby": P,
|
|
208
|
+
onFocus: D,
|
|
209
|
+
onBlur: O,
|
|
210
|
+
onClick: (e) => {
|
|
211
|
+
e.target === e.currentTarget && k();
|
|
212
|
+
},
|
|
213
|
+
children: x.map((e, t) => e.kind === "literal" ? /* @__PURE__ */ o("span", {
|
|
214
|
+
className: m.separator,
|
|
215
|
+
"data-disabled": f || void 0,
|
|
216
|
+
children: e.text
|
|
217
|
+
}, t) : /* @__PURE__ */ o("input", {
|
|
218
|
+
ref: C(t),
|
|
219
|
+
type: "text",
|
|
220
|
+
inputMode: "numeric",
|
|
221
|
+
className: m.segmentInput,
|
|
222
|
+
style: { width: `${e.length + .5}ch` },
|
|
223
|
+
value: S.get(t) ?? "",
|
|
224
|
+
placeholder: e.placeholder,
|
|
225
|
+
maxLength: e.length,
|
|
226
|
+
disabled: f,
|
|
227
|
+
"aria-label": e.type,
|
|
228
|
+
autoComplete: "off",
|
|
229
|
+
onChange: w(t),
|
|
230
|
+
onKeyDown: T(t),
|
|
231
|
+
onFocus: E()
|
|
232
|
+
}, t))
|
|
233
|
+
})
|
|
234
|
+
})
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function S({ mask: e = "YYYY.MM.DD", ...t }) {
|
|
238
|
+
return /* @__PURE__ */ o(x, {
|
|
239
|
+
mask: e,
|
|
240
|
+
...t
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
function C({ mask: e = "hh:mm", ...t }) {
|
|
244
|
+
return /* @__PURE__ */ o(x, {
|
|
245
|
+
mask: e,
|
|
246
|
+
...t
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
function w({ mask: e = "YYYY.MM.DD hh:mm", ...t }) {
|
|
250
|
+
return /* @__PURE__ */ o(x, {
|
|
251
|
+
mask: e,
|
|
252
|
+
...t
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
//#endregion
|
|
256
|
+
export { w as n, C as r, S as t };
|
|
257
|
+
|
|
258
|
+
//# sourceMappingURL=InputDateTime-DPtY_4Od.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputDateTime-DPtY_4Od.js","names":[],"sources":["../../src/input-date-time/InputDateTime.module.scss","../../src/input-date-time/maskParser.ts","../../src/input-date-time/useMaskedSegments.ts","../../src/input-date-time/InputDateTime.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.segmentInput {\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&::placeholder {\n\t\tcolor: var(--content-2);\n\t\t// font-size: var(--font-size-sm);\n\t}\n\n\t&::selection {\n\t\tbackground-color: var(--focus-ring);\n\t\tcolor: var(--surface-0);\n\t}\n\n\t// Remove spin buttons\n\t&::-webkit-inner-spin-button,\n\t&::-webkit-outer-spin-button {\n\t\t-webkit-appearance: none;\n\t\tmargin: 0;\n\t}\n\n\t&:disabled {\n\t\topacity: 0.25;\n\t}\n}\n\n.separator {\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 {\n\ttype DateMaskSegment,\n\ttype DateSegmentId,\n\tdateToIndexedSegmentValues,\n\ttype EditableDateSegment,\n\tindexedSegmentsToDate,\n\ttype LiteralDateSegment,\n\tparseDateSegmentMask\n} from \"@ryuzaki13/react-foundation-lib/date-segments\";\n\n/**\n * Совместимый тип сегмента для существующего `InputDateTime`.\n */\nexport type SegmentType = DateSegmentId;\n\n/**\n * Совместимый редактируемый сегмент для существующего `InputDateTime`.\n */\nexport interface EditableSegment extends Omit<EditableDateSegment, \"id\"> {\n\ttype: SegmentType;\n}\n\n/**\n * Совместимый литеральный сегмент для существующего `InputDateTime`.\n */\nexport type LiteralSegment = LiteralDateSegment;\n\n/**\n * Совместимый тип сегмента маски для существующего `InputDateTime`.\n */\nexport type Segment = EditableSegment | LiteralSegment;\n\n/**\n * Разбирает строковую маску, сохраняя прежний контракт `InputDateTime`.\n */\nexport function parseMask(mask: string): Segment[] {\n\treturn parseDateSegmentMask(mask).map((segment) => (segment.kind === \"editable\" ? { ...segment, type: segment.id } : segment));\n}\n\n/**\n * Преобразует Date в карту значений сегментов по их совместимым типам.\n */\nexport function dateToSegmentValues(date: Date | undefined, segments: Segment[]): Map<SegmentType, string> {\n\tconst indexedValues = dateToIndexedSegmentValues(date, segments as DateMaskSegment[]);\n\tconst values = new Map<SegmentType, string>();\n\n\tsegments.forEach((segment, index) => {\n\t\tif (segment.kind !== \"editable\") return;\n\t\tvalues.set(segment.type, indexedValues.get(index) ?? \"\");\n\t});\n\n\treturn values;\n}\n\n/**\n * Собирает строгий Date из карты сегментов старого формата.\n */\nexport function segmentsToDate(segments: Segment[], values: Map<SegmentType, string>): Date | null {\n\tconst indexedValues = new Map<number, string>();\n\n\tsegments.forEach((segment, index) => {\n\t\tif (segment.kind !== \"editable\") return;\n\t\tindexedValues.set(index, values.get(segment.type) ?? \"\");\n\t});\n\n\treturn indexedSegmentsToDate(segments as DateMaskSegment[], indexedValues);\n}\n","import React, { useCallback, useMemo, useRef, useState } from \"react\";\n\nimport { dateToSegmentValues, EditableSegment, parseMask, segmentsToDate, SegmentType } from \"./maskParser\";\n\ninterface UseMaskedSegmentsOptions {\n\tmask: string;\n\tvalue: Date | undefined;\n\tonChange: (date: Date) => void;\n\tonClearError?: () => void;\n\tdisabled?: boolean;\n}\n\n// Вычисляет Map<index, string> из Date и массива сегментов\nfunction buildSegmentMap(date: Date | undefined, segments: ReturnType<typeof parseMask>): Map<number, string> {\n\tconst typeValues = dateToSegmentValues(date, segments);\n\tconst map = new Map<number, string>();\n\n\tsegments.forEach((seg, i) => {\n\t\tif (seg.kind === \"editable\") {\n\t\t\tmap.set(i, typeValues.get(seg.type) ?? \"\");\n\t\t}\n\t});\n\n\treturn map;\n}\n\n// TODO: Duplicate date-time-input/model/useDateTimeSegments\nfunction resolveEditableIndices(segments: ReturnType<typeof parseMask>): number[] {\n\tconst indices: number[] = [];\n\n\tsegments.forEach((segment, index) => {\n\t\tif (segment.kind === \"editable\") {\n\t\t\tindices.push(index);\n\t\t}\n\t});\n\n\treturn indices;\n}\n\nexport function useMaskedSegments({ mask, value, onChange, onClearError, disabled }: UseMaskedSegmentsOptions) {\n\tconst segments = useMemo(() => parseMask(mask), [mask]);\n\n\tconst editableIndices = useMemo(() => resolveEditableIndices(segments), [segments]);\n\n\t// Значения сегментов, вычисленные из пропса value (источник истины)\n\tconst committedValues = useMemo(() => buildSegmentMap(value, segments), [value, segments]);\n\n\t// Локальные «грязные» значения при редактировании (null → используем committedValues)\n\tconst [dirtyValues, setDirtyValues] = useState<Map<number, string> | null>(null);\n\n\t// Сброс грязного состояния при внешнем изменении value (паттерн «adjusting state during render»)\n\tconst [prevValueTime, setPrevValueTime] = useState(() => value?.getTime());\n\tconst currentValueTime = value?.getTime();\n\tif (currentValueTime !== prevValueTime) {\n\t\tsetPrevValueTime(currentValueTime);\n\t\tsetDirtyValues(null);\n\t}\n\n\t// Текущие отображаемые значения\n\tconst segmentValues = dirtyValues ?? committedValues;\n\n\tconst refsMap = useRef<Map<number, HTMLInputElement>>(new Map());\n\tconst blurTimeout = useRef<number>(0);\n\tconst [isFocused, setIsFocused] = useState(false);\n\n\tconst tryFireOnChange = useCallback(\n\t\t(updatedValues: Map<number, string>) => {\n\t\t\tconst typeValues = new Map<SegmentType, string>();\n\n\t\t\tsegments.forEach((seg, i) => {\n\t\t\t\tif (seg.kind === \"editable\") {\n\t\t\t\t\ttypeValues.set(seg.type, updatedValues.get(i) ?? \"\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst date = segmentsToDate(segments, typeValues);\n\t\t\tif (date !== null) {\n\t\t\t\tonChange(date);\n\t\t\t}\n\t\t},\n\t\t[segments, onChange]\n\t);\n\n\tconst focusSegment = useCallback((index: number, selectAll = true) => {\n\t\tconst el = refsMap.current.get(index);\n\t\tif (el) {\n\t\t\tel.focus();\n\t\t\tif (selectAll) {\n\t\t\t\trequestAnimationFrame(() => el.select());\n\t\t\t}\n\t\t}\n\t}, []);\n\n\tconst getNextEditable = useCallback(\n\t\t(currentIndex: number): number | null => {\n\t\t\tconst pos = editableIndices.indexOf(currentIndex);\n\t\t\treturn pos < editableIndices.length - 1 ? editableIndices[pos + 1] : null;\n\t\t},\n\t\t[editableIndices]\n\t);\n\n\tconst getPrevEditable = useCallback(\n\t\t(currentIndex: number): number | null => {\n\t\t\tconst pos = editableIndices.indexOf(currentIndex);\n\t\t\treturn pos > 0 ? editableIndices[pos - 1] : null;\n\t\t},\n\t\t[editableIndices]\n\t);\n\n\tconst padValue = useCallback((val: string, segment: EditableSegment): string => {\n\t\treturn val.padStart(segment.length, \"0\");\n\t}, []);\n\n\tconst registerRef = useCallback(\n\t\t(index: number) => (el: HTMLInputElement | null) => {\n\t\t\tif (el) {\n\t\t\t\trefsMap.current.set(index, el);\n\t\t\t} else {\n\t\t\t\trefsMap.current.delete(index);\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\tconst handleInput = useCallback(\n\t\t(index: number) => (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tif (disabled) return;\n\n\t\t\tconst segment = segments[index] as EditableSegment;\n\t\t\tconst raw = e.target.value.replace(/\\D/g, \"\");\n\t\t\tconst clamped = raw.slice(0, segment.length);\n\n\t\t\tconst updated = new Map(segmentValues);\n\t\t\tupdated.set(index, clamped);\n\t\t\tsetDirtyValues(updated);\n\n\t\t\tonClearError?.();\n\n\t\t\t// Авто-переход к следующему сегменту при заполнении текущего\n\t\t\tif (clamped.length === segment.length) {\n\t\t\t\tconst next = getNextEditable(index);\n\t\t\t\tif (next !== null) {\n\t\t\t\t\trequestAnimationFrame(() => focusSegment(next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttryFireOnChange(updated);\n\t\t},\n\t\t[disabled, segments, segmentValues, onClearError, getNextEditable, focusSegment, tryFireOnChange]\n\t);\n\n\tconst handleKeyDown = useCallback(\n\t\t(index: number) => (e: React.KeyboardEvent<HTMLInputElement>) => {\n\t\t\tif (disabled) return;\n\n\t\t\tconst segment = segments[index] as EditableSegment;\n\t\t\tconst currentVal = segmentValues.get(index) ?? \"\";\n\t\t\tconst el = e.currentTarget;\n\n\t\t\tswitch (e.key) {\n\t\t\t\tcase \"ArrowRight\": {\n\t\t\t\t\tif (el.selectionStart === currentVal.length || currentVal === \"\") {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tconst next = getNextEditable(index);\n\t\t\t\t\t\tif (next !== null) focusSegment(next);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ArrowLeft\": {\n\t\t\t\t\tif (el.selectionStart === 0 || currentVal === \"\") {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tconst prev = getPrevEditable(index);\n\t\t\t\t\t\tif (prev !== null) focusSegment(prev);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ArrowUp\": {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tlet num = currentVal === \"\" ? segment.min : parseInt(currentVal, 10) + 1;\n\t\t\t\t\tif (num > segment.max) num = segment.min;\n\n\t\t\t\t\tconst padded = padValue(num.toString(), segment);\n\t\t\t\t\tconst updated = new Map(segmentValues);\n\t\t\t\t\tupdated.set(index, padded);\n\t\t\t\t\tsetDirtyValues(updated);\n\t\t\t\t\ttryFireOnChange(updated);\n\n\t\t\t\t\trequestAnimationFrame(() => el.select());\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"ArrowDown\": {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tlet num = currentVal === \"\" ? segment.max : parseInt(currentVal, 10) - 1;\n\t\t\t\t\tif (num < segment.min) num = segment.max;\n\n\t\t\t\t\tconst padded = padValue(num.toString(), segment);\n\t\t\t\t\tconst updated = new Map(segmentValues);\n\t\t\t\t\tupdated.set(index, padded);\n\t\t\t\t\tsetDirtyValues(updated);\n\t\t\t\t\ttryFireOnChange(updated);\n\n\t\t\t\t\trequestAnimationFrame(() => el.select());\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"Backspace\": {\n\t\t\t\t\tif (currentVal === \"\") {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tconst prev = getPrevEditable(index);\n\t\t\t\t\t\tif (prev !== null) focusSegment(prev);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tcase \"Delete\": {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tconst updated = new Map(segmentValues);\n\t\t\t\t\tupdated.set(index, \"\");\n\t\t\t\t\tsetDirtyValues(updated);\n\t\t\t\t\ttryFireOnChange(updated);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[disabled, segments, segmentValues, getNextEditable, getPrevEditable, focusSegment, padValue, tryFireOnChange]\n\t);\n\n\tconst handleFocus = useCallback(\n\t\t() => (e: React.FocusEvent<HTMLInputElement>) => {\n\t\t\te.target.select();\n\t\t},\n\t\t[]\n\t);\n\n\tconst handleContainerFocus = useCallback(() => {\n\t\tclearTimeout(blurTimeout.current);\n\t\tsetIsFocused(true);\n\t}, []);\n\n\tconst handleContainerBlur = useCallback(() => {\n\t\tblurTimeout.current = window.setTimeout(() => {\n\t\t\tsetIsFocused(false);\n\t\t\t// Откат к последнему валидному значению (из пропса) при потере фокуса\n\t\t\tsetDirtyValues(null);\n\t\t}, 0);\n\t}, []);\n\n\tconst focusFirstEmpty = useCallback(() => {\n\t\tconst firstEmpty = editableIndices.find((i) => !(segmentValues.get(i) ?? \"\"));\n\t\tconst target = firstEmpty ?? editableIndices[editableIndices.length - 1];\n\t\tif (target !== undefined) focusSegment(target);\n\t}, [editableIndices, segmentValues, focusSegment]);\n\n\treturn {\n\t\tsegments,\n\t\tsegmentValues,\n\t\tisFocused,\n\t\tregisterRef,\n\t\thandleInput,\n\t\thandleKeyDown,\n\t\thandleFocus,\n\t\thandleContainerFocus,\n\t\thandleContainerBlur,\n\t\tfocusFirstEmpty\n\t};\n}\n","import { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputClearButton, InputControl, InputUI, useInputFieldIds } from \"../input\";\nimport { UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./InputDateTime.module.scss\";\nimport { useMaskedSegments } from \"./useMaskedSegments\";\n\ninterface InputDateTimeBaseProps extends UiBaseProps<Date, Date | undefined> {\n\tmask: string;\n\n\tclassName?: string;\n\n\terror?: string;\n\tonClearError?: () => void;\n\tonClear?: () => void;\n\n\t\"aria-label\"?: string;\n}\n\nfunction InputDateTimeBase({\n\tmask,\n\tvalue,\n\tonChange,\n\tlabel,\n\tdescription,\n\tdisabled,\n\tsize,\n\tclassName,\n\terror,\n\tonClearError,\n\tonClear,\n\t\"aria-label\": ariaLabel\n}: InputDateTimeBaseProps) {\n\tconst {\n\t\tsegments,\n\t\tsegmentValues,\n\t\tregisterRef,\n\t\thandleInput,\n\t\thandleKeyDown,\n\t\thandleFocus,\n\t\thandleContainerFocus,\n\t\thandleContainerBlur,\n\t\tfocusFirstEmpty\n\t} = useMaskedSegments({ mask, value, onChange, onClearError, disabled });\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\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\tlabelId={labelId}\n\t\t\tdescriptionId={descriptionId}\n\t\t\terrorId={errorId}>\n\t\t\t<InputControl\n\t\t\t\tendAdornment={onClear ? <InputClearButton onClick={onClear} disabled={disabled} /> : undefined}\n\t\t\t\tendAdornmentWidth={onClear ? \"var(--control-height)\" : undefined}>\n\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tid={controlId}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControlFake, controlClassName)}\n\t\t\t\t\t\tdata-invalid={error ? \"\" : undefined}\n\t\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\t\trole=\"group\"\n\t\t\t\t\t\taria-invalid={!!error || undefined}\n\t\t\t\t\t\taria-label={ariaLabel || (typeof label === \"string\" ? label : undefined)}\n\t\t\t\t\t\taria-labelledby={ariaLabel ? undefined : labelId}\n\t\t\t\t\t\taria-describedby={describedBy}\n\t\t\t\t\t\tonFocus={handleContainerFocus}\n\t\t\t\t\t\tonBlur={handleContainerBlur}\n\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\tif (e.target === e.currentTarget) focusFirstEmpty();\n\t\t\t\t\t\t}}>\n\t\t\t\t\t\t{segments.map((segment, index) => {\n\t\t\t\t\t\t\tif (segment.kind === \"literal\") {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<span key={index} className={styles.separator} data-disabled={disabled || undefined}>\n\t\t\t\t\t\t\t\t\t\t{segment.text}\n\t\t\t\t\t\t\t\t\t</span>\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\treturn (\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\t\tref={registerRef(index)}\n\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\tinputMode=\"numeric\"\n\t\t\t\t\t\t\t\t\tclassName={styles.segmentInput}\n\t\t\t\t\t\t\t\t\tstyle={{ width: `${segment.length + 0.5}ch` }}\n\t\t\t\t\t\t\t\t\tvalue={segmentValues.get(index) ?? \"\"}\n\t\t\t\t\t\t\t\t\tplaceholder={segment.placeholder}\n\t\t\t\t\t\t\t\t\tmaxLength={segment.length}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\taria-label={segment.type}\n\t\t\t\t\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\t\t\t\t\tonChange={handleInput(index)}\n\t\t\t\t\t\t\t\t\tonKeyDown={handleKeyDown(index)}\n\t\t\t\t\t\t\t\t\tonFocus={handleFocus()}\n\t\t\t\t\t\t\t\t/>\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</InputControl>\n\t\t</InputUI>\n\t);\n}\n\nexport type InputDateProps = Omit<InputDateTimeBaseProps, \"mask\"> & { mask?: string };\nexport type InputTimeProps = Omit<InputDateTimeBaseProps, \"mask\"> & { mask?: string };\nexport type InputDateTimeProps = Omit<InputDateTimeBaseProps, \"mask\"> & { mask?: string };\n\nexport function InputDate({ mask = \"YYYY.MM.DD\", ...props }: InputDateProps) {\n\treturn <InputDateTimeBase mask={mask} {...props} />;\n}\n\nexport function InputTime({ mask = \"hh:mm\", ...props }: InputTimeProps) {\n\treturn <InputDateTimeBase mask={mask} {...props} />;\n}\n\nexport function InputDateTime({ mask = \"YYYY.MM.DD hh:mm\", ...props }: InputDateTimeProps) {\n\treturn <InputDateTimeBase mask={mask} {...props} />;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { t as e } from "./ui.module-BisoTevy.js";
|
|
2
|
+
import { c as t, n, o as r, r as i } from "./Input-Ce2HXBUc.js";
|
|
3
|
+
import { cn as a, handleKeyboardActivation as o } from "@ryuzaki13/react-foundation-lib/utils";
|
|
4
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
5
|
+
import { useCallback as l, useRef as u } from "react";
|
|
6
|
+
import { ReadFileError as d, assertValidAccept as f, assertValidAllowedMime as p, readFile as m } from "@ryuzaki13/react-foundation-lib/file";
|
|
7
|
+
var h = {
|
|
8
|
+
control: "Ggxyuj",
|
|
9
|
+
fileName: "fthcmO",
|
|
10
|
+
hiddenInput: "wyY60X"
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/input-file/InputFile.tsx
|
|
14
|
+
function g(g) {
|
|
15
|
+
let { value: _, onClear: v, onReadError: y, accept: b, allowedMime: x, maxBytes: S, label: C, description: w, placeholder: T = "Выберите файл", disabled: E, size: D, error: O, onClearError: k, className: A } = g;
|
|
16
|
+
p(x), f(b);
|
|
17
|
+
let j = u(null), { controlId: M, labelId: N, descriptionId: P, errorId: F, describedBy: I } = t({
|
|
18
|
+
hasLabel: C != null,
|
|
19
|
+
hasDescription: !!w,
|
|
20
|
+
hasError: !!O
|
|
21
|
+
}), L = l(async (e) => {
|
|
22
|
+
let t = e.target.files?.[0];
|
|
23
|
+
if (t) {
|
|
24
|
+
e.target.value = "", O && k && k();
|
|
25
|
+
try {
|
|
26
|
+
if (g.readMode === "array-buffer") {
|
|
27
|
+
let e = await m(t, {
|
|
28
|
+
allowedMime: x,
|
|
29
|
+
maxBytes: S,
|
|
30
|
+
mode: "array-buffer"
|
|
31
|
+
});
|
|
32
|
+
g.onChange(e);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
let e = await m(t, {
|
|
36
|
+
allowedMime: x,
|
|
37
|
+
maxBytes: S
|
|
38
|
+
});
|
|
39
|
+
g.onChange(e);
|
|
40
|
+
} catch (e) {
|
|
41
|
+
e instanceof d && y && y(e);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}, [
|
|
45
|
+
g,
|
|
46
|
+
x,
|
|
47
|
+
S,
|
|
48
|
+
y,
|
|
49
|
+
O,
|
|
50
|
+
k
|
|
51
|
+
]), R = l(() => {
|
|
52
|
+
j.current?.click();
|
|
53
|
+
}, []);
|
|
54
|
+
return /* @__PURE__ */ c(r, {
|
|
55
|
+
label: C,
|
|
56
|
+
description: w,
|
|
57
|
+
disabled: E,
|
|
58
|
+
className: A,
|
|
59
|
+
size: D,
|
|
60
|
+
error: O,
|
|
61
|
+
controlId: M,
|
|
62
|
+
labelId: N,
|
|
63
|
+
descriptionId: P,
|
|
64
|
+
errorId: F,
|
|
65
|
+
children: [/* @__PURE__ */ s("input", {
|
|
66
|
+
ref: j,
|
|
67
|
+
id: M,
|
|
68
|
+
type: "file",
|
|
69
|
+
accept: (b ?? x)?.join(","),
|
|
70
|
+
disabled: E,
|
|
71
|
+
className: h.hiddenInput,
|
|
72
|
+
onChange: L,
|
|
73
|
+
tabIndex: -1
|
|
74
|
+
}), /* @__PURE__ */ s(i, {
|
|
75
|
+
endAdornment: v ? /* @__PURE__ */ s(n, {
|
|
76
|
+
onClick: v,
|
|
77
|
+
disabled: E
|
|
78
|
+
}) : void 0,
|
|
79
|
+
endAdornmentWidth: v ? "var(--control-height)" : void 0,
|
|
80
|
+
children: ({ controlClassName: t }) => /* @__PURE__ */ s("div", {
|
|
81
|
+
role: "button",
|
|
82
|
+
tabIndex: E ? -1 : 0,
|
|
83
|
+
onClick: R,
|
|
84
|
+
onKeyDown: (e) => o(e, R, { disabled: E }),
|
|
85
|
+
className: a(e.uiInputControl, h.control, t, !!O && e.invalid),
|
|
86
|
+
"data-disabled": E || void 0,
|
|
87
|
+
"aria-invalid": !!O || void 0,
|
|
88
|
+
"aria-disabled": E,
|
|
89
|
+
"aria-labelledby": N,
|
|
90
|
+
"aria-describedby": I,
|
|
91
|
+
children: _ ? /* @__PURE__ */ s("span", {
|
|
92
|
+
className: h.fileName,
|
|
93
|
+
children: _.meta.name
|
|
94
|
+
}) : /* @__PURE__ */ s("span", {
|
|
95
|
+
className: e.uiPlaceholder,
|
|
96
|
+
children: T
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
})]
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
//#endregion
|
|
103
|
+
export { g as t };
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=InputFile-ga5yJmdZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputFile-ga5yJmdZ.js","names":[],"sources":["../../src/input-file/InputFile.module.scss","../../src/input-file/InputFile.tsx"],"sourcesContent":[".control {\n\theight: var(--control-height);\n\twidth: 100%;\n\tpadding: 0 var(--space-sm);\n\tfont-size: var(--font-size-md);\n\tcursor: pointer;\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.fileName {\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n.hiddenInput {\n\tposition: absolute;\n\twidth: 0;\n\theight: 0;\n\topacity: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n}\n","import { useCallback, useRef } from \"react\";\n\nimport { assertValidAccept, assertValidAllowedMime, readFile, ReadFileError, ReadFileResult, ReadMode } from \"@ryuzaki13/react-foundation-lib/file\";\nimport { cn, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputClearButton, InputControl, InputUI, useInputFieldIds } from \"../input\";\nimport { UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./InputFile.module.scss\";\n\ninterface InputFileCommonProps extends Omit<UiBaseProps<undefined>, \"value\" | \"onChange\"> {\n\t/** Callback очистки выбранного файла. Если передан — отображается кнопка «крестик» */\n\tonClear?: () => void;\n\t/** Callback ошибки чтения файла (невалидный MIME, превышение размера и т.д.) */\n\tonReadError?: (error: ReadFileError) => void;\n\n\t/** HTML-атрибут accept для нативного input[type=\"file\"] (например `[\".pdf\", \".docx\"]`) */\n\taccept?: readonly string[];\n\t/** Список допустимых MIME-типов — передаётся в readFile для валидации */\n\tallowedMime?: readonly string[];\n\t/** Максимальный размер файла в байтах — передаётся в readFile для валидации */\n\tmaxBytes?: number;\n\t/** Режим чтения файла: \"data-url\" (по умолчанию) или \"array-buffer\" */\n\treadMode?: ReadMode;\n\n\t/** Текст ошибки под полем */\n\terror?: string;\n\t/** Callback сброса ошибки (вызывается при повторном выборе файла) */\n\tonClearError?: () => void;\n\t/** CSS-класс обёртки */\n\tclassName?: string;\n}\n\ntype InputFileDataUrlResult = Extract<ReadFileResult, { mode: \"data-url\" }>;\ntype InputFileArrayBufferResult = Extract<ReadFileResult, { mode: \"array-buffer\" }>;\n\n/**\n * Пропсы компонента InputFile.\n *\n * Компонент предназначен для выбора одного файла.\n * Внешний вид идентичен InputText — label, description, error, кнопка очистки.\n *\n * В onChange передаётся результат чтения файла через readFile:\n * - В режиме \"data-url\" — объект с dataUrl и метаданными\n * - В режиме \"array-buffer\" — объект с ArrayBuffer и метаданными\n */\nexport type InputFileProps =\n\t| (InputFileCommonProps & {\n\t\t\tvalue: ReadFileResult | undefined;\n\t\t\tonChange: (value: InputFileDataUrlResult) => void;\n\t\t\treadMode?: \"data-url\";\n\t })\n\t| (InputFileCommonProps & {\n\t\t\tvalue: ReadFileResult | undefined;\n\t\t\tonChange: (value: InputFileArrayBufferResult) => void;\n\t\t\treadMode: \"array-buffer\";\n\t });\n\n/**\n * InputFile — компонент выбора одного файла.\n *\n * Визуально идентичен InputText: поле с label, description, placeholder,\n * кнопкой очистки (крестик) и блоком ошибки.\n *\n * При клике открывается нативный диалог выбора файла.\n * После выбора файл читается через readFile, результат передаётся в onChange.\n *\n * InputFile позволяет выбрать один файл и передаёт наружу типизированный результат чтения.\n * Если `readMode` не задан или равен `\"data-url\"`, в `onChange` приходит объект с `dataUrl`.\n * Если `readMode` равен `\"array-buffer\"`, в `onChange` приходит объект с `buffer`.\n */\nexport function InputFile(props: InputFileProps) {\n\tconst {\n\t\tvalue,\n\t\tonClear,\n\t\tonReadError,\n\t\taccept,\n\t\tallowedMime,\n\t\tmaxBytes,\n\t\tlabel,\n\t\tdescription,\n\t\tplaceholder = \"Выберите файл\",\n\t\tdisabled,\n\t\tsize,\n\t\terror,\n\t\tonClearError,\n\t\tclassName\n\t} = props;\n\n\tassertValidAllowedMime(allowedMime);\n\tassertValidAccept(accept);\n\n\t/** Реф на скрытый нативный input[type=\"file\"] */\n\tconst inputRef = useRef<HTMLInputElement>(null);\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\t/**\n\t * Обработчик выбора файла из нативного диалога.\n\t * Читает файл через readFile и передаёт результат в onChange.\n\t * При ошибке чтения вызывает onReadError.\n\t */\n\tconst handleChange = useCallback(\n\t\tasync (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst file = e.target.files?.[0];\n\t\t\tif (!file) return;\n\n\t\t\t// Сбрасываем значение input чтобы можно было выбрать тот же файл повторно\n\t\t\te.target.value = \"\";\n\n\t\t\t// Сбрасываем ошибку при повторном выборе\n\t\t\tif (error && onClearError) onClearError();\n\n\t\t\ttry {\n\t\t\t\tif (props.readMode === \"array-buffer\") {\n\t\t\t\t\tconst result = await readFile(file, { allowedMime, maxBytes, mode: \"array-buffer\" });\n\t\t\t\t\tprops.onChange(result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst result = await readFile(file, { allowedMime, maxBytes });\n\t\t\t\tprops.onChange(result);\n\t\t\t} catch (err) {\n\t\t\t\tif (err instanceof ReadFileError && onReadError) {\n\t\t\t\t\tonReadError(err);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[props, allowedMime, maxBytes, onReadError, error, onClearError]\n\t);\n\n\t/** Клик по видимому контролу открывает нативный диалог */\n\tconst handleClick = useCallback(() => {\n\t\tinputRef.current?.click();\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<input\n\t\t\t\tref={inputRef}\n\t\t\t\tid={controlId}\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept={(accept ?? allowedMime)?.join(\",\")}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tclassName={styles.hiddenInput}\n\t\t\t\tonChange={handleChange}\n\t\t\t\ttabIndex={-1}\n\t\t\t/>\n\n\t\t\t<InputControl\n\t\t\t\tendAdornment={onClear ? <InputClearButton onClick={onClear} disabled={disabled} /> : undefined}\n\t\t\t\tendAdornmentWidth={onClear ? \"var(--control-height)\" : undefined}>\n\t\t\t\t{({ controlClassName }) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\ttabIndex={disabled ? -1 : 0}\n\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\tonKeyDown={(event) => handleKeyboardActivation(event, handleClick, { disabled })}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.control, controlClassName, !!error && uiStyles.invalid)}\n\t\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\t\taria-invalid={!!error || undefined}\n\t\t\t\t\t\taria-disabled={disabled}\n\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\taria-describedby={describedBy}>\n\t\t\t\t\t\t{value ? (\n\t\t\t\t\t\t\t<span className={styles.fileName}>{value.meta.name}</span>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span className={uiStyles.uiPlaceholder}>{placeholder}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</InputControl>\n\t\t</InputUI>\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;ACwEA,SAAgB,EAAU,GAAuB;CAChD,IAAM,EACL,UACA,YACA,gBACA,WACA,gBACA,aACA,UACA,gBACA,iBAAc,iBACd,aACA,SACA,UACA,iBACA,iBACG;CAGJ,AADA,EAAuB,CAAW,GAClC,EAAkB,CAAM;CAGxB,IAAM,IAAW,EAAyB,IAAI,GACxC,EAAE,cAAW,YAAS,kBAAe,YAAS,mBAAgB,EAAiB;EACpF,UAAU,KAAiC;EAC3C,gBAAgB,CAAC,CAAC;EAClB,UAAU,CAAC,CAAC;CACb,CAAC,GAOK,IAAe,EACpB,OAAO,MAA2C;EACjD,IAAM,IAAO,EAAE,OAAO,QAAQ;EACzB,OAML;GAHA,EAAE,OAAO,QAAQ,IAGb,KAAS,KAAc,EAAa;GAExC,IAAI;IACH,IAAI,EAAM,aAAa,gBAAgB;KACtC,IAAM,IAAS,MAAM,EAAS,GAAM;MAAE;MAAa;MAAU,MAAM;KAAe,CAAC;KACnF,EAAM,SAAS,CAAM;KACrB;IACD;IAEA,IAAM,IAAS,MAAM,EAAS,GAAM;KAAE;KAAa;IAAS,CAAC;IAC7D,EAAM,SAAS,CAAM;GACtB,SAAS,GAAK;IACb,AAAI,aAAe,KAAiB,KACnC,EAAY,CAAG;GAEjB;EAfwC;CAgBzC,GACA;EAAC;EAAO;EAAa;EAAU;EAAa;EAAO;CAAY,CAChE,GAGM,IAAc,QAAkB;EACrC,EAAS,SAAS,MAAM;CACzB,GAAG,CAAC,CAAC;CAEL,OACC,kBAAC,GAAD;EACQ;EACM;EACH;EACC;EACL;EACC;EACI;EACF;EACM;EACN;YAVV,CAWC,kBAAC,SAAD;GACC,KAAK;GACL,IAAI;GACJ,MAAK;GACL,SAAS,KAAU,EAAA,EAAc,KAAK,GAAG;GAC/B;GACV,WAAW,EAAO;GAClB,UAAU;GACV,UAAU;EACV,CAAA,GAED,kBAAC,GAAD;GACC,cAAc,IAAU,kBAAC,GAAD;IAAkB,SAAS;IAAmB;GAAW,CAAA,IAAI,KAAA;GACrF,mBAAmB,IAAU,0BAA0B,KAAA;cACrD,EAAE,0BACH,kBAAC,OAAD;IACC,MAAK;IACL,UAAU,IAAW,KAAK;IAC1B,SAAS;IACT,YAAY,MAAU,EAAyB,GAAO,GAAa,EAAE,YAAS,CAAC;IAC/E,WAAW,EAAG,EAAS,gBAAgB,EAAO,SAAS,GAAkB,CAAC,CAAC,KAAS,EAAS,OAAO;IACpG,iBAAe,KAAY,KAAA;IAC3B,gBAAc,CAAC,CAAC,KAAS,KAAA;IACzB,iBAAe;IACf,mBAAiB;IACjB,oBAAkB;cACjB,IACA,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAW,EAAM,KAAK;IAAW,CAAA,IAEzD,kBAAC,QAAD;KAAM,WAAW,EAAS;eAAgB;IAAkB,CAAA;GAEzD,CAAA;EAEO,CAAA,CACN;;AAEX"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { t as e } from "./ui.module-BisoTevy.js";
|
|
2
|
+
import { c as t, o as n, r } from "./Input-Ce2HXBUc.js";
|
|
3
|
+
import { XIcon as i } from "lucide-react";
|
|
4
|
+
import { cn as a, handleKeyboardActivation as o } from "@ryuzaki13/react-foundation-lib/utils";
|
|
5
|
+
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
6
|
+
import { useCallback as l, useRef as u } from "react";
|
|
7
|
+
import { ReadFileError as d, assertValidAccept as f, assertValidAllowedMime as p, readFile as m } from "@ryuzaki13/react-foundation-lib/file";
|
|
8
|
+
var h = {
|
|
9
|
+
control: "h9SMea",
|
|
10
|
+
hiddenInput: "rUyh0y",
|
|
11
|
+
fileList: "Q0CY1r",
|
|
12
|
+
fileItem: "AJuYXd",
|
|
13
|
+
fileItemName: "CKKkOD",
|
|
14
|
+
removeButton: "UgxhS1"
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/input-files/InputFilesList.tsx
|
|
18
|
+
function g({ files: e, onChange: t }) {
|
|
19
|
+
let n = l((n) => {
|
|
20
|
+
t(e.filter((e, t) => t !== n));
|
|
21
|
+
}, [e, t]);
|
|
22
|
+
return !e || !e.length ? null : /* @__PURE__ */ s("ul", {
|
|
23
|
+
className: h.fileList,
|
|
24
|
+
children: e.map((e, t) => /* @__PURE__ */ c("li", {
|
|
25
|
+
className: h.fileItem,
|
|
26
|
+
children: [/* @__PURE__ */ s("span", {
|
|
27
|
+
className: h.fileItemName,
|
|
28
|
+
children: e.meta.name
|
|
29
|
+
}), /* @__PURE__ */ s("button", {
|
|
30
|
+
type: "button",
|
|
31
|
+
className: a(h.removeButton, "flexCenter"),
|
|
32
|
+
onClick: () => n(t),
|
|
33
|
+
"aria-label": `Удалить ${e.meta.name}`,
|
|
34
|
+
children: /* @__PURE__ */ s(i, {})
|
|
35
|
+
})]
|
|
36
|
+
}, `${e.meta.name}-${e.meta.lastModified}`))
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region src/input-files/InputFiles.tsx
|
|
41
|
+
function _(i) {
|
|
42
|
+
let { value: _, onReadError: v, accept: y, allowedMime: b, maxBytes: x, maxFiles: S, label: C, description: w, placeholder: T = "Выберите файлы", disabled: E, size: D, error: O, onClearError: k, className: A } = i;
|
|
43
|
+
p(b), f(y);
|
|
44
|
+
let j = u(null), { controlId: M, labelId: N, descriptionId: P, errorId: F, describedBy: I } = t({
|
|
45
|
+
hasLabel: C != null,
|
|
46
|
+
hasDescription: !!w,
|
|
47
|
+
hasError: !!O
|
|
48
|
+
}), L = typeof S == "number" && _.length >= S, R = l(async (e) => {
|
|
49
|
+
let t = e.target.files;
|
|
50
|
+
if (!t || t.length === 0) return;
|
|
51
|
+
let n = Array.from(t);
|
|
52
|
+
e.target.value = "", O && k && k();
|
|
53
|
+
let r = typeof S == "number" ? S - _.length : n.length, a = n.slice(0, r);
|
|
54
|
+
if (i.readMode === "array-buffer") {
|
|
55
|
+
let e = [];
|
|
56
|
+
for (let t of a) try {
|
|
57
|
+
let n = await m(t, {
|
|
58
|
+
allowedMime: b,
|
|
59
|
+
maxBytes: x,
|
|
60
|
+
mode: "array-buffer"
|
|
61
|
+
});
|
|
62
|
+
e.push(n);
|
|
63
|
+
} catch (e) {
|
|
64
|
+
e instanceof d && v && v(e);
|
|
65
|
+
}
|
|
66
|
+
e.length > 0 && i.onChange([...i.value, ...e]);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
let o = [];
|
|
70
|
+
for (let e of a) try {
|
|
71
|
+
let t = await m(e, {
|
|
72
|
+
allowedMime: b,
|
|
73
|
+
maxBytes: x
|
|
74
|
+
});
|
|
75
|
+
o.push(t);
|
|
76
|
+
} catch (e) {
|
|
77
|
+
e instanceof d && v && v(e);
|
|
78
|
+
}
|
|
79
|
+
o.length > 0 && i.onChange([...i.value, ...o]);
|
|
80
|
+
}, [
|
|
81
|
+
i,
|
|
82
|
+
S,
|
|
83
|
+
_.length,
|
|
84
|
+
b,
|
|
85
|
+
x,
|
|
86
|
+
v,
|
|
87
|
+
O,
|
|
88
|
+
k
|
|
89
|
+
]), z = l(() => {
|
|
90
|
+
j.current?.click();
|
|
91
|
+
}, []), B = (i.readMode, /* @__PURE__ */ s(g, {
|
|
92
|
+
files: i.value,
|
|
93
|
+
onChange: i.onChange
|
|
94
|
+
}));
|
|
95
|
+
return /* @__PURE__ */ c(n, {
|
|
96
|
+
label: C,
|
|
97
|
+
description: w,
|
|
98
|
+
disabled: E,
|
|
99
|
+
className: A,
|
|
100
|
+
size: D,
|
|
101
|
+
error: O,
|
|
102
|
+
controlId: M,
|
|
103
|
+
labelId: N,
|
|
104
|
+
descriptionId: P,
|
|
105
|
+
errorId: F,
|
|
106
|
+
children: [
|
|
107
|
+
/* @__PURE__ */ s("input", {
|
|
108
|
+
ref: j,
|
|
109
|
+
id: M,
|
|
110
|
+
type: "file",
|
|
111
|
+
accept: (y ?? b)?.join(","),
|
|
112
|
+
multiple: !0,
|
|
113
|
+
disabled: E || L,
|
|
114
|
+
className: h.hiddenInput,
|
|
115
|
+
onChange: R,
|
|
116
|
+
tabIndex: -1
|
|
117
|
+
}),
|
|
118
|
+
/* @__PURE__ */ s(r, { children: () => /* @__PURE__ */ s("div", {
|
|
119
|
+
role: "button",
|
|
120
|
+
tabIndex: E || L ? -1 : 0,
|
|
121
|
+
onClick: z,
|
|
122
|
+
onKeyDown: (e) => o(e, z, { disabled: E || L }),
|
|
123
|
+
className: a(e.uiInputControl, h.control, !!O && "invalid"),
|
|
124
|
+
"data-disabled": E || void 0,
|
|
125
|
+
"aria-invalid": !!O || void 0,
|
|
126
|
+
"aria-disabled": E || L,
|
|
127
|
+
"aria-labelledby": N,
|
|
128
|
+
"aria-describedby": I,
|
|
129
|
+
children: /* @__PURE__ */ s("span", {
|
|
130
|
+
className: e.uiPlaceholder,
|
|
131
|
+
children: L ? `Максимум ${S} файлов` : T
|
|
132
|
+
})
|
|
133
|
+
}) }),
|
|
134
|
+
B
|
|
135
|
+
]
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
//#endregion
|
|
139
|
+
export { g as n, _ as t };
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=InputFiles-Or2Nvfgk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputFiles-Or2Nvfgk.js","names":[],"sources":["../../src/input-files/InputFiles.module.scss","../../src/input-files/InputFilesList.tsx","../../src/input-files/InputFiles.tsx"],"sourcesContent":["/* Контрол, имитирующий внешний вид InputText */\n.control {\n\theight: var(--control-height);\n\twidth: 100%;\n\tpadding: 0 var(--space-sm);\n\tfont-size: var(--font-size-md);\n\tcursor: pointer;\n\n\tdisplay: flex;\n\talign-items: center;\n}\n\n/* Скрытый нативный input[type=\"file\"] */\n.hiddenInput {\n\tposition: absolute;\n\twidth: 0;\n\theight: 0;\n\topacity: 0;\n\toverflow: hidden;\n\tpointer-events: none;\n}\n\n/* Список выбранных файлов */\n.fileList {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: var(--space-xs);\n\tmargin-top: var(--space-xs);\n}\n\n/* Элемент списка — строка с именем файла и кнопкой удаления */\n.fileItem {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tpadding: var(--space-xs) var(--space-sm);\n\tbackground-color: var(--surface-2);\n\tborder-radius: var(--radius-sm);\n\t// font-size: var(--font-size-sm);\n}\n\n/* Имя файла — обрезка с троеточием */\n.fileItemName {\n\tflex: 1;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: nowrap;\n}\n\n/* Кнопка удаления файла из списка */\n.removeButton {\n\tflex-shrink: 0;\n\twidth: 1.25em;\n\theight: 1.25em;\n\tcolor: var(--content-2);\n\n\t&:hover {\n\t\tcolor: var(--content-accent);\n\t}\n}\n","import { useCallback } from \"react\";\n\nimport { XIcon } from \"lucide-react\";\n\nimport { ReadFileResult } from \"@ryuzaki13/react-foundation-lib/file\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./InputFiles.module.scss\";\n\ninterface InputFilesListProps<TFile extends ReadFileResult> {\n\tfiles: TFile[];\n\tonChange: (files: TFile[]) => void;\n}\n\nexport function InputFilesList<TFile extends ReadFileResult>({ files, onChange }: InputFilesListProps<TFile>) {\n\tconst handleRemove = useCallback(\n\t\t(index: number) => {\n\t\t\tonChange(files.filter((_, i) => i !== index));\n\t\t},\n\t\t[files, onChange]\n\t);\n\n\tif (!files || !files.length) return null;\n\n\treturn (\n\t\t<ul className={styles.fileList}>\n\t\t\t{files.map((item, index) => (\n\t\t\t\t<li key={`${item.meta.name}-${item.meta.lastModified}`} className={styles.fileItem}>\n\t\t\t\t\t<span className={styles.fileItemName}>{item.meta.name}</span>\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={cn(styles.removeButton, \"flexCenter\")}\n\t\t\t\t\t\tonClick={() => handleRemove(index)}\n\t\t\t\t\t\taria-label={`Удалить ${item.meta.name}`}>\n\t\t\t\t\t\t<XIcon />\n\t\t\t\t\t</button>\n\t\t\t\t</li>\n\t\t\t))}\n\t\t</ul>\n\t);\n}\n","import { useCallback, useRef } from \"react\";\n\nimport { assertValidAccept, assertValidAllowedMime, readFile, ReadFileError, ReadFileResult } from \"@ryuzaki13/react-foundation-lib/file\";\nimport { cn, handleKeyboardActivation } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { InputControl, InputUI, useInputFieldIds } from \"../input\";\nimport { UiBaseProps } from \"../types\";\nimport uiStyles from \"../ui.module.scss\";\n\nimport styles from \"./InputFiles.module.scss\";\nimport { InputFilesList } from \"./InputFilesList\";\n\ninterface InputFilesCommonProps extends Omit<UiBaseProps<undefined>, \"value\" | \"onChange\"> {\n\t/** Callback ошибки чтения файла */\n\tonReadError?: (error: ReadFileError) => void;\n\n\t/** HTML-атрибут accept для нативного input[type=\"file\"] (например `[\".pdf\", \".docx\"]`) */\n\taccept?: readonly string[];\n\t/** Список допустимых MIME-типов — передаётся в readFile */\n\tallowedMime?: readonly string[];\n\t/** Максимальный размер одного файла в байтах */\n\tmaxBytes?: number;\n\t/** Максимальное количество файлов. При достижении лимита input блокируется */\n\tmaxFiles?: number;\n\n\t/** Текст ошибки под полем */\n\terror?: string;\n\t/** Callback сброса ошибки */\n\tonClearError?: () => void;\n\t/** CSS-класс обёртки */\n\tclassName?: string;\n}\n\ntype InputFilesDataUrlResult = Extract<ReadFileResult, { mode: \"data-url\" }>;\ntype InputFilesArrayBufferResult = Extract<ReadFileResult, { mode: \"array-buffer\" }>;\n\n/**\n * Пропсы компонента InputFiles.\n *\n * Компонент предназначен для выбора нескольких файлов.\n * Выбранные файлы отображаются списком под полем ввода,\n * каждый с кнопкой удаления (крестик).\n *\n * В onChange передаётся обновлённый массив результатов readFile.\n */\nexport type InputFilesProps =\n\t| (InputFilesCommonProps & {\n\t\t\tvalue: InputFilesDataUrlResult[];\n\t\t\tonChange: (value: InputFilesDataUrlResult[]) => void;\n\t\t\t/** Режим чтения: \"data-url\" по умолчанию */\n\t\t\treadMode?: \"data-url\";\n\t })\n\t| (InputFilesCommonProps & {\n\t\t\tvalue: InputFilesArrayBufferResult[];\n\t\t\tonChange: (value: InputFilesArrayBufferResult[]) => void;\n\t\t\t/** Режим чтения файла как ArrayBuffer */\n\t\t\treadMode: \"array-buffer\";\n\t });\n\n/**\n * InputFiles — компонент выбора нескольких файлов.\n *\n * Поле стилизовано как InputText. При клике открывается нативный\n * диалог с multiple. Каждый выбранный файл читается через readFile\n * и добавляется в массив value.\n *\n * Список выбранных файлов отображается под полем.\n * Каждый файл можно удалить кнопкой «крестик».\n *\n * InputFiles типизирует массив по `readMode`.\n * Если `readMode` не задан или равен `\"data-url\"`, в `value` и `onChange`\n * используется массив объектов с `dataUrl`. Если `readMode` равен\n * `\"array-buffer\"`, используется массив объектов с `buffer`.\n */\nexport function InputFiles(props: InputFilesProps) {\n\tconst {\n\t\tvalue,\n\t\tonReadError,\n\t\taccept,\n\t\tallowedMime,\n\t\tmaxBytes,\n\t\tmaxFiles,\n\t\tlabel,\n\t\tdescription,\n\t\tplaceholder = \"Выберите файлы\",\n\t\tdisabled,\n\t\tsize,\n\t\terror,\n\t\tonClearError,\n\t\tclassName\n\t} = props;\n\n\tassertValidAllowedMime(allowedMime);\n\tassertValidAccept(accept);\n\n\t/** Реф на скрытый нативный input[type=\"file\"] */\n\tconst inputRef = useRef<HTMLInputElement>(null);\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\t/** Достигнут ли лимит файлов */\n\tconst isLimitReached = typeof maxFiles === \"number\" && value.length >= maxFiles;\n\n\t/**\n\t * Обработчик выбора файлов из нативного диалога.\n\t * Каждый файл читается через readFile.\n\t * Успешно прочитанные файлы добавляются к текущему массиву value.\n\t */\n\tconst handleChange = useCallback(\n\t\tasync (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst files = e.target.files;\n\t\t\tif (!files || files.length === 0) return;\n\n\t\t\tconst selectedFiles = Array.from(files);\n\n\t\t\t// Сбрасываем значение input чтобы можно было выбрать те же файлы повторно\n\t\t\te.target.value = \"\";\n\n\t\t\t// Сбрасываем ошибку при выборе новых файлов\n\t\t\tif (error && onClearError) onClearError();\n\n\t\t\t// Определяем сколько файлов можно ещё добавить\n\t\t\tconst remaining = typeof maxFiles === \"number\" ? maxFiles - value.length : selectedFiles.length;\n\t\t\tconst filesToProcess = selectedFiles.slice(0, remaining);\n\n\t\t\tif (props.readMode === \"array-buffer\") {\n\t\t\t\t// Читаем файлы как ArrayBuffer и сохраняем точный тип массива для потребителя.\n\t\t\t\tconst results: InputFilesArrayBufferResult[] = [];\n\n\t\t\t\tfor (const file of filesToProcess) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst result = await readFile(file, { allowedMime, maxBytes, mode: \"array-buffer\" });\n\t\t\t\t\t\tresults.push(result);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tif (err instanceof ReadFileError && onReadError) {\n\t\t\t\t\t\t\tonReadError(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (results.length > 0) {\n\t\t\t\t\tprops.onChange([...props.value, ...results]);\n\t\t\t\t}\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Читаем файлы как Data URL и сохраняем точный тип массива для потребителя.\n\t\t\tconst results: InputFilesDataUrlResult[] = [];\n\t\t\tfor (const file of filesToProcess) {\n\t\t\t\ttry {\n\t\t\t\t\tconst result = await readFile(file, { allowedMime, maxBytes });\n\t\t\t\t\tresults.push(result);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (err instanceof ReadFileError && onReadError) {\n\t\t\t\t\t\tonReadError(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (results.length > 0) {\n\t\t\t\tprops.onChange([...props.value, ...results]);\n\t\t\t}\n\t\t},\n\t\t[props, maxFiles, value.length, allowedMime, maxBytes, onReadError, error, onClearError]\n\t);\n\n\t/** Клик по видимому контролу открывает нативный диалог */\n\tconst handleClick = useCallback(() => {\n\t\tinputRef.current?.click();\n\t}, []);\n\n\tconst filesList =\n\t\tprops.readMode === \"array-buffer\" ? (\n\t\t\t<InputFilesList files={props.value} onChange={props.onChange} />\n\t\t) : (\n\t\t\t<InputFilesList files={props.value} onChange={props.onChange} />\n\t\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<input\n\t\t\t\tref={inputRef}\n\t\t\t\tid={controlId}\n\t\t\t\ttype=\"file\"\n\t\t\t\taccept={(accept ?? allowedMime)?.join(\",\")}\n\t\t\t\tmultiple\n\t\t\t\tdisabled={disabled || isLimitReached}\n\t\t\t\tclassName={styles.hiddenInput}\n\t\t\t\tonChange={handleChange}\n\t\t\t\ttabIndex={-1}\n\t\t\t/>\n\n\t\t\t<InputControl>\n\t\t\t\t{() => (\n\t\t\t\t\t<div\n\t\t\t\t\t\trole=\"button\"\n\t\t\t\t\t\ttabIndex={disabled || isLimitReached ? -1 : 0}\n\t\t\t\t\t\tonClick={handleClick}\n\t\t\t\t\t\tonKeyDown={(event) => handleKeyboardActivation(event, handleClick, { disabled: disabled || isLimitReached })}\n\t\t\t\t\t\tclassName={cn(uiStyles.uiInputControl, styles.control, !!error && \"invalid\")}\n\t\t\t\t\t\tdata-disabled={disabled || undefined}\n\t\t\t\t\t\taria-invalid={!!error || undefined}\n\t\t\t\t\t\taria-disabled={disabled || isLimitReached}\n\t\t\t\t\t\taria-labelledby={labelId}\n\t\t\t\t\t\taria-describedby={describedBy}>\n\t\t\t\t\t\t<span className={uiStyles.uiPlaceholder}>{isLimitReached ? `Максимум ${maxFiles} файлов` : placeholder}</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</InputControl>\n\n\t\t\t{/* Список выбранных файлов */}\n\t\t\t{filesList}\n\t\t</InputUI>\n\t);\n}\n"],"mappings":"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"}
|