@salutejs/plasma-new-hope 0.325.0-dev.0 → 0.326.0-canary.1986.15321507276.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/cjs/components/Combobox/ComboboxNew/Combobox.css +55 -51
- package/cjs/components/Combobox/ComboboxNew/Combobox.js +5 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +8 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.styles.js +1 -1
- package/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.css +56 -0
- package/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js +44 -0
- package/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js.map +1 -0
- package/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js +53 -0
- package/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js.map +1 -0
- package/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles_1bpknuo.css +3 -0
- package/cjs/components/Pagination/Pagination.css +57 -52
- package/cjs/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +57 -52
- package/cjs/components/Select/FloatingPopover.js +9 -5
- package/cjs/components/Select/FloatingPopover.js.map +1 -1
- package/cjs/components/Select/Select.css +57 -52
- package/cjs/components/Select/Select.js +14 -5
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/Select.styles.js +17 -17
- package/cjs/components/Select/Select.styles.js.map +1 -1
- package/cjs/components/Select/Select.styles_bjoo18.css +3 -0
- package/cjs/components/Select/Select.tokens.js +9 -2
- package/cjs/components/Select/Select.tokens.js.map +1 -1
- package/cjs/components/Select/hooks/useKeyboardNavigation.js +2 -2
- package/cjs/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
- package/cjs/components/Select/ui/Inner/Inner.css +11 -10
- package/cjs/components/Select/ui/Inner/Inner.js +5 -4
- package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js +4 -4
- package/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js.map +1 -1
- package/cjs/components/Select/ui/Inner/ui/Item/Item.styles_1qpfn0s.css +11 -0
- package/cjs/components/Select/ui/SelectAll/SelectAll.css +54 -0
- package/cjs/components/Select/ui/SelectAll/SelectAll.js +44 -0
- package/cjs/components/Select/ui/SelectAll/SelectAll.js.map +1 -0
- package/cjs/components/Select/ui/SelectAll/SelectAll.styles.js +53 -0
- package/cjs/components/Select/ui/SelectAll/SelectAll.styles.js.map +1 -0
- package/cjs/components/Select/ui/SelectAll/SelectAll.styles_1puprwc.css +3 -0
- package/cjs/components/Select/ui/VirtualList/VirtualList.css +10 -10
- package/cjs/components/Table/Table.css +34 -29
- package/cjs/components/Table/ui/Cell/Cell.css +34 -29
- package/cjs/components/Table/ui/EditableCell/EditableCell.css +34 -29
- package/cjs/components/Table/ui/HeadCell/HeadCell.css +34 -29
- package/cjs/components/Table/ui/HeadCell/ui/Filter/Filter.css +34 -29
- package/cjs/index.css +23 -14
- package/emotion/cjs/components/Combobox/Combobox.template-doc.mdx +58 -0
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +4 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +8 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js +39 -0
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js +30 -0
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/index.js +11 -0
- package/emotion/cjs/components/Select/FloatingPopover.js +9 -5
- package/emotion/cjs/components/Select/Select.js +13 -5
- package/emotion/cjs/components/Select/Select.styles.js +11 -10
- package/emotion/cjs/components/Select/Select.template-doc.mdx +58 -0
- package/emotion/cjs/components/Select/Select.tokens.js +9 -2
- package/emotion/cjs/components/Select/hooks/useKeyboardNavigation.js +2 -2
- package/emotion/cjs/components/Select/ui/Inner/Inner.js +5 -4
- package/emotion/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js +14 -14
- package/emotion/cjs/components/Select/ui/SelectAll/SelectAll.js +39 -0
- package/emotion/cjs/components/Select/ui/SelectAll/SelectAll.styles.js +30 -0
- package/emotion/cjs/components/Select/ui/index.js +11 -0
- package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.config.js +15 -15
- package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.js +13 -2
- package/emotion/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +187 -0
- package/emotion/cjs/examples/plasma_b2c/components/Select/Select.config.js +24 -24
- package/emotion/cjs/examples/plasma_b2c/components/Select/Select.stories.tsx +186 -0
- package/emotion/cjs/examples/plasma_web/components/Combobox/Combobox.config.js +15 -15
- package/emotion/cjs/examples/plasma_web/components/Combobox/Combobox.js +12 -2
- package/emotion/cjs/examples/plasma_web/components/Combobox/Combobox.stories.tsx +186 -0
- package/emotion/cjs/examples/plasma_web/components/Select/Select.config.js +24 -24
- package/emotion/cjs/examples/plasma_web/components/Select/Select.stories.tsx +186 -0
- package/emotion/es/components/Combobox/Combobox.template-doc.mdx +58 -0
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +5 -2
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.tokens.js +8 -1
- package/emotion/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js +32 -0
- package/emotion/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js +23 -0
- package/emotion/es/components/Combobox/ComboboxNew/ui/index.js +2 -1
- package/emotion/es/components/Select/FloatingPopover.js +9 -5
- package/emotion/es/components/Select/Select.js +15 -7
- package/emotion/es/components/Select/Select.styles.js +10 -9
- package/emotion/es/components/Select/Select.template-doc.mdx +58 -0
- package/emotion/es/components/Select/Select.tokens.js +9 -2
- package/emotion/es/components/Select/hooks/useKeyboardNavigation.js +2 -2
- package/emotion/es/components/Select/ui/Inner/Inner.js +6 -5
- package/emotion/es/components/Select/ui/Inner/ui/Item/Item.styles.js +14 -14
- package/emotion/es/components/Select/ui/SelectAll/SelectAll.js +32 -0
- package/emotion/es/components/Select/ui/SelectAll/SelectAll.styles.js +23 -0
- package/emotion/es/components/Select/ui/index.js +2 -1
- package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.config.js +15 -15
- package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.js +10 -2
- package/emotion/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +187 -0
- package/emotion/es/examples/plasma_b2c/components/Select/Select.config.js +24 -24
- package/emotion/es/examples/plasma_b2c/components/Select/Select.stories.tsx +186 -0
- package/emotion/es/examples/plasma_web/components/Combobox/Combobox.config.js +15 -15
- package/emotion/es/examples/plasma_web/components/Combobox/Combobox.js +10 -3
- package/emotion/es/examples/plasma_web/components/Combobox/Combobox.stories.tsx +186 -0
- package/emotion/es/examples/plasma_web/components/Select/Select.config.js +24 -24
- package/emotion/es/examples/plasma_web/components/Select/Select.stories.tsx +186 -0
- package/es/components/Combobox/ComboboxNew/Combobox.css +55 -51
- package/es/components/Combobox/ComboboxNew/Combobox.js +5 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/Combobox.tokens.js +8 -1
- package/es/components/Combobox/ComboboxNew/Combobox.tokens.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/ui/Item/Item.styles.js +1 -1
- package/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.css +56 -0
- package/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js +36 -0
- package/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js.map +1 -0
- package/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js +47 -0
- package/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js.map +1 -0
- package/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles_1bpknuo.css +3 -0
- package/es/components/Pagination/Pagination.css +57 -52
- package/es/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.css +57 -52
- package/es/components/Select/FloatingPopover.js +9 -5
- package/es/components/Select/FloatingPopover.js.map +1 -1
- package/es/components/Select/Select.css +57 -52
- package/es/components/Select/Select.js +15 -6
- package/es/components/Select/Select.js.map +1 -1
- package/es/components/Select/Select.styles.js +17 -18
- package/es/components/Select/Select.styles.js.map +1 -1
- package/es/components/Select/Select.styles_bjoo18.css +3 -0
- package/es/components/Select/Select.tokens.js +9 -2
- package/es/components/Select/Select.tokens.js.map +1 -1
- package/es/components/Select/hooks/useKeyboardNavigation.js +2 -2
- package/es/components/Select/hooks/useKeyboardNavigation.js.map +1 -1
- package/es/components/Select/ui/Inner/Inner.css +11 -10
- package/es/components/Select/ui/Inner/Inner.js +6 -5
- package/es/components/Select/ui/Inner/Inner.js.map +1 -1
- package/es/components/Select/ui/Inner/ui/Item/Item.styles.js +4 -4
- package/es/components/Select/ui/Inner/ui/Item/Item.styles.js.map +1 -1
- package/es/components/Select/ui/Inner/ui/Item/Item.styles_1qpfn0s.css +11 -0
- package/es/components/Select/ui/SelectAll/SelectAll.css +54 -0
- package/es/components/Select/ui/SelectAll/SelectAll.js +36 -0
- package/es/components/Select/ui/SelectAll/SelectAll.js.map +1 -0
- package/es/components/Select/ui/SelectAll/SelectAll.styles.js +47 -0
- package/es/components/Select/ui/SelectAll/SelectAll.styles.js.map +1 -0
- package/es/components/Select/ui/SelectAll/SelectAll.styles_1puprwc.css +3 -0
- package/es/components/Select/ui/VirtualList/VirtualList.css +10 -10
- package/es/components/Table/Table.css +34 -29
- package/es/components/Table/ui/Cell/Cell.css +34 -29
- package/es/components/Table/ui/EditableCell/EditableCell.css +34 -29
- package/es/components/Table/ui/HeadCell/HeadCell.css +34 -29
- package/es/components/Table/ui/HeadCell/ui/Filter/Filter.css +34 -29
- package/es/index.css +23 -14
- package/package.json +2 -2
- package/styled-components/cjs/components/Combobox/Combobox.template-doc.mdx +58 -0
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +4 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.tokens.js +8 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js +39 -0
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js +27 -0
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/index.js +11 -0
- package/styled-components/cjs/components/Select/FloatingPopover.js +9 -5
- package/styled-components/cjs/components/Select/Select.js +13 -5
- package/styled-components/cjs/components/Select/Select.styles.js +8 -8
- package/styled-components/cjs/components/Select/Select.template-doc.mdx +58 -0
- package/styled-components/cjs/components/Select/Select.tokens.js +9 -2
- package/styled-components/cjs/components/Select/hooks/useKeyboardNavigation.js +2 -2
- package/styled-components/cjs/components/Select/ui/Inner/Inner.js +5 -4
- package/styled-components/cjs/components/Select/ui/Inner/ui/Item/Item.styles.js +3 -3
- package/styled-components/cjs/components/Select/ui/SelectAll/SelectAll.js +39 -0
- package/styled-components/cjs/components/Select/ui/SelectAll/SelectAll.styles.js +27 -0
- package/styled-components/cjs/components/Select/ui/index.js +11 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.config.js +8 -8
- package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.js +13 -2
- package/styled-components/cjs/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +187 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Select/Select.config.js +14 -14
- package/styled-components/cjs/examples/plasma_b2c/components/Select/Select.stories.tsx +186 -0
- package/styled-components/cjs/examples/plasma_web/components/Combobox/Combobox.config.js +8 -8
- package/styled-components/cjs/examples/plasma_web/components/Combobox/Combobox.js +12 -2
- package/styled-components/cjs/examples/plasma_web/components/Combobox/Combobox.stories.tsx +186 -0
- package/styled-components/cjs/examples/plasma_web/components/Select/Select.config.js +14 -14
- package/styled-components/cjs/examples/plasma_web/components/Select/Select.stories.tsx +186 -0
- package/styled-components/es/components/Combobox/Combobox.template-doc.mdx +58 -0
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +5 -2
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.tokens.js +8 -1
- package/styled-components/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.js +32 -0
- package/styled-components/es/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.js +20 -0
- package/styled-components/es/components/Combobox/ComboboxNew/ui/index.js +2 -1
- package/styled-components/es/components/Select/FloatingPopover.js +9 -5
- package/styled-components/es/components/Select/Select.js +15 -7
- package/styled-components/es/components/Select/Select.styles.js +7 -7
- package/styled-components/es/components/Select/Select.template-doc.mdx +58 -0
- package/styled-components/es/components/Select/Select.tokens.js +9 -2
- package/styled-components/es/components/Select/hooks/useKeyboardNavigation.js +2 -2
- package/styled-components/es/components/Select/ui/Inner/Inner.js +6 -5
- package/styled-components/es/components/Select/ui/Inner/ui/Item/Item.styles.js +3 -3
- package/styled-components/es/components/Select/ui/SelectAll/SelectAll.js +32 -0
- package/styled-components/es/components/Select/ui/SelectAll/SelectAll.styles.js +20 -0
- package/styled-components/es/components/Select/ui/index.js +2 -1
- package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.config.js +8 -8
- package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.js +10 -2
- package/styled-components/es/examples/plasma_b2c/components/Combobox/Combobox.stories.tsx +187 -0
- package/styled-components/es/examples/plasma_b2c/components/Select/Select.config.js +14 -14
- package/styled-components/es/examples/plasma_b2c/components/Select/Select.stories.tsx +186 -0
- package/styled-components/es/examples/plasma_web/components/Combobox/Combobox.config.js +8 -8
- package/styled-components/es/examples/plasma_web/components/Combobox/Combobox.js +10 -3
- package/styled-components/es/examples/plasma_web/components/Combobox/Combobox.stories.tsx +186 -0
- package/styled-components/es/examples/plasma_web/components/Select/Select.config.js +14 -14
- package/styled-components/es/examples/plasma_web/components/Select/Select.stories.tsx +186 -0
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.tokens.d.ts +7 -0
- package/types/components/Combobox/ComboboxNew/Combobox.tokens.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts +11 -0
- package/types/components/Combobox/ComboboxNew/Combobox.types.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.d.ts +7 -0
- package/types/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.d.ts.map +1 -0
- package/types/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.d.ts +11 -0
- package/types/components/Combobox/ComboboxNew/ui/SelectAll/SelectAll.styles.d.ts.map +1 -0
- package/types/components/Combobox/ComboboxNew/ui/index.d.ts +1 -0
- package/types/components/Combobox/ComboboxNew/ui/index.d.ts.map +1 -1
- package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts +3 -0
- package/types/components/Pagination/ui/PaginationSelectPerPage/PaginationSelectPerPage.styles.d.ts.map +1 -1
- package/types/components/Select/FloatingPopover.d.ts.map +1 -1
- package/types/components/Select/Select.d.ts.map +1 -1
- package/types/components/Select/Select.styles.d.ts +3 -1
- package/types/components/Select/Select.styles.d.ts.map +1 -1
- package/types/components/Select/Select.tokens.d.ts +7 -0
- package/types/components/Select/Select.tokens.d.ts.map +1 -1
- package/types/components/Select/Select.types.d.ts +13 -1
- package/types/components/Select/Select.types.d.ts.map +1 -1
- package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
- package/types/components/Select/ui/SelectAll/SelectAll.d.ts +7 -0
- package/types/components/Select/ui/SelectAll/SelectAll.d.ts.map +1 -0
- package/types/components/Select/ui/SelectAll/SelectAll.styles.d.ts +11 -0
- package/types/components/Select/ui/SelectAll/SelectAll.styles.d.ts.map +1 -0
- package/types/components/Select/ui/index.d.ts +1 -0
- package/types/components/Select/ui/index.d.ts.map +1 -1
- package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts +3 -0
- package/types/components/Table/ui/HeadCell/ui/Filter/Filter.styles.d.ts.map +1 -1
- package/cjs/components/Select/Select.styles_11cghkj.css +0 -2
- package/cjs/components/Select/ui/Inner/ui/Item/Item.styles_ir8fmi.css +0 -11
- package/es/components/Select/Select.styles_11cghkj.css +0 -2
- package/es/components/Select/ui/Inner/ui/Item/Item.styles_ir8fmi.css +0 -11
@@ -13,6 +13,8 @@ import { Select } from './Select';
|
|
13
13
|
type StorySelectProps = ComponentProps<typeof Select> & {
|
14
14
|
enableContentLeft?: boolean;
|
15
15
|
hasHint?: boolean;
|
16
|
+
selectAllLabel?: string;
|
17
|
+
selectAllSticky?: boolean;
|
16
18
|
};
|
17
19
|
|
18
20
|
const view = ['default', 'accent', 'secondary', 'clear', 'positive', 'warning', 'negative', 'dark', 'black', 'white'];
|
@@ -997,3 +999,187 @@ export const Common: StoryObj<StorySelectProps> = {
|
|
997
999
|
},
|
998
1000
|
render: (args) => <CommonStory {...args} />,
|
999
1001
|
};
|
1002
|
+
|
1003
|
+
const flatItems = [
|
1004
|
+
{
|
1005
|
+
value: 'north_america',
|
1006
|
+
label: 'Северная Америка',
|
1007
|
+
},
|
1008
|
+
{
|
1009
|
+
value: 'rio_de_janeiro',
|
1010
|
+
label: 'Рио-де-Жанейро',
|
1011
|
+
},
|
1012
|
+
{
|
1013
|
+
value: 'sao_paulo',
|
1014
|
+
label: 'Сан-Паулу',
|
1015
|
+
},
|
1016
|
+
{
|
1017
|
+
value: 'buenos_aires',
|
1018
|
+
label: 'Буэнос-Айрес',
|
1019
|
+
},
|
1020
|
+
{
|
1021
|
+
value: 'cordoba',
|
1022
|
+
label: 'Кордова',
|
1023
|
+
},
|
1024
|
+
{
|
1025
|
+
value: 'bogota',
|
1026
|
+
label: 'Богота',
|
1027
|
+
},
|
1028
|
+
{
|
1029
|
+
value: 'medellin',
|
1030
|
+
label: 'Медельин',
|
1031
|
+
},
|
1032
|
+
{
|
1033
|
+
value: 'paris',
|
1034
|
+
label: 'Париж',
|
1035
|
+
},
|
1036
|
+
{
|
1037
|
+
value: 'lyon',
|
1038
|
+
label: 'Лион',
|
1039
|
+
},
|
1040
|
+
{
|
1041
|
+
value: 'berlin',
|
1042
|
+
label: 'Берлин',
|
1043
|
+
},
|
1044
|
+
{
|
1045
|
+
value: 'munich',
|
1046
|
+
label: 'Мюнхен',
|
1047
|
+
},
|
1048
|
+
{
|
1049
|
+
value: 'rome',
|
1050
|
+
label: 'Рим',
|
1051
|
+
},
|
1052
|
+
{
|
1053
|
+
value: 'milan',
|
1054
|
+
label: 'Милан',
|
1055
|
+
},
|
1056
|
+
{
|
1057
|
+
value: 'madrid',
|
1058
|
+
label: 'Мадрид',
|
1059
|
+
},
|
1060
|
+
{
|
1061
|
+
value: 'barcelona',
|
1062
|
+
label: 'Барселона',
|
1063
|
+
},
|
1064
|
+
{
|
1065
|
+
value: 'london',
|
1066
|
+
label: 'Лондон',
|
1067
|
+
},
|
1068
|
+
{
|
1069
|
+
value: 'manchester',
|
1070
|
+
label: 'Манчестер',
|
1071
|
+
},
|
1072
|
+
{
|
1073
|
+
value: 'beijing',
|
1074
|
+
label: 'Пекин',
|
1075
|
+
},
|
1076
|
+
{
|
1077
|
+
value: 'shanghai',
|
1078
|
+
label: 'Шанхай',
|
1079
|
+
},
|
1080
|
+
{
|
1081
|
+
value: 'tokyo',
|
1082
|
+
label: 'Токио',
|
1083
|
+
},
|
1084
|
+
{
|
1085
|
+
value: 'osaka',
|
1086
|
+
label: 'Осака',
|
1087
|
+
},
|
1088
|
+
{
|
1089
|
+
value: 'delhi',
|
1090
|
+
label: 'Дели',
|
1091
|
+
},
|
1092
|
+
{
|
1093
|
+
value: 'mumbai',
|
1094
|
+
label: 'Мумбаи',
|
1095
|
+
},
|
1096
|
+
{
|
1097
|
+
value: 'seoul',
|
1098
|
+
label: 'Сеул',
|
1099
|
+
},
|
1100
|
+
{
|
1101
|
+
value: 'busan',
|
1102
|
+
label: 'Пусан',
|
1103
|
+
},
|
1104
|
+
{
|
1105
|
+
value: 'bangkok',
|
1106
|
+
label: 'Бангкок',
|
1107
|
+
},
|
1108
|
+
{
|
1109
|
+
value: 'phuket',
|
1110
|
+
label: 'Пхукет',
|
1111
|
+
},
|
1112
|
+
{
|
1113
|
+
value: 'africa',
|
1114
|
+
label: 'Африка',
|
1115
|
+
},
|
1116
|
+
];
|
1117
|
+
|
1118
|
+
const SelectAllStory = (args: StorySelectProps) => {
|
1119
|
+
const [value, setValue] = useState([]);
|
1120
|
+
const [checked, setChecked] = useState(false);
|
1121
|
+
const [indeterminate, setIndeterminate] = useState(false);
|
1122
|
+
|
1123
|
+
const handleClick = () => {
|
1124
|
+
if (checked && !indeterminate) {
|
1125
|
+
setValue([]);
|
1126
|
+
} else {
|
1127
|
+
setValue(flatItems.map((item) => item.value));
|
1128
|
+
}
|
1129
|
+
};
|
1130
|
+
|
1131
|
+
React.useEffect(() => {
|
1132
|
+
if (value.length === 0) {
|
1133
|
+
setChecked(false);
|
1134
|
+
setIndeterminate(false);
|
1135
|
+
} else if (value.length === flatItems.length) {
|
1136
|
+
setChecked(true);
|
1137
|
+
setIndeterminate(false);
|
1138
|
+
} else {
|
1139
|
+
setChecked(true);
|
1140
|
+
setIndeterminate(true);
|
1141
|
+
}
|
1142
|
+
}, [value]);
|
1143
|
+
|
1144
|
+
return (
|
1145
|
+
<div style={{ width: '400px' }}>
|
1146
|
+
<Select
|
1147
|
+
placeholder="Placeholder"
|
1148
|
+
multiselect
|
1149
|
+
items={flatItems}
|
1150
|
+
value={value}
|
1151
|
+
onChange={setValue}
|
1152
|
+
listOverflow="auto"
|
1153
|
+
listMaxHeight="300px"
|
1154
|
+
selectAllOptions={{
|
1155
|
+
sticky: args?.selectAllSticky || false,
|
1156
|
+
label: args?.selectAllLabel,
|
1157
|
+
checked,
|
1158
|
+
indeterminate,
|
1159
|
+
onClick: handleClick,
|
1160
|
+
}}
|
1161
|
+
/>
|
1162
|
+
</div>
|
1163
|
+
);
|
1164
|
+
};
|
1165
|
+
|
1166
|
+
export const SelectAll: StoryObj<StorySelectProps> = {
|
1167
|
+
render: (args) => <SelectAllStory {...args} />,
|
1168
|
+
argTypes: {
|
1169
|
+
selectAllSticky: {
|
1170
|
+
control: 'boolean',
|
1171
|
+
},
|
1172
|
+
selectAllLabel: {
|
1173
|
+
control: 'text',
|
1174
|
+
},
|
1175
|
+
},
|
1176
|
+
args: {
|
1177
|
+
selectAllSticky: false,
|
1178
|
+
selectAllLabel: 'Выбрать все',
|
1179
|
+
},
|
1180
|
+
parameters: {
|
1181
|
+
controls: {
|
1182
|
+
include: ['selectAllSticky', 'selectAllLabel'],
|
1183
|
+
},
|
1184
|
+
},
|
1185
|
+
};
|
@@ -436,6 +436,64 @@ type Items = Array<{
|
|
436
436
|
}
|
437
437
|
```
|
438
438
|
</TabItem>
|
439
|
+
<TabItem value="selectAll" label="Выбрать всё">
|
440
|
+
Работа с кнопкой "Выбрать всё" осуществляется через свойство `selectAllOptions` только в режиме `multiple`:
|
441
|
+
```tsx
|
442
|
+
type SelectAllProps = {
|
443
|
+
checked?: boolean;
|
444
|
+
indeterminate?: boolean;
|
445
|
+
label?: string;
|
446
|
+
onClick?: () => void;
|
447
|
+
sticky?: boolean;
|
448
|
+
};
|
449
|
+
```
|
450
|
+
Вся логика выбора элементов и взаимодействия с компонентом лежит на стороне пользователя.
|
451
|
+
|
452
|
+
```tsx live
|
453
|
+
import React, { useState } from 'react';
|
454
|
+
import { Select } from '@salutejs/{{ package }}';
|
455
|
+
|
456
|
+
export function App() {
|
457
|
+
const [checked, setChecked] = useState(false);
|
458
|
+
|
459
|
+
const items = [
|
460
|
+
{
|
461
|
+
value: 'north_america',
|
462
|
+
label: 'Северная Америка',
|
463
|
+
},
|
464
|
+
{
|
465
|
+
value: 'south_america',
|
466
|
+
label: 'Южная Америка',
|
467
|
+
items: [
|
468
|
+
{
|
469
|
+
value: 'brazil',
|
470
|
+
label: 'Бразилия',
|
471
|
+
},
|
472
|
+
{
|
473
|
+
value: 'argentina',
|
474
|
+
label: 'Аргентина',
|
475
|
+
},
|
476
|
+
],
|
477
|
+
},
|
478
|
+
];
|
479
|
+
|
480
|
+
return (
|
481
|
+
<div style={{ display: "flex", gap: "30px", height: "300px" }}>
|
482
|
+
<Combobox
|
483
|
+
label="Label"
|
484
|
+
placeholder="Placeholder"
|
485
|
+
items={items}
|
486
|
+
multiple
|
487
|
+
selectAllOptions={{
|
488
|
+
checked,
|
489
|
+
onClick: () => setChecked(prev => !prev)
|
490
|
+
}}
|
491
|
+
/>
|
492
|
+
</div>
|
493
|
+
);
|
494
|
+
}
|
495
|
+
```
|
496
|
+
</TabItem>
|
439
497
|
</Tabs>
|
440
498
|
|
441
499
|
## Использование с React Hook Form и нативной формой
|
@@ -22,7 +22,7 @@ import { classes } from "./Combobox.tokens";
|
|
22
22
|
import { FloatingPopover } from "./FloatingPopover";
|
23
23
|
import { useKeyNavigation, getItemByFocused } from "./hooks/useKeyboardNavigation";
|
24
24
|
import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, filterItems, getItemId, getRemovedElement } from "./utils";
|
25
|
-
import { Inner, StyledTextField, VirtualList } from "./ui";
|
25
|
+
import { Inner, StyledTextField, VirtualList, SelectAll } from "./ui";
|
26
26
|
import { pathReducer, focusedPathReducer } from "./reducers";
|
27
27
|
import { getPathMap, getTreeMaps } from "./hooks/getPathMaps";
|
28
28
|
import { Ul, base, StyledArrow, IconArrowWrapper, StyledEmptyState, StyledLeftHelper } from "./Combobox.styles";
|
@@ -543,7 +543,10 @@ export var comboboxRoot = function comboboxRoot(Root) {
|
|
543
543
|
className: classes.emptyStateWrapper,
|
544
544
|
size: size,
|
545
545
|
description: emptyStateDescription || 'Ничего не найдено'
|
546
|
-
}) : /*#__PURE__*/React.createElement(React.Fragment, null,
|
546
|
+
}) : /*#__PURE__*/React.createElement(React.Fragment, null, props.multiple && props.selectAllOptions && /*#__PURE__*/React.createElement(SelectAll, {
|
547
|
+
selectAllOptions: props.selectAllOptions,
|
548
|
+
variant: variant
|
549
|
+
}), virtual ? /*#__PURE__*/React.createElement(VirtualList, {
|
547
550
|
items: filteredItems,
|
548
551
|
listMaxHeight: listMaxHeight || listHeight,
|
549
552
|
onScroll: onScroll
|
@@ -217,7 +217,14 @@ export var tokens = {
|
|
217
217
|
disclosureIconColor: '--plasma-combobox-disclosure-icon-color',
|
218
218
|
disclosureIconColorHover: '--plasma-combobox-disclosure-icon-color-hover',
|
219
219
|
disclosureIconSize: '--plasma-select-disclosure-icon-size',
|
220
|
-
disclosureIconMargin: '--plasma-select-disclosure-icon-margin'
|
220
|
+
disclosureIconMargin: '--plasma-select-disclosure-icon-margin',
|
221
|
+
dividerMarginTop: '--plasma-combobox-divider-margin-top',
|
222
|
+
dividerMarginTopTight: '--plasma-combobox-divider-margin-top-tight',
|
223
|
+
dividerMarginRight: '--plasma-combobox-divider-margin-right',
|
224
|
+
dividerMarginBottom: '--plasma-combobox-divider-margin-bottom',
|
225
|
+
dividerMarginBottomTight: '--plasma-combobox-divider-margin-bottom-tight',
|
226
|
+
dividerMarginLeft: '--plasma-combobox-divider-margin-left',
|
227
|
+
dividerColor: '--plasma-combobox-divider-color'
|
221
228
|
};
|
222
229
|
export var constants = {
|
223
230
|
focusColor: '--surface-accent',
|
@@ -0,0 +1,32 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { IconWrapper, StyledCell, StyledCheckbox, StyledCheckboxWrapper, StyledWrapper, Wrapper as ItemWrapper } from "../Inner/ui/Item/Item.styles";
|
3
|
+
import { Divider, Wrapper, DividerWrapper } from "./SelectAll.styles";
|
4
|
+
export var SelectAll = function SelectAll(_ref) {
|
5
|
+
var variant = _ref.variant,
|
6
|
+
selectAllOptions = _ref.selectAllOptions;
|
7
|
+
return /*#__PURE__*/React.createElement(Wrapper, {
|
8
|
+
variant: variant,
|
9
|
+
onClick: selectAllOptions === null || selectAllOptions === void 0 ? void 0 : selectAllOptions.onClick,
|
10
|
+
sticky: selectAllOptions === null || selectAllOptions === void 0 ? void 0 : selectAllOptions.sticky
|
11
|
+
}, /*#__PURE__*/React.createElement(ItemWrapper, {
|
12
|
+
variant: variant
|
13
|
+
}, /*#__PURE__*/React.createElement(IconWrapper, {
|
14
|
+
variant: variant
|
15
|
+
}, /*#__PURE__*/React.createElement(StyledCheckboxWrapper, {
|
16
|
+
onClick: function onClick(e) {
|
17
|
+
return e.preventDefault();
|
18
|
+
}
|
19
|
+
}, /*#__PURE__*/React.createElement(StyledCheckbox, {
|
20
|
+
checked: selectAllOptions === null || selectAllOptions === void 0 ? void 0 : selectAllOptions.checked,
|
21
|
+
indeterminate: selectAllOptions === null || selectAllOptions === void 0 ? void 0 : selectAllOptions.indeterminate,
|
22
|
+
appearance: "default"
|
23
|
+
}))), /*#__PURE__*/React.createElement(StyledWrapper, null, /*#__PURE__*/React.createElement(StyledCell
|
24
|
+
// TODO: #1548
|
25
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
26
|
+
// @ts-ignore
|
27
|
+
, {
|
28
|
+
title: /*#__PURE__*/React.createElement("span", null, (selectAllOptions === null || selectAllOptions === void 0 ? void 0 : selectAllOptions.label) || 'Выбрать всё')
|
29
|
+
}))), /*#__PURE__*/React.createElement(DividerWrapper, null, /*#__PURE__*/React.createElement(Divider, {
|
30
|
+
variant: variant
|
31
|
+
})));
|
32
|
+
};
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import _styled from "@emotion/styled/base";
|
2
|
+
import { tokens, constants } from "../../Combobox.tokens";
|
3
|
+
export var Wrapper = /*#__PURE__*/_styled("div", {
|
4
|
+
target: "e1syfhrs2",
|
5
|
+
label: "plasma-new-hope__Wrapper"
|
6
|
+
})("position:", function (_ref) {
|
7
|
+
var sticky = _ref.sticky;
|
8
|
+
return sticky ? 'sticky' : 'static';
|
9
|
+
}, ";z-index:10;top:0;display:flex;flex-direction:column;background:var(", constants.background, ");margin-bottom:", function (_ref2) {
|
10
|
+
var variant = _ref2.variant;
|
11
|
+
return "var(".concat(variant === 'tight' ? tokens.dividerMarginBottomTight : tokens.dividerMarginBottom, ")");
|
12
|
+
}, ";border-top-left-radius:calc(var(", tokens.borderRadius, ") - 0.125rem - var(", tokens.dropdownBorderWidth, ", 0rem));border-top-right-radius:calc(var(", tokens.borderRadius, ") - 0.125rem - var(", tokens.dropdownBorderWidth, ", 0rem));" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ29tYm9ib3gvQ29tYm9ib3hOZXcvdWkvU2VsZWN0QWxsL1NlbGVjdEFsbC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSzBGIiwiZmlsZSI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ29tYm9ib3gvQ29tYm9ib3hOZXcvdWkvU2VsZWN0QWxsL1NlbGVjdEFsbC5zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5cbmltcG9ydCB7IENvbWJvYm94UHJvcHMgfSBmcm9tICcuLi8uLi9Db21ib2JveC50eXBlcyc7XG5pbXBvcnQgeyB0b2tlbnMsIGNvbnN0YW50cyB9IGZyb20gJy4uLy4uL0NvbWJvYm94LnRva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBXcmFwcGVyID0gc3R5bGVkLmRpdjx7IHZhcmlhbnQ6IENvbWJvYm94UHJvcHNbJ3ZhcmlhbnQnXTsgc3RpY2t5PzogYm9vbGVhbiB9PmBcbiAgICBwb3NpdGlvbjogJHsoeyBzdGlja3kgfSkgPT4gKHN0aWNreSA/ICdzdGlja3knIDogJ3N0YXRpYycpfTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6IHZhcigke2NvbnN0YW50cy5iYWNrZ3JvdW5kfSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJHsoeyB2YXJpYW50IH0pID0+XG4gICAgICAgIGB2YXIoJHt2YXJpYW50ID09PSAndGlnaHQnID8gdG9rZW5zLmRpdmlkZXJNYXJnaW5Cb3R0b21UaWdodCA6IHRva2Vucy5kaXZpZGVyTWFyZ2luQm90dG9tfSlgfTtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKHZhcigke3Rva2Vucy5ib3JkZXJSYWRpdXN9KSAtIDAuMTI1cmVtIC0gdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSk7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IGNhbGModmFyKCR7dG9rZW5zLmJvcmRlclJhZGl1c30pIC0gMC4xMjVyZW0gLSB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJXaWR0aH0sIDByZW0pKTtcbmA7XG5cbmV4cG9ydCBjb25zdCBEaXZpZGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gICAgbWFyZ2luOiAwIGNhbGMoMC4xMjVyZW0gKyB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJXaWR0aH0sIDByZW0pKTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHtjb25zdGFudHMuYmFja2dyb3VuZH0pO1xuYDtcblxuZXhwb3J0IGNvbnN0IERpdmlkZXIgPSBzdHlsZWQuZGl2PHsgdmFyaWFudDogQ29tYm9ib3hQcm9wc1sndmFyaWFudCddIH0+YFxuICAgIGhlaWdodDogMC4wNjI1cmVtO1xuICAgIG1hcmdpbi10b3A6ICR7KHsgdmFyaWFudCB9KSA9PlxuICAgICAgICBgdmFyKCR7dmFyaWFudCA9PT0gJ3RpZ2h0JyA/IHRva2Vucy5kaXZpZGVyTWFyZ2luVG9wVGlnaHQgOiB0b2tlbnMuZGl2aWRlck1hcmdpblRvcH0pYH07XG4gICAgbWFyZ2luLXJpZ2h0OiB2YXIoJHt0b2tlbnMuZGl2aWRlck1hcmdpblJpZ2h0fSk7XG4gICAgbWFyZ2luLWxlZnQ6IHZhcigke3Rva2Vucy5kaXZpZGVyTWFyZ2luTGVmdH0pO1xuICAgIGJhY2tncm91bmQ6IHZhcigke3Rva2Vucy5kaXZpZGVyQ29sb3J9KTtcbmA7XG4iXX0= */"));
|
13
|
+
export var DividerWrapper = /*#__PURE__*/_styled("div", {
|
14
|
+
target: "e1syfhrs1",
|
15
|
+
label: "plasma-new-hope__DividerWrapper"
|
16
|
+
})("margin:0 calc(0.125rem + var(", tokens.dropdownBorderWidth, ", 0rem));background:var(", constants.background, ");" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ29tYm9ib3gvQ29tYm9ib3hOZXcvdWkvU2VsZWN0QWxsL1NlbGVjdEFsbC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0J3QyIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0NvbWJvYm94L0NvbWJvYm94TmV3L3VpL1NlbGVjdEFsbC9TZWxlY3RBbGwuc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQgeyBDb21ib2JveFByb3BzIH0gZnJvbSAnLi4vLi4vQ29tYm9ib3gudHlwZXMnO1xuaW1wb3J0IHsgdG9rZW5zLCBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9Db21ib2JveC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgV3JhcHBlciA9IHN0eWxlZC5kaXY8eyB2YXJpYW50OiBDb21ib2JveFByb3BzWyd2YXJpYW50J107IHN0aWNreT86IGJvb2xlYW4gfT5gXG4gICAgcG9zaXRpb246ICR7KHsgc3RpY2t5IH0pID0+IChzdGlja3kgPyAnc3RpY2t5JyA6ICdzdGF0aWMnKX07XG4gICAgei1pbmRleDogMTA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHtjb25zdGFudHMuYmFja2dyb3VuZH0pO1xuICAgIG1hcmdpbi1ib3R0b206ICR7KHsgdmFyaWFudCB9KSA9PlxuICAgICAgICBgdmFyKCR7dmFyaWFudCA9PT0gJ3RpZ2h0JyA/IHRva2Vucy5kaXZpZGVyTWFyZ2luQm90dG9tVGlnaHQgOiB0b2tlbnMuZGl2aWRlck1hcmdpbkJvdHRvbX0pYH07XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyh2YXIoJHt0b2tlbnMuYm9yZGVyUmFkaXVzfSkgLSAwLjEyNXJlbSAtIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlcldpZHRofSwgMHJlbSkpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKHZhcigke3Rva2Vucy5ib3JkZXJSYWRpdXN9KSAtIDAuMTI1cmVtIC0gdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSk7XG5gO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICAgIG1hcmdpbjogMCBjYWxjKDAuMTI1cmVtICsgdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSk7XG4gICAgYmFja2dyb3VuZDogdmFyKCR7Y29uc3RhbnRzLmJhY2tncm91bmR9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBEaXZpZGVyID0gc3R5bGVkLmRpdjx7IHZhcmlhbnQ6IENvbWJvYm94UHJvcHNbJ3ZhcmlhbnQnXSB9PmBcbiAgICBoZWlnaHQ6IDAuMDYyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAkeyh7IHZhcmlhbnQgfSkgPT5cbiAgICAgICAgYHZhcigke3ZhcmlhbnQgPT09ICd0aWdodCcgPyB0b2tlbnMuZGl2aWRlck1hcmdpblRvcFRpZ2h0IDogdG9rZW5zLmRpdmlkZXJNYXJnaW5Ub3B9KWB9O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKCR7dG9rZW5zLmRpdmlkZXJNYXJnaW5SaWdodH0pO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoJHt0b2tlbnMuZGl2aWRlck1hcmdpbkxlZnR9KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMuZGl2aWRlckNvbG9yfSk7XG5gO1xuIl19 */"));
|
17
|
+
export var Divider = /*#__PURE__*/_styled("div", {
|
18
|
+
target: "e1syfhrs0",
|
19
|
+
label: "plasma-new-hope__Divider"
|
20
|
+
})("height:0.0625rem;margin-top:", function (_ref3) {
|
21
|
+
var variant = _ref3.variant;
|
22
|
+
return "var(".concat(variant === 'tight' ? tokens.dividerMarginTopTight : tokens.dividerMarginTop, ")");
|
23
|
+
}, ";margin-right:var(", tokens.dividerMarginRight, ");margin-left:var(", tokens.dividerMarginLeft, ");background:var(", tokens.dividerColor, ");" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvQ29tYm9ib3gvQ29tYm9ib3hOZXcvdWkvU2VsZWN0QWxsL1NlbGVjdEFsbC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUJ3RSIsImZpbGUiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL0NvbWJvYm94L0NvbWJvYm94TmV3L3VpL1NlbGVjdEFsbC9TZWxlY3RBbGwuc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuXG5pbXBvcnQgeyBDb21ib2JveFByb3BzIH0gZnJvbSAnLi4vLi4vQ29tYm9ib3gudHlwZXMnO1xuaW1wb3J0IHsgdG9rZW5zLCBjb25zdGFudHMgfSBmcm9tICcuLi8uLi9Db21ib2JveC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgV3JhcHBlciA9IHN0eWxlZC5kaXY8eyB2YXJpYW50OiBDb21ib2JveFByb3BzWyd2YXJpYW50J107IHN0aWNreT86IGJvb2xlYW4gfT5gXG4gICAgcG9zaXRpb246ICR7KHsgc3RpY2t5IH0pID0+IChzdGlja3kgPyAnc3RpY2t5JyA6ICdzdGF0aWMnKX07XG4gICAgei1pbmRleDogMTA7XG4gICAgdG9wOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHtjb25zdGFudHMuYmFja2dyb3VuZH0pO1xuICAgIG1hcmdpbi1ib3R0b206ICR7KHsgdmFyaWFudCB9KSA9PlxuICAgICAgICBgdmFyKCR7dmFyaWFudCA9PT0gJ3RpZ2h0JyA/IHRva2Vucy5kaXZpZGVyTWFyZ2luQm90dG9tVGlnaHQgOiB0b2tlbnMuZGl2aWRlck1hcmdpbkJvdHRvbX0pYH07XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogY2FsYyh2YXIoJHt0b2tlbnMuYm9yZGVyUmFkaXVzfSkgLSAwLjEyNXJlbSAtIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlcldpZHRofSwgMHJlbSkpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBjYWxjKHZhcigke3Rva2Vucy5ib3JkZXJSYWRpdXN9KSAtIDAuMTI1cmVtIC0gdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSk7XG5gO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICAgIG1hcmdpbjogMCBjYWxjKDAuMTI1cmVtICsgdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSk7XG4gICAgYmFja2dyb3VuZDogdmFyKCR7Y29uc3RhbnRzLmJhY2tncm91bmR9KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBEaXZpZGVyID0gc3R5bGVkLmRpdjx7IHZhcmlhbnQ6IENvbWJvYm94UHJvcHNbJ3ZhcmlhbnQnXSB9PmBcbiAgICBoZWlnaHQ6IDAuMDYyNXJlbTtcbiAgICBtYXJnaW4tdG9wOiAkeyh7IHZhcmlhbnQgfSkgPT5cbiAgICAgICAgYHZhcigke3ZhcmlhbnQgPT09ICd0aWdodCcgPyB0b2tlbnMuZGl2aWRlck1hcmdpblRvcFRpZ2h0IDogdG9rZW5zLmRpdmlkZXJNYXJnaW5Ub3B9KWB9O1xuICAgIG1hcmdpbi1yaWdodDogdmFyKCR7dG9rZW5zLmRpdmlkZXJNYXJnaW5SaWdodH0pO1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoJHt0b2tlbnMuZGl2aWRlck1hcmdpbkxlZnR9KTtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHt0b2tlbnMuZGl2aWRlckNvbG9yfSk7XG5gO1xuIl19 */"));
|
@@ -8,6 +8,8 @@ import { flip, shift, size, useFloating, FloatingPortal, offset as offsetMiddlew
|
|
8
8
|
import React, { forwardRef } from 'react';
|
9
9
|
import { safeUseId } from '@salutejs/plasma-core';
|
10
10
|
import { getPlacement, getFallbackPlacements } from "./utils";
|
11
|
+
// TODO: #2003
|
12
|
+
var LIST_PADDING = 2;
|
11
13
|
var FloatingPopover = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
12
14
|
var target = _ref.target,
|
13
15
|
children = _ref.children,
|
@@ -16,9 +18,8 @@ var FloatingPopover = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
16
18
|
placement = _ref.placement,
|
17
19
|
portal = _ref.portal,
|
18
20
|
listWidth = _ref.listWidth,
|
19
|
-
|
20
|
-
|
21
|
-
zIndex = _ref.zIndex;
|
21
|
+
zIndex = _ref.zIndex,
|
22
|
+
isInner = _ref.isInner;
|
22
23
|
var _useFloating = useFloating({
|
23
24
|
whileElementsMounted: function whileElementsMounted(referenceEl, floatingEl, update) {
|
24
25
|
return autoUpdate(referenceEl, floatingEl, update, {
|
@@ -29,14 +30,17 @@ var FloatingPopover = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
29
30
|
},
|
30
31
|
placement: getPlacement(placement),
|
31
32
|
open: opened,
|
32
|
-
middleware: [offsetMiddleware(
|
33
|
+
middleware: [offsetMiddleware({
|
34
|
+
mainAxis: isInner ? 4 : 0,
|
35
|
+
alignmentAxis: isInner ? -LIST_PADDING : 0
|
36
|
+
}), flip({
|
33
37
|
fallbackPlacements: getFallbackPlacements(placement)
|
34
38
|
}), shift(), size({
|
35
39
|
apply: function apply(_ref2) {
|
36
40
|
var rects = _ref2.rects,
|
37
41
|
elements = _ref2.elements;
|
38
42
|
Object.assign(elements.floating.style, {
|
39
|
-
width: listWidth || "".concat(rects.reference.width, "px")
|
43
|
+
width: listWidth || "".concat(isInner ? rects.reference.width + LIST_PADDING * 2 : rects.reference.width, "px")
|
40
44
|
});
|
41
45
|
}
|
42
46
|
})]
|
@@ -15,10 +15,10 @@ import { isEmpty } from "../../utils";
|
|
15
15
|
import { useOutsideClick } from "../../hooks";
|
16
16
|
import { useKeyNavigation, getItemByFocused } from "./hooks/useKeyboardNavigation";
|
17
17
|
import { initialItemsTransform, updateAncestors, updateDescendants, updateSingleAncestors, getView } from "./utils";
|
18
|
-
import { Inner, Target, VirtualList } from "./ui";
|
18
|
+
import { Inner, Target, VirtualList, SelectAll } from "./ui";
|
19
19
|
import { pathReducer, focusedPathReducer } from "./reducers";
|
20
20
|
import { usePathMaps } from "./hooks/usePathMaps";
|
21
|
-
import { Ul, base } from "./Select.styles";
|
21
|
+
import { Ul, base, ListWrapper } from "./Select.styles";
|
22
22
|
import { FloatingPopover } from "./FloatingPopover";
|
23
23
|
import { SelectNative } from "./ui/SelectNative/SelectNative";
|
24
24
|
import { Context } from "./Select.context";
|
@@ -402,7 +402,8 @@ export var selectRoot = function selectRoot(Root) {
|
|
402
402
|
hintProps: hintProps
|
403
403
|
});
|
404
404
|
},
|
405
|
-
zIndex: zIndex
|
405
|
+
zIndex: zIndex,
|
406
|
+
isInner: false
|
406
407
|
}, /*#__PURE__*/React.createElement(Root, _extends({
|
407
408
|
view: view,
|
408
409
|
size: size,
|
@@ -410,17 +411,24 @@ export var selectRoot = function selectRoot(Root) {
|
|
410
411
|
chipView: chipView,
|
411
412
|
disabled: disabled,
|
412
413
|
readOnly: readOnly
|
413
|
-
}, rest), /*#__PURE__*/React.createElement(
|
414
|
+
}, rest), /*#__PURE__*/React.createElement(ListWrapper, {
|
415
|
+
listWidth: listWidth
|
416
|
+
}, /*#__PURE__*/React.createElement(Ul, {
|
414
417
|
role: "tree",
|
415
418
|
id: "".concat(treeId, "_tree_level_1"),
|
416
419
|
"aria-multiselectable": Boolean(props.multiselect),
|
417
420
|
listOverflow: listOverflow,
|
418
421
|
listMaxHeight: listMaxHeight || listHeight,
|
419
422
|
onScroll: virtual ? undefined : handleScroll,
|
420
|
-
listWidth: listWidth,
|
421
423
|
ref: targetRef,
|
422
424
|
virtual: virtual
|
423
|
-
}, beforeList,
|
425
|
+
}, beforeList, props.multiselect && props.selectAllOptions &&
|
426
|
+
/*#__PURE__*/
|
427
|
+
// TODO: #2004
|
428
|
+
React.createElement(SelectAll, {
|
429
|
+
selectAllOptions: props.selectAllOptions,
|
430
|
+
variant: variant
|
431
|
+
}), virtual ? /*#__PURE__*/React.createElement(VirtualList, {
|
424
432
|
items: transformedItems,
|
425
433
|
listMaxHeight: listMaxHeight || listHeight,
|
426
434
|
onScroll: onScroll
|
@@ -434,7 +442,7 @@ export var selectRoot = function selectRoot(Root) {
|
|
434
442
|
index: index,
|
435
443
|
listWidth: listWidth
|
436
444
|
});
|
437
|
-
}), afterList)))));
|
445
|
+
}), afterList))))));
|
438
446
|
});
|
439
447
|
};
|
440
448
|
export var selectConfig = {
|
@@ -2,13 +2,17 @@ import _styled from "@emotion/styled/base";
|
|
2
2
|
import { css } from '@emotion/react';
|
3
3
|
import { getCorrectHeight } from "./utils";
|
4
4
|
import { tokens, constants } from "./Select.tokens";
|
5
|
+
export var ListWrapper = /*#__PURE__*/_styled("div", {
|
6
|
+
target: "e1ea4cwt1",
|
7
|
+
label: "plasma-new-hope__ListWrapper"
|
8
|
+
})("width:", function (_ref) {
|
9
|
+
var listWidth = _ref.listWidth;
|
10
|
+
return listWidth || '100%';
|
11
|
+
}, ";padding:calc(var(", tokens.padding, ") + var(", tokens.dropdownBorderWidth, ", 0rem));border-radius:var(", tokens.borderRadius, ");box-sizing:border-box;background:var(", constants.background, ");box-shadow:", constants.boxShadow, ",inset 0 0 0 var(", tokens.dropdownBorderWidth, ", 0rem) var(", tokens.dropdownBorderColor, ", transparent);" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0UiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LnN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgZ2V0Q29ycmVjdEhlaWdodCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0UHJvcHMgfSBmcm9tICcuL1NlbGVjdC50eXBlcyc7XG5pbXBvcnQgeyB0b2tlbnMsIGNvbnN0YW50cyB9IGZyb20gJy4vU2VsZWN0LnRva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBMaXN0V3JhcHBlciA9IHN0eWxlZC5kaXY8e1xuICAgIGxpc3RXaWR0aD86IFNlbGVjdFByb3BzWydsaXN0V2lkdGgnXTtcbn0+YFxuICAgIHdpZHRoOiAkeyh7IGxpc3RXaWR0aCB9KSA9PiBsaXN0V2lkdGggfHwgJzEwMCUnfTtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigke3Rva2Vucy5wYWRkaW5nfSkgKyB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJXaWR0aH0sIDByZW0pKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoJHt0b2tlbnMuYm9yZGVyUmFkaXVzfSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHtjb25zdGFudHMuYmFja2dyb3VuZH0pO1xuICAgIGJveC1zaGFkb3c6ICR7Y29uc3RhbnRzLmJveFNoYWRvd30sXG4gICAgICAgIGluc2V0IDAgMCAwIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlcldpZHRofSwgMHJlbSkgdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyQ29sb3J9LCB0cmFuc3BhcmVudCk7XG5gO1xuXG5leHBvcnQgY29uc3QgVWwgPSBzdHlsZWQudWw8e1xuICAgIHZpcnR1YWw6IFNlbGVjdFByb3BzWyd2aXJ0dWFsJ107XG4gICAgbGlzdE92ZXJmbG93PzogU2VsZWN0UHJvcHNbJ2xpc3RPdmVyZmxvdyddO1xuICAgIGxpc3RNYXhIZWlnaHQ/OiBTZWxlY3RQcm9wc1snbGlzdE1heEhlaWdodCddO1xuICAgIGlzSW5uZXJVbD86IGJvb2xlYW47XG59PmBcbiAgICBtYXgtaGVpZ2h0OiAkeyh7IHZpcnR1YWwsIGxpc3RNYXhIZWlnaHQgfSkgPT5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICAgIHZpcnR1YWwgPyAnYXV0bycgOiBsaXN0TWF4SGVpZ2h0ID8gZ2V0Q29ycmVjdEhlaWdodChsaXN0TWF4SGVpZ2h0KSA6ICdhdXRvJ307XG4gICAgb3ZlcmZsb3cteTogJHsoeyB2aXJ0dWFsLCBsaXN0T3ZlcmZsb3cgfSkgPT4gKHZpcnR1YWwgPyAndmlzaWJsZScgOiBsaXN0T3ZlcmZsb3cgfHwgJ3Zpc2libGUnKX07XG4gICAgYm9yZGVyLXJhZGl1czogY2FsYyh2YXIoJHt0b2tlbnMuYm9yZGVyUmFkaXVzfSkgLSAwLjEyNXJlbSAtIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlcldpZHRofSwgMHJlbSkpO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuYDtcblxuZXhwb3J0IGNvbnN0IGJhc2UgPSBjc3NgYDtcbiJdfQ== */"));
|
5
12
|
export var Ul = /*#__PURE__*/_styled("ul", {
|
6
13
|
target: "e1ea4cwt0",
|
7
14
|
label: "plasma-new-hope__Ul"
|
8
|
-
})("
|
9
|
-
var listWidth = _ref.listWidth;
|
10
|
-
return listWidth || '100%';
|
11
|
-
}, ";max-height:", function (_ref2) {
|
15
|
+
})("max-height:", function (_ref2) {
|
12
16
|
var virtual = _ref2.virtual,
|
13
17
|
listMaxHeight = _ref2.listMaxHeight;
|
14
18
|
return (
|
@@ -19,8 +23,5 @@ export var Ul = /*#__PURE__*/_styled("ul", {
|
|
19
23
|
var virtual = _ref3.virtual,
|
20
24
|
listOverflow = _ref3.listOverflow;
|
21
25
|
return virtual ? 'visible' : listOverflow || 'visible';
|
22
|
-
}, ";
|
23
|
-
|
24
|
-
return isInnerUl ? "calc(var(".concat(tokens.padding, ") * -1) 0 0 0") : "var(".concat(tokens.margin, ") 0 0 0");
|
25
|
-
}, ";padding:calc(var(", tokens.padding, ") + var(", tokens.dropdownBorderWidth, ", 0rem)) 0;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUUiLCJmaWxlIjoiLi4vLi4vLi4vLi4vc3JjLWVtb3Rpb24vY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0LnN0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuaW1wb3J0IHsgZ2V0Q29ycmVjdEhlaWdodCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0UHJvcHMgfSBmcm9tICcuL1NlbGVjdC50eXBlcyc7XG5pbXBvcnQgeyB0b2tlbnMsIGNvbnN0YW50cyB9IGZyb20gJy4vU2VsZWN0LnRva2Vucyc7XG5cbmV4cG9ydCBjb25zdCBVbCA9IHN0eWxlZC51bDx7XG4gICAgdmlydHVhbDogU2VsZWN0UHJvcHNbJ3ZpcnR1YWwnXTtcbiAgICBsaXN0T3ZlcmZsb3c/OiBTZWxlY3RQcm9wc1snbGlzdE92ZXJmbG93J107XG4gICAgbGlzdE1heEhlaWdodD86IFNlbGVjdFByb3BzWydsaXN0TWF4SGVpZ2h0J107XG4gICAgbGlzdFdpZHRoPzogU2VsZWN0UHJvcHNbJ2xpc3RXaWR0aCddO1xuICAgIGlzSW5uZXJVbD86IGJvb2xlYW47XG59PmBcbiAgICBiYWNrZ3JvdW5kOiB2YXIoJHtjb25zdGFudHMuYmFja2dyb3VuZH0pO1xuICAgIGJveC1zaGFkb3c6ICR7Y29uc3RhbnRzLmJveFNoYWRvd30sXG4gICAgICAgIGluc2V0IDAgMCAwIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlcldpZHRofSwgMHJlbSkgdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyQ29sb3J9LCB0cmFuc3BhcmVudCk7XG5cbiAgICBib3JkZXItcmFkaXVzOiB2YXIoJHt0b2tlbnMuYm9yZGVyUmFkaXVzfSk7XG4gICAgd2lkdGg6ICR7KHsgbGlzdFdpZHRoIH0pID0+IGxpc3RXaWR0aCB8fCAnMTAwJSd9O1xuXG4gICAgbWF4LWhlaWdodDogJHsoeyB2aXJ0dWFsLCBsaXN0TWF4SGVpZ2h0IH0pID0+XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICAgICAgICB2aXJ0dWFsID8gJ2F1dG8nIDogbGlzdE1heEhlaWdodCA/IGdldENvcnJlY3RIZWlnaHQobGlzdE1heEhlaWdodCkgOiAnYXV0byd9O1xuICAgIG92ZXJmbG93LXk6ICR7KHsgdmlydHVhbCwgbGlzdE92ZXJmbG93IH0pID0+ICh2aXJ0dWFsID8gJ3Zpc2libGUnIDogbGlzdE92ZXJmbG93IHx8ICd2aXNpYmxlJyl9O1xuXG4gICAgbWFyZ2luOiAkeyh7IGlzSW5uZXJVbCB9KSA9PlxuICAgICAgICBpc0lubmVyVWwgPyBgY2FsYyh2YXIoJHt0b2tlbnMucGFkZGluZ30pICogLTEpIDAgMCAwYCA6IGB2YXIoJHt0b2tlbnMubWFyZ2lufSkgMCAwIDBgfTtcbiAgICBwYWRkaW5nOiBjYWxjKHZhcigke3Rva2Vucy5wYWRkaW5nfSkgKyB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJXaWR0aH0sIDByZW0pKSAwO1xuYDtcblxuZXhwb3J0IGNvbnN0IGJhc2UgPSBjc3NgYDtcbiJdfQ== */"));
|
26
|
-
export var base = /*#__PURE__*/css(";label:plasma-new-hope__base;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBK0J1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3Quc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG5pbXBvcnQgeyBnZXRDb3JyZWN0SGVpZ2h0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBTZWxlY3RQcm9wcyB9IGZyb20gJy4vU2VsZWN0LnR5cGVzJztcbmltcG9ydCB7IHRva2VucywgY29uc3RhbnRzIH0gZnJvbSAnLi9TZWxlY3QudG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IFVsID0gc3R5bGVkLnVsPHtcbiAgICB2aXJ0dWFsOiBTZWxlY3RQcm9wc1sndmlydHVhbCddO1xuICAgIGxpc3RPdmVyZmxvdz86IFNlbGVjdFByb3BzWydsaXN0T3ZlcmZsb3cnXTtcbiAgICBsaXN0TWF4SGVpZ2h0PzogU2VsZWN0UHJvcHNbJ2xpc3RNYXhIZWlnaHQnXTtcbiAgICBsaXN0V2lkdGg/OiBTZWxlY3RQcm9wc1snbGlzdFdpZHRoJ107XG4gICAgaXNJbm5lclVsPzogYm9vbGVhbjtcbn0+YFxuICAgIGJhY2tncm91bmQ6IHZhcigke2NvbnN0YW50cy5iYWNrZ3JvdW5kfSk7XG4gICAgYm94LXNoYWRvdzogJHtjb25zdGFudHMuYm94U2hhZG93fSxcbiAgICAgICAgaW5zZXQgMCAwIDAgdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJDb2xvcn0sIHRyYW5zcGFyZW50KTtcblxuICAgIGJvcmRlci1yYWRpdXM6IHZhcigke3Rva2Vucy5ib3JkZXJSYWRpdXN9KTtcbiAgICB3aWR0aDogJHsoeyBsaXN0V2lkdGggfSkgPT4gbGlzdFdpZHRoIHx8ICcxMDAlJ307XG5cbiAgICBtYXgtaGVpZ2h0OiAkeyh7IHZpcnR1YWwsIGxpc3RNYXhIZWlnaHQgfSkgPT5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLW5lc3RlZC10ZXJuYXJ5XG4gICAgICAgIHZpcnR1YWwgPyAnYXV0bycgOiBsaXN0TWF4SGVpZ2h0ID8gZ2V0Q29ycmVjdEhlaWdodChsaXN0TWF4SGVpZ2h0KSA6ICdhdXRvJ307XG4gICAgb3ZlcmZsb3cteTogJHsoeyB2aXJ0dWFsLCBsaXN0T3ZlcmZsb3cgfSkgPT4gKHZpcnR1YWwgPyAndmlzaWJsZScgOiBsaXN0T3ZlcmZsb3cgfHwgJ3Zpc2libGUnKX07XG5cbiAgICBtYXJnaW46ICR7KHsgaXNJbm5lclVsIH0pID0+XG4gICAgICAgIGlzSW5uZXJVbCA/IGBjYWxjKHZhcigke3Rva2Vucy5wYWRkaW5nfSkgKiAtMSkgMCAwIDBgIDogYHZhcigke3Rva2Vucy5tYXJnaW59KSAwIDAgMGB9O1xuICAgIHBhZGRpbmc6IGNhbGModmFyKCR7dG9rZW5zLnBhZGRpbmd9KSArIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlcldpZHRofSwgMHJlbSkpIDA7XG5gO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BgO1xuIl19 */"));
|
26
|
+
}, ";border-radius:calc(var(", tokens.borderRadius, ") - 0.125rem - var(", tokens.dropdownBorderWidth, ", 0rem));margin:0;padding:0;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0JFIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7IGdldENvcnJlY3RIZWlnaHQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFNlbGVjdFByb3BzIH0gZnJvbSAnLi9TZWxlY3QudHlwZXMnO1xuaW1wb3J0IHsgdG9rZW5zLCBjb25zdGFudHMgfSBmcm9tICcuL1NlbGVjdC50b2tlbnMnO1xuXG5leHBvcnQgY29uc3QgTGlzdFdyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgICBsaXN0V2lkdGg/OiBTZWxlY3RQcm9wc1snbGlzdFdpZHRoJ107XG59PmBcbiAgICB3aWR0aDogJHsoeyBsaXN0V2lkdGggfSkgPT4gbGlzdFdpZHRoIHx8ICcxMDAlJ307XG4gICAgcGFkZGluZzogY2FsYyh2YXIoJHt0b2tlbnMucGFkZGluZ30pICsgdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSk7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKCR7dG9rZW5zLmJvcmRlclJhZGl1c30pO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZDogdmFyKCR7Y29uc3RhbnRzLmJhY2tncm91bmR9KTtcbiAgICBib3gtc2hhZG93OiAke2NvbnN0YW50cy5ib3hTaGFkb3d9LFxuICAgICAgICBpbnNldCAwIDAgMCB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJXaWR0aH0sIDByZW0pIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlckNvbG9yfSwgdHJhbnNwYXJlbnQpO1xuYDtcblxuZXhwb3J0IGNvbnN0IFVsID0gc3R5bGVkLnVsPHtcbiAgICB2aXJ0dWFsOiBTZWxlY3RQcm9wc1sndmlydHVhbCddO1xuICAgIGxpc3RPdmVyZmxvdz86IFNlbGVjdFByb3BzWydsaXN0T3ZlcmZsb3cnXTtcbiAgICBsaXN0TWF4SGVpZ2h0PzogU2VsZWN0UHJvcHNbJ2xpc3RNYXhIZWlnaHQnXTtcbiAgICBpc0lubmVyVWw/OiBib29sZWFuO1xufT5gXG4gICAgbWF4LWhlaWdodDogJHsoeyB2aXJ0dWFsLCBsaXN0TWF4SGVpZ2h0IH0pID0+XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1uZXN0ZWQtdGVybmFyeVxuICAgICAgICB2aXJ0dWFsID8gJ2F1dG8nIDogbGlzdE1heEhlaWdodCA/IGdldENvcnJlY3RIZWlnaHQobGlzdE1heEhlaWdodCkgOiAnYXV0byd9O1xuICAgIG92ZXJmbG93LXk6ICR7KHsgdmlydHVhbCwgbGlzdE92ZXJmbG93IH0pID0+ICh2aXJ0dWFsID8gJ3Zpc2libGUnIDogbGlzdE92ZXJmbG93IHx8ICd2aXNpYmxlJyl9O1xuICAgIGJvcmRlci1yYWRpdXM6IGNhbGModmFyKCR7dG9rZW5zLmJvcmRlclJhZGl1c30pIC0gMC4xMjVyZW0gLSB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJXaWR0aH0sIDByZW0pKTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbmA7XG5cbmV4cG9ydCBjb25zdCBiYXNlID0gY3NzYGA7XG4iXX0= */"));
|
27
|
+
export var base = /*#__PURE__*/css(";label:plasma-new-hope__base;" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy1lbW90aW9uL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0N1QiIsImZpbGUiOiIuLi8uLi8uLi8uLi9zcmMtZW1vdGlvbi9jb21wb25lbnRzL1NlbGVjdC9TZWxlY3Quc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG5pbXBvcnQgeyBnZXRDb3JyZWN0SGVpZ2h0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBTZWxlY3RQcm9wcyB9IGZyb20gJy4vU2VsZWN0LnR5cGVzJztcbmltcG9ydCB7IHRva2VucywgY29uc3RhbnRzIH0gZnJvbSAnLi9TZWxlY3QudG9rZW5zJztcblxuZXhwb3J0IGNvbnN0IExpc3RXcmFwcGVyID0gc3R5bGVkLmRpdjx7XG4gICAgbGlzdFdpZHRoPzogU2VsZWN0UHJvcHNbJ2xpc3RXaWR0aCddO1xufT5gXG4gICAgd2lkdGg6ICR7KHsgbGlzdFdpZHRoIH0pID0+IGxpc3RXaWR0aCB8fCAnMTAwJSd9O1xuICAgIHBhZGRpbmc6IGNhbGModmFyKCR7dG9rZW5zLnBhZGRpbmd9KSArIHZhcigke3Rva2Vucy5kcm9wZG93bkJvcmRlcldpZHRofSwgMHJlbSkpO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigke3Rva2Vucy5ib3JkZXJSYWRpdXN9KTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJhY2tncm91bmQ6IHZhcigke2NvbnN0YW50cy5iYWNrZ3JvdW5kfSk7XG4gICAgYm94LXNoYWRvdzogJHtjb25zdGFudHMuYm94U2hhZG93fSxcbiAgICAgICAgaW5zZXQgMCAwIDAgdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSB2YXIoJHt0b2tlbnMuZHJvcGRvd25Cb3JkZXJDb2xvcn0sIHRyYW5zcGFyZW50KTtcbmA7XG5cbmV4cG9ydCBjb25zdCBVbCA9IHN0eWxlZC51bDx7XG4gICAgdmlydHVhbDogU2VsZWN0UHJvcHNbJ3ZpcnR1YWwnXTtcbiAgICBsaXN0T3ZlcmZsb3c/OiBTZWxlY3RQcm9wc1snbGlzdE92ZXJmbG93J107XG4gICAgbGlzdE1heEhlaWdodD86IFNlbGVjdFByb3BzWydsaXN0TWF4SGVpZ2h0J107XG4gICAgaXNJbm5lclVsPzogYm9vbGVhbjtcbn0+YFxuICAgIG1heC1oZWlnaHQ6ICR7KHsgdmlydHVhbCwgbGlzdE1heEhlaWdodCB9KSA9PlxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbmVzdGVkLXRlcm5hcnlcbiAgICAgICAgdmlydHVhbCA/ICdhdXRvJyA6IGxpc3RNYXhIZWlnaHQgPyBnZXRDb3JyZWN0SGVpZ2h0KGxpc3RNYXhIZWlnaHQpIDogJ2F1dG8nfTtcbiAgICBvdmVyZmxvdy15OiAkeyh7IHZpcnR1YWwsIGxpc3RPdmVyZmxvdyB9KSA9PiAodmlydHVhbCA/ICd2aXNpYmxlJyA6IGxpc3RPdmVyZmxvdyB8fCAndmlzaWJsZScpfTtcbiAgICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigke3Rva2Vucy5ib3JkZXJSYWRpdXN9KSAtIDAuMTI1cmVtIC0gdmFyKCR7dG9rZW5zLmRyb3Bkb3duQm9yZGVyV2lkdGh9LCAwcmVtKSk7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5gO1xuXG5leHBvcnQgY29uc3QgYmFzZSA9IGNzc2BgO1xuIl19 */"));
|
@@ -508,6 +508,64 @@ Select может выглядеть как Button и как Textfield. За э
|
|
508
508
|
}
|
509
509
|
```
|
510
510
|
</TabItem>
|
511
|
+
<TabItem value="selectAll" label="Выбрать всё">
|
512
|
+
Работа с кнопкой "Выбрать всё" осуществляется через свойство `selectAllOptions` только в режиме `multiselect`:
|
513
|
+
```tsx
|
514
|
+
type SelectAllProps = {
|
515
|
+
checked?: boolean;
|
516
|
+
indeterminate?: boolean;
|
517
|
+
label?: string;
|
518
|
+
onClick?: () => void;
|
519
|
+
sticky?: boolean;
|
520
|
+
};
|
521
|
+
```
|
522
|
+
Вся логика выбора элементов и взаимодействия с компонентом лежит на стороне пользователя.
|
523
|
+
|
524
|
+
```tsx live
|
525
|
+
import React, { useState } from 'react';
|
526
|
+
import { Select } from '@salutejs/{{ package }}';
|
527
|
+
|
528
|
+
export function App() {
|
529
|
+
const [checked, setChecked] = useState(false);
|
530
|
+
|
531
|
+
const items = [
|
532
|
+
{
|
533
|
+
value: 'north_america',
|
534
|
+
label: 'Северная Америка',
|
535
|
+
},
|
536
|
+
{
|
537
|
+
value: 'south_america',
|
538
|
+
label: 'Южная Америка',
|
539
|
+
items: [
|
540
|
+
{
|
541
|
+
value: 'brazil',
|
542
|
+
label: 'Бразилия',
|
543
|
+
},
|
544
|
+
{
|
545
|
+
value: 'argentina',
|
546
|
+
label: 'Аргентина',
|
547
|
+
},
|
548
|
+
],
|
549
|
+
},
|
550
|
+
];
|
551
|
+
|
552
|
+
return (
|
553
|
+
<div style={{ display: "flex", gap: "30px", height: "300px" }}>
|
554
|
+
<Select
|
555
|
+
label="Label"
|
556
|
+
placeholder="Placeholder"
|
557
|
+
items={items}
|
558
|
+
multiselect
|
559
|
+
selectAllOptions={{
|
560
|
+
checked,
|
561
|
+
onClick: () => setChecked(prev => !prev)
|
562
|
+
}}
|
563
|
+
/>
|
564
|
+
</div>
|
565
|
+
);
|
566
|
+
}
|
567
|
+
```
|
568
|
+
</TabItem>
|
511
569
|
</Tabs>
|
512
570
|
|
513
571
|
|
@@ -55,6 +55,13 @@ export var tokens = {
|
|
55
55
|
checkboxTriggerBorderWidth: '--plasma-select-checkbox-trigger-border-width',
|
56
56
|
indicatorSize: '--plasma-select-indicator-size',
|
57
57
|
targetHeight: '--plasma-select-target-height',
|
58
|
+
dividerMarginTop: '--plasma-select-divider-margin-top',
|
59
|
+
dividerMarginTopTight: '--plasma-select-divider-margin-top-tight',
|
60
|
+
dividerMarginRight: '--plasma-select-divider-margin-right',
|
61
|
+
dividerMarginBottom: '--plasma-select-divider-margin-bottom',
|
62
|
+
dividerMarginBottomTight: '--plasma-select-divider-margin-bottom-tight',
|
63
|
+
dividerMarginLeft: '--plasma-select-divider-margin-left',
|
64
|
+
dividerColor: '--plasma-select-divider-color',
|
58
65
|
// Токены для Button
|
59
66
|
buttonColor: '--plasma-select-button-color',
|
60
67
|
buttonColorHover: '--plasma-select-button-color-hover',
|
@@ -228,7 +235,7 @@ export var constants = {
|
|
228
235
|
focusSize: '0.0625rem',
|
229
236
|
background: '--surface-solid-card',
|
230
237
|
boxShadow: '0px 4px 14px -4px rgba(8, 8, 8, 0.08), 0px 1px 4px -1px rgba(0, 0, 0, 0.04)',
|
231
|
-
itemBackground: '--
|
238
|
+
itemBackground: '--surface-clear',
|
232
239
|
textfieldTargetColor: '--text-primary',
|
233
240
|
textfieldOuterLabelColor: '--text-primary',
|
234
241
|
textfieldInnerLabelColor: '--text-secondary',
|
@@ -241,5 +248,5 @@ export var constants = {
|
|
241
248
|
fontLetterSpacing: '--plasma-typo-body-xs-letter-spacing',
|
242
249
|
fontLineHeight: '--plasma-typo-body-xs-line-height',
|
243
250
|
cellTitleColor: '--text-primary',
|
244
|
-
cellBackgroundColor: '--
|
251
|
+
cellBackgroundColor: '--surface-clear'
|
245
252
|
};
|
@@ -142,7 +142,7 @@ export var useKeyNavigation = function useKeyNavigation(_ref) {
|
|
142
142
|
});
|
143
143
|
break;
|
144
144
|
}
|
145
|
-
if (!_currentItem || _currentItem !== null && _currentItem !== void 0 && _currentItem.disabled) {
|
145
|
+
if (!_currentItem || _currentItem !== null && _currentItem !== void 0 && _currentItem.disabled || _currentItem !== null && _currentItem !== void 0 && _currentItem.isDisabled) {
|
146
146
|
break;
|
147
147
|
}
|
148
148
|
handlePressDown(_currentItem);
|
@@ -152,7 +152,7 @@ export var useKeyNavigation = function useKeyNavigation(_ref) {
|
|
152
152
|
{
|
153
153
|
event.preventDefault();
|
154
154
|
var _currentItem2 = getItemByFocused(focusedPath, focusedToValueMap);
|
155
|
-
if (_currentItem2 !== null && _currentItem2 !== void 0 && _currentItem2.disabled) {
|
155
|
+
if (_currentItem2 !== null && _currentItem2 !== void 0 && _currentItem2.disabled || _currentItem2 !== null && _currentItem2 !== void 0 && _currentItem2.isDisabled) {
|
156
156
|
break;
|
157
157
|
}
|
158
158
|
if (!path[0]) {
|