@ryuzaki13/react-foundation-ui 3.5.0 → 3.7.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/dist/badge/index.js +1 -1
- package/dist/barcode-scanner/index.js +2 -2
- package/dist/base-table/index.js +1 -1
- package/dist/button/Button.d.ts +4 -2
- package/dist/button/Button.d.ts.map +1 -1
- package/dist/button/index.js +1 -1
- package/dist/chunks/{CalendarView-CwbPJG2Y.js → CalendarView-BCXVjLFz.js} +23 -13
- package/dist/chunks/CalendarView-BCXVjLFz.js.map +1 -0
- package/dist/chunks/OptionContentContainer-CWHlfm5Z.js +14 -0
- package/dist/chunks/OptionContentContainer-CWHlfm5Z.js.map +1 -0
- package/dist/chunks/{TextEditorLexicalClient-BRp8jHId.js → TextEditorLexicalClient-DrSVnvOe.js} +4 -4
- package/dist/chunks/{TextEditorLexicalClient-BRp8jHId.js.map → TextEditorLexicalClient-DrSVnvOe.js.map} +1 -1
- package/dist/chunks/{base-table-BHmboNzl.js → base-table-BBp5WMDM.js} +5 -5
- package/dist/chunks/{base-table-BHmboNzl.js.map → base-table-BBp5WMDM.js.map} +1 -1
- package/dist/chunks/button-DudCl375.js +75 -0
- package/dist/chunks/button-DudCl375.js.map +1 -0
- package/dist/chunks/context-menu-CrSXJxQL.js +621 -0
- package/dist/chunks/context-menu-CrSXJxQL.js.map +1 -0
- package/dist/chunks/{date-input-Crijdmmq.js → date-input-CzCDou4s.js} +10 -7
- package/dist/chunks/{date-input-Crijdmmq.js.map → date-input-CzCDou4s.js.map} +1 -1
- package/dist/chunks/flex-D86M_h-0.js +222 -0
- package/dist/chunks/flex-D86M_h-0.js.map +1 -0
- package/dist/chunks/{floating-arrow-DKUKx2ZQ.js → floating-arrow-B_iSbzUZ.js} +19 -18
- package/dist/chunks/{floating-arrow-DKUKx2ZQ.js.map → floating-arrow-B_iSbzUZ.js.map} +1 -1
- package/dist/chunks/{grid-dI94AAbi.js → grid-CFuzBigM.js} +77 -68
- package/dist/chunks/grid-CFuzBigM.js.map +1 -0
- package/dist/chunks/{misc-CGQOXXCy.js → misc-Cm_LDrUD.js} +120 -97
- package/dist/chunks/misc-Cm_LDrUD.js.map +1 -0
- package/dist/chunks/{modal-febBsMyR.js → modal-Dz5TzkTB.js} +36 -27
- package/dist/chunks/modal-Dz5TzkTB.js.map +1 -0
- package/dist/chunks/{picker-BA6okKnz.js → picker-SJXnHwsj.js} +144 -121
- package/dist/chunks/picker-SJXnHwsj.js.map +1 -0
- package/dist/chunks/popover-BJH-yHvb.js +263 -0
- package/dist/chunks/popover-BJH-yHvb.js.map +1 -0
- package/dist/chunks/{select-DblNSc5H.js → select--oIrv7SC.js} +98 -104
- package/dist/chunks/select--oIrv7SC.js.map +1 -0
- package/dist/chunks/separator-CHpBud1e.js +18 -0
- package/dist/chunks/separator-CHpBud1e.js.map +1 -0
- package/dist/chunks/{sortable-CQmMHAF8.js → sortable-BujAJgFa.js} +5 -3
- package/dist/chunks/{sortable-CQmMHAF8.js.map → sortable-BujAJgFa.js.map} +1 -1
- package/dist/chunks/{table-BnvjPaE1.js → table-BDY9Zw--.js} +2 -2
- package/dist/chunks/{table-BnvjPaE1.js.map → table-BDY9Zw--.js.map} +1 -1
- package/dist/chunks/ui.module-oRwY3Zli.js.map +1 -1
- package/dist/context-menu/components/ContextMenu.d.ts +16 -9
- package/dist/context-menu/components/ContextMenu.d.ts.map +1 -1
- package/dist/context-menu/components/ContextMenuTrigger.d.ts +6 -4
- package/dist/context-menu/components/ContextMenuTrigger.d.ts.map +1 -1
- package/dist/context-menu/components/DropdownMenu.d.ts +12 -7
- package/dist/context-menu/components/DropdownMenu.d.ts.map +1 -1
- package/dist/context-menu/components/DropdownMenuTrigger.d.ts +6 -4
- package/dist/context-menu/components/DropdownMenuTrigger.d.ts.map +1 -1
- package/dist/context-menu/components/MenuContent.d.ts +6 -4
- package/dist/context-menu/components/MenuContent.d.ts.map +1 -1
- package/dist/context-menu/components/MenuContext.d.ts +12 -7
- package/dist/context-menu/components/MenuContext.d.ts.map +1 -1
- package/dist/context-menu/components/MenuGroupLabel.d.ts +1 -1
- package/dist/context-menu/components/MenuGroupLabel.d.ts.map +1 -1
- package/dist/context-menu/components/MenuItem.d.ts.map +1 -1
- package/dist/context-menu/components/MenuRoot.d.ts +5 -5
- package/dist/context-menu/components/MenuRoot.d.ts.map +1 -1
- package/dist/context-menu/components/MenuSeparator.d.ts +1 -2
- package/dist/context-menu/components/MenuSeparator.d.ts.map +1 -1
- package/dist/context-menu/components/RadialMenuContent.d.ts +6 -4
- package/dist/context-menu/components/RadialMenuContent.d.ts.map +1 -1
- package/dist/context-menu/components/RadialMenuItem.d.ts +1 -1
- package/dist/context-menu/components/RadialMenuItem.d.ts.map +1 -1
- package/dist/context-menu/index.js +1 -1
- package/dist/date-input/index.js +2 -2
- package/dist/date-input/ui/CalendarDayView.d.ts +1 -1
- package/dist/date-input/ui/CalendarDayView.d.ts.map +1 -1
- package/dist/date-input/ui/CalendarMonthView.d.ts +1 -1
- package/dist/date-input/ui/CalendarMonthView.d.ts.map +1 -1
- package/dist/date-input/ui/CalendarView.d.ts.map +1 -1
- package/dist/date-input/ui/CalendarYearView.d.ts +1 -1
- package/dist/date-input/ui/CalendarYearView.d.ts.map +1 -1
- package/dist/date-input/ui/DateInput.d.ts.map +1 -1
- package/dist/date-time-input/index.js +10 -7
- package/dist/date-time-input/index.js.map +1 -1
- package/dist/date-time-input/ui/SingleDateTimeInput.d.ts.map +1 -1
- package/dist/detail/Detail.d.ts +6 -1
- package/dist/detail/Detail.d.ts.map +1 -1
- package/dist/detail/index.js +2 -2
- package/dist/detail/index.js.map +1 -1
- package/dist/disclosure/index.js +1 -1
- package/dist/errors/BadRequestPage.d.ts +1 -1
- package/dist/errors/BadRequestPage.d.ts.map +1 -1
- package/dist/errors/ErrorDisplay.d.ts +2 -2
- package/dist/errors/ErrorDisplay.d.ts.map +1 -1
- package/dist/errors/ErrorExplosion.d.ts +1 -2
- package/dist/errors/ErrorExplosion.d.ts.map +1 -1
- package/dist/errors/ForbiddenPage.d.ts +1 -1
- package/dist/errors/ForbiddenPage.d.ts.map +1 -1
- package/dist/errors/NotFoundPage.d.ts +1 -1
- package/dist/errors/NotFoundPage.d.ts.map +1 -1
- package/dist/errors/PageError.d.ts +1 -2
- package/dist/errors/PageError.d.ts.map +1 -1
- package/dist/errors/UnauthorizedPage.d.ts +1 -1
- package/dist/errors/UnauthorizedPage.d.ts.map +1 -1
- package/dist/errors/ViewNotChanged.d.ts +1 -2
- package/dist/errors/ViewNotChanged.d.ts.map +1 -1
- package/dist/errors/index.js +74 -44
- package/dist/errors/index.js.map +1 -1
- package/dist/expandable-action-panel/index.js +2 -2
- package/dist/flex/Flex.d.ts +6 -3
- package/dist/flex/Flex.d.ts.map +1 -1
- package/dist/flex/FlexCenter.d.ts +1 -1
- package/dist/flex/FlexCenter.d.ts.map +1 -1
- package/dist/flex/FlexContainer.d.ts +7 -1
- package/dist/flex/FlexContainer.d.ts.map +1 -1
- package/dist/flex/FlexItem.d.ts +7 -1
- package/dist/flex/FlexItem.d.ts.map +1 -1
- package/dist/flex/FlexSpacer.d.ts +7 -1
- package/dist/flex/FlexSpacer.d.ts.map +1 -1
- package/dist/flex/PredefinedFlex.d.ts +7 -1
- package/dist/flex/PredefinedFlex.d.ts.map +1 -1
- package/dist/flex/index.js +1 -1
- package/dist/floating-arrow/FloatingArrow.d.ts +4 -1
- package/dist/floating-arrow/FloatingArrow.d.ts.map +1 -1
- package/dist/floating-arrow/index.js +1 -1
- package/dist/grid/Grid.d.ts +4 -2
- package/dist/grid/Grid.d.ts.map +1 -1
- package/dist/grid/GridContainer.d.ts +7 -1
- package/dist/grid/GridContainer.d.ts.map +1 -1
- package/dist/grid/GridItem.d.ts +7 -1
- package/dist/grid/GridItem.d.ts.map +1 -1
- package/dist/grid/index.js +1 -1
- package/dist/image/index.js +3 -3
- package/dist/layout-picker/index.js +11 -13
- package/dist/layout-picker/index.js.map +1 -1
- package/dist/layout-picker/ui/LayoutPicker.d.ts.map +1 -1
- package/dist/list/List.d.ts +9 -9
- package/dist/list/List.d.ts.map +1 -1
- package/dist/list/index.js +23 -16
- package/dist/list/index.js.map +1 -1
- package/dist/listbox/Listbox.d.ts.map +1 -1
- package/dist/listbox/index.js +10 -16
- package/dist/listbox/index.js.map +1 -1
- package/dist/misc/CopyTextWrapper.d.ts +1 -1
- package/dist/misc/CopyTextWrapper.d.ts.map +1 -1
- package/dist/misc/OneStepScroller.d.ts +1 -1
- package/dist/misc/OneStepScroller.d.ts.map +1 -1
- package/dist/misc/Scrollable.d.ts +9 -7
- package/dist/misc/Scrollable.d.ts.map +1 -1
- package/dist/misc/SkeletonLine.d.ts +1 -1
- package/dist/misc/SkeletonLine.d.ts.map +1 -1
- package/dist/misc/StateIcon.d.ts +6 -7
- package/dist/misc/StateIcon.d.ts.map +1 -1
- package/dist/misc/index.d.ts +1 -0
- package/dist/misc/index.d.ts.map +1 -1
- package/dist/misc/index.js +1 -1
- package/dist/modal/Modal.d.ts +14 -5
- package/dist/modal/Modal.d.ts.map +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +247 -232
- package/dist/multi-select/index.js.map +1 -1
- package/dist/multi-select/ui/MultiSelect.d.ts +7 -2
- package/dist/multi-select/ui/MultiSelect.d.ts.map +1 -1
- package/dist/multi-select/ui/ODataMultiSelect.d.ts +1 -2
- package/dist/multi-select/ui/ODataMultiSelect.d.ts.map +1 -1
- package/dist/notifications/index.d.ts +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +45 -31
- package/dist/notifications/index.js.map +1 -1
- package/dist/notifications/model/NotificationsProvider.d.ts +2 -18
- package/dist/notifications/model/NotificationsProvider.d.ts.map +1 -1
- package/dist/notifications/model/index.d.ts +4 -0
- package/dist/notifications/model/index.d.ts.map +1 -1
- package/dist/notifications/model/notificationsContext.d.ts +4 -0
- package/dist/notifications/model/notificationsContext.d.ts.map +1 -0
- package/dist/notifications/model/useNotificationById.d.ts +4 -0
- package/dist/notifications/model/useNotificationById.d.ts.map +1 -0
- package/dist/notifications/model/useNotificationHistory.d.ts +6 -0
- package/dist/notifications/model/useNotificationHistory.d.ts.map +1 -0
- package/dist/notifications/model/useNotifications.d.ts +3 -0
- package/dist/notifications/model/useNotifications.d.ts.map +1 -0
- package/dist/notifications/model/useNotificationsStore.d.ts +3 -0
- package/dist/notifications/model/useNotificationsStore.d.ts.map +1 -0
- package/dist/notifications/model/useNotify.d.ts +17 -0
- package/dist/notifications/model/useNotify.d.ts.map +1 -0
- package/dist/notifications/ui/NotificationsHost.d.ts +2 -1
- package/dist/notifications/ui/NotificationsHost.d.ts.map +1 -1
- package/dist/option/Option.d.ts +3 -3
- package/dist/option/OptionContentContainer.d.ts +7 -0
- package/dist/option/OptionContentContainer.d.ts.map +1 -0
- package/dist/option/index.js.map +1 -1
- package/dist/picker/PickerOptions.d.ts +3 -1
- package/dist/picker/PickerOptions.d.ts.map +1 -1
- package/dist/picker/PickerPopup.d.ts +1 -1
- package/dist/picker/PickerPopup.d.ts.map +1 -1
- package/dist/picker/PickerTriggerActions.d.ts +7 -2
- package/dist/picker/PickerTriggerActions.d.ts.map +1 -1
- package/dist/picker/PickerTriggerInput.d.ts +7 -2
- package/dist/picker/PickerTriggerInput.d.ts.map +1 -1
- package/dist/picker/index.js +1 -1
- package/dist/polymorphic/PolymorphicComponent.d.ts +1 -1
- package/dist/polymorphic/PolymorphicComponent.d.ts.map +1 -1
- package/dist/polymorphic/index.js +3 -1
- package/dist/polymorphic/index.js.map +1 -1
- package/dist/popover/FloatingPopover.d.ts +1 -1
- package/dist/popover/FloatingPopover.d.ts.map +1 -1
- package/dist/popover/FloatingTooltip.d.ts +2 -2
- package/dist/popover/FloatingTooltip.d.ts.map +1 -1
- package/dist/popover/components/Popover.d.ts +11 -10
- package/dist/popover/components/Popover.d.ts.map +1 -1
- package/dist/popover/components/PopoverContent.d.ts +6 -4
- package/dist/popover/components/PopoverContent.d.ts.map +1 -1
- package/dist/popover/components/PopoverContext.d.ts +2 -1
- package/dist/popover/components/PopoverContext.d.ts.map +1 -1
- package/dist/popover/components/PopoverTrigger.d.ts +1 -1
- package/dist/popover/components/PopoverTrigger.d.ts.map +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/preset-range-date-input/index.js +2 -2
- package/dist/preset-select/index.js +1 -1
- package/dist/radio-button/RadioButton.d.ts +1 -1
- package/dist/radio-button/RadioButton.d.ts.map +1 -1
- package/dist/radio-button/index.js +5 -2
- package/dist/radio-button/index.js.map +1 -1
- package/dist/select/ODataSelect.d.ts +1 -2
- package/dist/select/ODataSelect.d.ts.map +1 -1
- package/dist/select/Select.d.ts.map +1 -1
- package/dist/select/index.js +1 -1
- package/dist/separator/Separator.d.ts +1 -1
- package/dist/separator/Separator.d.ts.map +1 -1
- package/dist/separator/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/slider/Slider.d.ts.map +1 -1
- package/dist/slider/SliderInput.d.ts.map +1 -1
- package/dist/slider/SliderPopoverToggle.d.ts +11 -0
- package/dist/slider/SliderPopoverToggle.d.ts.map +1 -0
- package/dist/slider/index.js +299 -278
- package/dist/slider/index.js.map +1 -1
- package/dist/sortable/Sortable.d.ts.map +1 -1
- package/dist/sortable/SortableDragHandle.d.ts +1 -1
- package/dist/sortable/SortableDragHandle.d.ts.map +1 -1
- package/dist/sortable/index.js +1 -1
- package/dist/state-select/index.js +1 -1
- package/dist/styles.css +1 -1
- package/dist/table/index.js +1 -1
- package/dist/table-editor/index.js +1 -1
- package/dist/table-sorting/index.js +1 -1
- package/dist/tabs/index.js +27 -28
- package/dist/tabs/index.js.map +1 -1
- package/dist/tabs/ui/TabsBox.d.ts +1 -1
- package/dist/tabs/ui/TabsBox.d.ts.map +1 -1
- package/dist/tabs/ui/TabsLayout.d.ts +11 -7
- package/dist/tabs/ui/TabsLayout.d.ts.map +1 -1
- package/dist/tabs/ui/TabsPanel.d.ts +3 -3
- package/dist/tabs/ui/TabsPanel.d.ts.map +1 -1
- package/dist/tabs/ui/TabsTabList.d.ts +2 -2
- package/dist/tabs/ui/TabsTabList.d.ts.map +1 -1
- package/dist/text/HighlightText.d.ts +2 -2
- package/dist/text/HighlightText.d.ts.map +1 -1
- package/dist/text/index.js +7 -2
- package/dist/text/index.js.map +1 -1
- package/dist/text-editor/index.js +2 -2
- package/dist/toolbar/Toolbar.d.ts +8 -2
- package/dist/toolbar/Toolbar.d.ts.map +1 -1
- package/dist/toolbar/index.js +8 -4
- package/dist/toolbar/index.js.map +1 -1
- package/dist/tree-select/TreeNodeContent.d.ts +3 -1
- package/dist/tree-select/TreeNodeContent.d.ts.map +1 -1
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
- package/dist/tree-select/index.js +409 -332
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-table/index.js +1 -1
- package/package.json +3 -3
- package/storybook-static/assets/{Badge-BKRvorSi.js → Badge-CV3f-YLa.js} +1 -1
- package/storybook-static/assets/{Badge.stories-19yFfupy.js → Badge.stories-BUPuimKi.js} +1 -1
- package/storybook-static/assets/{BadgeList-DMkfxply.js → BadgeList-CDDAItI6.js} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories-DdnHxu5x.js → BarcodeScannerDialog.stories-teB8ep3A.js} +1 -1
- package/storybook-static/assets/{Button-Di-0Ionw.js → Button-BW8cBp03.js} +1 -1
- package/storybook-static/assets/{Button-CoOZeR_z.js → Button-CV4tslOZ.js} +2 -2
- package/storybook-static/assets/{Button.stories-Bd1To5BN.js → Button.stories-DKlzPZqU.js} +1 -1
- package/storybook-static/assets/CalendarView-CX2J7c6F.js +1 -0
- package/storybook-static/assets/{CheckBox-DfRTTXg1.js → CheckBox-BTr4z78V.js} +1 -1
- package/storybook-static/assets/{CheckBox-DSmGYEML.js → CheckBox-BWZ_P_3Q.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-DaldWgEI.js → CheckBox.stories-BUaJvDIu.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-DIhia6KS.js → Color-6AOWCN3U-DmrUSa8T.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BGMQHT9V.js → ContextMenu-DsJnOtZ9.js} +6 -2
- package/storybook-static/assets/ContextMenu-wBO-KcfV.js +33 -0
- package/storybook-static/assets/ContextMenu.stories-CNOrf21k.js +37 -0
- package/storybook-static/assets/{DateInput-DUl5Bb0j.js → DateInput-DbZNB8s8.js} +8 -1
- package/storybook-static/assets/{DateInput-MgdMtvtr.js → DateInput-xQJfyfF-.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-B6Ol0Ak3.js → DateInput.stories-DAku4mZt.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CPj0pSGc.js → DateRangePresetSelect-BPlpCA6c.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-C4MVqjXa.js → DateRangePresetSelect-DHoyZyQT.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-tPaMURtH.js → DateRangePresetSelect.stories-DRvogj0c.js} +1 -1
- package/storybook-static/assets/{Detail-DnHTVRb5.js → Detail-mXagpId3.js} +1 -1
- package/storybook-static/assets/Detail.stories-D7Iwy0-s.js +56 -0
- package/storybook-static/assets/{Dialog-COpvqcXi.js → Dialog-CMqH_KAI.js} +1 -1
- package/storybook-static/assets/{Dialog-LMnrvBpx.js → Dialog-qRvPPGeh.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BE2I5ny2.js → Dialog.stories-J_OyVz3O.js} +1 -1
- package/storybook-static/assets/{Disclosure-BZ3jd5nu.js → Disclosure-TdbPZNSu.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-cMcF8a8I.js → Disclosure.stories-DRoDp_Fu.js} +1 -1
- package/storybook-static/assets/DisclosureGroup-CeBLtSCA.js +2 -0
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-CurHdzu8.js → DocsRenderer-JROSPFPF-BdyHYSwz.js} +1 -1
- package/storybook-static/assets/{DropZone-DGMAbY1z.js → DropZone-BzRKfOtd.js} +1 -1
- package/storybook-static/assets/{DropZone-VEmgdfs6.js → DropZone-CODtJSpF.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-B8N17-bV.js → DropZone.stories-BzNj9PbZ.js} +1 -1
- package/storybook-static/assets/DropdownMenu-Db-sh5Gd.js +21 -0
- package/storybook-static/assets/{ExpandableActionPanel-C7CFQZLD.js → ExpandableActionPanel-fOfO1fQV.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-CnBr0s9R.js → ExpandableActionPanel.stories-C6Si_Nqk.js} +1 -1
- package/storybook-static/assets/{Flex-RpqsC-gQ.js → Flex-B9KnOucm.js} +1 -1
- package/storybook-static/assets/Flex.stories-ApvEyW4R.js +300 -0
- package/storybook-static/assets/FlexContainer-B1y3dds2.js +1 -0
- package/storybook-static/assets/{FlexItem-pu3E11Sf.js → FlexItem-pEuFUX72.js} +2 -2
- package/storybook-static/assets/FloatingPopover-CjNAEFQy.js +1 -0
- package/storybook-static/assets/FormattedTableCell-DZM2eYz5.js +15 -0
- package/storybook-static/assets/{Grid-CzO0Ae1r.js → Grid-CI6OKKu8.js} +2 -2
- package/storybook-static/assets/{Grid-BRnqEtg1.js → Grid-NnstE-Tl.js} +1 -1
- package/storybook-static/assets/{Grid.stories-DXY7Cvfu.js → Grid.stories-tklnzZVg.js} +4 -4
- package/storybook-static/assets/{GridContainer-fKYgDsLl.js → GridContainer-wl6R6ToY.js} +2 -2
- package/storybook-static/assets/{ImageCropper.stories-ZnvbFN71.js → ImageCropper.stories-DFN1M8eV.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-DUOhCfac.js → ImageRenderer-CsIh2Gps.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-Dj6NQm2k.js → ImageRenderer.stories-CFg_ibLF.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-QTzOsByD.js → ImageView.stories-HHd7jrjM.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-CpnUEgZW.js → ImageViewer.stories-DgWkr466.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-B1PicLUw.js → ImageViewerRuntime-6z6zV9jF.js} +1 -1
- package/storybook-static/assets/{Input-DnFc_Pwx.js → Input-B7_Qlowr.js} +1 -1
- package/storybook-static/assets/{Input-B8eGQXlp.js → Input-Bvw9Sw0g.js} +1 -1
- package/storybook-static/assets/{Input.stories-C6CbYvZP.js → Input.stories-Dc2sDy4p.js} +1 -1
- package/storybook-static/assets/{InputDateTime-DoMduRde.js → InputDateTime-DUkFFY2j.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories--LHpvJjY.js → InputDateTime.stories-WZXWHrjO.js} +1 -1
- package/storybook-static/assets/{InputFile-CunQ8F4s.js → InputFile-CR2m2VQy.js} +1 -1
- package/storybook-static/assets/{InputFile-DFv3WAWa.js → InputFile-DJE39TQT.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-B0WZhic1.js → InputFile.stories-BxE2jR8X.js} +1 -1
- package/storybook-static/assets/{InputFiles-DyiPQ_tH.js → InputFiles-CMkLLJOH.js} +1 -1
- package/storybook-static/assets/{InputFiles-CKDPmjWY.js → InputFiles-CTD2obOb.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-BbP_bEnL.js → InputFiles.stories-CeLIDMcH.js} +1 -1
- package/storybook-static/assets/{InputFilesList-BAIGwV7V.js → InputFilesList-tUr9ob4W.js} +1 -1
- package/storybook-static/assets/{InputImage-2G1pRNbw.js → InputImage-C0cIhVXy.js} +1 -1
- package/storybook-static/assets/{InputImage-ZvEB_TIT.js → InputImage-CoAYtfEV.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-BiShLRcw.js → InputImage.stories-DpXv7PID.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-CT99QfHX.js → InteractiveComponents-Dmyiy24S.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-BPTICQZz.js → InteractiveComponents.stories-B77oJ-sY.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BDpc8LBa.js → LayoutPicker-CJcSQqwn.js} +2 -2
- package/storybook-static/assets/{LayoutPicker-Cg_AM-pj.js → LayoutPicker-MTeK4NeO.js} +2 -1
- package/storybook-static/assets/{LayoutPicker.stories-Ca9WZdPW.js → LayoutPicker.stories-CcY356LI.js} +1 -1
- package/storybook-static/assets/Listbox-BGYVb_Ct.js +1 -0
- package/storybook-static/assets/{Listbox-LbbFtte9.js → Listbox-Cv9AQzQU.js} +2 -1
- package/storybook-static/assets/{Listbox.stories-xDpbFNZk.js → Listbox.stories-C9_cOdMY.js} +1 -1
- package/storybook-static/assets/Modal-CHcZjpHv.js +1 -0
- package/storybook-static/assets/{Modal-CXd2j0up.js → Modal-CnMZc0y1.js} +1 -1
- package/storybook-static/assets/{Modal.stories-cNLvFjmT.js → Modal.stories-DxITHZDl.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-ClXvSB9a.js → ModalManagerProvider-vGXTuniv.js} +1 -1
- package/storybook-static/assets/MultiSelect-DDC0Nrrq.js +2 -0
- package/storybook-static/assets/{MultiSelect-Na2VdNy3.js → MultiSelect-DqdwstLi.js} +4 -1
- package/storybook-static/assets/MultiSelect-SJBp1Ymv.css +1 -0
- package/storybook-static/assets/{MultiSelect.stories-4nFshdtz.js → MultiSelect.stories-BPsGXWR2.js} +1 -1
- package/storybook-static/assets/NoData-BlGdaWe6.js +1 -0
- package/storybook-static/assets/NotificationsHost-gXnNQDp7.js +75 -0
- package/storybook-static/assets/NotificationsHost.stories-BdkJz6WZ.js +30 -0
- package/storybook-static/assets/{ODataMultiSelect-Cc09uTB8.js → ODataMultiSelect-C_Qs3Nl4.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-CzGzREa9.js → ODataMultiSelect.stories-DfmeONnP.js} +2 -2
- package/storybook-static/assets/{ODataSelect-DqoRg5pz.js → ODataSelect-C5fwwi_V.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-BCcxERn3.js → ODataSelect.stories-BCDjW9Of.js} +2 -2
- package/storybook-static/assets/{ODataTreeMultiSelect-qZEcSE5O.js → ODataTreeMultiSelect-bU2QW5pt.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-Bfees7Qr.js → ODataTreeMultiSelect.stories-FRT1vULJ.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-IOVS6uQc.js → ODataTreeSelect-DmNcnlbz.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CO7DClzd.js → ODataTreeSelect.stories-B9Mq-Iq-.js} +1 -1
- package/storybook-static/assets/OneStepScroller-X_sOKCiI.js +5 -0
- package/storybook-static/assets/Option-CSut1BkS.js +10 -0
- package/storybook-static/assets/OptionButton-B7wOhE1V.js +1 -0
- package/storybook-static/assets/OptionContent-DyxUQFu3.js +1 -0
- package/storybook-static/assets/OptionContentContainer-DnzI9J61.js +2 -0
- package/storybook-static/assets/{PeriodSelect-D-jXJf5C.js → PeriodSelect-C1Rh75We.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BAVDztkI.js → PeriodSelect-SjGK6Esp.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-CscsENT9.js → PeriodSelect.stories-Bch3cN5l.js} +1 -1
- package/storybook-static/assets/{PickerField-CRtltoce.js → PickerField-B8_SoyYo.js} +1 -1
- package/storybook-static/assets/PickerTriggerActions-DP0ZKD9L.js +2 -0
- package/storybook-static/assets/PolymorphicComponent-NBvIz9JD.js +1 -0
- package/storybook-static/assets/Popover-DF-J3Kwx.js +55 -0
- package/storybook-static/assets/Popover-NBKcB7nc.js +46 -0
- package/storybook-static/assets/Popover.stories-BGcAWbjW.js +63 -0
- package/storybook-static/assets/{PresetRangeDateInput-VZnM8RNV.js → PresetRangeDateInput-BAbrOHdm.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CVPMYlEV.js → PresetRangeDateInput-DajjeSUc.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-DdBWlSV-.js → PresetRangeDateInput.stories-Bf7YKKIQ.js} +1 -1
- package/storybook-static/assets/{PresetSelect-C7YYBjlL.js → PresetSelect-CfmPZsZF.js} +1 -1
- package/storybook-static/assets/{README-CeNQeTK-.js → README--xvSptx6.js} +1 -1
- package/storybook-static/assets/{README-DWzfTSuq.js → README-02MdhoYj.js} +1 -1
- package/storybook-static/assets/{README-w9FMhq0X.js → README-23NGVX-l.js} +1 -1
- package/storybook-static/assets/{README-CTF9mVZL.js → README-3bVCOGDc.js} +1 -1
- package/storybook-static/assets/{README-DkBG5Azm.js → README-5JPwN5I3.js} +1 -1
- package/storybook-static/assets/{README-DC0vNdOD.js → README-B35CL6W4.js} +1 -1
- package/storybook-static/assets/{README-Wli4AXG5.js → README-B4-JBF7Z.js} +1 -1
- package/storybook-static/assets/{README-BZlnzGAh.js → README-B5cX2glk.js} +1 -1
- package/storybook-static/assets/{README-DoxVtmRh.js → README-BGZN87_w.js} +1 -1
- package/storybook-static/assets/{README-Bvo0Qxde.js → README-BNTTx0rf.js} +1 -1
- package/storybook-static/assets/{README-Dmu5lsNT.js → README-BRvVmpDS.js} +1 -1
- package/storybook-static/assets/{README-UcyyK9jn.js → README-BUhZmzyX.js} +1 -1
- package/storybook-static/assets/{README-C-IUw1gX.js → README-Bb5AJH8-.js} +1 -1
- package/storybook-static/assets/{README-jvtwVY_n.js → README-Bew3UK8F.js} +1 -1
- package/storybook-static/assets/{README-DOBIWrus.js → README-Bk_A3mYt.js} +1 -1
- package/storybook-static/assets/{README-C_lKreF9.js → README-BlTlxb7s.js} +1 -1
- package/storybook-static/assets/{README-DyWhmOFY.js → README-BqHDKN3N.js} +1 -1
- package/storybook-static/assets/{README-B0FbTpix.js → README-BwhJA_em.js} +1 -1
- package/storybook-static/assets/{README-DMwF_O1R.js → README-BzhO6nn7.js} +1 -1
- package/storybook-static/assets/{README-8L1vpZcz.js → README-C-fD13Eo.js} +1 -1
- package/storybook-static/assets/{README-BL8ZNGNi.js → README-C2dMbb8z.js} +1 -1
- package/storybook-static/assets/{README-jQcGKqqm.js → README-C79arOAr.js} +1 -1
- package/storybook-static/assets/{README-C7N5_6-c.js → README-C7gQVhLI.js} +1 -1
- package/storybook-static/assets/{README-DADnaXLy.js → README-CBYHjEjb.js} +1 -1
- package/storybook-static/assets/{README-oKLTQYfV.js → README-CCqwPYoe.js} +1 -1
- package/storybook-static/assets/{README-DIWsYBR7.js → README-CJKEEjnI.js} +1 -1
- package/storybook-static/assets/{README-DrTR5pSr.js → README-CKDAq2L0.js} +1 -1
- package/storybook-static/assets/{README-BdsFByUw.js → README-CXNyh6Hq.js} +1 -1
- package/storybook-static/assets/{README-DlfWWC7n.js → README-Ce9KyfEM.js} +1 -1
- package/storybook-static/assets/{README-BGBxEe4u.js → README-CijcMn5M.js} +1 -1
- package/storybook-static/assets/{README-B0Nb0jf2.js → README-Cj8rKrp5.js} +1 -1
- package/storybook-static/assets/{README-DgXAMdBY.js → README-CkYzrLaV.js} +1 -1
- package/storybook-static/assets/{README-Bk1oSDWQ.js → README-CvqMprlS.js} +1 -1
- package/storybook-static/assets/{README-BGmO6U9j.js → README-CxURTiLk.js} +1 -1
- package/storybook-static/assets/{README-6XPUoxFl.js → README-DBsUCpqI.js} +1 -1
- package/storybook-static/assets/{README-CvaizZr1.js → README-DD2eTjZe.js} +1 -1
- package/storybook-static/assets/{README-D2AT2-yD.js → README-DJ53d7sm.js} +6 -3
- package/storybook-static/assets/{README-HWuoKwKL.js → README-DLlWedYv.js} +1 -1
- package/storybook-static/assets/{README-2NTkucdH.js → README-DRxLVin-.js} +1 -1
- package/storybook-static/assets/{README-b3wA6wFr.js → README-DTE8nUeJ.js} +1 -1
- package/storybook-static/assets/{README-Dm7CwuVP.js → README-DUh3QGlI.js} +14 -8
- package/storybook-static/assets/{README-ZxRwqfIH.js → README-DfrkaWMN.js} +1 -1
- package/storybook-static/assets/{README-DOi6rx7n.js → README-DlJZHUr9.js} +1 -1
- package/storybook-static/assets/{README-g1VWHzAJ.js → README-Dm0fH6Ac.js} +1 -1
- package/storybook-static/assets/{README-GChrAHFQ.js → README-DvgeFwUN.js} +1 -1
- package/storybook-static/assets/{README-CqiNQGIJ.js → README-DzfnNMhi.js} +1 -1
- package/storybook-static/assets/{README-Dr8TxFTe.js → README-EjFzMh6K.js} +1 -1
- package/storybook-static/assets/{README-BD-WSEvQ.js → README-Yp7ckVfi.js} +1 -1
- package/storybook-static/assets/{README-Brn9Tjjc.js → README-ZzFd6eCk.js} +1 -1
- package/storybook-static/assets/{README-na5mQX4V.js → README-cBsDQvLg.js} +1 -1
- package/storybook-static/assets/{README-CB5BpIBF.js → README-hq5hkADm.js} +1 -1
- package/storybook-static/assets/{README-_KzyG4dS.js → README-kYUqgwYs.js} +1 -1
- package/storybook-static/assets/{README-CTwfFqJG.js → README-l9uKtPiZ.js} +1 -1
- package/storybook-static/assets/{RadioButton-Dgkz1EWU.js → RadioButton-BDpUjCQB.js} +1 -1
- package/storybook-static/assets/RadioButton-BWpGjwT9.js +1 -0
- package/storybook-static/assets/{RadioButton.stories-DO14jTfm.js → RadioButton.stories-DrOP5Alc.js} +1 -1
- package/storybook-static/assets/{RadioGroup-Db0AhiKo.js → RadioGroup-BljW3G4c.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BSiqjVai.js → RadioGroup-wzlE1seI.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-C0D6n83q.js → RadioGroup.stories-6h1qt8DI.js} +1 -1
- package/storybook-static/assets/Scrollable-C7dBSd5R.js +1 -0
- package/storybook-static/assets/Scrollable-Dhpelsb3.js +18 -0
- package/storybook-static/assets/Scrollable.stories-Cj1mRfdX.js +1 -0
- package/storybook-static/assets/Select-BI1R-0nK.js +12 -0
- package/storybook-static/assets/{Select-D8X-SkP2.js → Select-n3InYkr7.js} +3 -1
- package/storybook-static/assets/{Select.stories-8_zvonmc.js → Select.stories-pppfr6nn.js} +1 -1
- package/storybook-static/assets/Separator-Bx2BKztN.js +1 -0
- package/storybook-static/assets/Separator-GtZBq7gL.js +14 -0
- package/storybook-static/assets/Separator.stories-DxY_qbJt.js +14 -0
- package/storybook-static/assets/{SerializableSelect-ii6T140l.js → SerializableSelect-DogkO2Bz.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-Ba3ABMGt.js → SerializableSelect.stories-C3OU-Qlh.js} +1 -1
- package/storybook-static/assets/{ShimmerText-C6vkZwUV.js → ShimmerText-XI1rbKrT.js} +1 -1
- package/storybook-static/assets/{ShimmerText.stories-CVpSxXHJ.js → ShimmerText.stories-lvn1uLl_.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DpETPR89.js → SingleDateTimeInput-DK8vuf-o.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-96-mrjq8.js → SingleDateTimeInput-HNBKELgZ.js} +8 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-JhviurJO.js → SingleDateTimeInput.stories-DrV6WMT9.js} +1 -1
- package/storybook-static/assets/{Slider-B27TdvRV.js → Slider-D4ec91gY.js} +8 -1
- package/storybook-static/assets/Slider-bg4iXFEy.js +1 -0
- package/storybook-static/assets/{Slider.stories-d1YeKe5r.js → Slider.stories-DhJUqLP3.js} +1 -1
- package/storybook-static/assets/{SliderInput-D2d23mEI.js → SliderInput-CScKm1eT.js} +8 -1
- package/storybook-static/assets/SliderInput-o9cFbZ18.js +3 -0
- package/storybook-static/assets/{SliderInput.stories-CwqT79oE.js → SliderInput.stories-CDNoleib.js} +1 -1
- package/storybook-static/assets/{Sortable-DiJuiI6V.js → Sortable-DHqDBQQd.js} +4 -2
- package/storybook-static/assets/Sortable.stories-CEhPetnR.js +44 -0
- package/storybook-static/assets/{Splitter-QwdfWNbm.js → Splitter-BU9vPggP.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-C2iDPz8c.js → Splitter.stories-BxKoQqiy.js} +1 -1
- package/storybook-static/assets/{StateSelect-D1ZDM6bC.js → StateSelect-Cp-vkDd6.js} +1 -1
- package/storybook-static/assets/{StateSelect-Bw9H1Cus.js → StateSelect-ez77Inqm.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-DEFvQ15O.js → StateSelect.stories-CpZV5ol8.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-D6Pbdz37.js → StatusIndicator-BM7o68m0.js} +1 -1
- package/storybook-static/assets/{StatusIndicator.stories-COgpy5cK.js → StatusIndicator.stories-DmP9Drw5.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-BFwMh0Yd.js → StringToggle.stories-TO-VXZOK.js} +1 -1
- package/storybook-static/assets/{Switch-DyDk152g.js → Switch-BnYvYOX5.js} +1 -1
- package/storybook-static/assets/{Switch-Bmj2AItH.js → Switch-CfDHmCm8.js} +1 -1
- package/storybook-static/assets/{Switch.stories-C10NxPL4.js → Switch.stories-CX92UhBc.js} +1 -1
- package/storybook-static/assets/{Table-YcEwF4aO.js → Table-DkrNiq_n.js} +1 -1
- package/storybook-static/assets/{Table.stories-DgxFS9Sa.js → Table.stories-DsGm0-i7.js} +1 -1
- package/storybook-static/assets/{TableEditor.stories-CSMoxO4O.js → TableEditor.stories-sxgtoDe3.js} +1 -1
- package/storybook-static/assets/{Tabs-DOsPN2X1.js → Tabs-wMDcBXIR.js} +2 -3
- package/storybook-static/assets/Tabs.stories-BVXrXbOp.js +57 -0
- package/storybook-static/assets/{TabsBox-Ovukgo9G.js → TabsBox-5NiiCrDc.js} +1 -1
- package/storybook-static/assets/{TabsBox-B3REnb6D.css → TabsBox-DuBKU62M.css} +1 -1
- package/storybook-static/assets/{TagInput-BQBOGr9G.js → TagInput-BATz4lHU.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-DAAyJlgm.js → TagInput.stories-D9IJIG_P.js} +1 -1
- package/storybook-static/assets/{Text-fdwuak_J.js → Text-Bswu5PVP.js} +1 -1
- package/storybook-static/assets/{Textarea-A22Efyk-.js → Textarea-AqkGgrCZ.js} +1 -1
- package/storybook-static/assets/{Textarea-D80ZPpEy.js → Textarea-CrkCHaE2.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-DfaOYMoN.js → Textarea.stories-dtpJFQAX.js} +1 -1
- package/storybook-static/assets/{TimePanel-Bd5T_SfL.js → TimePanel-DGcJeL-M.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-D6TIpKp4.js → TimePanel.stories-DxPuKGPZ.js} +1 -1
- package/storybook-static/assets/{Toggle-DUyCRH0o.js → Toggle-DLZn_nZe.js} +1 -1
- package/storybook-static/assets/{Toggle-BvHMq6f_.js → Toggle-Dd08B6s5.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-ZPgC-EWw.js → Toggle.stories-4h-5zxJC.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DTmB9s8s.js → TreeMultiSelect-4XUsw-my.js} +2 -1
- package/storybook-static/assets/{TreeMultiSelect-DTMybWfP.js → TreeMultiSelect-CF9O5XGt.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-1_HB74Gf.js → TreeMultiSelect.stories-m5UlkTdr.js} +1 -1
- package/storybook-static/assets/TreePickerBase-8R1GFz9r.js +76 -0
- package/storybook-static/assets/TreePickerBase-ClWTQVKW.css +1 -0
- package/storybook-static/assets/{TreeSelect-CTN6cRRr.js → TreeSelect-BPc7kRdh.js} +1 -1
- package/storybook-static/assets/{TreeSelect-UsZGYhUO.js → TreeSelect-CZme7Tu-.js} +2 -1
- package/storybook-static/assets/{TreeSelect.stories-B01pZcR9.js → TreeSelect.stories-DRVi0xZP.js} +1 -1
- package/storybook-static/assets/{TreeTable-dr3jK3Ih.js → TreeTable-CTBSrT9l.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-B1DPasDc.js → TreeTable.stories-oILl7PkB.js} +1 -1
- package/storybook-static/assets/{blocks-Cw5Dm88b.js → blocks-TIr5_lNX.js} +3 -3
- package/storybook-static/assets/{check-028VTQ8f.js → check-Du8FuQ6e.js} +1 -1
- package/storybook-static/assets/{chevron-down-CjXVIhzi.js → chevron-down-rt2_lu7i.js} +1 -1
- package/storybook-static/assets/{chevron-left-CktI1oFP.js → chevron-left-SdIvDBzr.js} +1 -1
- package/storybook-static/assets/{chevron-right-CF10QSRI.js → chevron-right-BU-pTQL2.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-C0ehDnCq.js → chunk-W22LQPXL-C5x9oI8u.js} +1 -1
- package/storybook-static/assets/{circle-alert-s0HpHvQO.js → circle-alert-C-51hrK9.js} +1 -1
- package/storybook-static/assets/{circle-check-C7Lv1fv9.js → circle-check-DZ3A5xhF.js} +1 -1
- package/storybook-static/assets/{components-ClxgOUq5.js → components-DLKEXX2n.js} +3 -3
- package/storybook-static/assets/contextMenu-Cwftox4w.js +2 -0
- package/storybook-static/assets/{dom-DBd_DWF8.js → dom-D9_dPJ4G.js} +1 -1
- package/storybook-static/assets/{download-B1U5w3LU.js → download-BIHyCgGp.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CyNWkXBV.js → floating-ui.react-bcuT6Qw6.js} +1 -1
- package/storybook-static/assets/{foundationApi-CY0sxk8w.js → foundationApi-C5uBuKS6.js} +1 -1
- package/storybook-static/assets/{foundationLib-BCpSUA25.js → foundationLib-DRvN1n2m.js} +1 -1
- package/storybook-static/assets/{hooks-DjR-EyBl.js → hooks-DovKTAOG.js} +1 -1
- package/storybook-static/assets/iframe-CxmZ1iUO.js +1 -0
- package/storybook-static/assets/{iframe-woVbsQH3.js → iframe-DfqtMMgG.js} +4 -4
- package/storybook-static/assets/{info-DKbXBIbQ.js → info-CgVG4e4u.js} +1 -1
- package/storybook-static/assets/{odata-CMCuN2Rx.js → odata-BGOCt2tD.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-a4Q2PLas.js → odataStoryFixtures--hE0dv-U.js} +1 -1
- package/storybook-static/assets/{react-D3CyilRt.js → react-CZ1I4PcW.js} +1 -1
- package/storybook-static/assets/{refresh-cw-DXEJelAO.js → refresh-cw-CGuUzrYs.js} +1 -1
- package/storybook-static/assets/{settings-2-CKbiQBX8.js → settings-2-BnIPgWLg.js} +1 -1
- package/storybook-static/assets/sortable-CSXMP4VV.js +1 -0
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-CLptde2b.js → syntaxhighlighter-QEQV7K2Y-BXIJBARj.js} +1 -1
- package/storybook-static/assets/{trash-2-CPWRIQlJ.js → trash-2-25yeOC8e.js} +1 -1
- package/storybook-static/assets/{triangle-alert-XjzWCHp5.js → triangle-alert-0L7_o0IU.js} +1 -1
- package/storybook-static/assets/{ui-FA-1R8mO.css → ui-Bpz_yxm8.css} +1 -1
- package/storybook-static/assets/{uiClasses-DNnVkKPr.js → uiClasses-Bar5W7-L.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-ZGFa3pdT.js → useODataSelectBase-D9KnZAJ2.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DAdLowou.js → useODataTreeData-BRlsCagQ.js} +1 -1
- package/storybook-static/assets/usePickerQuery-B05uUMJ9.js +1 -0
- package/storybook-static/assets/usePickerTriggerController-YWagu6f6.js +6 -0
- package/storybook-static/assets/{x-D2Q9PGsq.js → x-i4zUW10Y.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/CalendarView-CwbPJG2Y.js.map +0 -1
- package/dist/chunks/button-D7GAU2Wa.js +0 -72
- package/dist/chunks/button-D7GAU2Wa.js.map +0 -1
- package/dist/chunks/context-menu-BQePxRpu.js +0 -532
- package/dist/chunks/context-menu-BQePxRpu.js.map +0 -1
- package/dist/chunks/flex-DtXK7OM4.js +0 -207
- package/dist/chunks/flex-DtXK7OM4.js.map +0 -1
- package/dist/chunks/grid-dI94AAbi.js.map +0 -1
- package/dist/chunks/misc-CGQOXXCy.js.map +0 -1
- package/dist/chunks/modal-febBsMyR.js.map +0 -1
- package/dist/chunks/picker-BA6okKnz.js.map +0 -1
- package/dist/chunks/popover-yl5DVe06.js +0 -245
- package/dist/chunks/popover-yl5DVe06.js.map +0 -1
- package/dist/chunks/select-DblNSc5H.js.map +0 -1
- package/dist/chunks/separator-CIqnk2z9.js +0 -15
- package/dist/chunks/separator-CIqnk2z9.js.map +0 -1
- package/storybook-static/assets/CalendarView-Dz8cY1fo.js +0 -1
- package/storybook-static/assets/ContextMenu-XS7B8QUC.js +0 -1
- package/storybook-static/assets/ContextMenu.stories-Dp2t2BZa.js +0 -37
- package/storybook-static/assets/CustomOptionButton-DNd0GDWp.js +0 -1
- package/storybook-static/assets/Detail.stories-CXg_w4qM.js +0 -56
- package/storybook-static/assets/DisclosureGroup-JNnTj18G.js +0 -2
- package/storybook-static/assets/DropdownMenu-xjOtBneA.js +0 -1
- package/storybook-static/assets/Flex.stories-CCVNsX23.js +0 -300
- package/storybook-static/assets/FlexContainer-BWyPlTMB.js +0 -1
- package/storybook-static/assets/FloatingPopover-D6tO24aO.js +0 -1
- package/storybook-static/assets/FormattedTableCell-CDaDfaXy.js +0 -15
- package/storybook-static/assets/Listbox-3Npc4PI_.js +0 -1
- package/storybook-static/assets/Modal-Ddmc8-2-.js +0 -1
- package/storybook-static/assets/MultiSelect-BkLCM22R.js +0 -2
- package/storybook-static/assets/MultiSelect-DI_UD1B-.css +0 -1
- package/storybook-static/assets/NoData-bUonNuRR.js +0 -1
- package/storybook-static/assets/NotificationsHost-CrLL4WK9.js +0 -44
- package/storybook-static/assets/NotificationsHost.stories-Ci2q0W9-.js +0 -29
- package/storybook-static/assets/OneStepScroller-B_IRz2Rw.js +0 -5
- package/storybook-static/assets/Option-fRoOLqLF.js +0 -10
- package/storybook-static/assets/OptionButton--hnpJ-88.js +0 -1
- package/storybook-static/assets/PickerTriggerActions-BDGEQPvP.js +0 -1
- package/storybook-static/assets/Popover-BYO0DlBg.js +0 -45
- package/storybook-static/assets/Popover-Byy9_Twt.js +0 -2
- package/storybook-static/assets/Popover.stories-8RhemIQg.js +0 -47
- package/storybook-static/assets/RadioButton-DMn-soQD.js +0 -1
- package/storybook-static/assets/Scrollable-BI3OE8gc.js +0 -1
- package/storybook-static/assets/Select-1MNiFkxm.js +0 -12
- package/storybook-static/assets/Slider-DbiDvmoV.js +0 -1
- package/storybook-static/assets/SliderInput-CzYn9gor.js +0 -2
- package/storybook-static/assets/Sortable.stories-DFCzTok0.js +0 -44
- package/storybook-static/assets/Tabs.stories-BdZilcp2.js +0 -57
- package/storybook-static/assets/TreePickerBase-CmFF9pWE.css +0 -1
- package/storybook-static/assets/TreePickerBase-Cu2mneBS.js +0 -76
- package/storybook-static/assets/contextMenu-CWGju9qn.js +0 -2
- package/storybook-static/assets/iframe-Dyd6jnSv.js +0 -1
- package/storybook-static/assets/sortable-CXLU2ip-.js +0 -1
- package/storybook-static/assets/usePickerQuery-CaO8hXyH.js +0 -1
- package/storybook-static/assets/usePickerTriggerController-DWjrt_q_.js +0 -6
- /package/storybook-static/assets/{ui.module-CyEEibCu.js → ui.module-0uniSGT-.js} +0 -0
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { n as e } from "./popover-
|
|
1
|
+
import { n as e } from "./popover-BJH-yHvb.js";
|
|
2
2
|
import { Text as t } from "../text/index.js";
|
|
3
|
-
import { n } from "
|
|
4
|
-
import {
|
|
3
|
+
import { PolymorphicComponent as n } from "../polymorphic/index.js";
|
|
4
|
+
import { n as r } from "./flex-D86M_h-0.js";
|
|
5
5
|
import { cn as i } from "@ryuzaki13/react-foundation-lib/utils";
|
|
6
6
|
import { CheckCheckIcon as a, ChevronLeftIcon as o, ChevronRightIcon as s, CircleAlertIcon as c, CircleCheckIcon as l, CircleXIcon as u, CopyIcon as d, InfoIcon as f } from "lucide-react";
|
|
7
7
|
import { jsx as p, jsxs as m } from "react/jsx-runtime";
|
|
8
|
-
import { Suspense as h,
|
|
9
|
-
import { useCopyElementTextWithFeedback as
|
|
10
|
-
import { useLazyComponent as
|
|
11
|
-
var
|
|
8
|
+
import { Suspense as h, useCallback as g, useEffect as _, useRef as v, useState as y, useSyncExternalStore as b } from "react";
|
|
9
|
+
import { useCopyElementTextWithFeedback as x } from "@ryuzaki13/react-foundation-lib/copy";
|
|
10
|
+
import { useLazyComponent as S } from "@ryuzaki13/react-foundation-lib/hooks";
|
|
11
|
+
var C = {
|
|
12
12
|
logo: "l9LG-r",
|
|
13
13
|
segment: "u4bkNy",
|
|
14
14
|
pulseSteps: "S-r8hY"
|
|
15
15
|
};
|
|
16
16
|
//#endregion
|
|
17
17
|
//#region src/misc/AnimatedLogo.tsx
|
|
18
|
-
function
|
|
18
|
+
function w({ children: e, className: t, ...n }) {
|
|
19
19
|
return /* @__PURE__ */ p("div", {
|
|
20
20
|
...n,
|
|
21
|
-
className: i(
|
|
21
|
+
className: i(C.logo, t),
|
|
22
22
|
children: e
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
//#endregion
|
|
26
26
|
//#region src/misc/AnimatedLogoSegment.tsx
|
|
27
|
-
function
|
|
27
|
+
function T({ children: e, className: t, order: n, style: r, ...a }) {
|
|
28
28
|
return /* @__PURE__ */ p("g", {
|
|
29
29
|
...a,
|
|
30
|
-
className: i(
|
|
30
|
+
className: i(C.segment, t),
|
|
31
31
|
style: {
|
|
32
32
|
...r,
|
|
33
33
|
animationDelay: `${n * 200}ms`
|
|
@@ -37,8 +37,8 @@ function E({ children: e, className: t, order: n, style: r, ...a }) {
|
|
|
37
37
|
}
|
|
38
38
|
//#endregion
|
|
39
39
|
//#region src/misc/CopyTextWrapper.tsx
|
|
40
|
-
|
|
41
|
-
let { containerRef: o, copyElementText: s, isCopied: c } =
|
|
40
|
+
function E({ children: t, position: n = "top", showOnHover: r = !0, className: i }) {
|
|
41
|
+
let { containerRef: o, copyElementText: s, isCopied: c } = x();
|
|
42
42
|
return /* @__PURE__ */ m("span", {
|
|
43
43
|
ref: o,
|
|
44
44
|
className: i,
|
|
@@ -53,20 +53,21 @@ var D = ({ children: t, position: n = "top", showOnHover: r = !0, className: i }
|
|
|
53
53
|
})
|
|
54
54
|
})]
|
|
55
55
|
});
|
|
56
|
-
}
|
|
56
|
+
}
|
|
57
|
+
var D = { wrapper: "_0wk7Sq" };
|
|
57
58
|
//#endregion
|
|
58
59
|
//#region src/misc/IconWrapper.tsx
|
|
59
|
-
function
|
|
60
|
+
function O({ className: e, children: t }) {
|
|
60
61
|
return /* @__PURE__ */ p("div", {
|
|
61
|
-
className: i(
|
|
62
|
+
className: i(D.wrapper, e),
|
|
62
63
|
children: t
|
|
63
64
|
});
|
|
64
65
|
}
|
|
65
|
-
var
|
|
66
|
+
var k = { componentLoader: "qgIKVo" };
|
|
66
67
|
//#endregion
|
|
67
68
|
//#region src/misc/Message.tsx
|
|
68
|
-
function
|
|
69
|
-
return /* @__PURE__ */ p(
|
|
69
|
+
function A({ className: e, children: n, color: a = "muted", role: o, minHeight: s, uppercase: c = !0 }) {
|
|
70
|
+
return /* @__PURE__ */ p(r, {
|
|
70
71
|
className: i("paddingMd textCenter", e),
|
|
71
72
|
minHeight: s,
|
|
72
73
|
children: /* @__PURE__ */ p(t, {
|
|
@@ -75,23 +76,23 @@ function j({ className: e, children: r, color: a = "muted", role: o, minHeight:
|
|
|
75
76
|
color: a,
|
|
76
77
|
uppercase: c,
|
|
77
78
|
role: o,
|
|
78
|
-
children:
|
|
79
|
+
children: n
|
|
79
80
|
})
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
83
|
//#endregion
|
|
83
84
|
//#region src/misc/LoadingMessage.tsx
|
|
84
|
-
function
|
|
85
|
-
return /* @__PURE__ */ m(
|
|
86
|
-
className: i(
|
|
85
|
+
function j({ className: e, logo: t, text: n }) {
|
|
86
|
+
return /* @__PURE__ */ m(A, {
|
|
87
|
+
className: i(k.componentLoader, t ? void 0 : "skeletonLine", e),
|
|
87
88
|
children: [t, n || "Загрузка..."]
|
|
88
89
|
});
|
|
89
90
|
}
|
|
90
91
|
//#endregion
|
|
91
92
|
//#region src/misc/LazyDynamicComponent.tsx
|
|
92
|
-
var
|
|
93
|
-
function
|
|
94
|
-
let o =
|
|
93
|
+
var M = (e) => (e(), () => void 0), N = () => !0, P = () => !1;
|
|
94
|
+
function F({ fallback: e, importFunc: t, componentName: n, clientOnly: r = !1, cacheKey: i, props: a }) {
|
|
95
|
+
let o = S(t, n, i), s = b(M, N, P), c = e ?? /* @__PURE__ */ p(j, { text: "Ожидание компонента..." });
|
|
95
96
|
return r && !s ? c : /* @__PURE__ */ p(h, {
|
|
96
97
|
fallback: c,
|
|
97
98
|
children: /* @__PURE__ */ p(o, { ...a ?? {} })
|
|
@@ -99,20 +100,22 @@ function I({ fallback: e, importFunc: t, componentName: n, clientOnly: r = !1, c
|
|
|
99
100
|
}
|
|
100
101
|
//#endregion
|
|
101
102
|
//#region src/misc/SkeletonLine.tsx
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
function I({ as: e, className: t, ...r }) {
|
|
104
|
+
return /* @__PURE__ */ p(n, {
|
|
105
|
+
as: e || "div",
|
|
106
|
+
className: i("skeletonLine colorTransparent radiusSm", t),
|
|
107
|
+
...r
|
|
108
|
+
});
|
|
109
|
+
}
|
|
107
110
|
//#endregion
|
|
108
111
|
//#region src/misc/LazyValue.tsx
|
|
109
|
-
function
|
|
110
|
-
return t ? /* @__PURE__ */ p(
|
|
112
|
+
function L({ value: e, isLoading: t }) {
|
|
113
|
+
return t ? /* @__PURE__ */ p(I, { children: "Загрузка..." }) : e ?? "-";
|
|
111
114
|
}
|
|
112
115
|
//#endregion
|
|
113
116
|
//#region src/misc/NoData.tsx
|
|
114
|
-
function
|
|
115
|
-
return /* @__PURE__ */ p(
|
|
117
|
+
function R({ className: e, text: t, role: n, minHeight: r = "5em" }) {
|
|
118
|
+
return /* @__PURE__ */ p(A, {
|
|
116
119
|
className: e,
|
|
117
120
|
color: "muted",
|
|
118
121
|
minHeight: r,
|
|
@@ -122,28 +125,28 @@ function z({ className: e, text: t, role: n, minHeight: r = "5em" }) {
|
|
|
122
125
|
}
|
|
123
126
|
//#endregion
|
|
124
127
|
//#region src/misc/Notice.tsx
|
|
125
|
-
function
|
|
126
|
-
return /* @__PURE__ */ p(
|
|
128
|
+
function z({ className: e, isError: t, role: n, children: r }) {
|
|
129
|
+
return /* @__PURE__ */ p(A, {
|
|
127
130
|
className: e,
|
|
128
131
|
color: t ? "error" : "secondary",
|
|
129
132
|
role: n,
|
|
130
133
|
children: r
|
|
131
134
|
});
|
|
132
135
|
}
|
|
133
|
-
var
|
|
136
|
+
var B = {
|
|
134
137
|
oneStepScroller: "_7xUQBN",
|
|
135
138
|
ossViewport: "AonLqg",
|
|
136
139
|
ossScroller: "j-5yFn",
|
|
137
140
|
ossButton: "pOIq63"
|
|
138
|
-
},
|
|
139
|
-
function
|
|
141
|
+
}, V = 1;
|
|
142
|
+
function H(e) {
|
|
140
143
|
return Math.max(0, e.scrollWidth - e.clientWidth);
|
|
141
144
|
}
|
|
142
|
-
|
|
143
|
-
let c =
|
|
145
|
+
function U({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smooth: a = !0 }) {
|
|
146
|
+
let c = v(null), l = v(null), [u, d] = y(!1), [f, h] = y(!1), b = g(() => {
|
|
144
147
|
let e = c.current;
|
|
145
148
|
return e ? n ? Array.from(e.querySelectorAll(n)) : Array.from(e.children).filter((e) => e instanceof HTMLElement) : [];
|
|
146
|
-
}, [n]), x =
|
|
149
|
+
}, [n]), x = g((e) => {
|
|
147
150
|
let t = c.current;
|
|
148
151
|
if (!t) return null;
|
|
149
152
|
if (n) {
|
|
@@ -153,22 +156,22 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
|
|
|
153
156
|
let r = e;
|
|
154
157
|
for (; r && r.parentElement && r.parentElement !== t;) r = r.parentElement;
|
|
155
158
|
return r && r.parentElement === t ? r : null;
|
|
156
|
-
}, [n]), S =
|
|
159
|
+
}, [n]), S = g(() => {
|
|
157
160
|
let e = c.current;
|
|
158
161
|
if (!e) {
|
|
159
162
|
d(!1), h(!1);
|
|
160
163
|
return;
|
|
161
164
|
}
|
|
162
|
-
let t = Math.max(0, e.scrollWidth - e.clientWidth), n = Math.max(0, Math.min(e.scrollLeft, t)), r = n >
|
|
165
|
+
let t = Math.max(0, e.scrollWidth - e.clientWidth), n = Math.max(0, Math.min(e.scrollLeft, t)), r = n > V, i = n < t - V;
|
|
163
166
|
d((e) => e === r ? e : r), h((e) => e === i ? e : i);
|
|
164
|
-
}, []), C =
|
|
167
|
+
}, []), C = g(() => {
|
|
165
168
|
l.current === null && (l.current = requestAnimationFrame(() => {
|
|
166
169
|
l.current = null, S();
|
|
167
170
|
}));
|
|
168
|
-
}, [S]), w =
|
|
171
|
+
}, [S]), w = g((e) => {
|
|
169
172
|
let t = c.current;
|
|
170
173
|
if (!t) return;
|
|
171
|
-
let n =
|
|
174
|
+
let n = b()[0];
|
|
172
175
|
if (!n) return;
|
|
173
176
|
let r = n.getBoundingClientRect().width;
|
|
174
177
|
if (!r) return;
|
|
@@ -177,18 +180,18 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
|
|
|
177
180
|
left: s,
|
|
178
181
|
behavior: a ? "smooth" : "auto"
|
|
179
182
|
});
|
|
180
|
-
}, [
|
|
183
|
+
}, [b, a]), T = g((e) => {
|
|
181
184
|
let t = c.current;
|
|
182
185
|
if (!t) return;
|
|
183
186
|
let n = t.getBoundingClientRect(), i = e.getBoundingClientRect(), o = i.left - n.left + t.scrollLeft, s = o + i.width, l = t.scrollLeft, u = t.scrollLeft + t.clientWidth;
|
|
184
|
-
if (o >= l +
|
|
187
|
+
if (o >= l + V && s <= u - V) return;
|
|
185
188
|
let d = t.scrollLeft;
|
|
186
|
-
o < l ? d = Math.max(0, o - r) : s > u && (d = Math.min(
|
|
189
|
+
o < l ? d = Math.max(0, o - r) : s > u && (d = Math.min(H(t), s - t.clientWidth + r)), t.scrollTo({
|
|
187
190
|
left: Math.round(d),
|
|
188
191
|
behavior: a ? "smooth" : "auto"
|
|
189
192
|
});
|
|
190
193
|
}, [r, a]);
|
|
191
|
-
|
|
194
|
+
_(() => {
|
|
192
195
|
let e = c.current;
|
|
193
196
|
if (!e) return;
|
|
194
197
|
let t = (e) => {
|
|
@@ -198,7 +201,7 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
|
|
|
198
201
|
n && T(n);
|
|
199
202
|
};
|
|
200
203
|
return e.addEventListener("focusin", t), () => e.removeEventListener("focusin", t);
|
|
201
|
-
}, [T, x]),
|
|
204
|
+
}, [T, x]), _(() => {
|
|
202
205
|
let e = c.current;
|
|
203
206
|
if (!e) return;
|
|
204
207
|
let t = () => C();
|
|
@@ -212,31 +215,31 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
|
|
|
212
215
|
})), C(), () => {
|
|
213
216
|
e.removeEventListener("scroll", t), n?.disconnect(), r?.disconnect(), l.current !== null && (cancelAnimationFrame(l.current), l.current = null);
|
|
214
217
|
};
|
|
215
|
-
}, [C]),
|
|
218
|
+
}, [C]), _(() => {
|
|
216
219
|
C();
|
|
217
220
|
}, [e, C]);
|
|
218
221
|
let E = () => w(-1), D = () => w(1), O = (e) => {
|
|
219
|
-
e.key === "ArrowLeft" ? (e.preventDefault(), E()) : e.key === "ArrowRight" && (e.preventDefault(), D());
|
|
222
|
+
e.defaultPrevented || (e.key === "ArrowLeft" ? (e.preventDefault(), E()) : e.key === "ArrowRight" && (e.preventDefault(), D()));
|
|
220
223
|
}, k = u || f;
|
|
221
224
|
return /* @__PURE__ */ m("div", {
|
|
222
|
-
className: i(
|
|
225
|
+
className: i(B.oneStepScroller, t),
|
|
223
226
|
style: { position: "relative" },
|
|
224
227
|
children: [
|
|
225
228
|
k && /* @__PURE__ */ p("button", {
|
|
226
229
|
type: "button",
|
|
227
230
|
"aria-label": "Прокрутить шаг влево",
|
|
228
|
-
className:
|
|
231
|
+
className: B.ossButton,
|
|
229
232
|
onClick: E,
|
|
230
233
|
disabled: !u,
|
|
231
234
|
children: /* @__PURE__ */ p(o, {})
|
|
232
235
|
}),
|
|
233
236
|
/* @__PURE__ */ p("div", {
|
|
234
|
-
className:
|
|
237
|
+
className: B.ossViewport,
|
|
235
238
|
onKeyDown: O,
|
|
236
239
|
role: "group",
|
|
237
240
|
"aria-label": "Элементы прокрутки",
|
|
238
241
|
children: /* @__PURE__ */ p("div", {
|
|
239
|
-
className:
|
|
242
|
+
className: B.ossScroller,
|
|
240
243
|
ref: c,
|
|
241
244
|
"aria-live": "polite",
|
|
242
245
|
children: e
|
|
@@ -245,27 +248,29 @@ var W = ({ children: e, className: t, itemSelector: n, scrollPadding: r = 6, smo
|
|
|
245
248
|
k && /* @__PURE__ */ p("button", {
|
|
246
249
|
type: "button",
|
|
247
250
|
"aria-label": "Прокрутить шаг вправо",
|
|
248
|
-
className:
|
|
251
|
+
className: B.ossButton,
|
|
249
252
|
onClick: D,
|
|
250
253
|
disabled: !f,
|
|
251
254
|
children: /* @__PURE__ */ p(s, {})
|
|
252
255
|
})
|
|
253
256
|
]
|
|
254
257
|
});
|
|
255
|
-
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
258
|
+
}
|
|
259
|
+
//#endregion
|
|
260
|
+
//#region src/misc/Scrollable.tsx
|
|
261
|
+
function W({ ref: e, children: t, height: n, stable: r, overscroll: a, className: o, style: s, ...c }) {
|
|
262
|
+
return /* @__PURE__ */ p("div", {
|
|
263
|
+
...c,
|
|
264
|
+
ref: e,
|
|
265
|
+
className: i("scrollable", r && "stable", a && "overscroll", o),
|
|
266
|
+
style: {
|
|
267
|
+
...s,
|
|
268
|
+
height: n ?? s?.height
|
|
269
|
+
},
|
|
270
|
+
children: t
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
var G = {
|
|
269
274
|
stateWrapper: "UMTbLD",
|
|
270
275
|
status: "cz57Fx",
|
|
271
276
|
information: "oPzAxu",
|
|
@@ -273,37 +278,55 @@ var K = {
|
|
|
273
278
|
warning: "_03z-1l",
|
|
274
279
|
error: "_0RqsqJ",
|
|
275
280
|
state: "mXkUoM"
|
|
276
|
-
}
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
281
|
+
};
|
|
282
|
+
//#endregion
|
|
283
|
+
//#region src/misc/StateIcon.tsx
|
|
284
|
+
function K({ state: e = "none", text: t, className: n }) {
|
|
285
|
+
return /* @__PURE__ */ m("div", {
|
|
286
|
+
className: i("flexCenter gapSm", n),
|
|
287
|
+
children: [(() => {
|
|
288
|
+
switch (e) {
|
|
289
|
+
case "error": return /* @__PURE__ */ p(J, {});
|
|
290
|
+
case "warning": return /* @__PURE__ */ p(Y, {});
|
|
291
|
+
case "success": return /* @__PURE__ */ p(X, {});
|
|
292
|
+
case "information": return /* @__PURE__ */ p(Z, {});
|
|
293
|
+
default: return null;
|
|
294
|
+
}
|
|
295
|
+
})(), t]
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
function q({ state: e }) {
|
|
288
299
|
switch (e) {
|
|
289
|
-
case "error": return /* @__PURE__ */ p(
|
|
290
|
-
case "warning": return /* @__PURE__ */ p(
|
|
291
|
-
case "success": return /* @__PURE__ */ p(
|
|
292
|
-
case "information": return /* @__PURE__ */ p(
|
|
300
|
+
case "error": return /* @__PURE__ */ p(J, {});
|
|
301
|
+
case "warning": return /* @__PURE__ */ p(Y, {});
|
|
302
|
+
case "success": return /* @__PURE__ */ p(X, {});
|
|
303
|
+
case "information": return /* @__PURE__ */ p(Z, {});
|
|
293
304
|
default: return null;
|
|
294
305
|
}
|
|
295
|
-
}
|
|
306
|
+
}
|
|
307
|
+
function J() {
|
|
308
|
+
return /* @__PURE__ */ p(u, { className: i(G.state, G.error) });
|
|
309
|
+
}
|
|
310
|
+
function Y() {
|
|
311
|
+
return /* @__PURE__ */ p(c, { className: i(G.state, G.warning) });
|
|
312
|
+
}
|
|
313
|
+
function X() {
|
|
314
|
+
return /* @__PURE__ */ p(l, { className: i(G.state, G.success) });
|
|
315
|
+
}
|
|
316
|
+
function Z() {
|
|
317
|
+
return /* @__PURE__ */ p(f, { className: i(G.state, G.information) });
|
|
318
|
+
}
|
|
296
319
|
//#endregion
|
|
297
320
|
//#region src/misc/StateWrapper.tsx
|
|
298
|
-
function
|
|
299
|
-
let o = t?.toLowerCase() ?? "none", s =
|
|
300
|
-
return /* @__PURE__ */ p(
|
|
321
|
+
function Q({ as: e, state: t, className: r, ...a }) {
|
|
322
|
+
let o = t?.toLowerCase() ?? "none", s = G[o], c = o && o !== "none";
|
|
323
|
+
return /* @__PURE__ */ p(n, {
|
|
301
324
|
as: e || "div",
|
|
302
|
-
className: i(
|
|
325
|
+
className: i(G.stateWrapper, c && G.status, s, r),
|
|
303
326
|
...a
|
|
304
327
|
});
|
|
305
328
|
}
|
|
306
329
|
//#endregion
|
|
307
|
-
export {
|
|
330
|
+
export { O as _, K as a, w as b, W as c, R as d, L as f, A as g, j as h, q as i, U as l, F as m, J as n, X as o, I as p, Z as r, Y as s, Q as t, z as u, E as v, T as y };
|
|
308
331
|
|
|
309
|
-
//# sourceMappingURL=misc-
|
|
332
|
+
//# sourceMappingURL=misc-Cm_LDrUD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"misc-Cm_LDrUD.js","names":[],"sources":["../../src/misc/AnimatedLogo.module.scss","../../src/misc/AnimatedLogo.tsx","../../src/misc/AnimatedLogoSegment.tsx","../../src/misc/CopyTextWrapper.tsx","../../src/misc/IconWrapper.module.scss","../../src/misc/IconWrapper.tsx","../../src/misc/LoadingMessage.module.scss","../../src/misc/Message.tsx","../../src/misc/LoadingMessage.tsx","../../src/misc/LazyDynamicComponent.tsx","../../src/misc/SkeletonLine.tsx","../../src/misc/LazyValue.tsx","../../src/misc/NoData.tsx","../../src/misc/Notice.tsx","../../src/misc/OneStepScroller.module.scss","../../src/misc/OneStepScroller.tsx","../../src/misc/Scrollable.tsx","../../src/misc/State.module.scss","../../src/misc/StateIcon.tsx","../../src/misc/StateWrapper.tsx"],"sourcesContent":[".logo {\n\tsvg {\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t\theight: auto;\n\t}\n}\n\n.segment {\n\topacity: 0.2;\n\tanimation: pulseSteps 2s ease-in-out infinite;\n}\n\n@keyframes pulseSteps {\n\t0% {\n\t\topacity: 0.2;\n\t}\n\n\t35%,\n\t55% {\n\t\topacity: 1;\n\t}\n\n\t100% {\n\t\topacity: 0.2;\n\t}\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.segment {\n\t\tanimation: none;\n\t\topacity: 1;\n\t}\n}\n","import { type ComponentPropsWithoutRef, type ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./AnimatedLogo.module.scss\";\n\ntype AnimatedLogoProps = Omit<ComponentPropsWithoutRef<\"div\">, \"children\"> & {\n\tchildren: ReactNode;\n};\n\n/**\n * Контейнер анимированного логотипа без брендовой SVG-разметки.\n * Host-проект передаёт собственный `svg`, а его визуальные части оборачивает в `AnimatedLogoSegment`.\n */\nexport function AnimatedLogo({ children, className, ...htmlProps }: AnimatedLogoProps) {\n\treturn (\n\t\t<div {...htmlProps} className={cn(styles.logo, className)}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n","import { type ComponentPropsWithoutRef, type ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./AnimatedLogo.module.scss\";\n\ntype AnimatedLogoSegmentProps = Omit<ComponentPropsWithoutRef<\"g\">, \"children\"> & {\n\tchildren: ReactNode;\n\torder: number;\n};\n\n/**\n * Анимирует одну смысловую часть host-логотипа и сдвигает её pulse относительно предыдущих частей.\n * `order` задаётся с нуля в визуальной последовательности сегментов и преобразуется в шаг задержки 200 мс.\n */\nexport function AnimatedLogoSegment({ children, className, order, style, ...svgGroupProps }: AnimatedLogoSegmentProps) {\n\treturn (\n\t\t<g {...svgGroupProps} className={cn(styles.segment, className)} style={{ ...style, animationDelay: `${order * 200}ms` }}>\n\t\t\t{children}\n\t\t</g>\n\t);\n}\n","import { Placement } from \"@floating-ui/react\";\nimport { useCopyElementTextWithFeedback } from \"@ryuzaki13/react-foundation-lib/copy\";\nimport { CheckCheckIcon, CopyIcon } from \"lucide-react\";\n\nimport { FloatingPopover } from \"../popover\";\n\ninterface CopyTextWrapperProps {\n\tchildren: React.ReactNode;\n\tposition?: Placement;\n\tshowOnHover?: boolean;\n\tclassName?: string;\n}\n\nexport function CopyTextWrapper({ children, position = \"top\", showOnHover = true, className }: CopyTextWrapperProps) {\n\tconst { containerRef, copyElementText, isCopied } = useCopyElementTextWithFeedback<HTMLSpanElement>();\n\n\treturn (\n\t\t<span ref={containerRef} className={className}>\n\t\t\t{children}\n\t\t\t<FloatingPopover openOnHover={showOnHover} placement={position} content={isCopied ? \"Скопировано!\" : \"Копировать текст\"}>\n\t\t\t\t<button onClick={copyElementText} aria-label={isCopied ? \"Скопировано!\" : \"Копировать текст\"}>\n\t\t\t\t\t{isCopied ? <CheckCheckIcon className=\"block statusSuccess\" /> : <CopyIcon className=\"block statusInfo\" />}\n\t\t\t\t</button>\n\t\t\t</FloatingPopover>\n\t\t</span>\n\t);\n}\n",".wrapper {\n\twidth: var(--control-height);\n\theight: var(--control-height);\n\tmargin: auto;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n","import { ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./IconWrapper.module.scss\";\n\ninterface IconWrapperProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n}\n\nexport function IconWrapper({ className, children }: IconWrapperProps) {\n\treturn <div className={cn(styles.wrapper, className)}>{children}</div>;\n}\n",".componentLoader {\n\tmin-height: 10em;\n}\n","import { AriaRole, PropsWithChildren } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { FlexCenter } from \"../flex\";\nimport { Text, TextColor } from \"../text\";\n\ninterface MessageProps extends PropsWithChildren {\n\tclassName?: string;\n\tcolor?: TextColor;\n\tminHeight?: string | number;\n\tuppercase?: boolean;\n\trole?: AriaRole;\n}\n\nexport function Message({ className, children, color = \"muted\", role, minHeight, uppercase = true }: MessageProps) {\n\treturn (\n\t\t<FlexCenter className={cn(\"paddingMd textCenter\", className)} minHeight={minHeight}>\n\t\t\t<Text as=\"p\" weight=\"bold\" color={color} uppercase={uppercase} role={role}>\n\t\t\t\t{children}\n\t\t\t</Text>\n\t\t</FlexCenter>\n\t);\n}\n","import { type ReactNode } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport styles from \"./LoadingMessage.module.scss\";\nimport { Message } from \"./Message\";\n\ntype LoadingMessageProps = {\n\tclassName?: string;\n\t/** Готовый брендовый знак, которым host-проект при необходимости дополняет сообщение о загрузке. */\n\tlogo?: ReactNode;\n\ttext?: string;\n};\n\nexport function LoadingMessage({ className, logo, text }: LoadingMessageProps) {\n\treturn (\n\t\t<Message className={cn(styles.componentLoader, logo ? undefined : \"skeletonLine\", className)}>\n\t\t\t{logo}\n\n\t\t\t{text || \"Загрузка...\"}\n\t\t</Message>\n\t);\n}\n","import { Suspense, useSyncExternalStore, type ComponentType, type ReactNode } from \"react\";\n\nimport { useLazyComponent } from \"@ryuzaki13/react-foundation-lib/hooks\";\n\nimport { LoadingMessage } from \"./LoadingMessage\";\n\ntype LazyDynamicComponentProps<T extends object> = {\n\timportFunc: () => Promise<Record<string, ComponentType<T>> | null>;\n\tcomponentName: string;\n\tcacheKey?: string;\n\tclientOnly?: boolean;\n\tfallback?: ReactNode;\n\tprops?: T;\n};\n\nconst subscribeClientOnlyMount = (onStoreChange: () => void) => {\n\tonStoreChange();\n\n\treturn () => undefined;\n};\n\nconst getClientSnapshot = () => true;\nconst getServerSnapshot = () => false;\n\n/**\n * Компонент ленивой загрузки динамически импортируемого React-компонента. Позволяет отложить загрузку тяжелых частей интерфейса до момента использования.\n */\nexport function LazyDynamicComponent<T extends object>({\n\tfallback,\n\timportFunc,\n\tcomponentName,\n\tclientOnly = false,\n\tcacheKey,\n\tprops\n}: LazyDynamicComponentProps<T>) {\n\tconst Component = useLazyComponent(importFunc, componentName, cacheKey);\n\tconst isClient = useSyncExternalStore(subscribeClientOnlyMount, getClientSnapshot, getServerSnapshot);\n\n\tconst fallbackNode = fallback ?? <LoadingMessage text=\"Ожидание компонента...\" />;\n\n\t// Client-only режим нужен для браузерных модулей, которые нельзя даже пытаться импортировать во время SSR.\n\tif (clientOnly && !isClient) return fallbackNode;\n\n\treturn (\n\t\t<Suspense fallback={fallbackNode}>\n\t\t\t{/* eslint-disable-next-line react-hooks/static-components */}\n\t\t\t<Component {...(props ?? ({} as T))} />\n\t\t</Suspense>\n\t);\n}\n","import React from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { PolymorphicComponent, PolymorphicComponentBaseProps } from \"../polymorphic\";\n\ntype SkeletonLineOwnProps<E extends React.ElementType = React.ElementType> = PolymorphicComponentBaseProps<E> & {\n\tclassName?: string;\n};\n\ntype SkeletonLineProps<E extends React.ElementType> = SkeletonLineOwnProps<E> &\n\tOmit<React.ComponentPropsWithRef<E>, keyof SkeletonLineOwnProps>;\n\nexport function SkeletonLine<E extends React.ElementType>({ as, className, ...props }: SkeletonLineProps<E>) {\n\tconst Component = as || \"div\";\n\n\treturn (\n\t\t<PolymorphicComponent\n\t\t\tas={Component as React.ElementType}\n\t\t\tclassName={cn(\"skeletonLine colorTransparent radiusSm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n","import React from \"react\";\n\nimport { SkeletonLine } from \"./SkeletonLine\";\n\ninterface LazyValueProps {\n\tvalue: React.ReactNode;\n\tisLoading?: boolean;\n}\n\nexport function LazyValue({ value, isLoading }: LazyValueProps) {\n\treturn isLoading ? <SkeletonLine>Загрузка...</SkeletonLine> : (value ?? \"-\");\n}\n","import { AriaRole } from \"react\";\n\nimport { Message } from \"./Message\";\n\ninterface NoDataProps {\n\tclassName?: string;\n\ttext?: string;\n\tminHeight?: string | number;\n\trole?: AriaRole;\n}\n\nexport function NoData({ className, text, role, minHeight = \"5em\" }: NoDataProps) {\n\treturn (\n\t\t<Message className={className} color=\"muted\" minHeight={minHeight} role={role}>\n\t\t\t{text || \"Нет данных\"}\n\t\t</Message>\n\t);\n}\n","import { AriaRole, PropsWithChildren } from \"react\";\n\nimport { Message } from \"./Message\";\n\ninterface NoticeProps extends PropsWithChildren {\n\tisError?: boolean;\n\tclassName?: string;\n\trole?: AriaRole;\n}\n\nexport function Notice({ className, isError, role, children }: NoticeProps) {\n\treturn (\n\t\t<Message className={className} color={isError ? \"error\" : \"secondary\"} role={role}>\n\t\t\t{children}\n\t\t</Message>\n\t);\n}\n",".oneStepScroller {\n\toverflow: hidden;\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--space-xs);\n\tmin-width: 0;\n}\n\n.ossViewport {\n\toverflow: hidden;\n\toutline: none;\n\tmin-width: 0;\n\tflex: 1 1 auto;\n}\n\n.ossScroller {\n\tdisplay: flex;\n\tflex-wrap: nowrap;\n\tgap: var(--space-sm);\n\talign-items: end;\n\toverflow-x: auto;\n\toverflow-y: hidden;\n\tscroll-behavior: smooth;\n\t-webkit-overflow-scrolling: touch;\n\tscrollbar-width: none; /* firefox */\n\n\t::-webkit-scrollbar {\n\t\theight: 0;\n\t}\n}\n\n.ossButton {\n\t// position: absolute;\n\ttop: 0;\n\tz-index: 10;\n\twidth: var(--control-height);\n\theight: 100%;\n\tflex: 0 0 var(--control-height);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\t// border: var(--border);\n\tborder-radius: var(--radius-sm);\n\tcolor: var(--content-2);\n\t// background-color: var(--surface-0);\n\t// opacity: 0.75;\n\n\ttransition-property: opacity, color;\n\ttransition-duration: var(--transition-fast);\n\n\t&:hover {\n\t\topacity: 1;\n\t\tcolor: var(--content-0);\n\t}\n\n\t&:disabled {\n\t\topacity: 0.5;\n\t\tpointer-events: none;\n\t}\n\n\t// &.prev {\n\t// \tleft: 0;\n\t// }\n\n\t// &.next {\n\t// \tright: 0;\n\t// }\n}\n","import React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\";\n\nimport styles from \"./OneStepScroller.module.scss\";\n\ninterface OneStepScrollerProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n\t/**\n\t * CSS-селектор элементов, которые считаются \"шагами\" скролла.\n\t * По умолчанию используются прямые потомки скроллера.\n\t */\n\titemSelector?: string;\n\t/**\n\t * Дополнительный внутренний отступ (px) при прокрутке к фокусируемому элементу.\n\t */\n\tscrollPadding?: number;\n\t/**\n\t * Плавная прокрутка для кнопок и авто-доводки до видимости.\n\t */\n\tsmooth?: boolean;\n}\n\nconst EDGE_EPSILON_PX = 1;\n\nfunction maxScrollLeft(scroller: HTMLElement) {\n\treturn Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n}\n\n/**\n * Горизонтальный скроллер \"по одному элементу\".\n *\n * Ожидает элементы фиксированной ширины (или близкой к фиксированной),\n * чтобы шаг скролла соответствовал ширине одного элемента.\n */\nexport function OneStepScroller({ children, className, itemSelector, scrollPadding = 6, smooth = true }: OneStepScrollerProps) {\n\tconst scrollerRef = useRef<HTMLDivElement | null>(null);\n\tconst rafIdRef = useRef<number | null>(null);\n\n\tconst [canScrollPrev, setCanScrollPrev] = useState(false);\n\tconst [canScrollNext, setCanScrollNext] = useState(false);\n\n\t/**\n\t * Получить список элементов-\"шагов\".\n\t *\n\t * Оптимизация: для дефолтного поведения используем `children` DOM-узла,\n\t * чтобы не выполнять `querySelectorAll` на каждый вызов.\n\t */\n\tconst getItems = useCallback((): HTMLElement[] => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return [];\n\n\t\tif (!itemSelector) {\n\t\t\treturn Array.from(scroller.children).filter((node): node is HTMLElement => node instanceof HTMLElement);\n\t\t}\n\n\t\treturn Array.from(scroller.querySelectorAll<HTMLElement>(itemSelector));\n\t}, [itemSelector]);\n\n\t/**\n\t * Найти \"элемент шага\" для произвольного target внутри скроллера.\n\t */\n\tconst findItemForTarget = useCallback(\n\t\t(target: HTMLElement): HTMLElement | null => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return null;\n\n\t\t\tif (itemSelector) {\n\t\t\t\tconst item = target.closest<HTMLElement>(itemSelector);\n\t\t\t\tif (item && scroller.contains(item)) return item;\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet node: HTMLElement | null = target;\n\t\t\twhile (node && node.parentElement && node.parentElement !== scroller) {\n\t\t\t\tnode = node.parentElement;\n\t\t\t}\n\n\t\t\tif (node && node.parentElement === scroller) return node;\n\t\t\treturn null;\n\t\t},\n\t\t[itemSelector]\n\t);\n\n\t/**\n\t * Обновить состояние кнопок \"назад/вперед\".\n\t * Состояние меняется только при реальном отличии, чтобы не триггерить\n\t * лишние перерисовки на каждом событии scroll.\n\t */\n\tconst updateScrollButtons = useCallback(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) {\n\t\t\tsetCanScrollPrev(false);\n\t\t\tsetCanScrollNext(false);\n\t\t\treturn;\n\t\t}\n\n\t\tconst maxScrollLeft = Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n\t\tconst current = Math.max(0, Math.min(scroller.scrollLeft, maxScrollLeft));\n\n\t\tconst nextCanScrollPrev = current > EDGE_EPSILON_PX;\n\t\tconst nextCanScrollNext = current < maxScrollLeft - EDGE_EPSILON_PX;\n\n\t\tsetCanScrollPrev((prev) => (prev === nextCanScrollPrev ? prev : nextCanScrollPrev));\n\t\tsetCanScrollNext((prev) => (prev === nextCanScrollNext ? prev : nextCanScrollNext));\n\t}, []);\n\n\t/**\n\t * Запланировать обновление кнопок в следующий animation frame.\n\t * Это снижает частоту вычислений при интенсивном scroll/resize.\n\t */\n\tconst scheduleUpdateScrollButtons = useCallback(() => {\n\t\tif (rafIdRef.current !== null) return;\n\n\t\trafIdRef.current = requestAnimationFrame(() => {\n\t\t\trafIdRef.current = null;\n\t\t\tupdateScrollButtons();\n\t\t});\n\t}, [updateScrollButtons]);\n\n\t/**\n\t * Прокрутка на N элементов (N может быть отрицательным).\n\t */\n\tconst scrollByItems = useCallback(\n\t\t(count: number) => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return;\n\n\t\t\tconst firstItem = getItems()[0];\n\t\t\tif (!firstItem) return;\n\n\t\t\tconst step = firstItem.getBoundingClientRect().width;\n\t\t\tif (!step) return;\n\n\t\t\tconst delta = Math.round(count * step);\n\t\t\tconst maxScrollLeft = Math.max(0, scroller.scrollWidth - scroller.clientWidth);\n\t\t\tconst target = Math.max(0, Math.min(scroller.scrollLeft + delta, maxScrollLeft));\n\n\t\t\tscroller.scrollTo({\n\t\t\t\tleft: target,\n\t\t\t\tbehavior: smooth ? \"smooth\" : \"auto\"\n\t\t\t});\n\t\t},\n\t\t[getItems, smooth]\n\t);\n\n\t/**\n\t * Гарантировать полную видимость элемента в пределах viewport скроллера.\n\t */\n\tconst ensureFullyVisible = useCallback(\n\t\t(el: HTMLElement) => {\n\t\t\tconst scroller = scrollerRef.current;\n\t\t\tif (!scroller) return;\n\n\t\t\tconst scrollerRect = scroller.getBoundingClientRect();\n\t\t\tconst elementRect = el.getBoundingClientRect();\n\n\t\t\tconst elementLeft = elementRect.left - scrollerRect.left + scroller.scrollLeft;\n\t\t\tconst elementRight = elementLeft + elementRect.width;\n\n\t\t\tconst visibleLeft = scroller.scrollLeft;\n\t\t\tconst visibleRight = scroller.scrollLeft + scroller.clientWidth;\n\n\t\t\tif (elementLeft >= visibleLeft + EDGE_EPSILON_PX && elementRight <= visibleRight - EDGE_EPSILON_PX) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet targetScrollLeft = scroller.scrollLeft;\n\t\t\tif (elementLeft < visibleLeft) {\n\t\t\t\ttargetScrollLeft = Math.max(0, elementLeft - scrollPadding);\n\t\t\t} else if (elementRight > visibleRight) {\n\t\t\t\ttargetScrollLeft = Math.min(maxScrollLeft(scroller), elementRight - scroller.clientWidth + scrollPadding);\n\t\t\t}\n\n\t\t\tscroller.scrollTo({\n\t\t\t\tleft: Math.round(targetScrollLeft),\n\t\t\t\tbehavior: smooth ? \"smooth\" : \"auto\"\n\t\t\t});\n\t\t},\n\t\t[scrollPadding, smooth]\n\t);\n\n\tuseEffect(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return;\n\n\t\tconst handleFocusIn = (event: FocusEvent) => {\n\t\t\tconst target = event.target;\n\t\t\tif (!(target instanceof HTMLElement)) return;\n\n\t\t\tconst item = findItemForTarget(target);\n\t\t\tif (item) ensureFullyVisible(item);\n\t\t};\n\n\t\tscroller.addEventListener(\"focusin\", handleFocusIn);\n\t\treturn () => scroller.removeEventListener(\"focusin\", handleFocusIn);\n\t}, [ensureFullyVisible, findItemForTarget]);\n\n\t/**\n\t * Наблюдаем только за размером скроллера и изменением его DOM-структуры.\n\t * Это дешевле, чем подписка ResizeObserver на каждый элемент + IntersectionObserver.\n\t */\n\tuseEffect(() => {\n\t\tconst scroller = scrollerRef.current;\n\t\tif (!scroller) return;\n\n\t\tconst onScroll = () => scheduleUpdateScrollButtons();\n\t\tscroller.addEventListener(\"scroll\", onScroll, { passive: true });\n\n\t\tlet resizeObserver: ResizeObserver | null = null;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tresizeObserver = new ResizeObserver(scheduleUpdateScrollButtons);\n\t\t\tresizeObserver.observe(scroller);\n\t\t}\n\n\t\tlet mutationObserver: MutationObserver | null = null;\n\t\tif (typeof MutationObserver !== \"undefined\") {\n\t\t\tmutationObserver = new MutationObserver(scheduleUpdateScrollButtons);\n\t\t\tmutationObserver.observe(scroller, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: false\n\t\t\t});\n\t\t}\n\n\t\tscheduleUpdateScrollButtons();\n\n\t\treturn () => {\n\t\t\tscroller.removeEventListener(\"scroll\", onScroll);\n\t\t\tresizeObserver?.disconnect();\n\t\t\tmutationObserver?.disconnect();\n\n\t\t\tif (rafIdRef.current !== null) {\n\t\t\t\tcancelAnimationFrame(rafIdRef.current);\n\t\t\t\trafIdRef.current = null;\n\t\t\t}\n\t\t};\n\t}, [scheduleUpdateScrollButtons]);\n\n\t/**\n\t * При изменении children просим пересчитать видимость кнопок.\n\t */\n\tuseEffect(() => {\n\t\tscheduleUpdateScrollButtons();\n\t}, [children, scheduleUpdateScrollButtons]);\n\n\tconst handlePrev = () => scrollByItems(-1);\n\tconst handleNext = () => scrollByItems(1);\n\n\t/**\n\t * Клавиатурная доступность: стрелки влево/вправо двигают на один шаг.\n\t */\n\tconst onWrapperKeyDown = (e: React.KeyboardEvent) => {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === \"ArrowLeft\") {\n\t\t\te.preventDefault();\n\t\t\thandlePrev();\n\t\t} else if (e.key === \"ArrowRight\") {\n\t\t\te.preventDefault();\n\t\t\thandleNext();\n\t\t}\n\t};\n\n\tconst hasScroll = canScrollPrev || canScrollNext;\n\n\treturn (\n\t\t<div className={cn(styles.oneStepScroller, className)} style={{ position: \"relative\" }}>\n\t\t\t{hasScroll && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Прокрутить шаг влево\"\n\t\t\t\t\tclassName={styles.ossButton}\n\t\t\t\t\tonClick={handlePrev}\n\t\t\t\t\tdisabled={!canScrollPrev}>\n\t\t\t\t\t<ChevronLeftIcon />\n\t\t\t\t</button>\n\t\t\t)}\n\n\t\t\t<div className={styles.ossViewport} onKeyDown={onWrapperKeyDown} role=\"group\" aria-label=\"Элементы прокрутки\">\n\t\t\t\t<div className={styles.ossScroller} ref={scrollerRef} aria-live=\"polite\">\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{hasScroll && (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\taria-label=\"Прокрутить шаг вправо\"\n\t\t\t\t\tclassName={styles.ossButton}\n\t\t\t\t\tonClick={handleNext}\n\t\t\t\t\tdisabled={!canScrollNext}>\n\t\t\t\t\t<ChevronRightIcon />\n\t\t\t\t</button>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n","import { type ComponentPropsWithoutRef, type Ref } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nexport interface ScrollableProps extends ComponentPropsWithoutRef<\"div\"> {\n\theight?: string | number;\n\tstable?: boolean;\n\toverscroll?: boolean;\n}\n\nexport function Scrollable({\n\tref,\n\tchildren,\n\theight,\n\tstable,\n\toverscroll,\n\tclassName,\n\tstyle,\n\t...htmlProps\n}: ScrollableProps & { ref?: Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<div\n\t\t\t{...htmlProps}\n\t\t\tref={ref}\n\t\t\tclassName={cn(\"scrollable\", stable && \"stable\", overscroll && \"overscroll\", className)}\n\t\t\tstyle={{ ...style, height: height ?? style?.height }}>\n\t\t\t{children}\n\t\t</div>\n\t);\n}\n\nexport interface ScrollableBlockProps extends ScrollableProps {\n\tblockClassName?: string;\n}\n\nexport function ScrollableBlock({ ref, blockClassName, ...props }: ScrollableBlockProps & { ref?: Ref<HTMLDivElement> }) {\n\treturn (\n\t\t<div className={cn(blockClassName, \"overflowHidden w100 h100\")}>\n\t\t\t<Scrollable ref={ref} {...props} />\n\t\t</div>\n\t);\n}\n",".stateWrapper {\n\ttext-decoration: none;\n\tcolor: inherit;\n\tdisplay: block;\n\n\t// border: var(--border-width) solid var(--state-border-color, transparent);\n\tborder-left-style: solid;\n\tborder-left-color: var(--state-border-color, transparent);\n\tborder-left-width: 0.0625em; // 1px\n\tpadding-left: 0.25em; // 4px + 1px border\n\n\t&.status {\n\t\tborder-left-width: 0.3125em; // 5px\n\t\tpadding-left: 0;\n\n\t\t&.information {\n\t\t\tborder-left-color: var(--info-fill);\n\t\t}\n\n\t\t&.success {\n\t\t\tborder-left-color: var(--success-fill);\n\t\t}\n\n\t\t&.warning {\n\t\t\tborder-left-color: var(--warning-fill);\n\t\t}\n\n\t\t&.error {\n\t\t\tborder-left-color: var(--error-fill);\n\t\t}\n\t}\n}\n\n.state {\n\t&.information {\n\t\tcolor: var(--info-text);\n\n\t\tfill: var(--info-fill);\n\t\tstroke: var(--info-on-fill);\n\t}\n\n\t&.success {\n\t\tcolor: var(--success-text);\n\n\t\tfill: var(--success-fill);\n\t\tstroke: var(--success-on-fill);\n\t}\n\n\t&.warning {\n\t\tcolor: var(--warning-text);\n\n\t\tfill: var(--warning-fill);\n\t\tstroke: var(--warning-on-fill);\n\t\tstroke-width: 2px;\n\t}\n\n\t&.error {\n\t\tcolor: var(--error-text);\n\n\t\tfill: var(--error-fill);\n\t\tstroke: var(--error-on-fill);\n\t}\n}\n","import { State } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { CircleAlertIcon, CircleCheckIcon, CircleXIcon, InfoIcon } from \"lucide-react\";\n\nimport styles from \"./State.module.scss\";\n\ninterface StateIconProps {\n\tstate: State;\n\ttext: string;\n\tclassName?: string;\n}\n\nexport function StateIcon({ state = \"none\", text, className }: StateIconProps) {\n\tconst renderIcon = () => {\n\t\tswitch (state) {\n\t\t\tcase \"error\":\n\t\t\t\treturn <ErrorIcon />;\n\t\t\tcase \"warning\":\n\t\t\t\treturn <WarningIcon />;\n\t\t\tcase \"success\":\n\t\t\t\treturn <SuccessIcon />;\n\t\t\tcase \"information\":\n\t\t\t\treturn <InformationIcon />;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={cn(\"flexCenter gapSm\", className)}>\n\t\t\t{renderIcon()}\n\t\t\t{text}\n\t\t</div>\n\t);\n}\n\ninterface RenderStateIconProps {\n\tstate?: State;\n}\n\nexport function RenderStateIcon({ state }: RenderStateIconProps) {\n\tswitch (state) {\n\t\tcase \"error\":\n\t\t\treturn <ErrorIcon />;\n\t\tcase \"warning\":\n\t\t\treturn <WarningIcon />;\n\t\tcase \"success\":\n\t\t\treturn <SuccessIcon />;\n\t\tcase \"information\":\n\t\t\treturn <InformationIcon />;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nexport function ErrorIcon() {\n\treturn <CircleXIcon className={cn(styles.state, styles.error)} />;\n}\nexport function WarningIcon() {\n\treturn <CircleAlertIcon className={cn(styles.state, styles.warning)} />;\n}\nexport function SuccessIcon() {\n\treturn <CircleCheckIcon className={cn(styles.state, styles.success)} />;\n}\nexport function InformationIcon() {\n\treturn <InfoIcon className={cn(styles.state, styles.information)} />;\n}\n","import React from \"react\";\n\nimport { State } from \"@ryuzaki13/react-foundation-lib/types\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { PolymorphicComponent, PolymorphicComponentBaseProps } from \"../polymorphic\";\n\nimport styles from \"./State.module.scss\";\n\ntype StateWrapperOwnProps<E extends React.ElementType = React.ElementType> = PolymorphicComponentBaseProps<E> & {\n\tstate?: State;\n\tclassName?: string;\n};\n\ntype StateWrapperProps<E extends React.ElementType> = StateWrapperOwnProps<E> &\n\tOmit<React.ComponentPropsWithRef<E>, keyof StateWrapperOwnProps>;\n\nexport function StateWrapper<E extends React.ElementType>({ as, state, className, ...props }: StateWrapperProps<E>) {\n\tconst status = state?.toLowerCase() ?? \"none\";\n\tconst statusClass = styles[status as keyof typeof styles];\n\tconst isStatused = status && status !== \"none\";\n\n\tconst Component = as || \"div\";\n\n\treturn (\n\t\t<PolymorphicComponent\n\t\t\tas={Component as React.ElementType}\n\t\t\tclassName={cn(styles.stateWrapper, isStatused && styles.status, statusClass, className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { o as e } from "./flex-
|
|
2
|
-
import { n as t } from "./button-
|
|
3
|
-
import { r as n } from "./grid-
|
|
4
|
-
import { c as r } from "./misc-
|
|
1
|
+
import { o as e } from "./flex-D86M_h-0.js";
|
|
2
|
+
import { n as t } from "./button-DudCl375.js";
|
|
3
|
+
import { r as n } from "./grid-CFuzBigM.js";
|
|
4
|
+
import { c as r } from "./misc-Cm_LDrUD.js";
|
|
5
5
|
import { cn as i } from "@ryuzaki13/react-foundation-lib/utils";
|
|
6
6
|
import { X as a } from "lucide-react";
|
|
7
7
|
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
@@ -45,30 +45,39 @@ var C = {
|
|
|
45
45
|
openModal: () => {},
|
|
46
46
|
closeModal: () => {},
|
|
47
47
|
isTopModal: () => !1
|
|
48
|
-
}), O = () => d(D)
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
})
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
className: i("paddingMd h100 overflowHidden", t),
|
|
55
|
-
children: n ? /* @__PURE__ */ o(r, {
|
|
56
|
-
className: "h100",
|
|
48
|
+
}), O = () => d(D);
|
|
49
|
+
//#endregion
|
|
50
|
+
//#region src/modal/Modal.tsx
|
|
51
|
+
function k({ children: e, className: t }) {
|
|
52
|
+
return /* @__PURE__ */ o("div", {
|
|
53
|
+
className: i("surface2 paddingMd borderBottom", t),
|
|
57
54
|
children: e
|
|
58
|
-
})
|
|
59
|
-
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
k.displayName = "Modal.Toolbar";
|
|
58
|
+
function A({ children: e, className: t, scrollable: n }) {
|
|
59
|
+
return /* @__PURE__ */ o("div", {
|
|
60
|
+
className: i("paddingMd h100 overflowHidden", t),
|
|
61
|
+
children: n ? /* @__PURE__ */ o(r, {
|
|
62
|
+
className: "h100",
|
|
63
|
+
children: e
|
|
64
|
+
}) : e
|
|
65
|
+
});
|
|
66
|
+
}
|
|
60
67
|
A.displayName = "Modal.Content";
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
})
|
|
68
|
+
function j({ children: t, className: n }) {
|
|
69
|
+
return /* @__PURE__ */ o("div", {
|
|
70
|
+
className: i("surface2 borderTop paddingMd", n),
|
|
71
|
+
children: /* @__PURE__ */ o(e, {
|
|
72
|
+
gap: "sm",
|
|
73
|
+
align: "center",
|
|
74
|
+
justify: "end",
|
|
75
|
+
children: t
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
}
|
|
70
79
|
j.displayName = "Modal.Footer";
|
|
71
|
-
|
|
80
|
+
function M({ isOpen: e, title: r, size: l = "sm", height: u, onClose: d, children: h }) {
|
|
72
81
|
let D = p(), M = p(), { modals: N, openModal: P, closeModal: F, isTopModal: I } = O(), L = S(), R = m(null), z = m(0), B = { "--modal-height": u }, V = e && (N.length === 0 || I(D));
|
|
73
82
|
f(() => {
|
|
74
83
|
e && (R.current = document.activeElement instanceof HTMLElement ? document.activeElement : null);
|
|
@@ -154,7 +163,7 @@ var M = ({ isOpen: e, title: r, size: l = "sm", height: u, onClose: d, children:
|
|
|
154
163
|
})]
|
|
155
164
|
}) : null
|
|
156
165
|
}), W);
|
|
157
|
-
}
|
|
166
|
+
}
|
|
158
167
|
//#endregion
|
|
159
168
|
//#region src/modal/ModalManagerProvider.tsx
|
|
160
169
|
function N({ children: e, compensateScrollbar: t = !1 }) {
|
|
@@ -192,4 +201,4 @@ function N({ children: e, compensateScrollbar: t = !1 }) {
|
|
|
192
201
|
//#endregion
|
|
193
202
|
export { k as a, j as i, M as n, D as o, A as r, O as s, N as t };
|
|
194
203
|
|
|
195
|
-
//# sourceMappingURL=modal-
|
|
204
|
+
//# sourceMappingURL=modal-Dz5TzkTB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modal-Dz5TzkTB.js","names":[],"sources":["../../src/modal/Modal.module.scss","../../src/modal/modalMotion.ts","../../src/modal/useModalManager.ts","../../src/modal/Modal.tsx","../../src/modal/ModalManagerProvider.tsx"],"sourcesContent":["@use \"@/styles/mixins\" as *;\n\n.modal {\n\t--modal-border-radius: 0;\n\n\tdisplay: grid;\n\tgrid-auto-rows: auto 1fr;\n\tgrid-area: 1 / 1;\n\tz-index: var(--z-modal);\n\n\tborder: var(--border);\n\tborder-radius: var(--modal-border-radius);\n\tbackground-color: var(--surface-1);\n\tbox-shadow: var(--shadow-lg);\n\n\t&:not(:last-child) {\n\t\tpointer-events: none;\n\t\tfilter: grayscale(0.5) opacity(0.75);\n\t\t// opacity: 0.5;\n\t}\n\n\twidth: 100%;\n\theight: 100%;\n\tmax-width: none;\n\tmax-height: none;\n}\n\n.header {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tbackground-color: var(--surface-2);\n\tborder-top-left-radius: var(--modal-border-radius);\n\tborder-top-right-radius: var(--modal-border-radius);\n}\n\n.headerText {\n\tmargin: 0;\n\tpadding-inline: var(--space-md);\n\tfont-size: var(--font-size-md);\n\tfont-variation-settings: \"wght\" 600;\n}\n\n.headerButton {\n\tmargin-block: var(--space-xs);\n\tmargin-inline: var(--space-sm);\n\tflex: 0;\n}\n\n.body {\n\toverflow: hidden;\n\tborder-bottom-left-radius: var(--modal-border-radius);\n\tborder-bottom-right-radius: var(--modal-border-radius);\n}\n\n@include mobile-above {\n\t.modal {\n\t\theight: var(--modal-height, fit-content);\n\t\tmax-height: calc(100dvh - var(--space-lg));\n\t\t--modal-border-radius: var(--radius-md);\n\n\t\t&.sm {\n\t\t\tmax-width: min(30em, 93dvw);\n\t\t}\n\n\t\t&.md {\n\t\t\tmax-width: min(50em, 93dvw);\n\t\t}\n\n\t\t&.lg {\n\t\t\tmax-width: min(70em, 93dvw);\n\t\t}\n\n\t\t&.xl {\n\t\t\tmax-width: min(80em, 93dvw);\n\t\t}\n\n\t\t&.xxl {\n\t\t\twidth: 95dvw;\n\t\t\theight: 92dvh;\n\t\t\tmax-width: none;\n\t\t\tmax-height: none;\n\t\t}\n\n\t\t&.inside {\n\t\t\twidth: 100%;\n\t\t\theight: 100%;\n\t\t\tmax-width: none;\n\t\t\tmax-height: none;\n\n\t\t\t--modal-border-radius: 0;\n\t\t}\n\t}\n}\n","import { type Transition, type Variants } from \"motion/react\";\n\n/**\n * Варианты задают единый спокойный переход для появления и удаления modal-панели.\n * Конфигурация приватна для primitive: потребители управляют только состоянием `isOpen`.\n */\nexport const modalMotionVariants = {\n\thidden: {\n\t\topacity: 0,\n\t\tscale: 0.96,\n\t\ty: 12\n\t},\n\tvisible: {\n\t\topacity: 1,\n\t\tscale: 1,\n\t\ty: 0\n\t}\n} satisfies Variants;\n\n/** Переход сохраняет отзывчивое открытие и дает exit-анимации завершиться до удаления portal content. */\nexport const modalMotionTransition = {\n\tduration: 0.18,\n\tease: [0.22, 1, 0.36, 1]\n} satisfies Transition;\n\n/** При системном reduced-motion остается только мгновенная смена видимости без пространственного движения. */\nexport const reducedModalMotionTransition = {\n\tduration: 0\n} satisfies Transition;\n","import { createContext, useContext } from \"react\";\n\nexport const ModalManagerContext = createContext<{\n\tmodals: string[];\n\topenModal: (id: string) => void;\n\tcloseModal: (id: string) => void;\n\tisTopModal: (id: string) => boolean;\n}>({\n\tmodals: [],\n\topenModal: () => {},\n\tcloseModal: () => {},\n\tisTopModal: () => false\n});\n\nexport const useModalManager = () => useContext(ModalManagerContext);\n","import React, { Children, useEffect, useId, useRef } from \"react\";\n\nimport { getOrCreatePortalRoot, useEscapeDismiss, useOverlayFocus } from \"@ryuzaki13/react-foundation-lib/dom\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport { X } from \"lucide-react\";\nimport { AnimatePresence, motion, useReducedMotion } from \"motion/react\";\nimport { createPortal } from \"react-dom\";\n\nimport { Button } from \"../button\";\nimport { FlexContainer } from \"../flex\";\nimport { GridContainer } from \"../grid\";\nimport { Scrollable } from \"../misc\";\n\nimport styles from \"./Modal.module.scss\";\nimport { modalMotionTransition, modalMotionVariants, reducedModalMotionTransition } from \"./modalMotion\";\nimport { ModalSize } from \"./types\";\nimport { useModalManager } from \"./useModalManager\";\n\n// Подкомпоненты\nexport interface ModalCompositionProps {\n\tchildren: React.ReactNode;\n\tclassName?: string;\n}\n\nexport function ModalToolbar({ children, className }: ModalCompositionProps) {\n\treturn <div className={cn(\"surface2 paddingMd borderBottom\", className)}>{children}</div>;\n}\nModalToolbar.displayName = \"Modal.Toolbar\";\n\nexport function ModalContent({ children, className, scrollable }: ModalCompositionProps & { scrollable?: boolean }) {\n\treturn (\n\t\t<div className={cn(\"paddingMd h100 overflowHidden\", className)}>\n\t\t\t{scrollable ? <Scrollable className=\"h100\">{children}</Scrollable> : children}\n\t\t</div>\n\t);\n}\nModalContent.displayName = \"Modal.Content\";\n\nexport function ModalFooter({ children, className }: ModalCompositionProps) {\n\treturn (\n\t\t<div className={cn(\"surface2 borderTop paddingMd\", className)}>\n\t\t\t<FlexContainer gap=\"sm\" align=\"center\" justify=\"end\">\n\t\t\t\t{children}\n\t\t\t</FlexContainer>\n\t\t</div>\n\t);\n}\nModalFooter.displayName = \"Modal.Footer\";\n\ntype ToolbarElement = React.ReactElement<ModalCompositionProps, typeof ModalToolbar>;\ntype ContentElement = React.ReactElement<ModalCompositionProps, typeof ModalContent>;\ntype FooterElement = React.ReactElement<ModalCompositionProps, typeof ModalFooter>;\n\ntype ModalChildren =\n\t[ToolbarElement, ContentElement, FooterElement] | [ToolbarElement, ContentElement] | [ContentElement, FooterElement] | ContentElement;\n\ntype ModalStyle = React.CSSProperties & {\n\t\"--modal-height\"?: string;\n};\n\nexport interface ModalProps {\n\t/** Открыто ли модальное окно */\n\tisOpen?: boolean;\n\t/** Заголовок */\n\ttitle?: string;\n\t/** Размер модального окна */\n\tsize?: keyof typeof ModalSize;\n\t/** Явная высота модального окна выше мобильного breakpoint */\n\theight?: string;\n\t/** Обработчик закрытия */\n\tonClose: () => void;\n\tchildren: ModalChildren;\n}\n\nexport function Modal({ isOpen, title, size = \"sm\", height, onClose, children }: ModalProps) {\n\tconst modalId = useId();\n\tconst titleId = useId();\n\n\tconst { modals, openModal, closeModal, isTopModal } = useModalManager();\n\tconst shouldReduceMotion = useReducedMotion();\n\tconst restoreFocusTargetRef = useRef<HTMLElement | null>(null);\n\tconst restoreFocusAnimationFrameRef = useRef(0);\n\tconst modalStyle: ModalStyle = { \"--modal-height\": height };\n\n\t/**\n\t * Если provider менеджера не подключен, считаем одиночную модалку активной,\n\t * иначе логика Escape/focus trap никогда не включится.\n\t */\n\tconst isActive = isOpen && (modals.length === 0 || isTopModal(modalId));\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\trestoreFocusTargetRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n\t\t}\n\t}, [isOpen]);\n\n\tconst modalRef = useOverlayFocus<HTMLDivElement>({ active: isOpen || false, trapFocus: true, restoreFocus: false });\n\n\tuseEscapeDismiss({\n\t\tactive: isActive || false,\n\t\tonDismiss: onClose,\n\t\tcontainerRef: modalRef\n\t});\n\n\tuseEffect(() => {\n\t\tif (isOpen) {\n\t\t\topenModal(modalId);\n\t\t}\n\t}, [isOpen, modalId, openModal]);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\twindow.cancelAnimationFrame(restoreFocusAnimationFrameRef.current);\n\t\t\tcloseModal(modalId);\n\t\t};\n\t}, [closeModal, modalId]);\n\n\tfunction handleExitComplete() {\n\t\tcloseModal(modalId);\n\t\tconst restoreFocusTarget = restoreFocusTargetRef.current;\n\n\t\t/**\n\t\t * Менеджер снимает inert в passive effect после обновления стека.\n\t\t * Следующий animation frame гарантирует, что trigger снова доступен для фокуса.\n\t\t */\n\t\trestoreFocusAnimationFrameRef.current = window.requestAnimationFrame(() => {\n\t\t\tif (restoreFocusTarget?.isConnected) {\n\t\t\t\trestoreFocusTarget.focus();\n\t\t\t}\n\t\t\trestoreFocusTargetRef.current = null;\n\t\t});\n\t}\n\n\tconst modalRoot = getOrCreatePortalRoot(\"modal-root\");\n\n\tif (!modalRoot) {\n\t\treturn null;\n\t}\n\n\tlet toolbar: React.ReactNode = null;\n\tlet content: React.ReactNode = null;\n\tlet footer: React.ReactNode = null;\n\n\tconst childArray = Children.toArray(children) as (ToolbarElement | ContentElement | FooterElement)[];\n\n\tfor (const child of childArray) {\n\t\tconst typeName = child.type.displayName;\n\n\t\tswitch (typeName) {\n\t\t\tcase ModalToolbar.displayName:\n\t\t\t\tif (toolbar) throw new Error(\"Modal: duplicate <Toolbar> found\");\n\t\t\t\ttoolbar = child; //.props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalFooter.displayName:\n\t\t\t\tif (footer) throw new Error(\"Modal: duplicate <Footer> found\");\n\t\t\t\tfooter = child; //props.children;\n\t\t\t\tbreak;\n\t\t\tcase ModalContent.displayName:\n\t\t\t\tif (content) throw new Error(\"Modal: duplicate <Content> found\");\n\t\t\t\tcontent = child; //.props.children;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t<AnimatePresence onExitComplete={handleExitComplete}>\n\t\t\t{isOpen ? (\n\t\t\t\t<motion.div\n\t\t\t\t\tref={modalRef}\n\t\t\t\t\tclassName={cn(styles.modal, styles[size])}\n\t\t\t\t\tstyle={modalStyle}\n\t\t\t\t\trole=\"dialog\"\n\t\t\t\t\taria-modal=\"true\"\n\t\t\t\t\taria-labelledby={titleId}\n\t\t\t\t\taria-describedby={`${titleId}-content`}\n\t\t\t\t\tinitial=\"hidden\"\n\t\t\t\t\tanimate=\"visible\"\n\t\t\t\t\texit=\"hidden\"\n\t\t\t\t\tvariants={modalMotionVariants}\n\t\t\t\t\ttransition={shouldReduceMotion ? reducedModalMotionTransition : modalMotionTransition}>\n\t\t\t\t\t<div className={cn(styles.header, toolbar ? \"\" : \"borderBottom\")}>\n\t\t\t\t\t\t<h3 className={styles.headerText} id={titleId}>\n\t\t\t\t\t\t\t{title}\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ticon={<X />}\n\t\t\t\t\t\t\tclassName={styles.headerButton}\n\t\t\t\t\t\t\tvariant={\"ghost\"}\n\t\t\t\t\t\t\taria-label={\"Закрыть модальное окно\"}\n\t\t\t\t\t\t\tonClick={onClose}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<GridContainer\n\t\t\t\t\t\tid={`${titleId}-content`}\n\t\t\t\t\t\ttemplateRows={`${toolbar ? \"auto\" : \"\"} 1fr ${footer ? \"auto\" : \"\"}`.trim()}\n\t\t\t\t\t\t// gap=\"md\"\n\t\t\t\t\t\tclassName={styles.body}>\n\t\t\t\t\t\t{toolbar}\n\t\t\t\t\t\t{content}\n\t\t\t\t\t\t{footer}\n\t\t\t\t\t</GridContainer>\n\t\t\t\t</motion.div>\n\t\t\t) : null}\n\t\t</AnimatePresence>,\n\t\tmodalRoot\n\t);\n}\n","// ModalManagerContext.tsx\nimport React, { useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { ModalManagerContext } from \"./useModalManager\";\n\nexport interface ModalManagerProviderProps {\n\tchildren: React.ReactNode;\n\t/** Компенсирует исчезновение скроллбара правым padding у body. */\n\tcompensateScrollbar?: boolean;\n}\n\n/**\n * Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.\n */\nexport function ModalManagerProvider({ children, compensateScrollbar = false }: ModalManagerProviderProps) {\n\tconst [modals, setModals] = useState<string[]>([]);\n\tconst prevModalsLength = useRef(0);\n\tconst scrollbarWidth = useRef(0);\n\tconst bodyPaddingRight = useRef(\"\");\n\tconst isScrollbarCompensated = useRef(false);\n\n\tconst openModal = useCallback((id: string) => {\n\t\tsetModals((prev) => [...prev, id]);\n\t}, []);\n\n\tconst closeModal = useCallback((id: string) => {\n\t\tsetModals((prev) => prev.filter((mid) => mid !== id));\n\t}, []);\n\n\tconst isTopModal = useCallback(\n\t\t(id: string) => {\n\t\t\treturn modals[modals.length - 1] === id;\n\t\t},\n\t\t[modals]\n\t);\n\n\tuseEffect(() => {\n\t\tconst wasEmpty = prevModalsLength.current === 0;\n\n\t\tif (wasEmpty && modals.length > 0) {\n\t\t\t// первая модалка открыта — ставим стили\n\t\t\tconst scrollY = window.scrollY;\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tscrollbarWidth.current = Math.max(0, window.innerWidth - document.documentElement.clientWidth);\n\t\t\tbodyPaddingRight.current = document.body.style.paddingRight;\n\n\t\t\tdocument.body.style.position = \"fixed\";\n\t\t\tdocument.body.style.top = `-${scrollY}px`;\n\t\t\tdocument.body.style.width = \"100%\";\n\n\t\t\tif (compensateScrollbar) {\n\t\t\t\tdocument.body.style.paddingRight = `${scrollbarWidth.current}px`;\n\t\t\t\tisScrollbarCompensated.current = true;\n\t\t\t}\n\n\t\t\tappRoot?.setAttribute(\"inert\", \"true\");\n\n\t\t\tprevModalsLength.current = modals.length;\n\t\t\treturn;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length > 0 && compensateScrollbar !== isScrollbarCompensated.current) {\n\t\t\tdocument.body.style.paddingRight = compensateScrollbar ? `${scrollbarWidth.current}px` : bodyPaddingRight.current;\n\t\t\tisScrollbarCompensated.current = compensateScrollbar;\n\t\t}\n\n\t\tif (!wasEmpty && modals.length === 0) {\n\t\t\t// последняя модалка закрыта — снимаем стили\n\t\t\tconst appRoot = document.querySelector(\"#app-root\");\n\t\t\tconst scrollY = parseInt(document.body.style.top || \"0\") * -1;\n\n\t\t\tdocument.body.style.position = \"\";\n\t\t\tdocument.body.style.top = \"\";\n\t\t\tdocument.body.style.width = \"\";\n\n\t\t\tif (isScrollbarCompensated.current) {\n\t\t\t\tdocument.body.style.paddingRight = bodyPaddingRight.current;\n\t\t\t\tisScrollbarCompensated.current = false;\n\t\t\t}\n\n\t\t\tappRoot?.removeAttribute(\"inert\");\n\n\t\t\twindow.scrollTo({ top: scrollY, left: 0, behavior: \"instant\" });\n\t\t}\n\n\t\tprevModalsLength.current = modals.length;\n\t}, [compensateScrollbar, modals.length]);\n\n\treturn <ModalManagerContext.Provider value={{ modals, openModal, closeModal, isTopModal }}>{children}</ModalManagerContext.Provider>;\n}\n"],"mappings":"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"}
|