@cloud-ru/ds-uikit-product-header 1.0.1-preview-7665e9c3.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 (559) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +201 -0
  3. package/README.md +717 -0
  4. package/dist/cjs/components/HeaderButton/HeaderButton.d.ts +14 -0
  5. package/dist/cjs/components/HeaderButton/HeaderButton.js +33 -0
  6. package/dist/cjs/components/HeaderButton/index.d.ts +1 -0
  7. package/dist/cjs/components/HeaderButton/index.js +17 -0
  8. package/dist/cjs/components/HeaderButton/styles.module.css +3 -0
  9. package/dist/cjs/components/HeaderLayout/HeaderLayout.d.ts +11 -0
  10. package/dist/cjs/components/HeaderLayout/HeaderLayout.js +16 -0
  11. package/dist/cjs/components/HeaderLayout/index.d.ts +1 -0
  12. package/dist/cjs/components/HeaderLayout/index.js +17 -0
  13. package/dist/cjs/components/HeaderLayout/styles.module.css +37 -0
  14. package/dist/cjs/components/Logo/Logo.d.ts +14 -0
  15. package/dist/cjs/components/Logo/Logo.js +35 -0
  16. package/dist/cjs/components/Logo/constants.d.ts +10 -0
  17. package/dist/cjs/components/Logo/constants.js +14 -0
  18. package/dist/cjs/components/Logo/index.d.ts +1 -0
  19. package/dist/cjs/components/Logo/index.js +17 -0
  20. package/dist/cjs/components/Logo/styles.module.css +53 -0
  21. package/dist/cjs/components/MainMenu/MainMenu.d.ts +2 -0
  22. package/dist/cjs/components/MainMenu/MainMenu.js +25 -0
  23. package/dist/cjs/components/MainMenu/constants.d.ts +14 -0
  24. package/dist/cjs/components/MainMenu/constants.js +24 -0
  25. package/dist/cjs/components/MainMenu/helperComponents/Banners/MenuBanner.d.ts +16 -0
  26. package/dist/cjs/components/MainMenu/helperComponents/Banners/MenuBanner.js +27 -0
  27. package/dist/cjs/components/MainMenu/helperComponents/Banners/constants.d.ts +7 -0
  28. package/dist/cjs/components/MainMenu/helperComponents/Banners/constants.js +10 -0
  29. package/dist/cjs/components/MainMenu/helperComponents/Banners/index.d.ts +2 -0
  30. package/dist/cjs/components/MainMenu/helperComponents/Banners/index.js +18 -0
  31. package/dist/cjs/components/MainMenu/helperComponents/Banners/styles.module.css +61 -0
  32. package/dist/cjs/components/MainMenu/helperComponents/Content/Content.d.ts +30 -0
  33. package/dist/cjs/components/MainMenu/helperComponents/Content/Content.js +100 -0
  34. package/dist/cjs/components/MainMenu/helperComponents/Content/constants.d.ts +9 -0
  35. package/dist/cjs/components/MainMenu/helperComponents/Content/constants.js +12 -0
  36. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.d.ts +18 -0
  37. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.js +35 -0
  38. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.d.ts +1 -0
  39. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.js +17 -0
  40. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.css +27 -0
  41. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +11 -0
  42. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +35 -0
  43. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +8 -0
  44. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +23 -0
  45. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.d.ts +6 -0
  46. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.js +15 -0
  47. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.d.ts +9 -0
  48. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.js +15 -0
  49. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.d.ts +5 -0
  50. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.js +12 -0
  51. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +6 -0
  52. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +28 -0
  53. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.d.ts +5 -0
  54. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.js +58 -0
  55. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.d.ts +2 -0
  56. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.js +18 -0
  57. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.css +66 -0
  58. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.d.ts +5 -0
  59. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.js +21 -0
  60. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.d.ts +3 -0
  61. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.js +19 -0
  62. package/dist/cjs/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.css +231 -0
  63. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.d.ts +24 -0
  64. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.js +158 -0
  65. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.d.ts +16 -0
  66. package/dist/cjs/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.js +59 -0
  67. package/dist/cjs/components/MainMenu/helperComponents/Content/index.d.ts +2 -0
  68. package/dist/cjs/components/MainMenu/helperComponents/Content/index.js +18 -0
  69. package/dist/cjs/components/MainMenu/helperComponents/Content/styles.module.css +8 -0
  70. package/dist/cjs/components/MainMenu/helperComponents/Favorites/Favorites.d.ts +12 -0
  71. package/dist/cjs/components/MainMenu/helperComponents/Favorites/Favorites.js +79 -0
  72. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.d.ts +3 -0
  73. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.js +7 -0
  74. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.d.ts +3 -0
  75. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.js +7 -0
  76. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.d.ts +6 -0
  77. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.js +17 -0
  78. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.d.ts +1 -0
  79. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.js +17 -0
  80. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.css +23 -0
  81. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.d.ts +1 -0
  82. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.js +12 -0
  83. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.d.ts +19 -0
  84. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.js +30 -0
  85. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.d.ts +8 -0
  86. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.js +28 -0
  87. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/index.d.ts +4 -0
  88. package/dist/cjs/components/MainMenu/helperComponents/Favorites/components/index.js +20 -0
  89. package/dist/cjs/components/MainMenu/helperComponents/Favorites/constants.d.ts +15 -0
  90. package/dist/cjs/components/MainMenu/helperComponents/Favorites/constants.js +16 -0
  91. package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.d.ts +25 -0
  92. package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.js +92 -0
  93. package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.d.ts +1 -0
  94. package/dist/cjs/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.js +37 -0
  95. package/dist/cjs/components/MainMenu/helperComponents/Favorites/index.d.ts +2 -0
  96. package/dist/cjs/components/MainMenu/helperComponents/Favorites/index.js +18 -0
  97. package/dist/cjs/components/MainMenu/helperComponents/Favorites/styles.module.css +87 -0
  98. package/dist/cjs/components/MainMenu/helperComponents/Favorites/utils.d.ts +6 -0
  99. package/dist/cjs/components/MainMenu/helperComponents/Favorites/utils.js +15 -0
  100. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.d.ts +2 -0
  101. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.js +63 -0
  102. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/constants.d.ts +3 -0
  103. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/constants.js +7 -0
  104. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/index.d.ts +1 -0
  105. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/index.js +17 -0
  106. package/dist/cjs/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +98 -0
  107. package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.d.ts +7 -0
  108. package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.js +17 -0
  109. package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/index.d.ts +1 -0
  110. package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/index.js +17 -0
  111. package/dist/cjs/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.css +13 -0
  112. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/MenuMobile.d.ts +2 -0
  113. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +36 -0
  114. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/index.d.ts +1 -0
  115. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/index.js +17 -0
  116. package/dist/cjs/components/MainMenu/helperComponents/MenuMobile/styles.module.css +25 -0
  117. package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/MountAnimation.d.ts +7 -0
  118. package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/MountAnimation.js +13 -0
  119. package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/index.d.ts +1 -0
  120. package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/index.js +5 -0
  121. package/dist/cjs/components/MainMenu/helperComponents/MountAnimation/styles.module.css +60 -0
  122. package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.d.ts +6 -0
  123. package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.js +37 -0
  124. package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.d.ts +1 -0
  125. package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.js +17 -0
  126. package/dist/cjs/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/styles.module.css +12 -0
  127. package/dist/cjs/components/MainMenu/helperComponents/Search/Search.d.ts +7 -0
  128. package/dist/cjs/components/MainMenu/helperComponents/Search/Search.js +15 -0
  129. package/dist/cjs/components/MainMenu/helperComponents/Search/index.d.ts +1 -0
  130. package/dist/cjs/components/MainMenu/helperComponents/Search/index.js +17 -0
  131. package/dist/cjs/components/MainMenu/helperComponents/Search/styles.module.css +8 -0
  132. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/ServiceCard.d.ts +19 -0
  133. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +53 -0
  134. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/index.d.ts +1 -0
  135. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/index.js +17 -0
  136. package/dist/cjs/components/MainMenu/helperComponents/ServiceCard/styles.module.css +12 -0
  137. package/dist/cjs/components/MainMenu/hooks/useMainMenuDnd.d.ts +30 -0
  138. package/dist/cjs/components/MainMenu/hooks/useMainMenuDnd.js +93 -0
  139. package/dist/cjs/components/MainMenu/hooks/useMenuItems.d.ts +8 -0
  140. package/dist/cjs/components/MainMenu/hooks/useMenuItems.js +39 -0
  141. package/dist/cjs/components/MainMenu/index.d.ts +5 -0
  142. package/dist/cjs/components/MainMenu/index.js +21 -0
  143. package/dist/cjs/components/MainMenu/types.d.ts +284 -0
  144. package/dist/cjs/components/MainMenu/types.js +2 -0
  145. package/dist/cjs/components/MainMenu/utils/dedupeSearchGroups.d.ts +15 -0
  146. package/dist/cjs/components/MainMenu/utils/dedupeSearchGroups.js +32 -0
  147. package/dist/cjs/components/MainMenu/utils/dnd/favoriteListCollisionDetection.d.ts +2 -0
  148. package/dist/cjs/components/MainMenu/utils/dnd/favoriteListCollisionDetection.js +32 -0
  149. package/dist/cjs/components/MainMenu/utils/dnd/getDragReferenceY.d.ts +9 -0
  150. package/dist/cjs/components/MainMenu/utils/dnd/getDragReferenceY.js +17 -0
  151. package/dist/cjs/components/MainMenu/utils/dnd/getFavoriteInsertIndex.d.ts +12 -0
  152. package/dist/cjs/components/MainMenu/utils/dnd/getFavoriteInsertIndex.js +36 -0
  153. package/dist/cjs/components/MainMenu/utils/dnd/ids.d.ts +8 -0
  154. package/dist/cjs/components/MainMenu/utils/dnd/ids.js +48 -0
  155. package/dist/cjs/components/MainMenu/utils/dnd/index.d.ts +5 -0
  156. package/dist/cjs/components/MainMenu/utils/dnd/index.js +21 -0
  157. package/dist/cjs/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.d.ts +10 -0
  158. package/dist/cjs/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.js +45 -0
  159. package/dist/cjs/components/MainMenu/utils/filterLinksGroupsFuzzy.d.ts +2 -0
  160. package/dist/cjs/components/MainMenu/utils/filterLinksGroupsFuzzy.js +155 -0
  161. package/dist/cjs/components/MainMenu/utils/flatLinksGroups.d.ts +2 -0
  162. package/dist/cjs/components/MainMenu/utils/flatLinksGroups.js +7 -0
  163. package/dist/cjs/components/MainMenu/utils/getAvatarNameFromLabel.d.ts +14 -0
  164. package/dist/cjs/components/MainMenu/utils/getAvatarNameFromLabel.js +24 -0
  165. package/dist/cjs/components/MainMenu/utils/getLinkEmblem.d.ts +3 -0
  166. package/dist/cjs/components/MainMenu/utils/getLinkEmblem.js +18 -0
  167. package/dist/cjs/components/MainMenu/utils/index.d.ts +12 -0
  168. package/dist/cjs/components/MainMenu/utils/index.js +28 -0
  169. package/dist/cjs/components/MainMenu/utils/innerLink.d.ts +7 -0
  170. package/dist/cjs/components/MainMenu/utils/innerLink.js +42 -0
  171. package/dist/cjs/components/MainMenu/utils/mapInnerLinksToListItems.d.ts +3 -0
  172. package/dist/cjs/components/MainMenu/utils/mapInnerLinksToListItems.js +16 -0
  173. package/dist/cjs/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.d.ts +2 -0
  174. package/dist/cjs/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.js +9 -0
  175. package/dist/cjs/components/MainMenu/utils/pinGroupToBottom.d.ts +2 -0
  176. package/dist/cjs/components/MainMenu/utils/pinGroupToBottom.js +15 -0
  177. package/dist/cjs/components/MainMenu/utils/resolveGroupBlockColor.d.ts +8 -0
  178. package/dist/cjs/components/MainMenu/utils/resolveGroupBlockColor.js +12 -0
  179. package/dist/cjs/components/MainMenu/utils/resolveInnerLinksByIds.d.ts +2 -0
  180. package/dist/cjs/components/MainMenu/utils/resolveInnerLinksByIds.js +11 -0
  181. package/dist/cjs/components/MainMenu/utils/search.d.ts +1 -0
  182. package/dist/cjs/components/MainMenu/utils/search.js +27 -0
  183. package/dist/cjs/components/PathBreadcrumbs/PathBreadcrumbs.d.ts +7 -0
  184. package/dist/cjs/components/PathBreadcrumbs/PathBreadcrumbs.js +12 -0
  185. package/dist/cjs/components/PathBreadcrumbs/index.d.ts +1 -0
  186. package/dist/cjs/components/PathBreadcrumbs/index.js +17 -0
  187. package/dist/cjs/components/PathBreadcrumbs/styles.module.css +4 -0
  188. package/dist/cjs/components/PlatformLogo/Container.d.ts +12 -0
  189. package/dist/cjs/components/PlatformLogo/Container.js +16 -0
  190. package/dist/cjs/components/PlatformLogo/index.d.ts +6 -0
  191. package/dist/cjs/components/PlatformLogo/index.js +11 -0
  192. package/dist/cjs/components/PlatformLogo/styles.module.css +9 -0
  193. package/dist/cjs/components/UserMenu/UserMenu.d.ts +14 -0
  194. package/dist/cjs/components/UserMenu/UserMenu.js +46 -0
  195. package/dist/cjs/components/UserMenu/hooks/useLogoutItem.d.ts +4 -0
  196. package/dist/cjs/components/UserMenu/hooks/useLogoutItem.js +20 -0
  197. package/dist/cjs/components/UserMenu/hooks/useProfileItem.d.ts +3 -0
  198. package/dist/cjs/components/UserMenu/hooks/useProfileItem.js +24 -0
  199. package/dist/cjs/components/UserMenu/hooks/useThemeItem.d.ts +6 -0
  200. package/dist/cjs/components/UserMenu/hooks/useThemeItem.js +54 -0
  201. package/dist/cjs/components/UserMenu/hooks/useUserMenuItems.d.ts +87 -0
  202. package/dist/cjs/components/UserMenu/hooks/useUserMenuItems.js +45 -0
  203. package/dist/cjs/components/UserMenu/index.d.ts +2 -0
  204. package/dist/cjs/components/UserMenu/index.js +18 -0
  205. package/dist/cjs/components/UserMenu/styles.module.css +7 -0
  206. package/dist/cjs/components/UserMenu/types.d.ts +20 -0
  207. package/dist/cjs/components/UserMenu/types.js +8 -0
  208. package/dist/cjs/components/index.d.ts +7 -0
  209. package/dist/cjs/components/index.js +23 -0
  210. package/dist/cjs/constants.d.ts +20 -0
  211. package/dist/cjs/constants.js +23 -0
  212. package/dist/cjs/index.d.ts +4 -0
  213. package/dist/cjs/index.js +22 -0
  214. package/dist/cjs/locale/index.d.ts +118 -0
  215. package/dist/cjs/locale/index.js +63 -0
  216. package/dist/cjs/mobileOverlays.d.ts +21 -0
  217. package/dist/cjs/mobileOverlays.js +18 -0
  218. package/dist/cjs/package.json +3 -0
  219. package/dist/cjs/style.css +844 -0
  220. package/dist/cjs/utils/shouldBeOpenedInNewTab.d.ts +2 -0
  221. package/dist/cjs/utils/shouldBeOpenedInNewTab.js +6 -0
  222. package/dist/esm/components/HeaderButton/HeaderButton.d.ts +14 -0
  223. package/dist/esm/components/HeaderButton/HeaderButton.js +27 -0
  224. package/dist/esm/components/HeaderButton/index.d.ts +1 -0
  225. package/dist/esm/components/HeaderButton/index.js +1 -0
  226. package/dist/esm/components/HeaderButton/styles.module.css +3 -0
  227. package/dist/esm/components/HeaderLayout/HeaderLayout.d.ts +11 -0
  228. package/dist/esm/components/HeaderLayout/HeaderLayout.js +10 -0
  229. package/dist/esm/components/HeaderLayout/index.d.ts +1 -0
  230. package/dist/esm/components/HeaderLayout/index.js +1 -0
  231. package/dist/esm/components/HeaderLayout/styles.module.css +37 -0
  232. package/dist/esm/components/Logo/Logo.d.ts +14 -0
  233. package/dist/esm/components/Logo/Logo.js +29 -0
  234. package/dist/esm/components/Logo/constants.d.ts +10 -0
  235. package/dist/esm/components/Logo/constants.js +11 -0
  236. package/dist/esm/components/Logo/index.d.ts +1 -0
  237. package/dist/esm/components/Logo/index.js +1 -0
  238. package/dist/esm/components/Logo/styles.module.css +53 -0
  239. package/dist/esm/components/MainMenu/MainMenu.d.ts +2 -0
  240. package/dist/esm/components/MainMenu/MainMenu.js +22 -0
  241. package/dist/esm/components/MainMenu/constants.d.ts +14 -0
  242. package/dist/esm/components/MainMenu/constants.js +21 -0
  243. package/dist/esm/components/MainMenu/helperComponents/Banners/MenuBanner.d.ts +16 -0
  244. package/dist/esm/components/MainMenu/helperComponents/Banners/MenuBanner.js +21 -0
  245. package/dist/esm/components/MainMenu/helperComponents/Banners/constants.d.ts +7 -0
  246. package/dist/esm/components/MainMenu/helperComponents/Banners/constants.js +7 -0
  247. package/dist/esm/components/MainMenu/helperComponents/Banners/index.d.ts +2 -0
  248. package/dist/esm/components/MainMenu/helperComponents/Banners/index.js +2 -0
  249. package/dist/esm/components/MainMenu/helperComponents/Banners/styles.module.css +61 -0
  250. package/dist/esm/components/MainMenu/helperComponents/Content/Content.d.ts +30 -0
  251. package/dist/esm/components/MainMenu/helperComponents/Content/Content.js +94 -0
  252. package/dist/esm/components/MainMenu/helperComponents/Content/constants.d.ts +9 -0
  253. package/dist/esm/components/MainMenu/helperComponents/Content/constants.js +9 -0
  254. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.d.ts +18 -0
  255. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.js +29 -0
  256. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.d.ts +1 -0
  257. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.js +1 -0
  258. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.css +27 -0
  259. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.d.ts +11 -0
  260. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.js +28 -0
  261. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.d.ts +8 -0
  262. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.js +17 -0
  263. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.d.ts +6 -0
  264. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.js +9 -0
  265. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.d.ts +9 -0
  266. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.js +9 -0
  267. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.d.ts +5 -0
  268. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.js +6 -0
  269. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.d.ts +6 -0
  270. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.js +22 -0
  271. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.d.ts +5 -0
  272. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.js +52 -0
  273. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.d.ts +2 -0
  274. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.js +2 -0
  275. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.css +66 -0
  276. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.d.ts +5 -0
  277. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.js +5 -0
  278. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.d.ts +3 -0
  279. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.js +3 -0
  280. package/dist/esm/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.css +231 -0
  281. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.d.ts +24 -0
  282. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.js +155 -0
  283. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.d.ts +16 -0
  284. package/dist/esm/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.js +56 -0
  285. package/dist/esm/components/MainMenu/helperComponents/Content/index.d.ts +2 -0
  286. package/dist/esm/components/MainMenu/helperComponents/Content/index.js +2 -0
  287. package/dist/esm/components/MainMenu/helperComponents/Content/styles.module.css +8 -0
  288. package/dist/esm/components/MainMenu/helperComponents/Favorites/Favorites.d.ts +12 -0
  289. package/dist/esm/components/MainMenu/helperComponents/Favorites/Favorites.js +73 -0
  290. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.d.ts +3 -0
  291. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.js +4 -0
  292. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.d.ts +3 -0
  293. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.js +4 -0
  294. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.d.ts +6 -0
  295. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.js +11 -0
  296. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.d.ts +1 -0
  297. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.js +1 -0
  298. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.css +23 -0
  299. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.d.ts +1 -0
  300. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.js +6 -0
  301. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.d.ts +19 -0
  302. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.js +24 -0
  303. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.d.ts +8 -0
  304. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.js +22 -0
  305. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/index.d.ts +4 -0
  306. package/dist/esm/components/MainMenu/helperComponents/Favorites/components/index.js +4 -0
  307. package/dist/esm/components/MainMenu/helperComponents/Favorites/constants.d.ts +15 -0
  308. package/dist/esm/components/MainMenu/helperComponents/Favorites/constants.js +13 -0
  309. package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.d.ts +25 -0
  310. package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.js +89 -0
  311. package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.d.ts +1 -0
  312. package/dist/esm/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.js +34 -0
  313. package/dist/esm/components/MainMenu/helperComponents/Favorites/index.d.ts +2 -0
  314. package/dist/esm/components/MainMenu/helperComponents/Favorites/index.js +2 -0
  315. package/dist/esm/components/MainMenu/helperComponents/Favorites/styles.module.css +87 -0
  316. package/dist/esm/components/MainMenu/helperComponents/Favorites/utils.d.ts +6 -0
  317. package/dist/esm/components/MainMenu/helperComponents/Favorites/utils.js +12 -0
  318. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.d.ts +2 -0
  319. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.js +57 -0
  320. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/constants.d.ts +3 -0
  321. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/constants.js +4 -0
  322. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/index.d.ts +1 -0
  323. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/index.js +1 -0
  324. package/dist/esm/components/MainMenu/helperComponents/MenuDesktop/styles.module.css +98 -0
  325. package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.d.ts +7 -0
  326. package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.js +11 -0
  327. package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/index.d.ts +1 -0
  328. package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/index.js +1 -0
  329. package/dist/esm/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.css +13 -0
  330. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/MenuMobile.d.ts +2 -0
  331. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/MenuMobile.js +30 -0
  332. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/index.d.ts +1 -0
  333. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/index.js +1 -0
  334. package/dist/esm/components/MainMenu/helperComponents/MenuMobile/styles.module.css +25 -0
  335. package/dist/esm/components/MainMenu/helperComponents/MountAnimation/MountAnimation.d.ts +7 -0
  336. package/dist/esm/components/MainMenu/helperComponents/MountAnimation/MountAnimation.js +7 -0
  337. package/dist/esm/components/MainMenu/helperComponents/MountAnimation/index.d.ts +1 -0
  338. package/dist/esm/components/MainMenu/helperComponents/MountAnimation/index.js +1 -0
  339. package/dist/esm/components/MainMenu/helperComponents/MountAnimation/styles.module.css +60 -0
  340. package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.d.ts +6 -0
  341. package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.js +31 -0
  342. package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.d.ts +1 -0
  343. package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.js +1 -0
  344. package/dist/esm/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/styles.module.css +12 -0
  345. package/dist/esm/components/MainMenu/helperComponents/Search/Search.d.ts +7 -0
  346. package/dist/esm/components/MainMenu/helperComponents/Search/Search.js +9 -0
  347. package/dist/esm/components/MainMenu/helperComponents/Search/index.d.ts +1 -0
  348. package/dist/esm/components/MainMenu/helperComponents/Search/index.js +1 -0
  349. package/dist/esm/components/MainMenu/helperComponents/Search/styles.module.css +8 -0
  350. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/ServiceCard.d.ts +19 -0
  351. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/ServiceCard.js +46 -0
  352. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/index.d.ts +1 -0
  353. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/index.js +1 -0
  354. package/dist/esm/components/MainMenu/helperComponents/ServiceCard/styles.module.css +12 -0
  355. package/dist/esm/components/MainMenu/hooks/useMainMenuDnd.d.ts +30 -0
  356. package/dist/esm/components/MainMenu/hooks/useMainMenuDnd.js +88 -0
  357. package/dist/esm/components/MainMenu/hooks/useMenuItems.d.ts +8 -0
  358. package/dist/esm/components/MainMenu/hooks/useMenuItems.js +36 -0
  359. package/dist/esm/components/MainMenu/index.d.ts +5 -0
  360. package/dist/esm/components/MainMenu/index.js +5 -0
  361. package/dist/esm/components/MainMenu/types.d.ts +284 -0
  362. package/dist/esm/components/MainMenu/types.js +1 -0
  363. package/dist/esm/components/MainMenu/utils/dedupeSearchGroups.d.ts +15 -0
  364. package/dist/esm/components/MainMenu/utils/dedupeSearchGroups.js +29 -0
  365. package/dist/esm/components/MainMenu/utils/dnd/favoriteListCollisionDetection.d.ts +2 -0
  366. package/dist/esm/components/MainMenu/utils/dnd/favoriteListCollisionDetection.js +28 -0
  367. package/dist/esm/components/MainMenu/utils/dnd/getDragReferenceY.d.ts +9 -0
  368. package/dist/esm/components/MainMenu/utils/dnd/getDragReferenceY.js +14 -0
  369. package/dist/esm/components/MainMenu/utils/dnd/getFavoriteInsertIndex.d.ts +12 -0
  370. package/dist/esm/components/MainMenu/utils/dnd/getFavoriteInsertIndex.js +32 -0
  371. package/dist/esm/components/MainMenu/utils/dnd/ids.d.ts +8 -0
  372. package/dist/esm/components/MainMenu/utils/dnd/ids.js +38 -0
  373. package/dist/esm/components/MainMenu/utils/dnd/index.d.ts +5 -0
  374. package/dist/esm/components/MainMenu/utils/dnd/index.js +5 -0
  375. package/dist/esm/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.d.ts +10 -0
  376. package/dist/esm/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.js +42 -0
  377. package/dist/esm/components/MainMenu/utils/filterLinksGroupsFuzzy.d.ts +2 -0
  378. package/dist/esm/components/MainMenu/utils/filterLinksGroupsFuzzy.js +149 -0
  379. package/dist/esm/components/MainMenu/utils/flatLinksGroups.d.ts +2 -0
  380. package/dist/esm/components/MainMenu/utils/flatLinksGroups.js +4 -0
  381. package/dist/esm/components/MainMenu/utils/getAvatarNameFromLabel.d.ts +14 -0
  382. package/dist/esm/components/MainMenu/utils/getAvatarNameFromLabel.js +21 -0
  383. package/dist/esm/components/MainMenu/utils/getLinkEmblem.d.ts +3 -0
  384. package/dist/esm/components/MainMenu/utils/getLinkEmblem.js +15 -0
  385. package/dist/esm/components/MainMenu/utils/index.d.ts +12 -0
  386. package/dist/esm/components/MainMenu/utils/index.js +12 -0
  387. package/dist/esm/components/MainMenu/utils/innerLink.d.ts +7 -0
  388. package/dist/esm/components/MainMenu/utils/innerLink.js +34 -0
  389. package/dist/esm/components/MainMenu/utils/mapInnerLinksToListItems.d.ts +3 -0
  390. package/dist/esm/components/MainMenu/utils/mapInnerLinksToListItems.js +13 -0
  391. package/dist/esm/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.d.ts +2 -0
  392. package/dist/esm/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.js +6 -0
  393. package/dist/esm/components/MainMenu/utils/pinGroupToBottom.d.ts +2 -0
  394. package/dist/esm/components/MainMenu/utils/pinGroupToBottom.js +12 -0
  395. package/dist/esm/components/MainMenu/utils/resolveGroupBlockColor.d.ts +8 -0
  396. package/dist/esm/components/MainMenu/utils/resolveGroupBlockColor.js +9 -0
  397. package/dist/esm/components/MainMenu/utils/resolveInnerLinksByIds.d.ts +2 -0
  398. package/dist/esm/components/MainMenu/utils/resolveInnerLinksByIds.js +8 -0
  399. package/dist/esm/components/MainMenu/utils/search.d.ts +1 -0
  400. package/dist/esm/components/MainMenu/utils/search.js +24 -0
  401. package/dist/esm/components/PathBreadcrumbs/PathBreadcrumbs.d.ts +7 -0
  402. package/dist/esm/components/PathBreadcrumbs/PathBreadcrumbs.js +6 -0
  403. package/dist/esm/components/PathBreadcrumbs/index.d.ts +1 -0
  404. package/dist/esm/components/PathBreadcrumbs/index.js +1 -0
  405. package/dist/esm/components/PathBreadcrumbs/styles.module.css +4 -0
  406. package/dist/esm/components/PlatformLogo/Container.d.ts +12 -0
  407. package/dist/esm/components/PlatformLogo/Container.js +8 -0
  408. package/dist/esm/components/PlatformLogo/index.d.ts +6 -0
  409. package/dist/esm/components/PlatformLogo/index.js +8 -0
  410. package/dist/esm/components/PlatformLogo/styles.module.css +9 -0
  411. package/dist/esm/components/UserMenu/UserMenu.d.ts +14 -0
  412. package/dist/esm/components/UserMenu/UserMenu.js +40 -0
  413. package/dist/esm/components/UserMenu/hooks/useLogoutItem.d.ts +4 -0
  414. package/dist/esm/components/UserMenu/hooks/useLogoutItem.js +17 -0
  415. package/dist/esm/components/UserMenu/hooks/useProfileItem.d.ts +3 -0
  416. package/dist/esm/components/UserMenu/hooks/useProfileItem.js +21 -0
  417. package/dist/esm/components/UserMenu/hooks/useThemeItem.d.ts +6 -0
  418. package/dist/esm/components/UserMenu/hooks/useThemeItem.js +51 -0
  419. package/dist/esm/components/UserMenu/hooks/useUserMenuItems.d.ts +87 -0
  420. package/dist/esm/components/UserMenu/hooks/useUserMenuItems.js +42 -0
  421. package/dist/esm/components/UserMenu/index.d.ts +2 -0
  422. package/dist/esm/components/UserMenu/index.js +2 -0
  423. package/dist/esm/components/UserMenu/styles.module.css +7 -0
  424. package/dist/esm/components/UserMenu/types.d.ts +20 -0
  425. package/dist/esm/components/UserMenu/types.js +5 -0
  426. package/dist/esm/components/index.d.ts +7 -0
  427. package/dist/esm/components/index.js +7 -0
  428. package/dist/esm/constants.d.ts +20 -0
  429. package/dist/esm/constants.js +20 -0
  430. package/dist/esm/index.d.ts +4 -0
  431. package/dist/esm/index.js +4 -0
  432. package/dist/esm/locale/index.d.ts +118 -0
  433. package/dist/esm/locale/index.js +60 -0
  434. package/dist/esm/mobileOverlays.d.ts +21 -0
  435. package/dist/esm/mobileOverlays.js +15 -0
  436. package/dist/esm/style.css +844 -0
  437. package/dist/esm/utils/shouldBeOpenedInNewTab.d.ts +2 -0
  438. package/dist/esm/utils/shouldBeOpenedInNewTab.js +3 -0
  439. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  440. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  441. package/package.json +77 -0
  442. package/src/components/HeaderButton/HeaderButton.tsx +57 -0
  443. package/src/components/HeaderButton/index.ts +1 -0
  444. package/src/components/HeaderButton/styles.module.scss +3 -0
  445. package/src/components/HeaderLayout/HeaderLayout.tsx +56 -0
  446. package/src/components/HeaderLayout/index.ts +1 -0
  447. package/src/components/HeaderLayout/styles.module.scss +42 -0
  448. package/src/components/Logo/Logo.tsx +76 -0
  449. package/src/components/Logo/constants.ts +17 -0
  450. package/src/components/Logo/index.ts +1 -0
  451. package/src/components/Logo/styles.module.scss +64 -0
  452. package/src/components/MainMenu/MainMenu.tsx +84 -0
  453. package/src/components/MainMenu/constants.ts +24 -0
  454. package/src/components/MainMenu/helperComponents/Banners/MenuBanner.tsx +103 -0
  455. package/src/components/MainMenu/helperComponents/Banners/constants.ts +7 -0
  456. package/src/components/MainMenu/helperComponents/Banners/index.ts +2 -0
  457. package/src/components/MainMenu/helperComponents/Banners/styles.module.scss +75 -0
  458. package/src/components/MainMenu/helperComponents/Content/Content.tsx +267 -0
  459. package/src/components/MainMenu/helperComponents/Content/constants.ts +9 -0
  460. package/src/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/ContentToolbar.tsx +136 -0
  461. package/src/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/index.ts +1 -0
  462. package/src/components/MainMenu/helperComponents/Content/helperComponents/ContentToolbar/styles.module.scss +31 -0
  463. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/SortableGroup.tsx +131 -0
  464. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupCards.tsx +64 -0
  465. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupDragHandle.tsx +29 -0
  466. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupHeader.tsx +47 -0
  467. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SortableGroupSkeleton.tsx +35 -0
  468. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategory.tsx +79 -0
  469. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/SubCategoryTitle.tsx +128 -0
  470. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/index.ts +2 -0
  471. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/SubCategory/styles.module.scss +77 -0
  472. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/components/index.ts +5 -0
  473. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/index.ts +3 -0
  474. package/src/components/MainMenu/helperComponents/Content/helperComponents/SortableGroup/styles.module.scss +270 -0
  475. package/src/components/MainMenu/helperComponents/Content/hooks/useContentSegmentsSortable.ts +250 -0
  476. package/src/components/MainMenu/helperComponents/Content/hooks/useSegmentDnd.tsx +104 -0
  477. package/src/components/MainMenu/helperComponents/Content/index.ts +2 -0
  478. package/src/components/MainMenu/helperComponents/Content/styles.module.scss +11 -0
  479. package/src/components/MainMenu/helperComponents/Favorites/Favorites.tsx +176 -0
  480. package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyFavoriteSVG.tsx +24 -0
  481. package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyRecentSVG.tsx +38 -0
  482. package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/EmptyState.tsx +36 -0
  483. package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/index.ts +1 -0
  484. package/src/components/MainMenu/helperComponents/Favorites/components/EmptyState/styles.module.scss +27 -0
  485. package/src/components/MainMenu/helperComponents/Favorites/components/FavoritesItemsSkeleton.tsx +15 -0
  486. package/src/components/MainMenu/helperComponents/Favorites/components/FavoritesSortable.tsx +78 -0
  487. package/src/components/MainMenu/helperComponents/Favorites/components/SortableFavoriteCard.tsx +70 -0
  488. package/src/components/MainMenu/helperComponents/Favorites/components/index.ts +4 -0
  489. package/src/components/MainMenu/helperComponents/Favorites/constants.ts +18 -0
  490. package/src/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesDnd.tsx +123 -0
  491. package/src/components/MainMenu/helperComponents/Favorites/hooks/useFavoritesInsertIndicator.ts +41 -0
  492. package/src/components/MainMenu/helperComponents/Favorites/index.ts +2 -0
  493. package/src/components/MainMenu/helperComponents/Favorites/styles.module.scss +101 -0
  494. package/src/components/MainMenu/helperComponents/Favorites/utils.ts +22 -0
  495. package/src/components/MainMenu/helperComponents/MenuDesktop/MenuDesktop.tsx +172 -0
  496. package/src/components/MainMenu/helperComponents/MenuDesktop/constants.ts +6 -0
  497. package/src/components/MainMenu/helperComponents/MenuDesktop/index.ts +1 -0
  498. package/src/components/MainMenu/helperComponents/MenuDesktop/styles.module.scss +118 -0
  499. package/src/components/MainMenu/helperComponents/MenuHeaderBrand/MenuHeaderBrand.tsx +27 -0
  500. package/src/components/MainMenu/helperComponents/MenuHeaderBrand/index.ts +1 -0
  501. package/src/components/MainMenu/helperComponents/MenuHeaderBrand/styles.module.scss +17 -0
  502. package/src/components/MainMenu/helperComponents/MenuMobile/MenuMobile.tsx +101 -0
  503. package/src/components/MainMenu/helperComponents/MenuMobile/index.ts +1 -0
  504. package/src/components/MainMenu/helperComponents/MenuMobile/styles.module.scss +32 -0
  505. package/src/components/MainMenu/helperComponents/MountAnimation/MountAnimation.tsx +20 -0
  506. package/src/components/MainMenu/helperComponents/MountAnimation/index.ts +1 -0
  507. package/src/components/MainMenu/helperComponents/MountAnimation/styles.module.scss +77 -0
  508. package/src/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/ScrollWithAnimatedStickyPanel.tsx +54 -0
  509. package/src/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/index.ts +1 -0
  510. package/src/components/MainMenu/helperComponents/ScrollWithAnimatedStickyPanel/styles.module.scss +16 -0
  511. package/src/components/MainMenu/helperComponents/Search/Search.tsx +34 -0
  512. package/src/components/MainMenu/helperComponents/Search/index.ts +1 -0
  513. package/src/components/MainMenu/helperComponents/Search/styles.module.scss +14 -0
  514. package/src/components/MainMenu/helperComponents/ServiceCard/ServiceCard.tsx +111 -0
  515. package/src/components/MainMenu/helperComponents/ServiceCard/index.ts +1 -0
  516. package/src/components/MainMenu/helperComponents/ServiceCard/styles.module.scss +14 -0
  517. package/src/components/MainMenu/hooks/useMainMenuDnd.tsx +187 -0
  518. package/src/components/MainMenu/hooks/useMenuItems.tsx +59 -0
  519. package/src/components/MainMenu/index.ts +5 -0
  520. package/src/components/MainMenu/types.ts +311 -0
  521. package/src/components/MainMenu/utils/dedupeSearchGroups.ts +35 -0
  522. package/src/components/MainMenu/utils/dnd/favoriteListCollisionDetection.ts +35 -0
  523. package/src/components/MainMenu/utils/dnd/getDragReferenceY.ts +26 -0
  524. package/src/components/MainMenu/utils/dnd/getFavoriteInsertIndex.ts +63 -0
  525. package/src/components/MainMenu/utils/dnd/ids.ts +53 -0
  526. package/src/components/MainMenu/utils/dnd/index.ts +5 -0
  527. package/src/components/MainMenu/utils/dnd/resolveFavoriteOrderOnDragEnd.ts +74 -0
  528. package/src/components/MainMenu/utils/filterLinksGroupsFuzzy.ts +205 -0
  529. package/src/components/MainMenu/utils/flatLinksGroups.ts +6 -0
  530. package/src/components/MainMenu/utils/getAvatarNameFromLabel.ts +24 -0
  531. package/src/components/MainMenu/utils/getLinkEmblem.tsx +27 -0
  532. package/src/components/MainMenu/utils/index.ts +12 -0
  533. package/src/components/MainMenu/utils/innerLink.ts +45 -0
  534. package/src/components/MainMenu/utils/mapInnerLinksToListItems.tsx +17 -0
  535. package/src/components/MainMenu/utils/mapOrderedFavoriteIdsToLinks.ts +13 -0
  536. package/src/components/MainMenu/utils/pinGroupToBottom.ts +17 -0
  537. package/src/components/MainMenu/utils/resolveGroupBlockColor.ts +14 -0
  538. package/src/components/MainMenu/utils/resolveInnerLinksByIds.ts +12 -0
  539. package/src/components/MainMenu/utils/search.ts +32 -0
  540. package/src/components/PathBreadcrumbs/PathBreadcrumbs.tsx +21 -0
  541. package/src/components/PathBreadcrumbs/index.ts +1 -0
  542. package/src/components/PathBreadcrumbs/styles.module.scss +7 -0
  543. package/src/components/PlatformLogo/Container.tsx +31 -0
  544. package/src/components/PlatformLogo/index.ts +17 -0
  545. package/src/components/PlatformLogo/styles.module.scss +13 -0
  546. package/src/components/UserMenu/UserMenu.tsx +106 -0
  547. package/src/components/UserMenu/hooks/useLogoutItem.tsx +23 -0
  548. package/src/components/UserMenu/hooks/useProfileItem.tsx +33 -0
  549. package/src/components/UserMenu/hooks/useThemeItem.tsx +70 -0
  550. package/src/components/UserMenu/hooks/useUserMenuItems.ts +77 -0
  551. package/src/components/UserMenu/index.ts +2 -0
  552. package/src/components/UserMenu/styles.module.scss +7 -0
  553. package/src/components/UserMenu/types.ts +24 -0
  554. package/src/components/index.ts +7 -0
  555. package/src/constants.ts +20 -0
  556. package/src/index.ts +4 -0
  557. package/src/locale/index.ts +64 -0
  558. package/src/mobileOverlays.ts +26 -0
  559. package/src/utils/shouldBeOpenedInNewTab.ts +5 -0
package/README.md ADDED
@@ -0,0 +1,717 @@
1
+ # Header
2
+
3
+ `@cloud-ru/ds-uikit-product-header` — Продуктовая шапка консоли — HeaderLayout, MainMenu, UserMenu, Logo, PathBreadcrumbs и PlatformLogo.
4
+
5
+ Пакет `@cloud-ru/ds-uikit-product-header` — продуктовая шапка консоли: компоновка слотов (`HeaderLayout`), главное меню навигации (`MainMenu`), меню пользователя (`UserMenu`), логотип (`Logo`), хлебные крошки (`PathBreadcrumbs`) и иконки платформ (`PlatformLogo`).
6
+
7
+ ## Установка
8
+
9
+ ```bash
10
+ pnpm add @cloud-ru/ds-uikit-product-header
11
+ ```
12
+
13
+ ```ts
14
+ import { HeaderLayout, MainMenu, UserMenu } from '@cloud-ru/ds-uikit-product-header';
15
+ import '@cloud-ru/ds-uikit-product-header/style.css';
16
+ ```
17
+
18
+ ## Container
19
+
20
+ ### Props
21
+
22
+ | Prop | Type | Default | Description |
23
+ |------|------|---------|-------------|
24
+ | `className` | `string` | — | |
25
+ | `data-test-id` | `string` | — | |
26
+
27
+ ## Content
28
+
29
+ ### Props
30
+
31
+ | Prop | Type | Default | Description |
32
+ |------|------|---------|-------------|
33
+ | `activeSegmentId` | `string` | — | Активный сегмент правой панели. Не передано — неуправляемое состояние <br/> (дефолт — первый сегмент с видимыми карточками). |
34
+ | `className` | `string` | — | |
35
+ | `favorite` | `FavoriteProps` | — | |
36
+ | `footer` | `ReactNode` | — | |
37
+ | `isMobile` | `boolean` | — | |
38
+ | `loading` | `boolean` | — | Флаг загрузки данных |
39
+ | `onActiveSegmentChange` | `((segmentId: string) => void)` | — | Колбэк смены активного сегмента правой панели. |
40
+ | `onClose` | `(() => void)` | — | |
41
+ | `onSegmentExpandedChange` | `((segmentId: string, expandedGroupIds: string[]) => void)` | — | |
42
+ | `onSegmentOrderChange` | `((segmentId: string, orderedGroupIds: string[]) => void)` | — | |
43
+ | `preferences` | `MainMenuPreferencesProps` | — | |
44
+ | `rightTop` | `ReactNode` | — | Слот над тулбаром правой колонки (например, баннеры) |
45
+ | `search` | `ReactNode` | — | |
46
+ | `searchGroups` | `LinksGroup[]` | `[]` | Результаты поиска (уже смерженные); в обычном режиме не используются. |
47
+ | `searchValue` | `string` | — | |
48
+ | `segmentPrefs` | `MainMenuSegmentPrefs[]` | — | |
49
+ | `segments` | `MainMenuSegment[]` | — | |
50
+
51
+ ## ContentToolbar
52
+
53
+ ### Props
54
+
55
+ | Prop | Type | Default | Description |
56
+ |------|------|---------|-------------|
57
+ | `allGroupsExpanded` | `boolean` | — | |
58
+ | `isMobile` | `boolean` | — | |
59
+ | `onSegmentChange` | `(segment: string) => void` | — | |
60
+ | `onToggleAllGroupsExpanded` | `() => void` | — | |
61
+ | `preferences` | `MainMenuPreferencesProps` | — | Настройки меню (модалка по кнопке). Не передано — кнопка настроек не отображается. |
62
+ | `segment` | `string` | — | |
63
+ | `segmentItems` | `ContentToolbarSegmentItem[]` | — | |
64
+
65
+ ## DraggableServiceCard
66
+
67
+ ### Props
68
+
69
+ | Prop | Type | Default | Description |
70
+ |------|------|---------|-------------|
71
+ | `className` | `string` | — | |
72
+ | `dragDisabled` | `boolean` | — | |
73
+ | `dragPreview` | `boolean` | — | |
74
+ | `expandable` | `{ value: boolean; onClick(): void; }` | — | |
75
+ | `favorite` | `FavoriteProps` | — | |
76
+ | `groupId` | `string` | — | |
77
+ | `isMobile` | `boolean` | — | |
78
+ | `onServiceClick` | `((service: InnerLink, event: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
79
+ | `service` | `InnerLink` | — | |
80
+ | `showDescription` | `boolean` | — | |
81
+ | `tabIndex` | `number` | — | |
82
+
83
+ ## EmptyFavoriteSVG
84
+
85
+ ### Props
86
+
87
+ | Prop | Type | Default | Description |
88
+ |------|------|---------|-------------|
89
+ | `className` | `string` | — | |
90
+
91
+ ## EmptyRecentSVG
92
+
93
+ ### Props
94
+
95
+ | Prop | Type | Default | Description |
96
+ |------|------|---------|-------------|
97
+ | `className` | `string` | — | |
98
+
99
+ ## EmptyState
100
+
101
+ ### Props
102
+
103
+ | Prop | Type | Default | Description |
104
+ |------|------|---------|-------------|
105
+ | `isFavoritesSegment` | `boolean` | — | |
106
+ | `isMobile` | `boolean` | — | |
107
+
108
+ ## Favorites
109
+
110
+ ### Props `FavoritesProps`
111
+
112
+ | Prop | Type | Default | Description |
113
+ |------|------|---------|-------------|
114
+ | `allServiceGroups` | `LinksGroup` | — | Группы сервисов для разрешения id в карточки |
115
+ | `favorite` | `FavoriteProps` | — | Список избранных сервисов |
116
+ | `headerClassName` | `string` | — | CSS-класс строки заголовка (segment + кнопка настроек) |
117
+ | `isMobile` | `boolean` | — | Флаг мобильной раскладки |
118
+
119
+ #### Related types
120
+
121
+ **FavoriteProps**
122
+
123
+ | Prop | Type | Default | Description |
124
+ |------|------|---------|-------------|
125
+ | `actions` | `BaseItemProps` | — | Действия для списка сервисов |
126
+ | `loading` | `boolean \| undefined` | — | Флаг загрузки данных |
127
+ | `onChange` | `(productId: string) => (addingValue: boolean, position?: number) => void` | — | Колбэк переключения избранного для карточки сервиса. <br/> `position` передаётся при добавлении через drag из сетки сервисов — индекс, <br/> на который должна встать карточка среди избранного (см. <br/> {@link <br/> FavoriteProps.onOrderChange <br/> } <br/> ). <br/> При переключении избранного кликом не передаётся. |
128
+ | `onFavoriteServiceClick` | `((serviceId: string, event?: MouseEvent<HTMLElement>) => void) \| undefined` | — | Колбэк клика по карточке сервиса в сегменте «Избранное» |
129
+ | `onOrderChange` | `((orderedIds: string[]) => void) \| undefined` | — | Колбэк вызывается после перетаскивания карточек внутри избранного с новым порядком id. <br/> Добавление новой карточки через drag из сетки сервисов идёт через <br/> {@link <br/> FavoriteProps.onChange <br/> } <br/> с `position` — этот колбэк для такого добавления не вызывается. |
130
+ | `onRecentServiceClick` | `((serviceId: string, event?: MouseEvent<HTMLElement>) => void) \| undefined` | — | Колбэк клика по карточке сервиса в сегменте «Недавнее» |
131
+ | `onSegmentChange` | `((segment: FavoritesSegment) => void) \| undefined` | — | Колбэк смены сегмента панели избранного. |
132
+ | `recentServices` | `string[] \| undefined` | — | Список id недавно открытых сервисов |
133
+ | `segment` | `"favorites"` \| `"recent"` | — | Активный сегмент («Избранное» / «Недавнее») в панели избранного. <br/> Не передано — неуправляемое состояние (дефолт `'favorites'`). |
134
+ | `value` | `string[]` | — | Список id избранных сервисов |
135
+
136
+ - `FavoritesSegment` = `"favorites"` \| `"recent"`
137
+
138
+ **InnerLink**
139
+
140
+ | Prop | Type | Default | Description |
141
+ |------|------|---------|-------------|
142
+ | `aliases` | `string[]` | — | Синонимы для fuzzy-поиска. |
143
+ | `badge` | `CardServiceLightProps` \| `PromoTagPredefinedBaseProps` | — | |
144
+ | `description` | `string \| undefined` | — | Краткое описание сервиса — отображается при включённом переключателе «Описание». |
145
+ | `disabled` | `boolean \| undefined` | — | |
146
+ | `hidden` | `boolean \| undefined` | — | |
147
+ | `href` | `string \| undefined` | — | |
148
+ | `icon` | `JSXElementConstructor<{ size?: number; className?: string; }> \| undefined` | — | Иконка карточки. <br/> Если не задана, вместо иконки рендерится `Avatar` с двухбуквенным текстом по `label` <br/> (см. `getAvatarNameFromLabel`). |
149
+ | `id` | `string` | — | Уникальный идентификатор карточки (также используется в избранном и при поиске). <br/> Один и тот же сервис может быть представлен в разных сегментах с разной <br/> детализацией (простая карточка в общем каталоге и раскрытая с вложенными <br/> сервисами версия в другом сегменте) — в этом случае обеим версиям задаётся <br/> общий `id`. При поиске из совпадений с одинаковым `id` в разных сегментах <br/> остаётся только первое по приоритету сегментов (см. <br/> {@link <br/> MainMenuProps.segments <br/> } <br/> ). |
150
+ | `items` | `InnerLink` | — | Вложенные сервисы подкатегории. <br/> При наличии карточка раскрывается аккордеоном: в свёрнутом виде — обычная карточка <br/> с кнопкой раскрытия, в развёрнутом — заголовок <br/> {@link <br/> TitleClickable <br/> } <br/> и сетка вложенных сервисов. |
151
+ | `label` | `string` | — | Заголовок карточки. |
152
+ | `onClick` | `(e?: MouseEvent<HTMLElement>) => void` | — | |
153
+
154
+ **LinksGroup**
155
+
156
+ | Prop | Type | Default | Description |
157
+ |------|------|---------|-------------|
158
+ | `aliases` | `string[] \| undefined` | — | Синонимы заголовка группы для fuzzy-поиска. |
159
+ | `blockColor` | `"blue"` \| `"green"` \| `"neutral"` \| `"orange"` \| `"pink"` \| `"primary"` \| `"red"` \| `"violet"` \| `"yellow"` | — | Цвет блока группы. |
160
+ | `favoritesEnabled` | `boolean \| undefined` | — | Разрешено ли добавление карточек группы в избранное. |
161
+ | `hidden` | `boolean \| undefined` | — | |
162
+ | `highlight` | `boolean \| undefined` | — | Визуальное выделение группы |
163
+ | `id` | `string` | — | Уникальный идентификатор группы (якорь скролла, поиск по id). |
164
+ | `items` | `InnerLink` | — | Карточки сервисов или ссылок внутри группы. |
165
+ | `label` | `LinksGroupTitle` \| `TitleClickable` \| `TitleStatic` | — | Заголовок группы в сетке карточек и в боковой навигации. |
166
+ | `onClick` | `((e?: MouseEvent<HTMLElement>) => void) \| undefined` | — | |
167
+
168
+ - `LinksGroupBlockColor` = `"blue"` \| `"green"` \| `"neutral"` \| `"orange"` \| `"pink"` \| `"primary"` \| `"red"` \| `"violet"` \| `"yellow"`
169
+
170
+ - `LinksGroupTitle` = `TitleStatic | TitleClickable`
171
+
172
+ **TitleClickable**
173
+
174
+ | Prop | Type | Default | Description |
175
+ |------|------|---------|-------------|
176
+ | `onClick` | `((e?: MouseEvent<HTMLElement>) => void) \| undefined` | — | |
177
+ | `text` | `string` | — | |
178
+
179
+ **TitleStatic**
180
+
181
+ | Prop | Type | Default | Description |
182
+ |------|------|---------|-------------|
183
+ | `onClick` | `undefined` | — | |
184
+ | `text` | `string` | — | |
185
+
186
+ ## FavoritesSortable
187
+
188
+ ### Props
189
+
190
+ | Prop | Type | Default | Description |
191
+ |------|------|---------|-------------|
192
+ | `favorite` | `FavoriteProps` | — | |
193
+ | `favoriteItems` | `InnerLink[]` | — | |
194
+ | `isEmpty` | `boolean` | — | |
195
+ | `onFavoriteServiceClick` | `(service: InnerLink) => (event: MouseEvent<HTMLElement, MouseEvent>) => void` | — | |
196
+ | `recentCards` | `ReactNode` | — | |
197
+ | `segment` | `"favorites"` \| `"recent"` | — | |
198
+ | `setSegment` | `(segment: FavoritesSegment) => void` | — | |
199
+
200
+ ## HeaderButton
201
+
202
+ ### Props `HeaderButtonProps`
203
+
204
+ | Prop | Type | Default | Description |
205
+ |------|------|---------|-------------|
206
+ | `as` | `T` | — | Элемент или компонент для рендера: 'button' \| 'a' \| ComponentType (например Link из react-router-dom) |
207
+ | `className` | `any` | — | Дополнительный класс |
208
+ | `counter` | `CounterProps` | — | Пропсы для counter. `appearance` можно задать явно (по умолчанию наследуется от appearance кнопки). |
209
+ | `data-test-id` | `any` | — | |
210
+ | `disabled` | `any` | — | Отключена |
211
+ | `fullWidth` | `any` | — | На всю ширину |
212
+ | `icon` | `any` | — | Иконка |
213
+ | `iconPosition` | `IconPosition` | — | Позиция иконки относительно текста |
214
+ | `innerRef` | `PolymorphicRef` \| `T` | — | Ref на реальный DOM-элемент/инстанс, который рендерится через `as`. <br/> Используем явный проп, чтобы не зависеть от `forwardRef` и не тащить type-assertions на экспорт. |
215
+ | `isMobile` | `boolean` | — | |
216
+ | `label` | `any` | — | Текст кнопки |
217
+ | `loading` | `any` | — | Состояние загрузки |
218
+ | `minWidth` | `any` | — | Минимальная ширина контейнера (`min-width` из токена размера). По умолчанию `true`. <br/> `false` — кнопка сжимается по контенту вместо фиксированного минимума. |
219
+ | `tooltip` | `TooltipProps` | — | Настройки тултипа. `placement` и `disableSpanWrapper` зафиксированы под анатомию хедера |
220
+
221
+ ## HeaderLayout
222
+
223
+ ### Props `HeaderLayoutProps`
224
+
225
+ | Prop | Type | Default | Description |
226
+ |------|------|---------|-------------|
227
+ | `breadcrumbs` | `ReactNode` | — | |
228
+ | `className` | `string` | — | |
229
+ | `data-test-id` | `string` | — | |
230
+ | `logo` | `ReactNode` | — | |
231
+ | `menu` | `ReactNode` | — | |
232
+ | `select` | `ReactNode` | — | |
233
+ | `toolbar` | `ReactNode` | — | |
234
+
235
+ ## Logo
236
+
237
+ ### Props `LogoProps`
238
+
239
+ | Prop | Type | Default | Description |
240
+ |------|------|---------|-------------|
241
+ | `className` | `string` | — | |
242
+ | `data-test-id` | `string` | — | |
243
+ | `href` | `string` | — | |
244
+ | `loading` | `boolean` | — | |
245
+ | `mode` | `"develop"` \| `"hybrid"` \| `"prod"` \| `"stage"` | — | |
246
+ | `onClick` | `MouseEventHandler<HTMLAnchorElement>` | — | |
247
+ | `path` | `string` | — | |
248
+ | `tooltip` | `TooltipProps` | — | |
249
+
250
+ #### Related types
251
+
252
+ - `HeaderLogoMode` = `"develop"` \| `"hybrid"` \| `"prod"` \| `"stage"`
253
+
254
+ ## MainMenu
255
+
256
+ ### Props `MainMenuProps`
257
+
258
+ | Prop | Type | Default | Description |
259
+ |------|------|---------|-------------|
260
+ | `activeSegmentId` | `string` | — | Активный сегмент правой панели (значение SegmentControl, см. {@link MainMenuSegment.id}). <br/> Не передано — неуправляемое состояние (дефолт — первый сегмент с видимыми карточками). |
261
+ | `defaultWidth` | `number` | — | Ширина дровера, с которой открывается меню (desktop only) |
262
+ | `disabled` | `boolean` | — | |
263
+ | `draggerTooltip` | `string` | — | Текст подсказки для драггера (desktop only) |
264
+ | `favorite` | `FavoriteProps` | — | |
265
+ | `leftTop` | `ReactNode` | — | |
266
+ | `loading` | `boolean` | — | Флаг загрузки данных |
267
+ | `logo` | `ReactNode` | — | |
268
+ | `onActiveSegmentChange` | `((segmentId: string) => void)` | — | Колбэк смены активного сегмента правой панели. |
269
+ | `onSegmentExpandedChange` | `((segmentId: string, expandedGroupIds: string[]) => void)` | — | Колбэк при изменении набора раскрытых групп сегмента <br/> (без id синтетической группы избранного). |
270
+ | `onSegmentOrderChange` | `((segmentId: string, orderedGroupIds: string[]) => void)` | — | Колбэк после DnD групп в сегменте (без id синтетической группы избранного). |
271
+ | `onWidthChangeEnd` | `((width: number) => void)` | — | Вызывается при окончании изменения ширины дровера (desktop only) |
272
+ | `open` | `boolean` | — | |
273
+ | `platformGroups` | `LinksGroup` | — | Платформенные группы (например «Облачные продукты», «Другие продукты»). <br/> Без поиска в сетке карточек **не отображаются**. <br/> С поиском: попадают в результаты при совпадении; порядок — <br/> после совпадений из сегментов без `pinBottomOnSearch`, перед сегментами с `pinBottomOnSearch`. <br/> Обычно `favoritesEnabled: false`; карточки могут быть без `icon` (Avatar по `label`). |
274
+ | `preferences` | `MainMenuPreferencesProps` | — | Настройки меню (модалка по кнопке в тулбаре): описания карточек, цвета групп. <br/> Не передано — кнопка настроек в тулбаре не отображается. |
275
+ | `rightTop` | `ReactNode` | — | |
276
+ | `search` | `SearchProps` | — | |
277
+ | `segmentPrefs` | `MainMenuSegmentPrefs` | — | Пользовательские prefs сегментов (порядок / раскрытие групп). <br/> Нет записи для сегмента или omit `order` / `expanded` → uncontrolled для этого поля. |
278
+ | `segments` | `MainMenuSegment` | — | Сегменты правой панели (сетка карточек) — только каталог. <br/> При поиске: совпадения из сегментов без `pinBottomOnSearch` → `platformGroups` → сегменты с `pinBottomOnSearch`. <br/> Если один и тот же {@link InnerLink.id} совпал сразу в нескольких сегментах — остаётся только <br/> первое по этому приоритету вхождение, остальные (и опустевшие после этого группы) не показываются. <br/> При `segments.length > 1` показывается SegmentControl (скрывается во время поиска). <br/> Порядок и раскрытие групп — через `segmentPrefs` и колбэки ниже. |
279
+ | `setOpen` | `((open: boolean) => void)` | — | |
280
+ | `settingItems` | `BaseItemWithoutNonGroup` \| `CommonGroupItem` \| `ListProps` \| `ScrollProps` | — | Пункты левой колонки (desktop) / нижней части списка (mobile). <br/> Плоский список `List` (`BaseItem` и при необходимости `type: 'group'` с `divider` для разделителей). <br/> Не связан с сегментами правой панели и не меняется при сортировке групп в сегментах. |
281
+
282
+ #### Related types
283
+
284
+ **EmptyStateProps**
285
+
286
+ | Prop | Type | Default | Description |
287
+ |------|------|---------|-------------|
288
+ | `isFavoritesSegment` | `boolean` | — | |
289
+ | `isMobile` | `boolean \| undefined` | — | |
290
+
291
+ **LinksGroup**
292
+
293
+ | Prop | Type | Default | Description |
294
+ |------|------|---------|-------------|
295
+ | `aliases` | `string[] \| undefined` | — | Синонимы заголовка группы для fuzzy-поиска. |
296
+ | `blockColor` | `"blue"` \| `"green"` \| `"neutral"` \| `"orange"` \| `"pink"` \| `"primary"` \| `"red"` \| `"violet"` \| `"yellow"` | — | Цвет блока группы. |
297
+ | `favoritesEnabled` | `boolean \| undefined` | — | Разрешено ли добавление карточек группы в избранное. |
298
+ | `hidden` | `boolean \| undefined` | — | |
299
+ | `highlight` | `boolean \| undefined` | — | Визуальное выделение группы |
300
+ | `id` | `string` | — | Уникальный идентификатор группы (якорь скролла, поиск по id). |
301
+ | `items` | `InnerLink` | — | Карточки сервисов или ссылок внутри группы. |
302
+ | `label` | `LinksGroupTitle` \| `TitleClickable` \| `TitleStatic` | — | Заголовок группы в сетке карточек и в боковой навигации. |
303
+ | `onClick` | `((e?: MouseEvent<HTMLElement>) => void) \| undefined` | — | |
304
+
305
+ **MainMenuSegment**
306
+
307
+ | Prop | Type | Default | Description |
308
+ |------|------|---------|-------------|
309
+ | `icon` | `string \| number \| boolean \| ReactElement<any, string \| JSXElementConstructor<any>> \| Iterable<ReactNode> \| ReactPortal \| null \| undefined` | — | Иконка сегмента в SegmentControl; без неё — только `label`. |
310
+ | `id` | `string` | — | Уникальный идентификатор сегмента (значение SegmentControl). |
311
+ | `items` | `LinksGroup` | — | Группы карточек сегмента (каталог). |
312
+ | `label` | `string` | — | Подпись сегмента в SegmentControl. |
313
+ | `pinBottomOnSearch` | `boolean \| undefined` | — | Группы сегмента в выдаче поиска — после совпадений из обычных сегментов и `platformGroups`. |
314
+
315
+ **MainMenuSegmentPrefs**
316
+
317
+ | Prop | Type | Default | Description |
318
+ |------|------|---------|-------------|
319
+ | `expanded` | `string[] \| undefined` | — | Id раскрытых групп. Если не передан — uncontrolled (по умолчанию все раскрыты). |
320
+ | `id` | `string` | — | Id сегмента из <br/> {@link <br/> MainMenuSegment.id <br/> } <br/> . |
321
+ | `order` | `string[] \| undefined` | — | Порядок id групп. Если не передан — uncontrolled для этого сегмента <br/> (дефолт = порядок `items`; новые группы добавляются в конец). |
322
+
323
+ ## MainMenuDndContext
324
+
325
+ ### Props
326
+
327
+ | Prop | Type | Default | Description |
328
+ |------|------|---------|-------------|
329
+ | `collisionDetection` | `CollisionDetection` | — | |
330
+ | `dragOverlay` | `string \| number \| boolean \| Iterable<ReactNode> \| Element \| null` | — | |
331
+ | `modifiers` | `Modifier[]` | — | |
332
+ | `onDragCancel` | `(({ active }: DragCancelEvent) => void)` | — | |
333
+ | `onDragEnd` | `(({ active, over, delta, activatorEvent }: DragEndEvent) => void)` | — | |
334
+ | `onDragStart` | `(({ active }: DragStartEvent) => void)` | — | |
335
+ | `overlayContextValue` | `{ setGroupDragOverlay: Dispatch<SetStateAction<ReactNode>>; }` | — | |
336
+ | `sensors` | `SensorDescriptor<SensorOptions>[]` | — | |
337
+
338
+ ## MenuBanner
339
+
340
+ ### Props `MenuBannerProps`
341
+
342
+ | Prop | Type | Default | Description |
343
+ |------|------|---------|-------------|
344
+ | `afterTitle` | `ReactNode` | — | Слот справа от заголовка и промо-тега |
345
+ | `className` | `string` | — | CSS-класс корневого элемента |
346
+ | `data-test-id` | `string` | — | |
347
+ | `onClose` | `MouseEventHandler<HTMLElement>` | — | Колбэк закрытия. При наличии отображается кнопка «Закрыть» на hover |
348
+ | `promoTag` | `PromoTagOwnProps` \| `PromoTagProps` | — | Текст промо-тега рядом с заголовком |
349
+ | `title` | `string` | — | Заголовок баннера |
350
+
351
+ ## MenuDesktop
352
+
353
+ ### Props
354
+
355
+ | Prop | Type | Default | Description |
356
+ |------|------|---------|-------------|
357
+ | `activeSegmentId` | `string` | — | Активный сегмент правой панели (значение SegmentControl, см. {@link MainMenuSegment.id}). <br/> Не передано — неуправляемое состояние (дефолт — первый сегмент с видимыми карточками). |
358
+ | `defaultWidth` | `number` | `1208 + 24` | Ширина дровера, с которой открывается меню (desktop only) |
359
+ | `disabled` | `boolean` | — | |
360
+ | `draggerTooltip` | `string` | — | Текст подсказки для драггера (desktop only) |
361
+ | `favorite` | `FavoriteProps` | — | |
362
+ | `leftTop` | `ReactNode` | — | |
363
+ | `loading` | `boolean` | — | Флаг загрузки данных |
364
+ | `logo` | `ReactNode` | — | |
365
+ | `onActiveSegmentChange` | `((segmentId: string) => void)` | — | Колбэк смены активного сегмента правой панели. |
366
+ | `onSegmentExpandedChange` | `((segmentId: string, expandedGroupIds: string[]) => void)` | — | Колбэк при изменении набора раскрытых групп сегмента <br/> (без id синтетической группы избранного). |
367
+ | `onSegmentOrderChange` | `((segmentId: string, orderedGroupIds: string[]) => void)` | — | Колбэк после DnD групп в сегменте (без id синтетической группы избранного). |
368
+ | `onWidthChangeEnd` | `((width: number) => void)` | — | Вызывается при окончании изменения ширины дровера (desktop only) |
369
+ | `open` | `boolean` | — | |
370
+ | `platformGroups` | `LinksGroup[]` | — | Платформенные группы (например «Облачные продукты», «Другие продукты»). <br/> Без поиска в сетке карточек **не отображаются**. <br/> С поиском: попадают в результаты при совпадении; порядок — <br/> после совпадений из сегментов без `pinBottomOnSearch`, перед сегментами с `pinBottomOnSearch`. <br/> Обычно `favoritesEnabled: false`; карточки могут быть без `icon` (Avatar по `label`). |
371
+ | `preferences` | `MainMenuPreferencesProps` | — | Настройки меню (модалка по кнопке в тулбаре): описания карточек, цвета групп. <br/> Не передано — кнопка настроек в тулбаре не отображается. |
372
+ | `rightTop` | `ReactNode` | — | |
373
+ | `search` | `SearchProps` | — | |
374
+ | `segmentPrefs` | `MainMenuSegmentPrefs[]` | — | Пользовательские prefs сегментов (порядок / раскрытие групп). <br/> Нет записи для сегмента или omit `order` / `expanded` → uncontrolled для этого поля. |
375
+ | `segments` | `MainMenuSegment[]` | — | Сегменты правой панели (сетка карточек) — только каталог. <br/> При поиске: совпадения из сегментов без `pinBottomOnSearch` → `platformGroups` → сегменты с `pinBottomOnSearch`. <br/> Если один и тот же {@link InnerLink.id} совпал сразу в нескольких сегментах — остаётся только <br/> первое по этому приоритету вхождение, остальные (и опустевшие после этого группы) не показываются. <br/> При `segments.length > 1` показывается SegmentControl (скрывается во время поиска). <br/> Порядок и раскрытие групп — через `segmentPrefs` и колбэки ниже. |
376
+ | `setOpen` | `((open: boolean) => void)` | — | |
377
+ | `settingItems` | `Item[]` | — | Пункты левой колонки (desktop) / нижней части списка (mobile). <br/> Плоский список `List` (`BaseItem` и при необходимости `type: 'group'` с `divider` для разделителей). <br/> Не связан с сегментами правой панели и не меняется при сортировке групп в сегментах. |
378
+
379
+ ## MenuHeaderBrand
380
+
381
+ ### Props
382
+
383
+ | Prop | Type | Default | Description |
384
+ |------|------|---------|-------------|
385
+ | `className` | `string` | — | |
386
+ | `logo` | `ReactNode` | — | |
387
+ | `onClose` | `() => void` | — | |
388
+
389
+ ## MenuMobile
390
+
391
+ ### Props
392
+
393
+ | Prop | Type | Default | Description |
394
+ |------|------|---------|-------------|
395
+ | `activeSegmentId` | `string` | — | Активный сегмент правой панели (значение SegmentControl, см. {@link MainMenuSegment.id}). <br/> Не передано — неуправляемое состояние (дефолт — первый сегмент с видимыми карточками). |
396
+ | `defaultWidth` | `number` | — | Ширина дровера, с которой открывается меню (desktop only) |
397
+ | `disabled` | `boolean` | — | |
398
+ | `draggerTooltip` | `string` | — | Текст подсказки для драггера (desktop only) |
399
+ | `favorite` | `FavoriteProps` | — | |
400
+ | `leftTop` | `ReactNode` | — | |
401
+ | `loading` | `boolean` | — | Флаг загрузки данных |
402
+ | `logo` | `ReactNode` | — | |
403
+ | `onActiveSegmentChange` | `((segmentId: string) => void)` | — | Колбэк смены активного сегмента правой панели. |
404
+ | `onSegmentExpandedChange` | `((segmentId: string, expandedGroupIds: string[]) => void)` | — | Колбэк при изменении набора раскрытых групп сегмента <br/> (без id синтетической группы избранного). |
405
+ | `onSegmentOrderChange` | `((segmentId: string, orderedGroupIds: string[]) => void)` | — | Колбэк после DnD групп в сегменте (без id синтетической группы избранного). |
406
+ | `onWidthChangeEnd` | `((width: number) => void)` | — | Вызывается при окончании изменения ширины дровера (desktop only) |
407
+ | `open` | `boolean` | — | |
408
+ | `platformGroups` | `LinksGroup[]` | — | Платформенные группы (например «Облачные продукты», «Другие продукты»). <br/> Без поиска в сетке карточек **не отображаются**. <br/> С поиском: попадают в результаты при совпадении; порядок — <br/> после совпадений из сегментов без `pinBottomOnSearch`, перед сегментами с `pinBottomOnSearch`. <br/> Обычно `favoritesEnabled: false`; карточки могут быть без `icon` (Avatar по `label`). |
409
+ | `preferences` | `MainMenuPreferencesProps` | — | Настройки меню (модалка по кнопке в тулбаре): описания карточек, цвета групп. <br/> Не передано — кнопка настроек в тулбаре не отображается. |
410
+ | `rightTop` | `ReactNode` | — | |
411
+ | `search` | `SearchProps` | — | |
412
+ | `segmentPrefs` | `MainMenuSegmentPrefs[]` | — | Пользовательские prefs сегментов (порядок / раскрытие групп). <br/> Нет записи для сегмента или omit `order` / `expanded` → uncontrolled для этого поля. |
413
+ | `segments` | `MainMenuSegment[]` | — | Сегменты правой панели (сетка карточек) — только каталог. <br/> При поиске: совпадения из сегментов без `pinBottomOnSearch` → `platformGroups` → сегменты с `pinBottomOnSearch`. <br/> Если один и тот же {@link InnerLink.id} совпал сразу в нескольких сегментах — остаётся только <br/> первое по этому приоритету вхождение, остальные (и опустевшие после этого группы) не показываются. <br/> При `segments.length > 1` показывается SegmentControl (скрывается во время поиска). <br/> Порядок и раскрытие групп — через `segmentPrefs` и колбэки ниже. |
414
+ | `setOpen` | `((open: boolean) => void)` | — | |
415
+ | `settingItems` | `Item[]` | — | Пункты левой колонки (desktop) / нижней части списка (mobile). <br/> Плоский список `List` (`BaseItem` и при необходимости `type: 'group'` с `divider` для разделителей). <br/> Не связан с сегментами правой панели и не меняется при сортировке групп в сегментах. |
416
+
417
+ ## MountAnimation
418
+
419
+ ### Props
420
+
421
+ | Prop | Type | Default | Description |
422
+ |------|------|---------|-------------|
423
+ | `className` | `string` | — | |
424
+ | `data-test-id` | `string` | — | |
425
+ | `type` | `"fade-in"` \| `"fade-slide-up"` \| `"fade-slide-up-right"` \| `"slide-right"` | `slide-right` | |
426
+
427
+ ## PathBreadcrumbs
428
+
429
+ ### Props `PathBreadcrumbsProps`
430
+
431
+ | Prop | Type | Default | Description |
432
+ |------|------|---------|-------------|
433
+ | `isMobile` | `boolean` | — | |
434
+ | `items` | `BreadcrumbsProps` \| `Item` | — | |
435
+
436
+ ## ScrollWithAnimatedStickyPanel
437
+
438
+ ### Props
439
+
440
+ | Prop | Type | Default | Description |
441
+ |------|------|---------|-------------|
442
+ | `panel` | `ReactNode` | — | |
443
+
444
+ ## Search
445
+
446
+ ### Props
447
+
448
+ | Prop | Type | Default | Description |
449
+ |------|------|---------|-------------|
450
+ | `isMobile` | `boolean` | `false` | |
451
+ | `onBlur` | `FocusEventHandler<HTMLInputElement>` | — | Колбек обработки потери фокуса |
452
+ | `onChange` | `(value: string) => void` | — | |
453
+ | `onFocus` | `FocusEventHandler<HTMLInputElement>` | — | Колбек обработки получения фокуса |
454
+ | `onSearchNoResult` | `((value: string) => void)` | — | |
455
+ | `value` | `string` | — | |
456
+
457
+ ## ServiceCard
458
+
459
+ ### Props
460
+
461
+ | Prop | Type | Default | Description |
462
+ |------|------|---------|-------------|
463
+ | `className` | `string` | — | |
464
+ | `dragPreview` | `boolean` | — | |
465
+ | `expandable` | `{ value: boolean; onClick(): void; }` | — | |
466
+ | `favorite` | `FavoriteProps` | — | |
467
+ | `isMobile` | `boolean` | — | |
468
+ | `onServiceClick` | `((service: InnerLink, event: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
469
+ | `service` | `InnerLink` | — | |
470
+ | `showDescription` | `boolean` | — | |
471
+ | `tabIndex` | `number` | — | |
472
+
473
+ ## SortableFavoriteCard
474
+
475
+ ### Props
476
+
477
+ | Prop | Type | Default | Description |
478
+ |------|------|---------|-------------|
479
+ | `className` | `string` | — | CSS-класс корневого элемента |
480
+ | `data-test-id` | `string` | — | Support prop для тестов |
481
+ | `expandable` | `{ value: boolean; onClick(): void; }` | — | |
482
+ | `favorite` | `FavoriteProps` | — | Настройки кнопки «Избранное». <br/> Keyboard: ArrowRight на карточке → tooltip (если есть) → Favorite; ArrowLeft — в обратном порядке. |
483
+ | `icon` | `ReactElement<any, string \| JSXElementConstructor<any>>` | — | Иконка сервиса |
484
+ | `isFirst` | `boolean` | — | |
485
+ | `promoTag` | `Omit<PromoTagPredefinedProps, "as" \| "innerRef" \| "trigger">` | — | Настройки promo tag. При отсутствии не отображается |
486
+ | `serviceId` | `string` | — | |
487
+ | `showInsertIndicatorAfter` | `boolean` | — | |
488
+ | `showInsertIndicatorBefore` | `boolean` | — | |
489
+ | `title` | `string` | — | Заголовок карточки |
490
+ | `tooltip` | `Omit<TooltipProps, "size" \| "trigger">` | — | Подсказка с иконкой «?» рядом с заголовком |
491
+
492
+ ## SortableGroup
493
+
494
+ ### Props
495
+
496
+ | Prop | Type | Default | Description |
497
+ |------|------|---------|-------------|
498
+ | `blockColor` | `"blue"` \| `"green"` \| `"neutral"` \| `"orange"` \| `"pink"` \| `"primary"` \| `"red"` \| `"violet"` \| `"yellow"` | — | |
499
+ | `enableServiceDrag` | `boolean` | — | |
500
+ | `favorite` | `FavoriteProps` | — | |
501
+ | `highlight` | `boolean` | — | |
502
+ | `id` | `string` | — | |
503
+ | `isExpanded` | `boolean` | — | |
504
+ | `isMobile` | `boolean` | — | |
505
+ | `items` | `InnerLink[]` | — | |
506
+ | `label` | `LinksGroupTitle` | — | |
507
+ | `onServiceClick` | `((service: InnerLink, event: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
508
+ | `showDescription` | `boolean` | — | |
509
+
510
+ ## SortableGroupCards
511
+
512
+ ### Props
513
+
514
+ | Prop | Type | Default | Description |
515
+ |------|------|---------|-------------|
516
+ | `enableServiceDrag` | `boolean` | — | |
517
+ | `favorite` | `FavoriteProps` | — | |
518
+ | `groupId` | `string` | — | |
519
+ | `isMobile` | `boolean` | — | |
520
+ | `items` | `InnerLink[]` | — | |
521
+ | `onServiceClick` | `((service: InnerLink, event: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
522
+ | `showDescription` | `boolean` | — | |
523
+
524
+ ## SortableGroupDragHandle
525
+
526
+ ### Props
527
+
528
+ | Prop | Type | Default | Description |
529
+ |------|------|---------|-------------|
530
+ | `attributes` | `DraggableAttributes` | — | |
531
+ | `listeners` | `DraggableSyntheticListeners` | — | |
532
+
533
+ ## SortableGroupDragPreview
534
+
535
+ ### Props
536
+
537
+ | Prop | Type | Default | Description |
538
+ |------|------|---------|-------------|
539
+ | `blockColor` | `"blue"` \| `"green"` \| `"neutral"` \| `"orange"` \| `"pink"` \| `"primary"` \| `"red"` \| `"violet"` \| `"yellow"` | — | |
540
+ | `favorite` | `FavoriteProps` | — | |
541
+ | `highlight` | `boolean` | — | |
542
+ | `id` | `string` | — | |
543
+ | `isExpanded` | `boolean` | — | |
544
+ | `isMobile` | `boolean` | — | |
545
+ | `items` | `InnerLink[]` | — | |
546
+ | `label` | `LinksGroupTitle` | — | |
547
+ | `onServiceClick` | `((service: InnerLink, event: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
548
+ | `showDescription` | `boolean` | — | |
549
+
550
+ ## SortableGroupHeader
551
+
552
+ ### Props
553
+
554
+ | Prop | Type | Default | Description |
555
+ |------|------|---------|-------------|
556
+ | `attributes` | `DraggableAttributes` | — | |
557
+ | `enableServiceDrag` | `boolean` | — | |
558
+ | `isExpanded` | `boolean` | — | |
559
+ | `isMobile` | `boolean` | — | |
560
+ | `label` | `LinksGroupTitle` | — | |
561
+ | `listeners` | `DraggableSyntheticListeners` | — | |
562
+
563
+ ## SortableGroupSkeleton
564
+
565
+ ### Props
566
+
567
+ | Prop | Type | Default | Description |
568
+ |------|------|---------|-------------|
569
+ | `isMobile` | `boolean` | — | |
570
+
571
+ ## SubCategory
572
+
573
+ ### Props
574
+
575
+ | Prop | Type | Default | Description |
576
+ |------|------|---------|-------------|
577
+ | `dragDisabled` | `boolean` | — | |
578
+ | `favorite` | `FavoriteProps` | — | |
579
+ | `groupId` | `string` | — | |
580
+ | `isMobile` | `boolean` | — | |
581
+ | `onServiceClick` | `((service: InnerLink, event: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
582
+ | `service` | `InnerLink` | — | |
583
+ | `showDescription` | `boolean` | — | |
584
+
585
+ ## SubCategoryTitle
586
+
587
+ ### Props
588
+
589
+ | Prop | Type | Default | Description |
590
+ |------|------|---------|-------------|
591
+ | `dragDisabled` | `boolean` | — | |
592
+ | `expandable` | `{ value: boolean; onClick(): void; }` | — | |
593
+ | `favorite` | `FavoriteProps` | — | |
594
+ | `groupId` | `string` | — | |
595
+ | `isMobile` | `boolean` | — | |
596
+ | `onServiceClick` | `((service: InnerLink, event: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
597
+ | `service` | `InnerLink` | — | |
598
+ | `showDescription` | `boolean` | — | |
599
+
600
+ ## useFavoritesDnd
601
+
602
+ ### Props
603
+
604
+ | Prop | Type | Default | Description |
605
+ |------|------|---------|-------------|
606
+ | `favorite` | `FavoriteProps` | — | |
607
+ | `favoriteItems` | `InnerLink[]` | — | |
608
+ | `segment` | `"favorites"` \| `"recent"` | — | |
609
+ | `setSegment` | `(segment: FavoritesSegment) => void` | — | |
610
+
611
+ ## useLogoutItem
612
+
613
+ ### Props
614
+
615
+ | Prop | Type | Default | Description |
616
+ |------|------|---------|-------------|
617
+ | `onLogout` | `(() => void)` | — | |
618
+
619
+ ## useMainMenuDnd
620
+
621
+ ### Props
622
+
623
+ | Prop | Type | Default | Description |
624
+ |------|------|---------|-------------|
625
+ | `favorite` | `FavoriteProps` | — | |
626
+ | `groups` | `LinksGroup[]` | — | Все группы карточек из сегментов (для резолва сервисов при DnD в избранное). |
627
+ | `showDescription` | `boolean` | — | |
628
+
629
+ ## useMenuItems
630
+
631
+ ### Props
632
+
633
+ | Prop | Type | Default | Description |
634
+ |------|------|---------|-------------|
635
+ | `platformGroups` | `LinksGroup[]` | `[]` | Платформенные группы (например «Облачные продукты», «Другие продукты»). <br/> Без поиска в сетке карточек **не отображаются**. <br/> С поиском: попадают в результаты при совпадении; порядок — <br/> после совпадений из сегментов без `pinBottomOnSearch`, перед сегментами с `pinBottomOnSearch`. <br/> Обычно `favoritesEnabled: false`; карточки могут быть без `icon` (Avatar по `label`). |
636
+ | `search` | `SearchProps` | — | |
637
+ | `segments` | `MainMenuSegment[]` | — | Сегменты правой панели (сетка карточек) — только каталог. <br/> При поиске: совпадения из сегментов без `pinBottomOnSearch` → `platformGroups` → сегменты с `pinBottomOnSearch`. <br/> Если один и тот же {@link InnerLink.id} совпал сразу в нескольких сегментах — остаётся только <br/> первое по этому приоритету вхождение, остальные (и опустевшие после этого группы) не показываются. <br/> При `segments.length > 1` показывается SegmentControl (скрывается во время поиска). <br/> Порядок и раскрытие групп — через `segmentPrefs` и колбэки ниже. |
638
+
639
+ ## useProfileItem
640
+
641
+ ### Props
642
+
643
+ | Prop | Type | Default | Description |
644
+ |------|------|---------|-------------|
645
+ | `email` | `string` | `` | |
646
+ | `fullName` | `string` | `` | |
647
+ | `inviteCount` | `number` | — | |
648
+ | `itemWrapRender` | `((node: ReactNode) => ReactNode)` | — | |
649
+ | `onClick` | `((e: MouseEvent<HTMLElement, MouseEvent>) => void)` | — | |
650
+
651
+ ## UserMenu
652
+
653
+ ### Props `UserMenuProps`
654
+
655
+ | Prop | Type | Default | Description |
656
+ |------|------|---------|-------------|
657
+ | `items` | `BaseItemWithoutNonGroup` \| `CommonGroupItem` \| `ListProps` \| `ScrollProps` | — | |
658
+ | `onClick` | `(() => void)` | — | |
659
+ | `onLogout` | `(() => void)` | — | |
660
+ | `open` | `boolean` | — | |
661
+ | `profile` | `UserProfileProps` | `{}` | |
662
+ | `setOpen` | `((open: boolean) => void)` | — | |
663
+ | `settingItems` | `BaseItemProps` | — | |
664
+ | `theme` | `ThemeProps` | — | |
665
+ | `triggerTooltip` | `string` | — | |
666
+
667
+ #### Related types
668
+
669
+ **EmptyStateProps**
670
+
671
+ | Prop | Type | Default | Description |
672
+ |------|------|---------|-------------|
673
+ | `isFavoritesSegment` | `boolean` | — | |
674
+ | `isMobile` | `boolean \| undefined` | — | |
675
+
676
+ - `ThemeMode` = `"dark"` \| `"light"` \| `"system"`
677
+
678
+ **ThemeProps**
679
+
680
+ | Prop | Type | Default | Description |
681
+ |------|------|---------|-------------|
682
+ | `onChange` | `((themeMode: ThemeMode) => void) \| undefined` | — | |
683
+ | `value` | `"dark"` \| `"light"` \| `"system"` | — | |
684
+
685
+ **UserProfileProps**
686
+
687
+ | Prop | Type | Default | Description |
688
+ |------|------|---------|-------------|
689
+ | `email` | `string \| undefined` | — | |
690
+ | `fullName` | `string \| undefined` | — | |
691
+ | `inviteCount` | `number \| undefined` | — | |
692
+ | `itemWrapRender` | `((node: ReactNode) => ReactNode) \| undefined` | — | |
693
+ | `onClick` | `((e: MouseEvent<HTMLElement>) => void) \| undefined` | — | |
694
+
695
+ ## useSegmentDnd
696
+
697
+ ### Props
698
+
699
+ | Prop | Type | Default | Description |
700
+ |------|------|---------|-------------|
701
+ | `expandedIds` | `string[]` | — | |
702
+ | `favorite` | `FavoriteProps` | — | |
703
+ | `onSortableDragEnd` | `(event: DragEndEvent) => void` | — | |
704
+ | `showDescription` | `boolean` | — | |
705
+ | `showGroupsColors` | `boolean` | — | |
706
+ | `visibleGroups` | `LinksGroup[]` | — | |
707
+
708
+ ## useThemeItem
709
+
710
+ ### Props
711
+
712
+ | Prop | Type | Default | Description |
713
+ |------|------|---------|-------------|
714
+ | `isMobile` | `boolean` | — | |
715
+ | `onChange` | `((themeMode: ThemeMode) => void)` | — | |
716
+ | `onClose` | `(() => void)` | — | |
717
+ | `value` | `"dark"` \| `"light"` \| `"system"` | — | |