@vkontakte/vkui 4.19.0 → 4.22.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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +493 -125
- package/.cache/ts/src/components/ActionSheet/types.d.ts +2 -2
- package/.cache/ts/src/components/Alert/Alert.d.ts +1 -0
- package/.cache/ts/src/components/AppRoot/AppRootContext.d.ts +1 -0
- package/.cache/ts/src/components/Avatar/Avatar.d.ts +2 -0
- package/.cache/ts/src/components/Cell/Cell.d.ts +11 -0
- package/.cache/ts/src/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/.cache/ts/src/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/.cache/ts/src/components/Cell/useDraggable.d.ts +13 -0
- package/.cache/ts/src/components/CustomSelect/CustomSelect.d.ts +0 -1
- package/.cache/ts/src/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/.cache/ts/src/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/.cache/ts/src/components/FormField/FormField.d.ts +2 -3
- package/.cache/ts/src/components/FormItem/FormItem.d.ts +2 -3
- package/.cache/ts/src/components/FormLayout/FormLayout.d.ts +2 -4
- package/.cache/ts/src/components/GridAvatar/GridAvatar.d.ts +9 -0
- package/.cache/ts/src/components/HorizontalCell/HorizontalCell.d.ts +2 -3
- package/.cache/ts/src/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
- package/.cache/ts/src/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
- package/.cache/ts/src/components/Link/Link.d.ts +1 -2
- package/.cache/ts/src/components/ModalRoot/types.d.ts +0 -1
- package/.cache/ts/src/components/ModalRoot/useModalManager.d.ts +37 -0
- package/.cache/ts/src/components/PullToRefresh/PullToRefresh.d.ts +0 -1
- package/.cache/ts/src/components/Removable/Removable.d.ts +2 -1
- package/.cache/ts/src/components/SimpleCell/SimpleCell.d.ts +2 -2
- package/.cache/ts/src/components/SplitCol/SplitCol.d.ts +3 -3
- package/.cache/ts/src/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
- package/.cache/ts/src/components/Switch/Switch.d.ts +2 -3
- package/.cache/ts/src/components/Tappable/Tappable.d.ts +2 -3
- package/.cache/ts/src/components/Touch/Touch.d.ts +16 -17
- package/.cache/ts/src/components/Typography/Caption/Caption.d.ts +2 -2
- package/.cache/ts/src/components/Typography/Headline/Headline.d.ts +2 -2
- package/.cache/ts/src/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/.cache/ts/src/components/Typography/Text/Text.d.ts +2 -3
- package/.cache/ts/src/components/Typography/Title/Title.d.ts +2 -2
- package/.cache/ts/src/components/View/utils.d.ts +2 -0
- package/.cache/ts/src/index.d.ts +4 -0
- package/.cache/ts/src/lib/accessibility.d.ts +4 -2
- package/.cache/ts/src/lib/is.d.ts +1 -0
- package/.cache/ts/src/lib/supportEvents.d.ts +3 -1
- package/.cache/ts/src/testing/utils.d.ts +2 -0
- package/.cache/ts/src/types.d.ts +3 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js +13 -12
- package/dist/cjs/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js +3 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js +10 -5
- package/dist/cjs/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cjs/components/ActionSheet/types.d.ts +2 -2
- package/dist/cjs/components/Alert/Alert.d.ts +1 -0
- package/dist/cjs/components/Alert/Alert.js +12 -3
- package/dist/cjs/components/Alert/Alert.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRoot.js +2 -1
- package/dist/cjs/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cjs/components/AppRoot/AppRootContext.d.ts +1 -0
- package/dist/cjs/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.d.ts +2 -0
- package/dist/cjs/components/Avatar/Avatar.js +7 -3
- package/dist/cjs/components/Avatar/Avatar.js.map +1 -1
- package/dist/cjs/components/Banner/Banner.js.map +1 -1
- package/dist/cjs/components/Button/Button.js.map +1 -1
- package/dist/cjs/components/Cell/Cell.d.ts +11 -0
- package/dist/cjs/components/Cell/Cell.js +109 -182
- package/dist/cjs/components/Cell/Cell.js.map +1 -1
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js +50 -0
- package/dist/cjs/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
- package/dist/cjs/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js +53 -0
- package/dist/cjs/components/Cell/CellDragger/CellDragger.js.map +1 -0
- package/dist/cjs/components/Cell/useDraggable.d.ts +13 -0
- package/dist/cjs/components/Cell/useDraggable.js +140 -0
- package/dist/cjs/components/Cell/useDraggable.js.map +1 -0
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cjs/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cjs/components/Counter/Counter.js.map +1 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.d.ts +0 -1
- package/dist/cjs/components/CustomSelect/CustomSelect.js +6 -4
- package/dist/cjs/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.js +6 -4
- package/dist/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js +37 -0
- package/dist/cjs/components/DropdownIcon/DropdownIcon.js.map +1 -0
- package/dist/cjs/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/dist/cjs/components/FocusTrap/FocusTrap.js +165 -0
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/cjs/components/FormField/FormField.d.ts +2 -3
- package/dist/cjs/components/FormField/FormField.js.map +1 -1
- package/dist/cjs/components/FormItem/FormItem.d.ts +2 -3
- package/dist/cjs/components/FormItem/FormItem.js.map +1 -1
- package/dist/cjs/components/FormLayout/FormLayout.d.ts +2 -4
- package/dist/cjs/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
- package/dist/cjs/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cjs/components/GridAvatar/GridAvatar.d.ts +9 -0
- package/dist/cjs/components/GridAvatar/GridAvatar.js +61 -0
- package/dist/cjs/components/GridAvatar/GridAvatar.js.map +1 -0
- package/dist/cjs/components/Header/Header.js.map +1 -1
- package/dist/cjs/components/HorizontalCell/HorizontalCell.d.ts +2 -3
- package/dist/cjs/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js +10 -13
- package/dist/cjs/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cjs/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
- package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js +64 -0
- package/dist/cjs/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
- package/dist/cjs/components/Link/Link.d.ts +1 -2
- package/dist/cjs/components/Link/Link.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRoot.js +184 -368
- package/dist/cjs/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootContext.js +0 -3
- package/dist/cjs/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js +74 -244
- package/dist/cjs/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cjs/components/ModalRoot/types.d.ts +0 -1
- package/dist/cjs/components/ModalRoot/types.js.map +1 -1
- package/dist/cjs/components/ModalRoot/useModalManager.d.ts +37 -0
- package/dist/cjs/components/ModalRoot/useModalManager.js +213 -0
- package/dist/cjs/components/ModalRoot/useModalManager.js.map +1 -0
- package/dist/cjs/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cjs/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.d.ts +0 -1
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js +34 -25
- package/dist/cjs/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cjs/components/Removable/Removable.d.ts +2 -1
- package/dist/cjs/components/Removable/Removable.js +75 -66
- package/dist/cjs/components/Removable/Removable.js.map +1 -1
- package/dist/cjs/components/Root/Root.js +1 -0
- package/dist/cjs/components/Root/Root.js.map +1 -1
- package/dist/cjs/components/Search/Search.js +1 -1
- package/dist/cjs/components/Search/Search.js.map +1 -1
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cjs/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cjs/components/SimpleCell/SimpleCell.d.ts +2 -2
- package/dist/cjs/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cjs/components/SplitCol/SplitCol.d.ts +3 -3
- package/dist/cjs/components/SplitCol/SplitCol.js +2 -4
- package/dist/cjs/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js +38 -11
- package/dist/cjs/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cjs/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cjs/components/Switch/Switch.d.ts +2 -3
- package/dist/cjs/components/Switch/Switch.js +18 -8
- package/dist/cjs/components/Switch/Switch.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
- package/dist/cjs/components/Tappable/Tappable.js.map +1 -1
- package/dist/cjs/components/Textarea/Textarea.js +9 -7
- package/dist/cjs/components/Textarea/Textarea.js.map +1 -1
- package/dist/cjs/components/Touch/Touch.d.ts +16 -17
- package/dist/cjs/components/Touch/Touch.js +34 -14
- package/dist/cjs/components/Touch/Touch.js.map +1 -1
- package/dist/cjs/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/cjs/components/Typography/Caption/Caption.js +4 -2
- package/dist/cjs/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cjs/components/Typography/Headline/Headline.d.ts +2 -2
- package/dist/cjs/components/Typography/Headline/Headline.js +2 -1
- package/dist/cjs/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/cjs/components/Typography/Subhead/Subhead.js +2 -1
- package/dist/cjs/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cjs/components/Typography/Text/Text.d.ts +2 -3
- package/dist/cjs/components/Typography/Text/Text.js +2 -1
- package/dist/cjs/components/Typography/Text/Text.js.map +1 -1
- package/dist/cjs/components/Typography/Title/Title.d.ts +2 -2
- package/dist/cjs/components/Typography/Title/Title.js +9 -4
- package/dist/cjs/components/Typography/Title/Title.js.map +1 -1
- package/dist/cjs/components/View/View.js +68 -75
- package/dist/cjs/components/View/View.js.map +1 -1
- package/dist/cjs/components/View/ViewInfinite.js +78 -85
- package/dist/cjs/components/View/ViewInfinite.js.map +1 -1
- package/dist/cjs/components/View/utils.d.ts +2 -0
- package/dist/cjs/components/View/utils.js +13 -0
- package/dist/cjs/components/View/utils.js.map +1 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +16 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/accessibility.d.ts +4 -2
- package/dist/cjs/lib/accessibility.js +8 -1
- package/dist/cjs/lib/accessibility.js.map +1 -1
- package/dist/cjs/lib/is.d.ts +1 -0
- package/dist/cjs/lib/is.js +13 -0
- package/dist/cjs/lib/is.js.map +1 -0
- package/dist/cjs/lib/prefixClass.js +7 -6
- package/dist/cjs/lib/prefixClass.js.map +1 -1
- package/dist/cjs/lib/supportEvents.d.ts +3 -1
- package/dist/cjs/lib/supportEvents.js +1 -4
- package/dist/cjs/lib/supportEvents.js.map +1 -1
- package/dist/cjs/types.d.ts +3 -0
- package/dist/components/ActionSheet/ActionSheet.js +12 -12
- package/dist/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.js +2 -1
- package/dist/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js +9 -5
- package/dist/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/components/ActionSheet/types.d.ts +2 -2
- package/dist/components/Alert/Alert.d.ts +1 -0
- package/dist/components/Alert/Alert.js +11 -3
- package/dist/components/Alert/Alert.js.map +1 -1
- package/dist/components/AppRoot/AppRoot.js +2 -1
- package/dist/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/components/AppRoot/AppRootContext.d.ts +1 -0
- package/dist/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts +2 -0
- package/dist/components/Avatar/Avatar.js +4 -2
- package/dist/components/Avatar/Avatar.js.map +1 -1
- package/dist/components/Banner/Banner.js.map +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Cell/Cell.d.ts +11 -0
- package/dist/components/Cell/Cell.js +103 -177
- package/dist/components/Cell/Cell.js.map +1 -1
- package/dist/components/Cell/CellCheckbox/CellCheckbox.d.ts +5 -0
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js +31 -0
- package/dist/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
- package/dist/components/Cell/CellDragger/CellDragger.d.ts +6 -0
- package/dist/components/Cell/CellDragger/CellDragger.js +30 -0
- package/dist/components/Cell/CellDragger/CellDragger.js.map +1 -0
- package/dist/components/Cell/useDraggable.d.ts +13 -0
- package/dist/components/Cell/useDraggable.js +125 -0
- package/dist/components/Cell/useDraggable.js.map +1 -0
- package/dist/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/components/Counter/Counter.js.map +1 -1
- package/dist/components/CustomSelect/CustomSelect.d.ts +0 -1
- package/dist/components/CustomSelect/CustomSelect.js +6 -6
- package/dist/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.js +6 -4
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DropdownIcon/DropdownIcon.d.ts +3 -0
- package/dist/components/DropdownIcon/DropdownIcon.js +19 -0
- package/dist/components/DropdownIcon/DropdownIcon.js.map +1 -0
- package/dist/components/FocusTrap/FocusTrap.d.ts +8 -0
- package/dist/components/FocusTrap/FocusTrap.js +138 -0
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/components/FormField/FormField.d.ts +2 -3
- package/dist/components/FormField/FormField.js.map +1 -1
- package/dist/components/FormItem/FormItem.d.ts +2 -3
- package/dist/components/FormItem/FormItem.js.map +1 -1
- package/dist/components/FormLayout/FormLayout.d.ts +2 -4
- package/dist/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
- package/dist/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/components/GridAvatar/GridAvatar.d.ts +9 -0
- package/dist/components/GridAvatar/GridAvatar.js +41 -0
- package/dist/components/GridAvatar/GridAvatar.js.map +1 -0
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/HorizontalCell/HorizontalCell.d.ts +2 -3
- package/dist/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/components/HorizontalScroll/HorizontalScroll.d.ts +3 -2
- package/dist/components/HorizontalScroll/HorizontalScroll.js +10 -12
- package/dist/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/components/InitialsAvatar/InitialsAvatar.d.ts +33 -0
- package/dist/components/InitialsAvatar/InitialsAvatar.js +46 -0
- package/dist/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
- package/dist/components/Link/Link.d.ts +1 -2
- package/dist/components/Link/Link.js.map +1 -1
- package/dist/components/ModalRoot/ModalRoot.js +181 -371
- package/dist/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootContext.js +0 -3
- package/dist/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/components/ModalRoot/ModalRootDesktop.js +72 -248
- package/dist/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/components/ModalRoot/types.d.ts +0 -1
- package/dist/components/ModalRoot/types.js.map +1 -1
- package/dist/components/ModalRoot/useModalManager.d.ts +37 -0
- package/dist/components/ModalRoot/useModalManager.js +189 -0
- package/dist/components/ModalRoot/useModalManager.js.map +1 -0
- package/dist/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/components/PullToRefresh/PullToRefresh.d.ts +0 -1
- package/dist/components/PullToRefresh/PullToRefresh.js +35 -25
- package/dist/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/components/Removable/Removable.d.ts +2 -1
- package/dist/components/Removable/Removable.js +73 -64
- package/dist/components/Removable/Removable.js.map +1 -1
- package/dist/components/Root/Root.js +1 -0
- package/dist/components/Root/Root.js.map +1 -1
- package/dist/components/Search/Search.js +1 -1
- package/dist/components/Search/Search.js.map +1 -1
- package/dist/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/components/SimpleCell/SimpleCell.d.ts +2 -2
- package/dist/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/components/SplitCol/SplitCol.d.ts +3 -3
- package/dist/components/SplitCol/SplitCol.js +2 -4
- package/dist/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.d.ts +2 -1
- package/dist/components/SubnavigationBar/SubnavigationBar.js +38 -11
- package/dist/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +2 -3
- package/dist/components/Switch/Switch.js +15 -8
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/Tappable/Tappable.d.ts +2 -3
- package/dist/components/Tappable/Tappable.js.map +1 -1
- package/dist/components/Textarea/Textarea.js +9 -6
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Touch/Touch.d.ts +16 -17
- package/dist/components/Touch/Touch.js +34 -14
- package/dist/components/Touch/Touch.js.map +1 -1
- package/dist/components/Typography/Caption/Caption.d.ts +2 -2
- package/dist/components/Typography/Caption/Caption.js +4 -2
- package/dist/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/components/Typography/Headline/Headline.d.ts +2 -2
- package/dist/components/Typography/Headline/Headline.js +2 -1
- package/dist/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/components/Typography/Subhead/Subhead.d.ts +2 -2
- package/dist/components/Typography/Subhead/Subhead.js +2 -1
- package/dist/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/components/Typography/Text/Text.d.ts +2 -3
- package/dist/components/Typography/Text/Text.js +2 -1
- package/dist/components/Typography/Text/Text.js.map +1 -1
- package/dist/components/Typography/Title/Title.d.ts +2 -2
- package/dist/components/Typography/Title/Title.js +9 -4
- package/dist/components/Typography/Title/Title.js.map +1 -1
- package/dist/components/View/View.js +67 -75
- package/dist/components/View/View.js.map +1 -1
- package/dist/components/View/ViewInfinite.js +79 -87
- package/dist/components/View/ViewInfinite.js.map +1 -1
- package/dist/components/View/utils.d.ts +2 -0
- package/dist/components/View/utils.js +6 -0
- package/dist/components/View/utils.js.map +1 -0
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheet.js +12 -12
- package/dist/cssm/components/ActionSheet/ActionSheet.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js +2 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdown.js.map +1 -1
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js +9 -5
- package/dist/cssm/components/ActionSheet/ActionSheetDropdownDesktop.js.map +1 -1
- package/dist/cssm/components/Alert/Alert.js +11 -3
- package/dist/cssm/components/Alert/Alert.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRoot.js +2 -1
- package/dist/cssm/components/AppRoot/AppRoot.js.map +1 -1
- package/dist/cssm/components/AppRoot/AppRootContext.js.map +1 -1
- package/dist/cssm/components/Avatar/Avatar.js +4 -2
- package/dist/cssm/components/Avatar/Avatar.js.map +1 -1
- package/dist/cssm/components/Banner/Banner.js.map +1 -1
- package/dist/cssm/components/Button/Button.css +1 -1
- package/dist/cssm/components/Button/Button.js.map +1 -1
- package/dist/cssm/components/Cell/Cell.css +1 -1
- package/dist/cssm/components/Cell/Cell.js +103 -177
- package/dist/cssm/components/Cell/Cell.js.map +1 -1
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.css +1 -0
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js +32 -0
- package/dist/cssm/components/Cell/CellCheckbox/CellCheckbox.js.map +1 -0
- package/dist/cssm/components/Cell/CellDragger/CellDragger.css +1 -0
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js +31 -0
- package/dist/cssm/components/Cell/CellDragger/CellDragger.js.map +1 -0
- package/dist/cssm/components/Cell/useDraggable.js +125 -0
- package/dist/cssm/components/Cell/useDraggable.js.map +1 -0
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js +2 -2
- package/dist/cssm/components/ChipsSelect/ChipsSelect.js.map +1 -1
- package/dist/cssm/components/Counter/Counter.js.map +1 -1
- package/dist/cssm/components/CustomSelect/CustomSelect.js +6 -6
- package/dist/cssm/components/CustomSelect/CustomSelect.js.map +1 -1
- package/dist/cssm/components/DatePicker/DatePicker.js +6 -4
- package/dist/cssm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/cssm/components/DropdownIcon/DropdownIcon.css +1 -0
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js +20 -0
- package/dist/cssm/components/DropdownIcon/DropdownIcon.js.map +1 -0
- package/dist/cssm/components/FocusTrap/FocusTrap.js +138 -0
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/cssm/components/FocusVisible/FocusVisible.css +1 -1
- package/dist/cssm/components/FormField/FormField.css +1 -1
- package/dist/cssm/components/FormField/FormField.js.map +1 -1
- package/dist/cssm/components/FormItem/FormItem.css +1 -1
- package/dist/cssm/components/FormItem/FormItem.js.map +1 -1
- package/dist/cssm/components/FormLayout/FormLayout.js.map +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.css +1 -1
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js +1 -0
- package/dist/cssm/components/FormLayoutGroup/FormLayoutGroup.js.map +1 -1
- package/dist/cssm/components/Gallery/Gallery.css +1 -1
- package/dist/cssm/components/GridAvatar/GridAvatar.css +1 -0
- package/dist/cssm/components/GridAvatar/GridAvatar.js +42 -0
- package/dist/cssm/components/GridAvatar/GridAvatar.js.map +1 -0
- package/dist/cssm/components/Header/Header.js.map +1 -1
- package/dist/cssm/components/HorizontalCell/HorizontalCell.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js +10 -12
- package/dist/cssm/components/HorizontalScroll/HorizontalScroll.js.map +1 -1
- package/dist/cssm/components/HorizontalScroll/HorizontalScrollArrow.css +1 -1
- package/dist/cssm/components/IconButton/IconButton.css +1 -1
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.css +1 -0
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js +52 -0
- package/dist/cssm/components/InitialsAvatar/InitialsAvatar.js.map +1 -0
- package/dist/cssm/components/Link/Link.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRoot.js +181 -371
- package/dist/cssm/components/ModalRoot/ModalRoot.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootContext.js +0 -3
- package/dist/cssm/components/ModalRoot/ModalRootContext.js.map +1 -1
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js +72 -248
- package/dist/cssm/components/ModalRoot/ModalRootDesktop.js.map +1 -1
- package/dist/cssm/components/ModalRoot/types.js.map +1 -1
- package/dist/cssm/components/ModalRoot/useModalManager.js +189 -0
- package/dist/cssm/components/ModalRoot/useModalManager.js.map +1 -0
- package/dist/cssm/components/NativeSelect/NativeSelect.js +2 -2
- package/dist/cssm/components/NativeSelect/NativeSelect.js.map +1 -1
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js +35 -25
- package/dist/cssm/components/PullToRefresh/PullToRefresh.js.map +1 -1
- package/dist/cssm/components/Removable/Removable.css +1 -1
- package/dist/cssm/components/Removable/Removable.js +73 -64
- package/dist/cssm/components/Removable/Removable.js.map +1 -1
- package/dist/cssm/components/Root/Root.css +1 -1
- package/dist/cssm/components/Root/Root.js +1 -0
- package/dist/cssm/components/Root/Root.js.map +1 -1
- package/dist/cssm/components/Search/Search.css +1 -1
- package/dist/cssm/components/Search/Search.js +1 -1
- package/dist/cssm/components/Search/Search.js.map +1 -1
- package/dist/cssm/components/Select/Select.css +1 -1
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js +2 -2
- package/dist/cssm/components/SelectMimicry/SelectMimicry.js.map +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.css +1 -1
- package/dist/cssm/components/SimpleCell/SimpleCell.js.map +1 -1
- package/dist/cssm/components/SplitCol/SplitCol.js +2 -4
- package/dist/cssm/components/SplitCol/SplitCol.js.map +1 -1
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js +38 -11
- package/dist/cssm/components/SubnavigationBar/SubnavigationBar.js.map +1 -1
- package/dist/cssm/components/SubnavigationButton/SubnavigationButton.js.map +1 -1
- package/dist/cssm/components/Switch/Switch.css +1 -1
- package/dist/cssm/components/Switch/Switch.js +15 -8
- package/dist/cssm/components/Switch/Switch.js.map +1 -1
- package/dist/cssm/components/Tappable/Tappable.js.map +1 -1
- package/dist/cssm/components/Textarea/Textarea.js +9 -6
- package/dist/cssm/components/Textarea/Textarea.js.map +1 -1
- package/dist/cssm/components/Touch/Touch.js +34 -14
- package/dist/cssm/components/Touch/Touch.js.map +1 -1
- package/dist/cssm/components/Typography/Caption/Caption.js +4 -2
- package/dist/cssm/components/Typography/Caption/Caption.js.map +1 -1
- package/dist/cssm/components/Typography/Headline/Headline.js +2 -1
- package/dist/cssm/components/Typography/Headline/Headline.js.map +1 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js +2 -1
- package/dist/cssm/components/Typography/Subhead/Subhead.js.map +1 -1
- package/dist/cssm/components/Typography/Text/Text.js +2 -1
- package/dist/cssm/components/Typography/Text/Text.js.map +1 -1
- package/dist/cssm/components/Typography/Title/Title.js +9 -4
- package/dist/cssm/components/Typography/Title/Title.js.map +1 -1
- package/dist/cssm/components/View/View.js +67 -75
- package/dist/cssm/components/View/View.js.map +1 -1
- package/dist/cssm/components/View/ViewInfinite.js +79 -87
- package/dist/cssm/components/View/ViewInfinite.js.map +1 -1
- package/dist/cssm/components/View/utils.js +6 -0
- package/dist/cssm/components/View/utils.js.map +1 -0
- package/dist/cssm/index.js +2 -0
- package/dist/cssm/index.js.map +1 -1
- package/dist/cssm/lib/accessibility.js +6 -0
- package/dist/cssm/lib/accessibility.js.map +1 -1
- package/dist/cssm/lib/is.js +6 -0
- package/dist/cssm/lib/is.js.map +1 -0
- package/dist/cssm/lib/prefixClass.js +7 -6
- package/dist/cssm/lib/prefixClass.js.map +1 -1
- package/dist/cssm/lib/supportEvents.js +1 -4
- package/dist/cssm/lib/supportEvents.js.map +1 -1
- package/dist/cssm/styles/components.css +1 -1
- package/dist/cssm/styles/themes.css +1 -1
- package/dist/cssm/styles/vkcom_light.css +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/accessibility.d.ts +4 -2
- package/dist/lib/accessibility.js +6 -0
- package/dist/lib/accessibility.js.map +1 -1
- package/dist/lib/is.d.ts +1 -0
- package/dist/lib/is.js +6 -0
- package/dist/lib/is.js.map +1 -0
- package/dist/lib/prefixClass.js +7 -6
- package/dist/lib/prefixClass.js.map +1 -1
- package/dist/lib/supportEvents.d.ts +3 -1
- package/dist/lib/supportEvents.js +1 -4
- package/dist/lib/supportEvents.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/vkui.css +2 -2
- package/dist/vkui.css.map +1 -1
- package/package.json +8 -4
- package/src/components/ActionSheet/ActionSheet.tsx +9 -7
- package/src/components/ActionSheet/ActionSheetDropdown.tsx +3 -2
- package/src/components/ActionSheet/ActionSheetDropdownDesktop.tsx +9 -5
- package/src/components/ActionSheet/Readme.md +18 -14
- package/src/components/ActionSheet/types.ts +2 -2
- package/src/components/Alert/Alert.tsx +11 -4
- package/src/components/Alert/Readme.md +15 -11
- package/src/components/AppRoot/AppRoot.tsx +1 -0
- package/src/components/AppRoot/AppRootContext.ts +1 -0
- package/src/components/Avatar/Avatar.tsx +5 -2
- package/src/components/Banner/Banner.tsx +4 -5
- package/src/components/Button/Button.css +26 -53
- package/src/components/Button/Button.tsx +2 -3
- package/src/components/Card/Readme.md +6 -6
- package/src/components/Cell/Cell.css +21 -58
- package/src/components/Cell/Cell.tsx +101 -162
- package/src/components/Cell/CellCheckbox/CellCheckbox.css +17 -0
- package/src/components/Cell/CellCheckbox/CellCheckbox.tsx +42 -0
- package/src/components/Cell/CellDragger/CellDragger.css +4 -0
- package/src/components/Cell/CellDragger/CellDragger.tsx +40 -0
- package/src/components/Cell/Readme.md +89 -51
- package/src/components/Cell/useDraggable.tsx +112 -0
- package/src/components/ChipsSelect/ChipsSelect.tsx +2 -2
- package/src/components/Counter/Counter.tsx +2 -2
- package/src/components/CustomSelect/CustomSelect.tsx +6 -5
- package/src/components/DatePicker/DatePicker.tsx +5 -5
- package/src/components/DropdownIcon/DropdownIcon.css +3 -0
- package/src/components/DropdownIcon/DropdownIcon.tsx +20 -0
- package/src/components/Epic/Readme.md +1 -1
- package/src/components/FocusTrap/FocusTrap.tsx +125 -0
- package/src/components/FocusVisible/FocusVisible.css +12 -4
- package/src/components/FormField/FormField.css +0 -1
- package/src/components/FormField/FormField.tsx +2 -2
- package/src/components/FormItem/FormItem.css +13 -14
- package/src/components/FormItem/FormItem.tsx +2 -3
- package/src/components/FormLayout/FormLayout.tsx +2 -4
- package/src/components/FormLayoutGroup/FormLayoutGroup.css +11 -7
- package/src/components/FormLayoutGroup/FormLayoutGroup.tsx +10 -1
- package/src/components/Gallery/Gallery.css +2 -3
- package/src/components/Gallery/Readme.md +89 -109
- package/src/components/GridAvatar/GridAvatar.css +37 -0
- package/src/components/GridAvatar/GridAvatar.tsx +55 -0
- package/src/components/GridAvatar/Readme.md +12 -0
- package/src/components/Group/Readme.md +18 -14
- package/src/components/Header/Header.tsx +4 -4
- package/src/components/HorizontalCell/HorizontalCell.tsx +3 -3
- package/src/components/HorizontalScroll/HorizontalScroll.tsx +14 -18
- package/src/components/HorizontalScroll/HorizontalScrollArrow.css +2 -2
- package/src/components/IconButton/IconButton.css +7 -0
- package/src/components/InitialsAvatar/InitialsAvatar.css +53 -0
- package/src/components/InitialsAvatar/InitialsAvatar.tsx +90 -0
- package/src/components/InitialsAvatar/Readme.md +14 -0
- package/src/components/Link/Link.tsx +1 -1
- package/src/components/MiniInfoCell/Readme.md +66 -62
- package/src/components/ModalDismissButton/Readme.md +13 -10
- package/src/components/ModalRoot/ModalRoot.tsx +170 -344
- package/src/components/ModalRoot/ModalRootContext.tsx +0 -1
- package/src/components/ModalRoot/ModalRootDesktop.tsx +62 -243
- package/src/components/ModalRoot/Readme.md +35 -27
- package/src/components/ModalRoot/types.ts +0 -1
- package/src/components/ModalRoot/useModalManager.tsx +174 -0
- package/src/components/NativeSelect/NativeSelect.tsx +2 -2
- package/src/components/PullToRefresh/PullToRefresh.tsx +30 -25
- package/src/components/Removable/Removable.css +16 -63
- package/src/components/Removable/Removable.tsx +84 -64
- package/src/components/Root/Root.css +5 -0
- package/src/components/Root/Root.tsx +4 -1
- package/src/components/ScreenSpinner/Readme.md +13 -9
- package/src/components/Search/Search.css +1 -1
- package/src/components/Search/Search.tsx +3 -3
- package/src/components/Select/Select.css +1 -1
- package/src/components/SelectMimicry/SelectMimicry.tsx +2 -2
- package/src/components/SimpleCell/SimpleCell.css +10 -18
- package/src/components/SimpleCell/SimpleCell.tsx +3 -5
- package/src/components/SplitCol/SplitCol.tsx +4 -8
- package/src/components/SplitLayout/Readme.md +2 -2
- package/src/components/SubnavigationBar/Readme.md +90 -86
- package/src/components/SubnavigationBar/SubnavigationBar.tsx +32 -14
- package/src/components/SubnavigationButton/SubnavigationButton.tsx +2 -3
- package/src/components/Switch/Readme.md +6 -6
- package/src/components/Switch/Switch.css +46 -15
- package/src/components/Switch/Switch.tsx +16 -8
- package/src/components/Tappable/Tappable.tsx +2 -3
- package/src/components/Textarea/Readme.md +3 -0
- package/src/components/Textarea/Textarea.tsx +10 -6
- package/src/components/Touch/Touch.tsx +51 -31
- package/src/components/Typography/Caption/Caption.tsx +4 -4
- package/src/components/Typography/Headline/Headline.tsx +3 -3
- package/src/components/Typography/Subhead/Subhead.tsx +3 -3
- package/src/components/Typography/Text/Text.tsx +3 -4
- package/src/components/Typography/Title/Title.tsx +9 -5
- package/src/components/View/Readme.md +42 -56
- package/src/components/View/View.tsx +46 -61
- package/src/components/View/ViewInfinite.tsx +52 -67
- package/src/components/View/utils.ts +8 -0
- package/src/index.ts +4 -0
- package/src/lib/accessibility.ts +22 -2
- package/src/lib/is.ts +10 -0
- package/src/lib/prefixClass.ts +9 -6
- package/src/lib/supportEvents.ts +1 -4
- package/src/styles/components.css +4 -0
- package/src/styles/vkcom_light.css +3 -3
- package/src/testing/utils.tsx +41 -0
- package/src/types.ts +4 -0
|
@@ -1,93 +1,56 @@
|
|
|
1
|
-
.Cell {
|
|
2
|
-
position: relative;
|
|
3
|
-
margin: 0;
|
|
4
|
-
padding: 0;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
.FormItem .Cell {
|
|
8
|
-
width: 100%;
|
|
9
|
-
box-sizing: content-box;
|
|
10
|
-
margin: 0 calc(-1 * var(--formitem_padding));
|
|
11
|
-
}
|
|
12
|
-
|
|
13
1
|
.List--dragging .Cell:not(.Cell--dragging) {
|
|
14
2
|
transition: transform .3s ease;
|
|
3
|
+
pointer-events: none;
|
|
15
4
|
}
|
|
16
5
|
|
|
17
|
-
.List--dragging .Cell--dragging,
|
|
18
6
|
.Cell--dragging {
|
|
19
7
|
background-color: var(--background_content);
|
|
20
8
|
box-shadow: 0 0 5px rgba(0, 0, 0, .25);
|
|
21
9
|
z-index: 3;
|
|
22
10
|
}
|
|
23
11
|
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.Cell .Cell__dragger .Icon {
|
|
29
|
-
color: var(--icon_secondary);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.Cell__checkbox {
|
|
33
|
-
display: none;
|
|
12
|
+
.Cell--selectable.Cell--disabled {
|
|
13
|
+
opacity: .6;
|
|
34
14
|
}
|
|
35
15
|
|
|
36
|
-
.
|
|
16
|
+
.Cell__checkbox,
|
|
17
|
+
.Cell__dragger {
|
|
37
18
|
position: relative;
|
|
38
19
|
flex-shrink: 0;
|
|
39
|
-
width: 24px;
|
|
40
|
-
height: 24px;
|
|
41
20
|
margin-right: 16px;
|
|
42
|
-
padding: 0;
|
|
43
|
-
color: var(--icon_tertiary);
|
|
44
21
|
}
|
|
45
22
|
|
|
46
|
-
.
|
|
47
|
-
|
|
48
|
-
top: 0;
|
|
49
|
-
left: 0;
|
|
50
|
-
visibility: hidden;
|
|
51
|
-
color: var(--accent);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.Cell--selectable.Cell--disabled {
|
|
55
|
-
opacity: .6;
|
|
23
|
+
.Cell__dragger {
|
|
24
|
+
z-index: 2;
|
|
56
25
|
}
|
|
57
26
|
|
|
58
|
-
.
|
|
59
|
-
|
|
27
|
+
.Cell__content {
|
|
28
|
+
max-width: 100%;
|
|
29
|
+
min-width: 0;
|
|
60
30
|
}
|
|
61
31
|
|
|
62
|
-
.Cell--removable .
|
|
63
|
-
max-width: 100%;
|
|
32
|
+
.Cell--removable .Cell__content {
|
|
64
33
|
flex-grow: 1;
|
|
65
|
-
|
|
66
|
-
padding-
|
|
67
|
-
flex-shrink: initial;
|
|
68
|
-
overflow: hidden;
|
|
34
|
+
padding-right: 0;
|
|
35
|
+
padding-left: 0;
|
|
69
36
|
}
|
|
70
37
|
|
|
71
38
|
/**
|
|
72
39
|
* iOS
|
|
73
40
|
*/
|
|
74
|
-
.Cell--ios .
|
|
75
|
-
|
|
41
|
+
.Cell--ios .Cell__dragger {
|
|
42
|
+
margin-right: 0;
|
|
43
|
+
margin-left: 12px;
|
|
76
44
|
}
|
|
77
45
|
|
|
78
|
-
.Cell--ios
|
|
46
|
+
.Cell--ios .Cell__checkbox {
|
|
79
47
|
margin-right: 12px;
|
|
80
48
|
}
|
|
81
49
|
|
|
82
|
-
.Cell--ios.Cell--removable .SimpleCell {
|
|
83
|
-
padding-left: 0;
|
|
84
|
-
padding-right: 0;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
50
|
/**
|
|
88
|
-
*
|
|
51
|
+
* CMP:
|
|
52
|
+
* FormItem
|
|
89
53
|
*/
|
|
90
|
-
.Cell
|
|
91
|
-
|
|
92
|
-
padding-right: 16px;
|
|
54
|
+
.FormItem > .Cell {
|
|
55
|
+
margin: 0 calc(-1 * var(--formitem_padding));
|
|
93
56
|
}
|
|
@@ -1,26 +1,35 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { classNames } from '../../lib/classNames';
|
|
3
|
+
import { warnOnce } from '../../lib/warnOnce';
|
|
3
4
|
import { getClassName } from '../../helpers/getClassName';
|
|
4
|
-
import { Touch, TouchEvent } from '../Touch/Touch';
|
|
5
5
|
import { ANDROID, IOS, VKCOM } from '../../lib/platform';
|
|
6
|
-
import { Icon24Reorder, Icon24ReorderIos, Icon24CheckCircleOn, Icon24CheckCircleOff, Icon24CheckBoxOff, Icon24CheckBoxOn } from '@vkontakte/icons';
|
|
7
6
|
import SimpleCell, { SimpleCellProps } from '../SimpleCell/SimpleCell';
|
|
8
7
|
import { HasPlatform } from '../../types';
|
|
9
8
|
import { Removable, RemovableProps } from '../Removable/Removable';
|
|
10
9
|
import { usePlatform } from '../../hooks/usePlatform';
|
|
11
|
-
import {
|
|
10
|
+
import { useDraggable } from './useDraggable';
|
|
11
|
+
import { ListContext } from '../List/ListContext';
|
|
12
|
+
import { CellDragger } from './CellDragger/CellDragger';
|
|
13
|
+
import { CellCheckbox, CellCheckboxProps } from './CellCheckbox/CellCheckbox';
|
|
12
14
|
import './Cell.css';
|
|
13
15
|
|
|
14
16
|
export interface CellProps extends SimpleCellProps, HasPlatform, RemovableProps {
|
|
17
|
+
mode?: 'removable' | 'selectable';
|
|
15
18
|
/**
|
|
16
19
|
* В режиме перетаскивания ячейка перестает быть кликабельной, то есть при клике переданный onClick вызываться не будет
|
|
17
20
|
*/
|
|
18
21
|
draggable?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated Будет удалено в 5.0.0. Используйте mode="removable"
|
|
24
|
+
*/
|
|
19
25
|
removable?: boolean;
|
|
20
26
|
/**
|
|
21
27
|
* Имя для input в режиме selectable
|
|
22
28
|
*/
|
|
23
29
|
name?: string;
|
|
30
|
+
/**
|
|
31
|
+
* @deprecated Будет удалено в 5.0.0. Используйте mode="selectable"
|
|
32
|
+
*/
|
|
24
33
|
selectable?: boolean;
|
|
25
34
|
/**
|
|
26
35
|
* В режиме selectable реагирует на входящие значения пропса cheсked, как зависящий напрямую от входящего значения
|
|
@@ -37,117 +46,56 @@ export interface CellProps extends SimpleCellProps, HasPlatform, RemovableProps
|
|
|
37
46
|
* есть рабочий пример с обработкой этих чисел и перерисовкой списка.
|
|
38
47
|
*/
|
|
39
48
|
onDragFinish?: ({ from, to }: { from: number; to: number }) => void;
|
|
49
|
+
/**
|
|
50
|
+
* aria-label для кнопки перетаскивания ячейки
|
|
51
|
+
*/
|
|
52
|
+
draggerLabel?: string;
|
|
40
53
|
}
|
|
41
54
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const _siblings: HTMLElement[] = Array.from(rootEl.parentElement.childNodes);
|
|
80
|
-
const rootElIdx = _siblings.indexOf(rootEl);
|
|
81
|
-
|
|
82
|
-
setDragStartIndex(rootElIdx);
|
|
83
|
-
setDragEndIndex(rootElIdx);
|
|
84
|
-
setSiblings(_siblings);
|
|
85
|
-
setDragShift(0);
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
const onDragMove = (e: TouchEvent) => {
|
|
89
|
-
e.originalEvent.preventDefault();
|
|
90
|
-
|
|
91
|
-
const rootEl = rootElRef?.current;
|
|
92
|
-
|
|
93
|
-
rootEl.style.transform = `translateY(${e.shiftY}px)`;
|
|
94
|
-
setDragDirection(dragShift - e.shiftY < 0 ? 'down' : 'up');
|
|
95
|
-
setDragShift(e.shiftY);
|
|
96
|
-
setDragEndIndex(dragStartIndex);
|
|
97
|
-
|
|
98
|
-
siblings.forEach((sibling: HTMLElement, siblingIndex: number) => {
|
|
99
|
-
const rootGesture = rootEl.getBoundingClientRect();
|
|
100
|
-
|
|
101
|
-
const siblingGesture = sibling.getBoundingClientRect();
|
|
102
|
-
|
|
103
|
-
if (dragStartIndex < siblingIndex) {
|
|
104
|
-
if (rootGesture.bottom > siblingGesture.top + siblingGesture.height / 2) {
|
|
105
|
-
if (dragDirection === 'down') {
|
|
106
|
-
sibling.style.transform = 'translateY(-100%)';
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
setDragEndIndex((dragEndIndex) => dragEndIndex + 1);
|
|
110
|
-
}
|
|
111
|
-
if (rootGesture.top < siblingGesture.bottom - siblingGesture.height / 2 && dragDirection === 'up') {
|
|
112
|
-
sibling.style.transform = 'translateY(0)';
|
|
113
|
-
}
|
|
114
|
-
} else if (dragStartIndex > siblingIndex) {
|
|
115
|
-
if (rootGesture.top < siblingGesture.bottom - siblingGesture.height / 2) {
|
|
116
|
-
if (dragDirection === 'up') {
|
|
117
|
-
sibling.style.transform = 'translateY(100%)';
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
setDragEndIndex((dragEndIndex) => dragEndIndex - 1);
|
|
121
|
-
}
|
|
122
|
-
if (rootGesture.bottom > siblingGesture.top + siblingGesture.height / 2 && dragDirection === 'down') {
|
|
123
|
-
sibling.style.transform = 'translateY(0)';
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
};
|
|
128
|
-
|
|
129
|
-
const onDragEnd = () => {
|
|
130
|
-
const [from, to] = [dragStartIndex, dragEndIndex];
|
|
131
|
-
|
|
132
|
-
siblings.forEach((sibling: HTMLElement) => {
|
|
133
|
-
sibling.style.transform = null;
|
|
134
|
-
});
|
|
135
|
-
|
|
136
|
-
setSiblings(undefined);
|
|
137
|
-
setDragEndIndex(undefined);
|
|
138
|
-
setDragStartIndex(undefined);
|
|
139
|
-
setDragDirection(undefined);
|
|
140
|
-
setDragShift(undefined);
|
|
55
|
+
const warn = warnOnce('Cell');
|
|
56
|
+
export const Cell: React.FC<CellProps> = ({
|
|
57
|
+
mode: propsMode, // TODO: убрать переименование в propsMode перед 5.0.0
|
|
58
|
+
onRemove,
|
|
59
|
+
removePlaceholder = 'Удалить',
|
|
60
|
+
onDragFinish,
|
|
61
|
+
before,
|
|
62
|
+
after,
|
|
63
|
+
disabled,
|
|
64
|
+
removable: deprecatedRemovable, // TODO: удалить перед 5.0.0
|
|
65
|
+
draggable,
|
|
66
|
+
selectable: deprecatedSelectable, // TODO: удалить перед 5.0.0
|
|
67
|
+
Component,
|
|
68
|
+
onChange,
|
|
69
|
+
name,
|
|
70
|
+
checked,
|
|
71
|
+
defaultChecked,
|
|
72
|
+
getRootRef,
|
|
73
|
+
draggerLabel = 'Перенести ячейку',
|
|
74
|
+
className,
|
|
75
|
+
style,
|
|
76
|
+
...restProps
|
|
77
|
+
}: CellProps) => {
|
|
78
|
+
// TODO: удалить перед 5.0.0
|
|
79
|
+
let mode: CellProps['mode'] = propsMode;
|
|
80
|
+
|
|
81
|
+
if (!propsMode && (deprecatedSelectable || deprecatedRemovable)) {
|
|
82
|
+
mode = deprecatedSelectable
|
|
83
|
+
? 'selectable'
|
|
84
|
+
: 'removable';
|
|
85
|
+
|
|
86
|
+
if (process.env.NODE_ENV === 'development') {
|
|
87
|
+
deprecatedSelectable && warn('Свойство selectable устарелo и будет удалено в 5.0.0. Используйте mode="selectable".');
|
|
88
|
+
deprecatedRemovable && warn('Свойство removable устарелo и будет удалено в 5.0.0. Используйте mode="removable".');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// /end TODO
|
|
141
92
|
|
|
142
|
-
|
|
93
|
+
const selectable = mode === 'selectable';
|
|
94
|
+
const removable = mode === 'removable';
|
|
143
95
|
|
|
144
|
-
|
|
145
|
-
};
|
|
96
|
+
const platform = usePlatform();
|
|
146
97
|
|
|
147
|
-
const
|
|
148
|
-
e.nativeEvent.stopPropagation();
|
|
149
|
-
e.preventDefault();
|
|
150
|
-
};
|
|
98
|
+
const { dragging, rootElRef, ...draggableProps } = useDraggable({ onDragFinish });
|
|
151
99
|
|
|
152
100
|
const { toggleDrag } = React.useContext(ListContext);
|
|
153
101
|
React.useEffect(() => {
|
|
@@ -158,83 +106,74 @@ export const Cell: React.FC<CellProps> = (props: CellProps) => {
|
|
|
158
106
|
return undefined;
|
|
159
107
|
}, [dragging]);
|
|
160
108
|
|
|
161
|
-
|
|
162
|
-
|
|
109
|
+
let dragger;
|
|
110
|
+
if (draggable) {
|
|
111
|
+
dragger = <CellDragger vkuiClass="Cell__dragger" aria-label={draggerLabel} {...draggableProps} />;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
let checkbox;
|
|
115
|
+
if (selectable) {
|
|
116
|
+
const checkboxProps: CellCheckboxProps = { name, onChange, defaultChecked, checked, disabled };
|
|
117
|
+
checkbox = <CellCheckbox vkuiClass="Cell__checkbox" {...checkboxProps} />;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
const simpleCellDisabled = draggable && !selectable || removable || disabled;
|
|
121
|
+
const hasActive = !simpleCellDisabled && !dragging;
|
|
122
|
+
|
|
123
|
+
const cellClasses = classNames(getClassName('Cell', platform), {
|
|
124
|
+
'Cell--dragging': dragging,
|
|
125
|
+
'Cell--removable': removable,
|
|
126
|
+
'Cell--selectable': selectable,
|
|
127
|
+
'Cell--disabled': disabled,
|
|
128
|
+
});
|
|
163
129
|
|
|
164
130
|
const simpleCell = (
|
|
165
131
|
<SimpleCell
|
|
132
|
+
hasActive={hasActive}
|
|
133
|
+
hasHover={hasActive}
|
|
166
134
|
{...restProps}
|
|
167
|
-
|
|
135
|
+
vkuiClass="Cell__content"
|
|
136
|
+
disabled={simpleCellDisabled}
|
|
168
137
|
Component={selectable ? 'label' : Component}
|
|
169
|
-
htmlFor={selectable ? name : undefined}
|
|
170
138
|
before={
|
|
171
139
|
<React.Fragment>
|
|
172
|
-
{(platform === ANDROID || platform === VKCOM) &&
|
|
173
|
-
|
|
174
|
-
vkuiClass="Cell__dragger"
|
|
175
|
-
onStart={onDragStart}
|
|
176
|
-
onMoveY={onDragMove}
|
|
177
|
-
onEnd={onDragEnd}
|
|
178
|
-
onClick={onDragClick}
|
|
179
|
-
><Icon24Reorder /></Touch>
|
|
180
|
-
)}
|
|
181
|
-
{selectable && (
|
|
182
|
-
<React.Fragment>
|
|
183
|
-
<input
|
|
184
|
-
type="checkbox"
|
|
185
|
-
vkuiClass="Cell__checkbox"
|
|
186
|
-
name={name}
|
|
187
|
-
onChange={onChange}
|
|
188
|
-
defaultChecked={defaultChecked}
|
|
189
|
-
checked={checked}
|
|
190
|
-
disabled={disabled}
|
|
191
|
-
/>
|
|
192
|
-
<span vkuiClass="Cell__marker">
|
|
193
|
-
<IconOff vkuiClass="Cell__marker-in" />
|
|
194
|
-
<IconOn vkuiClass="Cell__marker-in Cell__marker-in--checked" />
|
|
195
|
-
</span>
|
|
196
|
-
</React.Fragment>
|
|
197
|
-
)}
|
|
140
|
+
{draggable && (platform === ANDROID || platform === VKCOM) && dragger}
|
|
141
|
+
{selectable && checkbox}
|
|
198
142
|
{before}
|
|
199
143
|
</React.Fragment>
|
|
200
144
|
}
|
|
201
145
|
after={
|
|
202
146
|
<React.Fragment>
|
|
203
|
-
{platform === IOS &&
|
|
204
|
-
<Touch
|
|
205
|
-
vkuiClass="Cell__dragger"
|
|
206
|
-
onStart={onDragStart}
|
|
207
|
-
onMoveY={onDragMove}
|
|
208
|
-
onEnd={onDragEnd}
|
|
209
|
-
onClick={onDragClick}
|
|
210
|
-
><Icon24ReorderIos /></Touch>
|
|
211
|
-
)}
|
|
147
|
+
{draggable && platform === IOS && dragger}
|
|
212
148
|
{after}
|
|
213
149
|
</React.Fragment>
|
|
214
150
|
}
|
|
215
151
|
/>
|
|
216
152
|
);
|
|
217
153
|
|
|
154
|
+
if (removable) {
|
|
155
|
+
return (
|
|
156
|
+
<Removable
|
|
157
|
+
vkuiClass={cellClasses}
|
|
158
|
+
className={className}
|
|
159
|
+
style={style}
|
|
160
|
+
getRootRef={rootElRef}
|
|
161
|
+
removePlaceholder={removePlaceholder}
|
|
162
|
+
onRemove={(e) => onRemove(e, rootElRef?.current)}
|
|
163
|
+
>
|
|
164
|
+
{simpleCell}
|
|
165
|
+
</Removable>
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
|
|
218
169
|
return (
|
|
219
170
|
<div
|
|
220
|
-
vkuiClass={
|
|
221
|
-
'Cell--dragging': dragging,
|
|
222
|
-
'Cell--removable': removable,
|
|
223
|
-
'Cell--selectable': selectable,
|
|
224
|
-
'Cell--disabled': disabled,
|
|
225
|
-
})}
|
|
171
|
+
vkuiClass={cellClasses}
|
|
226
172
|
className={className}
|
|
227
173
|
style={style}
|
|
228
174
|
ref={rootElRef}
|
|
229
175
|
>
|
|
230
|
-
{
|
|
231
|
-
? <Removable removePlaceholder={removePlaceholder} onRemove={(e) => onRemove(e, rootElRef?.current)}>{simpleCell}</Removable>
|
|
232
|
-
: simpleCell
|
|
233
|
-
}
|
|
176
|
+
{simpleCell}
|
|
234
177
|
</div>
|
|
235
178
|
);
|
|
236
179
|
};
|
|
237
|
-
|
|
238
|
-
Cell.defaultProps = {
|
|
239
|
-
removePlaceholder: 'Удалить',
|
|
240
|
-
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
.CellCheckbox__icon {
|
|
2
|
+
color: var(--icon_tertiary);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.CellCheckbox__input,
|
|
6
|
+
.CellCheckbox__icon {
|
|
7
|
+
display: none;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.CellCheckbox__icon--on {
|
|
11
|
+
color: var(--accent);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.CellCheckbox__input:not(:checked) ~ .CellCheckbox__icon--off,
|
|
15
|
+
.CellCheckbox__input:checked ~ .CellCheckbox__icon--on {
|
|
16
|
+
display: block;
|
|
17
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Icon24CheckBoxOff, Icon24CheckBoxOn, Icon24CheckCircleOff, Icon24CheckCircleOn } from '@vkontakte/icons';
|
|
3
|
+
import { getClassName } from '../../../helpers/getClassName';
|
|
4
|
+
import { usePlatform } from '../../../hooks/usePlatform';
|
|
5
|
+
import { classNames } from '../../../lib/classNames';
|
|
6
|
+
import { ANDROID } from '../../../lib/platform';
|
|
7
|
+
import { CellProps } from '../Cell';
|
|
8
|
+
import './CellCheckbox.css';
|
|
9
|
+
|
|
10
|
+
export type CellCheckboxProps = Pick<CellProps, 'defaultChecked' | 'checked'> & React.InputHTMLAttributes<HTMLInputElement>;
|
|
11
|
+
|
|
12
|
+
export const CellCheckbox: React.FC<CellCheckboxProps> = ({
|
|
13
|
+
className,
|
|
14
|
+
style,
|
|
15
|
+
...restProps
|
|
16
|
+
}) => {
|
|
17
|
+
const platform = usePlatform();
|
|
18
|
+
|
|
19
|
+
const IconOff = platform === ANDROID
|
|
20
|
+
? Icon24CheckBoxOff
|
|
21
|
+
: Icon24CheckCircleOff;
|
|
22
|
+
|
|
23
|
+
const IconOn = platform === ANDROID
|
|
24
|
+
? Icon24CheckBoxOn
|
|
25
|
+
: Icon24CheckCircleOn;
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<div
|
|
29
|
+
vkuiClass={classNames(getClassName('CellCheckbox', platform))}
|
|
30
|
+
className={className}
|
|
31
|
+
style={style}
|
|
32
|
+
>
|
|
33
|
+
<input
|
|
34
|
+
vkuiClass="CellCheckbox__input"
|
|
35
|
+
type="checkbox"
|
|
36
|
+
{...restProps}
|
|
37
|
+
/>
|
|
38
|
+
<IconOff vkuiClass="CellCheckbox__icon CellCheckbox__icon--off" />
|
|
39
|
+
<IconOn vkuiClass="CellCheckbox__icon CellCheckbox__icon--on" />
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Icon24Reorder, Icon24ReorderIos } from '@vkontakte/icons';
|
|
3
|
+
import { getClassName } from '../../../helpers/getClassName';
|
|
4
|
+
import { usePlatform } from '../../../hooks/usePlatform';
|
|
5
|
+
import { classNames } from '../../../lib/classNames';
|
|
6
|
+
import { IOS } from '../../../lib/platform';
|
|
7
|
+
import { Touch } from '../../Touch/Touch';
|
|
8
|
+
import { DraggableProps } from '../useDraggable';
|
|
9
|
+
import './CellDragger.css';
|
|
10
|
+
|
|
11
|
+
type CellDraggerProps = DraggableProps & React.HTMLAttributes<HTMLElement>;
|
|
12
|
+
|
|
13
|
+
export const CellDragger: React.FC<CellDraggerProps> = ({
|
|
14
|
+
onDragStart,
|
|
15
|
+
onDragMove,
|
|
16
|
+
onDragEnd,
|
|
17
|
+
...restProps
|
|
18
|
+
}) => {
|
|
19
|
+
const platform = usePlatform();
|
|
20
|
+
|
|
21
|
+
const onClick = React.useCallback((e: React.MouseEvent) => {
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
}, []);
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<Touch
|
|
27
|
+
vkuiClass={classNames(getClassName('CellDragger', platform))}
|
|
28
|
+
onStart={onDragStart}
|
|
29
|
+
onMoveY={onDragMove}
|
|
30
|
+
onEnd={onDragEnd}
|
|
31
|
+
onClick={onClick}
|
|
32
|
+
{...restProps}
|
|
33
|
+
>
|
|
34
|
+
{platform === IOS
|
|
35
|
+
? <Icon24ReorderIos />
|
|
36
|
+
: <Icon24Reorder />
|
|
37
|
+
}
|
|
38
|
+
</Touch>
|
|
39
|
+
);
|
|
40
|
+
};
|