@snack-uikit/list 0.18.0 → 0.18.1-preview-71543426.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Items/AccordionItem/AccordionItem.js +78 -0
- package/dist/cjs/components/Items/AccordionItem/index.js +25 -0
- package/dist/cjs/components/Items/BaseItem/BaseItem.js +199 -0
- package/dist/cjs/components/Items/BaseItem/constants.js +11 -0
- package/dist/cjs/components/Items/BaseItem/index.js +25 -0
- package/dist/cjs/components/Items/GroupItem/GroupItem.js +27 -0
- package/dist/cjs/components/Items/GroupItem/index.js +25 -0
- package/dist/cjs/components/Items/GroupSelectItem/GroupSelectItem.js +46 -0
- package/dist/cjs/components/Items/GroupSelectItem/index.js +25 -0
- package/dist/cjs/components/Items/NextListItem/NextListItem.js +149 -0
- package/dist/cjs/components/Items/NextListItem/constants.js +7 -0
- package/dist/cjs/components/Items/NextListItem/index.js +25 -0
- package/dist/cjs/components/Items/PinGroupItem/PinGroupItem.js +59 -0
- package/dist/cjs/components/Items/PinGroupItem/index.js +25 -0
- package/dist/cjs/components/Items/SearchItem/SearchItem.js +50 -0
- package/dist/cjs/components/Items/SearchItem/index.js +25 -0
- package/dist/cjs/components/Items/hooks.js +133 -0
- package/dist/cjs/components/Items/index.js +29 -0
- package/dist/cjs/components/Items/types.js +5 -0
- package/dist/cjs/components/Items/utils.js +206 -0
- package/dist/cjs/components/Lists/Droplist/DropList.js +264 -0
- package/dist/cjs/components/Lists/Droplist/index.js +25 -0
- package/dist/cjs/components/Lists/List/List.js +199 -0
- package/dist/cjs/components/Lists/List/index.js +25 -0
- package/dist/cjs/components/Lists/ListPrivate/ListPrivate.js +142 -0
- package/dist/cjs/components/Lists/ListPrivate/index.js +25 -0
- package/dist/cjs/components/Lists/contexts/CollapseProvider.js +13 -0
- package/dist/cjs/components/Lists/contexts/FocusListProvider.js +12 -0
- package/dist/cjs/components/Lists/contexts/NewListProvider.js +51 -0
- package/dist/cjs/components/Lists/contexts/OpenListProvider.js +13 -0
- package/dist/cjs/components/Lists/contexts/SelectionProvider.js +133 -0
- package/dist/cjs/components/Lists/contexts/index.js +30 -0
- package/dist/cjs/components/Lists/hooks.js +121 -0
- package/dist/cjs/components/Lists/index.js +52 -0
- package/dist/cjs/components/Lists/types.js +5 -0
- package/dist/cjs/components/index.js +64 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.js +49 -0
- package/dist/cjs/helperComponents/CollapseBlockPrivate/index.js +25 -0
- package/dist/cjs/helperComponents/HiddenTabButton/HiddenTabButton.js +40 -0
- package/dist/cjs/helperComponents/HiddenTabButton/index.js +25 -0
- package/dist/cjs/helperComponents/ItemContent/ItemContent.js +74 -0
- package/dist/cjs/helperComponents/ItemContent/index.js +25 -0
- package/dist/cjs/helperComponents/ListEmptyState/ListEmptyState.js +56 -0
- package/dist/cjs/helperComponents/ListEmptyState/hooks.js +45 -0
- package/dist/cjs/helperComponents/ListEmptyState/index.js +33 -0
- package/dist/cjs/helperComponents/Separator/Separator.js +97 -0
- package/dist/cjs/helperComponents/Separator/constants.js +11 -0
- package/dist/cjs/helperComponents/Separator/index.js +25 -0
- package/dist/cjs/helperComponents/index.js +29 -0
- package/dist/cjs/index.js +34 -0
- package/dist/cjs/types.js +5 -0
- package/dist/esm/components/Items/AccordionItem/AccordionItem.d.ts +4 -0
- package/dist/esm/components/Items/AccordionItem/index.js +1 -0
- package/dist/esm/components/Items/BaseItem/BaseItem.d.ts +12 -0
- package/dist/esm/components/Items/BaseItem/constants.d.ts +2 -0
- package/dist/esm/components/Items/BaseItem/index.js +1 -0
- package/dist/esm/components/Items/BaseItem/styles.module.css +112 -0
- package/dist/esm/components/Items/GroupItem/GroupItem.d.ts +6 -0
- package/dist/esm/components/Items/GroupItem/index.js +1 -0
- package/dist/esm/components/Items/GroupSelectItem/GroupSelectItem.d.ts +4 -0
- package/dist/esm/components/Items/GroupSelectItem/index.js +1 -0
- package/dist/esm/components/Items/NextListItem/NextListItem.d.ts +6 -0
- package/dist/esm/components/Items/NextListItem/constants.d.ts +2 -0
- package/dist/esm/components/Items/NextListItem/index.js +1 -0
- package/dist/esm/components/Items/PinGroupItem/PinGroupItem.d.ts +7 -0
- package/dist/esm/components/Items/PinGroupItem/index.js +1 -0
- package/dist/esm/components/Items/PinGroupItem/styles.module.css +43 -0
- package/dist/esm/components/Items/SearchItem/SearchItem.d.ts +7 -0
- package/dist/esm/components/Items/SearchItem/index.js +1 -0
- package/dist/esm/components/Items/SearchItem/styles.module.css +11 -0
- package/dist/esm/components/Items/hooks.d.ts +23 -0
- package/dist/esm/components/Items/index.js +5 -0
- package/dist/esm/components/Items/styles.module.css +87 -0
- package/dist/esm/components/Items/types.d.ts +118 -0
- package/dist/esm/components/Items/utils.d.ts +35 -0
- package/dist/esm/components/Lists/Droplist/DropList.d.ts +2 -0
- package/dist/esm/components/Lists/Droplist/index.js +1 -0
- package/dist/esm/components/Lists/List/List.d.ts +16 -0
- package/dist/esm/components/Lists/List/index.js +1 -0
- package/dist/esm/components/Lists/ListPrivate/ListPrivate.d.ts +13 -0
- package/dist/esm/components/Lists/ListPrivate/index.js +1 -0
- package/dist/esm/components/Lists/ListPrivate/styles.module.css +51 -0
- package/dist/esm/components/Lists/contexts/CollapseProvider.d.ts +17 -0
- package/dist/esm/components/Lists/contexts/FocusListProvider.d.ts +9 -0
- package/dist/esm/components/Lists/contexts/NewListProvider.d.ts +33 -0
- package/dist/esm/components/Lists/contexts/OpenListProvider.d.ts +6 -0
- package/dist/esm/components/Lists/contexts/SelectionProvider.d.ts +70 -0
- package/dist/esm/components/Lists/contexts/index.js +6 -0
- package/dist/esm/components/Lists/hooks.d.ts +14 -0
- package/dist/esm/components/Lists/index.d.ts +5 -0
- package/dist/esm/components/Lists/styles.module.css +59 -0
- package/dist/esm/components/Lists/types.d.ts +78 -0
- package/dist/esm/components/index.d.ts +4 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +9 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/index.js +1 -0
- package/dist/esm/helperComponents/CollapseBlockPrivate/styles.module.css +38 -0
- package/dist/esm/helperComponents/HiddenTabButton/HiddenTabButton.d.ts +7 -0
- package/dist/esm/helperComponents/HiddenTabButton/index.js +1 -0
- package/dist/esm/helperComponents/HiddenTabButton/styles.module.css +9 -0
- package/dist/esm/helperComponents/ItemContent/ItemContent.d.ts +17 -0
- package/dist/esm/helperComponents/ItemContent/index.js +1 -0
- package/dist/esm/helperComponents/ItemContent/styles.module.css +122 -0
- package/dist/esm/helperComponents/ListEmptyState/ListEmptyState.d.ts +14 -0
- package/dist/esm/helperComponents/ListEmptyState/hooks.d.ts +10 -0
- package/dist/esm/helperComponents/ListEmptyState/index.js +2 -0
- package/dist/esm/helperComponents/ListEmptyState/styles.module.css +8 -0
- package/dist/esm/helperComponents/Separator/Separator.d.ts +17 -0
- package/dist/esm/helperComponents/Separator/constants.d.ts +2 -0
- package/dist/esm/helperComponents/Separator/index.js +1 -0
- package/dist/esm/helperComponents/Separator/styles.module.css +141 -0
- package/dist/esm/helperComponents/index.js +5 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/types.d.ts +20 -0
- package/package.json +18 -16
- /package/dist/{components → cjs/components}/Items/AccordionItem/AccordionItem.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/AccordionItem/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/BaseItem/BaseItem.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/BaseItem/constants.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/BaseItem/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/BaseItem/styles.module.css +0 -0
- /package/dist/{components → cjs/components}/Items/GroupItem/GroupItem.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/GroupItem/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/GroupSelectItem/GroupSelectItem.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/GroupSelectItem/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/NextListItem/NextListItem.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/NextListItem/constants.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/NextListItem/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/PinGroupItem/PinGroupItem.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/PinGroupItem/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/PinGroupItem/styles.module.css +0 -0
- /package/dist/{components → cjs/components}/Items/SearchItem/SearchItem.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/SearchItem/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/SearchItem/styles.module.css +0 -0
- /package/dist/{components → cjs/components}/Items/hooks.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/styles.module.css +0 -0
- /package/dist/{components → cjs/components}/Items/types.d.ts +0 -0
- /package/dist/{components → cjs/components}/Items/utils.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/Droplist/DropList.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/Droplist/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/List/List.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/List/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/ListPrivate/ListPrivate.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/ListPrivate/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/ListPrivate/styles.module.css +0 -0
- /package/dist/{components → cjs/components}/Lists/contexts/CollapseProvider.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/contexts/FocusListProvider.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/contexts/NewListProvider.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/contexts/OpenListProvider.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/contexts/SelectionProvider.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/contexts/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/hooks.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/index.d.ts +0 -0
- /package/dist/{components → cjs/components}/Lists/styles.module.css +0 -0
- /package/dist/{components → cjs/components}/Lists/types.d.ts +0 -0
- /package/dist/{components → cjs/components}/index.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/CollapseBlockPrivate/CollapseBlockPrivate.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/CollapseBlockPrivate/index.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/CollapseBlockPrivate/styles.module.css +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/HiddenTabButton/HiddenTabButton.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/HiddenTabButton/index.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/HiddenTabButton/styles.module.css +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/ItemContent/ItemContent.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/ItemContent/index.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/ItemContent/styles.module.css +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/ListEmptyState.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/hooks.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/index.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/ListEmptyState/styles.module.css +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/Separator/Separator.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/Separator/constants.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/Separator/index.d.ts +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/Separator/styles.module.css +0 -0
- /package/dist/{helperComponents → cjs/helperComponents}/index.d.ts +0 -0
- /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
- /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/AccordionItem/AccordionItem.js +0 -0
- /package/dist/{components/Items/AccordionItem/index.js → esm/components/Items/AccordionItem/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/BaseItem/BaseItem.js +0 -0
- /package/dist/{components → esm/components}/Items/BaseItem/constants.js +0 -0
- /package/dist/{components/Items/BaseItem/index.js → esm/components/Items/BaseItem/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/GroupItem/GroupItem.js +0 -0
- /package/dist/{components/Items/GroupItem/index.js → esm/components/Items/GroupItem/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/GroupSelectItem/GroupSelectItem.js +0 -0
- /package/dist/{components/Items/GroupSelectItem/index.js → esm/components/Items/GroupSelectItem/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/NextListItem/NextListItem.js +0 -0
- /package/dist/{components → esm/components}/Items/NextListItem/constants.js +0 -0
- /package/dist/{components/Items/NextListItem/index.js → esm/components/Items/NextListItem/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/PinGroupItem/PinGroupItem.js +0 -0
- /package/dist/{components/Items/PinGroupItem/index.js → esm/components/Items/PinGroupItem/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/SearchItem/SearchItem.js +0 -0
- /package/dist/{components/Items/SearchItem/index.js → esm/components/Items/SearchItem/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/hooks.js +0 -0
- /package/dist/{components/Items/index.js → esm/components/Items/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Items/types.js +0 -0
- /package/dist/{components → esm/components}/Items/utils.js +0 -0
- /package/dist/{components → esm/components}/Lists/Droplist/DropList.js +0 -0
- /package/dist/{components/Lists/Droplist/index.js → esm/components/Lists/Droplist/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Lists/List/List.js +0 -0
- /package/dist/{components/Lists/List/index.js → esm/components/Lists/List/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Lists/ListPrivate/ListPrivate.js +0 -0
- /package/dist/{components/Lists/ListPrivate/index.js → esm/components/Lists/ListPrivate/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Lists/contexts/CollapseProvider.js +0 -0
- /package/dist/{components → esm/components}/Lists/contexts/FocusListProvider.js +0 -0
- /package/dist/{components → esm/components}/Lists/contexts/NewListProvider.js +0 -0
- /package/dist/{components → esm/components}/Lists/contexts/OpenListProvider.js +0 -0
- /package/dist/{components → esm/components}/Lists/contexts/SelectionProvider.js +0 -0
- /package/dist/{components/Lists/contexts/index.js → esm/components/Lists/contexts/index.d.ts} +0 -0
- /package/dist/{components → esm/components}/Lists/hooks.js +0 -0
- /package/dist/{components → esm/components}/Lists/index.js +0 -0
- /package/dist/{components → esm/components}/Lists/types.js +0 -0
- /package/dist/{components → esm/components}/index.js +0 -0
- /package/dist/{helperComponents → esm/helperComponents}/CollapseBlockPrivate/CollapseBlockPrivate.js +0 -0
- /package/dist/{helperComponents/CollapseBlockPrivate/index.js → esm/helperComponents/CollapseBlockPrivate/index.d.ts} +0 -0
- /package/dist/{helperComponents → esm/helperComponents}/HiddenTabButton/HiddenTabButton.js +0 -0
- /package/dist/{helperComponents/HiddenTabButton/index.js → esm/helperComponents/HiddenTabButton/index.d.ts} +0 -0
- /package/dist/{helperComponents → esm/helperComponents}/ItemContent/ItemContent.js +0 -0
- /package/dist/{helperComponents/ItemContent/index.js → esm/helperComponents/ItemContent/index.d.ts} +0 -0
- /package/dist/{helperComponents → esm/helperComponents}/ListEmptyState/ListEmptyState.js +0 -0
- /package/dist/{helperComponents → esm/helperComponents}/ListEmptyState/hooks.js +0 -0
- /package/dist/{helperComponents/ListEmptyState/index.js → esm/helperComponents/ListEmptyState/index.d.ts} +0 -0
- /package/dist/{helperComponents → esm/helperComponents}/Separator/Separator.js +0 -0
- /package/dist/{helperComponents → esm/helperComponents}/Separator/constants.js +0 -0
- /package/dist/{helperComponents/Separator/index.js → esm/helperComponents/Separator/index.d.ts} +0 -0
- /package/dist/{helperComponents/index.js → esm/helperComponents/index.d.ts} +0 -0
- /package/dist/{index.js → esm/index.js} +0 -0
- /package/dist/{types.js → esm/types.js} +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
.listContainer{
|
|
2
|
+
display:flex;
|
|
3
|
+
flex-direction:column;
|
|
4
|
+
height:100%;
|
|
5
|
+
margin:0;
|
|
6
|
+
padding:0;
|
|
7
|
+
}
|
|
8
|
+
.listContainer:focus-visible{
|
|
9
|
+
border:none;
|
|
10
|
+
outline:none;
|
|
11
|
+
}
|
|
12
|
+
.listContainer:focus-visible[data-active]{
|
|
13
|
+
outline-width:var(--border-state-focus-s-border-width, 2px);
|
|
14
|
+
outline-style:var(--border-state-focus-s-border-style, solid);
|
|
15
|
+
outline-color:var(--border-state-focus-s-border-color, );
|
|
16
|
+
outline-offset:calc(var(--border-state-focus-s-border-width, 2px) * -1);
|
|
17
|
+
outline-color:var(--sys-available-complementary, #1c1c24);
|
|
18
|
+
}
|
|
19
|
+
.listContainer:focus-visible[data-active] *{
|
|
20
|
+
cursor:inherit;
|
|
21
|
+
}
|
|
22
|
+
.listContainer li,
|
|
23
|
+
.listContainer ul{
|
|
24
|
+
list-style-type:none;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.wrapper{
|
|
28
|
+
position:relative;
|
|
29
|
+
overflow:hidden;
|
|
30
|
+
display:block;
|
|
31
|
+
box-sizing:border-box;
|
|
32
|
+
height:100%;
|
|
33
|
+
}
|
|
34
|
+
.wrapper:has(.listContainer:focus-visible){
|
|
35
|
+
outline-width:var(--border-state-focus-s-border-width, 2px);
|
|
36
|
+
outline-style:var(--border-state-focus-s-border-style, solid);
|
|
37
|
+
outline-color:var(--border-state-focus-s-border-color, );
|
|
38
|
+
outline-offset:calc(var(--border-state-focus-s-border-width, 2px) * -1);
|
|
39
|
+
outline-color:var(--sys-available-complementary, #1c1c24);
|
|
40
|
+
}
|
|
41
|
+
.wrapper li,
|
|
42
|
+
.wrapper ul{
|
|
43
|
+
list-style-type:none;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.scrollContainerS{
|
|
47
|
+
height:auto;
|
|
48
|
+
max-height:calc(var(--dimension-1m, 8px) * 32);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.scrollContainerM{
|
|
52
|
+
height:auto;
|
|
53
|
+
max-height:calc(var(--dimension-1m, 8px) * 40);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.scrollContainerL{
|
|
57
|
+
height:auto;
|
|
58
|
+
max-height:calc(var(--dimension-1m, 8px) * 48);
|
|
59
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { FocusEvent, KeyboardEvent, ReactNode, RefObject } from 'react';
|
|
2
|
+
import { DropdownProps } from '@snack-uikit/dropdown';
|
|
3
|
+
import { WithSupportProps } from '@snack-uikit/utils';
|
|
4
|
+
import { EmptyStateProps } from '../../helperComponents';
|
|
5
|
+
import { ScrollProps, SearchState } from '../../types';
|
|
6
|
+
import { FlattenBaseItem, Item, ItemId } from '../Items';
|
|
7
|
+
import { CollapseState, PublicListContextType, SelectionState } from './contexts';
|
|
8
|
+
export type EmptyState = {
|
|
9
|
+
dataFiltered?: boolean;
|
|
10
|
+
dataError?: boolean;
|
|
11
|
+
/** Экран при отстутствии данных */
|
|
12
|
+
noDataState?: EmptyStateProps;
|
|
13
|
+
/** Экран при отстутствии результатов поиска или фильтров */
|
|
14
|
+
noResultsState?: EmptyStateProps;
|
|
15
|
+
/** Экран при ошибке запроса */
|
|
16
|
+
errorDataState?: EmptyStateProps;
|
|
17
|
+
};
|
|
18
|
+
export type ListProps = WithSupportProps<{
|
|
19
|
+
/** Основные элементы списка */
|
|
20
|
+
items: Item[];
|
|
21
|
+
/** Элементы списка, закрепленные сверху */
|
|
22
|
+
pinTop?: Item[];
|
|
23
|
+
/** Элементы списка, закрепленные снизу */
|
|
24
|
+
pinBottom?: Item[];
|
|
25
|
+
/**
|
|
26
|
+
* Кастомизируемый элемент в конце списка
|
|
27
|
+
* @type ReactNode;
|
|
28
|
+
*/
|
|
29
|
+
footer?: ReactNode;
|
|
30
|
+
/** Список ссылок на кастомные элементы, помещенные в специальную секцию внизу списка */
|
|
31
|
+
footerActiveElementsRefs?: RefObject<HTMLElement>[];
|
|
32
|
+
/** Настройки поисковой строки */
|
|
33
|
+
search?: SearchState;
|
|
34
|
+
/** Tab Index */
|
|
35
|
+
tabIndex?: number;
|
|
36
|
+
/** Настройки раскрытия элементов */
|
|
37
|
+
collapse?: CollapseState;
|
|
38
|
+
/** CSS-класс */
|
|
39
|
+
className?: string;
|
|
40
|
+
onKeyDown?(e: KeyboardEvent<HTMLElement>): void;
|
|
41
|
+
/** Флаг, отвещающий за состояние загрузки списка */
|
|
42
|
+
loading?: boolean;
|
|
43
|
+
} & SelectionState & PublicListContextType & ScrollProps & EmptyState>;
|
|
44
|
+
export type DroplistProps = {
|
|
45
|
+
/** Ссылка на элемент-триггер для дроплиста */
|
|
46
|
+
triggerElemRef?: RefObject<HTMLElement>;
|
|
47
|
+
/** Ссылка на элемент выпадающего списка */
|
|
48
|
+
listRef?: RefObject<HTMLElement>;
|
|
49
|
+
/**
|
|
50
|
+
* Закрывать выпадающий список после клика на базовый айтем.
|
|
51
|
+
*
|
|
52
|
+
* Работает в режимах selection: 'none' | 'single'
|
|
53
|
+
*
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
closeDroplistOnItemClick?: boolean;
|
|
57
|
+
/** Триггер для дроплиста
|
|
58
|
+
* @type ReactNode | ({onKeyDown}) => ReactNode
|
|
59
|
+
*
|
|
60
|
+
* Рендер функция принимает аргументы `onKeyDown` - хендлер ввода, для поддержки управления с клавиатуры
|
|
61
|
+
*/
|
|
62
|
+
children: ReactNode | ((params: {
|
|
63
|
+
onKeyDown?: (e: KeyboardEvent<HTMLElement>) => void;
|
|
64
|
+
}) => ReactNode);
|
|
65
|
+
} & Pick<DropdownProps, 'trigger' | 'placement' | 'widthStrategy' | 'open' | 'onOpenChange' | 'triggerClassName'> & Omit<ListProps, 'tabIndex' | 'onKeyDown'>;
|
|
66
|
+
export type ListPrivateProps = Omit<ListProps, 'pinTop' | 'pinBottom' | 'items'> & {
|
|
67
|
+
nested?: boolean;
|
|
68
|
+
active?: boolean;
|
|
69
|
+
tabIndex?: number;
|
|
70
|
+
onFocus?(e: FocusEvent<HTMLElement>): void;
|
|
71
|
+
onBlur?(e: FocusEvent<HTMLElement>): void;
|
|
72
|
+
onKeyDown?(e: KeyboardEvent<HTMLElement>): void;
|
|
73
|
+
limitedScrollHeight?: boolean;
|
|
74
|
+
searchItem?: FlattenBaseItem;
|
|
75
|
+
pinTop?: ItemId[];
|
|
76
|
+
items: ItemId[];
|
|
77
|
+
pinBottom?: ItemId[];
|
|
78
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './Lists';
|
|
2
|
+
export type { AccordionItemProps, NextListItemProps, BaseItemProps, GroupItemProps, ItemProps, GroupSelectItemProps, ItemId, } from './Items';
|
|
3
|
+
export { isAccordionItemProps, isBaseItemProps, isGroupItemProps, isNextListItemProps, isGroupSelectItem, } from './Items';
|
|
4
|
+
export { useGroupItemSelection } from './Items/hooks';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { WithSupportProps } from '@snack-uikit/utils';
|
|
3
|
+
export type CollapseBlockPrivateProps = WithSupportProps<{
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
header: ReactNode;
|
|
6
|
+
expanded: boolean;
|
|
7
|
+
className?: string;
|
|
8
|
+
}>;
|
|
9
|
+
export declare function CollapseBlockPrivate({ children, expanded, className, header, ...rest }: CollapseBlockPrivateProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CollapseBlockPrivate';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.accordion{
|
|
2
|
+
display:flex;
|
|
3
|
+
flex-direction:column;
|
|
4
|
+
box-sizing:border-box;
|
|
5
|
+
transition:gap 300ms;
|
|
6
|
+
}
|
|
7
|
+
.accordion::-webkit-scrollbar{
|
|
8
|
+
width:0;
|
|
9
|
+
}
|
|
10
|
+
.accordion[aria-expanded=false]{
|
|
11
|
+
gap:0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.contentWrapper{
|
|
15
|
+
box-sizing:border-box;
|
|
16
|
+
width:100%;
|
|
17
|
+
}
|
|
18
|
+
.contentWrapper[aria-hidden=false] > div[data-content]{
|
|
19
|
+
display:block;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.content{
|
|
23
|
+
position:relative;
|
|
24
|
+
display:none;
|
|
25
|
+
box-sizing:border-box;
|
|
26
|
+
width:100%;
|
|
27
|
+
}
|
|
28
|
+
.content::before{
|
|
29
|
+
pointer-events:none;
|
|
30
|
+
content:"";
|
|
31
|
+
position:absolute;
|
|
32
|
+
top:0;
|
|
33
|
+
left:0;
|
|
34
|
+
width:100%;
|
|
35
|
+
height:100%;
|
|
36
|
+
opacity:var(--opacity-a004, 0.04);
|
|
37
|
+
background-color:var(--sys-neutral-accent-default, #787b8a);
|
|
38
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
type HiddenTabButtonProps = {
|
|
3
|
+
listRef: RefObject<HTMLElement>;
|
|
4
|
+
tabIndex?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare const HiddenTabButton: import("react").ForwardRefExoticComponent<HiddenTabButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './HiddenTabButton';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TruncateStringProps } from '@snack-uikit/truncate-string';
|
|
2
|
+
import { WithSupportProps } from '@snack-uikit/utils';
|
|
3
|
+
type TruncateProps = {
|
|
4
|
+
option?: number;
|
|
5
|
+
description?: number;
|
|
6
|
+
variant?: TruncateStringProps['variant'];
|
|
7
|
+
};
|
|
8
|
+
export type ItemContentProps = WithSupportProps<{
|
|
9
|
+
option: string | number;
|
|
10
|
+
caption?: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
truncate?: TruncateProps;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
className?: string;
|
|
15
|
+
}>;
|
|
16
|
+
export declare function ItemContent({ truncate: truncateProp, caption, description, option, className, disabled, ...rest }: ItemContentProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './ItemContent';
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
.headline{
|
|
2
|
+
display:flex;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.label{
|
|
6
|
+
overflow:hidden;
|
|
7
|
+
flex:1;
|
|
8
|
+
color:var(--sys-neutral-text-main, #41424e);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.caption{
|
|
12
|
+
overflow:hidden;
|
|
13
|
+
color:var(--sys-neutral-text-light, #8b8e9b);
|
|
14
|
+
text-overflow:ellipsis;
|
|
15
|
+
white-space:nowrap;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.description{
|
|
19
|
+
color:var(--sys-neutral-text-support, #6d707f);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.content{
|
|
23
|
+
overflow:hidden;
|
|
24
|
+
flex-grow:1;
|
|
25
|
+
flex-shrink:1;
|
|
26
|
+
box-sizing:border-box;
|
|
27
|
+
}
|
|
28
|
+
.content[data-size=s] .headline{
|
|
29
|
+
gap:var(--space-drop-list-item-s-container-headline-gap, 8px);
|
|
30
|
+
min-height:var(--size-drop-list-item-headline, 24px);
|
|
31
|
+
}
|
|
32
|
+
.content[data-size=s] .label{
|
|
33
|
+
font-family:var(--sans-body-s-font-family, SB Sans Interface);
|
|
34
|
+
font-weight:var(--sans-body-s-font-weight, Regular);
|
|
35
|
+
line-height:var(--sans-body-s-line-height, 16px);
|
|
36
|
+
font-size:var(--sans-body-s-font-size, 12px);
|
|
37
|
+
letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
|
|
38
|
+
paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
|
|
39
|
+
display:flex;
|
|
40
|
+
align-items:center;
|
|
41
|
+
}
|
|
42
|
+
.content[data-size=s] .caption{
|
|
43
|
+
font-family:var(--sans-body-s-font-family, SB Sans Interface);
|
|
44
|
+
font-weight:var(--sans-body-s-font-weight, Regular);
|
|
45
|
+
line-height:var(--sans-body-s-line-height, 16px);
|
|
46
|
+
font-size:var(--sans-body-s-font-size, 12px);
|
|
47
|
+
letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
|
|
48
|
+
paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
|
|
49
|
+
}
|
|
50
|
+
.content[data-size=s] .description{
|
|
51
|
+
font-family:var(--sans-body-s-font-family, SB Sans Interface);
|
|
52
|
+
font-weight:var(--sans-body-s-font-weight, Regular);
|
|
53
|
+
line-height:var(--sans-body-s-line-height, 16px);
|
|
54
|
+
font-size:var(--sans-body-s-font-size, 12px);
|
|
55
|
+
letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
|
|
56
|
+
paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
|
|
57
|
+
}
|
|
58
|
+
.content[data-size=m] .headline{
|
|
59
|
+
gap:var(--space-drop-list-item-m-container-headline-gap, 8px);
|
|
60
|
+
min-height:var(--size-drop-list-item-headline, 24px);
|
|
61
|
+
}
|
|
62
|
+
.content[data-size=m] .label{
|
|
63
|
+
font-family:var(--sans-body-m-font-family, SB Sans Interface);
|
|
64
|
+
font-weight:var(--sans-body-m-font-weight, Regular);
|
|
65
|
+
line-height:var(--sans-body-m-line-height, 20px);
|
|
66
|
+
font-size:var(--sans-body-m-font-size, 14px);
|
|
67
|
+
letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
|
|
68
|
+
paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
|
|
69
|
+
display:flex;
|
|
70
|
+
align-items:center;
|
|
71
|
+
}
|
|
72
|
+
.content[data-size=m] .caption{
|
|
73
|
+
font-family:var(--sans-body-s-font-family, SB Sans Interface);
|
|
74
|
+
font-weight:var(--sans-body-s-font-weight, Regular);
|
|
75
|
+
line-height:var(--sans-body-s-line-height, 16px);
|
|
76
|
+
font-size:var(--sans-body-s-font-size, 12px);
|
|
77
|
+
letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
|
|
78
|
+
paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
|
|
79
|
+
}
|
|
80
|
+
.content[data-size=m] .description{
|
|
81
|
+
font-family:var(--sans-body-s-font-family, SB Sans Interface);
|
|
82
|
+
font-weight:var(--sans-body-s-font-weight, Regular);
|
|
83
|
+
line-height:var(--sans-body-s-line-height, 16px);
|
|
84
|
+
font-size:var(--sans-body-s-font-size, 12px);
|
|
85
|
+
letter-spacing:var(--sans-body-s-letter-spacing, 0.1px);
|
|
86
|
+
paragraph-spacing:var(--sans-body-s-paragraph-spacing, 6.6px);
|
|
87
|
+
}
|
|
88
|
+
.content[data-size=l] .headline{
|
|
89
|
+
gap:var(--space-drop-list-item-l-container-headline-gap, 8px);
|
|
90
|
+
min-height:var(--size-drop-list-item-headline, 24px);
|
|
91
|
+
}
|
|
92
|
+
.content[data-size=l] .label{
|
|
93
|
+
font-family:var(--sans-body-l-font-family, SB Sans Interface);
|
|
94
|
+
font-weight:var(--sans-body-l-font-weight, Regular);
|
|
95
|
+
line-height:var(--sans-body-l-line-height, 24px);
|
|
96
|
+
font-size:var(--sans-body-l-font-size, 16px);
|
|
97
|
+
letter-spacing:var(--sans-body-l-letter-spacing, 0.1px);
|
|
98
|
+
paragraph-spacing:var(--sans-body-l-paragraph-spacing, 8.8px);
|
|
99
|
+
display:flex;
|
|
100
|
+
align-items:center;
|
|
101
|
+
}
|
|
102
|
+
.content[data-size=l] .caption{
|
|
103
|
+
font-family:var(--sans-body-m-font-family, SB Sans Interface);
|
|
104
|
+
font-weight:var(--sans-body-m-font-weight, Regular);
|
|
105
|
+
line-height:var(--sans-body-m-line-height, 20px);
|
|
106
|
+
font-size:var(--sans-body-m-font-size, 14px);
|
|
107
|
+
letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
|
|
108
|
+
paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
|
|
109
|
+
}
|
|
110
|
+
.content[data-size=l] .description{
|
|
111
|
+
font-family:var(--sans-body-m-font-family, SB Sans Interface);
|
|
112
|
+
font-weight:var(--sans-body-m-font-weight, Regular);
|
|
113
|
+
line-height:var(--sans-body-m-line-height, 20px);
|
|
114
|
+
font-size:var(--sans-body-m-font-size, 14px);
|
|
115
|
+
letter-spacing:var(--sans-body-m-letter-spacing, 0.1px);
|
|
116
|
+
paragraph-spacing:var(--sans-body-m-paragraph-spacing, 7.7px);
|
|
117
|
+
}
|
|
118
|
+
.content[data-disabled] .label,
|
|
119
|
+
.content[data-disabled] .description,
|
|
120
|
+
.content[data-disabled] .caption{
|
|
121
|
+
color:var(--sys-neutral-text-disabled, #aaaebd);
|
|
122
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { InfoBlockProps } from '@snack-uikit/info-block';
|
|
2
|
+
export type EmptyStateProps = Pick<InfoBlockProps, 'description' | 'icon' | 'data-test-id' | 'footer'>;
|
|
3
|
+
export type ListEmptyState = {
|
|
4
|
+
emptyStates: {
|
|
5
|
+
noDataState: EmptyStateProps;
|
|
6
|
+
noResultsState: EmptyStateProps;
|
|
7
|
+
errorDataState: EmptyStateProps;
|
|
8
|
+
};
|
|
9
|
+
loading?: boolean;
|
|
10
|
+
dataError?: boolean;
|
|
11
|
+
dataFiltered?: boolean;
|
|
12
|
+
hasNoItems: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare function ListEmptyState({ dataError, dataFiltered, hasNoItems, emptyStates, loading }: ListEmptyState): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EmptyStateProps } from './ListEmptyState';
|
|
2
|
+
export declare function useEmptyState({ noDataState: noDataStateProp, noResultsState: noResultsStateProp, errorDataState: errorDataStateProp, }: {
|
|
3
|
+
noDataState?: EmptyStateProps;
|
|
4
|
+
noResultsState?: EmptyStateProps;
|
|
5
|
+
errorDataState?: EmptyStateProps;
|
|
6
|
+
}): {
|
|
7
|
+
noDataState: EmptyStateProps;
|
|
8
|
+
noResultsState: EmptyStateProps;
|
|
9
|
+
errorDataState: EmptyStateProps;
|
|
10
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ForwardedRef, MouseEvent } from 'react';
|
|
2
|
+
import { TruncateStringProps } from '@snack-uikit/truncate-string';
|
|
3
|
+
export type SeparatorProps = {
|
|
4
|
+
label?: string;
|
|
5
|
+
truncate?: {
|
|
6
|
+
variant?: TruncateStringProps['variant'];
|
|
7
|
+
};
|
|
8
|
+
mode?: 'primary' | 'secondary';
|
|
9
|
+
divider?: boolean;
|
|
10
|
+
selectButton?: {
|
|
11
|
+
onClick?(e: MouseEvent<HTMLElement>): void;
|
|
12
|
+
indeterminate?: boolean;
|
|
13
|
+
checked?: boolean;
|
|
14
|
+
itemRef?: ForwardedRef<HTMLElement>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export declare function Separator({ label, truncate, divider, mode, selectButton }: SeparatorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Separator';
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
.separatorWithLabel{
|
|
2
|
+
display:flex;
|
|
3
|
+
gap:var(--dimension-1m, 8px);
|
|
4
|
+
align-items:flex-end;
|
|
5
|
+
box-sizing:border-box;
|
|
6
|
+
width:100%;
|
|
7
|
+
min-width:100%;
|
|
8
|
+
}
|
|
9
|
+
.separatorWithLabel[data-size=s]{
|
|
10
|
+
padding-top:var(--space-drop-list-item-s-container-separator-subheader-vertical-padding, 4px);
|
|
11
|
+
padding-bottom:var(--space-drop-list-item-s-container-separator-subheader-vertical-padding, 4px);
|
|
12
|
+
padding-left:var(--space-drop-list-item-s-container-horizontal-padding, 8px);
|
|
13
|
+
padding-right:var(--space-drop-list-item-s-container-horizontal-padding, 8px);
|
|
14
|
+
gap:var(--space-drop-list-item-s-container-gap, 8px);
|
|
15
|
+
height:var(--size-drop-list-item-s-container-separator-subheader-height, 32px);
|
|
16
|
+
}
|
|
17
|
+
.separatorWithLabel[data-size=s] .label[data-mode=primary]{
|
|
18
|
+
font-family:var(--sans-label-m-font-family, SB Sans Interface);
|
|
19
|
+
font-weight:var(--sans-label-m-font-weight, Semibold);
|
|
20
|
+
line-height:var(--sans-label-m-line-height, 16px);
|
|
21
|
+
font-size:var(--sans-label-m-font-size, 12px);
|
|
22
|
+
letter-spacing:var(--sans-label-m-letter-spacing, 0px);
|
|
23
|
+
paragraph-spacing:var(--sans-label-m-paragraph-spacing, 6.6px);
|
|
24
|
+
}
|
|
25
|
+
.separatorWithLabel[data-size=s] .label[data-mode=secondary]{
|
|
26
|
+
font-family:var(--light-label-m-font-family, SB Sans Interface);
|
|
27
|
+
font-weight:var(--light-label-m-font-weight, Regular);
|
|
28
|
+
line-height:var(--light-label-m-line-height, 16px);
|
|
29
|
+
font-size:var(--light-label-m-font-size, 12px);
|
|
30
|
+
letter-spacing:var(--light-label-m-letter-spacing, 0px);
|
|
31
|
+
paragraph-spacing:var(--light-label-m-paragraph-spacing, 6.6px);
|
|
32
|
+
}
|
|
33
|
+
.separatorWithLabel[data-size=m]{
|
|
34
|
+
padding-top:var(--space-drop-list-item-m-container-separator-subheader-vertical-padding, 5px);
|
|
35
|
+
padding-bottom:var(--space-drop-list-item-m-container-separator-subheader-vertical-padding, 5px);
|
|
36
|
+
padding-left:var(--space-drop-list-item-m-container-horizontal-padding, 10px);
|
|
37
|
+
padding-right:var(--space-drop-list-item-m-container-horizontal-padding, 10px);
|
|
38
|
+
gap:var(--space-drop-list-item-m-container-gap, 8px);
|
|
39
|
+
height:var(--size-drop-list-item-m-container-separator-subheader-height, 40px);
|
|
40
|
+
}
|
|
41
|
+
.separatorWithLabel[data-size=m] .label[data-mode=primary]{
|
|
42
|
+
font-family:var(--sans-label-l-font-family, SB Sans Interface);
|
|
43
|
+
font-weight:var(--sans-label-l-font-weight, Semibold);
|
|
44
|
+
line-height:var(--sans-label-l-line-height, 20px);
|
|
45
|
+
font-size:var(--sans-label-l-font-size, 14px);
|
|
46
|
+
letter-spacing:var(--sans-label-l-letter-spacing, 0px);
|
|
47
|
+
paragraph-spacing:var(--sans-label-l-paragraph-spacing, 7.7px);
|
|
48
|
+
}
|
|
49
|
+
.separatorWithLabel[data-size=m] .label[data-mode=secondary]{
|
|
50
|
+
font-family:var(--light-label-l-font-family, SB Sans Interface);
|
|
51
|
+
font-weight:var(--light-label-l-font-weight, Regular);
|
|
52
|
+
line-height:var(--light-label-l-line-height, 20px);
|
|
53
|
+
font-size:var(--light-label-l-font-size, 14px);
|
|
54
|
+
letter-spacing:var(--light-label-l-letter-spacing, 0px);
|
|
55
|
+
paragraph-spacing:var(--light-label-l-paragraph-spacing, 7.7px);
|
|
56
|
+
}
|
|
57
|
+
.separatorWithLabel[data-size=l]{
|
|
58
|
+
padding-top:var(--space-drop-list-item-l-container-separator-subheader-vertical-padding, 6px);
|
|
59
|
+
padding-bottom:var(--space-drop-list-item-l-container-separator-subheader-vertical-padding, 6px);
|
|
60
|
+
padding-left:var(--space-drop-list-item-l-container-horizontal-padding, 12px);
|
|
61
|
+
padding-right:var(--space-drop-list-item-l-container-horizontal-padding, 12px);
|
|
62
|
+
gap:var(--space-drop-list-item-l-container-gap, 8px);
|
|
63
|
+
height:var(--size-drop-list-item-l-container-separator-subheader-height, 48px);
|
|
64
|
+
}
|
|
65
|
+
.separatorWithLabel[data-size=l] .label[data-mode=primary]{
|
|
66
|
+
font-family:var(--sans-title-m-font-family, SB Sans Interface);
|
|
67
|
+
font-weight:var(--sans-title-m-font-weight, Semibold);
|
|
68
|
+
line-height:var(--sans-title-m-line-height, 24px);
|
|
69
|
+
font-size:var(--sans-title-m-font-size, 16px);
|
|
70
|
+
letter-spacing:var(--sans-title-m-letter-spacing, 0.15px);
|
|
71
|
+
paragraph-spacing:var(--sans-title-m-paragraph-spacing, 8.8px);
|
|
72
|
+
}
|
|
73
|
+
.separatorWithLabel[data-size=l] .label[data-mode=secondary]{
|
|
74
|
+
font-family:var(--light-title-m-font-family, SB Sans Interface);
|
|
75
|
+
font-weight:var(--light-title-m-font-weight, Regular);
|
|
76
|
+
line-height:var(--light-title-m-line-height, 24px);
|
|
77
|
+
font-size:var(--light-title-m-font-size, 16px);
|
|
78
|
+
letter-spacing:var(--light-title-m-letter-spacing, 0.15px);
|
|
79
|
+
paragraph-spacing:var(--light-title-m-paragraph-spacing, 8.8px);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.separatorWithoutLabel{
|
|
83
|
+
display:flex;
|
|
84
|
+
align-items:flex-end;
|
|
85
|
+
box-sizing:border-box;
|
|
86
|
+
}
|
|
87
|
+
.separatorWithoutLabel[data-size=s]{
|
|
88
|
+
padding-top:var(--space-drop-list-item-s-container-separator-subheader-vertical-padding, 4px);
|
|
89
|
+
padding-bottom:var(--space-drop-list-item-s-container-separator-subheader-vertical-padding, 4px);
|
|
90
|
+
padding-left:var(--space-drop-list-item-s-container-horizontal-padding, 8px);
|
|
91
|
+
padding-right:var(--space-drop-list-item-s-container-horizontal-padding, 8px);
|
|
92
|
+
}
|
|
93
|
+
.separatorWithoutLabel[data-size=m]{
|
|
94
|
+
padding-top:var(--space-drop-list-item-m-container-separator-subheader-vertical-padding, 5px);
|
|
95
|
+
padding-bottom:var(--space-drop-list-item-m-container-separator-subheader-vertical-padding, 5px);
|
|
96
|
+
padding-left:var(--space-drop-list-item-m-container-horizontal-padding, 10px);
|
|
97
|
+
padding-right:var(--space-drop-list-item-m-container-horizontal-padding, 10px);
|
|
98
|
+
}
|
|
99
|
+
.separatorWithoutLabel[data-size=l]{
|
|
100
|
+
padding-top:var(--space-drop-list-item-l-container-separator-subheader-vertical-padding, 6px);
|
|
101
|
+
padding-bottom:var(--space-drop-list-item-l-container-separator-subheader-vertical-padding, 6px);
|
|
102
|
+
padding-left:var(--space-drop-list-item-l-container-horizontal-padding, 12px);
|
|
103
|
+
padding-right:var(--space-drop-list-item-l-container-horizontal-padding, 12px);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.label{
|
|
107
|
+
overflow:hidden;
|
|
108
|
+
flex-shrink:1;
|
|
109
|
+
}
|
|
110
|
+
.label[data-mode=primary]{
|
|
111
|
+
color:var(--sys-neutral-text-main, #41424e);
|
|
112
|
+
}
|
|
113
|
+
.label[data-mode=secondary]{
|
|
114
|
+
color:var(--sys-neutral-text-light, #8b8e9b);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
hr.divider{
|
|
118
|
+
flex:1;
|
|
119
|
+
width:auto;
|
|
120
|
+
min-width:0;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.selectButton{
|
|
124
|
+
display:flex;
|
|
125
|
+
justify-content:flex-end;
|
|
126
|
+
}
|
|
127
|
+
.selectButton[data-weight=primary]{
|
|
128
|
+
--divider-height:1px;
|
|
129
|
+
}
|
|
130
|
+
.selectButton[data-weight=secondary]{
|
|
131
|
+
--divider-height:0.5px;
|
|
132
|
+
}
|
|
133
|
+
.selectButton[data-size=s]{
|
|
134
|
+
transform:translateY(calc((var(--size-button-xs, 24px) - var(--sans-label-s-line-height, 14px)) / 2 - var(--divider-height, 0)));
|
|
135
|
+
}
|
|
136
|
+
.selectButton[data-size=m]{
|
|
137
|
+
transform:translateY(calc((var(--size-button-s, 32px) - var(--sans-label-m-line-height, 16px)) / 2 - var(--divider-height, 0)));
|
|
138
|
+
}
|
|
139
|
+
.selectButton[data-size=l]{
|
|
140
|
+
transform:translateY(calc((var(--size-button-m, 40px) - var(--sans-label-l-line-height, 20px)) / 2 - var(--divider-height, 0)));
|
|
141
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
import { ScrollProps as OriginalScrollProps } from '@snack-uikit/scroll';
|
|
3
|
+
export type SearchState = {
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
loading?: boolean;
|
|
6
|
+
value?: string;
|
|
7
|
+
onChange(value: string): void;
|
|
8
|
+
};
|
|
9
|
+
export type ScrollProps = {
|
|
10
|
+
/** Включить ли скролл для основной части списка */
|
|
11
|
+
scroll?: boolean;
|
|
12
|
+
/** Ссылка на элемент, обозначающий самый конец прокручиваемого списка */
|
|
13
|
+
scrollRef?: RefObject<HTMLElement>;
|
|
14
|
+
/** Ссылка на контейнер, который скроллится */
|
|
15
|
+
scrollContainerRef?: RefObject<HTMLElement>;
|
|
16
|
+
/** Отключает возможность взаимодействовать со скролбарами мышью. */
|
|
17
|
+
untouchableScrollbars?: boolean;
|
|
18
|
+
/** Колбек на скролл прокручиваемого списка */
|
|
19
|
+
onScroll?: OriginalScrollProps['onScroll'];
|
|
20
|
+
};
|