@vkontakte/vkui 6.6.0 → 6.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/cjs/components/Alert/Alert.js +1 -1
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cjs/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cjs/components/Badge/Badge.js +1 -1
- package/dist/cjs/components/Badge/Badge.js.map +1 -1
- package/dist/cjs/components/Button/Button.js +1 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.d.ts +2 -2
- package/dist/cjs/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/cjs/components/Calendar/Calendar.js +4 -2
- package/dist/cjs/components/Calendar/Calendar.js.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.d.ts +1 -0
- package/dist/cjs/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/cjs/components/CalendarDay/CalendarDay.js +26 -14
- package/dist/cjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.d.ts +3 -3
- package/dist/cjs/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/cjs/components/CalendarDays/CalendarDays.js +5 -3
- package/dist/cjs/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts +2 -2
- package/dist/cjs/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/cjs/components/CalendarRange/CalendarRange.js +5 -2
- package/dist/cjs/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js +1 -1
- package/dist/cjs/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.d.ts +1 -0
- package/dist/cjs/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/Clickable.js +21 -6
- package/dist/cjs/components/Clickable/Clickable.js.map +1 -1
- package/dist/cjs/components/Clickable/useState.d.ts +39 -3
- package/dist/cjs/components/Clickable/useState.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/useState.js +110 -37
- package/dist/cjs/components/Clickable/useState.js.map +1 -1
- package/dist/cjs/components/Clickable/useStateWithDelay.d.ts +19 -1
- package/dist/cjs/components/Clickable/useStateWithDelay.d.ts.map +1 -1
- package/dist/cjs/components/Clickable/useStateWithDelay.js +20 -4
- package/dist/cjs/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +3 -2
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +7 -7
- 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/DateInput/DateInput.d.ts +2 -2
- package/dist/cjs/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/cjs/components/DateInput/DateInput.js +5 -3
- package/dist/cjs/components/DateInput/DateInput.js.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cjs/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js +6 -4
- package/dist/cjs/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cjs/components/FormField/FormField.js +1 -1
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.js +1 -1
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/Input/Input.js +1 -1
- package/dist/cjs/components/Input/Input.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +4 -14
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +9 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/NativeSelect/NativeSelect.js +1 -1
- 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/PanelHeaderButton/PanelHeaderButton.d.ts.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/RichCell/RichCell.js +1 -1
- package/dist/cjs/components/RichCell/RichCell.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js +4 -2
- package/dist/cjs/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.js +23 -6
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
- package/dist/cjs/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/context.d.ts +1 -0
- package/dist/cjs/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/cjs/components/ScreenSpinner/context.js +2 -1
- package/dist/cjs/components/ScreenSpinner/context.js.map +1 -1
- package/dist/cjs/components/ScreenSpinner/types.d.ts +5 -0
- package/dist/cjs/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/cjs/components/Search/Search.d.ts.map +1 -1
- package/dist/cjs/components/Search/Search.js +16 -11
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/Select/Select.d.ts.map +1 -1
- package/dist/cjs/components/Select/Select.js +5 -1
- package/dist/cjs/components/Select/Select.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/SimpleCell/SimpleCell.js +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/cjs/components/Skeleton/Skeleton.js +85 -4
- package/dist/cjs/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cjs/components/Slider/Slider.js +1 -1
- package/dist/cjs/components/Slider/Slider.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js +1 -1
- package/dist/cjs/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +1 -1
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts +2 -1
- package/dist/cjs/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cjs/components/ToolButton/ToolButton.js +20 -4
- package/dist/cjs/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.js +7 -1
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
- package/dist/cjs/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.js +7 -1
- package/dist/cjs/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.js +2 -4
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js +7 -1
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.js +1 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.js +7 -1
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.d.ts +7 -1
- package/dist/cjs/components/Typography/Typography.d.ts.map +1 -1
- package/dist/cjs/components/Typography/Typography.js +4 -2
- package/dist/cjs/components/Typography/Typography.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +5 -16
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/WriteBar/WriteBar.js +3 -1
- package/dist/cjs/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js +4 -4
- package/dist/cjs/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.d.ts.map +1 -1
- package/dist/cjs/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/components/Alert/Alert.js +1 -1
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Calendar/Calendar.d.ts +2 -2
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.js +4 -2
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.d.ts +1 -0
- package/dist/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/components/CalendarDay/CalendarDay.js +26 -14
- package/dist/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.d.ts +3 -3
- package/dist/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +5 -3
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts +2 -2
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +5 -2
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CardGrid/CardGrid.js +1 -1
- package/dist/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/components/Clickable/Clickable.d.ts +1 -0
- package/dist/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/components/Clickable/Clickable.js +21 -7
- package/dist/components/Clickable/Clickable.js.map +1 -1
- package/dist/components/Clickable/useState.d.ts +39 -3
- package/dist/components/Clickable/useState.d.ts.map +1 -1
- package/dist/components/Clickable/useState.js +110 -37
- package/dist/components/Clickable/useState.js.map +1 -1
- package/dist/components/Clickable/useStateWithDelay.d.ts +19 -1
- package/dist/components/Clickable/useStateWithDelay.d.ts.map +1 -1
- package/dist/components/Clickable/useStateWithDelay.js +38 -4
- package/dist/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +3 -2
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +7 -7
- 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/DateInput/DateInput.d.ts +2 -2
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +5 -3
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +6 -4
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/FormField/FormField.js +1 -1
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.js +1 -1
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/Input/Input.js +1 -1
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +4 -14
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +9 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/NativeSelect/NativeSelect.js +1 -1
- 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/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js +1 -1
- package/dist/components/PanelHeaderButton/PanelHeaderButton.js.map +1 -1
- package/dist/components/RichCell/RichCell.js +1 -1
- package/dist/components/RichCell/RichCell.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinner.js +4 -2
- package/dist/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.js +25 -8
- package/dist/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
- package/dist/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
- package/dist/components/ScreenSpinner/context.d.ts +1 -0
- package/dist/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/context.js +2 -1
- package/dist/components/ScreenSpinner/context.js.map +1 -1
- package/dist/components/ScreenSpinner/types.d.ts +5 -0
- package/dist/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/components/ScreenSpinner/types.js.map +1 -1
- package/dist/components/Search/Search.d.ts.map +1 -1
- package/dist/components/Search/Search.js +17 -12
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +5 -1
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +85 -4
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Slider/Slider.js +1 -1
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.js +1 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +1 -1
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/ToolButton/ToolButton.d.ts +2 -1
- package/dist/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/components/ToolButton/ToolButton.js +9 -1
- package/dist/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/components/Typography/Caption/Caption.js +7 -1
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
- package/dist/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.js +7 -1
- package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/components/Typography/Headline/Headline.js +2 -4
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/components/Typography/Paragraph/Paragraph.js +7 -1
- package/dist/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.js +1 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.js +1 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/components/Typography/Title/Title.js +7 -1
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +7 -1
- package/dist/components/Typography/Typography.d.ts.map +1 -1
- package/dist/components/Typography/Typography.js +4 -2
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +5 -16
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/WriteBar/WriteBar.js +3 -1
- package/dist/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/components.css +313 -3
- package/dist/components.css.map +1 -1
- package/dist/components.js.tmp +647 -301
- package/dist/cssm/components/Alert/Alert.js +1 -1
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js +1 -1
- package/dist/cssm/components/AspectRatio/AspectRatio.js.map +1 -1
- package/dist/cssm/components/Badge/Badge.js +1 -1
- package/dist/cssm/components/Badge/Badge.js.map +1 -1
- package/dist/cssm/components/Button/Button.js +1 -1
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.d.ts +2 -2
- package/dist/cssm/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/cssm/components/Calendar/Calendar.js +3 -2
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.d.ts +1 -0
- package/dist/cssm/components/CalendarDay/CalendarDay.d.ts.map +1 -1
- package/dist/cssm/components/CalendarDay/CalendarDay.js +24 -13
- package/dist/cssm/components/CalendarDay/CalendarDay.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.d.ts +3 -3
- package/dist/cssm/components/CalendarDays/CalendarDays.d.ts.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +2 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts +2 -2
- package/dist/cssm/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +3 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js +1 -1
- package/dist/cssm/components/CardGrid/CardGrid.js.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.d.ts +1 -0
- package/dist/cssm/components/Clickable/Clickable.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/Clickable.js +16 -6
- package/dist/cssm/components/Clickable/Clickable.js.map +1 -1
- package/dist/cssm/components/Clickable/useState.d.ts +39 -3
- package/dist/cssm/components/Clickable/useState.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/useState.js +104 -36
- package/dist/cssm/components/Clickable/useState.js.map +1 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.d.ts +19 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.d.ts.map +1 -1
- package/dist/cssm/components/Clickable/useStateWithDelay.js +38 -4
- package/dist/cssm/components/Clickable/useStateWithDelay.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.module.css +0 -14
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts +3 -2
- package/dist/cssm/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +3 -3
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js +1 -1
- package/dist/cssm/components/CustomSelectOption/CustomSelectOption.js.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.d.ts +2 -2
- package/dist/cssm/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/cssm/components/DateInput/DateInput.js +3 -2
- package/dist/cssm/components/DateInput/DateInput.js.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts +2 -2
- package/dist/cssm/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js +4 -3
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/FormField/FormField.js +1 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.js +1 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/Input/Input.js +1 -1
- package/dist/cssm/components/Input/Input.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.d.ts.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +9 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js +1 -1
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/Panel/Panel.js +2 -2
- package/dist/cssm/components/Panel/Panel.js.map +1 -1
- package/dist/cssm/components/PanelHeaderButton/PanelHeaderButton.d.ts.map +1 -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 +48 -3
- package/dist/cssm/components/RichCell/RichCell.js +1 -1
- package/dist/cssm/components/RichCell/RichCell.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js +2 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinner.module.css +40 -0
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.d.ts +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.js +20 -7
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerContainer.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.js +8 -3
- package/dist/cssm/components/ScreenSpinner/ScreenSpinnerLoader.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/context.d.ts +1 -0
- package/dist/cssm/components/ScreenSpinner/context.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/context.js +2 -1
- package/dist/cssm/components/ScreenSpinner/context.js.map +1 -1
- package/dist/cssm/components/ScreenSpinner/types.d.ts +5 -0
- package/dist/cssm/components/ScreenSpinner/types.d.ts.map +1 -1
- package/dist/cssm/components/ScreenSpinner/types.js.map +1 -1
- package/dist/cssm/components/Search/Search.d.ts.map +1 -1
- package/dist/cssm/components/Search/Search.js +17 -12
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Search/Search.module.css +25 -13
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/cssm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cssm/components/Select/Select.d.ts.map +1 -1
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.d.ts +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +83 -3
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.module.css +30 -32
- package/dist/cssm/components/Slider/Slider.js +1 -1
- package/dist/cssm/components/Slider/Slider.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +1 -1
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts +2 -1
- package/dist/cssm/components/ToolButton/ToolButton.d.ts.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.js +9 -1
- package/dist/cssm/components/ToolButton/ToolButton.js.map +1 -1
- package/dist/cssm/components/ToolButton/ToolButton.module.css +13 -6
- package/dist/cssm/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +7 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.module.css +240 -0
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.d.ts.map +1 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js +7 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.js.map +1 -1
- package/dist/cssm/components/Typography/DisplayTitle/DisplayTitle.module.css +160 -0
- package/dist/cssm/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js +10 -2
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.module.css +80 -0
- package/dist/cssm/components/Typography/Headline/Headline.d.ts +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js +2 -3
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.module.css +48 -8
- package/dist/cssm/components/Typography/Paragraph/Paragraph.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js +7 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.js.map +1 -1
- package/dist/cssm/components/Typography/Paragraph/Paragraph.module.css +40 -0
- package/dist/cssm/components/Typography/Subhead/Subhead.js +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.module.css +32 -4
- package/dist/cssm/components/Typography/Text/Text.js +1 -1
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.module.css +29 -4
- package/dist/cssm/components/Typography/Title/Title.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +7 -1
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.module.css +120 -0
- package/dist/cssm/components/Typography/Typography.d.ts +7 -1
- package/dist/cssm/components/Typography/Typography.d.ts.map +1 -1
- package/dist/cssm/components/Typography/Typography.js +3 -2
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.module.css +21 -3
- package/dist/cssm/components/WriteBar/WriteBar.js +1 -0
- package/dist/cssm/components/WriteBar/WriteBar.js.map +1 -1
- package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js +4 -4
- package/dist/cssm/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.d.ts.map +1 -1
- package/dist/cssm/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/cssm/styles/missedThemeTokens.css +22 -0
- package/dist/hooks/useAdaptivityConditionalRender/constants.js +4 -4
- package/dist/hooks/useAdaptivityConditionalRender/constants.js.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.d.ts +1 -1
- package/dist/hooks/useWaitTransitionFinish.d.ts.map +1 -1
- package/dist/hooks/useWaitTransitionFinish.js.map +1 -1
- package/dist/vkui.css +313 -3
- package/dist/vkui.css.map +1 -1
- package/dist/vkui.js.tmp +647 -301
- package/package.json +3 -2
- package/src/components/Alert/Alert.tsx +1 -1
- package/src/components/AspectRatio/AspectRatio.tsx +1 -1
- package/src/components/Badge/Badge.tsx +1 -1
- package/src/components/Button/Button.tsx +1 -1
- package/src/components/Calendar/Calendar.tsx +3 -1
- package/src/components/CalendarDay/CalendarDay.tsx +16 -4
- package/src/components/CalendarDays/CalendarDays.tsx +9 -2
- package/src/components/CalendarRange/CalendarRange.tsx +4 -1
- package/src/components/CardGrid/CardGrid.tsx +1 -1
- package/src/components/Clickable/Clickable.tsx +21 -3
- package/src/components/Clickable/useState.tsx +195 -42
- package/src/components/Clickable/useStateWithDelay.tsx +40 -3
- package/src/components/Counter/Counter.module.css +0 -12
- package/src/components/CustomSelect/CustomSelect.tsx +11 -10
- package/src/components/CustomSelectOption/CustomSelectOption.tsx +1 -1
- package/src/components/DateInput/DateInput.tsx +4 -1
- package/src/components/DateRangeInput/DateRangeInput.tsx +4 -1
- package/src/components/FormField/FormField.tsx +1 -1
- package/src/components/FormItem/FormItem.tsx +1 -1
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +1 -1
- package/src/components/Input/Input.tsx +1 -1
- package/src/components/ModalRoot/ModalRootDesktop.tsx +13 -1
- package/src/components/NativeSelect/NativeSelect.tsx +1 -1
- package/src/components/Panel/Panel.tsx +2 -2
- package/src/components/PanelHeaderButton/PanelHeaderButton.module.css +44 -3
- package/src/components/PanelHeaderButton/PanelHeaderButton.tsx +1 -1
- package/src/components/RichCell/RichCell.tsx +1 -1
- package/src/components/ScreenSpinner/ScreenSpinner.module.css +35 -0
- package/src/components/ScreenSpinner/ScreenSpinner.tsx +2 -1
- package/src/components/ScreenSpinner/ScreenSpinnerContainer.tsx +15 -4
- package/src/components/ScreenSpinner/ScreenSpinnerLoader.tsx +16 -3
- package/src/components/ScreenSpinner/context.ts +2 -0
- package/src/components/ScreenSpinner/types.tsx +5 -0
- package/src/components/Search/Search.module.css +24 -13
- package/src/components/Search/Search.tsx +19 -14
- package/src/components/SegmentedControl/SegmentedControl.tsx +1 -1
- package/src/components/Select/Select.tsx +4 -0
- package/src/components/SelectMimicry/SelectMimicry.tsx +1 -1
- package/src/components/SimpleCell/SimpleCell.tsx +1 -1
- package/src/components/Skeleton/Skeleton.module.css +30 -32
- package/src/components/Skeleton/Skeleton.tsx +90 -2
- package/src/components/Slider/Slider.tsx +1 -1
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +1 -1
- package/src/components/TabsItem/TabsItem.tsx +1 -1
- package/src/components/Textarea/Textarea.tsx +1 -1
- package/src/components/ToolButton/ToolButton.module.css +12 -6
- package/src/components/ToolButton/ToolButton.tsx +15 -2
- package/src/components/Typography/Caption/Caption.module.css +240 -0
- package/src/components/Typography/Caption/Caption.tsx +14 -1
- package/src/components/Typography/DisplayTitle/DisplayTitle.module.css +160 -0
- package/src/components/Typography/DisplayTitle/DisplayTitle.tsx +13 -1
- package/src/components/Typography/Footnote/Footnote.module.css +80 -0
- package/src/components/Typography/Footnote/Footnote.tsx +24 -9
- package/src/components/Typography/Headline/Headline.module.css +48 -8
- package/src/components/Typography/Headline/Headline.tsx +1 -3
- package/src/components/Typography/Paragraph/Paragraph.module.css +40 -0
- package/src/components/Typography/Paragraph/Paragraph.tsx +13 -1
- package/src/components/Typography/Subhead/Subhead.module.css +32 -4
- package/src/components/Typography/Subhead/Subhead.tsx +1 -1
- package/src/components/Typography/Text/Text.module.css +29 -4
- package/src/components/Typography/Text/Text.tsx +1 -1
- package/src/components/Typography/Title/Title.module.css +120 -0
- package/src/components/Typography/Title/Title.tsx +13 -1
- package/src/components/Typography/Typography.module.css +20 -3
- package/src/components/Typography/Typography.tsx +10 -0
- package/src/components/WriteBar/WriteBar.tsx +1 -1
- package/src/hooks/useAdaptivityConditionalRender/constants.ts +4 -4
- package/src/hooks/useWaitTransitionFinish.ts +2 -2
|
@@ -30,7 +30,7 @@ const getIsDaySelected = (day, value)=>{
|
|
|
30
30
|
});
|
|
31
31
|
};
|
|
32
32
|
const CalendarRange = (_param)=>{
|
|
33
|
-
var { value, onChange, disablePast, disableFuture, shouldDisableDate, onClose, weekStartsOn = 1, disablePickers, prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', changeDayLabel = 'Изменить день', prevMonthIcon, nextMonthIcon, listenDayChangesForUpdate } = _param, props = _object_without_properties._(_param, [
|
|
33
|
+
var { value, onChange, disablePast, disableFuture, shouldDisableDate, onClose, weekStartsOn = 1, disablePickers, prevMonthLabel = 'Предыдущий месяц', nextMonthLabel = 'Следующий месяц', changeMonthLabel = 'Изменить месяц', changeYearLabel = 'Изменить год', changeDayLabel = 'Изменить день', prevMonthIcon, nextMonthIcon, listenDayChangesForUpdate, renderDayContent } = _param, props = _object_without_properties._(_param, [
|
|
34
34
|
"value",
|
|
35
35
|
"onChange",
|
|
36
36
|
"disablePast",
|
|
@@ -46,7 +46,8 @@ const CalendarRange = (_param)=>{
|
|
|
46
46
|
"changeDayLabel",
|
|
47
47
|
"prevMonthIcon",
|
|
48
48
|
"nextMonthIcon",
|
|
49
|
-
"listenDayChangesForUpdate"
|
|
49
|
+
"listenDayChangesForUpdate",
|
|
50
|
+
"renderDayContent"
|
|
50
51
|
]);
|
|
51
52
|
const { viewDate, setViewDate, setPrevMonth, setNextMonth, focusedDay, setFocusedDay, isDayFocused, isDayDisabled, resetSelectedDay, isMonthDisabled, isYearDisabled } = (0, _useCalendar.useCalendar)({
|
|
52
53
|
value,
|
|
@@ -183,6 +184,7 @@ const CalendarRange = (_param)=>{
|
|
|
183
184
|
isHintedDaySelectionStart: isHintedDaySelectionStart,
|
|
184
185
|
isDayDisabled: isDayDisabled,
|
|
185
186
|
listenDayChangesForUpdate: listenDayChangesForUpdate,
|
|
187
|
+
renderDayContent: renderDayContent,
|
|
186
188
|
"aria-label": changeDayLabel
|
|
187
189
|
})
|
|
188
190
|
]
|
|
@@ -224,6 +226,7 @@ const CalendarRange = (_param)=>{
|
|
|
224
226
|
isHintedDaySelectionStart: isHintedDaySelectionStart,
|
|
225
227
|
isDayDisabled: isDayDisabled,
|
|
226
228
|
listenDayChangesForUpdate: listenDayChangesForUpdate,
|
|
229
|
+
renderDayContent: renderDayContent,
|
|
227
230
|
tabIndex: 0,
|
|
228
231
|
onBlur: resetSelectedDay
|
|
229
232
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfDay,\n subMonths,\n} from 'date-fns';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDays, type CalendarDaysProps } from '../CalendarDays/CalendarDays';\nimport { CalendarHeader, type CalendarHeaderProps } from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CalendarRange.module.css';\n\nexport type DateRangeType = [Date | null, Date | null];\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate'> {\n value?: DateRangeType;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?: (value: DateRangeType | undefined) => void;\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return isWithinInterval(day, { start: startOfDay(value[0]), end: endOfDay(value[1]) });\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CalendarRange\n */\nexport const CalendarRange = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value?.[1], event.key);\n\n if (\n newFocusedDay &&\n !isSameMonth(newFocusedDay, viewDate) &&\n !isSameMonth(newFocusedDay, addMonths(viewDate, 1))\n ) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const getNewValue = React.useCallback(\n (date: Date): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n if (isValueEmpty) {\n return [date, null];\n }\n\n const [start, end] = value;\n if ((start && isSameDay(date, start)) || (end && isSameDay(date, end))) {\n return [setTimeEqual(date, start), setTimeEqual(date, end)];\n } else if (start && isBefore(date, start)) {\n return [setTimeEqual(date, start), end];\n } else if (start && isAfter(date, start)) {\n return [start, setTimeEqual(date, end)];\n }\n return value;\n },\n [value],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(getNewValue(date));\n setHintedDate(undefined);\n },\n [onChange, getNewValue],\n );\n\n const isDaySelected = React.useCallback((day: Date) => getIsDaySelected(day, value), [value]);\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean((value?.[0] && isSameDay(day, value[0])) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDay(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDay(day, hintedDate[0]))),\n [hintedDate],\n );\n\n const onDayEnter = React.useCallback(\n (date: Date) => setHintedDate(getNewValue(date)),\n [setHintedDate, getNewValue],\n );\n\n const onDayLeave = React.useCallback(() => setHintedDate(undefined), [setHintedDate]);\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate],\n );\n\n const onRightPartViewDateChange = React.useCallback(\n (newDate: Date) => setViewDate(subMonths(newDate, 1)),\n [setViewDate],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles['CalendarRange']}>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n aria-label={changeDayLabel}\n />\n </div>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n tabIndex={0}\n onBlur={resetSelectedDay}\n />\n </div>\n </RootComponent>\n );\n};\n"],"names":["CalendarRange","getIsDaySelected","day","value","isWithinInterval","start","startOfDay","end","endOfDay","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","changeDayLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","useCalendar","hintedDate","setHintedDate","React","useState","secondViewDate","addMonths","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","navigateDate","isSameMonth","getNewValue","date","isValueEmpty","isSameDay","setTimeEqual","isBefore","isAfter","onDayChange","undefined","isDaySelected","isDayActive","Boolean","isDaySelectionEnd","dayOfWeek","isLastDay","isHintedDaySelectionEnd","isDaySelectionStart","isFirstDay","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","subMonths","RootComponent","baseClassName","div","className","CalendarHeader","nextMonthHidden","onPrevMonth","CalendarDays","onKeyDown","aria-label","prevMonthHidden","onNextMonth","tabIndex","onBlur"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n addMonths,\n endOfDay,\n isAfter,\n isBefore,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfDay,\n subMonths,\n} from 'date-fns';\nimport { useCalendar } from '../../hooks/useCalendar';\nimport { isFirstDay, isLastDay, navigateDate, setTimeEqual } from '../../lib/calendar';\nimport type { HTMLAttributesWithRootRef } from '../../types';\nimport { CalendarDays, type CalendarDaysProps } from '../CalendarDays/CalendarDays';\nimport { CalendarHeader, type CalendarHeaderProps } from '../CalendarHeader/CalendarHeader';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CalendarRange.module.css';\n\nexport type DateRangeType = [Date | null, Date | null];\n\nexport interface CalendarRangeProps\n extends Omit<HTMLAttributesWithRootRef<HTMLDivElement>, 'onChange'>,\n Pick<\n CalendarHeaderProps,\n | 'prevMonthLabel'\n | 'nextMonthLabel'\n | 'changeMonthLabel'\n | 'changeYearLabel'\n | 'prevMonthIcon'\n | 'nextMonthIcon'\n >,\n Pick<CalendarDaysProps, 'listenDayChangesForUpdate' | 'renderDayContent'> {\n value?: DateRangeType;\n disablePast?: boolean;\n disableFuture?: boolean;\n disablePickers?: boolean;\n changeDayLabel?: string;\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n onChange?: (value: DateRangeType | undefined) => void;\n shouldDisableDate?: (value: Date) => boolean;\n onClose?: () => void;\n}\n\nconst getIsDaySelected = (day: Date, value?: DateRangeType) => {\n if (!value?.[0] || !value[1]) {\n return false;\n }\n\n return isWithinInterval(day, { start: startOfDay(value[0]), end: endOfDay(value[1]) });\n};\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CalendarRange\n */\nexport const CalendarRange = ({\n value,\n onChange,\n disablePast,\n disableFuture,\n shouldDisableDate,\n onClose,\n weekStartsOn = 1,\n disablePickers,\n prevMonthLabel = 'Предыдущий месяц',\n nextMonthLabel = 'Следующий месяц',\n changeMonthLabel = 'Изменить месяц',\n changeYearLabel = 'Изменить год',\n changeDayLabel = 'Изменить день',\n prevMonthIcon,\n nextMonthIcon,\n listenDayChangesForUpdate,\n renderDayContent,\n ...props\n}: CalendarRangeProps): React.ReactNode => {\n const {\n viewDate,\n setViewDate,\n setPrevMonth,\n setNextMonth,\n focusedDay,\n setFocusedDay,\n isDayFocused,\n isDayDisabled,\n resetSelectedDay,\n isMonthDisabled,\n isYearDisabled,\n } = useCalendar({ value, disableFuture, disablePast, shouldDisableDate });\n const [hintedDate, setHintedDate] = React.useState<DateRangeType>();\n const secondViewDate = addMonths(viewDate, 1);\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key)) {\n event.preventDefault();\n }\n\n const newFocusedDay = navigateDate(focusedDay ?? value?.[1], event.key);\n\n if (\n newFocusedDay &&\n !isSameMonth(newFocusedDay, viewDate) &&\n !isSameMonth(newFocusedDay, addMonths(viewDate, 1))\n ) {\n setViewDate(newFocusedDay);\n }\n setFocusedDay(newFocusedDay);\n },\n [focusedDay, setFocusedDay, setViewDate, value, viewDate],\n );\n\n const getNewValue = React.useCallback(\n (date: Date): DateRangeType => {\n const isValueEmpty = !value || (value[0] === null && value[1] === null);\n if (isValueEmpty) {\n return [date, null];\n }\n\n const [start, end] = value;\n if ((start && isSameDay(date, start)) || (end && isSameDay(date, end))) {\n return [setTimeEqual(date, start), setTimeEqual(date, end)];\n } else if (start && isBefore(date, start)) {\n return [setTimeEqual(date, start), end];\n } else if (start && isAfter(date, start)) {\n return [start, setTimeEqual(date, end)];\n }\n return value;\n },\n [value],\n );\n\n const onDayChange = React.useCallback(\n (date: Date) => {\n onChange?.(getNewValue(date));\n setHintedDate(undefined);\n },\n [onChange, getNewValue],\n );\n\n const isDaySelected = React.useCallback((day: Date) => getIsDaySelected(day, value), [value]);\n\n const isDayActive = React.useCallback(\n (day: Date) =>\n Boolean((value?.[0] && isSameDay(day, value[0])) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (value?.[1] && isSameDay(day, value[1]))),\n [value],\n );\n\n const isHintedDaySelectionEnd = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isLastDay(day, dayOfWeek) || (hintedDate?.[1] && isSameDay(day, hintedDate[1]))),\n [hintedDate],\n );\n\n const isDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (value?.[0] && isSameDay(day, value[0]))),\n [value],\n );\n\n const isHintedDaySelectionStart = React.useCallback(\n (day: Date, dayOfWeek: number) =>\n Boolean(isFirstDay(day, dayOfWeek) || (hintedDate?.[0] && isSameDay(day, hintedDate[0]))),\n [hintedDate],\n );\n\n const onDayEnter = React.useCallback(\n (date: Date) => setHintedDate(getNewValue(date)),\n [setHintedDate, getNewValue],\n );\n\n const onDayLeave = React.useCallback(() => setHintedDate(undefined), [setHintedDate]);\n\n const isDayHinted = React.useCallback(\n (day: Date) => getIsDaySelected(day, hintedDate),\n [hintedDate],\n );\n\n const onRightPartViewDateChange = React.useCallback(\n (newDate: Date) => setViewDate(subMonths(newDate, 1)),\n [setViewDate],\n );\n\n return (\n <RootComponent {...props} baseClassName={styles['CalendarRange']}>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={viewDate}\n onChange={setViewDate}\n nextMonthHidden\n onPrevMonth={setPrevMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n prevMonthIcon={prevMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={viewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n aria-label={changeDayLabel}\n />\n </div>\n <div className={styles['CalendarRange__inner']}>\n <CalendarHeader\n viewDate={secondViewDate}\n onChange={onRightPartViewDateChange}\n prevMonthHidden\n onNextMonth={setNextMonth}\n disablePickers={disablePickers}\n className={styles['CalendarRange__header']}\n prevMonthLabel={prevMonthLabel}\n nextMonthLabel={nextMonthLabel}\n changeMonthLabel={changeMonthLabel}\n changeYearLabel={changeYearLabel}\n nextMonthIcon={nextMonthIcon}\n isMonthDisabled={isMonthDisabled}\n isYearDisabled={isYearDisabled}\n />\n <CalendarDays\n viewDate={secondViewDate}\n value={value}\n weekStartsOn={weekStartsOn}\n aria-label={changeDayLabel}\n onKeyDown={handleKeyDown}\n isDayFocused={isDayFocused}\n onDayChange={onDayChange}\n isDaySelected={isDaySelected}\n isDayActive={isDayActive}\n isDaySelectionEnd={isDaySelectionEnd}\n isDaySelectionStart={isDaySelectionStart}\n isDayHinted={isDayHinted}\n onDayEnter={onDayEnter}\n onDayLeave={onDayLeave}\n isHintedDaySelectionEnd={isHintedDaySelectionEnd}\n isHintedDaySelectionStart={isHintedDaySelectionStart}\n isDayDisabled={isDayDisabled}\n listenDayChangesForUpdate={listenDayChangesForUpdate}\n renderDayContent={renderDayContent}\n tabIndex={0}\n onBlur={resetSelectedDay}\n />\n </div>\n </RootComponent>\n );\n};\n"],"names":["CalendarRange","getIsDaySelected","day","value","isWithinInterval","start","startOfDay","end","endOfDay","onChange","disablePast","disableFuture","shouldDisableDate","onClose","weekStartsOn","disablePickers","prevMonthLabel","nextMonthLabel","changeMonthLabel","changeYearLabel","changeDayLabel","prevMonthIcon","nextMonthIcon","listenDayChangesForUpdate","renderDayContent","props","viewDate","setViewDate","setPrevMonth","setNextMonth","focusedDay","setFocusedDay","isDayFocused","isDayDisabled","resetSelectedDay","isMonthDisabled","isYearDisabled","useCalendar","hintedDate","setHintedDate","React","useState","secondViewDate","addMonths","handleKeyDown","useCallback","event","includes","key","preventDefault","newFocusedDay","navigateDate","isSameMonth","getNewValue","date","isValueEmpty","isSameDay","setTimeEqual","isBefore","isAfter","onDayChange","undefined","isDaySelected","isDayActive","Boolean","isDaySelectionEnd","dayOfWeek","isLastDay","isHintedDaySelectionEnd","isDaySelectionStart","isFirstDay","isHintedDaySelectionStart","onDayEnter","onDayLeave","isDayHinted","onRightPartViewDateChange","newDate","subMonths","RootComponent","baseClassName","div","className","CalendarHeader","nextMonthHidden","onPrevMonth","CalendarDays","onKeyDown","aria-label","prevMonthHidden","onNextMonth","tabIndex","onBlur"],"mappings":";;;;+BAwDaA;;;eAAAA;;;;;;;;iEAxDU;yBAWhB;6BACqB;0BACsC;8BAEb;gCACI;+BAC3B;AA4B9B,MAAMC,mBAAmB,CAACC,KAAWC;IACnC,IAAI,EAACA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAI,CAACA,KAAK,CAAC,EAAE,EAAE;QAC5B,OAAO;IACT;IAEA,OAAOC,IAAAA,yBAAgB,EAACF,KAAK;QAAEG,OAAOC,IAAAA,mBAAU,EAACH,KAAK,CAAC,EAAE;QAAGI,KAAKC,IAAAA,iBAAQ,EAACL,KAAK,CAAC,EAAE;IAAE;AACtF;AAKO,MAAMH,gBAAgB;QAAC,EAC5BG,KAAK,EACLM,QAAQ,EACRC,WAAW,EACXC,aAAa,EACbC,iBAAiB,EACjBC,OAAO,EACPC,eAAe,CAAC,EAChBC,cAAc,EACdC,iBAAiB,kBAAkB,EACnCC,iBAAiB,iBAAiB,EAClCC,mBAAmB,gBAAgB,EACnCC,kBAAkB,cAAc,EAChCC,iBAAiB,eAAe,EAChCC,aAAa,EACbC,aAAa,EACbC,yBAAyB,EACzBC,gBAAgB,EAEG,WADhBC;QAjBHtB;QACAM;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;;IAGA,MAAM,EACJE,QAAQ,EACRC,WAAW,EACXC,YAAY,EACZC,YAAY,EACZC,UAAU,EACVC,aAAa,EACbC,YAAY,EACZC,aAAa,EACbC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACf,GAAGC,IAAAA,wBAAW,EAAC;QAAElC;QAAOQ;QAAeD;QAAaE;IAAkB;IACvE,MAAM,CAAC0B,YAAYC,cAAc,GAAGC,OAAMC,QAAQ;IAClD,MAAMC,iBAAiBC,IAAAA,kBAAS,EAACjB,UAAU;IAE3C,MAAMkB,gBAAgBJ,OAAMK,WAAW,CACrC,CAACC;QACC,IAAI;YAAC;YAAW;YAAa;YAAa;SAAa,CAACC,QAAQ,CAACD,MAAME,GAAG,GAAG;YAC3EF,MAAMG,cAAc;QACtB;QAEA,MAAMC,gBAAgBC,IAAAA,sBAAY,EAACrB,uBAAAA,wBAAAA,aAAc3B,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,EAAE2C,MAAME,GAAG;QAEtE,IACEE,iBACA,CAACE,IAAAA,oBAAW,EAACF,eAAexB,aAC5B,CAAC0B,IAAAA,oBAAW,EAACF,eAAeP,IAAAA,kBAAS,EAACjB,UAAU,KAChD;YACAC,YAAYuB;QACd;QACAnB,cAAcmB;IAChB,GACA;QAACpB;QAAYC;QAAeJ;QAAaxB;QAAOuB;KAAS;IAG3D,MAAM2B,cAAcb,OAAMK,WAAW,CACnC,CAACS;QACC,MAAMC,eAAe,CAACpD,SAAUA,KAAK,CAAC,EAAE,KAAK,QAAQA,KAAK,CAAC,EAAE,KAAK;QAClE,IAAIoD,cAAc;YAChB,OAAO;gBAACD;gBAAM;aAAK;QACrB;QAEA,MAAM,CAACjD,OAAOE,IAAI,GAAGJ;QACrB,IAAI,AAACE,SAASmD,IAAAA,kBAAS,EAACF,MAAMjD,UAAYE,OAAOiD,IAAAA,kBAAS,EAACF,MAAM/C,MAAO;YACtE,OAAO;gBAACkD,IAAAA,sBAAY,EAACH,MAAMjD;gBAAQoD,IAAAA,sBAAY,EAACH,MAAM/C;aAAK;QAC7D,OAAO,IAAIF,SAASqD,IAAAA,iBAAQ,EAACJ,MAAMjD,QAAQ;YACzC,OAAO;gBAACoD,IAAAA,sBAAY,EAACH,MAAMjD;gBAAQE;aAAI;QACzC,OAAO,IAAIF,SAASsD,IAAAA,gBAAO,EAACL,MAAMjD,QAAQ;YACxC,OAAO;gBAACA;gBAAOoD,IAAAA,sBAAY,EAACH,MAAM/C;aAAK;QACzC;QACA,OAAOJ;IACT,GACA;QAACA;KAAM;IAGT,MAAMyD,cAAcpB,OAAMK,WAAW,CACnC,CAACS;QACC7C,qBAAAA,+BAAAA,SAAW4C,YAAYC;QACvBf,cAAcsB;IAChB,GACA;QAACpD;QAAU4C;KAAY;IAGzB,MAAMS,gBAAgBtB,OAAMK,WAAW,CAAC,CAAC3C,MAAcD,iBAAiBC,KAAKC,QAAQ;QAACA;KAAM;IAE5F,MAAM4D,cAAcvB,OAAMK,WAAW,CACnC,CAAC3C,MACC8D,QAAQ,CAAC7D,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIqD,IAAAA,kBAAS,EAACtD,KAAKC,KAAK,CAAC,EAAE,KAAOA,CAAAA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIqD,IAAAA,kBAAS,EAACtD,KAAKC,KAAK,CAAC,EAAE,IAC5F;QAACA;KAAM;IAGT,MAAM8D,oBAAoBzB,OAAMK,WAAW,CACzC,CAAC3C,KAAWgE,YACVF,QAAQG,IAAAA,mBAAS,EAACjE,KAAKgE,cAAe/D,CAAAA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIqD,IAAAA,kBAAS,EAACtD,KAAKC,KAAK,CAAC,EAAE,IAC7E;QAACA;KAAM;IAGT,MAAMiE,0BAA0B5B,OAAMK,WAAW,CAC/C,CAAC3C,KAAWgE,YACVF,QAAQG,IAAAA,mBAAS,EAACjE,KAAKgE,cAAe5B,CAAAA,uBAAAA,iCAAAA,UAAY,CAAC,EAAE,KAAIkB,IAAAA,kBAAS,EAACtD,KAAKoC,UAAU,CAAC,EAAE,IACvF;QAACA;KAAW;IAGd,MAAM+B,sBAAsB7B,OAAMK,WAAW,CAC3C,CAAC3C,KAAWgE,YACVF,QAAQM,IAAAA,oBAAU,EAACpE,KAAKgE,cAAe/D,CAAAA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE,KAAIqD,IAAAA,kBAAS,EAACtD,KAAKC,KAAK,CAAC,EAAE,IAC9E;QAACA;KAAM;IAGT,MAAMoE,4BAA4B/B,OAAMK,WAAW,CACjD,CAAC3C,KAAWgE,YACVF,QAAQM,IAAAA,oBAAU,EAACpE,KAAKgE,cAAe5B,CAAAA,uBAAAA,iCAAAA,UAAY,CAAC,EAAE,KAAIkB,IAAAA,kBAAS,EAACtD,KAAKoC,UAAU,CAAC,EAAE,IACxF;QAACA;KAAW;IAGd,MAAMkC,aAAahC,OAAMK,WAAW,CAClC,CAACS,OAAef,cAAcc,YAAYC,QAC1C;QAACf;QAAec;KAAY;IAG9B,MAAMoB,aAAajC,OAAMK,WAAW,CAAC,IAAMN,cAAcsB,YAAY;QAACtB;KAAc;IAEpF,MAAMmC,cAAclC,OAAMK,WAAW,CACnC,CAAC3C,MAAcD,iBAAiBC,KAAKoC,aACrC;QAACA;KAAW;IAGd,MAAMqC,4BAA4BnC,OAAMK,WAAW,CACjD,CAAC+B,UAAkBjD,YAAYkD,IAAAA,kBAAS,EAACD,SAAS,KAClD;QAACjD;KAAY;IAGf,qBACE,sBAACmD,4BAAa,8CAAKrD;QAAOsD,aAAa;;0BACrC,sBAACC;gBAAIC,SAAS;;kCACZ,qBAACC,8BAAc;wBACbxD,UAAUA;wBACVjB,UAAUkB;wBACVwD,eAAe;wBACfC,aAAaxD;wBACbb,gBAAgBA;wBAChBkE,SAAS;wBACTjE,gBAAgBA;wBAChBC,gBAAgBA;wBAChBC,kBAAkBA;wBAClBC,iBAAiBA;wBACjBE,eAAeA;wBACfc,iBAAiBA;wBACjBC,gBAAgBA;;kCAElB,qBAACiD,0BAAY;wBACX3D,UAAUA;wBACVvB,OAAOA;wBACPW,cAAcA;wBACdwE,WAAW1C;wBACXZ,cAAcA;wBACd4B,aAAaA;wBACbE,eAAeA;wBACfC,aAAaA;wBACbE,mBAAmBA;wBACnBI,qBAAqBA;wBACrBK,aAAaA;wBACbF,YAAYA;wBACZC,YAAYA;wBACZL,yBAAyBA;wBACzBG,2BAA2BA;wBAC3BtC,eAAeA;wBACfV,2BAA2BA;wBAC3BC,kBAAkBA;wBAClB+D,cAAYnE;;;;0BAGhB,sBAAC4D;gBAAIC,SAAS;;kCACZ,qBAACC,8BAAc;wBACbxD,UAAUgB;wBACVjC,UAAUkE;wBACVa,eAAe;wBACfC,aAAa5D;wBACbd,gBAAgBA;wBAChBkE,SAAS;wBACTjE,gBAAgBA;wBAChBC,gBAAgBA;wBAChBC,kBAAkBA;wBAClBC,iBAAiBA;wBACjBG,eAAeA;wBACfa,iBAAiBA;wBACjBC,gBAAgBA;;kCAElB,qBAACiD,0BAAY;wBACX3D,UAAUgB;wBACVvC,OAAOA;wBACPW,cAAcA;wBACdyE,cAAYnE;wBACZkE,WAAW1C;wBACXZ,cAAcA;wBACd4B,aAAaA;wBACbE,eAAeA;wBACfC,aAAaA;wBACbE,mBAAmBA;wBACnBI,qBAAqBA;wBACrBK,aAAaA;wBACbF,YAAYA;wBACZC,YAAYA;wBACZL,yBAAyBA;wBACzBG,2BAA2BA;wBAC3BtC,eAAeA;wBACfV,2BAA2BA;wBAC3BC,kBAAkBA;wBAClBkE,UAAU;wBACVC,QAAQzD;;;;;;AAKlB"}
|
|
@@ -17,7 +17,7 @@ const _useAdaptivity = require("../../hooks/useAdaptivity");
|
|
|
17
17
|
const _RootComponent = require("../RootComponent/RootComponent");
|
|
18
18
|
const sizeXClassNames = {
|
|
19
19
|
none: "vkuiCardGrid--sizeX-none",
|
|
20
|
-
|
|
20
|
+
compact: "vkuiCardGrid--sizeX-compact"
|
|
21
21
|
};
|
|
22
22
|
const stylesSize = {
|
|
23
23
|
s: 'vkuiInternalCardGrid--size-s',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/CardGrid/CardGrid.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardGrid.module.css';\n\nconst sizeXClassNames = {\n none: styles['CardGrid--sizeX-none'],\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/CardGrid/CardGrid.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport { useAdaptivity } from '../../hooks/useAdaptivity';\nimport type { HasComponent, HTMLAttributesWithRootRef } from '../../types';\nimport { RootComponent } from '../RootComponent/RootComponent';\nimport styles from './CardGrid.module.css';\n\nconst sizeXClassNames = {\n none: styles['CardGrid--sizeX-none'],\n compact: styles['CardGrid--sizeX-compact'],\n};\n\nconst stylesSize = {\n s: 'vkuiInternalCardGrid--size-s',\n m: 'vkuiInternalCardGrid--size-m',\n l: 'vkuiInternalCardGrid--size-l',\n};\n\nexport interface CardGridProps extends HTMLAttributesWithRootRef<HTMLDivElement>, HasComponent {\n size?: 's' | 'm' | 'l';\n /**\n * Если true, то вокруг компонента присутствуют стандартные отсупы сверху/снизу и слева/справа\n */\n spaced?: boolean;\n}\n\n/**\n * @see https://vkcom.github.io/VKUI/#/CardGrid\n */\nexport const CardGrid = ({\n size = 's',\n spaced = false,\n // TODO [>=7]: поменять тег на ul https://github.com/VKCOM/VKUI/issues/7336\n Component = 'div',\n ...restProps\n}: CardGridProps): React.ReactNode => {\n const { sizeX = 'none' } = useAdaptivity();\n\n return (\n <RootComponent\n {...restProps}\n Component={Component}\n baseClassName={classNames(\n styles['CardGrid'],\n 'vkuiInternalCardGrid',\n spaced && styles['CardGrid--spaced'],\n stylesSize[size],\n sizeX !== 'regular' && sizeXClassNames[sizeX],\n )}\n />\n );\n};\n"],"names":["CardGrid","sizeXClassNames","none","compact","stylesSize","s","m","l","size","spaced","Component","restProps","sizeX","useAdaptivity","RootComponent","baseClassName","classNames"],"mappings":";;;;+BA4BaA;;;eAAAA;;;;;;;sBA5Bc;+BACG;+BAEA;AAG9B,MAAMC,kBAAkB;IACtBC,IAAI;IACJC,OAAO;AACT;AAEA,MAAMC,aAAa;IACjBC,GAAG;IACHC,GAAG;IACHC,GAAG;AACL;AAaO,MAAMP,WAAW;QAAC,EACvBQ,OAAO,GAAG,EACVC,SAAS,KAAK,EACd,2EAA2E;IAC3EC,YAAY,KAAK,EAEH,WADXC;QAJHH;QACAC;QAEAC;;IAGA,MAAM,EAAEE,QAAQ,MAAM,EAAE,GAAGC,IAAAA,4BAAa;IAExC,qBACE,qBAACC,4BAAa,8CACRH;QACJD,WAAWA;QACXK,eAAeC,IAAAA,gBAAU,kBAEvB,wBACAP,kCACAL,UAAU,CAACI,KAAK,EAChBI,UAAU,aAAaX,eAAe,CAACW,MAAM;;AAIrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Clickable.d.ts","sourceRoot":"","sources":["../../../../src/components/Clickable/Clickable.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Clickable.d.ts","sourceRoot":"","sources":["../../../../src/components/Clickable/Clickable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EACL,KAAK,qBAAqB,EAE3B,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACxF,OAAO,EAGL,KAAK,UAAU,EAEhB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,WAAW,CAC7C,SAAQ,kBAAkB,CAAC,CAAC,CAAC,EAC3B,qBAAqB,EACrB,UAAU;CAAG;AA2GjB;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO,CAWnE;AA2CD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,wEAIxB,cAAc,CAAC,CAAC,CAAC,KAAG,KAAK,CAAC,SAqB5B,CAAC"}
|
|
@@ -16,10 +16,12 @@ _export(exports, {
|
|
|
16
16
|
return checkClickable;
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
19
20
|
const _object_spread = require("@swc/helpers/_/_object_spread");
|
|
20
21
|
const _object_spread_props = require("@swc/helpers/_/_object_spread_props");
|
|
21
22
|
const _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
22
23
|
const _jsxruntime = require("react/jsx-runtime");
|
|
24
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
23
25
|
const _vkjs = require("@vkontakte/vkjs");
|
|
24
26
|
const _useFocusVisible = require("../../hooks/useFocusVisible");
|
|
25
27
|
const _useFocusVisibleClassName = require("../../hooks/useFocusVisibleClassName");
|
|
@@ -30,7 +32,7 @@ const _useState = require("./useState");
|
|
|
30
32
|
/**
|
|
31
33
|
* Некликабельный компонент. Отключаем возможность нажимать на компонент.
|
|
32
34
|
*/ const NonClickable = (_param)=>{
|
|
33
|
-
var { href, onClick, onClickCapture, activeClassName, hoverClassName, hasActive, hasHover, hovered, activated, activeEffectDelay } = _param, restProps = _object_without_properties._(_param, [
|
|
35
|
+
var { href, onClick, onClickCapture, activeClassName, hoverClassName, hasActive, hasHover, hovered, unlockParentHover, activated, activeEffectDelay } = _param, restProps = _object_without_properties._(_param, [
|
|
34
36
|
"href",
|
|
35
37
|
"onClick",
|
|
36
38
|
"onClickCapture",
|
|
@@ -39,6 +41,7 @@ const _useState = require("./useState");
|
|
|
39
41
|
"hasActive",
|
|
40
42
|
"hasHover",
|
|
41
43
|
"hovered",
|
|
44
|
+
"unlockParentHover",
|
|
42
45
|
"activated",
|
|
43
46
|
"activeEffectDelay"
|
|
44
47
|
]);
|
|
@@ -47,7 +50,7 @@ const _useState = require("./useState");
|
|
|
47
50
|
/**
|
|
48
51
|
* Кликабельный компонент. Добавляем кучу обвесов
|
|
49
52
|
*/ const RealClickable = (_param)=>{
|
|
50
|
-
var { baseClassName, children, focusVisibleMode = 'inside', activeClassName, hoverClassName, activeEffectDelay = _useState.DEFAULT_ACTIVE_EFFECT_DELAY, hasHover = true, hasActive = true, hovered, activated, onPointerEnter, onPointerLeave, onPointerDown, onPointerCancel, onPointerUp, onBlur, onFocus, onKeyDown } = _param, restProps = _object_without_properties._(_param, [
|
|
53
|
+
var { baseClassName, children, focusVisibleMode = 'inside', activeClassName, hoverClassName, activeEffectDelay = _useState.DEFAULT_ACTIVE_EFFECT_DELAY, hasHover = true, hasActive = true, hovered, activated, hasHoverWithChildren, unlockParentHover, onPointerEnter, onPointerLeave, onPointerDown, onPointerCancel, onPointerUp, onBlur, onFocus, onKeyDown } = _param, restProps = _object_without_properties._(_param, [
|
|
51
54
|
"baseClassName",
|
|
52
55
|
"children",
|
|
53
56
|
"focusVisibleMode",
|
|
@@ -58,6 +61,8 @@ const _useState = require("./useState");
|
|
|
58
61
|
"hasActive",
|
|
59
62
|
"hovered",
|
|
60
63
|
"activated",
|
|
64
|
+
"hasHoverWithChildren",
|
|
65
|
+
"unlockParentHover",
|
|
61
66
|
"onPointerEnter",
|
|
62
67
|
"onPointerLeave",
|
|
63
68
|
"onPointerDown",
|
|
@@ -81,10 +86,12 @@ const _useState = require("./useState");
|
|
|
81
86
|
hasHover,
|
|
82
87
|
hasActive,
|
|
83
88
|
hovered,
|
|
84
|
-
activated
|
|
85
|
-
|
|
89
|
+
activated,
|
|
90
|
+
unlockParentHover
|
|
91
|
+
}), { stateClassName, setLockHoverBubblingImmediate, setLockActiveBubblingImmediate } = _useState1, stateEvents = _object_without_properties._(_useState1, [
|
|
86
92
|
"stateClassName",
|
|
87
|
-
"
|
|
93
|
+
"setLockHoverBubblingImmediate",
|
|
94
|
+
"setLockActiveBubblingImmediate"
|
|
88
95
|
]);
|
|
89
96
|
const handlers = (0, _mergeCalls.mergeCalls)(focusEvents, stateEvents, {
|
|
90
97
|
onKeyDown: _utils.clickByKeyboardHandler
|
|
@@ -98,11 +105,19 @@ const _useState = require("./useState");
|
|
|
98
105
|
onFocus,
|
|
99
106
|
onKeyDown
|
|
100
107
|
});
|
|
108
|
+
const lockStateContextValue = _react.useMemo(()=>({
|
|
109
|
+
lockHoverStateBubbling: hasHoverWithChildren ? _vkjs.noop : setLockHoverBubblingImmediate,
|
|
110
|
+
lockActiveStateBubbling: setLockActiveBubblingImmediate
|
|
111
|
+
}), [
|
|
112
|
+
setLockHoverBubblingImmediate,
|
|
113
|
+
setLockActiveBubblingImmediate,
|
|
114
|
+
hasHoverWithChildren
|
|
115
|
+
]);
|
|
101
116
|
return /*#__PURE__*/ (0, _jsxruntime.jsx)(_RootComponent.RootComponent, _object_spread_props._(_object_spread._({
|
|
102
117
|
baseClassName: (0, _vkjs.classNames)(baseClassName, "vkuiClickable__realClickable", focusVisibleClassNames, stateClassName)
|
|
103
118
|
}, handlers, restProps), {
|
|
104
119
|
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_useState.ClickableLockStateContext.Provider, {
|
|
105
|
-
value:
|
|
120
|
+
value: lockStateContextValue,
|
|
106
121
|
children: children
|
|
107
122
|
})
|
|
108
123
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Clickable/Clickable.tsx"],"sourcesContent":["import { classNames } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport {\n type FocusVisibleModeProps,\n useFocusVisibleClassName,\n} from '../../hooks/useFocusVisibleClassName';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { clickByKeyboardHandler } from '../../lib/utils';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport {\n ClickableLockStateContext,\n DEFAULT_ACTIVE_EFFECT_DELAY,\n type StateProps,\n useState,\n} from './useState';\nimport styles from './Clickable.module.css';\n\nexport interface ClickableProps<T = HTMLElement>\n extends RootComponentProps<T>,\n FocusVisibleModeProps,\n StateProps {}\n\n/**\n * Некликабельный компонент. Отключаем возможность нажимать на компонент.\n */\nconst NonClickable = <T,>({\n href,\n onClick,\n onClickCapture,\n activeClassName,\n hoverClassName,\n hasActive,\n hasHover,\n hovered,\n activated,\n activeEffectDelay,\n ...restProps\n}: ClickableProps<T>) => <RootComponent {...restProps} />;\n\n/**\n * Кликабельный компонент. Добавляем кучу обвесов\n */\nconst RealClickable = <T,>({\n baseClassName,\n children,\n focusVisibleMode = 'inside',\n activeClassName,\n hoverClassName,\n activeEffectDelay = DEFAULT_ACTIVE_EFFECT_DELAY,\n hasHover = true,\n hasActive = true,\n hovered,\n activated,\n onPointerEnter,\n onPointerLeave,\n onPointerDown,\n onPointerCancel,\n onPointerUp,\n onBlur,\n onFocus,\n onKeyDown,\n ...restProps\n}: ClickableProps<T>) => {\n const { focusVisible, ...focusEvents } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible, mode: focusVisibleMode });\n\n const {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Clickable/Clickable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { classNames, noop } from '@vkontakte/vkjs';\nimport { useFocusVisible } from '../../hooks/useFocusVisible';\nimport {\n type FocusVisibleModeProps,\n useFocusVisibleClassName,\n} from '../../hooks/useFocusVisibleClassName';\nimport { mergeCalls } from '../../lib/mergeCalls';\nimport { clickByKeyboardHandler } from '../../lib/utils';\nimport { RootComponent, type RootComponentProps } from '../RootComponent/RootComponent';\nimport {\n ClickableLockStateContext,\n DEFAULT_ACTIVE_EFFECT_DELAY,\n type StateProps,\n useState,\n} from './useState';\nimport styles from './Clickable.module.css';\n\nexport interface ClickableProps<T = HTMLElement>\n extends RootComponentProps<T>,\n FocusVisibleModeProps,\n StateProps {}\n\n/**\n * Некликабельный компонент. Отключаем возможность нажимать на компонент.\n */\nconst NonClickable = <T,>({\n href,\n onClick,\n onClickCapture,\n activeClassName,\n hoverClassName,\n hasActive,\n hasHover,\n hovered,\n unlockParentHover,\n activated,\n activeEffectDelay,\n ...restProps\n}: ClickableProps<T>) => <RootComponent {...restProps} />;\n\n/**\n * Кликабельный компонент. Добавляем кучу обвесов\n */\nconst RealClickable = <T,>({\n baseClassName,\n children,\n focusVisibleMode = 'inside',\n activeClassName,\n hoverClassName,\n activeEffectDelay = DEFAULT_ACTIVE_EFFECT_DELAY,\n hasHover = true,\n hasActive = true,\n hovered,\n activated,\n hasHoverWithChildren,\n unlockParentHover,\n onPointerEnter,\n onPointerLeave,\n onPointerDown,\n onPointerCancel,\n onPointerUp,\n onBlur,\n onFocus,\n onKeyDown,\n ...restProps\n}: ClickableProps<T>) => {\n const { focusVisible, ...focusEvents } = useFocusVisible();\n const focusVisibleClassNames = useFocusVisibleClassName({ focusVisible, mode: focusVisibleMode });\n\n const {\n stateClassName,\n setLockHoverBubblingImmediate,\n setLockActiveBubblingImmediate,\n ...stateEvents\n } = useState({\n activeClassName,\n hoverClassName,\n activeEffectDelay,\n hasHover,\n hasActive,\n hovered,\n activated,\n unlockParentHover,\n });\n\n const handlers = mergeCalls(\n focusEvents,\n stateEvents,\n { onKeyDown: clickByKeyboardHandler },\n {\n onPointerEnter,\n onPointerLeave,\n onPointerDown,\n onPointerCancel,\n onPointerUp,\n onBlur,\n onFocus,\n onKeyDown,\n },\n );\n\n const lockStateContextValue = React.useMemo(\n () => ({\n lockHoverStateBubbling: hasHoverWithChildren ? noop : setLockHoverBubblingImmediate,\n lockActiveStateBubbling: setLockActiveBubblingImmediate,\n }),\n [setLockHoverBubblingImmediate, setLockActiveBubblingImmediate, hasHoverWithChildren],\n );\n\n return (\n <RootComponent\n baseClassName={classNames(\n baseClassName,\n styles['Clickable__realClickable'],\n focusVisibleClassNames,\n stateClassName,\n )}\n {...handlers}\n {...restProps}\n >\n <ClickableLockStateContext.Provider value={lockStateContextValue}>\n {children}\n </ClickableLockStateContext.Provider>\n </RootComponent>\n );\n};\n\n/**\n * Проверяем, является ли компонент кликабельным\n */\nexport function checkClickable<T>(props: ClickableProps<T>): boolean {\n return (\n (props.href !== undefined ||\n props.onClick !== undefined ||\n props.onClickCapture !== undefined ||\n props.Component === 'a' ||\n props.Component === 'button' ||\n props.Component === 'label' ||\n props.Component === 'input') &&\n !props.disabled\n );\n}\n\n/**\n * Определяет правильный компонент и его свойства\n *\n * - если передан Component, используем его\n * - при передаче `href` превратится в `a`,\n * - при передаче `onClick` превратится в `div` c `role=\"button\"` и `tabIndex=\"0\"`.\n * - иначе используется `div`.\n */\nfunction component<T>({\n Component,\n onClick,\n onClickCapture,\n href,\n disabled,\n}: RootComponentProps<T>): RootComponentProps<T> {\n if (Component !== undefined) {\n return { Component };\n } else if (href !== undefined) {\n return { 'Component': 'a', 'aria-disabled': disabled };\n } else if (onClick !== undefined || onClickCapture !== undefined) {\n return {\n 'Component': 'div',\n 'role': 'button',\n 'tabIndex': disabled ? undefined : 0,\n 'aria-disabled': disabled,\n };\n }\n\n return {};\n}\n\nconst getUserAgentResetClassName = (Component?: React.ElementType) => {\n if (Component === 'a') {\n return styles.Clickable__resetLinkStyle;\n }\n if (Component === 'button') {\n return styles.Clickable__resetButtonStyle;\n }\n return;\n};\n\n/**\n * Базовый кликабельный корневой компонент.\n *\n * - при передаче `href` превратится в `a`,\n * - при передаче `onClick` превратится в `div` c `role=\"button\"` и `tabIndex=\"0\"`.\n * - иначе используется `div`.\n *\n * Отвечает за:\n *\n * - стейты наведения и нажатия\n * - a11y компонентов\n */\nexport const Clickable = <T,>({\n focusVisibleMode = 'inside',\n baseClassName: baseClassNameProp,\n ...restProps\n}: ClickableProps<T>): React.ReactNode => {\n const commonProps = component(restProps);\n const isClickable = checkClickable(restProps);\n const baseClassName = classNames(\n baseClassNameProp,\n getUserAgentResetClassName(commonProps.Component),\n styles['Clickable__host'],\n );\n\n if (isClickable) {\n return (\n <RealClickable\n baseClassName={baseClassName}\n focusVisibleMode={focusVisibleMode}\n {...commonProps}\n {...restProps}\n />\n );\n }\n\n return <NonClickable baseClassName={baseClassName} {...commonProps} {...restProps} />;\n};\n"],"names":["Clickable","checkClickable","NonClickable","href","onClick","onClickCapture","activeClassName","hoverClassName","hasActive","hasHover","hovered","unlockParentHover","activated","activeEffectDelay","restProps","RootComponent","RealClickable","baseClassName","children","focusVisibleMode","DEFAULT_ACTIVE_EFFECT_DELAY","hasHoverWithChildren","onPointerEnter","onPointerLeave","onPointerDown","onPointerCancel","onPointerUp","onBlur","onFocus","onKeyDown","useFocusVisible","focusVisible","focusEvents","focusVisibleClassNames","useFocusVisibleClassName","mode","useState","stateClassName","setLockHoverBubblingImmediate","setLockActiveBubblingImmediate","stateEvents","handlers","mergeCalls","clickByKeyboardHandler","lockStateContextValue","React","useMemo","lockHoverStateBubbling","noop","lockActiveStateBubbling","classNames","ClickableLockStateContext","Provider","value","props","undefined","Component","disabled","component","getUserAgentResetClassName","baseClassNameProp","commonProps","isClickable"],"mappings":"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"}
|
|
@@ -16,6 +16,36 @@ export interface StateProps {
|
|
|
16
16
|
* Указывает, должен ли компонент реагировать на active-состояние
|
|
17
17
|
*/
|
|
18
18
|
hasActive?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Позволяет родительскому компоненту
|
|
21
|
+
* иметь hovered-cостояние при наведении
|
|
22
|
+
* на любой дочерний элемент.
|
|
23
|
+
* По умолчанию состояние hovered у родителя сбрасывается.
|
|
24
|
+
*
|
|
25
|
+
* Присваивается родителькому компоненту.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* <Tappable hasHoverWithChildren>
|
|
29
|
+
* <IconButton />
|
|
30
|
+
* <IconButton />
|
|
31
|
+
* <IconButton />
|
|
32
|
+
* </Tappable>
|
|
33
|
+
*/
|
|
34
|
+
hasHoverWithChildren?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Позволяет родительскому компоненту показывать hovered-состояние при наведении
|
|
37
|
+
* на текущий дочерний компонент.
|
|
38
|
+
*
|
|
39
|
+
* Присваивается дочернему компоненту.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* <Tappable>
|
|
43
|
+
* <IconButton unlockParentHover />
|
|
44
|
+
* <IconButton unlockParentHover />
|
|
45
|
+
* <IconButton />
|
|
46
|
+
* </Tappable>
|
|
47
|
+
*/
|
|
48
|
+
unlockParentHover?: boolean;
|
|
19
49
|
/**
|
|
20
50
|
* Длительность показа `activated`-состояния
|
|
21
51
|
*/
|
|
@@ -30,12 +60,18 @@ export interface StateProps {
|
|
|
30
60
|
hoverClassName?: string;
|
|
31
61
|
}
|
|
32
62
|
export declare const DEFAULT_ACTIVE_EFFECT_DELAY = 600;
|
|
33
|
-
|
|
63
|
+
interface ClickableLockStateContextInterface {
|
|
64
|
+
lockHoverStateBubbling?: (v: boolean) => void;
|
|
65
|
+
lockActiveStateBubbling?: (v: boolean) => void;
|
|
66
|
+
}
|
|
67
|
+
export declare const ClickableLockStateContext: React.Context<ClickableLockStateContextInterface>;
|
|
34
68
|
/**
|
|
35
69
|
* Управляет состоянием компонента
|
|
36
70
|
*/
|
|
37
|
-
export declare function useState({ hasHover, hasActive, ...restProps }: StateProps): {
|
|
71
|
+
export declare function useState({ hovered, hasHover, hasActive, unlockParentHover, ...restProps }: StateProps): {
|
|
38
72
|
stateClassName: string;
|
|
39
|
-
|
|
73
|
+
setLockHoverBubblingImmediate: (...args: any[]) => void;
|
|
74
|
+
setLockActiveBubblingImmediate: (...args: any[]) => void;
|
|
40
75
|
};
|
|
76
|
+
export {};
|
|
41
77
|
//# sourceMappingURL=useState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useState.d.ts","sourceRoot":"","sources":["../../../../src/components/Clickable/useState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useState.d.ts","sourceRoot":"","sources":["../../../../src/components/Clickable/useState.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B;;;;;;;;;;;;OAYG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,2BAA2B,MAAM,CAAC;AA6I/C,UAAU,kCAAkC;IAC1C,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,uBAAuB,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAED,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,kCAAkC,CAIpF,CAAC;AAqCL;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,GAAG,SAAS,EACb,EAAE,UAAU,GAAG;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;IACxD,8BAA8B,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;CAC1D,CAkCA"}
|
|
@@ -21,42 +21,79 @@ _export(exports, {
|
|
|
21
21
|
});
|
|
22
22
|
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
23
23
|
const _object_spread = require("@swc/helpers/_/_object_spread");
|
|
24
|
+
const _object_spread_props = require("@swc/helpers/_/_object_spread_props");
|
|
24
25
|
const _object_without_properties = require("@swc/helpers/_/_object_without_properties");
|
|
25
26
|
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
|
26
27
|
const _vkjs = require("@vkontakte/vkjs");
|
|
27
|
-
const _callMultiple = require("../../lib/callMultiple");
|
|
28
28
|
const _mergeCalls = require("../../lib/mergeCalls");
|
|
29
29
|
const _useStateWithDelay = require("./useStateWithDelay");
|
|
30
30
|
const DEFAULT_ACTIVE_EFFECT_DELAY = 600;
|
|
31
31
|
const ACTIVE_DELAY = 70;
|
|
32
32
|
/**
|
|
33
33
|
* Управляет наведением на компонент, игнорирует тач события
|
|
34
|
-
*/ function useHover({ hovered,
|
|
35
|
-
const [
|
|
36
|
-
const
|
|
34
|
+
*/ function useHover({ hovered, hasHover = true, lockState, setParentStateLock }) {
|
|
35
|
+
const [hoveredStateLocal, setHoveredStateLocal] = _react.useState(false);
|
|
36
|
+
const prevIsHoveredRef = _react.useRef(undefined);
|
|
37
|
+
const handleHover = _react.useCallback((isHover)=>{
|
|
38
|
+
setHoveredStateLocal(isHover);
|
|
39
|
+
const isHovered = calculateStateValue({
|
|
40
|
+
hasState: hasHover,
|
|
41
|
+
isLocked: lockState,
|
|
42
|
+
stateValueControlled: Boolean(hovered),
|
|
43
|
+
stateValueLocal: isHover
|
|
44
|
+
});
|
|
45
|
+
// проверка сделана чтобы реже вызывать обновление состояния
|
|
46
|
+
// контекста родителя
|
|
47
|
+
if (isHovered !== prevIsHoveredRef.current) {
|
|
48
|
+
prevIsHoveredRef.current = isHovered;
|
|
49
|
+
setParentStateLock(isHovered);
|
|
50
|
+
}
|
|
51
|
+
}, [
|
|
52
|
+
setParentStateLock,
|
|
53
|
+
hasHover,
|
|
54
|
+
hovered,
|
|
55
|
+
lockState
|
|
56
|
+
]);
|
|
37
57
|
const onPointerEnter = (e)=>{
|
|
38
58
|
if (e.pointerType === 'touch') {
|
|
39
59
|
return;
|
|
40
60
|
}
|
|
41
|
-
|
|
61
|
+
handleHover(true);
|
|
42
62
|
};
|
|
43
63
|
const onPointerLeave = ()=>{
|
|
44
|
-
|
|
64
|
+
handleHover(false);
|
|
45
65
|
};
|
|
66
|
+
const isHovered = calculateStateValue({
|
|
67
|
+
hasState: hasHover,
|
|
68
|
+
isLocked: lockState,
|
|
69
|
+
stateValueControlled: Boolean(hovered),
|
|
70
|
+
stateValueLocal: hoveredStateLocal
|
|
71
|
+
});
|
|
46
72
|
return {
|
|
47
|
-
|
|
73
|
+
isHovered,
|
|
48
74
|
onPointerEnter: hasHover ? onPointerEnter : _vkjs.noop,
|
|
49
75
|
onPointerLeave: hasHover ? onPointerLeave : _vkjs.noop
|
|
50
76
|
};
|
|
51
77
|
}
|
|
52
78
|
/**
|
|
53
79
|
* Управляет активацией компонента
|
|
54
|
-
*/ function useActive({ activated,
|
|
55
|
-
|
|
80
|
+
*/ function useActive({ activated, activeEffectDelay, hasActive = true, lockStateRef, setParentStateLock }) {
|
|
81
|
+
// передаём setParentStateLock, чтобы функция вызывалась вместе с установкой стейта,
|
|
82
|
+
// если установка отложена c помощью delay, то и вызов будет отложен
|
|
83
|
+
const [activatedState, setActivated] = (0, _useStateWithDelay.useStateWithDelay)(false, 0, setParentStateLock);
|
|
56
84
|
// Список нажатий которые не требуется отменять
|
|
57
85
|
const pointersUp = _react.useMemo(()=>new Set(), []);
|
|
58
|
-
const
|
|
59
|
-
|
|
86
|
+
const onPointerDown = ()=>{
|
|
87
|
+
if (lockStateRef.current) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
setActivated(true, ACTIVE_DELAY);
|
|
91
|
+
// намеренно выставляем lock, так как setActivated вызов отложен
|
|
92
|
+
// а у отложенного setActivated setParentStateLock тоже вызовится отложенно
|
|
93
|
+
// родитель сейчас тоже обработает это же событие PointerDown
|
|
94
|
+
// если мы не залочим activatedState у родителя сейчас, то родитель выставит active состояние
|
|
95
|
+
setParentStateLock(true);
|
|
96
|
+
};
|
|
60
97
|
const onPointerCancel = (e)=>{
|
|
61
98
|
if (pointersUp.has(e.pointerId)) {
|
|
62
99
|
pointersUp.delete(e.pointerId);
|
|
@@ -66,59 +103,95 @@ const ACTIVE_DELAY = 70;
|
|
|
66
103
|
};
|
|
67
104
|
const onPointerUp = (e)=>{
|
|
68
105
|
pointersUp.add(e.pointerId);
|
|
106
|
+
if (lockStateRef.current) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
69
109
|
setActivated(true);
|
|
70
110
|
setActivated(false, activeEffectDelay);
|
|
71
111
|
};
|
|
112
|
+
const isActivated = calculateStateValue({
|
|
113
|
+
hasState: hasActive,
|
|
114
|
+
isLocked: lockStateRef.current,
|
|
115
|
+
stateValueControlled: Boolean(activated),
|
|
116
|
+
stateValueLocal: activatedState
|
|
117
|
+
});
|
|
72
118
|
return {
|
|
73
|
-
|
|
119
|
+
isActivated,
|
|
74
120
|
onPointerLeave: hasActive ? onPointerCancel : _vkjs.noop,
|
|
75
121
|
onPointerDown: hasActive ? onPointerDown : _vkjs.noop,
|
|
76
122
|
onPointerCancel: hasActive ? onPointerCancel : _vkjs.noop,
|
|
77
123
|
onPointerUp: hasActive ? onPointerUp : _vkjs.noop
|
|
78
124
|
};
|
|
79
125
|
}
|
|
80
|
-
const ClickableLockStateContext = /*#__PURE__*/ _react.createContext(
|
|
126
|
+
const ClickableLockStateContext = /*#__PURE__*/ _react.createContext({
|
|
127
|
+
lockHoverStateBubbling: undefined,
|
|
128
|
+
lockActiveStateBubbling: undefined
|
|
129
|
+
});
|
|
81
130
|
/**
|
|
82
131
|
* Блокирует стейт на всплытие
|
|
83
|
-
*/ function useLockState() {
|
|
84
|
-
const setLockBubbling = _react.useContext(ClickableLockStateContext) || _vkjs.noop;
|
|
132
|
+
*/ function useLockState(setParentStateLockBubbling) {
|
|
85
133
|
const [lockState, setLockState] = _react.useState(false);
|
|
86
|
-
const
|
|
134
|
+
const setStateLockBubblingImmediate = _react.useCallback((isLock)=>{
|
|
135
|
+
setLockState(isLock);
|
|
136
|
+
setParentStateLockBubbling(isLock);
|
|
137
|
+
}, [
|
|
138
|
+
setParentStateLockBubbling
|
|
139
|
+
]);
|
|
87
140
|
return [
|
|
88
141
|
lockState,
|
|
89
|
-
|
|
90
|
-
|
|
142
|
+
setParentStateLockBubbling,
|
|
143
|
+
setStateLockBubblingImmediate
|
|
144
|
+
];
|
|
145
|
+
}
|
|
146
|
+
function useLockRef(setParentStateLockBubbling) {
|
|
147
|
+
const lockStateRef = _react.useRef(false);
|
|
148
|
+
const setStateLockBubblingImmediate = _react.useCallback((isLock)=>{
|
|
149
|
+
lockStateRef.current = isLock;
|
|
150
|
+
setParentStateLockBubbling(isLock);
|
|
151
|
+
}, [
|
|
152
|
+
setParentStateLockBubbling
|
|
153
|
+
]);
|
|
154
|
+
return [
|
|
155
|
+
lockStateRef,
|
|
156
|
+
setParentStateLockBubbling,
|
|
157
|
+
setStateLockBubblingImmediate
|
|
91
158
|
];
|
|
92
159
|
}
|
|
93
160
|
function useState(_param) {
|
|
94
|
-
var { hasHover, hasActive } = _param, restProps = _object_without_properties._(_param, [
|
|
161
|
+
var { hovered, hasHover, hasActive, unlockParentHover } = _param, restProps = _object_without_properties._(_param, [
|
|
162
|
+
"hovered",
|
|
95
163
|
"hasHover",
|
|
96
|
-
"hasActive"
|
|
164
|
+
"hasActive",
|
|
165
|
+
"unlockParentHover"
|
|
97
166
|
]);
|
|
98
|
-
const
|
|
99
|
-
const
|
|
167
|
+
const { lockHoverStateBubbling = _vkjs.noop, lockActiveStateBubbling = _vkjs.noop } = _react.useContext(ClickableLockStateContext);
|
|
168
|
+
const [lockHoverState, setParentStateLockHoverBubbling, setLockHoverBubblingImmediate] = useLockState(unlockParentHover ? _vkjs.noop : lockHoverStateBubbling);
|
|
169
|
+
const [lockActiveStateRef, setParentStateLockActiveBubbling, setLockActiveBubblingImmediate] = useLockRef(lockActiveStateBubbling);
|
|
170
|
+
const _useHover = useHover({
|
|
100
171
|
hasHover,
|
|
101
|
-
|
|
102
|
-
lockState
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
"
|
|
172
|
+
hovered,
|
|
173
|
+
lockState: lockHoverState,
|
|
174
|
+
setParentStateLock: setParentStateLockHoverBubbling
|
|
175
|
+
}), { isHovered } = _useHover, hoverEvent = _object_without_properties._(_useHover, [
|
|
176
|
+
"isHovered"
|
|
106
177
|
]);
|
|
107
|
-
const _useActive = useActive(
|
|
108
|
-
|
|
178
|
+
const _useActive = useActive(_object_spread_props._(_object_spread._({}, restProps), {
|
|
179
|
+
lockStateRef: lockActiveStateRef,
|
|
180
|
+
setParentStateLock: setParentStateLockActiveBubbling
|
|
181
|
+
})), { isActivated } = _useActive, activeEvent = _object_without_properties._(_useActive, [
|
|
182
|
+
"isActivated"
|
|
109
183
|
]);
|
|
110
|
-
const stateClassName = (0, _vkjs.classNames)(
|
|
184
|
+
const stateClassName = (0, _vkjs.classNames)(isHovered && restProps.hoverClassName, isActivated && restProps.activeClassName);
|
|
111
185
|
const handlers = (0, _mergeCalls.mergeCalls)(hoverEvent, activeEvent);
|
|
112
|
-
_react.useEffect(()=>{
|
|
113
|
-
setLockBubbling(!!stateClassName);
|
|
114
|
-
}, [
|
|
115
|
-
setLockBubbling,
|
|
116
|
-
stateClassName
|
|
117
|
-
]);
|
|
118
186
|
return _object_spread._({
|
|
119
187
|
stateClassName,
|
|
120
|
-
|
|
188
|
+
setLockHoverBubblingImmediate,
|
|
189
|
+
setLockActiveBubblingImmediate
|
|
121
190
|
}, handlers);
|
|
122
191
|
}
|
|
192
|
+
// Общая функция для определения конечного состояния active/hovered
|
|
193
|
+
function calculateStateValue({ hasState, isLocked, stateValueControlled, stateValueLocal }) {
|
|
194
|
+
return hasState && !isLocked && (stateValueControlled || stateValueLocal);
|
|
195
|
+
}
|
|
123
196
|
|
|
124
197
|
//# sourceMappingURL=useState.js.map
|