@gravity-ui/navigation 2.33.0 → 3.0.0-beta-lunory.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 (278) hide show
  1. package/README.md +1 -1
  2. package/build/cjs/components/ActionBar/ActionBar.d.ts +3 -3
  3. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +17 -0
  4. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
  5. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
  6. package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  7. package/build/cjs/components/ActionBar/types.d.ts +1 -1
  8. package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +5 -1
  9. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +1 -1
  10. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +18 -0
  11. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
  12. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
  13. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +6 -0
  14. package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  15. package/build/cjs/components/AsideHeader/components/index.d.ts +0 -1
  16. package/build/cjs/components/AsideHeader/i18n/index.d.ts +5 -1
  17. package/build/cjs/components/AsideHeader/types.d.ts +3 -4
  18. package/build/cjs/components/CompositeBar/CompositeBar.d.ts +1 -1
  19. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  20. package/build/cjs/components/CompositeBar/Item/Item.d.ts +15 -2
  21. package/build/cjs/components/Drawer/Drawer.d.ts +0 -5
  22. package/build/cjs/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
  23. package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +7 -0
  24. package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
  25. package/build/cjs/components/Drawer/__stories__/HideVeil.d.ts +3 -0
  26. package/build/cjs/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
  27. package/build/cjs/components/Drawer/__stories__/moc.d.ts +2 -0
  28. package/build/cjs/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  29. package/build/cjs/components/Drawer/utils.d.ts +2 -3
  30. package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +8 -0
  31. package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
  32. package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +3 -0
  33. package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  34. package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +8 -0
  35. package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
  36. package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +3 -0
  37. package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  38. package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +6 -0
  39. package/build/cjs/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  40. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +1 -3
  41. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +5 -0
  42. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
  43. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
  44. package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  45. package/build/cjs/components/Logo/Logo.d.ts +1 -1
  46. package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +6 -0
  47. package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  48. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +6 -0
  49. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
  50. package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  51. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +2 -1
  52. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +6 -0
  53. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
  54. package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  55. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
  56. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
  57. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +1 -0
  58. package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  59. package/build/cjs/components/MobileHeader/i18n/index.d.ts +5 -1
  60. package/build/cjs/components/MobileHeader/types.d.ts +0 -1
  61. package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +6 -0
  62. package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  63. package/build/cjs/components/Settings/Settings.d.ts +1 -3
  64. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +5 -0
  65. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
  66. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
  67. package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  68. package/build/cjs/components/Settings/collect-settings.d.ts +0 -2
  69. package/build/cjs/components/Settings/i18n/index.d.ts +5 -1
  70. package/build/cjs/components/Title/i18n/index.d.ts +5 -1
  71. package/build/cjs/components/TopAlert/TopAlert.d.ts +10 -0
  72. package/build/cjs/components/TopAlert/index.d.ts +1 -0
  73. package/build/cjs/components/TopAlert/useTopAlertHeight.d.ts +10 -0
  74. package/build/cjs/components/types.d.ts +9 -5
  75. package/build/cjs/hooks/useForwardRef.d.ts +1 -1
  76. package/build/cjs/index-HbnaVyaN.js +69 -0
  77. package/build/cjs/index-HbnaVyaN.js.map +1 -0
  78. package/build/cjs/index-j1vouNtm.js +5734 -0
  79. package/build/cjs/index-j1vouNtm.js.map +1 -0
  80. package/build/cjs/index.js +32 -194
  81. package/build/cjs/index.js.map +1 -1
  82. package/build/esm/components/ActionBar/ActionBar.d.ts +3 -3
  83. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +17 -0
  84. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
  85. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
  86. package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  87. package/build/esm/components/ActionBar/types.d.ts +1 -1
  88. package/build/esm/components/AllPagesPanel/i18n/index.d.ts +5 -1
  89. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +1 -1
  90. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +18 -0
  91. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
  92. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
  93. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +6 -0
  94. package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  95. package/build/esm/components/AsideHeader/components/index.d.ts +0 -1
  96. package/build/esm/components/AsideHeader/i18n/index.d.ts +5 -1
  97. package/build/esm/components/AsideHeader/types.d.ts +3 -4
  98. package/build/esm/components/CompositeBar/CompositeBar.d.ts +1 -1
  99. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  100. package/build/esm/components/CompositeBar/Item/Item.d.ts +15 -2
  101. package/build/esm/components/Drawer/Drawer.d.ts +0 -5
  102. package/build/esm/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
  103. package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +7 -0
  104. package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
  105. package/build/esm/components/Drawer/__stories__/HideVeil.d.ts +3 -0
  106. package/build/esm/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
  107. package/build/esm/components/Drawer/__stories__/moc.d.ts +2 -0
  108. package/build/esm/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  109. package/build/esm/components/Drawer/utils.d.ts +2 -3
  110. package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +8 -0
  111. package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
  112. package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +3 -0
  113. package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  114. package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +8 -0
  115. package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
  116. package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +3 -0
  117. package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  118. package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +6 -0
  119. package/build/esm/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  120. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +1 -3
  121. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +5 -0
  122. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
  123. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
  124. package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  125. package/build/esm/components/Logo/Logo.d.ts +1 -1
  126. package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +6 -0
  127. package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  128. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +6 -0
  129. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
  130. package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  131. package/build/esm/components/MobileHeader/MobileHeader.d.ts +2 -1
  132. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +6 -0
  133. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
  134. package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  135. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
  136. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
  137. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +1 -0
  138. package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  139. package/build/esm/components/MobileHeader/i18n/index.d.ts +5 -1
  140. package/build/esm/components/MobileHeader/types.d.ts +0 -1
  141. package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +6 -0
  142. package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  143. package/build/esm/components/Settings/Settings.d.ts +1 -3
  144. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +5 -0
  145. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
  146. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
  147. package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  148. package/build/esm/components/Settings/collect-settings.d.ts +0 -2
  149. package/build/esm/components/Settings/i18n/index.d.ts +5 -1
  150. package/build/esm/components/Title/i18n/index.d.ts +5 -1
  151. package/build/esm/components/TopAlert/TopAlert.d.ts +10 -0
  152. package/build/esm/components/TopAlert/index.d.ts +1 -0
  153. package/build/esm/components/TopAlert/useTopAlertHeight.d.ts +10 -0
  154. package/build/esm/components/types.d.ts +9 -5
  155. package/build/esm/hooks/useForwardRef.d.ts +1 -1
  156. package/build/esm/index-C7O46WxY.js +5689 -0
  157. package/build/esm/index-C7O46WxY.js.map +1 -0
  158. package/build/esm/index-DruPZQaT.js +67 -0
  159. package/build/esm/index-DruPZQaT.js.map +1 -0
  160. package/build/esm/index.js +6 -167
  161. package/build/esm/index.js.map +1 -1
  162. package/package.json +48 -45
  163. package/build/cjs/ActionBar-3c6cdf57.js +0 -63
  164. package/build/cjs/ActionBar-3c6cdf57.js.map +0 -1
  165. package/build/cjs/AsideFallback.js +0 -31
  166. package/build/cjs/AsideFallback.js.map +0 -1
  167. package/build/cjs/AsideHeader.js +0 -38
  168. package/build/cjs/AsideHeader.js.map +0 -1
  169. package/build/cjs/AsideHeaderContext.js +0 -44
  170. package/build/cjs/AsideHeaderContext.js.map +0 -1
  171. package/build/cjs/Content-64d5738a.js +0 -20
  172. package/build/cjs/Content-64d5738a.js.map +0 -1
  173. package/build/cjs/Drawer.js +0 -3201
  174. package/build/cjs/Drawer.js.map +0 -1
  175. package/build/cjs/FooterItem-d34d84ed.js +0 -336
  176. package/build/cjs/FooterItem-d34d84ed.js.map +0 -1
  177. package/build/cjs/FooterItem.js +0 -31
  178. package/build/cjs/FooterItem.js.map +0 -1
  179. package/build/cjs/HotkeysPanel-1c05ffa8.js +0 -67
  180. package/build/cjs/HotkeysPanel-1c05ffa8.js.map +0 -1
  181. package/build/cjs/Item-ff6bc440.js +0 -303
  182. package/build/cjs/Item-ff6bc440.js.map +0 -1
  183. package/build/cjs/PageLayout.js +0 -40
  184. package/build/cjs/PageLayout.js.map +0 -1
  185. package/build/cjs/PageLayoutAside-56a441a9.js +0 -1008
  186. package/build/cjs/PageLayoutAside-56a441a9.js.map +0 -1
  187. package/build/cjs/PageLayoutAside.js +0 -25
  188. package/build/cjs/PageLayoutAside.js.map +0 -1
  189. package/build/cjs/Settings-8dc2a8ee.js +0 -579
  190. package/build/cjs/Settings-8dc2a8ee.js.map +0 -1
  191. package/build/cjs/Title-54580605.js +0 -42
  192. package/build/cjs/Title-54580605.js.map +0 -1
  193. package/build/cjs/TopPanel-c6b83157.js +0 -82
  194. package/build/cjs/TopPanel-c6b83157.js.map +0 -1
  195. package/build/cjs/cn-9933321a.js +0 -11
  196. package/build/cjs/cn-9933321a.js.map +0 -1
  197. package/build/cjs/components/AsideHeader/components/TopPanel.d.ts +0 -7
  198. package/build/cjs/components/AsideHeader/useAsideHeaderTopPanel.d.ts +0 -10
  199. package/build/cjs/constants-d81c3867.js +0 -14
  200. package/build/cjs/constants-d81c3867.js.map +0 -1
  201. package/build/cjs/debounce-8772fd80.js +0 -545
  202. package/build/cjs/debounce-8772fd80.js.map +0 -1
  203. package/build/cjs/divider-collapsed-b743122e.js +0 -41
  204. package/build/cjs/divider-collapsed-b743122e.js.map +0 -1
  205. package/build/cjs/index2.js +0 -14
  206. package/build/cjs/index2.js.map +0 -1
  207. package/build/cjs/index3.js +0 -17
  208. package/build/cjs/index3.js.map +0 -1
  209. package/build/cjs/index4.js +0 -18
  210. package/build/cjs/index4.js.map +0 -1
  211. package/build/cjs/index5.js +0 -22
  212. package/build/cjs/index5.js.map +0 -1
  213. package/build/cjs/index6.js +0 -23
  214. package/build/cjs/index6.js.map +0 -1
  215. package/build/cjs/style-inject.es-dcee06b6.js +0 -31
  216. package/build/cjs/style-inject.es-dcee06b6.js.map +0 -1
  217. package/build/cjs/tslib.es6-705c6589.js +0 -36
  218. package/build/cjs/tslib.es6-705c6589.js.map +0 -1
  219. package/build/cjs/utils-db3e03c2.js +0 -8
  220. package/build/cjs/utils-db3e03c2.js.map +0 -1
  221. package/build/esm/ActionBar-834b178a.js +0 -57
  222. package/build/esm/ActionBar-834b178a.js.map +0 -1
  223. package/build/esm/AsideFallback.js +0 -23
  224. package/build/esm/AsideFallback.js.map +0 -1
  225. package/build/esm/AsideHeader.js +0 -30
  226. package/build/esm/AsideHeader.js.map +0 -1
  227. package/build/esm/AsideHeaderContext.js +0 -31
  228. package/build/esm/AsideHeaderContext.js.map +0 -1
  229. package/build/esm/Content-f94ba85d.js +0 -14
  230. package/build/esm/Content-f94ba85d.js.map +0 -1
  231. package/build/esm/Drawer.js +0 -3173
  232. package/build/esm/Drawer.js.map +0 -1
  233. package/build/esm/FooterItem-af3c4fa3.js +0 -326
  234. package/build/esm/FooterItem-af3c4fa3.js.map +0 -1
  235. package/build/esm/FooterItem.js +0 -23
  236. package/build/esm/FooterItem.js.map +0 -1
  237. package/build/esm/HotkeysPanel-c7bf8466.js +0 -61
  238. package/build/esm/HotkeysPanel-c7bf8466.js.map +0 -1
  239. package/build/esm/Item-55899ec8.js +0 -289
  240. package/build/esm/Item-55899ec8.js.map +0 -1
  241. package/build/esm/PageLayout.js +0 -32
  242. package/build/esm/PageLayout.js.map +0 -1
  243. package/build/esm/PageLayoutAside-edd59955.js +0 -983
  244. package/build/esm/PageLayoutAside-edd59955.js.map +0 -1
  245. package/build/esm/PageLayoutAside.js +0 -17
  246. package/build/esm/PageLayoutAside.js.map +0 -1
  247. package/build/esm/Settings-e660a4c5.js +0 -553
  248. package/build/esm/Settings-e660a4c5.js.map +0 -1
  249. package/build/esm/Title-03b4255a.js +0 -36
  250. package/build/esm/Title-03b4255a.js.map +0 -1
  251. package/build/esm/TopPanel-cd270f27.js +0 -76
  252. package/build/esm/TopPanel-cd270f27.js.map +0 -1
  253. package/build/esm/cn-ffe5e9f5.js +0 -8
  254. package/build/esm/cn-ffe5e9f5.js.map +0 -1
  255. package/build/esm/components/AsideHeader/components/TopPanel.d.ts +0 -7
  256. package/build/esm/components/AsideHeader/useAsideHeaderTopPanel.d.ts +0 -10
  257. package/build/esm/constants-b1604ff5.js +0 -8
  258. package/build/esm/constants-b1604ff5.js.map +0 -1
  259. package/build/esm/debounce-64cd2b4c.js +0 -543
  260. package/build/esm/debounce-64cd2b4c.js.map +0 -1
  261. package/build/esm/divider-collapsed-a0ef54c3.js +0 -19
  262. package/build/esm/divider-collapsed-a0ef54c3.js.map +0 -1
  263. package/build/esm/index2.js +0 -6
  264. package/build/esm/index2.js.map +0 -1
  265. package/build/esm/index3.js +0 -9
  266. package/build/esm/index3.js.map +0 -1
  267. package/build/esm/index4.js +0 -10
  268. package/build/esm/index4.js.map +0 -1
  269. package/build/esm/index5.js +0 -12
  270. package/build/esm/index5.js.map +0 -1
  271. package/build/esm/index6.js +0 -12
  272. package/build/esm/index6.js.map +0 -1
  273. package/build/esm/style-inject.es-1f59c1d0.js +0 -29
  274. package/build/esm/style-inject.es-1f59c1d0.js.map +0 -1
  275. package/build/esm/tslib.es6-3cd4e99f.js +0 -34
  276. package/build/esm/tslib.es6-3cd4e99f.js.map +0 -1
  277. package/build/esm/utils-117463a5.js +0 -6
  278. package/build/esm/utils-117463a5.js.map +0 -1
@@ -0,0 +1,67 @@
1
+ import React__default from 'react';
2
+ import { Alert, Text } from '@gravity-ui/uikit';
3
+ import { d as debounceFn, s as styleInject, b as block } from './index-C7O46WxY.js';
4
+ import '@bem-react/classname';
5
+ import '@gravity-ui/icons';
6
+ import '@gravity-ui/uikit/i18n';
7
+ import 'react-dom';
8
+ import '@gravity-ui/uikit/legacy';
9
+
10
+ const G_ROOT_CLASS_NAME = 'g-root';
11
+ const useTopAlertHeight = ({ alert }) => {
12
+ const alertRef = React__default.useRef(null);
13
+ const setAsideTopPanelHeight = React__default.useCallback((clientHeight) => {
14
+ const gRootElement = document
15
+ .getElementsByClassName(G_ROOT_CLASS_NAME)
16
+ .item(0);
17
+ gRootElement === null || gRootElement === undefined ? undefined : gRootElement.style.setProperty('--gn-top-alert-height', clientHeight + 'px');
18
+ }, []);
19
+ const updateTopSize = React__default.useCallback(() => {
20
+ var _a;
21
+ setAsideTopPanelHeight(((_a = alertRef.current) === null || _a === undefined ? undefined : _a.clientHeight) || 0);
22
+ }, [setAsideTopPanelHeight]);
23
+ React__default.useLayoutEffect(() => {
24
+ const updateTopSizeDebounce = debounceFn(updateTopSize, 200, { leading: true });
25
+ if (alert) {
26
+ window.addEventListener('resize', updateTopSizeDebounce);
27
+ updateTopSizeDebounce();
28
+ }
29
+ return () => {
30
+ window.removeEventListener('resize', updateTopSizeDebounce);
31
+ setAsideTopPanelHeight(0);
32
+ };
33
+ }, [alert, alertRef, updateTopSize, setAsideTopPanelHeight]);
34
+ return {
35
+ alertRef,
36
+ updateTopSize,
37
+ };
38
+ };
39
+
40
+ var css_248z = ".g-root{--gn-top-alert-height:0px}.gn-top-alert_centered{display:flex;justify-content:space-around}.gn-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-top-alert__wrapper_with-bottom-border:after{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));content:\"\";display:block;height:1px;margin-top:-1px}";
41
+ styleInject(css_248z);
42
+
43
+ const b = block('top-alert');
44
+ const TopAlert = ({ alert, className, mobileView = false }) => {
45
+ const { alertRef, updateTopSize } = useTopAlertHeight({ alert });
46
+ const [opened, setOpened] = React__default.useState(true);
47
+ const handleClose = React__default.useCallback(() => {
48
+ var _a;
49
+ setOpened(false);
50
+ (_a = alert === null || alert === undefined ? undefined : alert.onCloseTopAlert) === null || _a === undefined ? undefined : _a.call(alert);
51
+ }, [alert]);
52
+ React__default.useEffect(() => {
53
+ if (!opened) {
54
+ updateTopSize();
55
+ }
56
+ }, [opened, updateTopSize]);
57
+ if (!alert || !alert.message) {
58
+ return null;
59
+ }
60
+ return (React__default.createElement("div", { ref: alertRef, className: b('wrapper', { 'with-bottom-border': !mobileView && opened }, className) }, opened && (React__default.createElement(Alert, { className: b('', {
61
+ centered: alert.centered,
62
+ dense: alert.dense,
63
+ }), corners: "square", layout: "horizontal", align: alert.align, theme: alert.theme || 'warning', view: alert.view, icon: alert.icon, title: alert.title, message: mobileView ? (React__default.createElement(Text, { ellipsisLines: 5, variant: "body-2" }, alert.message)) : (alert.message), actions: alert.actions, onClose: alert.closable ? handleClose : undefined }))));
64
+ };
65
+
66
+ export { TopAlert };
67
+ //# sourceMappingURL=index-DruPZQaT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DruPZQaT.js","sources":["../../../src/components/TopAlert/useTopAlertHeight.ts","../../../src/components/TopAlert/TopAlert.tsx"],"sourcesContent":["import React from 'react';\n\nimport debounceFn from 'lodash/debounce';\n\nimport {TopAlertProps} from '../types';\n\ntype TopAlertHeightControls = {\n alertRef: React.RefObject<HTMLDivElement>;\n updateTopSize: () => void;\n};\n\nconst G_ROOT_CLASS_NAME = 'g-root';\n\nexport const useTopAlertHeight = ({alert}: {alert?: TopAlertProps}): TopAlertHeightControls => {\n const alertRef = React.useRef<HTMLDivElement>(null);\n\n const setAsideTopPanelHeight = React.useCallback((clientHeight: number) => {\n const gRootElement = document\n .getElementsByClassName(G_ROOT_CLASS_NAME)\n .item(0) as HTMLElement | null;\n gRootElement?.style.setProperty('--gn-top-alert-height', clientHeight + 'px');\n }, []);\n\n const updateTopSize = React.useCallback(() => {\n setAsideTopPanelHeight(alertRef.current?.clientHeight || 0);\n }, [setAsideTopPanelHeight]);\n\n React.useLayoutEffect(() => {\n const updateTopSizeDebounce = debounceFn(updateTopSize, 200, {leading: true});\n\n if (alert) {\n window.addEventListener('resize', updateTopSizeDebounce);\n updateTopSizeDebounce();\n }\n return () => {\n window.removeEventListener('resize', updateTopSizeDebounce);\n setAsideTopPanelHeight(0);\n };\n }, [alert, alertRef, updateTopSize, setAsideTopPanelHeight]);\n\n return {\n alertRef,\n updateTopSize,\n };\n};\n","import React from 'react';\n\nimport {Alert, Text} from '@gravity-ui/uikit';\n\nimport {TopAlertProps} from '../types';\nimport {block} from '../utils/cn';\n\nimport {useTopAlertHeight} from './useTopAlertHeight';\n\nimport './TopAlert.scss';\n\nconst b = block('top-alert');\n\ntype Props = {\n alert?: TopAlertProps;\n className?: string;\n mobileView?: boolean;\n};\n\nexport const TopAlert = ({alert, className, mobileView = false}: Props) => {\n const {alertRef, updateTopSize} = useTopAlertHeight({alert});\n\n const [opened, setOpened] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setOpened(false);\n alert?.onCloseTopAlert?.();\n }, [alert]);\n\n React.useEffect(() => {\n if (!opened) {\n updateTopSize();\n }\n }, [opened, updateTopSize]);\n\n if (!alert || !alert.message) {\n return null;\n }\n\n return (\n <div\n ref={alertRef}\n className={b('wrapper', {'with-bottom-border': !mobileView && opened}, className)}\n >\n {opened && (\n <Alert\n className={b('', {\n centered: alert.centered,\n dense: alert.dense,\n })}\n corners=\"square\"\n layout=\"horizontal\"\n align={alert.align}\n theme={alert.theme || 'warning'}\n view={alert.view}\n icon={alert.icon}\n title={alert.title}\n message={\n mobileView ? (\n <Text ellipsisLines={5} variant=\"body-2\">\n {alert.message}\n </Text>\n ) : (\n alert.message\n )\n }\n actions={alert.actions}\n onClose={alert.closable ? handleClose : undefined}\n />\n )}\n </div>\n );\n};\n"],"names":["React"],"mappings":"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"}
@@ -1,170 +1,9 @@
1
- export { AsideHeader } from './AsideHeader.js';
2
- export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeaderContext.js';
3
- export { FooterItem } from './FooterItem.js';
4
- export { PageLayout } from './PageLayout.js';
5
- import { L as Logo } from './PageLayoutAside-edd59955.js';
6
- export { L as Logo, P as PageLayoutAside } from './PageLayoutAside-edd59955.js';
7
- export { AsideFallback } from './AsideFallback.js';
8
- export { Drawer, DrawerItem } from './Drawer.js';
9
- export { M as MOBILE_HEADER_EVENT_NAMES, a as MobileHeader, F as MobileHeaderFooterItem, b as MobileLogo, g as getMobileHeaderCustomEvent } from './FooterItem-af3c4fa3.js';
10
- import React__default, { useState, useLayoutEffect, useMemo, useRef, useCallback } from 'react';
11
- import { Menu, DropdownMenu, Button, Icon, Sheet } from '@gravity-ui/uikit';
12
- import { d as debounce_1 } from './debounce-64cd2b4c.js';
13
- import { b as block } from './cn-ffe5e9f5.js';
14
- import { _ as __rest } from './tslib.es6-3cd4e99f.js';
15
- import { s as styleInject } from './style-inject.es-1f59c1d0.js';
16
- import { Ellipsis } from '@gravity-ui/icons';
17
- export { P as ActionBar } from './ActionBar-834b178a.js';
18
- export { T as Title } from './Title-03b4255a.js';
19
- export { H as HotkeysPanel } from './HotkeysPanel-c7bf8466.js';
20
- export { S as Settings, a as useSettingsContext, u as useSettingsSelectionContext } from './Settings-e660a4c5.js';
21
- import './Item-55899ec8.js';
22
- import './constants-b1604ff5.js';
23
- import './Content-f94ba85d.js';
24
- import './utils-117463a5.js';
1
+ export { g as ActionBar, e as AsideFallback, A as AsideHeader, a as AsideHeaderContextProvider, f as Drawer, D as DrawerItem, n as Footer, F as FooterItem, H as HotkeysPanel, L as Logo, M as MOBILE_HEADER_EVENT_NAMES, o as MobileFooter, l as MobileHeader, j as MobileHeaderFooterItem, m as MobileLogo, P as PageLayout, c as PageLayoutAside, S as Settings, T as Title, k as getMobileHeaderCustomEvent, u as useAsideHeaderContext, i as useSettingsContext, h as useSettingsSelectionContext } from './index-C7O46WxY.js';
2
+ import 'react';
3
+ import '@bem-react/classname';
4
+ import '@gravity-ui/uikit';
5
+ import '@gravity-ui/icons';
25
6
  import '@gravity-ui/uikit/i18n';
26
- import './divider-collapsed-a0ef54c3.js';
27
7
  import 'react-dom';
28
- import '@bem-react/classname';
29
-
30
- function useOverflowingHorizontalListItems({ containerRef, items, itemSelector, moreButtonWidth = 0, }) {
31
- const [containerWidth, setContainerWidth] = useState(0);
32
- const [itemWidths, setItemWidths] = useState([]);
33
- useLayoutEffect(() => {
34
- if (!containerRef.current) {
35
- return;
36
- }
37
- const measureItemSizes = () => {
38
- var _a, _b;
39
- const itemElements = Array.from((_b = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll(itemSelector)) !== null && _b !== void 0 ? _b : []);
40
- setItemWidths(itemElements.map((item) => item.clientWidth));
41
- };
42
- measureItemSizes();
43
- }, [containerRef, itemSelector]);
44
- useLayoutEffect(() => {
45
- const footerMenu = containerRef.current;
46
- if (!footerMenu) {
47
- return;
48
- }
49
- const updateContainerSize = (entries) => {
50
- if (entries.length > 0 && footerMenu) {
51
- setContainerWidth(entries[0].contentRect.width);
52
- }
53
- };
54
- const updateContainerSizeDebounced = debounce_1(updateContainerSize, 100);
55
- const footerMenuResizeObserver = new ResizeObserver(updateContainerSizeDebounced);
56
- footerMenuResizeObserver.observe(footerMenu);
57
- }, [containerRef]);
58
- const isMeasured = containerWidth > 0;
59
- const { visibleItems, hiddenItems } = useMemo(() => {
60
- var _a, _b;
61
- if (!isMeasured) {
62
- return {
63
- visibleItems: items !== null && items !== void 0 ? items : [],
64
- hiddenItems: [],
65
- };
66
- }
67
- const itemsCount = itemWidths.length;
68
- let visibleItemsCount = 0;
69
- let remainingContainerWidth = containerWidth;
70
- for (const width of itemWidths) {
71
- remainingContainerWidth -= width;
72
- if (remainingContainerWidth < moreButtonWidth) {
73
- const isMoreThanOneItemLeft = itemsCount !== visibleItemsCount + 1;
74
- const hasNoSpaceForTheLastItem = remainingContainerWidth < 0;
75
- if (isMoreThanOneItemLeft || hasNoSpaceForTheLastItem) {
76
- break;
77
- }
78
- }
79
- visibleItemsCount++;
80
- }
81
- return {
82
- visibleItems: (_a = items === null || items === void 0 ? void 0 : items.slice(0, visibleItemsCount)) !== null && _a !== void 0 ? _a : [],
83
- hiddenItems: (_b = items === null || items === void 0 ? void 0 : items.slice(visibleItemsCount)) !== null && _b !== void 0 ? _b : [],
84
- };
85
- }, [containerWidth, isMeasured, itemWidths, items, moreButtonWidth]);
86
- return { visibleItems, hiddenItems, measured: isMeasured };
87
- }
88
-
89
- var css_248z$2 = ".gn-footer-menu-item{align-items:center;align-self:stretch;display:flex;height:100%;justify-content:center}.gn-footer-menu-item .g-menu__item-content{color:var(--g-color-text-secondary);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gn-footer-menu-item[class]:hover{background-color:inherit}.gn-footer-menu-item[class]:hover[href] .g-menu__item-content{color:var(--g-color-text-link-hover)}";
90
- styleInject(css_248z$2);
91
-
92
- const b$2 = block('footer-menu-item');
93
- const MenuItem = (_a) => {
94
- var { text, className } = _a, menuItemProps = __rest(_a, ["text", "className"]);
95
- return (React__default.createElement(Menu.Item, Object.assign({ className: b$2(null, className) }, menuItemProps), text));
96
- };
97
-
98
- const moreItemsPopupProps = {
99
- placement: 'top-start',
100
- };
101
-
102
- var css_248z$1 = ".gn-footer_desktop{align-items:center;background:var(--g-color-base-background);display:flex;gap:var(--g-spacing-6);height:40px;justify-content:flex-end;padding:0 var(--g-spacing-6) 0 var(--g-spacing-3)}.gn-footer_desktop .gn-footer__menu{align-items:center;align-self:stretch;display:flex;flex:1;min-width:0;visibility:hidden}.gn-footer_desktop .gn-footer__menu_measured{visibility:visible}.gn-footer_desktop .gn-footer__list[class]{background-color:inherit;display:flex;height:100%;padding:0}.gn-footer_desktop .gn-footer__more-button svg{color:var(--g-color-text-secondary)}.gn-footer_desktop .gn-footer__right{align-items:center;display:flex;gap:var(--g-spacing-5)}.gn-footer_desktop .gn-footer__copyright{color:var(--g-color-text-secondary);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);white-space:nowrap}.gn-footer_desktop .gn-footer__copyright_small{font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height)}.gn-footer_with-divider{border-top:1px solid var(--g-color-line-generic)}.gn-footer_view_clear{background:transparent;z-index:-1}";
103
- styleInject(css_248z$1);
104
-
105
- const b$1 = block('footer');
106
- const Footer = ({ className, menuItems: providedMenuItems, withDivider, moreButtonTitle, onMoreButtonClick, view = 'normal', logo, logoWrapperClassName, copyright, }) => {
107
- var _a;
108
- const menuContainerRef = useRef(null);
109
- const menuItems = view === 'clear' ? undefined : providedMenuItems;
110
- const { visibleItems, hiddenItems, measured } = useOverflowingHorizontalListItems({
111
- containerRef: menuContainerRef,
112
- items: menuItems,
113
- itemSelector: `.${b$1('menu-item')}`,
114
- moreButtonWidth: 28,
115
- });
116
- const moreButtonProps = useMemo(() => ({
117
- title: moreButtonTitle,
118
- }), [moreButtonTitle]);
119
- const dropdownMenuItems = useMemo(() => hiddenItems.map((item) => (Object.assign(Object.assign({}, item), { action: item.onClick }))), [hiddenItems]);
120
- const shouldRenderLogo = view !== 'clear' && Boolean(logo);
121
- const shouldRenderMenu = ((_a = menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) !== null && _a !== void 0 ? _a : 0) > 0;
122
- return (React__default.createElement("footer", { className: b$1({ desktop: true, 'with-divider': withDivider, view }, className) },
123
- shouldRenderMenu && (React__default.createElement("div", { className: b$1('menu', { measured }), ref: menuContainerRef },
124
- visibleItems.length > 0 && (React__default.createElement(Menu, { className: b$1('list') }, visibleItems.map((item, index) => (React__default.createElement(MenuItem, Object.assign({ key: index }, item, { className: b$1('menu-item', item.className) })))))),
125
- dropdownMenuItems.length > 0 && (React__default.createElement(DropdownMenu, { items: dropdownMenuItems, switcherWrapperClassName: b$1('more-button'), popupProps: moreItemsPopupProps, defaultSwitcherProps: moreButtonProps, onSwitcherClick: onMoreButtonClick })))),
126
- React__default.createElement("div", { className: b$1('right') },
127
- React__default.createElement("small", { className: b$1('copyright', { small: !(menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) }) }, copyright),
128
- shouldRenderLogo && (React__default.createElement("div", { className: logoWrapperClassName },
129
- React__default.createElement(Logo, Object.assign({}, logo)))))));
130
- };
131
-
132
- var css_248z = ".gn-footer_mobile{background:var(--g-color-base-background);display:flex;flex-direction:column;padding:var(--g-spacing-1) var(--g-spacing-6) var(--g-spacing-3) var(--g-spacing-3)}.gn-footer_mobile .gn-footer_with-divider{border-top:1px solid var(--g-color-line-generic)}.gn-footer_mobile .gn-footer__menu{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--g-spacing-1);visibility:hidden}.gn-footer_mobile .gn-footer__menu_measured{visibility:visible}.gn-footer_mobile .gn-footer__list[class]{background-color:inherit;display:flex;padding:0}.gn-footer_mobile .gn-footer__menu-item{box-sizing:border-box;padding:var(--g-spacing-2) var(--g-spacing-3)}.gn-footer_mobile .gn-footer__bottom-row{align-items:center;display:flex;justify-content:space-between}.gn-footer_mobile .gn-footer__copyright{color:var(--g-color-text-secondary);font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height);padding:0 var(--g-spacing-3);white-space:nowrap}.gn-footer__modal .gn-footer__menu-item{color:var(--g-color-text-primary);font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);height:48px;line-height:var(--g-text-body-2-line-height)}.gn-footer_view_clear{background:transparent;z-index:-1}.gn-footer_view_clear .gn-footer__bottom-row{justify-content:flex-end}";
133
- styleInject(css_248z);
134
-
135
- const b = block('footer');
136
- const modalId = 'footer-more-items';
137
- const MobileFooter = ({ className, menuItems: providedMenuItems, withDivider, moreButtonTitle, onMoreButtonClick, view = 'normal', logo, logoWrapperClassName, copyright, }) => {
138
- const [moreItemsMenuVisible, setMoreItemsMenuVisible] = useState(false);
139
- const menuContainerRef = useRef(null);
140
- const handleOpenMoreItemsMenu = useCallback((event) => {
141
- setMoreItemsMenuVisible(true);
142
- onMoreButtonClick === null || onMoreButtonClick === void 0 ? void 0 : onMoreButtonClick(event);
143
- }, [onMoreButtonClick]);
144
- const handleCloseMoreItemsMenu = useCallback(() => {
145
- setMoreItemsMenuVisible(false);
146
- }, []);
147
- const menuItems = view === 'clear' ? undefined : providedMenuItems;
148
- const { visibleItems, hiddenItems, measured } = useOverflowingHorizontalListItems({
149
- containerRef: menuContainerRef,
150
- items: menuItems,
151
- itemSelector: `.${b('menu-item')}`,
152
- moreButtonWidth: 28,
153
- });
154
- const renderMenu = (items) => (React__default.createElement(Menu, { className: b('list') }, items.map((item, index) => (React__default.createElement(MenuItem, Object.assign({ key: index }, item, { className: b('menu-item', item.className) }))))));
155
- const shouldRenderLogo = view !== 'clear' && Boolean(logo);
156
- return (React__default.createElement("footer", { className: b({ mobile: true, 'with-divider': withDivider, view }, className) },
157
- React__default.createElement("div", { className: b('menu', { measured }), ref: menuContainerRef },
158
- visibleItems.length > 0 && renderMenu(visibleItems),
159
- hiddenItems.length > 0 && (React__default.createElement(React__default.Fragment, null,
160
- React__default.createElement(Button, { view: "flat-secondary", size: "l", onClick: handleOpenMoreItemsMenu, title: moreButtonTitle },
161
- React__default.createElement(Icon, { data: Ellipsis, size: 16 })),
162
- React__default.createElement(Sheet, { id: modalId, visible: moreItemsMenuVisible, className: b('modal'), contentClassName: b('modal-content'), onClose: handleCloseMoreItemsMenu }, renderMenu(hiddenItems))))),
163
- React__default.createElement("div", { className: b('bottom-row') },
164
- React__default.createElement("small", { className: b('copyright') }, copyright),
165
- shouldRenderLogo && (React__default.createElement("div", { className: logoWrapperClassName },
166
- React__default.createElement(Logo, Object.assign({}, logo)))))));
167
- };
168
-
169
- export { Footer, MobileFooter };
8
+ import '@gravity-ui/uikit/legacy';
170
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.ts","../../../src/components/Footer/MenuItem/MenuItem.tsx","../../../src/components/Footer/desktop/constants/moreItemsPopupProps.ts","../../../src/components/Footer/desktop/Footer.tsx","../../../src/components/Footer/mobile/Footer.tsx"],"sourcesContent":["import {useLayoutEffect, useMemo, useState} from 'react';\nimport type {RefObject} from 'react';\n\nimport debounceFn from 'lodash/debounce';\n\nexport type UseOverflowingContainerListItemsProps<ItemType extends unknown> = {\n containerRef: RefObject<HTMLElement>;\n items?: ItemType[];\n itemSelector: string;\n moreButtonWidth?: number;\n};\n\nexport function useOverflowingHorizontalListItems<ItemType>({\n containerRef,\n items,\n itemSelector,\n moreButtonWidth = 0,\n}: UseOverflowingContainerListItemsProps<ItemType>) {\n const [containerWidth, setContainerWidth] = useState<number>(0);\n const [itemWidths, setItemWidths] = useState<number[]>([]);\n\n useLayoutEffect(() => {\n if (!containerRef.current) {\n return;\n }\n\n const measureItemSizes = () => {\n const itemElements = Array.from(\n containerRef.current?.querySelectorAll(itemSelector) ?? [],\n );\n setItemWidths(itemElements.map((item) => item.clientWidth));\n };\n\n measureItemSizes();\n }, [containerRef, itemSelector]);\n\n useLayoutEffect(() => {\n const footerMenu = containerRef.current;\n if (!footerMenu) {\n return;\n }\n\n const updateContainerSize = (entries: ResizeObserverEntry[]) => {\n if (entries.length > 0 && footerMenu) {\n setContainerWidth(entries[0].contentRect.width);\n }\n };\n\n const updateContainerSizeDebounced = debounceFn(updateContainerSize, 100);\n const footerMenuResizeObserver = new ResizeObserver(updateContainerSizeDebounced);\n\n footerMenuResizeObserver.observe(footerMenu);\n }, [containerRef]);\n\n const isMeasured = containerWidth > 0;\n\n const {visibleItems, hiddenItems} = useMemo(() => {\n if (!isMeasured) {\n return {\n visibleItems: items ?? [],\n hiddenItems: [],\n };\n }\n\n const itemsCount = itemWidths.length;\n let visibleItemsCount = 0;\n let remainingContainerWidth = containerWidth;\n for (const width of itemWidths) {\n remainingContainerWidth -= width;\n if (remainingContainerWidth < moreButtonWidth) {\n const isMoreThanOneItemLeft = itemsCount !== visibleItemsCount + 1;\n const hasNoSpaceForTheLastItem = remainingContainerWidth < 0;\n if (isMoreThanOneItemLeft || hasNoSpaceForTheLastItem) {\n break;\n }\n }\n\n visibleItemsCount++;\n }\n\n return {\n visibleItems: items?.slice(0, visibleItemsCount) ?? [],\n hiddenItems: items?.slice(visibleItemsCount) ?? [],\n };\n }, [containerWidth, isMeasured, itemWidths, items, moreButtonWidth]);\n\n return {visibleItems, hiddenItems, measured: isMeasured};\n}\n","import React from 'react';\nimport type {FC} from 'react';\n\nimport {Menu} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\nimport {FooterMenuItem} from '../types';\n\nimport './MenuItem.scss';\n\nconst b = block('footer-menu-item');\n\nexport type MenuItemProps = FooterMenuItem;\n\nexport const MenuItem: FC<MenuItemProps> = ({text, className, ...menuItemProps}) => {\n return (\n <Menu.Item className={b(null, className)} {...menuItemProps}>\n {text}\n </Menu.Item>\n );\n};\n","import {PopupProps} from '@gravity-ui/uikit';\n\nexport const moreItemsPopupProps: PopupProps = {\n placement: 'top-start',\n};\n","import React, {useMemo, useRef} from 'react';\nimport type {FC} from 'react';\n\nimport {DropdownMenu, Menu} from '@gravity-ui/uikit';\nimport type {DropdownMenuItem} from '@gravity-ui/uikit';\n\nimport {useOverflowingHorizontalListItems} from '../../../hooks/useOverflowingHorizontalListItems';\nimport {Logo} from '../../Logo';\nimport {block} from '../../utils/cn';\nimport {MenuItem} from '../MenuItem/MenuItem';\nimport {FooterProps} from '../types';\n\nimport {moreItemsPopupProps} from './constants/moreItemsPopupProps';\n\nimport './Footer.scss';\n\nconst b = block('footer');\n\nexport const Footer: FC<FooterProps> = ({\n className,\n menuItems: providedMenuItems,\n withDivider,\n moreButtonTitle,\n onMoreButtonClick,\n view = 'normal',\n logo,\n logoWrapperClassName,\n copyright,\n}) => {\n const menuContainerRef = useRef<HTMLDivElement>(null);\n\n const menuItems = view === 'clear' ? undefined : providedMenuItems;\n\n const {visibleItems, hiddenItems, measured} = useOverflowingHorizontalListItems({\n containerRef: menuContainerRef,\n items: menuItems,\n itemSelector: `.${b('menu-item')}`,\n moreButtonWidth: 28,\n });\n\n const moreButtonProps = useMemo(\n () => ({\n title: moreButtonTitle,\n }),\n [moreButtonTitle],\n );\n\n const dropdownMenuItems = useMemo(\n () =>\n hiddenItems.map(\n (item) =>\n ({\n ...item,\n action: item.onClick,\n }) as DropdownMenuItem,\n ),\n [hiddenItems],\n );\n\n const shouldRenderLogo = view !== 'clear' && Boolean(logo);\n const shouldRenderMenu = (menuItems?.length ?? 0) > 0;\n\n return (\n <footer className={b({desktop: true, 'with-divider': withDivider, view}, className)}>\n {shouldRenderMenu && (\n <div className={b('menu', {measured})} ref={menuContainerRef}>\n {visibleItems.length > 0 && (\n <Menu className={b('list')}>\n {visibleItems.map((item, index) => (\n <MenuItem\n key={index}\n {...item}\n className={b('menu-item', item.className)}\n />\n ))}\n </Menu>\n )}\n {dropdownMenuItems.length > 0 && (\n <DropdownMenu\n items={dropdownMenuItems}\n switcherWrapperClassName={b('more-button')}\n popupProps={moreItemsPopupProps}\n defaultSwitcherProps={moreButtonProps}\n onSwitcherClick={onMoreButtonClick}\n />\n )}\n </div>\n )}\n <div className={b('right')}>\n <small className={b('copyright', {small: !menuItems?.length})}>{copyright}</small>\n {shouldRenderLogo && (\n <div className={logoWrapperClassName}>\n <Logo {...logo!} />\n </div>\n )}\n </div>\n </footer>\n );\n};\n","import React, {useCallback, useRef, useState} from 'react';\nimport type {FC} from 'react';\n\nimport {Ellipsis} from '@gravity-ui/icons';\nimport {Button, Icon, Menu, Sheet} from '@gravity-ui/uikit';\n\nimport {useOverflowingHorizontalListItems} from '../../../hooks/useOverflowingHorizontalListItems';\nimport {Logo} from '../../Logo';\nimport {block} from '../../utils/cn';\nimport {MenuItem} from '../MenuItem/MenuItem';\nimport {FooterMenuItem, FooterProps} from '../types';\n\nimport './Footer.scss';\n\nconst b = block('footer');\n\nconst modalId = 'footer-more-items';\n\nexport const MobileFooter: FC<FooterProps> = ({\n className,\n menuItems: providedMenuItems,\n withDivider,\n moreButtonTitle,\n onMoreButtonClick,\n view = 'normal',\n logo,\n logoWrapperClassName,\n copyright,\n}) => {\n const [moreItemsMenuVisible, setMoreItemsMenuVisible] = useState(false);\n const menuContainerRef = useRef<HTMLDivElement>(null);\n\n const handleOpenMoreItemsMenu = useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n setMoreItemsMenuVisible(true);\n onMoreButtonClick?.(event);\n },\n [onMoreButtonClick],\n );\n\n const handleCloseMoreItemsMenu = useCallback(() => {\n setMoreItemsMenuVisible(false);\n }, []);\n\n const menuItems = view === 'clear' ? undefined : providedMenuItems;\n\n const {visibleItems, hiddenItems, measured} = useOverflowingHorizontalListItems({\n containerRef: menuContainerRef,\n items: menuItems,\n itemSelector: `.${b('menu-item')}`,\n moreButtonWidth: 28,\n });\n\n const renderMenu = (items: FooterMenuItem[]) => (\n <Menu className={b('list')}>\n {items.map((item, index) => (\n <MenuItem key={index} {...item} className={b('menu-item', item.className)} />\n ))}\n </Menu>\n );\n\n const shouldRenderLogo = view !== 'clear' && Boolean(logo);\n\n return (\n <footer className={b({mobile: true, 'with-divider': withDivider, view}, className)}>\n <div className={b('menu', {measured})} ref={menuContainerRef}>\n {visibleItems.length > 0 && renderMenu(visibleItems)}\n {hiddenItems.length > 0 && (\n <>\n <Button\n view=\"flat-secondary\"\n size=\"l\"\n onClick={handleOpenMoreItemsMenu}\n title={moreButtonTitle}\n >\n <Icon data={Ellipsis} size={16} />\n </Button>\n <Sheet\n id={modalId}\n visible={moreItemsMenuVisible}\n className={b('modal')}\n contentClassName={b('modal-content')}\n onClose={handleCloseMoreItemsMenu}\n >\n {renderMenu(hiddenItems)}\n </Sheet>\n </>\n )}\n </div>\n <div className={b('bottom-row')}>\n <small className={b('copyright')}>{copyright}</small>\n {shouldRenderLogo && (\n <div className={logoWrapperClassName}>\n <Logo {...logo!} />\n </div>\n )}\n </div>\n </footer>\n );\n};\n"],"names":["debounceFn","b","React"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/navigation",
3
- "version": "2.33.0",
3
+ "version": "3.0.0-beta-lunory.0",
4
4
  "description": "Gravity UI Navigation components",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -39,77 +39,80 @@
39
39
  "playwright:docker:clear-cache": "./scripts/playwright-docker.sh clear-cache"
40
40
  },
41
41
  "dependencies": {
42
- "react-transition-group": "^4.4.1",
43
- "tslib": "^2.4.0"
42
+ "react-transition-group": "^4.4.5",
43
+ "tslib": "^2.8.1"
44
44
  },
45
45
  "devDependencies": {
46
- "@babel/core": "^7.23.9",
47
- "@babel/preset-env": "^7.23.9",
48
- "@babel/preset-react": "^7.23.3",
49
- "@babel/preset-typescript": "^7.23.3",
46
+ "@babel/core": "^7.26.0",
47
+ "@babel/preset-env": "^7.26.0",
48
+ "@babel/preset-react": "^7.26.3",
49
+ "@babel/preset-typescript": "^7.26.0",
50
50
  "@bem-react/classname": "^1.6.0",
51
- "@commitlint/cli": "^18.6.0",
52
- "@commitlint/config-conventional": "^18.6.0",
51
+ "@chromatic-com/storybook": "^3.2.4",
52
+ "@commitlint/cli": "^19.6.1",
53
+ "@commitlint/config-conventional": "^19.6.0",
53
54
  "@doc-tools/transform": "^3.11.0",
54
- "@gravity-ui/components": "^3.0.0",
55
- "@gravity-ui/eslint-config": "^3.1.1",
55
+ "@gravity-ui/components": "^4.0.1",
56
+ "@gravity-ui/eslint-config": "^3.3.0",
56
57
  "@gravity-ui/icons": "^2.8.1",
57
58
  "@gravity-ui/prettier-config": "^1.0.0",
58
59
  "@gravity-ui/stylelint-config": "^4.0.1",
59
60
  "@gravity-ui/tsconfig": "^1.0.0",
60
- "@gravity-ui/uikit": "^6.15.0",
61
- "@playwright/experimental-ct-react": "^1.45.3",
62
- "@playwright/test": "^1.45.3",
63
- "@rollup/plugin-commonjs": "^22.0.0",
64
- "@rollup/plugin-node-resolve": "^13.3.0",
65
- "@rollup/plugin-typescript": "^8.3.3",
66
- "@storybook/addon-a11y": "^7.6.18",
67
- "@storybook/addon-actions": "^7.6.13",
68
- "@storybook/addon-essentials": "^7.6.13",
69
- "@storybook/addon-interactions": "^7.6.13",
70
- "@storybook/addon-links": "^7.6.13",
61
+ "@gravity-ui/uikit": "^7.0.1",
62
+ "@playwright/experimental-ct-react": "^1.49.1",
63
+ "@playwright/test": "^1.49.1",
64
+ "@rollup/plugin-commonjs": "^28.0.2",
65
+ "@rollup/plugin-node-resolve": "^16.0.0",
66
+ "@rollup/plugin-typescript": "^12.1.2",
67
+ "@storybook/addon-a11y": "^8.5.0",
68
+ "@storybook/addon-actions": "^8.5.0",
69
+ "@storybook/addon-essentials": "^8.5.0",
70
+ "@storybook/addon-interactions": "^8.5.0",
71
+ "@storybook/addon-links": "^8.5.0",
72
+ "@storybook/addon-webpack5-compiler-babel": "^3.0.5",
71
73
  "@storybook/preset-scss": "^1.0.3",
72
- "@storybook/react": "^7.6.13",
73
- "@storybook/react-webpack5": "^7.6.17",
74
+ "@storybook/react": "^8.5.0",
75
+ "@storybook/react-webpack5": "^8.5.0",
76
+ "@storybook/test": "^8.5.0",
74
77
  "@storybook/test-runner": "^0.17.0",
75
- "@storybook/testing-library": "0.2.0",
76
- "@svgr/rollup": "^6.4.0",
77
- "@types/lodash": "^4.14.202",
78
- "@types/react": "^18.3.3",
79
- "@types/react-transition-group": "^4.4.10",
78
+ "@storybook/theming": "^8.5.0",
79
+ "@svgr/rollup": "^8.1.0",
80
+ "@types/lodash": "^4.17.14",
81
+ "@types/react": "^18.3.18",
82
+ "@types/react-transition-group": "^4.4.12",
80
83
  "@types/react-virtualized-auto-sizer": "^1.0.4",
81
- "@vitejs/plugin-react": "^4.3.1",
82
- "axe-playwright": "^2.0.1",
83
- "eslint": "^8.56.0",
84
- "eslint-plugin-react-hooks": "^4.6.0",
85
- "eslint-plugin-testing-library": "^6.2.0",
86
- "husky": "^9.0.9",
84
+ "@vitejs/plugin-react": "^4.3.4",
85
+ "axe-playwright": "^2.0.3",
86
+ "eslint": "^8.57.1",
87
+ "eslint-plugin-react-hooks": "^4.6.2",
88
+ "eslint-plugin-testing-library": "^6.5.0",
89
+ "husky": "^9.1.7",
87
90
  "jest": "^28.0.0",
88
91
  "nano-staged": "^0.6.0",
89
92
  "npm-run-all": "^4.0.0",
90
- "prettier": "^3.2.5",
93
+ "prettier": "^3.4.2",
91
94
  "react": "^18.3.1",
92
95
  "react-dom": "^18.3.1",
93
- "rimraf": "^3.0.2",
94
- "rollup": "^2.75.7",
96
+ "rimraf": "^6.0.1",
97
+ "rollup": "^4.31.0",
95
98
  "rollup-plugin-json": "^4.0.0",
96
99
  "rollup-plugin-peer-deps-external": "^2.2.4",
97
100
  "rollup-plugin-postcss": "^4.0.2",
98
- "sass": "^1.49.7",
99
- "sass-loader": "^10.2.1",
100
- "storybook": "^7.6.13",
101
+ "sass": "^1.83.4",
102
+ "sass-loader": "^10.5.2",
103
+ "storybook": "^8.5.0",
101
104
  "storybook-preset-inline-svg": "^1.0.1",
102
105
  "stylelint": "^15.11.0",
103
106
  "svg-inline-loader": "^0.8.2",
104
107
  "ts-jest": "^28.0.0",
105
- "typescript": "^4.5.5",
106
- "vite-plugin-svgr": "^4.2.0"
108
+ "typescript": "^5.7.3",
109
+ "vite-plugin-svgr": "^4.3.0"
107
110
  },
108
111
  "peerDependencies": {
109
112
  "@bem-react/classname": "^1.6.0",
110
- "@gravity-ui/components": "^3.0.0",
113
+ "@gravity-ui/components": "^4.0.1",
111
114
  "@gravity-ui/icons": "^2.2.0",
112
- "@gravity-ui/uikit": "^6.15.0",
115
+ "@gravity-ui/uikit": "^7.0.1",
113
116
  "react": "^16.0.0 || ^17.0.0 || ^18.0.0",
114
117
  "react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0"
115
118
  },
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var cn = require('./cn-9933321a.js');
5
- var styleInject_es = require('./style-inject.es-dcee06b6.js');
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
-
11
- var css_248z$4 = ".gn-action-bar-group{align-items:center;display:flex;flex-flow:row nowrap;justify-content:flex-start;margin:0;padding:0}.gn-action-bar-group_pull_left{margin-left:0;margin-right:auto}.gn-action-bar-group_pull_right{margin-left:auto;margin-right:0}.gn-action-bar-group_pull_center{margin-left:auto;margin-right:auto}";
12
- styleInject_es.styleInject(css_248z$4);
13
-
14
- const b$4 = cn.block('action-bar-group');
15
- const ActionBarGroup = ({ children, className, pull }) => {
16
- return (React__default["default"].createElement("ul", { className: b$4({ pull }, className), role: "group" }, children));
17
- };
18
- ActionBarGroup.displayName = 'ActionBar.Group';
19
-
20
- var css_248z$3 = ".gn-action-bar-item{list-style:none;margin:0;padding:0}.gn-action-bar-item_pull_left{margin-left:0;margin-right:auto}.gn-action-bar-item_pull_right{margin-left:auto;margin-right:0}.gn-action-bar-item_pull_center{margin-left:auto;margin-right:auto}.gn-action-bar-item+.gn-action-bar-item_spacing{margin-left:8px}";
21
- styleInject_es.styleInject(css_248z$3);
22
-
23
- const b$3 = cn.block('action-bar-item');
24
- const ActionBarItem = ({ children, className, pull, spacing = true }) => {
25
- return (React__default["default"].createElement("li", { className: b$3({ pull, spacing }, className), role: "menuitem" }, children));
26
- };
27
- ActionBarItem.displayName = 'ActionBar.Item';
28
-
29
- var css_248z$2 = ".gn-action-bar-section{align-items:stretch;display:flex;flex-flow:row nowrap;justify-content:flex-start}.gn-action-bar-section+.gn-action-bar-section{border-left:1px solid var(--g-color-line-generic)}.gn-action-bar-section_type_primary{flex:1 1 auto;padding-left:20px;padding-right:20px}.gn-action-bar-section_type_secondary{padding-left:6px;padding-right:6px}";
30
- styleInject_es.styleInject(css_248z$2);
31
-
32
- const b$2 = cn.block('action-bar-section');
33
- const ActionBarSection = ({ children, type = 'primary' }) => {
34
- return (React__default["default"].createElement("div", { className: b$2({ type }), role: "menu" }, children));
35
- };
36
- ActionBarSection.displayName = 'ActionBar.Section';
37
-
38
- var css_248z$1 = ".gn-action-bar-separator{border-right:1px solid var(--g-color-line-generic);height:40px;list-style:none;margin:0 6px;padding:0}";
39
- styleInject_es.styleInject(css_248z$1);
40
-
41
- const b$1 = cn.block('action-bar-separator');
42
- const ActionBarSeparator = () => {
43
- return React__default["default"].createElement("li", { role: "separator", className: b$1(), "aria-hidden": true });
44
- };
45
- ActionBarSeparator.displayName = 'ActionBar.Separator';
46
-
47
- var css_248z = ".gn-action-bar{align-items:stretch;border-bottom:1px solid var(--g-color-line-generic);box-sizing:border-box;display:flex;flex-flow:row nowrap;height:40px;justify-content:flex-start}";
48
- styleInject_es.styleInject(css_248z);
49
-
50
- const b = cn.block('action-bar');
51
- const ActionBar = ({ children, className, 'aria-label': ariaLabel }) => {
52
- return (React__default["default"].createElement("section", { className: b(null, className), "aria-label": ariaLabel }, children));
53
- };
54
- ActionBar.displayName = 'ActionBar';
55
- const PublicActionBar = Object.assign(ActionBar, {
56
- Section: ActionBarSection,
57
- Group: ActionBarGroup,
58
- Item: ActionBarItem,
59
- Separator: ActionBarSeparator,
60
- });
61
-
62
- exports.PublicActionBar = PublicActionBar;
63
- //# sourceMappingURL=ActionBar-3c6cdf57.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionBar-3c6cdf57.js","sources":["../../../src/components/ActionBar/Group/ActionBarGroup.tsx","../../../src/components/ActionBar/Item/ActionBarItem.tsx","../../../src/components/ActionBar/Section/ActionBarSection.tsx","../../../src/components/ActionBar/Separator/ActionBarSeparator.tsx","../../../src/components/ActionBar/ActionBar.tsx"],"sourcesContent":["import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../../utils/cn';\nimport {PropsWithPull} from '../types';\n\nimport './ActionBarGroup.scss';\n\nexport type Props = PropsWithChildren<\n PropsWithPull<{\n className?: string;\n }>\n>;\n\nconst b = block('action-bar-group');\n\nexport const ActionBarGroup = ({children, className, pull}: Props) => {\n return (\n <ul className={b({pull}, className)} role=\"group\">\n {children}\n </ul>\n );\n};\n\nActionBarGroup.displayName = 'ActionBar.Group';\n","import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../../utils/cn';\nimport {PropsWithPull} from '../types';\n\nimport './ActionBarItem.scss';\n\nexport type Props = PropsWithChildren<\n PropsWithPull<{\n spacing?: boolean;\n className?: string;\n }>\n>;\n\nconst b = block('action-bar-item');\n\nexport const ActionBarItem = ({children, className, pull, spacing = true}: Props) => {\n return (\n <li className={b({pull, spacing}, className)} role=\"menuitem\">\n {children}\n </li>\n );\n};\n\nActionBarItem.displayName = 'ActionBar.Item';\n","import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../../utils/cn';\n\nimport './ActionBarSection.scss';\n\nexport type Props = PropsWithChildren<{type?: 'primary' | 'secondary'}>;\n\nconst b = block('action-bar-section');\n\nexport const ActionBarSection = ({children, type = 'primary'}: Props) => {\n return (\n <div className={b({type})} role=\"menu\">\n {children}\n </div>\n );\n};\n\nActionBarSection.displayName = 'ActionBar.Section';\n","import React from 'react';\n\nimport {block} from '../../utils/cn';\n\nimport './ActionBarSeparator.scss';\n\nconst b = block('action-bar-separator');\n\nexport const ActionBarSeparator = () => {\n return <li role=\"separator\" className={b()} aria-hidden />;\n};\n\nActionBarSeparator.displayName = 'ActionBar.Separator';\n","import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../utils/cn';\n\nimport {ActionBarGroup} from './Group/ActionBarGroup';\nimport {ActionBarItem} from './Item/ActionBarItem';\nimport {ActionBarSection} from './Section/ActionBarSection';\nimport {ActionBarSeparator} from './Separator/ActionBarSeparator';\n\nimport './ActionBar.scss';\n\nexport type Props = PropsWithChildren<{\n 'aria-label'?: string;\n className?: string;\n}>;\n\nconst b = block('action-bar');\n\nconst ActionBar = ({children, className, 'aria-label': ariaLabel}: Props) => {\n return (\n <section className={b(null, className)} aria-label={ariaLabel}>\n {children}\n </section>\n );\n};\n\nActionBar.displayName = 'ActionBar';\n\nconst PublicActionBar = Object.assign(ActionBar, {\n Section: ActionBarSection,\n Group: ActionBarGroup,\n Item: ActionBarItem,\n Separator: ActionBarSeparator,\n});\n\nexport {PublicActionBar as ActionBar};\n"],"names":["b","block","React"],"mappings":";;;;;;;;;;;;;AAaA,MAAMA,GAAC,GAAGC,QAAK,CAAC,kBAAkB,CAAC,CAAC;AAE7B,MAAM,cAAc,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAQ,KAAI;IACjE,QACIC,gDAAI,SAAS,EAAEF,GAAC,CAAC,EAAC,IAAI,EAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,OAAO,IAC5C,QAAQ,CACR,EACP;AACN,CAAC,CAAC;AAEF,cAAc,CAAC,WAAW,GAAG,iBAAiB;;;;;ACT9C,MAAMA,GAAC,GAAGC,QAAK,CAAC,iBAAiB,CAAC,CAAC;AAE5B,MAAM,aAAa,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAQ,KAAI;IAChF,QACIC,gDAAI,SAAS,EAAEF,GAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,UAAU,EACxD,EAAA,QAAQ,CACR,EACP;AACN,CAAC,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,gBAAgB;;;;;AChB5C,MAAMA,GAAC,GAAGC,QAAK,CAAC,oBAAoB,CAAC,CAAC;AAE/B,MAAM,gBAAgB,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAQ,KAAI;AACpE,IAAA,QACIC,yBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEF,GAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAE,IAAI,EAAC,MAAM,IACjC,QAAQ,CACP,EACR;AACN,CAAC,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,mBAAmB;;;;;ACZlD,MAAMA,GAAC,GAAGC,QAAK,CAAC,sBAAsB,CAAC,CAAC;AAEjC,MAAM,kBAAkB,GAAG,MAAK;IACnC,OAAOC,yBAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,IAAI,EAAC,WAAW,EAAC,SAAS,EAAEF,GAAC,EAAE,EAAA,aAAA,EAAA,IAAA,EAAA,CAAgB,CAAC;AAC/D,CAAC,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,qBAAqB;;;;;ACItD,MAAM,CAAC,GAAGC,QAAK,CAAC,YAAY,CAAC,CAAC;AAE9B,MAAM,SAAS,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAQ,KAAI;AACxE,IAAA,QACIC,yBAAS,CAAA,aAAA,CAAA,SAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,gBAAc,SAAS,EAAA,EACxD,QAAQ,CACH,EACZ;AACN,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;AAC7C,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,SAAS,EAAE,kBAAkB;AAChC,CAAA;;;;"}
@@ -1,31 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var uikit = require('@gravity-ui/uikit');
7
- var constants = require('./constants-d81c3867.js');
8
- var AsideHeaderContext = require('./AsideHeaderContext.js');
9
- var utils = require('./utils-db3e03c2.js');
10
- var dividerCollapsed = require('./divider-collapsed-b743122e.js');
11
- require('./cn-9933321a.js');
12
- require('@bem-react/classname');
13
-
14
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
-
16
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
17
-
18
- const AsideFallback = ({ headerDecoration, subheaderItemsCount = 0, qa }) => {
19
- const { compact } = AsideHeaderContext.useAsideHeaderContext();
20
- const widthVar = compact ? '--gn-aside-header-min-width' : '--gn-aside-header-size';
21
- const subheaderHeight = (1 + subheaderItemsCount) * constants.ITEM_HEIGHT;
22
- return (React__default["default"].createElement("div", { className: utils.b('aside'), style: { width: `var(${widthVar})` }, "data-qa": qa },
23
- React__default["default"].createElement("div", { className: utils.b('aside-content', { 'with-decoration': headerDecoration }) },
24
- React__default["default"].createElement("div", { className: utils.b('header', { 'with-decoration': headerDecoration }) },
25
- React__default["default"].createElement("div", { style: { height: subheaderHeight } }),
26
- compact && headerDecoration ? (React__default["default"].createElement(uikit.Icon, { data: dividerCollapsed.headerDividerCollapsedIcon, className: utils.b('header-divider'), width: constants.ASIDE_HEADER_COMPACT_WIDTH, height: constants.HEADER_DIVIDER_HEIGHT })) : null),
27
- React__default["default"].createElement("div", { style: { flex: 1 } }))));
28
- };
29
-
30
- exports.AsideFallback = AsideFallback;
31
- //# sourceMappingURL=AsideFallback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AsideFallback.js","sources":["../../../src/components/AsideHeader/components/PageLayout/AsideFallback.tsx"],"sourcesContent":["import React from 'react';\n\nimport {Icon, QAProps} from '@gravity-ui/uikit';\n\nimport {ASIDE_HEADER_COMPACT_WIDTH, HEADER_DIVIDER_HEIGHT, ITEM_HEIGHT} from '../../../constants';\nimport {useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {b} from '../../utils';\n\nimport headerDividerCollapsedIcon from '../../../../../assets/icons/divider-collapsed.svg';\n\nexport interface Props extends QAProps {\n headerDecoration?: boolean;\n subheaderItemsCount?: number;\n}\n\nexport const AsideFallback: React.FC<Props> = ({headerDecoration, subheaderItemsCount = 0, qa}) => {\n const {compact} = useAsideHeaderContext();\n\n const widthVar = compact ? '--gn-aside-header-min-width' : '--gn-aside-header-size';\n\n const subheaderHeight = (1 + subheaderItemsCount) * ITEM_HEIGHT;\n\n return (\n <div className={b('aside')} style={{width: `var(${widthVar})`}} data-qa={qa}>\n <div className={b('aside-content', {'with-decoration': headerDecoration})}>\n <div className={b('header', {'with-decoration': headerDecoration})}>\n <div style={{height: subheaderHeight}} />\n {compact && headerDecoration ? (\n <Icon\n data={headerDividerCollapsedIcon}\n className={b('header-divider')}\n width={ASIDE_HEADER_COMPACT_WIDTH}\n height={HEADER_DIVIDER_HEIGHT}\n />\n ) : null}\n </div>\n <div style={{flex: 1}} />\n </div>\n </div>\n );\n};\n"],"names":["useAsideHeaderContext","ITEM_HEIGHT","React","b","Icon","headerDividerCollapsedIcon","ASIDE_HEADER_COMPACT_WIDTH","HEADER_DIVIDER_HEIGHT"],"mappings":";;;;;;;;;;;;;;;;;AAeO,MAAM,aAAa,GAAoB,CAAC,EAAC,gBAAgB,EAAE,mBAAmB,GAAG,CAAC,EAAE,EAAE,EAAC,KAAI;AAC9F,IAAA,MAAM,EAAC,OAAO,EAAC,GAAGA,wCAAqB,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,OAAO,GAAG,6BAA6B,GAAG,wBAAwB,CAAC;IAEpF,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,mBAAmB,IAAIC,qBAAW,CAAC;AAEhE,IAAA,QACIC,yBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,OAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,CAAA,IAAA,EAAO,QAAQ,CAAG,CAAA,CAAA,EAAC,aAAW,EAAE,EAAA;QACvED,yBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,OAAC,CAAC,eAAe,EAAE,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,CAAC,EAAA;YACrED,yBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAEC,OAAC,CAAC,QAAQ,EAAE,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,CAAC,EAAA;AAC9D,gBAAAD,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,EAAC,MAAM,EAAE,eAAe,EAAC,EAAI,CAAA;AACxC,gBAAA,OAAO,IAAI,gBAAgB,IACxBA,yBAAA,CAAA,aAAA,CAACE,UAAI,EAAA,EACD,IAAI,EAAEC,2CAA0B,EAChC,SAAS,EAAEF,OAAC,CAAC,gBAAgB,CAAC,EAC9B,KAAK,EAAEG,oCAA0B,EACjC,MAAM,EAAEC,+BAAqB,GAC/B,IACF,IAAI,CACN;YACNL,yBAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,EAAC,IAAI,EAAE,CAAC,EAAC,EAAI,CAAA,CACvB,CACJ,EACR;AACN;;;;"}
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var tslib_es6 = require('./tslib.es6-705c6589.js');
6
- var React = require('react');
7
- var PageLayout = require('./PageLayout.js');
8
- var PageLayoutAside = require('./PageLayoutAside-56a441a9.js');
9
- require('./Content-64d5738a.js');
10
- require('./constants-d81c3867.js');
11
- require('./AsideHeaderContext.js');
12
- require('./utils-db3e03c2.js');
13
- require('./cn-9933321a.js');
14
- require('@bem-react/classname');
15
- require('./style-inject.es-dcee06b6.js');
16
- require('@gravity-ui/uikit');
17
- require('@gravity-ui/icons');
18
- require('@gravity-ui/uikit/i18n');
19
- require('./Item-ff6bc440.js');
20
- require('./debounce-8772fd80.js');
21
- require('./divider-collapsed-b743122e.js');
22
- require('./Drawer.js');
23
- require('react-dom');
24
-
25
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
-
27
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
28
-
29
- const AsideHeader = React__default["default"].forwardRef((_a, ref) => {
30
- var { compact, className, topAlert } = _a, props = tslib_es6.__rest(_a, ["compact", "className", "topAlert"]);
31
- return (React__default["default"].createElement(PageLayout.PageLayout, { compact: compact, className: className, topAlert: topAlert },
32
- React__default["default"].createElement(PageLayoutAside.PageLayoutAside, Object.assign({ ref: ref }, props)),
33
- React__default["default"].createElement(PageLayout.PageLayout.Content, { renderContent: props.renderContent })));
34
- });
35
- AsideHeader.displayName = 'AsideHeader';
36
-
37
- exports.AsideHeader = AsideHeader;
38
- //# sourceMappingURL=AsideHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AsideHeader.js","sources":["../../../src/components/AsideHeader/AsideHeader.tsx"],"sourcesContent":["import React from 'react';\n\nimport {PageLayout} from './components/PageLayout/PageLayout';\nimport {PageLayoutAside} from './components/PageLayout/PageLayoutAside';\nimport {AsideHeaderProps} from './types';\n\nexport const AsideHeader = React.forwardRef<HTMLDivElement, AsideHeaderProps>(\n ({compact, className, topAlert, ...props}, ref) => {\n return (\n <PageLayout compact={compact} className={className} topAlert={topAlert}>\n <PageLayoutAside ref={ref} {...props} />\n <PageLayout.Content renderContent={props.renderContent} />\n </PageLayout>\n );\n },\n);\n\nAsideHeader.displayName = 'AsideHeader';\n"],"names":["React","__rest","PageLayout","PageLayoutAside"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAM,WAAW,GAAGA,yBAAK,CAAC,UAAU,CACvC,CAAC,EAAwC,EAAE,GAAG,KAAI;QAAjD,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,OAAW,EAAN,KAAK,GAAvCC,gBAAA,CAAA,EAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAwC,CAAD,CAAA;AACpC,IAAA,QACID,yBAAA,CAAA,aAAA,CAACE,qBAAU,EAAA,EAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAA;AAClE,QAAAF,yBAAA,CAAA,aAAA,CAACG,+BAAe,EAAC,MAAA,CAAA,MAAA,CAAA,EAAA,GAAG,EAAE,GAAG,EAAA,EAAM,KAAK,CAAI,CAAA;AACxC,QAAAH,yBAAA,CAAA,aAAA,CAACE,qBAAU,CAAC,OAAO,EAAA,EAAC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAA,CAAI,CACjD,EACf;AACN,CAAC,EACH;AAEF,WAAW,CAAC,WAAW,GAAG,aAAa;;;;"}