@consta/header 0.1.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.
Files changed (198) hide show
  1. package/Badges/Badges.css +1 -0
  2. package/Badges/Badges.d.ts +5 -0
  3. package/Badges/Badges.js +2 -0
  4. package/Badges/Badges.js.map +1 -0
  5. package/Badges/helpers.d.ts +20 -0
  6. package/Badges/helpers.js +2 -0
  7. package/Badges/helpers.js.map +1 -0
  8. package/Badges/index.d.ts +1 -0
  9. package/Badges/index.js +2 -0
  10. package/Badges/index.js.map +1 -0
  11. package/Badges/types.d.ts +27 -0
  12. package/Badges/types.js +2 -0
  13. package/Badges/types.js.map +1 -0
  14. package/Header/Header.css +1 -0
  15. package/Header/Header.d.ts +5 -0
  16. package/Header/Header.js +2 -0
  17. package/Header/Header.js.map +1 -0
  18. package/Header/HeaderLogin/HeaderLogin.d.ts +15 -0
  19. package/Header/HeaderLogin/HeaderLogin.js +2 -0
  20. package/Header/HeaderLogin/HeaderLogin.js.map +1 -0
  21. package/Header/HeaderLogin/index.d.ts +1 -0
  22. package/Header/HeaderLogin/index.js +2 -0
  23. package/Header/HeaderLogin/index.js.map +1 -0
  24. package/Header/HeaderLogo/HeaderLogo.d.ts +9 -0
  25. package/Header/HeaderLogo/HeaderLogo.js +2 -0
  26. package/Header/HeaderLogo/HeaderLogo.js.map +1 -0
  27. package/Header/HeaderLogo/index.d.ts +1 -0
  28. package/Header/HeaderLogo/index.js +2 -0
  29. package/Header/HeaderLogo/index.js.map +1 -0
  30. package/Header/index.d.ts +1 -0
  31. package/Header/index.js +2 -0
  32. package/Header/index.js.map +1 -0
  33. package/Header/types.d.ts +80 -0
  34. package/Header/types.js +2 -0
  35. package/Header/types.js.map +1 -0
  36. package/Layout/Layout.css +1 -0
  37. package/Layout/Layout.d.ts +8 -0
  38. package/Layout/Layout.js +2 -0
  39. package/Layout/Layout.js.map +1 -0
  40. package/Layout/LayoutRow/LayoutRow.css +1 -0
  41. package/Layout/LayoutRow/LayoutRow.d.ts +11 -0
  42. package/Layout/LayoutRow/LayoutRow.js +2 -0
  43. package/Layout/LayoutRow/LayoutRow.js.map +1 -0
  44. package/Layout/helpers.d.ts +2 -0
  45. package/Layout/helpers.js +2 -0
  46. package/Layout/helpers.js.map +1 -0
  47. package/Layout/index.d.ts +1 -0
  48. package/Layout/index.js +2 -0
  49. package/Layout/index.js.map +1 -0
  50. package/Layout/types.d.ts +17 -0
  51. package/Layout/types.js +2 -0
  52. package/Layout/types.js.map +1 -0
  53. package/Menu/Menu.css +1 -0
  54. package/Menu/Menu.d.ts +5 -0
  55. package/Menu/Menu.js +2 -0
  56. package/Menu/Menu.js.map +1 -0
  57. package/Menu/helpers.d.ts +31 -0
  58. package/Menu/helpers.js +2 -0
  59. package/Menu/helpers.js.map +1 -0
  60. package/Menu/index.d.ts +1 -0
  61. package/Menu/index.js +2 -0
  62. package/Menu/index.js.map +1 -0
  63. package/Menu/types.d.ts +35 -0
  64. package/Menu/types.js +2 -0
  65. package/Menu/types.js.map +1 -0
  66. package/MobileMenu/MobileMenu.css +1 -0
  67. package/MobileMenu/MobileMenu.d.ts +5 -0
  68. package/MobileMenu/MobileMenu.js +2 -0
  69. package/MobileMenu/MobileMenu.js.map +1 -0
  70. package/MobileMenu/index.d.ts +1 -0
  71. package/MobileMenu/index.js +2 -0
  72. package/MobileMenu/index.js.map +1 -0
  73. package/MobileMenu/types.d.ts +21 -0
  74. package/MobileMenu/types.js +2 -0
  75. package/MobileMenu/types.js.map +1 -0
  76. package/Notifications/Notifications.css +1 -0
  77. package/Notifications/Notifications.d.ts +4 -0
  78. package/Notifications/Notifications.js +2 -0
  79. package/Notifications/Notifications.js.map +1 -0
  80. package/Notifications/index.d.ts +1 -0
  81. package/Notifications/index.js +2 -0
  82. package/Notifications/index.js.map +1 -0
  83. package/Notifications/types.d.ts +8 -0
  84. package/Notifications/types.js +2 -0
  85. package/Notifications/types.js.map +1 -0
  86. package/NotificationsList/NotificationsList.css +1 -0
  87. package/NotificationsList/NotificationsList.d.ts +5 -0
  88. package/NotificationsList/NotificationsList.js +2 -0
  89. package/NotificationsList/NotificationsList.js.map +1 -0
  90. package/NotificationsList/helpers.d.ts +4150 -0
  91. package/NotificationsList/helpers.js +2 -0
  92. package/NotificationsList/helpers.js.map +1 -0
  93. package/NotificationsList/index.d.ts +1 -0
  94. package/NotificationsList/index.js +2 -0
  95. package/NotificationsList/index.js.map +1 -0
  96. package/NotificationsList/types.d.ts +88 -0
  97. package/NotificationsList/types.js +2 -0
  98. package/NotificationsList/types.js.map +1 -0
  99. package/README.md +80 -0
  100. package/TileMenu/TileMenu.css +1 -0
  101. package/TileMenu/TileMenu.d.ts +5 -0
  102. package/TileMenu/TileMenu.js +2 -0
  103. package/TileMenu/TileMenu.js.map +1 -0
  104. package/TileMenu/TileMenuItem/TileMenuItem.css +1 -0
  105. package/TileMenu/TileMenuItem/TileMenuItem.d.ts +12 -0
  106. package/TileMenu/TileMenuItem/TileMenuItem.js +2 -0
  107. package/TileMenu/TileMenuItem/TileMenuItem.js.map +1 -0
  108. package/TileMenu/TileMenuList/TileMenuList.css +1 -0
  109. package/TileMenu/TileMenuList/TileMenuList.d.ts +4 -0
  110. package/TileMenu/TileMenuList/TileMenuList.js +2 -0
  111. package/TileMenu/TileMenuList/TileMenuList.js.map +1 -0
  112. package/TileMenu/TileMenuList/types.d.ts +32 -0
  113. package/TileMenu/TileMenuList/types.js +2 -0
  114. package/TileMenu/TileMenuList/types.js.map +1 -0
  115. package/TileMenu/helpers.d.ts +274 -0
  116. package/TileMenu/helpers.js +2 -0
  117. package/TileMenu/helpers.js.map +1 -0
  118. package/TileMenu/index.d.ts +1 -0
  119. package/TileMenu/index.js +2 -0
  120. package/TileMenu/index.js.map +1 -0
  121. package/TileMenu/types.d.ts +48 -0
  122. package/TileMenu/types.js +2 -0
  123. package/TileMenu/types.js.map +1 -0
  124. package/VerticalMenu/VerticalMenu.css +1 -0
  125. package/VerticalMenu/VerticalMenu.d.ts +5 -0
  126. package/VerticalMenu/VerticalMenu.js +2 -0
  127. package/VerticalMenu/VerticalMenu.js.map +1 -0
  128. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.css +1 -0
  129. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.d.ts +4 -0
  130. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js +2 -0
  131. package/VerticalMenu/VerticalMenuItem/VerticalMenuItem.js.map +1 -0
  132. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.css +1 -0
  133. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.d.ts +5 -0
  134. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js +2 -0
  135. package/VerticalMenu/VerticalMenuLevel/VerticalMenuLevel.js.map +1 -0
  136. package/VerticalMenu/helpers.d.ts +31 -0
  137. package/VerticalMenu/helpers.js +2 -0
  138. package/VerticalMenu/helpers.js.map +1 -0
  139. package/VerticalMenu/index.d.ts +1 -0
  140. package/VerticalMenu/index.js +2 -0
  141. package/VerticalMenu/index.js.map +1 -0
  142. package/VerticalMenu/types.d.ts +63 -0
  143. package/VerticalMenu/types.js +2 -0
  144. package/VerticalMenu/types.js.map +1 -0
  145. package/__private__/AnimatedContextMenu/AnimatedContextMenu.css +1 -0
  146. package/__private__/AnimatedContextMenu/AnimatedContextMenu.d.ts +8 -0
  147. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js +2 -0
  148. package/__private__/AnimatedContextMenu/AnimatedContextMenu.js.map +1 -0
  149. package/__private__/components/NotificationCard/NotificationCard.css +1 -0
  150. package/__private__/components/NotificationCard/NotificationCard.d.ts +19 -0
  151. package/__private__/components/NotificationCard/NotificationCard.js +2 -0
  152. package/__private__/components/NotificationCard/NotificationCard.js.map +1 -0
  153. package/__private__/components/NotificationCard/helpers.d.ts +1 -0
  154. package/__private__/components/NotificationCard/helpers.js +2 -0
  155. package/__private__/components/NotificationCard/helpers.js.map +1 -0
  156. package/__private__/components/NotificationCard/index.d.ts +1 -0
  157. package/__private__/components/NotificationCard/index.js +2 -0
  158. package/__private__/components/NotificationCard/index.js.map +1 -0
  159. package/__private__/components/NotificationCard/types.d.ts +28 -0
  160. package/__private__/components/NotificationCard/types.js +2 -0
  161. package/__private__/components/NotificationCard/types.js.map +1 -0
  162. package/__private__/components/NotificationsActions/NotificationsActions.d.ts +2 -0
  163. package/__private__/components/NotificationsActions/NotificationsActions.js +2 -0
  164. package/__private__/components/NotificationsActions/NotificationsActions.js.map +1 -0
  165. package/__private__/components/NotificationsActions/helpers.d.ts +23 -0
  166. package/__private__/components/NotificationsActions/helpers.js +2 -0
  167. package/__private__/components/NotificationsActions/helpers.js.map +1 -0
  168. package/__private__/components/NotificationsActions/index.d.ts +1 -0
  169. package/__private__/components/NotificationsActions/index.js +2 -0
  170. package/__private__/components/NotificationsActions/index.js.map +1 -0
  171. package/__private__/components/NotificationsActions/types.d.ts +32 -0
  172. package/__private__/components/NotificationsActions/types.js +2 -0
  173. package/__private__/components/NotificationsActions/types.js.map +1 -0
  174. package/__private__/components/Sidebar/Sidebar.css +1 -0
  175. package/__private__/components/Sidebar/Sidebar.d.ts +9 -0
  176. package/__private__/components/Sidebar/Sidebar.js +2 -0
  177. package/__private__/components/Sidebar/Sidebar.js.map +1 -0
  178. package/__private__/components/Sidebar/index.d.ts +1 -0
  179. package/__private__/components/Sidebar/index.js +2 -0
  180. package/__private__/components/Sidebar/index.js.map +1 -0
  181. package/__private__/hooks/useHideElementsLine.d.ts +8 -0
  182. package/__private__/hooks/useHideElementsLine.js +2 -0
  183. package/__private__/hooks/useHideElementsLine.js.map +1 -0
  184. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.css +1 -0
  185. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.d.ts +4 -0
  186. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js +2 -0
  187. package/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate.js.map +1 -0
  188. package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.css +1 -0
  189. package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.d.ts +8 -0
  190. package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.js +2 -0
  191. package/__private__/mixs/MixPopoverArrow/MixPopoverArrow.js.map +1 -0
  192. package/__private__/utils/bem.d.ts +1 -0
  193. package/__private__/utils/bem.js +2 -0
  194. package/__private__/utils/bem.js.map +1 -0
  195. package/__private__/utils/types/PropsWithHTMLAttributes.d.ts +3 -0
  196. package/__private__/utils/types/PropsWithHTMLAttributes.js +2 -0
  197. package/__private__/utils/types/PropsWithHTMLAttributes.js.map +1 -0
  198. package/package.json +41 -0
@@ -0,0 +1,2 @@
1
+ import _objectSpread from"@babel/runtime/helpers/objectSpread";import{getGroups as constaGetGroups}from"@consta/uikit/__internal__/src/utils/getGroups";import{format,isToday,isYesterday,startOfDay}from"date-fns";const defaultGetActionIcon=a=>a.icon,defaultGetActionLabel=a=>a.label,defaultGetActionOnClick=a=>a.onClick,defaultGetGroupId=a=>a.id,defaultGetGroupLabel=a=>a.label,defaultGetItemActions=a=>a.actions,defaultGetItemBadges=a=>a.badges,defaultGetItemDate=a=>a.date,defaultGetItemDescription=a=>a.description,defaultGetItemGroup=a=>a.group,defaultGetItemImage=a=>a.image,defaultGetItemLabel=a=>a.label,defaultGetItemRead=a=>a.read,defaultGetItemView=a=>a.view;export function withDefaultGetters(a){return _objectSpread({},a,{getActionIcon:a.getActionIcon||defaultGetActionIcon,getActionLabel:a.getActionLabel||defaultGetActionLabel,getActionOnClick:a.getActionOnClick||defaultGetActionOnClick,getGroupId:a.getGroupId||defaultGetGroupId,getGroupLabel:a.getGroupLabel||defaultGetGroupLabel,getItemActions:a.getItemActions||defaultGetItemActions,getItemBadges:a.getItemBadges||defaultGetItemBadges,getItemDate:a.getItemDate||defaultGetItemDate,getItemDescription:a.getItemDescription||defaultGetItemDescription,getItemGroup:a.getItemGroup||defaultGetItemGroup,getItemImage:a.getItemImage||defaultGetItemImage,getItemLabel:a.getItemLabel||defaultGetItemLabel,getItemRead:a.getItemRead||defaultGetItemRead,getItemView:a.getItemView||defaultGetItemView})}export const noGroupKey="no-group";export const defaultGroupLabelFormat=a=>isToday(a)?"\u0421\u0435\u0433\u043E\u0434\u043D\u044F":isYesterday(a)?"\u0412\u0447\u0435\u0440\u0430":format(a,"dd.MM.yyyy");const sortGroup=(c,a)=>c.key<a.key?1:c.key>a.key?-1:0;export const getGroups=(a,b,c,d,e,f)=>{if(c){return constaGetGroups(a,a=>{const b=e(a);return b?startOfDay(b).getTime():void 0},void 0,void 0,sortGroup,noGroupKey)}return constaGetGroups(a,d,b,f,void 0,noGroupKey)};
2
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/NotificationsList/helpers.ts"],"names":["getGroups","constaGetGroups","format","isToday","isYesterday","startOfDay","defaultGetActionIcon","action","icon","defaultGetActionLabel","label","defaultGetActionOnClick","onClick","defaultGetGroupId","group","id","defaultGetGroupLabel","defaultGetItemActions","item","actions","defaultGetItemBadges","badges","defaultGetItemDate","date","defaultGetItemDescription","description","defaultGetItemGroup","defaultGetItemImage","image","defaultGetItemLabel","defaultGetItemRead","read","defaultGetItemView","view","withDefaultGetters","props","getActionIcon","getActionLabel","getActionOnClick","getGroupId","getGroupLabel","getItemActions","getItemBadges","getItemDate","getItemDescription","getItemGroup","getItemImage","getItemLabel","getItemRead","getItemView","noGroupKey","defaultGroupLabelFormat","timestamp","sortGroup","a","b","key","items","groups","groupByDay","getTime"],"mappings":"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","sourcesContent":["import {\n NotificationsListPropGetActionIcon,\n NotificationsListPropGetActionLabel,\n NotificationsListPropGetActionOnClick,\n NotificationsListPropGetGroupId,\n NotificationsListPropGetGroupLabel,\n NotificationsListPropGetItemActions,\n NotificationsListPropGetItemBadges,\n NotificationsListPropGetItemDate,\n NotificationsListPropGetItemDescription,\n NotificationsListPropGetItemGroup,\n NotificationsListPropGetItemImage,\n NotificationsListPropGetItemLabel,\n NotificationsListPropGetItemRead,\n NotificationsListPropGetItemView,\n DefaultAction,\n DefaultGroup,\n DefaultItem,\n NotificationsListProps,\n NotificationsListPropGroupLabelFormat,\n} from './types'\n\nimport { getGroups as constaGetGroups } from '@consta/uikit/__internal__/src/utils/getGroups'\nimport { format, isToday, isYesterday, startOfDay } from 'date-fns'\n\nconst defaultGetActionIcon: NotificationsListPropGetActionIcon<DefaultAction> = action =>\n action.icon\nconst defaultGetActionLabel: NotificationsListPropGetActionLabel<DefaultAction> = action =>\n action.label\nconst defaultGetActionOnClick: NotificationsListPropGetActionOnClick<DefaultAction> = action =>\n action.onClick\nconst defaultGetGroupId: NotificationsListPropGetGroupId<DefaultGroup> = group => group.id\nconst defaultGetGroupLabel: NotificationsListPropGetGroupLabel<DefaultGroup> = group => group.label\nconst defaultGetItemActions: NotificationsListPropGetItemActions<DefaultItem> = item => item.actions\nconst defaultGetItemBadges: NotificationsListPropGetItemBadges<DefaultItem> = item => item.badges\nconst defaultGetItemDate: NotificationsListPropGetItemDate<DefaultItem> = item => item.date\nconst defaultGetItemDescription: NotificationsListPropGetItemDescription<DefaultItem> = item =>\n item.description\nconst defaultGetItemGroup: NotificationsListPropGetItemGroup<DefaultItem> = item => item.group\nconst defaultGetItemImage: NotificationsListPropGetItemImage<DefaultItem> = item => item.image\nconst defaultGetItemLabel: NotificationsListPropGetItemLabel<DefaultItem> = item => item.label\nconst defaultGetItemRead: NotificationsListPropGetItemRead<DefaultItem> = item => item.read\nconst defaultGetItemView: NotificationsListPropGetItemView<DefaultItem> = item => item.view\n\nexport function withDefaultGetters<ITEM, GROUP, ACTION>(\n props: NotificationsListProps<ITEM, GROUP, ACTION>\n) {\n return {\n ...props,\n getActionIcon: props.getActionIcon || defaultGetActionIcon,\n getActionLabel: props.getActionLabel || defaultGetActionLabel,\n getActionOnClick: props.getActionOnClick || defaultGetActionOnClick,\n getGroupId: props.getGroupId || defaultGetGroupId,\n getGroupLabel: props.getGroupLabel || defaultGetGroupLabel,\n getItemActions: props.getItemActions || defaultGetItemActions,\n getItemBadges: props.getItemBadges || defaultGetItemBadges,\n getItemDate: props.getItemDate || defaultGetItemDate,\n getItemDescription: props.getItemDescription || defaultGetItemDescription,\n getItemGroup: props.getItemGroup || defaultGetItemGroup,\n getItemImage: props.getItemImage || defaultGetItemImage,\n getItemLabel: props.getItemLabel || defaultGetItemLabel,\n getItemRead: props.getItemRead || defaultGetItemRead,\n getItemView: props.getItemView || defaultGetItemView,\n }\n}\n\ntype ReturnedGroup<ITEM, GROUP> = {\n items: ITEM[]\n key: string | number\n group?: GROUP\n groupIndex: number\n}\n\nexport const noGroupKey = 'no-group'\n\nexport const defaultGroupLabelFormat: NotificationsListPropGroupLabelFormat<true> = timestamp => {\n if (isToday(timestamp)) {\n return 'Сегодня'\n }\n if (isYesterday(timestamp)) {\n return 'Вчера'\n }\n return format(timestamp, 'dd.MM.yyyy')\n}\n\nconst sortGroup = (a: { key: string | number }, b: { key: string | number }) => {\n if (a.key < b.key) {\n return 1\n }\n if (a.key > b.key) {\n return -1\n }\n return 0\n}\n\nexport const getGroups = <ITEM, GROUP>(\n items: ITEM[],\n groups: GROUP[] | undefined,\n groupByDay: boolean,\n getItemGroup: NotificationsListPropGetItemGroup<ITEM>,\n getItemDate: NotificationsListPropGetItemDate<ITEM>,\n getGroupId: NotificationsListPropGetGroupId<GROUP>\n): Array<ReturnedGroup<ITEM, GROUP>> => {\n if (groupByDay) {\n const getItemGroupByDate = (item: ITEM) => {\n const date = getItemDate(item)\n return date ? startOfDay(date).getTime() : undefined\n }\n\n return constaGetGroups<ITEM, GROUP>(\n items,\n getItemGroupByDate,\n undefined,\n undefined,\n sortGroup,\n noGroupKey\n )\n }\n return constaGetGroups(items, getItemGroup, groups, getGroupId, undefined, noGroupKey)\n}\n"],"file":"helpers.js"}
@@ -0,0 +1 @@
1
+ export * from "./NotificationsList";
@@ -0,0 +1,2 @@
1
+ export*from"./NotificationsList";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/NotificationsList/index.ts"],"names":[],"mappings":"AAAA","sourcesContent":["export * from './NotificationsList'\n"],"file":"index.js"}
@@ -0,0 +1,88 @@
1
+ /// <reference types="react" />
2
+ import { BadgePropStatus } from '@consta/uikit/Badge';
3
+ import { IconProps } from '@consta/uikit/Icon';
4
+ import { PropsWithHTMLAttributesAndRef } from "../__private__/utils/types/PropsWithHTMLAttributes";
5
+ export declare type DefaultAction = {
6
+ label: string;
7
+ onClick?: React.EventHandler<React.MouseEvent>;
8
+ icon?: React.FC<IconProps>;
9
+ };
10
+ export declare type Badge = {
11
+ label: string;
12
+ status?: BadgePropStatus;
13
+ };
14
+ export declare type DefaultGroup = {
15
+ label: string;
16
+ id: string;
17
+ };
18
+ export declare type DefaultItem = {
19
+ label: string;
20
+ description?: string;
21
+ image?: string;
22
+ read?: boolean;
23
+ date?: Date;
24
+ badges?: Badge[];
25
+ actions?: DefaultAction[];
26
+ onClick?: React.EventHandler<React.MouseEvent>;
27
+ group?: string;
28
+ view?: 'default' | 'user';
29
+ };
30
+ export declare type NotificationsListPropGetItemLabel<ITEM> = (item: ITEM) => string;
31
+ export declare type NotificationsListPropGetItemDescription<ITEM> = (item: ITEM) => string | undefined;
32
+ export declare type NotificationsListPropGetItemImage<ITEM> = (item: ITEM) => string | undefined;
33
+ export declare type NotificationsListPropGetItemRead<ITEM> = (item: ITEM) => boolean | undefined;
34
+ export declare type NotificationsListPropGetItemDate<ITEM> = (item: ITEM) => Date | undefined;
35
+ export declare type NotificationsListPropGetItemBadges<ITEM> = (item: ITEM) => Badge[] | undefined;
36
+ export declare type NotificationsListPropGetItemActions<ITEM> = (item: ITEM) => DefaultAction[] | undefined;
37
+ export declare type NotificationsListPropGetItemGroup<ITEM> = (item: ITEM) => string | undefined;
38
+ export declare type NotificationsListPropGetItemView<ITEM> = (item: ITEM) => 'default' | 'user' | undefined;
39
+ export declare type NotificationsListPropItemDateFormat = (date: Date) => string;
40
+ export declare type NotificationsListPropGetActionLabel<ACTION> = (action: ACTION) => string;
41
+ export declare type NotificationsListPropGetActionIcon<ACTION> = (action: ACTION) => React.FC<IconProps> | undefined;
42
+ export declare type NotificationsListPropGetActionOnClick<ACTION> = (action: ACTION) => React.EventHandler<React.MouseEvent> | undefined;
43
+ export declare type NotificationsListPropGetGroupLabel<GROUP> = (group: GROUP) => string;
44
+ export declare type NotificationsListPropGetGroupId<GROUP> = (group: GROUP) => string | number;
45
+ export declare type NotificationsListPropGroupLabelFormat<GROUP_BY_DAY> = GROUP_BY_DAY extends true ? (timestamp: number) => string : never;
46
+ export declare type Props<ITEM, GROUP, ACTION, GROUP_BY_DAY extends boolean> = {
47
+ children?: never;
48
+ items: ITEM[];
49
+ itemDateFormat?: NotificationsListPropItemDateFormat;
50
+ title?: string;
51
+ actions?: ACTION[];
52
+ getItemLabel?: NotificationsListPropGetItemLabel<ITEM>;
53
+ getItemDescription?: NotificationsListPropGetItemDescription<ITEM>;
54
+ getItemImage?: NotificationsListPropGetItemImage<ITEM>;
55
+ getItemRead?: NotificationsListPropGetItemRead<ITEM>;
56
+ getItemDate?: NotificationsListPropGetItemDate<ITEM>;
57
+ getItemBadges?: NotificationsListPropGetItemBadges<ITEM>;
58
+ getItemActions?: NotificationsListPropGetItemActions<ITEM>;
59
+ getItemGroup?: NotificationsListPropGetItemGroup<ITEM>;
60
+ getItemView?: NotificationsListPropGetItemView<ITEM>;
61
+ getActionLabel?: NotificationsListPropGetActionLabel<ACTION>;
62
+ getActionIcon?: NotificationsListPropGetActionIcon<ACTION>;
63
+ getActionOnClick?: NotificationsListPropGetActionOnClick<ACTION>;
64
+ getGroupLabel?: NotificationsListPropGetGroupLabel<GROUP>;
65
+ getGroupId?: NotificationsListPropGetGroupId<GROUP>;
66
+ groupByDay?: GROUP_BY_DAY;
67
+ groupLabelFormat?: NotificationsListPropGroupLabelFormat<GROUP_BY_DAY>;
68
+ groups?: GROUP_BY_DAY extends true ? never : GROUP[];
69
+ onClose?: React.EventHandler<React.MouseEvent>;
70
+ } & (ACTION extends {
71
+ label: DefaultAction['label'];
72
+ } ? {} : {
73
+ getActionLabel: NotificationsListPropGetItemActions<ACTION>;
74
+ }) & (GROUP extends {
75
+ label: DefaultGroup['label'];
76
+ } ? {} : {
77
+ getGroupLabel: NotificationsListPropGetGroupLabel<GROUP>;
78
+ }) & (GROUP extends {
79
+ id: DefaultGroup['id'];
80
+ } ? {} : {
81
+ getGroupId: NotificationsListPropGetGroupId<GROUP>;
82
+ }) & (ITEM extends {
83
+ label: DefaultItem['label'];
84
+ } ? {} : {
85
+ getItemLabel: NotificationsListPropGetItemLabel<ITEM>;
86
+ });
87
+ export declare type NotificationsListProps<ITEM = DefaultItem, GROUP = DefaultGroup, ACTION = DefaultAction, GROUP_BY_DAY extends boolean = false> = PropsWithHTMLAttributesAndRef<Props<ITEM, GROUP, ACTION, GROUP_BY_DAY>, HTMLDivElement>;
88
+ export declare type NotificationsListComponent = <ITEM = DefaultItem, GROUP = DefaultGroup, ACTION = DefaultAction, GROUP_BY_DAY extends boolean = false>(props: NotificationsListProps<ITEM, GROUP, ACTION, GROUP_BY_DAY>) => React.ReactElement | null;
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
package/README.md ADDED
@@ -0,0 +1,80 @@
1
+ # [Дизайн-система Consta](http://consta.gazprom-neft.ru/) | Header
2
+
3
+ # Как использовать
4
+
5
+ ## Установите пакет
6
+
7
+ ```sh
8
+ # NPM
9
+ $ npm install @consta/table
10
+
11
+ # Yarn
12
+ $ yarn add @consta/table
13
+ ```
14
+
15
+ ## Подключите зависимости
16
+
17
+ Чтобы начать работу, установите библиотеку [`@consta/uikit`](https://www.npmjs.com/package/@consta/uikit) и [настройте тему](https://consta-uikit.vercel.app/?path=/docs/components-theme--playground).
18
+
19
+ ### Можно использовать компоненты
20
+
21
+ Например, так:
22
+
23
+ ```js
24
+ import { Theme, presetGpnDefault } from '@consta/uikit/Theme'
25
+ import { Header } from '@consta/header'
26
+
27
+ const App = () => {
28
+ return (
29
+ <Theme preset={presetGpnDefault}>
30
+ <Header />
31
+ </Theme>
32
+ )
33
+ }
34
+ ```
35
+
36
+ ## Разработка
37
+
38
+ ### Подготовка окружения
39
+
40
+ Рабочее окружение должно содержать NodeJS и Yarn, необходимые версии можно узнать в файле [package.json](./package.json) в блоке **engines**.
41
+
42
+ Чтобы установить зависимости, выполните команду:
43
+
44
+ ```sh
45
+ $ yarn install
46
+ ```
47
+
48
+ ### Основные команды
49
+
50
+ ```sh
51
+ # Сборка и старт Storybook
52
+ $ yarn start
53
+
54
+ # Сборка для production
55
+ $ yarn build
56
+
57
+ # Линтинг всех файлов
58
+ $ yarn lint
59
+
60
+ # Форматирование всех файлов prettier
61
+ $ yarn format
62
+
63
+ # Запуск юнит-тестов
64
+ $ yarn unit
65
+
66
+ # Запуск юнит-тестов, тестирование TS, линтинг файлов
67
+ $ yarn test
68
+ ```
69
+
70
+ ## Документация
71
+
72
+ [Посмотреть документацию и примеры](https://rc-table.vercel.app/)
73
+
74
+ ## Контрибьюторам
75
+
76
+ Будем рады, если вы захотите принять участие в разработке дизайн-системы =) Но сначала прочитайте [инструкцию для контрибьюторов](https://consta-uikit.vercel.app/?path=/docs/common-develop-contributors--page).
77
+
78
+ ## Лицензия
79
+
80
+ Дизайн-систему можно использовать бесплатно, она распространяется ПАО «Газпром нефть» на условиях открытой [лицензии MIT](https://consta.gazprom-neft.ru/static/licence_mit.pdf).
@@ -0,0 +1 @@
1
+ .che--TileMenu-List{display:grid}.che--TileMenu-List_view_cards{grid-template-columns:repeat(3,1fr);grid-row-gap:var(--space-2xs);grid-column-gap:var(--space-2xs)}.che--TileMenu-List_view_lines{grid-template-columns:repeat(1,1fr)}.che--TileMenu-List_view_twoLines{grid-template-columns:repeat(2,1fr);grid-column-gap:calc(var(--space-xl) + var(--space-2xs))}.che--TileMenu-Popover{--popover-bg-color:var(--color-bg-default);--popover-arrow-bg-color:var(--popover-bg-color);position:relative;width:calc(100vw - var(--space-l));max-width:var(--popover-max-width);border-radius:var(--control-radius);background:var(--popover-bg-color);box-shadow:var(--shadow-layer)}.che--TileMenu-Popover_view_cards{--popover-max-width:320px}.che--TileMenu-Popover_view_lines{--popover-max-width:520px}.che--TileMenu-Popover_view_twoLines{--popover-max-width:1000px}.che--TileMenu-ListWrapper{overflow:hidden;border-radius:var(--control-radius)}
@@ -0,0 +1,5 @@
1
+ import { TileMenuComponent } from "./types";
2
+ import './TileMenu.css';
3
+ export declare const cnTileMenu: import("@bem-react/classname").ClassNameFormatter;
4
+ export declare const TileMenu: TileMenuComponent;
5
+ export * from "./types";
@@ -0,0 +1,2 @@
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React,{forwardRef,useRef,useState,useCallback}from"react";import{cn}from"../__private__/utils/bem";import{IconBento}from"@consta/uikit/IconBento";import{Button}from"@consta/uikit/Button";import{CSSTransition}from"react-transition-group";import{useFlag}from"@consta/uikit/useFlag";import{useForkRef}from"@consta/uikit/useForkRef";import{Popover}from"@consta/uikit/Popover";import{cnMixPopoverArrow}from"../__private__/mixs/MixPopoverArrow/MixPopoverArrow";import{cnMixPopoverAnimateForCssTransition}from"../__private__/mixs/MixPopoverAnimate/MixPopoverAnimate";import{Sidebar}from"../__private__/components/Sidebar";import{tileMenuPropViewDefault}from"./types";import{TileMenuList}from"./TileMenuList/TileMenuList";import"./TileMenu.css";export const cnTileMenu=cn("TileMenu");const ARROW_SIZE=6,ARROW_OFFSET=10;function TileMenuRender(a,b){var c;const{view:p=tileMenuPropViewDefault,items:d,isMobile:e,className:f,children:g,listClassName:h,getItemDescription:i,getItemHref:j,getItemImage:k,getItemOnClick:l,getItemTitle:m,title:n,onItemClick:o}=a,q=_objectWithoutProperties(a,["view","items","isMobile","className","children","listClassName","getItemDescription","getItemHref","getItemImage","getItemOnClick","getItemTitle","title","onItemClick"]),r=useRef(null),[s,t]=useState(void 0),[u,{toogle:v,off:w}]=useFlag(),x=useCallback(a=>{t(a)},[]),y={className:h,getItemDescription:i,getItemHref:j,getItemImage:k,getItemOnClick:l,getItemTitle:m,items:d,view:p,onItemClick:o},z="number"==typeof(null===(c=a.style)||void 0===c?void 0:c.zIndex)?a.style.zIndex+1:void 0;return React.createElement(React.Fragment,null,React.createElement(Button,Object.assign({},q,{size:"s",view:"clear",className:cnTileMenu(null,[f]),iconLeft:IconBento,ref:useForkRef([b,r]),onClick:v})),e?_jsx(Sidebar,{isOpen:u,onClickOutside:w,onClose:w,title:n,style:{zIndex:z}},void 0,React.createElement(TileMenuList,y)):_jsx(CSSTransition,{classNames:cnMixPopoverAnimateForCssTransition,timeout:200,unmountOnExit:!0,in:u},void 0,_jsx(Popover,{className:cnTileMenu("Popover",{view:p}),anchorRef:r,arrowOffset:ARROW_OFFSET+ARROW_SIZE,offset:10,onSetDirection:x,style:{"--popover-arrow-size":`${ARROW_SIZE}px`,"--popover-arrow-offset":`${ARROW_OFFSET}px`,zIndex:z},onClickOutside:w},void 0,_jsx("div",{className:cnMixPopoverArrow({direction:s})}),_jsx("div",{className:cnTileMenu("ListWrapper")},void 0,React.createElement(TileMenuList,y)))))}export const TileMenu=forwardRef(TileMenuRender);export*from"./types";
2
+ //# sourceMappingURL=TileMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/TileMenu/TileMenu.tsx"],"names":["React","forwardRef","useRef","useState","useCallback","cn","IconBento","Button","CSSTransition","useFlag","useForkRef","Popover","cnMixPopoverArrow","cnMixPopoverAnimateForCssTransition","Sidebar","tileMenuPropViewDefault","TileMenuList","cnTileMenu","ARROW_SIZE","ARROW_OFFSET","TileMenuRender","props","ref","view","items","isMobile","className","children","listClassName","getItemDescription","getItemHref","getItemImage","getItemOnClick","getItemTitle","title","onItemClick","otherProps","buttonRef","direction","setDirection","visibleMenu","toogle","off","onSetDirection","dir","listProps","elementZIndex","style","zIndex","TileMenu"],"mappings":"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","sourcesContent":["import React, { forwardRef, useRef, useState, useCallback } from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { IconBento } from '@consta/uikit/IconBento'\nimport { Button } from '@consta/uikit/Button'\nimport { CSSTransition } from 'react-transition-group'\nimport { useFlag } from '@consta/uikit/useFlag'\nimport { useForkRef } from '@consta/uikit/useForkRef'\nimport { Popover, Direction } from '@consta/uikit/Popover'\nimport { cnMixPopoverArrow } from '@/__private__/mixs/MixPopoverArrow/MixPopoverArrow'\nimport { cnMixPopoverAnimateForCssTransition } from '@/__private__/mixs/MixPopoverAnimate/MixPopoverAnimate'\nimport { Sidebar } from '@/__private__/components/Sidebar'\nimport { TileMenuProps, tileMenuPropViewDefault, TileMenuComponent } from './types'\n\nimport { TileMenuList } from './TileMenuList/TileMenuList'\n\nimport './TileMenu.css'\n\nexport const cnTileMenu = cn('TileMenu')\n\nconst ARROW_SIZE = 6\nconst ARROW_OFFSET = 10\n\nfunction TileMenuRender(props: TileMenuProps, ref: React.Ref<HTMLButtonElement>) {\n const {\n view = tileMenuPropViewDefault,\n items,\n isMobile,\n className,\n children,\n listClassName,\n getItemDescription,\n getItemHref,\n getItemImage,\n getItemOnClick,\n getItemTitle,\n title,\n onItemClick,\n ...otherProps\n } = props\n\n const buttonRef = useRef<HTMLButtonElement>(null)\n\n const [direction, setDirection] = useState<Direction | undefined>(undefined)\n\n const [visibleMenu, { toogle, off }] = useFlag()\n\n const onSetDirection = useCallback((dir: Direction) => {\n setDirection(dir)\n }, [])\n\n const listProps = {\n className: listClassName,\n getItemDescription,\n getItemHref,\n getItemImage,\n getItemOnClick,\n getItemTitle,\n items,\n view,\n onItemClick,\n }\n\n const elementZIndex = typeof props.style?.zIndex === 'number' ? props.style.zIndex + 1 : undefined\n\n return (\n <>\n <Button\n {...otherProps}\n size=\"s\"\n view=\"clear\"\n className={cnTileMenu(null, [className])}\n iconLeft={IconBento}\n ref={useForkRef([ref, buttonRef])}\n onClick={toogle}\n />\n {isMobile ? (\n <Sidebar\n isOpen={visibleMenu}\n onClickOutside={off}\n onClose={off}\n title={title}\n style={{ zIndex: elementZIndex }}\n >\n <TileMenuList {...listProps} />\n </Sidebar>\n ) : (\n <CSSTransition\n classNames={cnMixPopoverAnimateForCssTransition}\n timeout={200}\n unmountOnExit\n in={visibleMenu}\n >\n <Popover\n className={cnTileMenu('Popover', { view })}\n anchorRef={buttonRef}\n arrowOffset={ARROW_OFFSET + ARROW_SIZE}\n offset={ARROW_SIZE + 4}\n onSetDirection={onSetDirection}\n style={{\n ['--popover-arrow-size' as string]: `${ARROW_SIZE}px`,\n ['--popover-arrow-offset' as string]: `${ARROW_OFFSET}px`,\n zIndex: elementZIndex,\n }}\n onClickOutside={off}\n >\n <div className={cnMixPopoverArrow({ direction })} />\n <div className={cnTileMenu('ListWrapper')}>\n <TileMenuList {...listProps} />\n </div>\n </Popover>\n </CSSTransition>\n )}\n </>\n )\n}\n\nexport const TileMenu = forwardRef(TileMenuRender) as TileMenuComponent\n\nexport * from './types'\n"],"file":"TileMenu.js"}
@@ -0,0 +1 @@
1
+ .che--TileMenuItem{--tile-menu-item-image-size:calc(var(--space-4xl) - var(--space-2xs));display:flex;cursor:pointer;text-decoration:none;color:var(--color-typo-primary)}.che--TileMenuItem_view_card{--tile-menu-item-image-margin:0 auto var(--space-xs) auto;flex-direction:column;border-radius:var(--control-radius);transition:background .2s}.che--TileMenuItem_view_card:hover{background:var(--color-control-bg-clear-hover)}.che--TileMenuItem_view_line{--tile-menu-item-image-margin:0 var(--space-xs) 0 0}.che--TileMenuItem_view_line:hover{--tile-menu-item-title-color:var(--color-typo-link-hover)}.che--TileMenuItem-ImageWrapper{overflow:hidden;flex:none;width:var(--tile-menu-item-image-size);height:var(--tile-menu-item-image-size);margin:var(--tile-menu-item-image-margin);border-radius:50%}.che--TileMenuItem-ImageWrapper>*{width:100%;height:100%}.che--TileMenuItem-Title{color:var(--tile-menu-item-title-color);transition:color .2s}
@@ -0,0 +1,12 @@
1
+ import './TileMenuItem.css';
2
+ import React from 'react';
3
+ export declare const tileMenuItemPropView: readonly ["card", "line"];
4
+ export declare type TileMenuItemPropView = typeof tileMenuItemPropView[number];
5
+ declare type TileMenuItemProps = {
6
+ image?: string | React.FC;
7
+ title: string;
8
+ description?: string;
9
+ view?: TileMenuItemPropView;
10
+ };
11
+ export declare const TileMenuItem: import("@consta/uikit/__internal__/src/utils/types/PropsWithAsAttributes").ComponentWithAs<TileMenuItemProps, "div">;
12
+ export {};
@@ -0,0 +1,2 @@
1
+ import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import _jsx from"@babel/runtime/helpers/jsx";import"./TileMenuItem.css";import React from"react";import{cn}from"../../__private__/utils/bem";import{Text}from"@consta/uikit/Text";import{cnMixSpace}from"@consta/uikit/MixSpace";import{forwardRefWithAs}from"@consta/uikit/__internal__/src/utils/types/PropsWithAsAttributes";export const tileMenuItemPropView=["card","line"];const cnTileMenuItem=cn("TileMenuItem"),renderImage=(a,b)=>{if("string"==typeof a)return _jsx("img",{src:a,alt:b});return _jsx(a,{})};export const TileMenuItem=forwardRefWithAs((a,b)=>{const{image:c,className:d,title:e,description:f,view:g="line",as:h="div"}=a,i=_objectWithoutProperties(a,["image","className","title","description","view","as"]),j="card"===g,k="line"===g;return React.createElement(h,Object.assign({},i,{ref:b,className:cnTileMenuItem({view:g},[j?cnMixSpace({p:"s",pT:"m"}):cnMixSpace({pV:"s"}),d])}),c&&_jsx("div",{className:cnTileMenuItem("ImageWrapper")},void 0,renderImage(c,e)),_jsx("div",{className:cnTileMenuItem("ContentWrapper")},void 0,_jsx(Text,{weight:k?"bold":void 0,align:j?"center":void 0,className:cnTileMenuItem("Title",[k?cnMixSpace({pB:"2xs"}):void 0])},void 0,e),f&&k&&_jsx(Text,{view:"secondary",className:cnTileMenuItem("Description")},void 0,f)))});
2
+ //# sourceMappingURL=TileMenuItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/TileMenu/TileMenuItem/TileMenuItem.tsx"],"names":["React","cn","Text","cnMixSpace","forwardRefWithAs","tileMenuItemPropView","cnTileMenuItem","renderImage","image","title","TileMenuItem","props","ref","className","description","view","as","otherProps","viewIsCard","viewIsLine","p","pT","pV","pB"],"mappings":"kIAAA,2BAEA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAEA,OAASC,IAAT,KAAqB,oBAArB,CACA,OAASC,UAAT,KAA2B,wBAA3B,CACA,OAASC,gBAAT,KAAiC,kEAAjC,CAEA,MAAO,MAAMC,CAAAA,oBAAoB,CAAG,CAAC,MAAD,CAAS,MAAT,CAA7B,C,KAUDC,CAAAA,cAAc,CAAGL,EAAE,CAAC,cAAD,C,CAEnBM,WAAW,CAAG,CAACC,CAAD,CAA2BC,CAA3B,GAA6C,CAC/D,GAAqB,QAAjB,QAAOD,CAAAA,CAAX,CACE,MAAO,aAAK,GAAG,CAAEA,CAAV,CAAiB,GAAG,CAAEC,CAAtB,EAAP,CAGF,MAAO,MADgBD,CAChB,IACR,C,CAED,MAAO,MAAME,CAAAA,YAAY,CAAGN,gBAAgB,CAAoB,CAACO,CAAD,CAAQC,CAAR,GAAgB,MACxE,CAAEJ,KAAK,CAALA,CAAF,CAASK,SAAS,CAATA,CAAT,CAAoBJ,KAAK,CAALA,CAApB,CAA2BK,WAAW,CAAXA,CAA3B,CAAwCC,IAAI,CAAJA,CAAI,CAAG,MAA/C,CAAuDC,EAAE,CAAFA,CAAE,CAAG,KAA5D,EAAqFL,CADb,CACFM,CADE,0BACaN,CADb,0DAIxEO,CAAU,CAAY,MAAT,GAAAH,CAJ2D,CAKxEI,CAAU,CAAY,MAAT,GAAAJ,CAL2D,CAO9E,MACE,qBALUC,CAKV,kBACMC,CADN,EAEE,GAAG,CAAEL,CAFP,CAGE,SAAS,CAAEN,cAAc,CAAC,CAAES,IAAI,CAAJA,CAAF,CAAD,CAAW,CAClCG,CAAU,CAAGf,UAAU,CAAC,CAAEiB,CAAC,CAAE,GAAL,CAAUC,EAAE,CAAE,GAAd,CAAD,CAAb,CAAqClB,UAAU,CAAC,CAAEmB,EAAE,CAAE,GAAN,CAAD,CADvB,CAElCT,CAFkC,CAAX,CAH3B,GAQGL,CAAK,EAAI,YAAK,SAAS,CAAEF,cAAc,CAAC,cAAD,CAA9B,SAAiDC,WAAW,CAACC,CAAD,CAAQC,CAAR,CAA5D,CARZ,CASE,YAAK,SAAS,CAAEH,cAAc,CAAC,gBAAD,CAA9B,SACE,KAAC,IAAD,EACE,MAAM,CAAEa,CAAU,CAAG,MAAH,OADpB,CAEE,KAAK,CAAED,CAAU,CAAG,QAAH,OAFnB,CAGE,SAAS,CAAEZ,cAAc,CAAC,OAAD,CAAU,CAACa,CAAU,CAAGhB,UAAU,CAAC,CAAEoB,EAAE,CAAE,KAAN,CAAD,CAAb,OAAX,CAAV,CAH3B,SAKGd,CALH,CADF,CAQGK,CAAW,EAAIK,CAAf,EACC,KAAC,IAAD,EAAM,IAAI,CAAC,WAAX,CAAuB,SAAS,CAAEb,cAAc,CAAC,aAAD,CAAhD,SACGQ,CADH,CATJ,CATF,CAyBH,CAjC2C,CAArC","sourcesContent":["import './TileMenuItem.css'\n\nimport React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\n\nimport { Text } from '@consta/uikit/Text'\nimport { cnMixSpace } from '@consta/uikit/MixSpace'\nimport { forwardRefWithAs } from '@consta/uikit/__internal__/src/utils/types/PropsWithAsAttributes'\n\nexport const tileMenuItemPropView = ['card', 'line'] as const\nexport type TileMenuItemPropView = typeof tileMenuItemPropView[number]\n\ntype TileMenuItemProps = {\n image?: string | React.FC\n title: string\n description?: string\n view?: TileMenuItemPropView\n}\n\nconst cnTileMenuItem = cn('TileMenuItem')\n\nconst renderImage = (image: string | React.FC, title: string) => {\n if (typeof image === 'string') {\n return <img src={image} alt={title} />\n }\n const ImageComponent = image\n return <ImageComponent />\n}\n\nexport const TileMenuItem = forwardRefWithAs<TileMenuItemProps>((props, ref) => {\n const { image, className, title, description, view = 'line', as = 'div', ...otherProps } = props\n\n const Tag = as as string\n const viewIsCard = view === 'card'\n const viewIsLine = view === 'line'\n\n return (\n <Tag\n {...otherProps}\n ref={ref}\n className={cnTileMenuItem({ view }, [\n viewIsCard ? cnMixSpace({ p: 's', pT: 'm' }) : cnMixSpace({ pV: 's' }),\n className,\n ])}\n >\n {image && <div className={cnTileMenuItem('ImageWrapper')}>{renderImage(image, title)}</div>}\n <div className={cnTileMenuItem('ContentWrapper')}>\n <Text\n weight={viewIsLine ? 'bold' : undefined}\n align={viewIsCard ? 'center' : undefined}\n className={cnTileMenuItem('Title', [viewIsLine ? cnMixSpace({ pB: '2xs' }) : undefined])}\n >\n {title}\n </Text>\n {description && viewIsLine && (\n <Text view=\"secondary\" className={cnTileMenuItem('Description')}>\n {description}\n </Text>\n )}\n </div>\n </Tag>\n )\n})\n"],"file":"TileMenuItem.js"}
@@ -0,0 +1 @@
1
+ .che--TileMenuList{display:grid;overflow:auto}.che--TileMenuList_view_cards{grid-template-columns:repeat(3,1fr);grid-row-gap:var(--space-2xs);grid-column-gap:var(--space-2xs)}.che--TileMenuList_view_lines{grid-template-columns:repeat(1,1fr)}.che--TileMenuList_view_twoLines{grid-template-columns:repeat(2,1fr);grid-column-gap:calc(var(--space-xl) + var(--space-2xs))}
@@ -0,0 +1,4 @@
1
+ import { TileMenuListComponent } from "../types";
2
+ import './TileMenuList.css';
3
+ export declare const cnTileMenuList: import("@bem-react/classname").ClassNameFormatter;
4
+ export declare const TileMenuList: TileMenuListComponent;
@@ -0,0 +1,2 @@
1
+ import _jsx from"@babel/runtime/helpers/jsx";import _objectWithoutProperties from"@babel/runtime/helpers/objectWithoutProperties";import React from"react";import{cn}from"../../__private__/utils/bem";import{withDefaultGetters}from"../helpers";import{TileMenuItem}from"../TileMenuItem/TileMenuItem";import{getByMap}from"@consta/uikit/__internal__/src/utils/getByMap";import{cnMixSpace}from"@consta/uikit/MixSpace";import"./TileMenuList.css";export const cnTileMenuList=cn("TileMenuList");const itemViewMap={lines:"line",twoLines:"line",cards:"card"};export const TileMenuList=a=>{const b=withDefaultGetters(a),{items:c,view:l="lines",className:d,children:e,getItemDescription:f,getItemImage:g,getItemTitle:h,getItemHref:i,getItemOnClick:j,onItemClick:k}=b,m=_objectWithoutProperties(b,["items","view","className","children","getItemDescription","getItemImage","getItemTitle","getItemHref","getItemOnClick","onItemClick"]);return React.createElement("div",Object.assign({},m,{className:cnTileMenuList({view:l},[cnMixSpace({p:"xl"}),d])}),c.map((a,b)=>_jsx(TileMenuItem,{className:cnTileMenuList("Item"),view:getByMap(itemViewMap,l),image:g(a),title:h(a),description:f(a),href:i(a),onClick:b=>{var c;null===k||void 0===k?void 0:k({item:a,e:b}),null===(c=j(a))||void 0===c?void 0:c(b)},as:"a"},cnTileMenuList("Item",{index:b}))))};
2
+ //# sourceMappingURL=TileMenuList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/TileMenu/TileMenuList/TileMenuList.tsx"],"names":["React","cn","withDefaultGetters","TileMenuItem","getByMap","cnMixSpace","cnTileMenuList","itemViewMap","lines","twoLines","cards","TileMenuList","props","items","view","className","children","getItemDescription","getItemImage","getItemTitle","getItemHref","getItemOnClick","onItemClick","otherProps","p","map","item","index","e"],"mappings":"kIAAA,MAAOA,CAAAA,KAAP,KAAkB,OAAlB,CAEA,OAASC,EAAT,mCAEA,OAASC,kBAAT,kBAEA,OAASC,YAAT,oCACA,OAASC,QAAT,KAAyB,+CAAzB,CACA,OAASC,UAAT,KAA2B,wBAA3B,CAEA,2BAEA,MAAO,MAAMC,CAAAA,cAAc,CAAGL,EAAE,CAAC,cAAD,CAAzB,CAEP,KAAMM,CAAAA,WAAW,CAAG,CAClBC,KAAK,CAAE,MADW,CAElBC,QAAQ,CAAE,MAFQ,CAGlBC,KAAK,CAAE,MAHW,CAApB,CAMA,MAAO,MAAMC,CAAAA,YAAY,CAAKC,CAAD,EAA8B,CACzD,QAYIV,kBAAkB,CAACU,CAAD,CAZtB,CAAM,CACJC,KAAK,CAALA,CADI,CAEJC,IAAI,CAAJA,CAAI,CAAG,OAFH,CAGJC,SAAS,CAATA,CAHI,CAIJC,QAAQ,CAARA,CAJI,CAKJC,kBAAkB,CAAlBA,CALI,CAMJC,YAAY,CAAZA,CANI,CAOJC,YAAY,CAAZA,CAPI,CAQJC,WAAW,CAAXA,CARI,CASJC,cAAc,CAAdA,CATI,CAUJC,WAAW,CAAXA,CAVI,CAAN,GAWKC,CAXL,qKAcA,MACE,4CAASA,CAAT,EAAqB,SAAS,CAAEjB,cAAc,CAAC,CAAEQ,IAAI,CAAJA,CAAF,CAAD,CAAW,CAACT,UAAU,CAAC,CAAEmB,CAAC,CAAE,IAAL,CAAD,CAAX,CAA0BT,CAA1B,CAAX,CAA9C,GACGF,CAAK,CAACY,GAAN,CAAU,CAACC,CAAD,CAAOC,CAAP,GAEP,KAAC,YAAD,EACE,SAAS,CAAErB,cAAc,CAAC,MAAD,CAD3B,CAGE,IAAI,CAAEF,QAAQ,CAACG,WAAD,CAAcO,CAAd,CAHhB,CAIE,KAAK,CAAEI,CAAY,CAACQ,CAAD,CAJrB,CAKE,KAAK,CAAEP,CAAY,CAACO,CAAD,CALrB,CAME,WAAW,CAAET,CAAkB,CAACS,CAAD,CANjC,CAOE,IAAI,CAAEN,CAAW,CAACM,CAAD,CAPnB,CAQE,OAAO,CAAEE,CAAC,EAAI,cACZN,CADY,WACZA,CADY,QACZA,CAAW,CAAG,CAAEI,IAAI,CAAJA,CAAF,CAAQE,CAAC,CAADA,CAAR,CAAH,CADC,WAEZP,CAAc,CAACK,CAAD,CAFF,qBAEZ,EAAuBE,CAAvB,CACD,CAXH,CAYE,EAAE,CAAC,GAZL,EAEOtB,cAAc,CAAC,MAAD,CAAS,CAAEqB,KAAK,CAALA,CAAF,CAAT,CAFrB,CAFH,CADH,CAqBH,CArCM","sourcesContent":["import React from 'react'\n\nimport { cn } from '@/__private__/utils/bem'\nimport { TileMenuListComponent, TileMenuListProps } from '../types'\nimport { withDefaultGetters } from '../helpers'\n\nimport { TileMenuItem } from '../TileMenuItem/TileMenuItem'\nimport { getByMap } from '@consta/uikit/__internal__/src/utils/getByMap'\nimport { cnMixSpace } from '@consta/uikit/MixSpace'\n\nimport './TileMenuList.css'\n\nexport const cnTileMenuList = cn('TileMenuList')\n\nconst itemViewMap = {\n lines: 'line',\n twoLines: 'line',\n cards: 'card',\n} as const\n\nexport const TileMenuList = ((props: TileMenuListProps) => {\n const {\n items,\n view = 'lines',\n className,\n children,\n getItemDescription,\n getItemImage,\n getItemTitle,\n getItemHref,\n getItemOnClick,\n onItemClick,\n ...otherProps\n } = withDefaultGetters(props)\n\n return (\n <div {...otherProps} className={cnTileMenuList({ view }, [cnMixSpace({ p: 'xl' }), className])}>\n {items.map((item, index) => {\n return (\n <TileMenuItem\n className={cnTileMenuList('Item')}\n key={cnTileMenuList('Item', { index })}\n view={getByMap(itemViewMap, view)}\n image={getItemImage(item)}\n title={getItemTitle(item)}\n description={getItemDescription(item)}\n href={getItemHref(item)}\n onClick={e => {\n onItemClick?.({ item, e })\n getItemOnClick(item)?.(e)\n }}\n as=\"a\"\n />\n )\n })}\n </div>\n )\n}) as TileMenuListComponent\n"],"file":"TileMenuList.js"}
@@ -0,0 +1,32 @@
1
+ /// <reference types="react" />
2
+ import { PropsWithHTMLAttributesAndRef } from "../../__private__/utils/types/PropsWithHTMLAttributes";
3
+ export declare type TileMenuPropView = 'lines' | 'twoLines' | 'cards';
4
+ export declare type TileMenuPropItem = {
5
+ title: string;
6
+ description?: string;
7
+ image?: string;
8
+ } & ({
9
+ href: string;
10
+ onClick?: React.MouseEventHandler<HTMLAnchorElement>;
11
+ } | {
12
+ href: undefined;
13
+ onClick?: React.MouseEventHandler<HTMLDivElement>;
14
+ });
15
+ export declare type DefaultItem = {
16
+ image?: string | React.FC;
17
+ title: string;
18
+ description?: string;
19
+ };
20
+ declare type GetItemImage<ITEM> = (item: ITEM) => string | React.FC | undefined;
21
+ declare type GetItemTitle<ITEM> = (item: ITEM) => string;
22
+ declare type GetItemDescription<ITEM> = (item: ITEM) => string;
23
+ export declare type TileMenuListProps<ITEM> = PropsWithHTMLAttributesAndRef<{
24
+ view?: TileMenuPropView;
25
+ items: ITEM[];
26
+ isMobile?: boolean;
27
+ getItemImage: GetItemImage<ITEM>;
28
+ getItemTitle: GetItemTitle<ITEM>;
29
+ getItemDescription: GetItemDescription<ITEM>;
30
+ }, HTMLDivElement>;
31
+ export declare type TileMenuListComponent = <ITEM = DefaultItem>(props: TileMenuListProps<ITEM>) => React.ReactElement | null;
32
+ export {};
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}