@vkontakte/vkui 5.3.2 → 5.4.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/cjs/components/Accordion/Accordion.d.ts +2 -2
- package/dist/cjs/components/Accordion/Accordion.js.map +1 -1
- package/dist/cjs/components/Accordion/AccordionSummary.d.ts +1 -1
- package/dist/cjs/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cjs/components/ActionSheet/types.d.ts +1 -1
- package/dist/cjs/components/ActionSheet/types.js.map +1 -1
- package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
- package/dist/cjs/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +4 -4
- package/dist/cjs/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/cjs/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootPortal.d.ts +3 -3
- package/dist/cjs/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cjs/components/AppRoot/ScrollContext.d.ts +2 -2
- package/dist/cjs/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cjs/components/Button/Button.d.ts +1 -0
- package/dist/cjs/components/Button/Button.js +2 -2
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Card/Card.js +1 -3
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js +4 -4
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/cjs/components/Checkbox/Checkbox.js +12 -8
- package/dist/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cjs/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +3 -2
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js +3 -5
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -0
- package/dist/cjs/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cjs/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cjs/components/Epic/ScrollSaver.d.ts +3 -3
- package/dist/cjs/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cjs/components/File/File.js +4 -3
- package/dist/cjs/components/File/File.js.map +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/cjs/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cjs/components/FocusVisible/FocusVisible.d.ts +4 -2
- package/dist/cjs/components/FocusVisible/FocusVisible.js +4 -3
- package/dist/cjs/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js +10 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.d.ts +3 -1
- package/dist/cjs/components/FormItem/FormItem.js +2 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/Group/Group.d.ts +5 -3
- package/dist/cjs/components/Group/Group.js +2 -2
- package/dist/cjs/components/Group/Group.js.map +1 -1
- package/dist/cjs/components/Header/Header.js +20 -16
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +4 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
- package/dist/cjs/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/cjs/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.d.ts +3 -3
- package/dist/cjs/components/IconButton/IconButton.js.map +1 -1
- package/dist/cjs/components/LocaleProvider/LocaleProvider.d.ts +2 -2
- package/dist/cjs/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/cjs/components/ModalPage/ModalPage.js +19 -3
- package/dist/cjs/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cjs/components/ModalPage/ModalPageContext.d.ts +5 -0
- package/dist/cjs/components/{Typography/types.js → ModalPage/ModalPageContext.js} +8 -1
- package/dist/cjs/components/ModalPage/ModalPageContext.js.map +1 -0
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js +6 -1
- package/dist/cjs/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.d.ts +2 -27
- package/dist/cjs/components/ModalRoot/ModalRoot.js +13 -22
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
- package/dist/cjs/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +145 -219
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/types.d.ts +28 -0
- package/dist/cjs/components/ModalRoot/types.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.d.ts +6 -5
- package/dist/cjs/components/ModalRoot/useModalManager.js +3 -3
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.d.ts +6 -2
- package/dist/cjs/components/NativeSelect/NativeSelect.js +6 -3
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/Panel/Panel.js +2 -2
- package/dist/cjs/components/Panel/Panel.js.map +1 -1
- package/dist/cjs/components/PanelHeader/PanelHeader.d.ts +11 -2
- package/dist/cjs/components/PanelHeader/PanelHeader.js +17 -7
- package/dist/cjs/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cjs/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/cjs/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cjs/components/PlatformProvider/PlatformProvider.d.ts +1 -1
- package/dist/cjs/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cjs/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cjs/components/Popover/Popover.d.ts +3 -2
- package/dist/cjs/components/Popover/Popover.js +5 -3
- package/dist/cjs/components/Popover/Popover.js.map +1 -1
- package/dist/cjs/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +3 -4
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/Radio/Radio.d.ts +2 -1
- package/dist/cjs/components/Radio/Radio.js +14 -8
- package/dist/cjs/components/Radio/Radio.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.d.ts +7 -2
- package/dist/cjs/components/Removable/Removable.js +4 -3
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/Search/Search.d.ts +3 -1
- package/dist/cjs/components/Search/Search.js +42 -57
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
- package/dist/cjs/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SelectTypography/SelectTypography.d.ts +2 -3
- package/dist/cjs/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js +8 -5
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Spacing/Spacing.d.ts +2 -2
- package/dist/cjs/components/Spacing/Spacing.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.js +1 -0
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.d.ts +4 -5
- package/dist/cjs/components/Switch/Switch.js +12 -8
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tabbar/Tabbar.js +2 -4
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
- package/dist/cjs/components/Tappable/Tappable.js +1 -0
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/cjs/components/Typography/Caption/Caption.js +10 -13
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.d.ts +2 -2
- package/dist/cjs/components/Typography/Footnote/Footnote.js +10 -13
- package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts +3 -4
- package/dist/cjs/components/Typography/Headline/Headline.js +9 -12
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts +3 -5
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js +8 -13
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/cjs/components/Typography/Subhead/Subhead.js +9 -12
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.d.ts +3 -5
- package/dist/cjs/components/Typography/Text/Text.js +8 -13
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
- package/dist/cjs/components/Typography/Title/Title.js +10 -13
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.d.ts +16 -0
- package/dist/cjs/components/Typography/Typography.js +35 -0
- package/dist/cjs/components/Typography/Typography.js.map +1 -0
- package/dist/cjs/components/UsersStack/UsersStack.d.ts +2 -2
- package/dist/cjs/components/UsersStack/UsersStack.js +2 -1
- package/dist/cjs/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cjs/components/View/View.js +1 -1
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +1 -1
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +29 -0
- package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js +5 -0
- package/dist/cjs/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js +2 -2
- package/dist/cjs/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cjs/helpers/getPlatformClassName.js +1 -1
- package/dist/cjs/helpers/getPlatformClassName.js.map +1 -1
- package/dist/cjs/hooks/useFocusWithin.d.ts +2 -0
- package/dist/cjs/hooks/useFocusWithin.js +38 -0
- package/dist/cjs/hooks/useFocusWithin.js.map +1 -0
- package/dist/cjs/hooks/useId.js +1 -1
- package/dist/cjs/hooks/useId.js.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cjs/index.d.ts +4 -2
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/utils.js +2 -2
- package/dist/cjs/lib/utils.js.map +1 -1
- package/dist/components/Accordion/Accordion.d.ts +2 -2
- package/dist/components/Accordion/Accordion.js +2 -2
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/AccordionSummary.d.ts +1 -1
- package/dist/components/Accordion/AccordionSummary.js +1 -1
- package/dist/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/components/ActionSheet/types.d.ts +1 -1
- package/dist/components/ActionSheet/types.js.map +1 -1
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
- package/dist/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
- package/dist/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
- package/dist/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRootPortal.d.ts +3 -3
- package/dist/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/components/AppRoot/ScrollContext.d.ts +2 -2
- package/dist/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/components/Button/Button.d.ts +1 -0
- package/dist/components/Button/Button.js +2 -2
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Card/Card.js +1 -3
- package/dist/components/Card/Card.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.js +4 -4
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js +10 -6
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/components/Checkbox/Checkbox.js +12 -8
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/components/ChipsSelect/ChipsSelect.js +3 -2
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/Counter/Counter.js +4 -6
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +3 -0
- package/dist/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/components/Epic/ScrollSaver.d.ts +3 -3
- package/dist/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/components/File/File.js +4 -3
- package/dist/components/File/File.js.map +1 -1
- package/dist/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/components/FocusVisible/FocusVisible.d.ts +4 -2
- package/dist/components/FocusVisible/FocusVisible.js +4 -3
- package/dist/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/components/FormField/FormField.js +10 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts +3 -1
- package/dist/components/FormItem/FormItem.js +2 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Group/Group.d.ts +5 -3
- package/dist/components/Group/Group.js +5 -3
- package/dist/components/Group/Group.js.map +1 -1
- package/dist/components/Header/Header.js +20 -16
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js +4 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js +6 -2
- package/dist/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/components/IconButton/IconButton.d.ts +3 -3
- package/dist/components/IconButton/IconButton.js.map +1 -1
- package/dist/components/LocaleProvider/LocaleProvider.d.ts +2 -2
- package/dist/components/LocaleProvider/LocaleProvider.js +2 -2
- package/dist/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/components/ModalPage/ModalPage.js +19 -3
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageContext.d.ts +5 -0
- package/dist/components/ModalPage/ModalPageContext.js +4 -0
- package/dist/components/ModalPage/ModalPageContext.js.map +1 -0
- package/dist/components/ModalPageHeader/ModalPageHeader.js +6 -1
- package/dist/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +2 -27
- package/dist/components/ModalRoot/ModalRoot.js +13 -22
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
- package/dist/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
- package/dist/components/ModalRoot/ModalRootDesktop.js +149 -223
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +28 -0
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +6 -5
- package/dist/components/ModalRoot/useModalManager.js +3 -3
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.d.ts +6 -2
- package/dist/components/NativeSelect/NativeSelect.js +6 -3
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/Panel/Panel.js +2 -2
- package/dist/components/Panel/Panel.js.map +1 -1
- package/dist/components/PanelHeader/PanelHeader.d.ts +11 -2
- package/dist/components/PanelHeader/PanelHeader.js +17 -7
- package/dist/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.d.ts +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +3 -2
- package/dist/components/Popover/Popover.js +5 -3
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/PromoBanner/PromoBanner.js +1 -0
- package/dist/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts +3 -4
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Radio/Radio.d.ts +2 -1
- package/dist/components/Radio/Radio.js +14 -8
- package/dist/components/Radio/Radio.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +7 -2
- package/dist/components/Removable/Removable.js +4 -3
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.d.ts +3 -1
- package/dist/components/Search/Search.js +42 -57
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +8 -4
- package/dist/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SelectTypography/SelectTypography.d.ts +2 -3
- package/dist/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +8 -5
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Spacing/Spacing.d.ts +2 -2
- package/dist/components/Spacing/Spacing.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.js +1 -0
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +4 -5
- package/dist/components/Switch/Switch.js +12 -8
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tabbar/Tabbar.js +2 -4
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +2 -3
- package/dist/components/Tappable/Tappable.js +1 -0
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/components/Typography/Caption/Caption.js +10 -13
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts +2 -2
- package/dist/components/Typography/Footnote/Footnote.js +10 -13
- package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +3 -4
- package/dist/components/Typography/Headline/Headline.js +9 -12
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.d.ts +3 -5
- package/dist/components/Typography/Paragraph/Paragraph.js +8 -13
- package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/components/Typography/Subhead/Subhead.js +9 -12
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.d.ts +3 -5
- package/dist/components/Typography/Text/Text.js +8 -13
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +2 -2
- package/dist/components/Typography/Title/Title.js +10 -13
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +16 -0
- package/dist/components/Typography/Typography.js +24 -0
- package/dist/components/Typography/Typography.js.map +1 -0
- package/dist/components/UsersStack/UsersStack.d.ts +2 -2
- package/dist/components/UsersStack/UsersStack.js +2 -1
- package/dist/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/components/View/View.js +1 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +1 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js +25 -0
- package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
- package/dist/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/components/WriteBarIcon/WriteBarIcon.js +2 -2
- package/dist/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/components.css +138 -138
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +3802 -3692
- package/dist/cssm/components/Accordion/Accordion.d.ts +2 -2
- package/dist/cssm/components/Accordion/Accordion.js +2 -2
- package/dist/cssm/components/Accordion/Accordion.js.map +1 -1
- package/dist/cssm/components/Accordion/Accordion.module.css +13 -1
- package/dist/cssm/components/Accordion/AccordionSummary.d.ts +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js +1 -1
- package/dist/cssm/components/Accordion/AccordionSummary.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.module.css +115 -1
- package/dist/cssm/components/ActionSheet/types.d.ts +1 -1
- package/dist/cssm/components/ActionSheet/types.js.map +1 -1
- package/dist/cssm/components/ActionSheetItem/ActionSheetItem.module.css +241 -1
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.d.ts +14 -0
- package/dist/cssm/components/{WriteBarIcon/WriteBarIconRenderer.js → AdaptiveIconRenderer/AdaptiveIconRenderer.js} +5 -2
- package/dist/cssm/components/AdaptiveIconRenderer/AdaptiveIconRenderer.js.map +1 -0
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.d.ts +4 -4
- package/dist/cssm/components/AdaptivityProvider/AdaptivityProvider.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.module.css +287 -1
- package/dist/cssm/components/AppRoot/AppRoot.module.css +23 -1
- package/dist/cssm/components/AppRoot/AppRootPortal.d.ts +3 -3
- package/dist/cssm/components/AppRoot/AppRootPortal.js.map +1 -1
- package/dist/cssm/components/AppRoot/ScrollContext.d.ts +2 -2
- package/dist/cssm/components/AppRoot/ScrollContext.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.module.css +55 -1
- package/dist/cssm/components/Avatar/AvatarBadge/AvatarBadge.module.css +29 -1
- package/dist/cssm/components/Badge/Badge.module.css +27 -1
- package/dist/cssm/components/Banner/Banner.module.css +167 -1
- package/dist/cssm/components/BaseGallery/BaseGallery.module.css +82 -1
- package/dist/cssm/components/Button/Button.d.ts +1 -0
- package/dist/cssm/components/Button/Button.js +2 -1
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Button/Button.module.css +676 -1
- package/dist/cssm/components/ButtonGroup/ButtonGroup.module.css +77 -1
- package/dist/cssm/components/Calendar/Calendar.module.css +30 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.module.css +84 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.module.css +31 -1
- package/dist/cssm/components/CalendarHeader/CalendarHeader.module.css +41 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.module.css +26 -1
- package/dist/cssm/components/CalendarTime/CalendarTime.module.css +19 -1
- package/dist/cssm/components/Card/Card.js +1 -3
- package/dist/cssm/components/Card/Card.js.map +1 -1
- package/dist/cssm/components/Card/Card.module.css +131 -3
- package/dist/cssm/components/CardGrid/CardGrid.js +4 -4
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.module.css +59 -1
- package/dist/cssm/components/CardScroll/CardScroll.module.css +64 -1
- package/dist/cssm/components/Cell/Cell.module.css +63 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.d.ts +4 -2
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +7 -5
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.module.css +13 -1
- package/dist/cssm/components/Cell/CellDragger/CellDragger.module.css +4 -1
- package/dist/cssm/components/CellButton/CellButton.module.css +57 -1
- package/dist/cssm/components/Checkbox/Checkbox.d.ts +2 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +10 -7
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.module.css +172 -1
- package/dist/cssm/components/Chip/Chip.module.css +67 -1
- package/dist/cssm/components/ChipsInput/ChipsInput.module.css +3 -1
- package/dist/cssm/components/ChipsInputBase/ChipsInputBase.module.css +115 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.d.ts +4 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/ChipsSelect/ChipsSelect.module.css +27 -1
- package/dist/cssm/components/ContentCard/ContentCard.module.css +31 -1
- package/dist/cssm/components/Counter/Counter.js +4 -6
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.module.css +72 -3
- package/dist/cssm/components/CustomScrollView/CustomScrollView.module.css +86 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -0
- package/dist/cssm/components/CustomSelect/CustomSelect.js +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.module.css +58 -1
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.module.css +43 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.module.css +81 -1
- package/dist/cssm/components/DateInput/DateInput.module.css +30 -1
- package/dist/cssm/components/DatePicker/DatePicker.module.css +30 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.module.css +26 -1
- package/dist/cssm/components/Div/Div.module.css +4 -1
- package/dist/cssm/components/Epic/Epic.module.css +4 -1
- package/dist/cssm/components/Epic/ScrollSaver.d.ts +3 -3
- package/dist/cssm/components/Epic/ScrollSaver.js.map +1 -1
- package/dist/cssm/components/File/File.js +4 -3
- package/dist/cssm/components/File/File.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.js.map +1 -1
- package/dist/cssm/components/FixedLayout/FixedLayout.module.css +58 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.d.ts +4 -2
- package/dist/cssm/components/FocusVisible/FocusVisible.js +4 -3
- package/dist/cssm/components/FocusVisible/FocusVisible.js.map +1 -1
- package/dist/cssm/components/FocusVisible/FocusVisible.module.css +104 -1
- package/dist/cssm/components/Footer/Footer.module.css +9 -1
- package/dist/cssm/components/FormField/FormField.js +10 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.module.css +211 -1
- package/dist/cssm/components/FormItem/FormItem.d.ts +3 -1
- package/dist/cssm/components/FormItem/FormItem.js +2 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.module.css +104 -1
- package/dist/cssm/components/FormLayout/FormLayout.module.css +18 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.d.ts +3 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +2 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.module.css +61 -1
- package/dist/cssm/components/FormStatus/FormStatus.module.css +3 -1
- package/dist/cssm/components/Gradient/Gradient.module.css +23 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.module.css +37 -1
- package/dist/cssm/components/GridAvatar/GridAvatarBadge/GridAvatarBadge.module.css +9 -1
- package/dist/cssm/components/Group/Group.d.ts +5 -3
- package/dist/cssm/components/Group/Group.js +5 -3
- package/dist/cssm/components/Group/Group.js.map +1 -1
- package/dist/cssm/components/Group/Group.module.css +166 -1
- package/dist/cssm/components/Header/Header.js +23 -18
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/Header/Header.module.css +207 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.module.css +79 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.d.ts +5 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +3 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.module.css +59 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.d.ts +2 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js +5 -2
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.module.css +67 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.d.ts +1 -1
- package/dist/cssm/components/HoverPopper/HoverPopper.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.d.ts +3 -3
- package/dist/cssm/components/IconButton/IconButton.js.map +1 -1
- package/dist/cssm/components/IconButton/IconButton.module.css +152 -1
- package/dist/cssm/components/Image/ImageBadge/ImageBadge.module.css +10 -1
- package/dist/cssm/components/ImageBase/ImageBase.module.css +131 -1
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.module.css +28 -1
- package/dist/cssm/components/ImageBase/ImageBaseOverlay/ImageBaseOverlay.module.css +36 -1
- package/dist/cssm/components/InfoRow/InfoRow.module.css +17 -1
- package/dist/cssm/components/Input/Input.module.css +101 -1
- package/dist/cssm/components/InputLike/InputLike.module.css +31 -1
- package/dist/cssm/components/Link/Link.module.css +43 -1
- package/dist/cssm/components/List/List.module.css +3 -1
- package/dist/cssm/components/LocaleProvider/LocaleProvider.d.ts +2 -2
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js +2 -2
- package/dist/cssm/components/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.module.css +78 -1
- package/dist/cssm/components/ModalCard/ModalCard.module.css +62 -1
- package/dist/cssm/components/ModalCardBase/ModalCardBase.module.css +102 -1
- package/dist/cssm/components/ModalDismissButton/ModalDismissButton.module.css +38 -1
- package/dist/cssm/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +17 -3
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +151 -1
- package/dist/cssm/components/ModalPage/ModalPageContext.d.ts +5 -0
- package/dist/cssm/components/ModalPage/ModalPageContext.js +4 -0
- package/dist/cssm/components/ModalPage/ModalPageContext.js.map +1 -0
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js +6 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.js.map +1 -1
- package/dist/cssm/components/ModalPageHeader/ModalPageHeader.module.css +18 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.d.ts +2 -27
- package/dist/cssm/components/ModalRoot/ModalRoot.js +12 -18
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.module.css +65 -1
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.d.ts +2 -21
- package/dist/cssm/components/ModalRoot/ModalRootAdaptive.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts +3 -28
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +106 -125
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.d.ts +28 -0
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.d.ts +6 -5
- package/dist/cssm/components/ModalRoot/useModalManager.js +3 -3
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.d.ts +6 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js +4 -3
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Pagination/Pagination.module.css +83 -1
- package/dist/cssm/components/Panel/Panel.js +2 -2
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.module.css +177 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.d.ts +11 -2
- package/dist/cssm/components/PanelHeader/PanelHeader.js +16 -7
- package/dist/cssm/components/PanelHeader/PanelHeader.js.map +1 -1
- package/dist/cssm/components/PanelHeader/PanelHeader.module.css +321 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.module.css +111 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContent/PanelHeaderContent.module.css +96 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js +3 -3
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.js.map +1 -1
- package/dist/cssm/components/PanelHeaderContext/PanelHeaderContext.module.css +169 -1
- package/dist/cssm/components/Placeholder/Placeholder.module.css +41 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.d.ts +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js +1 -1
- package/dist/cssm/components/PlatformProvider/PlatformProvider.js.map +1 -1
- package/dist/cssm/components/PopoutRoot/PopoutRoot.module.css +32 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.js.map +1 -1
- package/dist/cssm/components/PopoutWrapper/PopoutWrapper.module.css +96 -1
- package/dist/cssm/components/Popover/Popover.d.ts +3 -2
- package/dist/cssm/components/Popover/Popover.js +3 -2
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.module.css +28 -1
- package/dist/cssm/components/Popper/Popper.module.css +16 -1
- package/dist/cssm/components/PopperArrow/PopperArrow.module.css +23 -1
- package/dist/cssm/components/Progress/Progress.module.css +12 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.js +1 -0
- package/dist/cssm/components/PromoBanner/PromoBanner.js.map +1 -1
- package/dist/cssm/components/PromoBanner/PromoBanner.module.css +39 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.d.ts +3 -4
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.module.css +101 -1
- package/dist/cssm/components/Radio/Radio.d.ts +2 -1
- package/dist/cssm/components/Radio/Radio.js +11 -7
- package/dist/cssm/components/Radio/Radio.js.map +1 -1
- package/dist/cssm/components/Radio/Radio.module.css +140 -1
- package/dist/cssm/components/RadioGroup/RadioGroup.module.css +13 -1
- package/dist/cssm/components/Removable/Removable.d.ts +7 -2
- package/dist/cssm/components/Removable/Removable.js +2 -2
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.module.css +153 -1
- package/dist/cssm/components/RichCell/RichCell.module.css +144 -1
- package/dist/cssm/components/RichCell/RichCellIcon/RichCellIcon.module.css +11 -1
- package/dist/cssm/components/RichTooltip/RichTooltip.module.css +57 -1
- package/dist/cssm/components/Root/Root.js +4 -4
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/Root/Root.module.css +136 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +66 -1
- package/dist/cssm/components/Search/Search.d.ts +3 -1
- package/dist/cssm/components/Search/Search.js +38 -54
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Search/Search.module.css +156 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.module.css +64 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.d.ts +5 -3
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js +7 -4
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.js.map +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControlOption/SegmentedControlOption.module.css +52 -1
- package/dist/cssm/components/Select/Select.module.css +87 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.d.ts +2 -3
- package/dist/cssm/components/SelectTypography/SelectTypography.js.map +1 -1
- package/dist/cssm/components/SelectTypography/SelectTypography.module.css +30 -1
- package/dist/cssm/components/Separator/Separator.module.css +48 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +8 -5
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.module.css +223 -1
- package/dist/cssm/components/Slider/Slider.module.css +134 -1
- package/dist/cssm/components/Snackbar/Snackbar.module.css +165 -1
- package/dist/cssm/components/Spacing/Spacing.d.ts +2 -2
- package/dist/cssm/components/Spacing/Spacing.js.map +1 -1
- package/dist/cssm/components/Spacing/Spacing.module.css +4 -1
- package/dist/cssm/components/Spinner/Spinner.module.css +36 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +1 -0
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.module.css +51 -1
- package/dist/cssm/components/SplitLayout/SplitLayout.module.css +29 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.module.css +16 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -3
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.module.css +166 -1
- package/dist/cssm/components/Switch/Switch.d.ts +4 -5
- package/dist/cssm/components/Switch/Switch.js +11 -8
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.module.css +200 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +2 -4
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.module.css +34 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.module.css +118 -1
- package/dist/cssm/components/Tabs/Tabs.module.css +62 -1
- package/dist/cssm/components/TabsItem/TabsItem.module.css +229 -1
- package/dist/cssm/components/Tappable/Tappable.d.ts +2 -3
- package/dist/cssm/components/Tappable/Tappable.js +1 -0
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.module.css +142 -1
- package/dist/cssm/components/TextTooltip/TextTooltip.module.css +58 -1
- package/dist/cssm/components/Textarea/Textarea.module.css +87 -1
- package/dist/cssm/components/Tooltip/Tooltip.module.css +57 -1
- package/dist/cssm/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/cssm/components/Typography/Caption/Caption.js +9 -10
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.module.css +45 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.d.ts +2 -2
- package/dist/cssm/components/Typography/Footnote/Footnote.js +7 -10
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.module.css +14 -1
- package/dist/cssm/components/Typography/Headline/Headline.d.ts +3 -4
- package/dist/cssm/components/Typography/Headline/Headline.js +9 -10
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts +3 -5
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js +8 -10
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +6 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/cssm/components/Typography/Subhead/Subhead.js +8 -9
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.module.css +18 -1
- package/dist/cssm/components/Typography/Text/Text.d.ts +3 -5
- package/dist/cssm/components/Typography/Text/Text.js +8 -10
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.module.css +29 -1
- package/dist/cssm/components/Typography/Title/Title.d.ts +2 -2
- package/dist/cssm/components/Typography/Title/Title.js +9 -10
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.module.css +20 -1
- package/dist/cssm/components/Typography/Typography.d.ts +16 -0
- package/dist/cssm/components/Typography/Typography.js +14 -0
- package/dist/cssm/components/Typography/Typography.js.map +1 -0
- package/dist/cssm/components/Typography/Typography.module.css +18 -0
- package/dist/cssm/components/UsersStack/UsersStack.d.ts +2 -2
- package/dist/cssm/components/UsersStack/UsersStack.js +2 -1
- package/dist/cssm/components/UsersStack/UsersStack.js.map +1 -1
- package/dist/cssm/components/UsersStack/UsersStack.module.css +77 -1
- package/dist/cssm/components/View/View.js +6 -7
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/View.module.css +228 -1
- package/dist/cssm/components/View/ViewInfinite.js +6 -7
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.d.ts +14 -0
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js +19 -0
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +10 -0
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.d.ts +4 -4
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js +9 -4
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.js.map +1 -1
- package/dist/cssm/components/VisuallyHiddenInput/VisuallyHiddenInput.module.css +10 -1
- package/dist/cssm/components/WriteBar/WriteBar.module.css +119 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js +2 -2
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.js.map +1 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIcon.module.css +66 -1
- package/dist/cssm/helpers/getPlatformClassName.js +1 -1
- package/dist/cssm/helpers/getPlatformClassName.js.map +1 -1
- package/dist/cssm/hooks/useFocusWithin.d.ts +2 -0
- package/dist/cssm/hooks/useFocusWithin.js +26 -0
- package/dist/cssm/hooks/useFocusWithin.js.map +1 -0
- package/dist/cssm/hooks/useId.js +1 -1
- package/dist/cssm/hooks/useId.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/index.d.ts +4 -2
- package/dist/cssm/index.js +2 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/utils.js +2 -2
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/adaptivity.module.css +87 -1
- package/dist/cssm/styles/common.css +36 -1
- package/dist/cssm/styles/constants.css +86 -1
- package/dist/cssm/styles/themes.css +1039 -1
- package/dist/helpers/getPlatformClassName.js +1 -1
- package/dist/helpers/getPlatformClassName.js.map +1 -1
- package/dist/hooks/useFocusWithin.d.ts +2 -0
- package/dist/hooks/useFocusWithin.js +27 -0
- package/dist/hooks/useFocusWithin.js.map +1 -0
- package/dist/hooks/useId.js +1 -1
- package/dist/hooks/useId.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.js +2 -2
- package/dist/lib/utils.js.map +1 -1
- package/dist/vkui.css +139 -139
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +3802 -3692
- package/package.json +24 -17
- package/dist/cjs/components/Typography/types.d.ts +0 -11
- package/dist/cjs/components/Typography/types.js.map +0 -1
- package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
- package/dist/cjs/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
- package/dist/components/Typography/types.d.ts +0 -11
- package/dist/components/Typography/types.js +0 -3
- package/dist/components/Typography/types.js.map +0 -1
- package/dist/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
- package/dist/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
- package/dist/cssm/components/Typography/types.d.ts +0 -11
- package/dist/cssm/components/Typography/types.js +0 -3
- package/dist/cssm/components/Typography/types.js.map +0 -1
- package/dist/cssm/components/View/ViewIOS.module.css +0 -1
- package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.d.ts +0 -10
- package/dist/cssm/components/WriteBarIcon/WriteBarIconRenderer.js.map +0 -1
- package/dist/cssm/styles/animations.css +0 -1
|
@@ -1 +1,65 @@
|
|
|
1
|
-
.
|
|
1
|
+
.ModalRoot {
|
|
2
|
+
width: 100%;
|
|
3
|
+
height: 100%;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.ModalRoot__mask {
|
|
7
|
+
opacity: 1;
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 100%;
|
|
10
|
+
position: absolute;
|
|
11
|
+
left: 0;
|
|
12
|
+
top: 0;
|
|
13
|
+
background: rgba(0, 0, 0, 0.4);
|
|
14
|
+
-webkit-user-select: none;
|
|
15
|
+
-moz-user-select: none;
|
|
16
|
+
-ms-user-select: none;
|
|
17
|
+
user-select: none;
|
|
18
|
+
transition: opacity 167ms ease-out;
|
|
19
|
+
animation: vkui-animation-fadeIn 0.32s ease;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.ModalRoot--touched .ModalRoot__mask {
|
|
23
|
+
transition: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.ModalRoot--switching .ModalRoot__mask {
|
|
27
|
+
/** Во время автоматической анимации смены модалок с фоном взаимодействовать нельзя */
|
|
28
|
+
pointer-events: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.ModalRoot__viewport {
|
|
32
|
+
position: absolute;
|
|
33
|
+
top: 0;
|
|
34
|
+
right: 0;
|
|
35
|
+
bottom: 0;
|
|
36
|
+
left: 0;
|
|
37
|
+
pointer-events: none;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:not(.ModalRoot--desktop).ModalRoot .ModalRoot__viewport {
|
|
41
|
+
top: var(--vkui_internal--safe_area_inset_top);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:not(.ModalRoot--desktop).ModalRoot--vkapps .ModalRoot__viewport {
|
|
45
|
+
top: calc(
|
|
46
|
+
var(--vkui_internal--safe_area_inset_top) + var(--vkui--size_panel_header_height--regular)
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.ModalRoot__modal {
|
|
51
|
+
position: absolute;
|
|
52
|
+
width: 100%;
|
|
53
|
+
height: 100%;
|
|
54
|
+
box-sizing: border-box;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@keyframes vkui-animation-fadeIn {
|
|
58
|
+
from {
|
|
59
|
+
opacity: 0;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
to {
|
|
63
|
+
opacity: 1;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -1,24 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
activeModal?: string | null;
|
|
4
|
-
/**
|
|
5
|
-
* Будет вызвано при начале открытия активной модалки с её id
|
|
6
|
-
*/
|
|
7
|
-
onOpen?(modalId: string): void;
|
|
8
|
-
/**
|
|
9
|
-
* Будет вызвано при окончательном открытии активной модалки с её id
|
|
10
|
-
*/
|
|
11
|
-
onOpened?(modalId: string): void;
|
|
12
|
-
/**
|
|
13
|
-
* Будет вызвано при начале закрытия активной модалки с её id
|
|
14
|
-
*/
|
|
15
|
-
onClose?(modalId: string): void;
|
|
16
|
-
/**
|
|
17
|
-
* Будет вызвано при окончательном закрытии активной модалки с её id
|
|
18
|
-
*/
|
|
19
|
-
onClosed?(modalId: string): void;
|
|
20
|
-
children?: React.ReactNode;
|
|
21
|
-
}
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ModalRootProps } from './types';
|
|
22
3
|
/**
|
|
23
4
|
* @see https://vkcom.github.io/VKUI/#/ModalRoot
|
|
24
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootAdaptive.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useAdaptivityWithJSMediaQueries } from '../../hooks/useAdaptivityWithJSMediaQueries';\nimport { useScrollLock } from '../AppRoot/ScrollContext';\nimport { ModalRootTouch } from './ModalRoot';\nimport { ModalRootDesktop } from './ModalRootDesktop';\nimport { ModalRootProps } from './types';\n\n/**\n * @see https://vkcom.github.io/VKUI/#/ModalRoot\n */\nexport const ModalRoot = (props: ModalRootProps) => {\n const { isDesktop } = useAdaptivityWithJSMediaQueries();\n\n useScrollLock(!!props.activeModal);\n\n const RootComponent = isDesktop ? ModalRootDesktop : ModalRootTouch;\n\n return <RootComponent {...props} />;\n};\n"],"names":["React","useAdaptivityWithJSMediaQueries","useScrollLock","ModalRootTouch","ModalRootDesktop","ModalRoot","props","isDesktop","activeModal","RootComponent"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,+BAA+B,QAAQ,8CAA8C;AAC9F,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,cAAc,QAAQ,cAAc;AAC7C,SAASC,gBAAgB,QAAQ,qBAAqB;AAGtD;;CAEC,GACD,OAAO,MAAMC,YAAY,CAACC,QAA0B;IAClD,MAAM,EAAEC,UAAS,EAAE,GAAGN;IAEtBC,cAAc,CAAC,CAACI,MAAME,WAAW;IAEjC,MAAMC,gBAAgBF,YAAYH,mBAAmBD,cAAc;IAEnE,qBAAO,oBAACM,eAAkBH;AAC5B,EAAE"}
|
|
@@ -1,28 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
export interface ModalRootProps extends HasPlatform {
|
|
5
|
-
activeModal?: string | null;
|
|
6
|
-
/**
|
|
7
|
-
* @ignore
|
|
8
|
-
*/
|
|
9
|
-
configProvider?: ConfigProviderContextInterface;
|
|
10
|
-
children?: React.ReactNode;
|
|
11
|
-
/**
|
|
12
|
-
* Будет вызвано при начале открытия активной модалки с её id
|
|
13
|
-
*/
|
|
14
|
-
onOpen?(modalId: string): void;
|
|
15
|
-
/**
|
|
16
|
-
* Будет вызвано при окончательном открытии активной модалки с её id
|
|
17
|
-
*/
|
|
18
|
-
onOpened?(modalId: string): void;
|
|
19
|
-
/**
|
|
20
|
-
* Будет вызвано при начале закрытия активной модалки с её id
|
|
21
|
-
*/
|
|
22
|
-
onClose?(modalId: string): void;
|
|
23
|
-
/**
|
|
24
|
-
* Будет вызвано при окончательном закрытии активной модалки с её id
|
|
25
|
-
*/
|
|
26
|
-
onClosed?(modalId: string): void;
|
|
27
|
-
}
|
|
28
|
-
export declare const ModalRootDesktop: React.FC<Omit<ModalRootProps, "platform">>;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ModalRootWithDOMProps } from './types';
|
|
3
|
+
export declare const ModalRootDesktop: ({ activeModal: activeModalProp, children, onOpen, onOpened, onClose, onClosed, }: ModalRootWithDOMProps) => JSX.Element | null;
|
|
@@ -1,77 +1,74 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { classNames } from '@vkontakte/vkjs';
|
|
2
|
+
import { classNames, noop } from '@vkontakte/vkjs';
|
|
3
3
|
import { clamp } from '../../helpers/math';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
4
|
+
import { useObjectMemo } from '../../hooks/useObjectMemo';
|
|
5
|
+
import { usePrevious } from '../../hooks/usePrevious';
|
|
6
|
+
import { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';
|
|
7
|
+
import { useDOM } from '../../lib/dom';
|
|
7
8
|
import { getNavId } from '../../lib/getNavId';
|
|
8
9
|
import { Platform } from '../../lib/platform';
|
|
9
|
-
import { transitionEvent } from '../../lib/supportEvents';
|
|
10
10
|
import { warnOnce } from '../../lib/warnOnce';
|
|
11
|
-
import {
|
|
11
|
+
import { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';
|
|
12
12
|
import { FocusTrap } from '../FocusTrap/FocusTrap';
|
|
13
13
|
import { ModalRootContext } from './ModalRootContext';
|
|
14
|
-
import {
|
|
14
|
+
import { useModalManager } from './useModalManager';
|
|
15
15
|
import styles from './ModalRoot.module.css';
|
|
16
16
|
const warn = warnOnce('ModalRoot');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
modalRootContext
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
componentDidUpdate(prevProps) {
|
|
45
|
-
// transition phase 2: animate exiting modal
|
|
46
|
-
if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {
|
|
47
|
-
this.closeModal(this.props.exitingModal);
|
|
48
|
-
}
|
|
49
|
-
// transition phase 3: animate entering modal
|
|
50
|
-
if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {
|
|
51
|
-
this.openModal(prevProps);
|
|
17
|
+
export const ModalRootDesktop = ({ activeModal: activeModalProp , children , onOpen , onOpened , onClose , onClosed })=>{
|
|
18
|
+
const maskElementRef = React.useRef(null);
|
|
19
|
+
const maskAnimationFrame = React.useRef(undefined);
|
|
20
|
+
const restoreFocusTo = React.useRef(undefined);
|
|
21
|
+
const { document } = useDOM();
|
|
22
|
+
const { webviewType , platform } = useConfigProvider();
|
|
23
|
+
const { activeModal , exitingModal , onExit , getModalState , enteringModal , onEnter , onEntered , onExited , history , delayEnter } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);
|
|
24
|
+
const { waitTransitionFinish } = useWaitTransitionFinish();
|
|
25
|
+
const prevProps = usePrevious({
|
|
26
|
+
exitingModal,
|
|
27
|
+
enteringModal,
|
|
28
|
+
activeModal
|
|
29
|
+
});
|
|
30
|
+
const modalRootContext = useObjectMemo({
|
|
31
|
+
updateModalHeight: ()=>undefined,
|
|
32
|
+
registerModal: ({ id , ...data })=>Object.assign(getModalState(id) ?? {}, data),
|
|
33
|
+
onClose: onExit,
|
|
34
|
+
isInsideModal: true
|
|
35
|
+
});
|
|
36
|
+
const timeout = platform === Platform.IOS ? 400 : 320;
|
|
37
|
+
const modals = React.Children.toArray(children);
|
|
38
|
+
/* Анимирует сдвиг модального окна */ const animateModalOpacity = (modalState, display)=>{
|
|
39
|
+
if (modalState?.innerElement) {
|
|
40
|
+
modalState.innerElement.style.transition = '';
|
|
41
|
+
modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';
|
|
42
|
+
modalState.innerElement.style.opacity = display ? '1' : '0';
|
|
52
43
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
44
|
+
};
|
|
45
|
+
/* Устанавливает прозрачность для полупрозрачной подложки */ const setMaskOpacity = (modalState, forceOpacity = null)=>{
|
|
46
|
+
if (forceOpacity === null && history?.[0] !== modalState.id) {
|
|
47
|
+
return;
|
|
56
48
|
}
|
|
57
|
-
if (
|
|
58
|
-
|
|
59
|
-
this.restoreFocusTo = undefined;
|
|
49
|
+
if (maskAnimationFrame.current) {
|
|
50
|
+
cancelAnimationFrame(maskAnimationFrame.current);
|
|
60
51
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
52
|
+
maskAnimationFrame.current = requestAnimationFrame(()=>{
|
|
53
|
+
if (maskElementRef.current) {
|
|
54
|
+
const { translateY =0 , translateYCurrent =0 } = modalState;
|
|
55
|
+
const opacity = forceOpacity === null ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0 : forceOpacity;
|
|
56
|
+
maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
const openModal = ()=>{
|
|
61
|
+
if (!enteringModal || !prevProps) {
|
|
65
62
|
return;
|
|
66
63
|
}
|
|
67
|
-
const enteringState =
|
|
68
|
-
|
|
64
|
+
const enteringState = getModalState(enteringModal);
|
|
65
|
+
onEnter();
|
|
69
66
|
// Анимация открытия модального окна
|
|
70
67
|
if (!prevProps.exitingModal) {
|
|
71
68
|
requestAnimationFrame(()=>{
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
|
|
69
|
+
if (enteringModal === enteringModal) {
|
|
70
|
+
waitTransitionFinish(enteringState?.innerElement, ()=>onEntered(enteringModal), timeout);
|
|
71
|
+
animateModalOpacity(enteringState, true);
|
|
75
72
|
}
|
|
76
73
|
});
|
|
77
74
|
return;
|
|
@@ -81,89 +78,73 @@ class ModalRootDesktopComponent extends React.Component {
|
|
|
81
78
|
enteringState.innerElement.style.transition = 'none';
|
|
82
79
|
enteringState.innerElement.style.opacity = '1';
|
|
83
80
|
}
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
closeModal(id)
|
|
87
|
-
const prevModalState =
|
|
81
|
+
onEntered(enteringModal);
|
|
82
|
+
};
|
|
83
|
+
const closeModal = (id)=>{
|
|
84
|
+
const prevModalState = getModalState(id);
|
|
88
85
|
if (!prevModalState) {
|
|
89
86
|
return;
|
|
90
87
|
}
|
|
91
88
|
// Анимация закрытия модального окна
|
|
92
|
-
if (!
|
|
89
|
+
if (!activeModal) {
|
|
93
90
|
requestAnimationFrame(()=>{
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
91
|
+
waitTransitionFinish(prevModalState?.innerElement, ()=>onExited(id), timeout);
|
|
92
|
+
animateModalOpacity(prevModalState, false);
|
|
93
|
+
setMaskOpacity(prevModalState, 0);
|
|
97
94
|
});
|
|
98
95
|
return;
|
|
99
96
|
}
|
|
100
97
|
// Переход между модальными окнами без анимации
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
if (
|
|
105
|
-
|
|
106
|
-
modalState?.innerElement?.removeEventListener(transitionEvent.name, onceHandler);
|
|
107
|
-
eventHandler();
|
|
108
|
-
};
|
|
109
|
-
modalState?.innerElement?.addEventListener(transitionEvent.name, onceHandler);
|
|
110
|
-
} else {
|
|
111
|
-
setTimeout(eventHandler, this.timeout);
|
|
98
|
+
onExited(id);
|
|
99
|
+
};
|
|
100
|
+
React.useEffect(()=>{
|
|
101
|
+
if (!prevProps) {
|
|
102
|
+
return;
|
|
112
103
|
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
modalState.innerElement.style.transition = '';
|
|
117
|
-
modalState.innerElement.style.transitionDelay = display && this.props.delayEnter ? `${this.timeout}ms` : '';
|
|
118
|
-
modalState.innerElement.style.opacity = display ? '1' : '0';
|
|
104
|
+
// transition phase 2: animate exiting modal
|
|
105
|
+
if (exitingModal && exitingModal !== prevProps.exitingModal) {
|
|
106
|
+
closeModal(exitingModal);
|
|
119
107
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
return;
|
|
108
|
+
// transition phase 3: animate entering modal
|
|
109
|
+
if (enteringModal && enteringModal !== prevProps.enteringModal) {
|
|
110
|
+
openModal();
|
|
124
111
|
}
|
|
125
|
-
|
|
126
|
-
|
|
112
|
+
// focus restoration
|
|
113
|
+
if (activeModal && !prevProps.activeModal) {
|
|
114
|
+
restoreFocusTo.current = document?.activeElement ?? undefined;
|
|
127
115
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
116
|
+
if (!activeModal && !exitingModal && restoreFocusTo.current) {
|
|
117
|
+
restoreFocusTo.current.focus();
|
|
118
|
+
restoreFocusTo.current = undefined;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
if (!activeModal && !exitingModal) {
|
|
122
|
+
return null;
|
|
135
123
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
124
|
+
return /*#__PURE__*/ React.createElement(ModalRootContext.Provider, {
|
|
125
|
+
value: modalRootContext
|
|
126
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
127
|
+
className: classNames(styles['ModalRoot'], webviewType === WebviewType.VKAPPS && styles['ModalRoot--vkapps'], styles['ModalRoot--desktop'])
|
|
128
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
129
|
+
className: styles['ModalRoot__mask'],
|
|
130
|
+
ref: maskElementRef,
|
|
131
|
+
onClick: onExit
|
|
132
|
+
}), /*#__PURE__*/ React.createElement("div", {
|
|
133
|
+
className: styles['ModalRoot__viewport']
|
|
134
|
+
}, modals.map((Modal)=>{
|
|
135
|
+
const modalId = getNavId(Modal.props, warn);
|
|
136
|
+
if (modalId !== activeModal && modalId !== exitingModal) {
|
|
139
137
|
return null;
|
|
140
138
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}, this.modals.map((Modal)=>{
|
|
152
|
-
const modalId = getNavId(Modal.props, warn);
|
|
153
|
-
if (modalId !== activeModal && modalId !== exitingModal) {
|
|
154
|
-
return null;
|
|
155
|
-
}
|
|
156
|
-
const key = `modal-${modalId}`;
|
|
157
|
-
return /*#__PURE__*/ React.createElement(FocusTrap, {
|
|
158
|
-
restoreFocus: false,
|
|
159
|
-
onClose: this.props.onExit,
|
|
160
|
-
timeout: this.timeout,
|
|
161
|
-
key: key,
|
|
162
|
-
className: styles['ModalRoot__modal']
|
|
163
|
-
}, Modal);
|
|
164
|
-
}))));
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
export const ModalRootDesktop = withContext(withPlatform(withDOM(withModalManager()(ModalRootDesktopComponent))), ConfigProviderContext, 'configProvider');
|
|
139
|
+
const key = `modal-${modalId}`;
|
|
140
|
+
return /*#__PURE__*/ React.createElement(FocusTrap, {
|
|
141
|
+
restoreFocus: false,
|
|
142
|
+
onClose: onExit,
|
|
143
|
+
timeout: timeout,
|
|
144
|
+
key: key,
|
|
145
|
+
className: styles['ModalRoot__modal']
|
|
146
|
+
}, Modal);
|
|
147
|
+
}))));
|
|
148
|
+
};
|
|
168
149
|
|
|
169
150
|
//# sourceMappingURL=ModalRootDesktop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { withContext } from '../../hoc/withContext';\nimport { withPlatform } from '../../hoc/withPlatform';\nimport { DOMProps, withDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { transitionEvent } from '../../lib/supportEvents';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { HasPlatform } from '../../types';\nimport {\n ConfigProviderContext,\n ConfigProviderContextInterface,\n WebviewType,\n} from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { ModalsStateEntry } from './types';\nimport { ModalTransitionProps, withModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport interface ModalRootProps extends HasPlatform {\n activeModal?: string | null;\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n children?: React.ReactNode;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n}\n\nclass ModalRootDesktopComponent extends React.Component<\n ModalRootProps & DOMProps & ModalTransitionProps\n> {\n constructor(props: ModalRootProps & ModalTransitionProps) {\n super(props);\n\n this.maskElementRef = React.createRef();\n\n this.modalRootContext = {\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(this.getModalState(id) ?? {}, data),\n onClose: () => this.props.onExit(),\n isInsideModal: true,\n };\n }\n\n private readonly maskElementRef: React.RefObject<HTMLDivElement>;\n private maskAnimationFrame: number | undefined = undefined;\n private readonly modalRootContext: ModalRootContextInterface;\n private restoreFocusTo: HTMLElement | undefined = undefined;\n\n private get timeout() {\n return this.props.platform === Platform.IOS ? 400 : 320;\n }\n\n private get modals() {\n return React.Children.toArray(this.props.children) as React.ReactElement[];\n }\n\n getModalState(id: string | null) {\n if (id === null) {\n return undefined;\n }\n return this.props.getModalState(id);\n }\n\n componentDidUpdate(prevProps: ModalRootProps & ModalTransitionProps) {\n // transition phase 2: animate exiting modal\n if (this.props.exitingModal && this.props.exitingModal !== prevProps.exitingModal) {\n this.closeModal(this.props.exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (this.props.enteringModal && this.props.enteringModal !== prevProps.enteringModal) {\n this.openModal(prevProps);\n }\n\n // focus restoration\n if (this.props.activeModal && !prevProps.activeModal) {\n this.restoreFocusTo = (this.props.document?.activeElement ?? undefined) as\n | HTMLElement\n | undefined;\n }\n if (!this.props.activeModal && !this.props.exitingModal && this.restoreFocusTo) {\n this.restoreFocusTo.focus();\n this.restoreFocusTo = undefined;\n }\n }\n\n openModal(prevProps: ModalRootProps & ModalTransitionProps) {\n const { enteringModal } = this.props;\n if (!enteringModal) {\n return;\n }\n\n const enteringState = this.getModalState(enteringModal);\n this.props.onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (this.props.enteringModal === enteringModal) {\n this.waitTransitionFinish(enteringState, () => this.props.onEntered(enteringModal));\n this.animateModalOpacity(enteringState, true);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n }\n\n this.props.onEntered(enteringModal);\n }\n\n closeModal(id: string) {\n const prevModalState = this.getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!this.props.activeModal) {\n requestAnimationFrame(() => {\n this.waitTransitionFinish(prevModalState, () => this.props.onExited(id));\n this.animateModalOpacity(prevModalState, false);\n this.setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n this.props.onExited(id);\n }\n\n waitTransitionFinish(modalState: ModalsStateEntry | undefined, eventHandler: () => void) {\n if (transitionEvent.supported) {\n const onceHandler = () => {\n modalState?.innerElement?.removeEventListener(transitionEvent.name as string, onceHandler);\n eventHandler();\n };\n\n modalState?.innerElement?.addEventListener(transitionEvent.name as string, onceHandler);\n } else {\n setTimeout(eventHandler, this.timeout);\n }\n }\n\n /* Анимирует сдвиг модалки */\n animateModalOpacity(modalState: ModalsStateEntry | undefined, display: boolean) {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay =\n display && this.props.delayEnter ? `${this.timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n }\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n setMaskOpacity(modalState: ModalsStateEntry, forceOpacity: number | null = null) {\n if (forceOpacity === null && this.props.history?.[0] !== modalState.id) {\n return;\n }\n\n if (this.maskAnimationFrame) {\n cancelAnimationFrame(this.maskAnimationFrame);\n }\n this.maskAnimationFrame = requestAnimationFrame(() => {\n if (this.maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n this.maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n }\n\n render() {\n const { exitingModal, activeModal } = this.props;\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={this.modalRootContext}>\n <div\n className={classNames(\n styles['ModalRoot'],\n this.props.configProvider?.webviewType === WebviewType.VKAPPS &&\n styles['ModalRoot--vkapps'],\n styles['ModalRoot--desktop'],\n )}\n >\n <div\n className={styles['ModalRoot__mask']}\n ref={this.maskElementRef}\n onClick={this.props.onExit}\n />\n <div className={styles['ModalRoot__viewport']}>\n {this.modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n restoreFocus={false}\n onClose={this.props.onExit}\n timeout={this.timeout}\n key={key}\n className={styles['ModalRoot__modal']}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n }\n}\n\nexport const ModalRootDesktop = withContext(\n withPlatform(withDOM<ModalRootProps>(withModalManager()(ModalRootDesktopComponent))),\n ConfigProviderContext,\n 'configProvider',\n);\n"],"names":["React","classNames","clamp","withContext","withPlatform","withDOM","getNavId","Platform","transitionEvent","warnOnce","ConfigProviderContext","WebviewType","FocusTrap","ModalRootContext","withModalManager","styles","warn","ModalRootDesktopComponent","Component","constructor","props","maskElementRef","createRef","modalRootContext","updateModalHeight","undefined","registerModal","id","data","Object","assign","getModalState","onClose","onExit","isInsideModal","maskAnimationFrame","restoreFocusTo","timeout","platform","IOS","modals","Children","toArray","children","componentDidUpdate","prevProps","exitingModal","closeModal","enteringModal","openModal","activeModal","document","activeElement","focus","enteringState","onEnter","requestAnimationFrame","waitTransitionFinish","onEntered","animateModalOpacity","innerElement","style","transition","opacity","prevModalState","onExited","setMaskOpacity","modalState","eventHandler","supported","onceHandler","removeEventListener","name","addEventListener","setTimeout","display","transitionDelay","delayEnter","forceOpacity","history","cancelAnimationFrame","current","translateY","translateYCurrent","toString","render","Provider","value","div","className","configProvider","webviewType","VKAPPS","ref","onClick","map","Modal","modalId","key","restoreFocus","ModalRootDesktop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalRoot/ModalRootDesktop.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { clamp } from '../../helpers/math';\nimport { useObjectMemo } from '../../hooks/useObjectMemo';\nimport { usePrevious } from '../../hooks/usePrevious';\nimport { useWaitTransitionFinish } from '../../hooks/useWaitTransitionFinish';\nimport { useDOM } from '../../lib/dom';\nimport { getNavId } from '../../lib/getNavId';\nimport { Platform } from '../../lib/platform';\nimport { warnOnce } from '../../lib/warnOnce';\nimport { useConfigProvider, WebviewType } from '../ConfigProvider/ConfigProviderContext';\nimport { FocusTrap } from '../FocusTrap/FocusTrap';\nimport { ModalRootContext, ModalRootContextInterface } from './ModalRootContext';\nimport { ModalRootWithDOMProps, ModalsStateEntry } from './types';\nimport { useModalManager } from './useModalManager';\nimport styles from './ModalRoot.module.css';\n\nconst warn = warnOnce('ModalRoot');\n\nexport const ModalRootDesktop = ({\n activeModal: activeModalProp,\n children,\n onOpen,\n onOpened,\n onClose,\n onClosed,\n}: ModalRootWithDOMProps) => {\n const maskElementRef = React.useRef<HTMLDivElement>(null);\n const maskAnimationFrame = React.useRef<number | undefined>(undefined);\n const restoreFocusTo = React.useRef<HTMLElement | undefined>(undefined);\n\n const { document } = useDOM();\n const { webviewType, platform } = useConfigProvider();\n const {\n activeModal,\n exitingModal,\n onExit,\n getModalState,\n enteringModal,\n onEnter,\n onEntered,\n onExited,\n history,\n delayEnter,\n } = useModalManager(activeModalProp, children, onOpen, onOpened, onClose, onClosed, noop);\n\n const { waitTransitionFinish } = useWaitTransitionFinish();\n const prevProps = usePrevious({\n exitingModal,\n enteringModal,\n activeModal,\n });\n const modalRootContext: ModalRootContextInterface = useObjectMemo({\n updateModalHeight: () => undefined,\n registerModal: ({ id, ...data }) => Object.assign(getModalState(id) ?? {}, data),\n onClose: onExit,\n isInsideModal: true,\n });\n\n const timeout = platform === Platform.IOS ? 400 : 320;\n const modals = React.Children.toArray(children) as React.ReactElement[];\n\n /* Анимирует сдвиг модального окна */\n const animateModalOpacity = (modalState: ModalsStateEntry | undefined, display: boolean) => {\n if (modalState?.innerElement) {\n modalState.innerElement.style.transition = '';\n modalState.innerElement.style.transitionDelay = display && delayEnter ? `${timeout}ms` : '';\n modalState.innerElement.style.opacity = display ? '1' : '0';\n }\n };\n\n /* Устанавливает прозрачность для полупрозрачной подложки */\n const setMaskOpacity = (modalState: ModalsStateEntry, forceOpacity: number | null = null) => {\n if (forceOpacity === null && history?.[0] !== modalState.id) {\n return;\n }\n\n if (maskAnimationFrame.current) {\n cancelAnimationFrame(maskAnimationFrame.current);\n }\n maskAnimationFrame.current = requestAnimationFrame(() => {\n if (maskElementRef.current) {\n const { translateY = 0, translateYCurrent = 0 } = modalState;\n\n const opacity =\n forceOpacity === null\n ? 1 - (translateYCurrent - translateY) / (100 - translateY) || 0\n : forceOpacity;\n maskElementRef.current.style.opacity = clamp(opacity, 0, 100).toString();\n }\n });\n };\n\n const openModal = () => {\n if (!enteringModal || !prevProps) {\n return;\n }\n\n const enteringState = getModalState(enteringModal);\n onEnter();\n\n // Анимация открытия модального окна\n if (!prevProps.exitingModal) {\n requestAnimationFrame(() => {\n if (enteringModal === enteringModal) {\n waitTransitionFinish(\n enteringState?.innerElement,\n () => onEntered(enteringModal),\n timeout,\n );\n animateModalOpacity(enteringState, true);\n }\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n if (enteringState?.innerElement) {\n enteringState.innerElement.style.transition = 'none';\n enteringState.innerElement.style.opacity = '1';\n }\n\n onEntered(enteringModal);\n };\n\n const closeModal = (id: string) => {\n const prevModalState = getModalState(id);\n if (!prevModalState) {\n return;\n }\n\n // Анимация закрытия модального окна\n if (!activeModal) {\n requestAnimationFrame(() => {\n waitTransitionFinish(prevModalState?.innerElement, () => onExited(id), timeout);\n animateModalOpacity(prevModalState, false);\n setMaskOpacity(prevModalState, 0);\n });\n\n return;\n }\n\n // Переход между модальными окнами без анимации\n onExited(id);\n };\n\n React.useEffect(() => {\n if (!prevProps) {\n return;\n }\n\n // transition phase 2: animate exiting modal\n if (exitingModal && exitingModal !== prevProps.exitingModal) {\n closeModal(exitingModal);\n }\n\n // transition phase 3: animate entering modal\n if (enteringModal && enteringModal !== prevProps.enteringModal) {\n openModal();\n }\n\n // focus restoration\n if (activeModal && !prevProps.activeModal) {\n restoreFocusTo.current = (document?.activeElement ?? undefined) as HTMLElement | undefined;\n }\n if (!activeModal && !exitingModal && restoreFocusTo.current) {\n restoreFocusTo.current.focus();\n restoreFocusTo.current = undefined;\n }\n });\n\n if (!activeModal && !exitingModal) {\n return null;\n }\n\n return (\n <ModalRootContext.Provider value={modalRootContext}>\n <div\n className={classNames(\n styles['ModalRoot'],\n webviewType === WebviewType.VKAPPS && styles['ModalRoot--vkapps'],\n styles['ModalRoot--desktop'],\n )}\n >\n <div className={styles['ModalRoot__mask']} ref={maskElementRef} onClick={onExit} />\n <div className={styles['ModalRoot__viewport']}>\n {modals.map((Modal: React.ReactElement) => {\n const modalId = getNavId(Modal.props, warn);\n if (modalId !== activeModal && modalId !== exitingModal) {\n return null;\n }\n\n const key = `modal-${modalId}`;\n\n return (\n <FocusTrap\n restoreFocus={false}\n onClose={onExit}\n timeout={timeout}\n key={key}\n className={styles['ModalRoot__modal']}\n >\n {Modal}\n </FocusTrap>\n );\n })}\n </div>\n </div>\n </ModalRootContext.Provider>\n );\n};\n"],"names":["React","classNames","noop","clamp","useObjectMemo","usePrevious","useWaitTransitionFinish","useDOM","getNavId","Platform","warnOnce","useConfigProvider","WebviewType","FocusTrap","ModalRootContext","useModalManager","styles","warn","ModalRootDesktop","activeModal","activeModalProp","children","onOpen","onOpened","onClose","onClosed","maskElementRef","useRef","maskAnimationFrame","undefined","restoreFocusTo","document","webviewType","platform","exitingModal","onExit","getModalState","enteringModal","onEnter","onEntered","onExited","history","delayEnter","waitTransitionFinish","prevProps","modalRootContext","updateModalHeight","registerModal","id","data","Object","assign","isInsideModal","timeout","IOS","modals","Children","toArray","animateModalOpacity","modalState","display","innerElement","style","transition","transitionDelay","opacity","setMaskOpacity","forceOpacity","current","cancelAnimationFrame","requestAnimationFrame","translateY","translateYCurrent","toString","openModal","enteringState","closeModal","prevModalState","useEffect","activeElement","focus","Provider","value","div","className","VKAPPS","ref","onClick","map","Modal","modalId","props","key","restoreFocus"],"mappings":"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"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { DOMContextInterface } from '../../lib/dom';
|
|
2
|
+
import { HasChildren, HasPlatform } from '../../types';
|
|
3
|
+
import { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';
|
|
1
4
|
export declare enum ModalType {
|
|
2
5
|
PAGE = "page",
|
|
3
6
|
CARD = "card"
|
|
@@ -58,3 +61,28 @@ export interface ModalsStateEntry extends ModalElements {
|
|
|
58
61
|
collapsedRange?: TranslateRange;
|
|
59
62
|
hiddenRange?: TranslateRange;
|
|
60
63
|
}
|
|
64
|
+
export interface ModalRootProps extends HasChildren {
|
|
65
|
+
activeModal?: string | null;
|
|
66
|
+
/**
|
|
67
|
+
* Будет вызвано при начале открытия активной модалки с её id
|
|
68
|
+
*/
|
|
69
|
+
onOpen?(modalId: string): void;
|
|
70
|
+
/**
|
|
71
|
+
* Будет вызвано при окончательном открытии активной модалки с её id
|
|
72
|
+
*/
|
|
73
|
+
onOpened?(modalId: string): void;
|
|
74
|
+
/**
|
|
75
|
+
* Будет вызвано при начале закрытия активной модалки с её id
|
|
76
|
+
*/
|
|
77
|
+
onClose?(modalId: string): void;
|
|
78
|
+
/**
|
|
79
|
+
* Будет вызвано при окончательном закрытии активной модалки с её id
|
|
80
|
+
*/
|
|
81
|
+
onClosed?(modalId: string): void;
|
|
82
|
+
}
|
|
83
|
+
export interface ModalRootWithDOMProps extends HasPlatform, ModalRootProps, DOMContextInterface {
|
|
84
|
+
/**
|
|
85
|
+
* @ignore
|
|
86
|
+
*/
|
|
87
|
+
configProvider?: ConfigProviderContextInterface;
|
|
88
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ModalRoot/types.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ModalRoot/types.ts"],"sourcesContent":["import { DOMContextInterface } from '../../lib/dom';\nimport { HasChildren, HasPlatform } from '../../types';\nimport { ConfigProviderContextInterface } from '../ConfigProvider/ConfigProviderContext';\n\nexport enum ModalType {\n PAGE = 'page',\n CARD = 'card',\n}\n\nexport type TranslateRange = [number, number];\n\nexport type ModalsState = { [index: string]: ModalsStateEntry };\n\nexport interface ModalElements {\n modalElement?: HTMLElement | null;\n innerElement?: HTMLElement | null;\n headerElement?: HTMLElement | null;\n contentElement?: HTMLElement | null;\n}\n\nexport interface ModalsStateEntry extends ModalElements {\n id: string | null;\n /**\n * Событие начала открытия модалки.\n */\n onOpen?: VoidFunction;\n /**\n * Событие открытия модалки.\n */\n onOpened?: VoidFunction;\n /**\n * Событие начала закрытия модалки.\n */\n onClose?: VoidFunction;\n /**\n * Событие закрытия модалки.\n */\n onClosed?: VoidFunction;\n type?: ModalType;\n\n settlingHeight?: number;\n dynamicContentHeight?: boolean;\n expandable?: boolean;\n\n /**\n * Процент текущего сдвига модалки\n */\n translateY?: number;\n /**\n * Процент сдвига модалки в изначальном состоянии\n */\n translateYFrom?: number;\n /**\n * Процент сдвига модалки во время взаимодействия с ней (потянуть, чтобы открыть или закрыть)\n */\n translateYCurrent?: number;\n\n touchStartContentScrollTop?: number;\n touchMovePositive?: boolean | null;\n touchShiftYPercent?: number;\n\n expanded?: boolean;\n collapsed?: boolean;\n hidden?: boolean;\n\n contentScrolled?: boolean;\n contentScrollStopTimeout?: ReturnType<typeof setTimeout>;\n\n expandedRange?: TranslateRange;\n collapsedRange?: TranslateRange;\n hiddenRange?: TranslateRange;\n}\n\nexport interface ModalRootProps extends HasChildren {\n activeModal?: string | null;\n\n /**\n * Будет вызвано при начале открытия активной модалки с её id\n */\n onOpen?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном открытии активной модалки с её id\n */\n onOpened?(modalId: string): void;\n\n /**\n * Будет вызвано при начале закрытия активной модалки с её id\n */\n onClose?(modalId: string): void;\n\n /**\n * Будет вызвано при окончательном закрытии активной модалки с её id\n */\n onClosed?(modalId: string): void;\n}\n\nexport interface ModalRootWithDOMProps extends HasPlatform, ModalRootProps, DOMContextInterface {\n /**\n * @ignore\n */\n configProvider?: ConfigProviderContextInterface;\n}\n"],"names":["ModalType","PAGE","CARD"],"mappings":"WAIO;UAAKA,SAAS;IAATA,UACVC,UAAO;IADGD,UAEVE,UAAO;GAFGF,cAAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { HasChildren } from '../../types';
|
|
2
3
|
import { ModalsStateEntry } from './types';
|
|
3
4
|
interface ModalTransitionState {
|
|
4
5
|
activeModal?: string | null;
|
|
@@ -12,7 +13,7 @@ export interface ModalTransitionProps extends ModalTransitionState {
|
|
|
12
13
|
onEntered: (id: string | null) => void;
|
|
13
14
|
onExit: VoidFunction;
|
|
14
15
|
onExited: (id: string | null) => void;
|
|
15
|
-
getModalState: (id: string) => ModalsStateEntry;
|
|
16
|
+
getModalState: (id: string | undefined | null) => ModalsStateEntry | undefined;
|
|
16
17
|
delayEnter: boolean;
|
|
17
18
|
}
|
|
18
19
|
export declare function modalTransitionReducer(state: ModalTransitionState, action: {
|
|
@@ -32,8 +33,8 @@ export declare function modalTransitionReducer(state: ModalTransitionState, acti
|
|
|
32
33
|
* 5. activeModal: m2, exitingModal: null, enteringModal: null, переход закончен
|
|
33
34
|
*/
|
|
34
35
|
export declare function useModalManager(activeModal: string | null | undefined, children: React.ReactNode | React.ReactNode[], onOpen?: (id: string) => void, onOpened?: (id: string) => void, onClose?: (id: string) => void, onClosed?: (id: string) => void, initModal?: (state: ModalsStateEntry) => void): ModalTransitionProps;
|
|
35
|
-
|
|
36
|
-
activeModal?: string | null
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
type WithModalManager<Props extends ModalTransitionProps> = HasChildren & Omit<Props, keyof ModalTransitionProps> & {
|
|
37
|
+
activeModal?: string | null;
|
|
38
|
+
};
|
|
39
|
+
export declare function withModalManager(initModal?: (a: ModalsStateEntry) => void): <Props extends ModalTransitionProps>(Wrapped: React.ComponentType<Props>) => React.ComponentType<WithModalManager<Props>>;
|
|
39
40
|
export {};
|
|
@@ -157,7 +157,7 @@ export function modalTransitionReducer(state, action) {
|
|
|
157
157
|
onClosed
|
|
158
158
|
]);
|
|
159
159
|
const delayEnter = Boolean(transitionState.exitingModal && (isCard(activeModal) || isCard(transitionState.exitingModal)));
|
|
160
|
-
const getModalState = React.useCallback((id)=>modalsState[id], [
|
|
160
|
+
const getModalState = React.useCallback((id)=>id ? modalsState[id] : undefined, [
|
|
161
161
|
modalsState
|
|
162
162
|
]);
|
|
163
163
|
function onEnter() {
|
|
@@ -165,7 +165,7 @@ export function modalTransitionReducer(state, action) {
|
|
|
165
165
|
if (modalState) {
|
|
166
166
|
if (isFunction(modalState.onOpen)) {
|
|
167
167
|
modalState.onOpen();
|
|
168
|
-
} else if (isFunction(onOpen)) {
|
|
168
|
+
} else if (isFunction(onOpen) && modalState.id) {
|
|
169
169
|
onOpen(modalState.id);
|
|
170
170
|
}
|
|
171
171
|
}
|
|
@@ -175,7 +175,7 @@ export function modalTransitionReducer(state, action) {
|
|
|
175
175
|
if (modalState) {
|
|
176
176
|
if (isFunction(modalState.onClose)) {
|
|
177
177
|
modalState.onClose();
|
|
178
|
-
} else if (isFunction(onClose)) {
|
|
178
|
+
} else if (isFunction(onClose) && modalState.id) {
|
|
179
179
|
onClose(modalState.id);
|
|
180
180
|
}
|
|
181
181
|
}
|