@vkontakte/vkui 4.20.0 → 4.22.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/.cache/.eslintcache +1 -1
- package/.cache/.stylelintcache +1 -1
- package/.cache/.tsbuildinfo +414 -116
- 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 +2 -3
- 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/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/TabbarItem/TabbarItem.d.ts +3 -1
- 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 +1 -1
- package/.cache/ts/src/lib/supportEvents.d.ts +3 -1
- package/.cache/ts/src/types.d.ts +3 -0
- package/dist/cjs/components/ActionSheet/ActionSheet.js +7 -9
- package/dist/cjs/components/ActionSheet/ActionSheet.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/CardScroll/CardScroll.js +1 -1
- package/dist/cjs/components/CardScroll/CardScroll.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 +142 -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 +2 -3
- package/dist/cjs/components/CustomSelect/CustomSelect.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 +2 -3
- package/dist/cjs/components/FocusTrap/FocusTrap.js +3 -5
- package/dist/cjs/components/FocusTrap/FocusTrap.js.map +1 -1
- 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 +170 -373
- 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 +59 -241
- 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/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/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/Tabbar/Tabbar.js +3 -1
- package/dist/cjs/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.d.ts +3 -1
- package/dist/cjs/components/TabbarItem/TabbarItem.js +29 -11
- package/dist/cjs/components/TabbarItem/TabbarItem.js.map +1 -1
- package/dist/cjs/components/Tappable/Tappable.d.ts +2 -3
- package/dist/cjs/components/Tappable/Tappable.js.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 +21 -7
- 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 +1 -1
- package/dist/cjs/lib/accessibility.js.map +1 -1
- 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 +6 -9
- package/dist/components/ActionSheet/ActionSheet.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/CardScroll/CardScroll.js +1 -1
- package/dist/components/CardScroll/CardScroll.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 +126 -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 +3 -5
- package/dist/components/CustomSelect/CustomSelect.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 +2 -3
- package/dist/components/FocusTrap/FocusTrap.js +3 -5
- package/dist/components/FocusTrap/FocusTrap.js.map +1 -1
- 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 +167 -376
- 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 +58 -244
- 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/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/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/Tabbar/Tabbar.js +3 -1
- package/dist/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/components/TabbarItem/TabbarItem.d.ts +3 -1
- package/dist/components/TabbarItem/TabbarItem.js +26 -10
- package/dist/components/TabbarItem/TabbarItem.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 +21 -7
- 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 +6 -9
- package/dist/cssm/components/ActionSheet/ActionSheet.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/CardScroll/CardScroll.js +1 -1
- package/dist/cssm/components/CardScroll/CardScroll.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 +126 -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 +3 -5
- package/dist/cssm/components/CustomSelect/CustomSelect.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 +3 -5
- package/dist/cssm/components/FocusTrap/FocusTrap.js.map +1 -1
- 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 +167 -376
- 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 +58 -244
- 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/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/Search/Search.css +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/Tabbar/Tabbar.css +1 -1
- package/dist/cssm/components/Tabbar/Tabbar.js +3 -1
- package/dist/cssm/components/Tabbar/Tabbar.js.map +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.css +1 -1
- package/dist/cssm/components/TabbarItem/TabbarItem.js +26 -10
- package/dist/cssm/components/TabbarItem/TabbarItem.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 +21 -7
- 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.map +1 -1
- 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 +1 -1
- package/dist/lib/accessibility.js.map +1 -1
- 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 +4 -5
- package/src/components/ActionSheet/Readme.md +18 -14
- package/src/components/Alert/Readme.md +15 -11
- 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/CardScroll/CardScroll.tsx +4 -1
- 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 +3 -4
- package/src/components/DropdownIcon/DropdownIcon.css +3 -0
- package/src/components/DropdownIcon/DropdownIcon.tsx +20 -0
- package/src/components/Epic/Readme.md +2 -1
- package/src/components/FocusTrap/FocusTrap.tsx +13 -11
- 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 +159 -349
- package/src/components/ModalRoot/ModalRootContext.tsx +0 -1
- package/src/components/ModalRoot/ModalRootDesktop.tsx +54 -240
- 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/Removable/Removable.css +16 -63
- package/src/components/Removable/Removable.tsx +84 -64
- package/src/components/ScreenSpinner/Readme.md +13 -9
- package/src/components/Search/Search.css +1 -1
- 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/Tabbar/Tabbar.css +15 -4
- package/src/components/Tabbar/Tabbar.tsx +3 -1
- package/src/components/TabbarItem/Readme.md +72 -0
- package/src/components/TabbarItem/TabbarItem.css +65 -14
- package/src/components/TabbarItem/TabbarItem.tsx +46 -22
- 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 +38 -25
- 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 +2 -2
- 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 +34 -1
- package/src/types.ts +4 -0
|
@@ -1,113 +1,93 @@
|
|
|
1
1
|
```jsx
|
|
2
|
-
|
|
2
|
+
const [slideIndex, setSlideIndex] = useState(0);
|
|
3
|
+
const [isDraggable, setIsDraggable] = useState(true);
|
|
4
|
+
const [showArrows, setShowArrows] = useState(true);
|
|
3
5
|
|
|
4
|
-
|
|
6
|
+
<View activePanel="gallery">
|
|
7
|
+
<Panel nav="gallery">
|
|
8
|
+
<PanelHeader>Gallery</PanelHeader>
|
|
9
|
+
<Group header={<Header mode="secondary">Sticks right</Header>}>
|
|
10
|
+
<Gallery
|
|
11
|
+
slideWidth="90%"
|
|
12
|
+
bullets="dark"
|
|
13
|
+
>
|
|
14
|
+
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
15
|
+
<img src="https://picsum.photos/1024/640" style={{ display: 'block'}} />
|
|
16
|
+
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
17
|
+
</Gallery>
|
|
18
|
+
</Group>
|
|
19
|
+
<Group header={<Header mode="secondary">Sticks left</Header>}>
|
|
20
|
+
<Gallery
|
|
21
|
+
slideWidth="90%"
|
|
22
|
+
align="right"
|
|
23
|
+
>
|
|
24
|
+
<div style={{ height: 150, backgroundColor: 'var(--destructive)' }} />
|
|
25
|
+
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
26
|
+
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
27
|
+
</Gallery>
|
|
28
|
+
</Group>
|
|
29
|
+
<Group header={<Header mode="secondary">Centered</Header>}>
|
|
30
|
+
<Gallery
|
|
31
|
+
slideWidth="90%"
|
|
32
|
+
align="center"
|
|
33
|
+
>
|
|
34
|
+
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
35
|
+
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
36
|
+
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
37
|
+
</Gallery>
|
|
38
|
+
</Group>
|
|
39
|
+
<Group header={<Header mode="secondary">Custom width</Header>}>
|
|
40
|
+
<Gallery
|
|
41
|
+
slideWidth="custom"
|
|
42
|
+
style={{ height: 150 }}
|
|
43
|
+
>
|
|
44
|
+
<div style={{ width: 200, backgroundColor: 'var(--destructive)' }} />
|
|
45
|
+
<div style={{ width: 120, backgroundColor: 'var(--button_commerce_background)' }} />
|
|
46
|
+
<div style={{ width: 70, backgroundColor: 'var(--accent)' }} />
|
|
47
|
+
<div style={{ width: 220, backgroundColor: 'var(--icon_secondary)' }} />
|
|
48
|
+
</Gallery>
|
|
49
|
+
</Group>
|
|
50
|
+
<Group header={<Header mode="secondary">Arrows</Header>}>
|
|
51
|
+
<Gallery
|
|
52
|
+
slideWidth="90%"
|
|
53
|
+
style={{ height: 150 }}
|
|
54
|
+
bullets="dark"
|
|
55
|
+
showArrows
|
|
56
|
+
>
|
|
57
|
+
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
58
|
+
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
59
|
+
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
60
|
+
</Gallery>
|
|
61
|
+
</Group>
|
|
62
|
+
<Group header={<Header mode="secondary">Controled</Header>}>
|
|
63
|
+
<Gallery
|
|
64
|
+
slideWidth="90%"
|
|
65
|
+
align="center"
|
|
66
|
+
style={{ height: 150 }}
|
|
67
|
+
slideIndex={slideIndex}
|
|
68
|
+
onChange={setSlideIndex}
|
|
69
|
+
isDraggable={isDraggable}
|
|
70
|
+
showArrows={showArrows}
|
|
71
|
+
>
|
|
72
|
+
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
73
|
+
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
74
|
+
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
75
|
+
</Gallery>
|
|
5
76
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<Gallery
|
|
23
|
-
slideWidth="90%"
|
|
24
|
-
style={{ height: 150 }}
|
|
25
|
-
bullets="dark"
|
|
26
|
-
>
|
|
27
|
-
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
28
|
-
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
29
|
-
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
30
|
-
</Gallery>
|
|
31
|
-
</Group>
|
|
32
|
-
<Group header={<Header mode="secondary">Sticks left</Header>}>
|
|
33
|
-
<Gallery
|
|
34
|
-
slideWidth="90%"
|
|
35
|
-
align="right"
|
|
36
|
-
style={{ height: 150 }}
|
|
37
|
-
>
|
|
38
|
-
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
39
|
-
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
40
|
-
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
41
|
-
</Gallery>
|
|
42
|
-
</Group>
|
|
43
|
-
<Group header={<Header mode="secondary">Centered</Header>}>
|
|
44
|
-
<Gallery
|
|
45
|
-
slideWidth="90%"
|
|
46
|
-
align="center"
|
|
47
|
-
style={{ height: 150 }}
|
|
48
|
-
>
|
|
49
|
-
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
50
|
-
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
51
|
-
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
52
|
-
</Gallery>
|
|
53
|
-
</Group>
|
|
54
|
-
<Group header={<Header mode="secondary">Custom width</Header>}>
|
|
55
|
-
<Gallery
|
|
56
|
-
slideWidth="custom"
|
|
57
|
-
style={{ height: 150 }}
|
|
58
|
-
>
|
|
59
|
-
<div style={{ width: 200, backgroundColor: 'var(--destructive)' }} />
|
|
60
|
-
<div style={{ width: 120, backgroundColor: 'var(--button_commerce_background)' }} />
|
|
61
|
-
<div style={{ width: 70, backgroundColor: 'var(--accent)' }} />
|
|
62
|
-
<div style={{ width: 220, backgroundColor: 'var(--icon_secondary)' }} />
|
|
63
|
-
</Gallery>
|
|
64
|
-
</Group>
|
|
65
|
-
<Group header={<Header mode="secondary">Arrows</Header>}>
|
|
66
|
-
<Gallery
|
|
67
|
-
slideWidth="90%"
|
|
68
|
-
style={{ height: 150 }}
|
|
69
|
-
bullets="dark"
|
|
70
|
-
showArrows
|
|
71
|
-
>
|
|
72
|
-
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
73
|
-
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
74
|
-
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
75
|
-
</Gallery>
|
|
76
|
-
</Group>
|
|
77
|
-
<Group header={<Header mode="secondary">Controled</Header>}>
|
|
78
|
-
<Gallery
|
|
79
|
-
slideWidth="90%"
|
|
80
|
-
align="center"
|
|
81
|
-
style={{ height: 150 }}
|
|
82
|
-
slideIndex={slideIndex}
|
|
83
|
-
onChange={slideIndex => this.setState({slideIndex})}
|
|
84
|
-
isDraggable={isDraggable}
|
|
85
|
-
showArrows={showArrows}
|
|
86
|
-
>
|
|
87
|
-
<div style={{ backgroundColor: 'var(--destructive)' }} />
|
|
88
|
-
<div style={{ backgroundColor: 'var(--button_commerce_background)' }} />
|
|
89
|
-
<div style={{ backgroundColor: 'var(--accent)' }} />
|
|
90
|
-
</Gallery>
|
|
91
|
-
|
|
92
|
-
<FormItem>
|
|
93
|
-
<Checkbox checked={isDraggable} onChange={e => this.setState({ isDraggable: e.target.checked })}>
|
|
94
|
-
isDraggable
|
|
95
|
-
</Checkbox>
|
|
96
|
-
<Checkbox checked={showArrows} onChange={e => this.setState({ showArrows: e.target.checked })}>
|
|
97
|
-
showArrows
|
|
98
|
-
</Checkbox>
|
|
99
|
-
</FormItem>
|
|
100
|
-
<FormItem>
|
|
101
|
-
<Button size='l' stretched onClick={() => this.setState({ slideIndex: (slideIndex + 1) % 3 })}>
|
|
102
|
-
Next slide
|
|
103
|
-
</Button>
|
|
104
|
-
</FormItem>
|
|
105
|
-
</Group>
|
|
106
|
-
</Panel>
|
|
107
|
-
</View>
|
|
108
|
-
)
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
<Example />
|
|
77
|
+
<FormItem>
|
|
78
|
+
<Checkbox checked={isDraggable} onChange={e => setIsDraggable(e.target.checked)}>
|
|
79
|
+
isDraggable
|
|
80
|
+
</Checkbox>
|
|
81
|
+
<Checkbox checked={showArrows} onChange={e => setShowArrows(e.target.checked)}>
|
|
82
|
+
showArrows
|
|
83
|
+
</Checkbox>
|
|
84
|
+
</FormItem>
|
|
85
|
+
<FormItem>
|
|
86
|
+
<Button size='l' stretched onClick={() => setSlideIndex((slideIndex + 1) % 3)}>
|
|
87
|
+
Next slide
|
|
88
|
+
</Button>
|
|
89
|
+
</FormItem>
|
|
90
|
+
</Group>
|
|
91
|
+
</Panel>
|
|
92
|
+
</View>
|
|
113
93
|
```
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
.GridAvatar__in {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-flow: column wrap;
|
|
4
|
+
height: 100%;
|
|
5
|
+
width: 100%;
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
border-radius: inherit;
|
|
8
|
+
|
|
9
|
+
--grid-avatar-image-offset: 2px;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.GridAvatar__item {
|
|
13
|
+
width: calc(50% - var(--grid-avatar-image-offset) / 2);
|
|
14
|
+
height: 100%;
|
|
15
|
+
background-size: cover;
|
|
16
|
+
background-position: center;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.GridAvatar--images-1 .GridAvatar__item {
|
|
20
|
+
width: 100%;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.GridAvatar--images-3 .GridAvatar__item:nth-child(1n + 2),
|
|
24
|
+
.GridAvatar--images-4 .GridAvatar__item {
|
|
25
|
+
height: calc(50% - var(--grid-avatar-image-offset) / 2);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.GridAvatar--images-2 .GridAvatar__item:nth-child(1n + 2),
|
|
29
|
+
.GridAvatar--images-3 .GridAvatar__item:nth-child(1n + 2),
|
|
30
|
+
.GridAvatar--images-4 .GridAvatar__item:nth-child(1n + 3) {
|
|
31
|
+
margin-left: var(--grid-avatar-image-offset);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.GridAvatar--images-3 .GridAvatar__item:nth-child(2),
|
|
35
|
+
.GridAvatar--images-4 .GridAvatar__item:nth-child(odd) {
|
|
36
|
+
margin-bottom: var(--grid-avatar-image-offset);
|
|
37
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import Avatar, { AVATAR_DEFAULT_SHADOW, AVATAR_DEFAULT_SIZE } from '../Avatar/Avatar';
|
|
3
|
+
import { classNames } from '../../lib/classNames';
|
|
4
|
+
import { warnOnce } from '../../lib/warnOnce';
|
|
5
|
+
import { HasRootRef } from '../../types';
|
|
6
|
+
import './GridAvatar.css';
|
|
7
|
+
|
|
8
|
+
export interface GridAvatarProps extends React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLDivElement> {
|
|
9
|
+
src?: string[];
|
|
10
|
+
size?: number;
|
|
11
|
+
shadow?: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const MIN_GRID_LENGTH = 1;
|
|
15
|
+
const MAX_GRID_LENGTH = 4;
|
|
16
|
+
|
|
17
|
+
const warn = warnOnce('GridAvatar');
|
|
18
|
+
|
|
19
|
+
export const GridAvatar: React.FC<GridAvatarProps> = ({
|
|
20
|
+
src = [],
|
|
21
|
+
size = AVATAR_DEFAULT_SIZE,
|
|
22
|
+
shadow = AVATAR_DEFAULT_SHADOW,
|
|
23
|
+
...restProps
|
|
24
|
+
}: GridAvatarProps) => {
|
|
25
|
+
if (process.env.NODE_ENV === 'development' && src.length > MAX_GRID_LENGTH) {
|
|
26
|
+
warn(`Размер пропа src (${src.length}) больше максимального (${MAX_GRID_LENGTH})`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const count = Math.max(MIN_GRID_LENGTH, Math.min(MAX_GRID_LENGTH, src.length));
|
|
30
|
+
|
|
31
|
+
return (
|
|
32
|
+
<Avatar
|
|
33
|
+
{...restProps}
|
|
34
|
+
vkuiClass={classNames(
|
|
35
|
+
'GridAvatar',
|
|
36
|
+
`GridAvatar--images-${count}`,
|
|
37
|
+
)}
|
|
38
|
+
shadow={shadow}
|
|
39
|
+
size={size}
|
|
40
|
+
>
|
|
41
|
+
<div vkuiClass="GridAvatar__in">
|
|
42
|
+
{src.slice(0, MAX_GRID_LENGTH).map((src, i) => {
|
|
43
|
+
return (
|
|
44
|
+
<div
|
|
45
|
+
key={i}
|
|
46
|
+
vkuiClass="GridAvatar__item"
|
|
47
|
+
style={{ backgroundImage: `url(${src})` }}
|
|
48
|
+
>
|
|
49
|
+
</div>
|
|
50
|
+
);
|
|
51
|
+
})}
|
|
52
|
+
</div>
|
|
53
|
+
</Avatar>
|
|
54
|
+
);
|
|
55
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Отображение нескольких аватаров в сетке от 1 до 4 элементов.
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
```jsx { "props": { "layout": false, "iframe": false } }
|
|
5
|
+
<div style={{ display: 'flex', padding: 12, gap: 8, flexFlow: 'row wrap' }}>
|
|
6
|
+
<GridAvatar />
|
|
7
|
+
<GridAvatar src={[getAvatarUrl('user_ji')]} />
|
|
8
|
+
<GridAvatar src={[getAvatarUrl('user_wayshev'), getAvatarUrl('user_mm')]} />
|
|
9
|
+
<GridAvatar src={[getAvatarUrl('user_arthurstam'), getAvatarUrl('user_xyz'), getAvatarUrl('user_ox')]} />
|
|
10
|
+
<GridAvatar src={[getAvatarUrl('user_ilyagrshn'), getAvatarUrl('user_tc'), getAvatarUrl('user_lihachyov'), getAvatarUrl('user_va')]} />
|
|
11
|
+
</div>
|
|
12
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Группа – базовый компонент для группировки контента по смыслу.
|
|
2
2
|
|
|
3
|
-
```jsx
|
|
3
|
+
```jsx { "props": { "layout": false, "adaptivity": true } }
|
|
4
4
|
const MODAL_NAME = 'modal'
|
|
5
5
|
|
|
6
6
|
class App extends React.Component {
|
|
@@ -91,21 +91,25 @@ class App extends React.Component {
|
|
|
91
91
|
);
|
|
92
92
|
|
|
93
93
|
return (
|
|
94
|
-
<
|
|
95
|
-
<
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
<SplitLayout modal={modal}>
|
|
95
|
+
<SplitCol>
|
|
96
|
+
<View activePanel="group">
|
|
97
|
+
<Panel id="group">
|
|
98
|
+
<PanelHeader>
|
|
99
|
+
Group
|
|
100
|
+
</PanelHeader>
|
|
99
101
|
|
|
100
|
-
|
|
102
|
+
{this.renderGroup()}
|
|
101
103
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
104
|
+
<Group header={<Header mode="secondary">Модальное окно с Group</Header>}>
|
|
105
|
+
<SimpleCell onClick={() => this.setState({ isModalOpened: true })}>
|
|
106
|
+
Открыть Group в модальном окне
|
|
107
|
+
</SimpleCell>
|
|
108
|
+
</Group>
|
|
109
|
+
</Panel>
|
|
110
|
+
</View>
|
|
111
|
+
</SplitCol>
|
|
112
|
+
</SplitLayout>
|
|
109
113
|
)
|
|
110
114
|
}
|
|
111
115
|
}
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { getClassName } from '../../helpers/getClassName';
|
|
3
3
|
import { classNames } from '../../lib/classNames';
|
|
4
4
|
import { usePlatform } from '../../hooks/usePlatform';
|
|
5
|
-
import { HasPlatform, HasRootRef } from '../../types';
|
|
5
|
+
import { HasComponent, HasPlatform, HasRootRef } from '../../types';
|
|
6
6
|
import { hasReactNode, isPrimitiveReactNode } from '../../lib/utils';
|
|
7
7
|
import { Platform } from '../../lib/platform';
|
|
8
8
|
import Headline from '../Typography/Headline/Headline';
|
|
@@ -26,7 +26,7 @@ export interface HeaderProps extends React.HTMLAttributes<HTMLElement>, HasRootR
|
|
|
26
26
|
multiline?: boolean;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
type HeaderContentProps = Pick<HeaderProps, 'children' | 'mode'> & HasPlatform &
|
|
29
|
+
type HeaderContentProps = Pick<HeaderProps, 'children' | 'mode'> & HasPlatform & HasComponent;
|
|
30
30
|
|
|
31
31
|
const HeaderContent: React.FC<HeaderContentProps> = ({ platform, mode, ...restProps }) => {
|
|
32
32
|
if (platform === Platform.IOS) {
|
|
@@ -58,7 +58,7 @@ const HeaderContent: React.FC<HeaderContentProps> = ({ platform, mode, ...restPr
|
|
|
58
58
|
}
|
|
59
59
|
};
|
|
60
60
|
|
|
61
|
-
type HeaderAsideProps = Pick<HeaderProps, 'aside'> & HasPlatform &
|
|
61
|
+
type HeaderAsideProps = Pick<HeaderProps, 'aside'> & HasPlatform & HasComponent;
|
|
62
62
|
|
|
63
63
|
const HeaderAside: React.FC<HeaderAsideProps> = ({ platform, ...restProps }) => {
|
|
64
64
|
return platform === Platform.VKCOM
|
|
@@ -66,7 +66,7 @@ const HeaderAside: React.FC<HeaderAsideProps> = ({ platform, ...restProps }) =>
|
|
|
66
66
|
: <Text weight="regular" {...restProps} />;
|
|
67
67
|
};
|
|
68
68
|
|
|
69
|
-
type HeaderSubtitleProps = Pick<HeaderProps, 'subtitle' | 'mode'> &
|
|
69
|
+
type HeaderSubtitleProps = Pick<HeaderProps, 'subtitle' | 'mode'> & HasComponent;
|
|
70
70
|
|
|
71
71
|
const HeaderSubtitle: React.FC<HeaderSubtitleProps> = ({ mode, ...restProps }) => {
|
|
72
72
|
return mode === 'secondary'
|
|
@@ -7,7 +7,7 @@ import Caption from '../Typography/Caption/Caption';
|
|
|
7
7
|
import Tappable from '../Tappable/Tappable';
|
|
8
8
|
import Subhead from '../Typography/Subhead/Subhead';
|
|
9
9
|
import Avatar from '../Avatar/Avatar';
|
|
10
|
-
import { HasRef, HasRootRef } from '../../types';
|
|
10
|
+
import { HasComponent, HasRef, HasRootRef } from '../../types';
|
|
11
11
|
import './HorizontalCell.css';
|
|
12
12
|
|
|
13
13
|
interface CellTypographyProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
@@ -23,8 +23,8 @@ const CellTypography: React.FC<CellTypographyProps> = ({ size, children, ...rest
|
|
|
23
23
|
export interface HorizontalCellProps extends
|
|
24
24
|
React.AnchorHTMLAttributes<HTMLElement>,
|
|
25
25
|
HasRootRef<HTMLDivElement>,
|
|
26
|
-
HasRef<HTMLDivElement
|
|
27
|
-
|
|
26
|
+
HasRef<HTMLDivElement>,
|
|
27
|
+
HasComponent {
|
|
28
28
|
size?: 's' | 'm' | 'l';
|
|
29
29
|
header?: React.ReactNode;
|
|
30
30
|
subtitle?: React.ReactNode;
|
|
@@ -24,6 +24,8 @@ interface ScrollContext {
|
|
|
24
24
|
initialScrollWidth: number;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
export type ScrollPositionHandler = (currentPosition: number) => number;
|
|
28
|
+
|
|
27
29
|
export interface HorizontalScrollProps extends
|
|
28
30
|
React.HTMLAttributes<HTMLDivElement>,
|
|
29
31
|
AdaptivityProps,
|
|
@@ -31,11 +33,11 @@ export interface HorizontalScrollProps extends
|
|
|
31
33
|
/**
|
|
32
34
|
* Функция для расчета величины прокрутки при клике на левую стрелку.
|
|
33
35
|
*/
|
|
34
|
-
getScrollToLeft?:
|
|
36
|
+
getScrollToLeft?: ScrollPositionHandler;
|
|
35
37
|
/**
|
|
36
38
|
* Функция для расчета величины прокрутки при клике на правую стрелку.
|
|
37
39
|
*/
|
|
38
|
-
getScrollToRight?:
|
|
40
|
+
getScrollToRight?: ScrollPositionHandler;
|
|
39
41
|
showArrows?: boolean;
|
|
40
42
|
scrollAnimationDuration?: number;
|
|
41
43
|
}
|
|
@@ -112,18 +114,16 @@ function doScroll({
|
|
|
112
114
|
})();
|
|
113
115
|
}
|
|
114
116
|
|
|
115
|
-
const HorizontalScroll: React.FC<HorizontalScrollProps> = (
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
} = props;
|
|
126
|
-
|
|
117
|
+
const HorizontalScroll: React.FC<HorizontalScrollProps> = ({
|
|
118
|
+
children,
|
|
119
|
+
getScrollToLeft,
|
|
120
|
+
getScrollToRight,
|
|
121
|
+
showArrows = true,
|
|
122
|
+
scrollAnimationDuration,
|
|
123
|
+
hasMouse,
|
|
124
|
+
getRef,
|
|
125
|
+
...restProps
|
|
126
|
+
}: HorizontalScrollProps) => {
|
|
127
127
|
const [canScrollLeft, setCanScrollLeft] = React.useState(false);
|
|
128
128
|
const [canScrollRight, setCanScrollRight] = React.useState(false);
|
|
129
129
|
|
|
@@ -189,10 +189,6 @@ const HorizontalScroll: React.FC<HorizontalScrollProps> = (props: HorizontalScro
|
|
|
189
189
|
);
|
|
190
190
|
};
|
|
191
191
|
|
|
192
|
-
HorizontalScroll.defaultProps = {
|
|
193
|
-
showArrows: true,
|
|
194
|
-
};
|
|
195
|
-
|
|
196
192
|
export default withAdaptivity(HorizontalScroll, {
|
|
197
193
|
hasMouse: true,
|
|
198
194
|
});
|
|
@@ -32,6 +32,8 @@
|
|
|
32
32
|
opacity: .6;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
.FormItem--removable .Removable__content > .IconButton,
|
|
36
|
+
.FormLayoutGroup--removable .Removable__content > .IconButton,
|
|
35
37
|
.FormField__after .IconButton {
|
|
36
38
|
display: flex;
|
|
37
39
|
align-items: center;
|
|
@@ -62,6 +64,11 @@
|
|
|
62
64
|
height: 36px;
|
|
63
65
|
}
|
|
64
66
|
|
|
67
|
+
.FormItem--removable .Removable__content > .IconButton--sizeY-compact,
|
|
68
|
+
.FormLayoutGroup--removable .Removable__content > .IconButton--sizeY-compact {
|
|
69
|
+
height: 36px;
|
|
70
|
+
}
|
|
71
|
+
|
|
65
72
|
.IconButton--sizeY-compact .Icon--16,
|
|
66
73
|
.IconButton--sizeY-compact .Icon--16.Icon--w-8 {
|
|
67
74
|
padding: 14px;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
.InitialsAvatar {
|
|
2
|
+
overflow: hidden;
|
|
3
|
+
background: #99a2ad;
|
|
4
|
+
background: linear-gradient(135deg, #b1b6bd, #99a2ad);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.InitialsAvatar__text {
|
|
8
|
+
font-family: var(--font-tt);
|
|
9
|
+
font-weight: 600;
|
|
10
|
+
color: var(--white); /* stylelint-disable-line plugin/only-tokens-are-allowed */
|
|
11
|
+
text-transform: uppercase;
|
|
12
|
+
text-align: center;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.InitialsAvatar--color-red {
|
|
16
|
+
background: #e52e40;
|
|
17
|
+
background: linear-gradient(135deg, #ff7583, #e52e40);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.InitialsAvatar--color-pink {
|
|
21
|
+
background: #e62e6b;
|
|
22
|
+
background: linear-gradient(135deg, #ff8880, #e62e6b);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.InitialsAvatar--color-orange {
|
|
26
|
+
background: #e66b2e;
|
|
27
|
+
background: linear-gradient(135deg, #ffbf80, #e66b2e);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.InitialsAvatar--color-yellow {
|
|
31
|
+
background: #e7a902;
|
|
32
|
+
background: linear-gradient(135deg, #ffd54f, #e7a902);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.InitialsAvatar--color-green {
|
|
36
|
+
background: #6cd97e;
|
|
37
|
+
background: linear-gradient(135deg, #6cd97e, #12b212);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.InitialsAvatar--color-l-blue {
|
|
41
|
+
background: #2bb4d6;
|
|
42
|
+
background: linear-gradient(135deg, #7df1fa, #2bb4d6);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.InitialsAvatar--color-blue {
|
|
46
|
+
background: #3f8ae0;
|
|
47
|
+
background: linear-gradient(135deg, #6cf, #3f8ae0);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.InitialsAvatar--color-violet {
|
|
51
|
+
background: #8f3fe0;
|
|
52
|
+
background: linear-gradient(135deg, #d3a6ff, #8f3fe0);
|
|
53
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { HasRootRef } from '../../types';
|
|
3
|
+
import { classNames } from '../../lib/classNames';
|
|
4
|
+
import Avatar, { AVATAR_DEFAULT_SHADOW, AVATAR_DEFAULT_SIZE } from '../Avatar/Avatar';
|
|
5
|
+
import './InitialsAvatar.css';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Градиенты, которые можно использовать в алгоритме поиска градиентов по числовому идентификатору пользователя.
|
|
9
|
+
* @example user.id % 6 + 1
|
|
10
|
+
*/
|
|
11
|
+
export type InitialsAvatarNumberGradients = 1 | 2 | 3 | 4 | 5 | 6;
|
|
12
|
+
export type InitialsAvatarTextGradients =
|
|
13
|
+
| 'red'
|
|
14
|
+
| 'pink'
|
|
15
|
+
| 'orange'
|
|
16
|
+
| 'yellow'
|
|
17
|
+
| 'green'
|
|
18
|
+
| 'l-blue'
|
|
19
|
+
| 'blue'
|
|
20
|
+
| 'violet';
|
|
21
|
+
|
|
22
|
+
export interface InitialsAvatarProps extends React.HTMLAttributes<HTMLDivElement>, HasRootRef<HTMLDivElement> {
|
|
23
|
+
children?: React.ReactNode;
|
|
24
|
+
/**
|
|
25
|
+
* `'red' | 'pink' | 'orange' | 'yellow' | 'green' | 'l-blue' | 'blue' | 'violet'`
|
|
26
|
+
*
|
|
27
|
+
* Если передано число, то оно будет сконвертировано в строчное представление цвета по следующей схеме:
|
|
28
|
+
*
|
|
29
|
+
* 1: 'red'
|
|
30
|
+
*
|
|
31
|
+
* 2: 'orange'
|
|
32
|
+
*
|
|
33
|
+
* 3: 'yellow'
|
|
34
|
+
*
|
|
35
|
+
* 4: 'green'
|
|
36
|
+
*
|
|
37
|
+
* 5: 'l-blue'
|
|
38
|
+
*
|
|
39
|
+
* 6: 'violet'
|
|
40
|
+
*/
|
|
41
|
+
gradientColor?: InitialsAvatarNumberGradients | InitialsAvatarTextGradients;
|
|
42
|
+
size?: number;
|
|
43
|
+
shadow?: boolean;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const COLORS_NUMBER_TO_TEXT_MAP: Record<InitialsAvatarNumberGradients, InitialsAvatarTextGradients> = {
|
|
47
|
+
1: 'red',
|
|
48
|
+
2: 'orange',
|
|
49
|
+
3: 'yellow',
|
|
50
|
+
4: 'green',
|
|
51
|
+
5: 'l-blue',
|
|
52
|
+
6: 'violet',
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
function getInitialsFontSize(avatarSize: number) {
|
|
56
|
+
const calculatedFontSize = Math.ceil(avatarSize * 0.36);
|
|
57
|
+
const evenFix = calculatedFontSize % 2;
|
|
58
|
+
return calculatedFontSize + evenFix;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export const InitialsAvatar: React.FC<InitialsAvatarProps> = ({
|
|
62
|
+
size = AVATAR_DEFAULT_SIZE,
|
|
63
|
+
shadow = AVATAR_DEFAULT_SHADOW,
|
|
64
|
+
children,
|
|
65
|
+
gradientColor,
|
|
66
|
+
style,
|
|
67
|
+
...restProps
|
|
68
|
+
}: InitialsAvatarProps) => {
|
|
69
|
+
const gradientName = typeof gradientColor === 'string' ? gradientColor : COLORS_NUMBER_TO_TEXT_MAP[gradientColor];
|
|
70
|
+
|
|
71
|
+
return (
|
|
72
|
+
<Avatar
|
|
73
|
+
{...restProps}
|
|
74
|
+
style={{
|
|
75
|
+
...style,
|
|
76
|
+
fontSize: getInitialsFontSize(size),
|
|
77
|
+
}}
|
|
78
|
+
shadow={shadow}
|
|
79
|
+
size={size}
|
|
80
|
+
vkuiClass={classNames(
|
|
81
|
+
'InitialsAvatar',
|
|
82
|
+
`InitialsAvatar--color-${gradientName}`,
|
|
83
|
+
)}
|
|
84
|
+
>
|
|
85
|
+
<span aria-hidden="true" vkuiClass="InitialsAvatar__text">
|
|
86
|
+
{children}
|
|
87
|
+
</span>
|
|
88
|
+
</Avatar>
|
|
89
|
+
);
|
|
90
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Компонент для отображения текстовых аватаров на фоне градиента (например, когда у пользователя нет установленного изображения).
|
|
2
|
+
Для лучшего отображения, рекомендуется использовать длину текста <b>не более 2 символов</b>.<br />
|
|
3
|
+
ВКонтакте использует формулу `user_id % 6 + 1` для определения градиента пользователя. Например, у пользователя c id 106 будет 5-й (`l-blue`) цвет градиента.
|
|
4
|
+
|
|
5
|
+
```jsx { "props": { "layout": false, "iframe": false } }
|
|
6
|
+
<div style={{ display: 'flex', padding: 12, gap: 8, flexFlow: 'row wrap' }}>
|
|
7
|
+
{[16, 20, 24, 28, 32, 36, 40, 44, 48, 56, 64, 72, 80, 88, 96].map((size) => {
|
|
8
|
+
const user = getRandomUser();
|
|
9
|
+
return (
|
|
10
|
+
<InitialsAvatar size={size} gradientColor={user.id % 6 + 1}>{user.initials}</InitialsAvatar>
|
|
11
|
+
)
|
|
12
|
+
})}
|
|
13
|
+
</div>
|
|
14
|
+
```
|