@vkontakte/vkui 7.5.4 → 7.6.1
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/components/Calendar/Calendar.js +6 -6
- package/dist/components/Calendar/Calendar.js.map +1 -1
- package/dist/components/CalendarDays/CalendarDays.js +3 -3
- package/dist/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.d.ts.map +1 -1
- package/dist/components/CalendarRange/CalendarRange.js +16 -14
- package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/components/CalendarRange/utils.d.ts.map +1 -1
- package/dist/components/CalendarRange/utils.js +6 -5
- package/dist/components/CalendarRange/utils.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts.map +1 -1
- package/dist/components/Cell/Cell.js +6 -3
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts +5 -3
- package/dist/components/CellButtonGroup/CellButtonGroup.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.d.ts +4 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.js +4 -2
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts +1 -1
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.d.ts.map +1 -1
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js +6 -3
- package/dist/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts +41 -2
- package/dist/components/ChipsInputBase/Chip/Chip.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/Chip/Chip.js +7 -2
- package/dist/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/components/ChipsInputBase/types.d.ts +2 -35
- package/dist/components/ChipsInputBase/types.d.ts.map +1 -1
- package/dist/components/ChipsInputBase/types.js.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.d.ts +1 -1
- package/dist/components/ContentBadge/ContentBadge.d.ts.map +1 -1
- package/dist/components/ContentBadge/ContentBadge.js +15 -9
- package/dist/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts +1 -1
- package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
- package/dist/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +16 -27
- package/dist/components/CustomSelect/CustomSelect.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.js +161 -428
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts +3 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.d.ts.map +1 -1
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +25 -5
- package/dist/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
- package/dist/components/CustomSelect/helpers.d.ts +12 -0
- package/dist/components/CustomSelect/helpers.d.ts.map +1 -0
- package/dist/components/CustomSelect/helpers.js +63 -0
- package/dist/components/CustomSelect/helpers.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.d.ts +11 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.js +57 -0
- package/dist/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts +13 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
- package/dist/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts +20 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
- package/dist/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts +13 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
- package/dist/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.d.ts +15 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.js +43 -0
- package/dist/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.d.ts +9 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.js +37 -0
- package/dist/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts +18 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.d.ts.map +1 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
- package/dist/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
- package/dist/components/CustomSelect/types.d.ts +33 -0
- package/dist/components/CustomSelect/types.d.ts.map +1 -0
- package/dist/components/CustomSelect/types.js +3 -0
- package/dist/components/CustomSelect/types.js.map +1 -0
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.d.ts.map +1 -1
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
- package/dist/components/CustomSelectDropdown/CustomSelectDropdown.js.map +1 -1
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/DateInput.js +3 -2
- package/dist/components/DateInput/DateInput.js.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/DateRangeInput.js +4 -4
- package/dist/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.d.ts +1 -1
- package/dist/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts +3 -2
- package/dist/components/MiniInfoCell/MiniInfoCell.d.ts.map +1 -1
- package/dist/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts +1 -1
- package/dist/components/ModalCard/ModalCard.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCard.js +4 -2
- package/dist/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.d.ts +1 -1
- package/dist/components/ModalCard/ModalCardInternal.d.ts.map +1 -1
- package/dist/components/ModalCard/ModalCardInternal.js +5 -3
- package/dist/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/components/ModalCard/types.d.ts +8 -0
- package/dist/components/ModalCard/types.d.ts.map +1 -1
- package/dist/components/ModalCard/types.js.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.d.ts +2 -1
- package/dist/components/ModalOutlet/ModalOutlet.d.ts.map +1 -1
- package/dist/components/ModalOutlet/ModalOutlet.js +4 -3
- package/dist/components/ModalOutlet/ModalOutlet.js.map +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts +1 -1
- package/dist/components/ModalPage/ModalPage.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPage.js +3 -1
- package/dist/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts +1 -1
- package/dist/components/ModalPage/ModalPageInternal.d.ts.map +1 -1
- package/dist/components/ModalPage/ModalPageInternal.js +5 -3
- package/dist/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/components/ModalPage/types.d.ts +8 -0
- package/dist/components/ModalPage/types.d.ts.map +1 -1
- package/dist/components/ModalPage/types.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts +1 -1
- package/dist/components/ModalRoot/ModalRoot.d.ts.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +4 -2
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +6 -0
- package/dist/components/ModalRoot/types.d.ts.map +1 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +3 -1
- package/dist/components/ModalRoot/useModalManager.d.ts.map +1 -1
- package/dist/components/ModalRoot/useModalManager.js +2 -1
- package/dist/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts +2 -2
- package/dist/components/OnboardingTooltip/OnboardingTooltip.d.ts.map +1 -1
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js +4 -2
- package/dist/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +1 -1
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Popover/usePopover.d.ts +1 -1
- package/dist/components/Popover/usePopover.d.ts.map +1 -1
- package/dist/components/Popover/usePopover.js +3 -1
- package/dist/components/Popover/usePopover.js.map +1 -1
- package/dist/components/Popper/Popper.d.ts +2 -2
- package/dist/components/Popper/Popper.d.ts.map +1 -1
- package/dist/components/Popper/Popper.js +3 -1
- package/dist/components/Popper/Popper.js.map +1 -1
- package/dist/components/Select/Select.d.ts +2 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.js +5 -2
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts +5 -1
- package/dist/components/SelectionControl/SelectionControl.d.ts.map +1 -1
- package/dist/components/SelectionControl/SelectionControl.js +22 -6
- package/dist/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/components/SelectionControl/SelectionControlContext.d.ts +7 -0
- package/dist/components/SelectionControl/SelectionControlContext.d.ts.map +1 -0
- package/dist/components/SelectionControl/SelectionControlContext.js +7 -0
- package/dist/components/SelectionControl/SelectionControlContext.js.map +1 -0
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.d.ts.map +1 -1
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
- package/dist/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.js +29 -8
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/Skeleton/Skeleton.js +1 -1
- package/dist/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.js +19 -9
- package/dist/components/Tabs/Tabs.js.map +1 -1
- package/dist/components/Tabs/TabsController.d.ts +2 -2
- package/dist/components/Tabs/TabsController.d.ts.map +1 -1
- package/dist/components/Tabs/TabsController.js.map +1 -1
- package/dist/components/Tabs/TabsControllerContext.d.ts +5 -0
- package/dist/components/Tabs/TabsControllerContext.d.ts.map +1 -0
- package/dist/components/Tabs/TabsControllerContext.js +4 -0
- package/dist/components/Tabs/TabsControllerContext.js.map +1 -0
- package/dist/components/Tabs/TabsModeContext.d.ts +0 -2
- package/dist/components/Tabs/TabsModeContext.d.ts.map +1 -1
- package/dist/components/Tabs/TabsModeContext.js +1 -2
- package/dist/components/Tabs/TabsModeContext.js.map +1 -1
- package/dist/components/TabsItem/TabsItem.d.ts.map +1 -1
- package/dist/components/TabsItem/TabsItem.js +3 -1
- package/dist/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/Tooltip/useTooltip.d.ts +1 -1
- package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/useTooltip.js +3 -1
- package/dist/components/Tooltip/useTooltip.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +2 -0
- package/dist/components/Typography/Caption/Caption.d.ts.map +1 -1
- package/dist/components/Typography/Caption/Caption.js +4 -1
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.d.ts +2 -0
- package/dist/components/Typography/Footnote/Footnote.d.ts.map +1 -1
- package/dist/components/Typography/Footnote/Footnote.js +4 -1
- package/dist/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/components/Typography/Typography.d.ts +1 -0
- package/dist/components/Typography/Typography.d.ts.map +1 -1
- package/dist/components/Typography/Typography.js +7 -1
- package/dist/components/Typography/Typography.js.map +1 -1
- package/dist/components/View/View.d.ts.map +1 -1
- package/dist/components/View/View.js +2 -1
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.d.ts.map +1 -1
- package/dist/components/View/ViewInfinite.js +2 -1
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/Banner/Banner.module.css +1 -6
- package/dist/cssm/components/Calendar/Calendar.js +6 -6
- package/dist/cssm/components/Calendar/Calendar.js.map +1 -1
- package/dist/cssm/components/CalendarDays/CalendarDays.js +3 -3
- package/dist/cssm/components/CalendarDays/CalendarDays.js.map +1 -1
- package/dist/cssm/components/CalendarRange/CalendarRange.js +16 -14
- package/dist/cssm/components/CalendarRange/CalendarRange.js.map +1 -1
- package/dist/cssm/components/CalendarRange/utils.js +6 -5
- package/dist/cssm/components/CalendarRange/utils.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.js +3 -1
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Checkbox/Checkbox.js +2 -1
- package/dist/cssm/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js +4 -2
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.js.map +1 -1
- package/dist/cssm/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +11 -2
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js +6 -2
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.js.map +1 -1
- package/dist/cssm/components/ChipsInputBase/Chip/Chip.module.css +8 -1
- package/dist/cssm/components/ChipsInputBase/types.js.map +1 -1
- package/dist/cssm/components/ContentBadge/ContentBadge.js +14 -8
- package/dist/cssm/components/ContentBadge/ContentBadge.js.map +1 -1
- package/dist/cssm/components/ContentCard/ContentCard.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +154 -421
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js +22 -4
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
- package/dist/cssm/components/CustomSelect/helpers.js +62 -0
- package/dist/cssm/components/CustomSelect/helpers.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js +58 -0
- package/dist/cssm/components/CustomSelect/hooks/useAfterItems.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js +60 -0
- package/dist/cssm/components/CustomSelect/hooks/useDropdownOpenedController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js +52 -0
- package/dist/cssm/components/CustomSelect/hooks/useFocusedOptionController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js +78 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputKeyboardController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js +43 -0
- package/dist/cssm/components/CustomSelect/hooks/useInputValueController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js +37 -0
- package/dist/cssm/components/CustomSelect/hooks/useScrollListController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js +81 -0
- package/dist/cssm/components/CustomSelect/hooks/useSelectedOptionController.js.map +1 -0
- package/dist/cssm/components/CustomSelect/types.js +3 -0
- package/dist/cssm/components/CustomSelect/types.js.map +1 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js +1 -0
- package/dist/cssm/components/CustomSelectDropdown/CustomSelectDropdown.js.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.js +4 -4
- package/dist/cssm/components/DateRangeInput/DateRangeInput.js.map +1 -1
- package/dist/cssm/components/ImageBase/ImageBaseBadge/ImageBaseBadge.js.map +1 -1
- package/dist/cssm/components/MiniInfoCell/MiniInfoCell.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCard.js +2 -1
- package/dist/cssm/components/ModalCard/ModalCard.js.map +1 -1
- package/dist/cssm/components/ModalCard/ModalCardInternal.js +3 -2
- package/dist/cssm/components/ModalCard/ModalCardInternal.js.map +1 -1
- package/dist/cssm/components/ModalCard/types.js.map +1 -1
- package/dist/cssm/components/ModalOutlet/ModalOutlet.js +2 -2
- package/dist/cssm/components/ModalOutlet/ModalOutlet.js.map +1 -1
- package/dist/cssm/components/ModalOutlet/ModalOutlet.module.css +4 -0
- package/dist/cssm/components/ModalOverlay/ModalOverlay.module.css +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.js +2 -1
- package/dist/cssm/components/ModalPage/ModalPage.js.map +1 -1
- package/dist/cssm/components/ModalPage/ModalPage.module.css +1 -0
- package/dist/cssm/components/ModalPage/ModalPageInternal.js +3 -2
- package/dist/cssm/components/ModalPage/ModalPageInternal.js.map +1 -1
- package/dist/cssm/components/ModalPage/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +4 -2
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js +2 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -1
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js +3 -2
- package/dist/cssm/components/OnboardingTooltip/OnboardingTooltip.js.map +1 -1
- package/dist/cssm/components/Popover/Popover.js.map +1 -1
- package/dist/cssm/components/Popover/usePopover.js +2 -1
- package/dist/cssm/components/Popover/usePopover.js.map +1 -1
- package/dist/cssm/components/Popper/Popper.js +2 -1
- package/dist/cssm/components/Popper/Popper.js.map +1 -1
- package/dist/cssm/components/RichCell/RichCell.module.css +4 -2
- package/dist/cssm/components/Select/Select.js +1 -1
- package/dist/cssm/components/Select/Select.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.js +16 -6
- package/dist/cssm/components/SelectionControl/SelectionControl.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControl.module.css +6 -3
- package/dist/cssm/components/SelectionControl/SelectionControlContext.js +7 -0
- package/dist/cssm/components/SelectionControl/SelectionControlContext.js.map +1 -0
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js +3 -1
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.js.map +1 -1
- package/dist/cssm/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
- package/dist/cssm/components/SimpleCell/SimpleCell.js +29 -8
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js +1 -1
- package/dist/cssm/components/Skeleton/Skeleton.js.map +1 -1
- package/dist/cssm/components/Slider/SliderThumb/SliderThumb.module.css +2 -1
- package/dist/cssm/components/Tabs/Tabs.js +19 -9
- package/dist/cssm/components/Tabs/Tabs.js.map +1 -1
- package/dist/cssm/components/Tabs/TabsController.js.map +1 -1
- package/dist/cssm/components/Tabs/TabsControllerContext.js +4 -0
- package/dist/cssm/components/Tabs/TabsControllerContext.js.map +1 -0
- package/dist/cssm/components/Tabs/TabsModeContext.js +1 -2
- package/dist/cssm/components/Tabs/TabsModeContext.js.map +1 -1
- package/dist/cssm/components/TabsItem/TabsItem.js +3 -1
- package/dist/cssm/components/TabsItem/TabsItem.js.map +1 -1
- package/dist/cssm/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/cssm/components/Tooltip/useTooltip.js +2 -1
- package/dist/cssm/components/Tooltip/useTooltip.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +4 -1
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js +4 -1
- package/dist/cssm/components/Typography/Footnote/Footnote.js.map +1 -1
- package/dist/cssm/components/Typography/Typography.js +7 -1
- package/dist/cssm/components/Typography/Typography.js.map +1 -1
- package/dist/cssm/components/View/View.js +2 -1
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/View.module.css +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +2 -1
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
- package/dist/cssm/hooks/useCalendar.js +6 -4
- package/dist/cssm/hooks/useCalendar.js.map +1 -1
- package/dist/cssm/hooks/useFloatingElement.js +3 -2
- package/dist/cssm/hooks/useFloatingElement.js.map +1 -1
- package/dist/cssm/hooks/useTodayDate.js +3 -2
- package/dist/cssm/hooks/useTodayDate.js.map +1 -1
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/accessibility.js +8 -0
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/calendar.js +9 -7
- package/dist/cssm/lib/calendar.js.map +1 -1
- package/dist/cssm/lib/date.js +66 -3
- package/dist/cssm/lib/date.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
- package/dist/cssm/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/cssm/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js +2 -2
- package/dist/cssm/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/cssm/lib/utils.js +1 -0
- package/dist/cssm/lib/utils.js.map +1 -1
- package/dist/cssm/styles/dynamicTokens.css +14 -2
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/hooks/useCalendar.d.ts.map +1 -1
- package/dist/hooks/useCalendar.js +6 -4
- package/dist/hooks/useCalendar.js.map +1 -1
- package/dist/hooks/useFloatingElement.d.ts +1 -1
- package/dist/hooks/useFloatingElement.d.ts.map +1 -1
- package/dist/hooks/useFloatingElement.js +3 -2
- package/dist/hooks/useFloatingElement.js.map +1 -1
- package/dist/hooks/useTodayDate.d.ts.map +1 -1
- package/dist/hooks/useTodayDate.js +3 -2
- package/dist/hooks/useTodayDate.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/accessibility.d.ts +1 -1
- package/dist/lib/accessibility.d.ts.map +1 -1
- package/dist/lib/accessibility.js +8 -0
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/calendar.d.ts.map +1 -1
- package/dist/lib/calendar.js +9 -7
- package/dist/lib/calendar.js.map +1 -1
- package/dist/lib/date.d.ts +31 -1
- package/dist/lib/date.d.ts.map +1 -1
- package/dist/lib/date.js +67 -3
- package/dist/lib/date.js.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts +6 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js +18 -8
- package/dist/lib/floating/useFloatingMiddlewaresBootstrap/index.js.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts +2 -0
- package/dist/lib/floating/useFloatingWithInteractions/types.d.ts.map +1 -1
- package/dist/lib/floating/useFloatingWithInteractions/types.js.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.d.ts.map +1 -1
- package/dist/lib/touch/UIPanGestureRecognizer.js +2 -2
- package/dist/lib/touch/UIPanGestureRecognizer.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +1 -0
- package/dist/lib/utils.js.map +1 -1
- package/dist/vkui.css +1 -1
- package/dist/vkui.css.map +1 -1
- package/package.json +6 -7
- package/src/components/Banner/Banner.module.css +1 -6
- package/src/components/Banner/Banner.module.css.d.ts.map +1 -1
- package/src/components/Calendar/Calendar.tsx +6 -6
- package/src/components/CalendarDays/CalendarDays.tsx +3 -3
- package/src/components/CalendarRange/CalendarRange.tsx +15 -20
- package/src/components/CalendarRange/utils.ts +7 -6
- package/src/components/Cell/Cell.tsx +3 -0
- package/src/components/Checkbox/Checkbox.tsx +6 -0
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css +7 -2
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.module.css.d.ts.map +1 -1
- package/src/components/Checkbox/CheckboxSimple/CheckboxSimple.tsx +12 -3
- package/src/components/ChipsInputBase/Chip/Chip.module.css +8 -1
- package/src/components/ChipsInputBase/Chip/Chip.module.css.d.ts.map +1 -1
- package/src/components/ChipsInputBase/Chip/Chip.tsx +55 -1
- package/src/components/ChipsInputBase/types.ts +2 -45
- package/src/components/ContentBadge/ContentBadge.tsx +18 -12
- package/src/components/ContentCard/ContentCard.tsx +1 -1
- package/src/components/CustomSelect/CustomSelect.tsx +216 -562
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css +12 -0
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.module.css.d.ts.map +1 -1
- package/src/components/CustomSelect/CustomSelectInput/CustomSelectInput.tsx +25 -2
- package/src/components/CustomSelect/helpers.ts +103 -0
- package/src/components/CustomSelect/hooks/useAfterItems.tsx +89 -0
- package/src/components/CustomSelect/hooks/useDropdownOpenedController.ts +61 -0
- package/src/components/CustomSelect/hooks/useFocusedOptionController.ts +86 -0
- package/src/components/CustomSelect/hooks/useInputKeyboardController.ts +96 -0
- package/src/components/CustomSelect/hooks/useInputValueController.ts +58 -0
- package/src/components/CustomSelect/hooks/useScrollListController.ts +46 -0
- package/src/components/CustomSelect/hooks/useSelectedOptionController.ts +132 -0
- package/src/components/CustomSelect/types.ts +38 -0
- package/src/components/CustomSelectDropdown/CustomSelectDropdown.tsx +1 -0
- package/src/components/DateInput/DateInput.tsx +9 -3
- package/src/components/DateRangeInput/DateRangeInput.tsx +9 -6
- package/src/components/ImageBase/ImageBaseBadge/ImageBaseBadge.tsx +1 -1
- package/src/components/MiniInfoCell/MiniInfoCell.tsx +8 -3
- package/src/components/ModalCard/ModalCard.tsx +2 -0
- package/src/components/ModalCard/ModalCardInternal.tsx +8 -2
- package/src/components/ModalCard/types.ts +8 -0
- package/src/components/ModalOutlet/ModalOutlet.module.css +4 -0
- package/src/components/ModalOutlet/ModalOutlet.module.css.d.ts.map +1 -1
- package/src/components/ModalOutlet/ModalOutlet.tsx +8 -1
- package/src/components/ModalOverlay/ModalOverlay.module.css +1 -1
- package/src/components/ModalPage/ModalPage.module.css +1 -0
- package/src/components/ModalPage/ModalPage.module.css.d.ts.map +1 -1
- package/src/components/ModalPage/ModalPage.tsx +2 -0
- package/src/components/ModalPage/ModalPageInternal.tsx +8 -2
- package/src/components/ModalPage/types.ts +8 -0
- package/src/components/ModalRoot/ModalRoot.tsx +19 -6
- package/src/components/ModalRoot/types.ts +7 -0
- package/src/components/ModalRoot/useModalManager.tsx +4 -0
- package/src/components/OnboardingTooltip/OnboardingTooltip.tsx +3 -0
- package/src/components/Popover/Popover.tsx +1 -0
- package/src/components/Popover/usePopover.tsx +2 -0
- package/src/components/Popper/Popper.tsx +3 -0
- package/src/components/RichCell/RichCell.module.css +4 -2
- package/src/components/RichCell/RichCell.module.css.d.ts.map +1 -1
- package/src/components/Select/Select.tsx +5 -5
- package/src/components/SelectionControl/SelectionControl.module.css +6 -3
- package/src/components/SelectionControl/SelectionControl.module.css.d.ts.map +1 -1
- package/src/components/SelectionControl/SelectionControl.tsx +30 -8
- package/src/components/SelectionControl/SelectionControlContext.ts +7 -0
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css +6 -3
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.module.css.d.ts.map +1 -1
- package/src/components/SelectionControl/SelectionControlLabel/SelectionControlLabel.tsx +7 -1
- package/src/components/SimpleCell/SimpleCell.tsx +5 -0
- package/src/components/Skeleton/Skeleton.tsx +1 -1
- package/src/components/Slider/SliderThumb/SliderThumb.module.css +1 -1
- package/src/components/Tabs/Tabs.tsx +16 -12
- package/src/components/Tabs/TabsController.ts +2 -2
- package/src/components/Tabs/TabsControllerContext.ts +7 -0
- package/src/components/Tabs/TabsModeContext.ts +0 -3
- package/src/components/TabsItem/TabsItem.tsx +5 -9
- package/src/components/Tooltip/Tooltip.tsx +1 -0
- package/src/components/Tooltip/useTooltip.tsx +2 -0
- package/src/components/Typography/Caption/Caption.tsx +14 -6
- package/src/components/Typography/Footnote/Footnote.tsx +10 -6
- package/src/components/Typography/Typography.tsx +9 -2
- package/src/components/View/View.module.css +1 -1
- package/src/components/View/View.tsx +2 -1
- package/src/components/View/ViewInfinite.tsx +2 -1
- package/src/components/VisuallyHidden/VisuallyHidden.module.css +0 -2
- package/src/components/VisuallyHidden/VisuallyHidden.module.css.d.ts.map +1 -1
- package/src/hooks/useCalendar.ts +6 -4
- package/src/hooks/useFloatingElement.tsx +2 -0
- package/src/hooks/useTodayDate.ts +3 -2
- package/src/index.ts +5 -3
- package/src/lib/accessibility.ts +4 -0
- package/src/lib/calendar.ts +8 -12
- package/src/lib/date.ts +82 -3
- package/src/lib/floating/useFloatingMiddlewaresBootstrap/index.ts +23 -10
- package/src/lib/floating/useFloatingWithInteractions/types.ts +2 -0
- package/src/lib/touch/UIPanGestureRecognizer.ts +2 -2
- package/src/lib/utils.ts +3 -0
- package/src/styles/dynamicTokens.css +13 -2
package/src/hooks/useCalendar.ts
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { isSameDate } from '@vkontakte/vkjs';
|
|
3
|
+
import { addMonths, startOfDay, subMonths } from 'date-fns';
|
|
3
4
|
import type { CalendarProps } from '../components/Calendar/Calendar';
|
|
4
5
|
import { DEFAULT_MAX_YEAR, DEFAULT_MIN_YEAR, isDayMinMaxRestricted } from '../lib/calendar';
|
|
6
|
+
import { endOfDay } from '../lib/date';
|
|
5
7
|
|
|
6
8
|
export interface UseCalendarDependencies
|
|
7
9
|
extends Pick<
|
|
@@ -65,7 +67,7 @@ export function useCalendar({
|
|
|
65
67
|
);
|
|
66
68
|
|
|
67
69
|
const isDayFocused = React.useCallback(
|
|
68
|
-
(day: Date) => Boolean(focusedDay &&
|
|
70
|
+
(day: Date) => Boolean(focusedDay && isSameDate(day, focusedDay)),
|
|
69
71
|
[focusedDay],
|
|
70
72
|
);
|
|
71
73
|
|
|
@@ -76,10 +78,10 @@ export function useCalendar({
|
|
|
76
78
|
return shouldDisableDate(day);
|
|
77
79
|
}
|
|
78
80
|
if (disableFuture) {
|
|
79
|
-
return
|
|
81
|
+
return startOfDay(day) > now;
|
|
80
82
|
}
|
|
81
83
|
if (disablePast) {
|
|
82
|
-
return
|
|
84
|
+
return endOfDay(day) < now;
|
|
83
85
|
}
|
|
84
86
|
if (minDateTime || maxDateTime) {
|
|
85
87
|
return isDayMinMaxRestricted(day, { min: minDateTime, max: maxDateTime, withTime });
|
|
@@ -69,6 +69,7 @@ export const useFloatingElement = <
|
|
|
69
69
|
customMiddlewares,
|
|
70
70
|
hideWhenReferenceHidden,
|
|
71
71
|
disableFlipMiddleware = false,
|
|
72
|
+
disableShiftMiddleware = false,
|
|
72
73
|
|
|
73
74
|
// useFloatingWithInteractions
|
|
74
75
|
trigger,
|
|
@@ -108,6 +109,7 @@ export const useFloatingElement = <
|
|
|
108
109
|
arrowPadding,
|
|
109
110
|
arrowHeight,
|
|
110
111
|
disableFlipMiddleware,
|
|
112
|
+
disableShiftMiddleware,
|
|
111
113
|
});
|
|
112
114
|
|
|
113
115
|
const {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { isSameDate } from '@vkontakte/vkjs';
|
|
3
|
+
import { differenceInMilliseconds, startOfTomorrow } from 'date-fns';
|
|
3
4
|
import { useDOM } from '../lib/dom';
|
|
4
5
|
|
|
5
6
|
/**
|
|
@@ -38,7 +39,7 @@ export function useTodayDate(listenDayChangesForUpdate = false): Date {
|
|
|
38
39
|
}, timeToDayChange);
|
|
39
40
|
|
|
40
41
|
// Если todayDate не обновился в таймаут - обновить при заходе на вкладку
|
|
41
|
-
if (!
|
|
42
|
+
if (!isSameDate(todayDate, now)) {
|
|
42
43
|
setTodayDate(now);
|
|
43
44
|
}
|
|
44
45
|
}
|
package/src/index.ts
CHANGED
|
@@ -309,9 +309,9 @@ export { DropZone } from './components/DropZone/DropZone';
|
|
|
309
309
|
export type { DropZoneProps } from './components/DropZone/DropZone';
|
|
310
310
|
export { Input } from './components/Input/Input';
|
|
311
311
|
export type { InputProps } from './components/Input/Input';
|
|
312
|
+
export type { ChipProps } from './components/ChipsInputBase/Chip/Chip';
|
|
312
313
|
export { Chip } from './components/ChipsInputBase/Chip/Chip';
|
|
313
314
|
export type {
|
|
314
|
-
ChipProps,
|
|
315
315
|
ChipOption,
|
|
316
316
|
RenderChipProps,
|
|
317
317
|
ChipOptionValue,
|
|
@@ -343,10 +343,12 @@ export type { NativeSelectProps } from './components/NativeSelect/NativeSelect';
|
|
|
343
343
|
export { CustomSelect } from './components/CustomSelect/CustomSelect';
|
|
344
344
|
export type {
|
|
345
345
|
SelectProps,
|
|
346
|
-
CustomSelectOptionInterface,
|
|
347
|
-
CustomSelectRenderOption,
|
|
348
346
|
CustomSelectClearButtonProps,
|
|
349
347
|
} from './components/CustomSelect/CustomSelect';
|
|
348
|
+
export type {
|
|
349
|
+
CustomSelectOptionInterface,
|
|
350
|
+
CustomSelectRenderOption,
|
|
351
|
+
} from './components/CustomSelect/types';
|
|
350
352
|
export { CustomSelectOption } from './components/CustomSelectOption/CustomSelectOption';
|
|
351
353
|
export type { CustomSelectOptionProps } from './components/CustomSelectOption/CustomSelectOption';
|
|
352
354
|
export { SegmentedControl } from './components/SegmentedControl/SegmentedControl';
|
package/src/lib/accessibility.ts
CHANGED
|
@@ -42,6 +42,8 @@ const EVENT_KEY_TO_COMMON_KEY_MAP = new Map([
|
|
|
42
42
|
[' ', Keys.SPACE],
|
|
43
43
|
['Tab', Keys.TAB],
|
|
44
44
|
['Escape', Keys.ESCAPE],
|
|
45
|
+
['Delete', Keys.DELETE],
|
|
46
|
+
['Backspace', Keys.BACKSPACE],
|
|
45
47
|
['Home', Keys.HOME],
|
|
46
48
|
['End', Keys.END],
|
|
47
49
|
['ArrowLeft', Keys.ARROW_LEFT],
|
|
@@ -67,6 +69,8 @@ export function pressedKey<T extends KeyboardEvent | React.KeyboardEvent>(
|
|
|
67
69
|
| 'ArrowDown'
|
|
68
70
|
| 'PageUp'
|
|
69
71
|
| 'PageDown'
|
|
72
|
+
| 'Backspace'
|
|
73
|
+
| 'Delete'
|
|
70
74
|
| null {
|
|
71
75
|
const foundKey = EVENT_KEY_TO_COMMON_KEY_MAP.get(event.key);
|
|
72
76
|
return foundKey ? foundKey : null;
|
package/src/lib/calendar.ts
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
+
import { isSameDate } from '@vkontakte/vkjs';
|
|
1
2
|
import {
|
|
2
3
|
addDays,
|
|
3
4
|
addMonths,
|
|
4
5
|
addWeeks,
|
|
5
6
|
eachDayOfInterval,
|
|
6
|
-
endOfMonth,
|
|
7
7
|
endOfWeek,
|
|
8
|
-
isAfter,
|
|
9
|
-
isBefore,
|
|
10
|
-
isFirstDayOfMonth,
|
|
11
|
-
isLastDayOfMonth,
|
|
12
|
-
isSameDay,
|
|
13
8
|
startOfMonth,
|
|
14
9
|
startOfWeek,
|
|
15
10
|
subDays,
|
|
@@ -18,6 +13,7 @@ import {
|
|
|
18
13
|
} from 'date-fns';
|
|
19
14
|
import { clamp as clampNumber } from '../helpers/math';
|
|
20
15
|
import { Keys, type KeysValues } from './accessibility';
|
|
16
|
+
import { endOfMonth, isLastDayOfMonth } from './date';
|
|
21
17
|
|
|
22
18
|
export const DEFAULT_MAX_YEAR = 9999;
|
|
23
19
|
// 100 - из-за ограничений dayjs https://github.com/iamkun/dayjs/issues/2591
|
|
@@ -138,7 +134,7 @@ export const getWeeks = (viewDate: Date, weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6
|
|
|
138
134
|
let current = start;
|
|
139
135
|
const nestedWeeks: Date[][] = [];
|
|
140
136
|
let lastDay = null;
|
|
141
|
-
while (
|
|
137
|
+
while (current < end) {
|
|
142
138
|
const weekNumber = Math.floor(count / 7);
|
|
143
139
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
144
140
|
const day = current.getDay();
|
|
@@ -164,7 +160,7 @@ export const setTimeEqual = (to: Date, from?: Date | null): Date => {
|
|
|
164
160
|
};
|
|
165
161
|
|
|
166
162
|
export const isFirstDay = (day: Date, dayOfWeek: number): boolean =>
|
|
167
|
-
dayOfWeek === 0 ||
|
|
163
|
+
dayOfWeek === 0 || day.getDate() === 1;
|
|
168
164
|
|
|
169
165
|
export const isLastDay = (day: Date, dayOfWeek: number): boolean =>
|
|
170
166
|
dayOfWeek === 6 || isLastDayOfMonth(day);
|
|
@@ -174,10 +170,10 @@ export const isLastDay = (day: Date, dayOfWeek: number): boolean =>
|
|
|
174
170
|
*/
|
|
175
171
|
export function clamp(day: Date, options: { min?: Date; max?: Date } = {}): Date {
|
|
176
172
|
const { min, max } = options;
|
|
177
|
-
if (min &&
|
|
173
|
+
if (min && day < min) {
|
|
178
174
|
return min;
|
|
179
175
|
}
|
|
180
|
-
if (max &&
|
|
176
|
+
if (max && day > max) {
|
|
181
177
|
return max;
|
|
182
178
|
}
|
|
183
179
|
return day;
|
|
@@ -191,8 +187,8 @@ export function isDayMinMaxRestricted(
|
|
|
191
187
|
options: { min?: Date; max?: Date; withTime?: boolean } = {},
|
|
192
188
|
): boolean {
|
|
193
189
|
const { min, max, withTime = false } = options;
|
|
194
|
-
if (!withTime && ((min &&
|
|
190
|
+
if (!withTime && ((min && isSameDate(day, min)) || (max && isSameDate(day, max)))) {
|
|
195
191
|
return false;
|
|
196
192
|
}
|
|
197
|
-
return Boolean((min &&
|
|
193
|
+
return Boolean((min && day < min) || (max && day > max));
|
|
198
194
|
}
|
package/src/lib/date.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { isSameDate } from '@vkontakte/vkjs';
|
|
1
2
|
import { TZDateMini } from '@vkontakte/vkui-date-fns-tz';
|
|
2
|
-
import { lightFormat } from 'date-fns';
|
|
3
3
|
|
|
4
4
|
export function parse(input: string, format: string, referenceDate: Date = new Date()): Date {
|
|
5
5
|
const match2 = /^\d\d/; // 00 - 99
|
|
@@ -141,10 +141,89 @@ export const convertDateFromTimeZone = (
|
|
|
141
141
|
return date ? TZDateMini.tz(systemTimezone, date) : undefined;
|
|
142
142
|
};
|
|
143
143
|
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
const dateOptions: Intl.DateTimeFormatOptions = {
|
|
145
|
+
day: '2-digit',
|
|
146
|
+
month: '2-digit',
|
|
147
|
+
year: 'numeric',
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
// dd.MM.yyyy
|
|
151
|
+
export const dateFormatter = /*#__PURE__*/ new Intl.DateTimeFormat('ru-RU', dateOptions);
|
|
152
|
+
|
|
153
|
+
class DateTimeFormat extends Intl.DateTimeFormat {
|
|
154
|
+
constructor() {
|
|
155
|
+
super('ru-RU', {
|
|
156
|
+
...dateOptions,
|
|
157
|
+
hour: '2-digit',
|
|
158
|
+
minute: '2-digit',
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
format(date?: Date | number): string {
|
|
163
|
+
return super.format(date).replace(',', '');
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// dd.MM.yyyy HH:mm
|
|
168
|
+
export const dateTimeFormatter = /*#__PURE__*/ new DateTimeFormat();
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Возвращает дату конца месяца
|
|
172
|
+
*/
|
|
173
|
+
export function endOfMonth(date: Date): Date {
|
|
174
|
+
const result = new Date(date);
|
|
175
|
+
const month = result.getMonth();
|
|
176
|
+
result.setFullYear(result.getFullYear(), month + 1, 0);
|
|
177
|
+
result.setHours(23, 59, 59, 999);
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export function endOfDay(date: Date): Date {
|
|
182
|
+
const result = new Date(date);
|
|
183
|
+
result.setHours(23, 59, 59, 999);
|
|
184
|
+
return result;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Проверяет, что переданные даты относятся к одному и тому же месяцу
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```ts
|
|
192
|
+
* import assert from 'node:assert';
|
|
193
|
+
* import { isSameMonth } from './date.ts';
|
|
194
|
+
*
|
|
195
|
+
* const d1 = new Date();
|
|
196
|
+
* const d2 = new Date();
|
|
197
|
+
* assert.ok(isSameMonth(d1, d2));
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export function isSameMonth(d1: Date, d2: Date): boolean {
|
|
201
|
+
return d1.getMonth() === d2.getMonth() && d1.getFullYear() === d2.getFullYear();
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
export function isLastDayOfMonth(date: Date) {
|
|
205
|
+
return +endOfDay(date) === +endOfMonth(date);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export function isWithinInterval(date: Date, interval: [Date, Date]) {
|
|
209
|
+
const [startTime, endTime] = interval.sort((a, b) => +a - +b);
|
|
210
|
+
|
|
211
|
+
return date >= startTime && date <= endTime;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
export function isToday(date: Date) {
|
|
215
|
+
return isSameDate(date, new Date());
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export function isYesterday(date: Date) {
|
|
219
|
+
const yesterday = new Date();
|
|
220
|
+
yesterday.setDate(yesterday.getDate() - 1);
|
|
221
|
+
|
|
222
|
+
return isSameDate(date, yesterday);
|
|
146
223
|
}
|
|
147
224
|
|
|
148
225
|
export function isMatch(input: string, format: string): boolean {
|
|
149
226
|
return !isNaN(+parse(input, format));
|
|
150
227
|
}
|
|
228
|
+
|
|
229
|
+
export const millisecondsInSecond = 1000;
|
|
@@ -27,6 +27,11 @@ export interface UseFloatingMiddlewaresBootstrapOptions {
|
|
|
27
27
|
* Не оказывает влияния при `placement` значениях - `'auto' | 'auto-start' | 'auto-end'`
|
|
28
28
|
*/
|
|
29
29
|
disableFlipMiddleware?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Позволяет отключить смещение по главной оси,
|
|
32
|
+
* которое не даёт всплывающему элементу выходить за границы видимой области.
|
|
33
|
+
*/
|
|
34
|
+
disableShiftMiddleware?: boolean;
|
|
30
35
|
/**
|
|
31
36
|
* Задаёт резервный вариант размещения по перпендикулярной оси.
|
|
32
37
|
*/
|
|
@@ -78,6 +83,7 @@ export const useFloatingMiddlewaresBootstrap = ({
|
|
|
78
83
|
customMiddlewares,
|
|
79
84
|
hideWhenReferenceHidden,
|
|
80
85
|
disableFlipMiddleware = false,
|
|
86
|
+
disableShiftMiddleware = false,
|
|
81
87
|
flipMiddlewareFallbackAxisSideDirection = 'end',
|
|
82
88
|
}: UseFloatingMiddlewaresBootstrapOptions): {
|
|
83
89
|
middlewares: UseFloatingMiddleware[];
|
|
@@ -92,28 +98,34 @@ export const useFloatingMiddlewaresBootstrap = ({
|
|
|
92
98
|
}),
|
|
93
99
|
];
|
|
94
100
|
|
|
95
|
-
const
|
|
101
|
+
const shift = disableShiftMiddleware ? null : shiftMiddleware();
|
|
96
102
|
|
|
97
103
|
// см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#conflict-with-autoplacementjs
|
|
98
104
|
if (isAutoPlacement) {
|
|
99
|
-
middlewares.push(
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
105
|
+
middlewares.push(autoPlacementMiddleware({ alignment: getAutoPlacementAlign(placement) }));
|
|
106
|
+
if (shift) {
|
|
107
|
+
middlewares.push(shift);
|
|
108
|
+
}
|
|
103
109
|
} else if (!disableFlipMiddleware) {
|
|
104
|
-
const
|
|
110
|
+
const flip = flipMiddleware({
|
|
105
111
|
crossAxis: 'alignment',
|
|
106
112
|
fallbackAxisSideDirection: flipMiddlewareFallbackAxisSideDirection,
|
|
107
113
|
});
|
|
108
114
|
|
|
109
115
|
// см. https://github.com/floating-ui/floating-ui/blob/%40floating-ui/core%401.7.1/website/pages/docs/flip.mdx#combining-with-shiftjs
|
|
110
116
|
if (placement.includes('-')) {
|
|
111
|
-
middlewares.push(
|
|
117
|
+
middlewares.push(flip);
|
|
118
|
+
if (shift) {
|
|
119
|
+
middlewares.push(shift);
|
|
120
|
+
}
|
|
112
121
|
} else {
|
|
113
|
-
|
|
122
|
+
if (shift) {
|
|
123
|
+
middlewares.push(shift);
|
|
124
|
+
}
|
|
125
|
+
middlewares.push(flip);
|
|
114
126
|
}
|
|
115
|
-
} else {
|
|
116
|
-
middlewares.push(
|
|
127
|
+
} else if (shift) {
|
|
128
|
+
middlewares.push(shift);
|
|
117
129
|
}
|
|
118
130
|
|
|
119
131
|
if (sameWidth) {
|
|
@@ -154,6 +166,7 @@ export const useFloatingMiddlewaresBootstrap = ({
|
|
|
154
166
|
arrowHeight,
|
|
155
167
|
offsetByMainAxis,
|
|
156
168
|
disableFlipMiddleware,
|
|
169
|
+
disableShiftMiddleware,
|
|
157
170
|
flipMiddlewareFallbackAxisSideDirection,
|
|
158
171
|
sameWidth,
|
|
159
172
|
customMiddlewares,
|
|
@@ -49,6 +49,8 @@ export interface UseFloatingWithInteractionsProps {
|
|
|
49
49
|
* > ⚠️`"hover"` на тач-устройствах будет работать как `"click"`, с одним лишь нюансом, что
|
|
50
50
|
* > не будет закрываться при повторном нажатии на целевой элемент. Для закрытия необходимо нажать
|
|
51
51
|
* > на область вне целевого элемента и выпадающего окна.
|
|
52
|
+
*
|
|
53
|
+
* **Избегайте использования `trigger="hover"` как единственного механизма активации, так как пользователи клавиатуры или скринридеров не смогут использовать компонент**
|
|
52
54
|
*/
|
|
53
55
|
trigger?: TriggerType;
|
|
54
56
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { millisecondsInSecond } from '../date';
|
|
1
2
|
import { getFirstTouchEventData } from '../dom';
|
|
2
3
|
|
|
3
4
|
export type Direction = { axis: 'x' | 'y'; direction: -1 | 1 | null };
|
|
@@ -5,7 +6,6 @@ export type Direction = { axis: 'x' | 'y'; direction: -1 | 1 | null };
|
|
|
5
6
|
export type Coords = { x: number; y: number };
|
|
6
7
|
|
|
7
8
|
const DEFAULT_INITIAL_TIME = 0;
|
|
8
|
-
const MILLISECONDS = 1000;
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* JS имплементация класса из UIKIt iOS.
|
|
@@ -50,7 +50,7 @@ export class UIPanGestureRecognizer {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
velocity(): Coords {
|
|
53
|
-
const deltaTime = (Date.now() - this.initialTime) /
|
|
53
|
+
const deltaTime = (Date.now() - this.initialTime) / millisecondsInSecond;
|
|
54
54
|
|
|
55
55
|
if (deltaTime <= 0) {
|
|
56
56
|
return { x: 0, y: 0 };
|
package/src/lib/utils.ts
CHANGED
|
@@ -35,6 +35,9 @@ export function multiRef<T>(...refs: Array<React.Ref<T> | undefined>): React.Ref
|
|
|
35
35
|
export const stopPropagation = <T extends React.SyntheticEvent>(event: T): void =>
|
|
36
36
|
event.stopPropagation();
|
|
37
37
|
|
|
38
|
+
export const preventDefault = <T extends React.SyntheticEvent>(event: T): void =>
|
|
39
|
+
event.preventDefault();
|
|
40
|
+
|
|
38
41
|
export function addClassNameToElement(element: HTMLElement, className: string): void {
|
|
39
42
|
const elementClassName = element.getAttribute('class') || '';
|
|
40
43
|
const updatedClassName = `${elementClassName}${elementClassName ? ' ' : ''}${className}`;
|
|
@@ -1,15 +1,26 @@
|
|
|
1
1
|
/* stylelint-disable selector-pseudo-class-disallowed-list */
|
|
2
2
|
|
|
3
|
+
/*
|
|
4
|
+
В Windows можно менять общий масштаб интерфейса от 100 до 500%. Готовые пресеты 125%, 150% и 175%.
|
|
5
|
+
В случаях, когда `--vkui--size_border--regular` используется не для свойства `border`, а для `height`,
|
|
6
|
+
одна из линий становится размером больше чем остальные.
|
|
7
|
+
|
|
8
|
+
Поэтому используем пограничные значения DPI, чтобы смена на субпиксельные значения срабатывала раньше:
|
|
9
|
+
- 1.01dppx вместо 2dppx для 101% и до 200%;
|
|
10
|
+
- 2.01dppx вместо 3dppx для 201% и больше;
|
|
11
|
+
|
|
12
|
+
@see https://github.com/VKCOM/VKUI/issues/8864
|
|
13
|
+
*/
|
|
3
14
|
:root {
|
|
4
15
|
--vkui--size_border--regular: var(--vkui--size_border1x--regular);
|
|
5
16
|
}
|
|
6
17
|
|
|
7
|
-
@media (min-resolution:
|
|
18
|
+
@media (min-resolution: 1.01dppx) {
|
|
8
19
|
:root {
|
|
9
20
|
--vkui--size_border--regular: var(--vkui--size_border2x--regular);
|
|
10
21
|
}
|
|
11
22
|
}
|
|
12
|
-
@media (min-resolution:
|
|
23
|
+
@media (min-resolution: 2.01dppx) {
|
|
13
24
|
:root {
|
|
14
25
|
--vkui--size_border--regular: var(--vkui--size_border3x--regular);
|
|
15
26
|
}
|