@gravity-ui/navigation 2.30.0 → 2.31.1-beta.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 (287) hide show
  1. package/README.md +1 -1
  2. package/build/cjs/{ActionBar-3c6cdf57.js → ActionBar-_qjZ9IMA.js} +10 -14
  3. package/build/cjs/{ActionBar-3c6cdf57.js.map → ActionBar-_qjZ9IMA.js.map} +1 -1
  4. package/build/cjs/AsideFallback.js +10 -16
  5. package/build/cjs/AsideFallback.js.map +1 -1
  6. package/build/cjs/AsideHeader.js +15 -20
  7. package/build/cjs/AsideHeader.js.map +1 -1
  8. package/build/cjs/AsideHeaderContext.js +4 -10
  9. package/build/cjs/AsideHeaderContext.js.map +1 -1
  10. package/build/cjs/Content-Dy2XkiRi.js +16 -0
  11. package/build/cjs/{Content-64d5738a.js.map → Content-Dy2XkiRi.js.map} +1 -1
  12. package/build/cjs/Drawer.js +122 -823
  13. package/build/cjs/Drawer.js.map +1 -1
  14. package/build/cjs/{FooterItem-de603636.js → FooterItem-Bl_XrJ67.js} +77 -81
  15. package/build/cjs/FooterItem-Bl_XrJ67.js.map +1 -0
  16. package/build/cjs/FooterItem.js +8 -13
  17. package/build/cjs/FooterItem.js.map +1 -1
  18. package/build/cjs/{HotkeysPanel-1ed9fc32.js → HotkeysPanel-D1wI7tZj.js} +12 -16
  19. package/build/cjs/{HotkeysPanel-1ed9fc32.js.map → HotkeysPanel-D1wI7tZj.js.map} +1 -1
  20. package/build/cjs/Item-B_-IH1_h.js +295 -0
  21. package/build/cjs/Item-B_-IH1_h.js.map +1 -0
  22. package/build/cjs/PageLayout.js +13 -19
  23. package/build/cjs/PageLayout.js.map +1 -1
  24. package/build/cjs/{PageLayoutAside-4daccf5e.js → PageLayoutAside-BzYF9W7M.js} +102 -117
  25. package/build/cjs/PageLayoutAside-BzYF9W7M.js.map +1 -0
  26. package/build/cjs/PageLayoutAside.js +10 -11
  27. package/build/cjs/PageLayoutAside.js.map +1 -1
  28. package/build/cjs/{Settings-8dc2a8ee.js → Settings-D6-a2hgE.js} +110 -102
  29. package/build/cjs/{Settings-8dc2a8ee.js.map → Settings-D6-a2hgE.js.map} +1 -1
  30. package/build/cjs/{Title-54580605.js → Title-CzxcSMoP.js} +7 -13
  31. package/build/cjs/Title-CzxcSMoP.js.map +1 -0
  32. package/build/cjs/_commonjsHelpers-BJu3ubxk.js +11 -0
  33. package/build/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
  34. package/build/cjs/{cn-9933321a.js → cn-DSlPZbcs.js} +1 -1
  35. package/build/cjs/{cn-9933321a.js.map → cn-DSlPZbcs.js.map} +1 -1
  36. package/build/cjs/components/ActionBar/ActionBar.d.ts +3 -3
  37. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +17 -0
  38. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
  39. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
  40. package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  41. package/build/cjs/components/ActionBar/types.d.ts +1 -1
  42. package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +5 -1
  43. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +1 -1
  44. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +18 -0
  45. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
  46. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
  47. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +6 -0
  48. package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  49. package/build/cjs/components/AsideHeader/components/index.d.ts +0 -1
  50. package/build/cjs/components/AsideHeader/i18n/index.d.ts +5 -1
  51. package/build/cjs/components/AsideHeader/types.d.ts +3 -4
  52. package/build/cjs/components/CompositeBar/CompositeBar.d.ts +1 -1
  53. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  54. package/build/cjs/components/CompositeBar/Item/Item.d.ts +15 -2
  55. package/build/cjs/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
  56. package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +7 -0
  57. package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
  58. package/build/cjs/components/Drawer/__stories__/HideVeil.d.ts +3 -0
  59. package/build/cjs/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
  60. package/build/cjs/components/Drawer/__stories__/moc.d.ts +2 -0
  61. package/build/cjs/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  62. package/build/cjs/components/Drawer/utils.d.ts +2 -2
  63. package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +8 -0
  64. package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
  65. package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +3 -0
  66. package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  67. package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +8 -0
  68. package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
  69. package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +3 -0
  70. package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  71. package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +6 -0
  72. package/build/cjs/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  73. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +5 -0
  74. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
  75. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
  76. package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  77. package/build/cjs/components/Logo/Logo.d.ts +1 -1
  78. package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +6 -0
  79. package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  80. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +6 -0
  81. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
  82. package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  83. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +2 -1
  84. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +6 -0
  85. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
  86. package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  87. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
  88. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
  89. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +1 -0
  90. package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  91. package/build/cjs/components/MobileHeader/i18n/index.d.ts +5 -1
  92. package/build/cjs/components/MobileHeader/types.d.ts +0 -1
  93. package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +6 -0
  94. package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  95. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +5 -0
  96. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
  97. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
  98. package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  99. package/build/cjs/components/Settings/i18n/index.d.ts +5 -1
  100. package/build/cjs/components/Title/i18n/index.d.ts +5 -1
  101. package/build/cjs/components/TopAlert/TopAlert.d.ts +10 -0
  102. package/build/cjs/components/TopAlert/index.d.ts +1 -0
  103. package/build/cjs/components/TopAlert/useTopAlertHeight.d.ts +10 -0
  104. package/build/cjs/components/types.d.ts +4 -4
  105. package/build/cjs/{constants-d81c3867.js → constants-B0DLAQY9.js} +1 -1
  106. package/build/{esm/constants-b1604ff5.js.map → cjs/constants-B0DLAQY9.js.map} +1 -1
  107. package/build/cjs/debounce-RFF04eVR.js +660 -0
  108. package/build/{esm/debounce-64cd2b4c.js.map → cjs/debounce-RFF04eVR.js.map} +1 -1
  109. package/build/cjs/{divider-collapsed-b743122e.js → divider-collapsed-BLSp99lJ.js} +7 -9
  110. package/build/cjs/divider-collapsed-BLSp99lJ.js.map +1 -0
  111. package/build/cjs/hooks/useForwardRef.d.ts +1 -1
  112. package/build/cjs/index-B6c8DVdr.js +68 -0
  113. package/build/cjs/index-B6c8DVdr.js.map +1 -0
  114. package/build/cjs/index.js +4 -191
  115. package/build/cjs/index.js.map +1 -1
  116. package/build/cjs/index2.js +7 -6
  117. package/build/cjs/index2.js.map +1 -1
  118. package/build/cjs/index3.js +8 -8
  119. package/build/cjs/index4.js +12 -9
  120. package/build/cjs/index4.js.map +1 -1
  121. package/build/cjs/index5.js +12 -12
  122. package/build/cjs/index6.js +186 -15
  123. package/build/cjs/index6.js.map +1 -1
  124. package/build/cjs/{style-inject.es-dcee06b6.js → style-inject.es-CsU6UJbw.js} +2 -2
  125. package/build/cjs/style-inject.es-CsU6UJbw.js.map +1 -0
  126. package/build/cjs/{tslib.es6-705c6589.js → tslib.es6-D25eJ2i9.js} +33 -31
  127. package/build/cjs/tslib.es6-D25eJ2i9.js.map +1 -0
  128. package/build/cjs/utils-BrRoop7o.js +8 -0
  129. package/build/cjs/{utils-db3e03c2.js.map → utils-BrRoop7o.js.map} +1 -1
  130. package/build/esm/{ActionBar-834b178a.js → ActionBar-BD_roj92.js} +5 -5
  131. package/build/esm/{ActionBar-834b178a.js.map → ActionBar-BD_roj92.js.map} +1 -1
  132. package/build/esm/AsideFallback.js +5 -5
  133. package/build/esm/AsideFallback.js.map +1 -1
  134. package/build/esm/AsideHeader.js +11 -10
  135. package/build/esm/AsideHeader.js.map +1 -1
  136. package/build/esm/AsideHeaderContext.js.map +1 -1
  137. package/build/esm/{Content-f94ba85d.js → Content-c3e3OunO.js} +1 -1
  138. package/build/esm/{Content-f94ba85d.js.map → Content-c3e3OunO.js.map} +1 -1
  139. package/build/esm/Drawer.js +90 -784
  140. package/build/esm/Drawer.js.map +1 -1
  141. package/build/esm/{FooterItem-3cc816a3.js → FooterItem-BP7Ya02G.js} +43 -43
  142. package/build/esm/FooterItem-BP7Ya02G.js.map +1 -0
  143. package/build/esm/FooterItem.js +7 -6
  144. package/build/esm/FooterItem.js.map +1 -1
  145. package/build/esm/{HotkeysPanel-0576deee.js → HotkeysPanel-BiJ8VcX-.js} +4 -4
  146. package/build/esm/{HotkeysPanel-0576deee.js.map → HotkeysPanel-BiJ8VcX-.js.map} +1 -1
  147. package/build/esm/{Item-4d168c1c.js → Item-BnjbUb88.js} +40 -44
  148. package/build/esm/Item-BnjbUb88.js.map +1 -0
  149. package/build/esm/PageLayout.js +8 -8
  150. package/build/esm/PageLayout.js.map +1 -1
  151. package/build/esm/{PageLayoutAside-beb0d6bf.js → PageLayoutAside-DQVfkCeA.js} +45 -56
  152. package/build/esm/PageLayoutAside-DQVfkCeA.js.map +1 -0
  153. package/build/esm/PageLayoutAside.js +10 -9
  154. package/build/esm/PageLayoutAside.js.map +1 -1
  155. package/build/esm/{Settings-e660a4c5.js → Settings-BPE0n6i2.js} +36 -24
  156. package/build/esm/{Settings-e660a4c5.js.map → Settings-BPE0n6i2.js.map} +1 -1
  157. package/build/esm/{Title-03b4255a.js → Title-CRlzgg4r.js} +4 -6
  158. package/build/esm/Title-CRlzgg4r.js.map +1 -0
  159. package/build/esm/_commonjsHelpers-BFTU3MAI.js +8 -0
  160. package/build/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
  161. package/build/esm/{cn-ffe5e9f5.js → cn-CgiqTV3v.js} +1 -1
  162. package/build/esm/{cn-ffe5e9f5.js.map → cn-CgiqTV3v.js.map} +1 -1
  163. package/build/esm/components/ActionBar/ActionBar.d.ts +3 -3
  164. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +17 -0
  165. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +2 -0
  166. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +2 -0
  167. package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  168. package/build/esm/components/ActionBar/types.d.ts +1 -1
  169. package/build/esm/components/AllPagesPanel/i18n/index.d.ts +5 -1
  170. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +1 -1
  171. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +18 -0
  172. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +14 -0
  173. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +3 -0
  174. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +6 -0
  175. package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  176. package/build/esm/components/AsideHeader/components/index.d.ts +0 -1
  177. package/build/esm/components/AsideHeader/i18n/index.d.ts +5 -1
  178. package/build/esm/components/AsideHeader/types.d.ts +3 -4
  179. package/build/esm/components/CompositeBar/CompositeBar.d.ts +1 -1
  180. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  181. package/build/esm/components/CompositeBar/Item/Item.d.ts +15 -2
  182. package/build/esm/components/Drawer/__stories__/DisablePortal.d.ts +3 -0
  183. package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +7 -0
  184. package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +3 -0
  185. package/build/esm/components/Drawer/__stories__/HideVeil.d.ts +3 -0
  186. package/build/esm/components/Drawer/__stories__/ResizableItem.d.ts +3 -0
  187. package/build/esm/components/Drawer/__stories__/moc.d.ts +2 -0
  188. package/build/esm/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  189. package/build/esm/components/Drawer/utils.d.ts +2 -2
  190. package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +8 -0
  191. package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +4 -0
  192. package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +3 -0
  193. package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  194. package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +8 -0
  195. package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +4 -0
  196. package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +3 -0
  197. package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  198. package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +6 -0
  199. package/build/esm/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  200. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +5 -0
  201. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +6 -0
  202. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +2 -0
  203. package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  204. package/build/esm/components/Logo/Logo.d.ts +1 -1
  205. package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +6 -0
  206. package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  207. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +6 -0
  208. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +2 -0
  209. package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  210. package/build/esm/components/MobileHeader/MobileHeader.d.ts +2 -1
  211. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +6 -0
  212. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +2 -0
  213. package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  214. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +4 -0
  215. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +3 -0
  216. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +1 -0
  217. package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  218. package/build/esm/components/MobileHeader/i18n/index.d.ts +5 -1
  219. package/build/esm/components/MobileHeader/types.d.ts +0 -1
  220. package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +6 -0
  221. package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  222. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +5 -0
  223. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +14 -0
  224. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +8 -0
  225. package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  226. package/build/esm/components/Settings/i18n/index.d.ts +5 -1
  227. package/build/esm/components/Title/i18n/index.d.ts +5 -1
  228. package/build/esm/components/TopAlert/TopAlert.d.ts +10 -0
  229. package/build/esm/components/TopAlert/index.d.ts +1 -0
  230. package/build/esm/components/TopAlert/useTopAlertHeight.d.ts +10 -0
  231. package/build/esm/components/types.d.ts +4 -4
  232. package/build/esm/{constants-b1604ff5.js → constants-ChYDZ5F2.js} +2 -2
  233. package/build/{cjs/constants-d81c3867.js.map → esm/constants-ChYDZ5F2.js.map} +1 -1
  234. package/build/esm/debounce-DW3XyyUs.js +658 -0
  235. package/build/{cjs/debounce-8772fd80.js.map → esm/debounce-DW3XyyUs.js.map} +1 -1
  236. package/build/esm/{divider-collapsed-a0ef54c3.js → divider-collapsed-BgKmR8h9.js} +4 -5
  237. package/build/esm/divider-collapsed-BgKmR8h9.js.map +1 -0
  238. package/build/esm/hooks/useForwardRef.d.ts +1 -1
  239. package/build/esm/index-BLdwsphX.js +66 -0
  240. package/build/esm/index-BLdwsphX.js.map +1 -0
  241. package/build/esm/index.js +4 -168
  242. package/build/esm/index.js.map +1 -1
  243. package/build/esm/index2.js +6 -3
  244. package/build/esm/index2.js.map +1 -1
  245. package/build/esm/index3.js +7 -5
  246. package/build/esm/index3.js.map +1 -1
  247. package/build/esm/index4.js +9 -6
  248. package/build/esm/index4.js.map +1 -1
  249. package/build/esm/index5.js +8 -7
  250. package/build/esm/index5.js.map +1 -1
  251. package/build/esm/index6.js +168 -9
  252. package/build/esm/index6.js.map +1 -1
  253. package/build/esm/{style-inject.es-1f59c1d0.js → style-inject.es-Bff-fD1R.js} +2 -2
  254. package/build/esm/style-inject.es-Bff-fD1R.js.map +1 -0
  255. package/build/esm/{tslib.es6-3cd4e99f.js → tslib.es6-BCqiemNI.js} +33 -31
  256. package/build/esm/tslib.es6-BCqiemNI.js.map +1 -0
  257. package/build/esm/utils-D0s6YtvW.js +6 -0
  258. package/build/esm/{utils-117463a5.js.map → utils-D0s6YtvW.js.map} +1 -1
  259. package/package.json +48 -45
  260. package/build/cjs/Content-64d5738a.js +0 -20
  261. package/build/cjs/FooterItem-de603636.js.map +0 -1
  262. package/build/cjs/Item-57dff146.js +0 -303
  263. package/build/cjs/Item-57dff146.js.map +0 -1
  264. package/build/cjs/PageLayoutAside-4daccf5e.js.map +0 -1
  265. package/build/cjs/Title-54580605.js.map +0 -1
  266. package/build/cjs/TopPanel-c6b83157.js +0 -82
  267. package/build/cjs/TopPanel-c6b83157.js.map +0 -1
  268. package/build/cjs/components/AsideHeader/components/TopPanel.d.ts +0 -7
  269. package/build/cjs/components/AsideHeader/useAsideHeaderTopPanel.d.ts +0 -10
  270. package/build/cjs/debounce-8772fd80.js +0 -545
  271. package/build/cjs/divider-collapsed-b743122e.js.map +0 -1
  272. package/build/cjs/style-inject.es-dcee06b6.js.map +0 -1
  273. package/build/cjs/tslib.es6-705c6589.js.map +0 -1
  274. package/build/cjs/utils-db3e03c2.js +0 -8
  275. package/build/esm/FooterItem-3cc816a3.js.map +0 -1
  276. package/build/esm/Item-4d168c1c.js.map +0 -1
  277. package/build/esm/PageLayoutAside-beb0d6bf.js.map +0 -1
  278. package/build/esm/Title-03b4255a.js.map +0 -1
  279. package/build/esm/TopPanel-cd270f27.js +0 -76
  280. package/build/esm/TopPanel-cd270f27.js.map +0 -1
  281. package/build/esm/components/AsideHeader/components/TopPanel.d.ts +0 -7
  282. package/build/esm/components/AsideHeader/useAsideHeaderTopPanel.d.ts +0 -10
  283. package/build/esm/debounce-64cd2b4c.js +0 -543
  284. package/build/esm/divider-collapsed-a0ef54c3.js.map +0 -1
  285. package/build/esm/style-inject.es-1f59c1d0.js.map +0 -1
  286. package/build/esm/tslib.es6-3cd4e99f.js.map +0 -1
  287. package/build/esm/utils-117463a5.js +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"HotkeysPanel-1ed9fc32.js","sources":["../../../src/components/HotkeysPanel/utils/filterHotkeys.ts","../../../src/components/HotkeysPanel/utils/flattenHotkeyGroups.ts","../../../src/components/HotkeysPanel/HotkeysPanel.tsx"],"sourcesContent":["import type {HotkeysGroup} from '..';\n\nexport function filterHotkeys<T>(hotkeys: HotkeysGroup<T>[], filter: string) {\n if (filter) {\n const result = [];\n const normalizedFilter = filter.toLowerCase();\n\n for (const hotkeysBlock of hotkeys) {\n const filteredItems = hotkeysBlock.items.filter((item) =>\n item.title.toLowerCase().includes(normalizedFilter),\n );\n if (filteredItems.length > 0) {\n result.push({\n ...hotkeysBlock,\n items: filteredItems,\n });\n }\n }\n\n return result;\n }\n\n return hotkeys;\n}\n","import type {HotkeysGroup, HotkeysListItem} from '../types';\n\nexport function flattenHotkeyGroups<T>(hotkeys: HotkeysGroup<T>[]) {\n const result: HotkeysListItem[] = [];\n\n for (const hotkeysGroup of hotkeys) {\n result.push({\n title: hotkeysGroup.title,\n group: true,\n });\n\n result.push(...hotkeysGroup.items);\n }\n\n return result;\n}\n","import React, {useCallback, useMemo, useState} from 'react';\nimport type {ReactNode} from 'react';\n\nimport {Hotkey, List, TextInput} from '@gravity-ui/uikit';\nimport type {ListProps} from '@gravity-ui/uikit';\n\nimport {Drawer, DrawerItem} from '../Drawer/Drawer';\nimport type {DrawerProps} from '../Drawer/Drawer';\nimport {block} from '../utils/cn';\n\nimport type {HotkeysGroup, HotkeysListItem} from './types';\nimport {filterHotkeys} from './utils/filterHotkeys';\nimport {flattenHotkeyGroups} from './utils/flattenHotkeyGroups';\n\nimport './HotkeysPanel.scss';\n\nconst b = block('hotkeys-panel');\n\nexport type HotkeysPanelProps<T> = {\n hotkeys: HotkeysGroup<T>[];\n title?: ReactNode;\n filterable?: boolean;\n filterPlaceholder?: string;\n emptyState?: ReactNode;\n visible: boolean;\n onClose?: () => void;\n className?: string;\n drawerItemClassName?: string;\n filterClassName?: string;\n titleClassName?: string;\n itemContentClassName?: string;\n listClassName?: string;\n leftOffset?: number | string;\n topOffset?: number | string;\n preventScrollBody?: DrawerProps['preventScrollBody'];\n} & Omit<\n ListProps<HotkeysListItem>,\n | 'items'\n | 'emptyPlaceholder'\n | 'className'\n | 'size'\n | 'renderItem'\n | 'filterable'\n | 'autoFocus'\n | 'filterPlaceholder'\n | 'filterClassName'\n | 'filter'\n | 'filterItem'\n | 'onFilterEnd'\n | 'onFilterUpdate'\n>;\n\nexport function HotkeysPanel<T = {}>({\n visible,\n onClose,\n leftOffset,\n topOffset,\n className,\n drawerItemClassName,\n filterClassName,\n titleClassName,\n listClassName,\n itemContentClassName,\n preventScrollBody,\n hotkeys,\n itemClassName,\n filterable = true,\n filterPlaceholder,\n title,\n emptyState,\n ...listProps\n}: HotkeysPanelProps<T>) {\n const [filter, setFilter] = useState('');\n\n const hotkeysList = useMemo(() => {\n const filteredHotkeys = filterHotkeys(hotkeys, filter);\n return flattenHotkeyGroups(filteredHotkeys);\n }, [hotkeys, filter]);\n\n const renderItem = useCallback(\n (item: HotkeysListItem) => (\n <div\n className={b('item-content', {group: item.group}, itemContentClassName)}\n key={item.title}\n >\n {item.title}\n {item.value && <Hotkey className={b('hotkey')} value={item.value} />}\n </div>\n ),\n [],\n );\n\n const drawerItemContent = (\n <React.Fragment>\n <h2 className={b('title', titleClassName)}>{title}</h2>\n {filterable && (\n <TextInput\n value={filter}\n onUpdate={setFilter}\n placeholder={filterPlaceholder}\n autoFocus\n className={b('search', filterClassName)}\n hasClear\n />\n )}\n <List<HotkeysListItem>\n className={b('list', listClassName)}\n virtualized={false}\n filterable={false}\n items={hotkeysList}\n renderItem={renderItem}\n itemClassName={b('item', itemClassName)}\n emptyPlaceholder={emptyState as string}\n {...listProps}\n />\n </React.Fragment>\n );\n\n return (\n <Drawer\n className={b(null, className)}\n onVeilClick={onClose}\n onEscape={onClose}\n preventScrollBody={preventScrollBody}\n style={{\n left: leftOffset,\n top: topOffset,\n }}\n >\n <DrawerItem\n id=\"hotkeys\"\n visible={visible}\n className={b('drawer-item', drawerItemClassName)}\n content={drawerItemContent}\n />\n </Drawer>\n );\n}\n"],"names":["block","__rest","useState","useMemo","useCallback","React","Hotkey","TextInput","List","Drawer","DrawerItem"],"mappings":"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"}
1
+ {"version":3,"file":"HotkeysPanel-D1wI7tZj.js","sources":["../../../src/components/HotkeysPanel/utils/filterHotkeys.ts","../../../src/components/HotkeysPanel/utils/flattenHotkeyGroups.ts","../../../src/components/HotkeysPanel/HotkeysPanel.tsx"],"sourcesContent":["import type {HotkeysGroup} from '..';\n\nexport function filterHotkeys<T>(hotkeys: HotkeysGroup<T>[], filter: string) {\n if (filter) {\n const result = [];\n const normalizedFilter = filter.toLowerCase();\n\n for (const hotkeysBlock of hotkeys) {\n const filteredItems = hotkeysBlock.items.filter((item) =>\n item.title.toLowerCase().includes(normalizedFilter),\n );\n if (filteredItems.length > 0) {\n result.push({\n ...hotkeysBlock,\n items: filteredItems,\n });\n }\n }\n\n return result;\n }\n\n return hotkeys;\n}\n","import type {HotkeysGroup, HotkeysListItem} from '../types';\n\nexport function flattenHotkeyGroups<T>(hotkeys: HotkeysGroup<T>[]) {\n const result: HotkeysListItem[] = [];\n\n for (const hotkeysGroup of hotkeys) {\n result.push({\n title: hotkeysGroup.title,\n group: true,\n });\n\n result.push(...hotkeysGroup.items);\n }\n\n return result;\n}\n","import React, {useCallback, useMemo, useState} from 'react';\nimport type {ReactNode} from 'react';\n\nimport {Hotkey, List, TextInput} from '@gravity-ui/uikit';\nimport type {ListProps} from '@gravity-ui/uikit';\n\nimport {Drawer, DrawerItem} from '../Drawer/Drawer';\nimport type {DrawerProps} from '../Drawer/Drawer';\nimport {block} from '../utils/cn';\n\nimport type {HotkeysGroup, HotkeysListItem} from './types';\nimport {filterHotkeys} from './utils/filterHotkeys';\nimport {flattenHotkeyGroups} from './utils/flattenHotkeyGroups';\n\nimport './HotkeysPanel.scss';\n\nconst b = block('hotkeys-panel');\n\nexport type HotkeysPanelProps<T> = {\n hotkeys: HotkeysGroup<T>[];\n title?: ReactNode;\n filterable?: boolean;\n filterPlaceholder?: string;\n emptyState?: ReactNode;\n visible: boolean;\n onClose?: () => void;\n className?: string;\n drawerItemClassName?: string;\n filterClassName?: string;\n titleClassName?: string;\n itemContentClassName?: string;\n listClassName?: string;\n leftOffset?: number | string;\n topOffset?: number | string;\n preventScrollBody?: DrawerProps['preventScrollBody'];\n} & Omit<\n ListProps<HotkeysListItem>,\n | 'items'\n | 'emptyPlaceholder'\n | 'className'\n | 'size'\n | 'renderItem'\n | 'filterable'\n | 'autoFocus'\n | 'filterPlaceholder'\n | 'filterClassName'\n | 'filter'\n | 'filterItem'\n | 'onFilterEnd'\n | 'onFilterUpdate'\n>;\n\nexport function HotkeysPanel<T = {}>({\n visible,\n onClose,\n leftOffset,\n topOffset,\n className,\n drawerItemClassName,\n filterClassName,\n titleClassName,\n listClassName,\n itemContentClassName,\n preventScrollBody,\n hotkeys,\n itemClassName,\n filterable = true,\n filterPlaceholder,\n title,\n emptyState,\n ...listProps\n}: HotkeysPanelProps<T>) {\n const [filter, setFilter] = useState('');\n\n const hotkeysList = useMemo(() => {\n const filteredHotkeys = filterHotkeys(hotkeys, filter);\n return flattenHotkeyGroups(filteredHotkeys);\n }, [hotkeys, filter]);\n\n const renderItem = useCallback(\n (item: HotkeysListItem) => (\n <div\n className={b('item-content', {group: item.group}, itemContentClassName)}\n key={item.title}\n >\n {item.title}\n {item.value && <Hotkey className={b('hotkey')} value={item.value} />}\n </div>\n ),\n [],\n );\n\n const drawerItemContent = (\n <React.Fragment>\n <h2 className={b('title', titleClassName)}>{title}</h2>\n {filterable && (\n <TextInput\n value={filter}\n onUpdate={setFilter}\n placeholder={filterPlaceholder}\n autoFocus\n className={b('search', filterClassName)}\n hasClear\n />\n )}\n <List<HotkeysListItem>\n className={b('list', listClassName)}\n virtualized={false}\n filterable={false}\n items={hotkeysList}\n renderItem={renderItem}\n itemClassName={b('item', itemClassName)}\n emptyPlaceholder={emptyState as string}\n {...listProps}\n />\n </React.Fragment>\n );\n\n return (\n <Drawer\n className={b(null, className)}\n onVeilClick={onClose}\n onEscape={onClose}\n preventScrollBody={preventScrollBody}\n style={{\n left: leftOffset,\n top: topOffset,\n }}\n >\n <DrawerItem\n id=\"hotkeys\"\n visible={visible}\n className={b('drawer-item', drawerItemClassName)}\n content={drawerItemContent}\n />\n </Drawer>\n );\n}\n"],"names":["block","__rest","useState","useMemo","useCallback","Hotkey","TextInput","List","Drawer","DrawerItem"],"mappings":"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"}
@@ -0,0 +1,295 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var uikit = require('@gravity-ui/uikit');
5
+ var AsideHeaderContext = require('./AsideHeaderContext.js');
6
+ var constants = require('./constants-B0DLAQY9.js');
7
+ var cn = require('./cn-DSlPZbcs.js');
8
+ var debounce = require('./debounce-RFF04eVR.js');
9
+ var styleInject_es = require('./style-inject.es-CsU6UJbw.js');
10
+ var icons = require('@gravity-ui/icons');
11
+
12
+ var css_248z$1 = ".gn-composite-bar-highlighted-item{--_--background-color:var(--g-color-base-background);--_--item-icon-background-size:38px;--_--item-background-color-hover:var(--g-color-base-selection-hover);--_--item-selected-background-color-active:var(--g-color-base-selection);display:flex;justify-content:center;position:absolute;z-index:10000}.gn-composite-bar-highlighted-item__icon{align-items:center;background-color:var(--gn-aside-header-background-color,var(--_--background-color));border-radius:7px;box-shadow:0 8px 20px 0 var(--g-color-sfx-shadow);cursor:pointer;display:flex;height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));justify-content:center;overflow:hidden;position:relative;transform:translateY(1px);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size))}.gn-composite-bar-highlighted-item__icon:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active));content:\"\";height:100%;position:absolute;width:100%;z-index:-1}.gn-composite-bar-highlighted-item__icon:hover:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover))}";
13
+ styleInject_es.styleInject(css_248z$1);
14
+
15
+ const b$1 = cn.block('composite-bar-highlighted-item');
16
+ const DEBOUNCE_TIME = 200;
17
+ const HighlightedItem = ({ iconRef, iconNode, onClick, onClickCapture, }) => {
18
+ const { openModalSubscriber } = AsideHeaderContext.useAsideHeaderInnerContext();
19
+ const [{ top, left, width, height }, setPosition] = React.useState({
20
+ top: 0,
21
+ left: 0,
22
+ width: 0,
23
+ height: 0,
24
+ });
25
+ const [isModalOpen, setIsModalOpen] = React.useState(false);
26
+ const handleResizeDebounced = React.useMemo(() => debounce.debounceFn(() => {
27
+ var _a;
28
+ const { top = 0, left = 0, width = 0, height = 0, } = ((_a = iconRef === null || iconRef === undefined ? undefined : iconRef.current) === null || _a === undefined ? undefined : _a.getBoundingClientRect()) || {};
29
+ setPosition({
30
+ top: top + window.scrollY,
31
+ left: left + window.scrollX,
32
+ width,
33
+ height,
34
+ });
35
+ }, DEBOUNCE_TIME, { leading: true }), [iconRef]);
36
+ const handleResize = React.useCallback(() => handleResizeDebounced(), [handleResizeDebounced]);
37
+ React.useEffect(() => {
38
+ if (!isModalOpen) {
39
+ return;
40
+ }
41
+ handleResize();
42
+ window.addEventListener('resize', handleResize);
43
+ return () => window.removeEventListener('resize', handleResize);
44
+ }, [handleResize, isModalOpen]);
45
+ openModalSubscriber === null || openModalSubscriber === undefined ? undefined : openModalSubscriber((open) => {
46
+ setIsModalOpen(open);
47
+ });
48
+ if (!iconNode || !isModalOpen) {
49
+ return null;
50
+ }
51
+ return (React.createElement(uikit.Portal, null,
52
+ React.createElement("div", { className: b$1(), style: { left, top, width, height }, onClick: onClick, onClickCapture: onClickCapture, "data-toast": true },
53
+ React.createElement("div", { className: b$1('icon') }, iconNode))));
54
+ };
55
+ HighlightedItem.displayName = 'HighlightedItem';
56
+
57
+ const ITEM_TYPE_REGULAR = 'regular';
58
+ const COLLAPSE_ITEM_ID = 'collapse-item-id';
59
+ const POPUP_PLACEMENT = ['right-start', 'right-end', 'right'];
60
+ const POPUP_ITEM_HEIGHT = 28;
61
+
62
+ function getItemHeight(item) {
63
+ if (!isMenuItem(item)) {
64
+ return constants.ITEM_HEIGHT;
65
+ }
66
+ switch (item.type) {
67
+ case 'action':
68
+ return 50;
69
+ case 'divider':
70
+ return 15;
71
+ default:
72
+ return constants.ITEM_HEIGHT;
73
+ }
74
+ }
75
+ function getItemsHeight(items) {
76
+ return items.reduce((sum, item) => sum + getItemHeight(item), 0);
77
+ }
78
+ function getSelectedItemIndex(items) {
79
+ const index = items.findIndex(({ current }) => Boolean(current));
80
+ return index === -1 ? undefined : index;
81
+ }
82
+ function getPinnedItems(items) {
83
+ const pinnedItems = [];
84
+ for (const item of items) {
85
+ if (item.pinned) {
86
+ pinnedItems.push(item);
87
+ }
88
+ else if (item.type === 'divider') {
89
+ if (pinnedItems.length > 0 && pinnedItems[pinnedItems.length - 1].type !== 'divider') {
90
+ pinnedItems.push(item);
91
+ }
92
+ }
93
+ }
94
+ return pinnedItems;
95
+ }
96
+ function getItemsMinHeight(items) {
97
+ const pinnedItems = getPinnedItems(items);
98
+ const afterMoreButtonItems = items.filter((item) => item.afterMoreButton);
99
+ return (getItemsHeight(pinnedItems) +
100
+ getItemsHeight(afterMoreButtonItems) +
101
+ (pinnedItems.length === items.length ? 0 : constants.ITEM_HEIGHT));
102
+ }
103
+ function getMoreButtonItem(menuMoreTitle) {
104
+ return {
105
+ id: COLLAPSE_ITEM_ID,
106
+ title: menuMoreTitle,
107
+ icon: icons.Ellipsis,
108
+ iconSize: 18,
109
+ };
110
+ }
111
+ function getAutosizeListItems(items, height, collapseItem) {
112
+ var _a, _b, _c;
113
+ const afterMoreButtonItems = items.filter((item) => item.afterMoreButton);
114
+ const regularItems = items.filter((item) => !item.afterMoreButton);
115
+ const listItems = [...regularItems, ...afterMoreButtonItems];
116
+ const allItemsHeight = getItemsHeight(listItems);
117
+ if (allItemsHeight <= height) {
118
+ return { listItems, collapseItems: [] };
119
+ }
120
+ const collapseItemHeight = getItemHeight(collapseItem);
121
+ listItems.splice(regularItems.length, 0, collapseItem);
122
+ const collapseItems = [];
123
+ let listHeight = allItemsHeight + collapseItemHeight;
124
+ let index = listItems.length;
125
+ while (listHeight > height) {
126
+ if (index === 0) {
127
+ break;
128
+ }
129
+ index--;
130
+ const item = listItems[index];
131
+ if (item.pinned || item.id === COLLAPSE_ITEM_ID || item.afterMoreButton) {
132
+ continue;
133
+ }
134
+ if (item.type === 'divider') {
135
+ if (index + 1 < listItems.length && ((_a = listItems[index + 1]) === null || _a === undefined ? undefined : _a.type) === 'divider') {
136
+ listHeight -= getItemHeight(item);
137
+ listItems.splice(index, 1);
138
+ }
139
+ continue;
140
+ }
141
+ listHeight -= getItemHeight(item);
142
+ collapseItems.unshift(...listItems.splice(index, 1));
143
+ }
144
+ if (((_b = listItems[index]) === null || _b === undefined ? undefined : _b.type) === 'divider' &&
145
+ (index === 0 || ((_c = listItems[index - 1]) === null || _c === undefined ? undefined : _c.type) === 'divider')) {
146
+ listItems.splice(index, 1);
147
+ }
148
+ return { listItems, collapseItems };
149
+ }
150
+ function isMenuItem(item) {
151
+ return (item === null || item === undefined ? undefined : item.id) !== undefined;
152
+ }
153
+
154
+ var css_248z = ".gn-composite-bar-item{--gn-composite-bar-item-action-size:36px;--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--item-background-color-hover:var(--gn-ah-hovered-item-background-color);--_--item-general-icon-color:var(--g-color-text-primary);--_--item-icon-color:var(--g-color-text-complementary);--_--item-text-color:var(--g-color-text-primary);--_--item-collapsed-radius:7px;--_--item-selected-text-color:var(--g-color-text-primary);--_--item-selected-background-color:var(--gn-ah-selected-item-background-color);align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font:inherit;height:100%;min-width:0;outline:inherit;padding:0;text-decoration:inherit;width:100%}.gn-composite-bar-item:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.gn-composite-bar-item__icon{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color))}.gn-composite-bar-item_current .gn-composite-bar-item__icon{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-item-icon-color,var(--_--item-icon-color)))}.gn-composite-bar-highlighted-item .gn-composite-bar-item__icon,.gn-composite-bar_subheader .gn-composite-bar-item__icon,.gn-footer-item .gn-composite-bar-item__icon{color:var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color))}.gn-composite-bar-highlighted-item.gn-composite-bar-item_current .gn-composite-bar-item__icon,.gn-composite-bar_subheader .gn-composite-bar-item_current .gn-composite-bar-item__icon,.gn-footer-item.gn-composite-bar-item_current .gn-composite-bar-item__icon{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color)))}.gn-composite-bar-item__icon-tooltip .g-action-tooltip__description{color:var(--g-color-text-light-primary);margin-block-start:0}.gn-composite-bar-item__icon-place{align-items:center;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--gn-aside-header-min-width)}.gn-composite-bar-item__title{align-items:center;display:flex;margin-right:16px;overflow:hidden}.gn-composite-bar-item__title-text{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--gn-aside-header-item-text-color,var(--_--item-text-color));display:-webkit-box;overflow:hidden;text-align:start}.gn-composite-bar-item_current .gn-composite-bar-item__title-text{color:var(--gn-aside-header-item-current-text-color,var(--_--item-selected-text-color))}.gn-composite-bar-item__title-adornment{margin:0 10px}.gn-composite-bar-item__collapse-item{--_--item-icon-color:var(--g-color-text-misc);align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font:inherit;height:100%;outline:inherit;padding:0 16px;text-decoration:inherit;width:100%}.gn-composite-bar-item__collapse-item:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.gn-composite-bar-item__collapse-item-icon{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color));margin-right:10px}.gn-composite-bar-item__collapse-item .gn-composite-bar-item__title-adornment{margin-right:0}.gn-composite-bar-item__menu-divider{border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));cursor:default;margin:0 8px;width:100%}.gn-composite-bar-item__collapse-items-popup-content{padding:4px 0}.gn-composite-bar-item__link{align-items:center;display:flex;height:100%;width:100%}.gn-composite-bar-item__link,.gn-composite-bar-item__link:active,.gn-composite-bar-item__link:focus,.gn-composite-bar-item__link:hover,.gn-composite-bar-item__link:visited{color:inherit;outline:none;text-decoration:none}.gn-composite-bar-item__btn-icon{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.gn-composite-bar-item_type_action{background:var(--g-color-base-float);border-radius:var(--gn-composite-bar-item-action-size);box-shadow:0 0 0 1px rgba(0,0,0,.03),0 5px 6px rgba(0,0,0,.12);height:var(--gn-composite-bar-item-action-size);justify-content:center;margin:0 10px 8px;transition:transform .1s ease-out,background-color .15s linear}.gn-composite-bar-item_type_action:focus-visible{box-shadow:0 0 0 2px var(--g-color-line-misc)}.gn-composite-bar-item_type_action:hover{background-color:var(--g-color-base-float-hover)}.gn-composite-bar-item_type_action:active{box-shadow:0 1px 2px var(--g-color-sfx-shadow);transform:scale(.96);transition:none}.gn-composite-bar-item_type_action .gn-composite-bar-item__icon-place{width:var(--gn-composite-bar-item-action-size)}.gn-composite-bar-item__icon-tooltip_item-type_action{margin-left:10px}.gn-composite-bar-item:not(.gn-composite-bar-item_compact).gn-composite-bar-item_current.gn-composite-bar-item_type_regular{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-expanded-radius)}.gn-composite-bar-item:not(.gn-composite-bar-item_compact):hover.gn-composite-bar-item_type_regular{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)));border-radius:var(--gn-aside-header-item-expanded-radius)}.gn-composite-bar-item:not(.gn-composite-bar-item_compact):not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-expanded-radius)}.gn-composite-bar-item_compact.gn-composite-bar-item_type_action{width:var(--gn-composite-bar-item-action-size)}.gn-composite-bar-item_compact.gn-composite-bar-item_type_action .gn-composite-bar-item__title{margin:0}.gn-composite-bar-item_compact.gn-composite-bar-item_current.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact.gn-composite-bar-item_current.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:\"\";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.gn-composite-bar-item_compact:hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact:hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:\"\";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.gn-composite-bar-item_compact:not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon{background-color:transparent;position:relative}.gn-composite-bar-item_compact:not(.gn-composite-bar-item_current):hover.gn-composite-bar-item_type_regular .gn-composite-bar-item__btn-icon:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:\"\";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;margin-left:-19px;margin-top:-19px;position:absolute;top:50%;width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}";
155
+ styleInject_es.styleInject(css_248z);
156
+
157
+ const b = cn.block('composite-bar-item');
158
+ function renderItemTitle(item) {
159
+ let titleNode = React.createElement("div", { className: b('title-text') }, item.title);
160
+ if (item.rightAdornment) {
161
+ titleNode = (React.createElement(React.Fragment, null,
162
+ titleNode,
163
+ React.createElement("div", { className: b('title-adornment') }, item.rightAdornment)));
164
+ }
165
+ return titleNode;
166
+ }
167
+ const defaultPopupPlacement = ['right-end'];
168
+ const defaultPopupOffset = { mainAxis: -20, crossAxis: 8 };
169
+ const Item = (props) => {
170
+ const { item, className, collapseItems, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupAnchor, popupAnchorElement, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onClosePopup, onOpenChangePopup, onItemClick, onItemClickCapture, onCollapseItemClick, bringForward, } = props;
171
+ const { compact } = AsideHeaderContext.useAsideHeaderContext();
172
+ const [open, toggleOpen] = React.useState(false);
173
+ const ref = React.useRef(null);
174
+ const anchorRef = popupAnchorElement ? { current: popupAnchorElement } : popupAnchor || ref;
175
+ const highlightedRef = React.useRef(null);
176
+ const type = item.type || ITEM_TYPE_REGULAR;
177
+ const current = item.current || false;
178
+ const tooltipText = item.tooltipText || item.title;
179
+ const icon = item.icon;
180
+ const iconSize = item.iconSize || constants.ASIDE_HEADER_ICON_SIZE;
181
+ const iconQa = item.iconQa;
182
+ const collapsedItem = item.id === COLLAPSE_ITEM_ID;
183
+ const handleClosePopup = React.useCallback((event) => {
184
+ var _a;
185
+ if (event instanceof MouseEvent &&
186
+ event.target &&
187
+ ((_a = ref.current) === null || _a === undefined ? undefined : _a.contains(event.target))) {
188
+ return;
189
+ }
190
+ onClosePopup === null || onClosePopup === undefined ? undefined : onClosePopup();
191
+ }, [onClosePopup]);
192
+ if (item.type === 'divider') {
193
+ return React.createElement("div", { className: b('menu-divider') });
194
+ }
195
+ const makeIconNode = (iconEl) => {
196
+ return compact ? (React.createElement(uikit.ActionTooltip, { title: "", description: tooltipText, disabled: !enableTooltip || (collapsedItem && open) || popupVisible, placement: "right", className: b('icon-tooltip', { 'item-type': type }) },
197
+ React.createElement("div", { onMouseEnter: () => onMouseEnter === null || onMouseEnter === undefined ? undefined : onMouseEnter(), onMouseLeave: () => onMouseLeave === null || onMouseLeave === undefined ? undefined : onMouseLeave(), className: b('btn-icon') }, iconEl))) : (iconEl);
198
+ };
199
+ const makeNode = ({ icon: iconEl, title: titleEl }) => {
200
+ const [Tag, tagProps] = item.link
201
+ ? ['a', { href: item.link }]
202
+ : ['button', {}];
203
+ const createdNode = (React.createElement(React.Fragment, null,
204
+ React.createElement(Tag, Object.assign({}, tagProps, { className: b({ type, current, compact }, className), ref: ref, "data-qa": item.qa, onClick: (event) => {
205
+ if (collapsedItem) {
206
+ /**
207
+ * If we call onItemClick for collapsedItem then:
208
+ * - User get unexpected item in onItemClick callback
209
+ * - onClosePanel calls twice for each popuped item, as result it will prevent opening of panelItems
210
+ */
211
+ toggleOpen(!open);
212
+ onCollapseItemClick === null || onCollapseItemClick === undefined ? undefined : onCollapseItemClick();
213
+ }
214
+ else {
215
+ onItemClick === null || onItemClick === undefined ? undefined : onItemClick(item, false, event);
216
+ }
217
+ }, onClickCapture: onItemClickCapture, onMouseEnter: () => {
218
+ if (!compact) {
219
+ onMouseEnter === null || onMouseEnter === undefined ? undefined : onMouseEnter();
220
+ }
221
+ }, onMouseLeave: () => {
222
+ if (!compact) {
223
+ onMouseLeave === null || onMouseLeave === undefined ? undefined : onMouseLeave();
224
+ }
225
+ } }),
226
+ React.createElement("div", { className: b('icon-place'), ref: highlightedRef }, makeIconNode(iconEl)),
227
+ React.createElement("div", { className: b('title'), title: typeof item.title === 'string' ? item.title : undefined }, titleEl)),
228
+ renderPopupContent && Boolean(anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) && (React.createElement(uikit.Popup, { open: popupVisible, keepMounted: popupKeepMounted, placement: popupPlacement, offset: popupOffset, anchorRef: anchorRef, onClose: handleClosePopup, onOpenChange: onOpenChangePopup }, renderPopupContent()))));
229
+ return createdNode;
230
+ };
231
+ const iconNode = icon ? (React.createElement(uikit.Icon, { qa: iconQa, data: icon, size: iconSize, className: b('icon') })) : null;
232
+ const titleNode = renderItemTitle(item);
233
+ const params = { icon: iconNode, title: titleNode };
234
+ let highlightedNode = null;
235
+ let node;
236
+ const opts = { compact: Boolean(compact), collapsed: false, item, ref };
237
+ if (typeof item.itemWrapper === 'function') {
238
+ node = item.itemWrapper(params, makeNode, opts);
239
+ highlightedNode =
240
+ bringForward &&
241
+ item.itemWrapper(params, ({ icon: iconEl }) => makeIconNode(iconEl), opts);
242
+ }
243
+ else {
244
+ node = makeNode(params);
245
+ highlightedNode = bringForward && makeIconNode(iconNode);
246
+ }
247
+ return (React.createElement(React.Fragment, null,
248
+ bringForward && (React.createElement(HighlightedItem, { iconNode: highlightedNode, iconRef: highlightedRef, onClick: (event) => onItemClick === null || onItemClick === undefined ? undefined : onItemClick(item, false, event), onClickCapture: onItemClickCapture })),
249
+ node,
250
+ open && collapsedItem && (collapseItems === null || collapseItems === undefined ? undefined : collapseItems.length) && Boolean(anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) && (React.createElement(CollapsedPopup, Object.assign({}, props, { anchorRef: ref, onClose: () => toggleOpen(false) })))));
251
+ };
252
+ Item.displayName = 'Item';
253
+ function CollapsedPopup({ onItemClick, collapseItems, anchorRef, onClose, }) {
254
+ const { compact } = AsideHeaderContext.useAsideHeaderContext();
255
+ return (collapseItems === null || collapseItems === undefined ? undefined : collapseItems.length) ? (React.createElement(uikit.Popup, { placement: POPUP_PLACEMENT, open: true, anchorRef: anchorRef, onClose: onClose },
256
+ React.createElement("div", { className: b('collapse-items-popup-content') },
257
+ React.createElement(uikit.List, { itemClassName: b('root-collapse-item'), items: collapseItems, selectedItemIndex: getSelectedItemIndex(collapseItems), itemHeight: POPUP_ITEM_HEIGHT, itemsHeight: collapseItems.length * POPUP_ITEM_HEIGHT, virtualized: false, filterable: false, sortable: false, onItemClick: onClose, renderItem: (collapseItem) => {
258
+ const makeCollapseNode = ({ title: titleEl, icon: iconEl, }) => {
259
+ const [Tag, tagProps] = collapseItem.link
260
+ ? ['a', { href: collapseItem.link }]
261
+ : ['button', {}];
262
+ return (React.createElement(Tag, Object.assign({}, tagProps, { className: b('collapse-item'), onClick: (event) => {
263
+ onItemClick === null || onItemClick === undefined ? undefined : onItemClick(collapseItem, true, event);
264
+ } }),
265
+ iconEl,
266
+ titleEl));
267
+ };
268
+ const titleNode = renderItemTitle(collapseItem);
269
+ const iconNode = collapseItem.icon && (React.createElement(uikit.Icon, { data: collapseItem.icon, size: 14, className: b('collapse-item-icon') }));
270
+ const params = { title: titleNode, icon: iconNode };
271
+ const opts = {
272
+ compact: Boolean(compact),
273
+ collapsed: true,
274
+ item: collapseItem,
275
+ ref: anchorRef,
276
+ };
277
+ if (typeof collapseItem.itemWrapper === 'function') {
278
+ return collapseItem.itemWrapper(params, makeCollapseNode, opts);
279
+ }
280
+ else {
281
+ return makeCollapseNode(params);
282
+ }
283
+ } })))) : null;
284
+ }
285
+
286
+ exports.COLLAPSE_ITEM_ID = COLLAPSE_ITEM_ID;
287
+ exports.Item = Item;
288
+ exports.getAutosizeListItems = getAutosizeListItems;
289
+ exports.getItemHeight = getItemHeight;
290
+ exports.getItemsHeight = getItemsHeight;
291
+ exports.getItemsMinHeight = getItemsMinHeight;
292
+ exports.getMoreButtonItem = getMoreButtonItem;
293
+ exports.getSelectedItemIndex = getSelectedItemIndex;
294
+ exports.isMenuItem = isMenuItem;
295
+ //# sourceMappingURL=Item-B_-IH1_h.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item-B_-IH1_h.js","sources":["../../../src/components/CompositeBar/HighlightedItem/HighlightedItem.tsx","../../../src/components/CompositeBar/constants.ts","../../../src/components/CompositeBar/utils.ts","../../../src/components/CompositeBar/Item/Item.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {Portal} from '@gravity-ui/uikit';\nimport debounceFn from 'lodash/debounce';\n\nimport {useAsideHeaderInnerContext} from '../../AsideHeader/AsideHeaderContext';\nimport {block} from '../../utils/cn';\n\nimport './HighlightedItem.scss';\n\nconst b = block('composite-bar-highlighted-item');\n\ninterface ItemInnerProps {\n iconRef: React.RefObject<HTMLDivElement>;\n iconNode: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onClickCapture?: (event: React.SyntheticEvent) => void;\n}\n\nconst DEBOUNCE_TIME = 200;\n\nexport const HighlightedItem: React.FC<ItemInnerProps> = ({\n iconRef,\n iconNode,\n onClick,\n onClickCapture,\n}: ItemInnerProps) => {\n const {openModalSubscriber} = useAsideHeaderInnerContext();\n const [{top, left, width, height}, setPosition] = useState({\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n });\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n\n const handleResizeDebounced = useMemo(\n () =>\n debounceFn(\n () => {\n const {\n top = 0,\n left = 0,\n width = 0,\n height = 0,\n } = iconRef?.current?.getBoundingClientRect() || {};\n\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n width,\n height,\n });\n },\n DEBOUNCE_TIME,\n {leading: true},\n ),\n [iconRef],\n );\n\n const handleResize = useCallback(() => handleResizeDebounced(), [handleResizeDebounced]);\n\n useEffect(() => {\n if (!isModalOpen) {\n return;\n }\n\n handleResize();\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [handleResize, isModalOpen]);\n\n openModalSubscriber?.((open: boolean) => {\n setIsModalOpen(open);\n });\n\n if (!iconNode || !isModalOpen) {\n return null;\n }\n\n return (\n <Portal>\n <div\n className={b()}\n style={{left, top, width, height}}\n onClick={onClick}\n onClickCapture={onClickCapture}\n data-toast\n >\n <div className={b('icon')}>{iconNode}</div>\n </div>\n </Portal>\n );\n};\n\nHighlightedItem.displayName = 'HighlightedItem';\n","import {PopupPlacement} from '@gravity-ui/uikit';\n\nexport const ITEM_TYPE_REGULAR = 'regular';\nexport const COLLAPSE_ITEM_ID = 'collapse-item-id';\n\nexport const POPUP_PLACEMENT: PopupPlacement = ['right-start', 'right-end', 'right'];\nexport const POPUP_ITEM_HEIGHT = 28;\n","import {Ellipsis} from '@gravity-ui/icons';\n\nimport {CompositeBarItem} from '../CompositeBar/CompositeBar';\nimport {ITEM_HEIGHT} from '../constants';\n\nimport {MenuItem} from './../types';\nimport {COLLAPSE_ITEM_ID} from './constants';\n\nexport function getItemHeight(item: CompositeBarItem) {\n if (!isMenuItem(item)) {\n return ITEM_HEIGHT;\n }\n\n switch (item.type) {\n case 'action':\n return 50;\n case 'divider':\n return 15;\n\n default:\n return ITEM_HEIGHT;\n }\n}\n\nexport function getItemsHeight<T extends CompositeBarItem>(items: T[]) {\n return items.reduce((sum, item) => sum + getItemHeight(item), 0);\n}\n\nexport function getSelectedItemIndex(items: MenuItem[]) {\n const index = items.findIndex(({current}) => Boolean(current));\n return index === -1 ? undefined : index;\n}\n\nexport function getPinnedItems(items: MenuItem[]) {\n const pinnedItems: MenuItem[] = [];\n for (const item of items) {\n if (item.pinned) {\n pinnedItems.push(item);\n } else if (item.type === 'divider') {\n if (pinnedItems.length > 0 && pinnedItems[pinnedItems.length - 1].type !== 'divider') {\n pinnedItems.push(item);\n }\n }\n }\n return pinnedItems;\n}\n\nexport function getItemsMinHeight(items: MenuItem[]) {\n const pinnedItems = getPinnedItems(items);\n const afterMoreButtonItems = items.filter((item) => item.afterMoreButton);\n\n return (\n getItemsHeight(pinnedItems) +\n getItemsHeight(afterMoreButtonItems) +\n (pinnedItems.length === items.length ? 0 : ITEM_HEIGHT)\n );\n}\n\nexport function getMoreButtonItem(menuMoreTitle?: string): MenuItem {\n return {\n id: COLLAPSE_ITEM_ID,\n title: menuMoreTitle,\n icon: Ellipsis,\n iconSize: 18,\n };\n}\n\nexport function getAutosizeListItems(\n items: MenuItem[],\n height: number,\n collapseItem: MenuItem,\n): {\n listItems: MenuItem[];\n collapseItems: MenuItem[];\n} {\n const afterMoreButtonItems = items.filter((item) => item.afterMoreButton);\n const regularItems = items.filter((item) => !item.afterMoreButton);\n const listItems = [...regularItems, ...afterMoreButtonItems];\n\n const allItemsHeight = getItemsHeight(listItems);\n if (allItemsHeight <= height) {\n return {listItems, collapseItems: []};\n }\n\n const collapseItemHeight = getItemHeight(collapseItem);\n\n listItems.splice(regularItems.length, 0, collapseItem);\n const collapseItems: MenuItem[] = [];\n\n let listHeight = allItemsHeight + collapseItemHeight;\n let index = listItems.length;\n while (listHeight > height) {\n if (index === 0) {\n break;\n }\n index--;\n\n const item = listItems[index];\n if (item.pinned || item.id === COLLAPSE_ITEM_ID || item.afterMoreButton) {\n continue;\n }\n if (item.type === 'divider') {\n if (index + 1 < listItems.length && listItems[index + 1]?.type === 'divider') {\n listHeight -= getItemHeight(item);\n listItems.splice(index, 1);\n }\n continue;\n }\n listHeight -= getItemHeight(item);\n collapseItems.unshift(...listItems.splice(index, 1));\n }\n if (\n listItems[index]?.type === 'divider' &&\n (index === 0 || listItems[index - 1]?.type === 'divider')\n ) {\n listItems.splice(index, 1);\n }\n\n return {listItems, collapseItems};\n}\n\nexport function isMenuItem(item: CompositeBarItem): item is MenuItem {\n return (item as MenuItem)?.id !== undefined;\n}\n","import React from 'react';\n\nimport {ActionTooltip, Icon, List, Popup, PopupPlacement, PopupProps} from '@gravity-ui/uikit';\n\nimport {useAsideHeaderContext} from '../../AsideHeader/AsideHeaderContext';\nimport {ASIDE_HEADER_ICON_SIZE} from '../../constants';\nimport {MakeItemParams, MenuItem} from '../../types';\nimport {block} from '../../utils/cn';\nimport {HighlightedItem} from '../HighlightedItem/HighlightedItem';\nimport {\n COLLAPSE_ITEM_ID,\n ITEM_TYPE_REGULAR,\n POPUP_ITEM_HEIGHT,\n POPUP_PLACEMENT,\n} from '../constants';\nimport {getSelectedItemIndex} from '../utils';\n\nimport './Item.scss';\n\nconst b = block('composite-bar-item');\n\ninterface ItemPopup {\n popupVisible?: PopupProps['open'];\n /**\n * floating element anchor ref object\n *\n * @deprecated Use `popupAnchorElement` instead\n * */\n popupAnchor?: PopupProps['anchorRef'];\n popupAnchorElement?: PopupProps['anchorElement'];\n popupPlacement?: PopupProps['placement'];\n popupOffset?: PopupProps['offset'];\n popupKeepMounted?: PopupProps['keepMounted'];\n renderPopupContent?: () => React.ReactNode;\n /**\n * This callback will be called when Escape key pressed on keyboard, or click outside was made\n * This behaviour could be disabled with `disableEscapeKeyDown`\n * and `disableOutsideClick` options\n *\n * @deprecated Use `onOpenChangePopup` instead\n */\n onClosePopup?: () => void;\n onOpenChangePopup?: PopupProps['onOpenChange'];\n}\n\nexport interface ItemProps extends ItemPopup {\n item: MenuItem;\n enableTooltip?: boolean;\n onItemClick?: (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n onItemClickCapture?: (event: React.SyntheticEvent) => void;\n onCollapseItemClick?: () => void;\n bringForward?: boolean;\n}\n\ninterface ItemInnerProps extends ItemProps {\n className?: string;\n collapseItems?: MenuItem[];\n onMouseEnter?: () => void;\n onMouseLeave?: () => void;\n}\n\nfunction renderItemTitle(item: MenuItem) {\n let titleNode = <div className={b('title-text')}>{item.title}</div>;\n\n if (item.rightAdornment) {\n titleNode = (\n <React.Fragment>\n {titleNode}\n <div className={b('title-adornment')}>{item.rightAdornment}</div>\n </React.Fragment>\n );\n }\n\n return titleNode;\n}\n\nexport const defaultPopupPlacement: PopupPlacement = ['right-end'];\nexport const defaultPopupOffset: NonNullable<PopupProps['offset']> = {mainAxis: -20, crossAxis: 8};\n\nexport const Item: React.FC<ItemInnerProps> = (props) => {\n const {\n item,\n className,\n collapseItems,\n onMouseLeave,\n onMouseEnter,\n enableTooltip = true,\n popupVisible = false,\n popupAnchor,\n popupAnchorElement,\n popupPlacement = defaultPopupPlacement,\n popupOffset = defaultPopupOffset,\n popupKeepMounted,\n renderPopupContent,\n onClosePopup,\n onOpenChangePopup,\n onItemClick,\n onItemClickCapture,\n onCollapseItemClick,\n bringForward,\n } = props;\n\n const {compact} = useAsideHeaderContext();\n\n const [open, toggleOpen] = React.useState<boolean>(false);\n\n const ref = React.useRef<HTMLAnchorElement & HTMLButtonElement>(null);\n const anchorRef = popupAnchorElement ? {current: popupAnchorElement} : popupAnchor || ref;\n const highlightedRef = React.useRef<HTMLDivElement>(null);\n\n const type = item.type || ITEM_TYPE_REGULAR;\n const current = item.current || false;\n const tooltipText = item.tooltipText || item.title;\n const icon = item.icon;\n const iconSize = item.iconSize || ASIDE_HEADER_ICON_SIZE;\n const iconQa = item.iconQa;\n const collapsedItem = item.id === COLLAPSE_ITEM_ID;\n\n const handleClosePopup = React.useCallback(\n (event: MouseEvent | KeyboardEvent) => {\n if (\n event instanceof MouseEvent &&\n event.target &&\n ref.current?.contains(event.target as Node)\n ) {\n return;\n }\n onClosePopup?.();\n },\n [onClosePopup],\n );\n\n if (item.type === 'divider') {\n return <div className={b('menu-divider')} />;\n }\n\n const makeIconNode = (iconEl: React.ReactNode): React.ReactNode => {\n return compact ? (\n <ActionTooltip\n title=\"\"\n description={tooltipText}\n disabled={!enableTooltip || (collapsedItem && open) || popupVisible}\n placement=\"right\"\n className={b('icon-tooltip', {'item-type': type})}\n >\n <div\n onMouseEnter={() => onMouseEnter?.()}\n onMouseLeave={() => onMouseLeave?.()}\n className={b('btn-icon')}\n >\n {iconEl}\n </div>\n </ActionTooltip>\n ) : (\n iconEl\n );\n };\n\n const makeNode = ({icon: iconEl, title: titleEl}: MakeItemParams) => {\n const [Tag, tagProps] = item.link\n ? ['a' as const, {href: item.link}]\n : ['button' as const, {}];\n\n const createdNode = (\n <React.Fragment>\n <Tag\n {...tagProps}\n className={b({type, current, compact}, className)}\n ref={ref}\n data-qa={item.qa}\n onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (collapsedItem) {\n /**\n * If we call onItemClick for collapsedItem then:\n * - User get unexpected item in onItemClick callback\n * - onClosePanel calls twice for each popuped item, as result it will prevent opening of panelItems\n */\n toggleOpen(!open);\n onCollapseItemClick?.();\n } else {\n onItemClick?.(item, false, event);\n }\n }}\n onClickCapture={onItemClickCapture}\n onMouseEnter={() => {\n if (!compact) {\n onMouseEnter?.();\n }\n }}\n onMouseLeave={() => {\n if (!compact) {\n onMouseLeave?.();\n }\n }}\n >\n <div className={b('icon-place')} ref={highlightedRef}>\n {makeIconNode(iconEl)}\n </div>\n\n <div\n className={b('title')}\n title={typeof item.title === 'string' ? item.title : undefined}\n >\n {titleEl}\n </div>\n </Tag>\n {renderPopupContent && Boolean(anchorRef?.current) && (\n <Popup\n open={popupVisible}\n keepMounted={popupKeepMounted}\n placement={popupPlacement}\n offset={popupOffset}\n anchorRef={anchorRef}\n onClose={handleClosePopup}\n onOpenChange={onOpenChangePopup}\n >\n {renderPopupContent()}\n </Popup>\n )}\n </React.Fragment>\n );\n\n return createdNode;\n };\n\n const iconNode = icon ? (\n <Icon qa={iconQa} data={icon} size={iconSize} className={b('icon')} />\n ) : null;\n const titleNode = renderItemTitle(item);\n const params = {icon: iconNode, title: titleNode};\n let highlightedNode = null;\n let node;\n\n const opts = {compact: Boolean(compact), collapsed: false, item, ref};\n\n if (typeof item.itemWrapper === 'function') {\n node = item.itemWrapper(params, makeNode, opts) as React.ReactElement;\n highlightedNode =\n bringForward &&\n (item.itemWrapper(\n params,\n ({icon: iconEl}) => makeIconNode(iconEl),\n opts,\n ) as React.ReactElement);\n } else {\n node = makeNode(params);\n highlightedNode = bringForward && makeIconNode(iconNode);\n }\n\n return (\n <React.Fragment>\n {bringForward && (\n <HighlightedItem\n iconNode={highlightedNode}\n iconRef={highlightedRef}\n onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) =>\n onItemClick?.(item, false, event)\n }\n onClickCapture={onItemClickCapture}\n />\n )}\n {node}\n {open && collapsedItem && collapseItems?.length && Boolean(anchorRef?.current) && (\n <CollapsedPopup {...props} anchorRef={ref} onClose={() => toggleOpen(false)} />\n )}\n </React.Fragment>\n );\n};\n\nItem.displayName = 'Item';\n\ninterface CollapsedPopupProps {\n anchorRef: React.RefObject<HTMLElement>;\n onClose: () => void;\n}\n\nfunction CollapsedPopup({\n onItemClick,\n collapseItems,\n anchorRef,\n onClose,\n}: ItemInnerProps & CollapsedPopupProps) {\n const {compact} = useAsideHeaderContext();\n return collapseItems?.length ? (\n <Popup placement={POPUP_PLACEMENT} open={true} anchorRef={anchorRef} onClose={onClose}>\n <div className={b('collapse-items-popup-content')}>\n <List\n itemClassName={b('root-collapse-item')}\n items={collapseItems}\n selectedItemIndex={getSelectedItemIndex(collapseItems)}\n itemHeight={POPUP_ITEM_HEIGHT}\n itemsHeight={collapseItems.length * POPUP_ITEM_HEIGHT}\n virtualized={false}\n filterable={false}\n sortable={false}\n onItemClick={onClose}\n renderItem={(collapseItem) => {\n const makeCollapseNode = ({\n title: titleEl,\n icon: iconEl,\n }: MakeItemParams) => {\n const [Tag, tagProps] = collapseItem.link\n ? ['a' as const, {href: collapseItem.link}]\n : ['button' as const, {}];\n\n return (\n <Tag\n {...tagProps}\n className={b('collapse-item')}\n onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n onItemClick?.(collapseItem, true, event);\n }}\n >\n {iconEl}\n {titleEl}\n </Tag>\n );\n };\n\n const titleNode = renderItemTitle(collapseItem);\n const iconNode = collapseItem.icon && (\n <Icon\n data={collapseItem.icon}\n size={14}\n className={b('collapse-item-icon')}\n />\n );\n\n const params = {title: titleNode, icon: iconNode};\n const opts = {\n compact: Boolean(compact),\n collapsed: true,\n item: collapseItem,\n ref: anchorRef,\n };\n if (typeof collapseItem.itemWrapper === 'function') {\n return collapseItem.itemWrapper(params, makeCollapseNode, opts);\n } else {\n return makeCollapseNode(params);\n }\n }}\n />\n </div>\n </Popup>\n ) : null;\n}\n"],"names":["b","block","useAsideHeaderInnerContext","useState","useMemo","debounceFn","useCallback","useEffect","Portal","ITEM_HEIGHT","Ellipsis","useAsideHeaderContext","ASIDE_HEADER_ICON_SIZE","ActionTooltip","Popup","Icon","List"],"mappings":"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"}
@@ -1,36 +1,30 @@
1
1
  'use strict';
2
2
 
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
3
  var React = require('react');
6
- var Content = require('./Content-64d5738a.js');
7
- var constants = require('./constants-d81c3867.js');
4
+ var Content = require('./Content-Dy2XkiRi.js');
5
+ var constants = require('./constants-B0DLAQY9.js');
8
6
  var AsideHeaderContext = require('./AsideHeaderContext.js');
9
- var utils = require('./utils-db3e03c2.js');
10
- var styleInject_es = require('./style-inject.es-dcee06b6.js');
11
- require('./cn-9933321a.js');
7
+ var utils = require('./utils-BrRoop7o.js');
8
+ var styleInject_es = require('./style-inject.es-CsU6UJbw.js');
9
+ require('./cn-DSlPZbcs.js');
12
10
  require('@bem-react/classname');
13
11
 
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
- var css_248z = ".g-root{--gn-aside-top-panel-height:0px}.gn-aside-header{--gn-aside-header-min-width:56px;--_--item-icon-background-size:38px;--_--background-color:var(--g-color-base-background);--_--decoration-collapsed-background-color:var(--g-color-base-warning-light);--_--decoration-expanded-background-color:var(--g-color-base-warning-light);--_--vertical-divider-line-color:var(--g-color-line-generic);--_--horizontal-divider-line-color:var(--g-color-line-generic);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.gn-aside-header__aside{background-color:var(--gn-aside-header-expanded-background-color,var(--gn-aside-header-background-color,var(--_--background-color)));box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-aside-top-panel-height);max-height:calc(100vh - var(--gn-aside-top-panel-height));position:sticky;top:var(--gn-aside-top-panel-height);width:inherit;z-index:var(--gn-aside-header-z-index,100)}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-vertical-color,var(--_--vertical-divider-line-color));content:\"\";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{inset:0;position:absolute;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-decoration-expanded-background-color,var(--_--decoration-expanded-background-color)) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header__aside-custom-background{bottom:0;display:flex;position:absolute;top:0;z-index:-1}.gn-aside-header_compact .gn-aside-header__aside{background-color:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--_--background-color)))}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:\"\";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));bottom:12px;content:\"\";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__logo-button-wrapper{width:var(--gn-aside-header-min-width)}.gn-aside-header__logo-button[class],.gn-aside-header__logo-button[class] .g-button__icon{height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size))}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{inset:var(--gn-aside-top-panel-height) 0 0;max-height:calc(100vh - var(--gn-aside-top-panel-height));overflow:auto;position:fixed;z-index:var(--gn-aside-header-panel-z-index,98)}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__pane-top-divider{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));height:1px;margin-top:-1px}.gn-aside-header__pane-top{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:var(--gn-aside-header-pane-top-z-index,98)}.gn-aside-header__pane-top-alert_centered{display:flex;justify-content:space-around}.gn-aside-header__pane-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-aside-header__content{margin-top:var(--gn-aside-top-panel-height);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}";
12
+ var css_248z = ".g-root{--gn-aside-top-panel-height:0px}.g-root_theme_light{--gn-ah-background-color:var(--g-color-base-neutral-light);--gn-ah-decoration-background-color:var(--g-color-private-yellow-200);--gn-ah-selected-item-background-color:var(--g-color-private-orange-200);--gn-ah-hovered-item-background-color:var(--g-color-private-black-50)}.g-root_theme_light-hc{--gn-ah-background-color:var(--g-color-base-neutral-light);--gn-ah-decoration-background-color:var(--g-color-private-yellow-300);--gn-ah-selected-item-background-color:var(--g-color-private-orange-300);--gn-ah-hovered-item-background-color:var(--g-color-private-black-150)}.g-root_theme_dark{--gn-ah-background-color:#110e11;--gn-ah-decoration-background-color:var(--g-color-private-yellow-150);--gn-ah-selected-item-background-color:var(--g-color-private-orange-200);--gn-ah-hovered-item-background-color:var(--g-color-private-white-150)}.g-root_theme_dark-hc{--gn-ah-background-color:#050505;--gn-ah-decoration-background-color:var(--g-color-private-yellow-250);--gn-ah-selected-item-background-color:var(--g-color-private-orange-250);--gn-ah-hovered-item-background-color:var(--g-color-private-white-250)}.gn-aside-header{--gn-aside-header-min-width:56px;--_--item-icon-background-size:38px;--_--background-color:var(--gn-ah-background-color);--_--decoration-collapsed-background-color:var(--gn-ah-decoration-background-color);--_--decoration-expanded-background-color:var(--gn-ah-decoration-background-color);--_--vertical-divider-line-color:var(--g-color-line-generic);--_--horizontal-divider-line-color:var(--g-color-line-generic);background-color:var(--g-color-base-background);height:100%;position:relative;width:100%}.gn-aside-header__aside{background-color:var(--gn-aside-header-expanded-background-color,var(--gn-aside-header-background-color,var(--_--background-color)));box-sizing:border-box;display:flex;flex-direction:column;height:100vh;left:0;margin-top:var(--gn-top-alert-height,0);max-height:calc(100vh - var(--gn-top-alert-height, 0));position:sticky;top:var(--gn-top-alert-height,0);width:inherit;z-index:var(--gn-aside-header-z-index,100)}.gn-aside-header__aside:after{background-color:var(--gn-aside-header-divider-vertical-color,var(--_--vertical-divider-line-color));content:\"\";height:100%;position:absolute;right:0;top:0;width:1px;z-index:2}.gn-aside-header__aside-popup-anchor{inset:0;position:absolute;z-index:1}.gn-aside-header__aside-content{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow-x:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;z-index:2}.gn-aside-header__aside-content>.gn-aside-header-logo{margin:8px 0}.gn-aside-header__aside-content_with-decoration{background:linear-gradient(180deg,var(--gn-aside-header-decoration-expanded-background-color,var(--_--decoration-expanded-background-color)) calc(var(--gradient-height)*.33),transparent calc(var(--gradient-height)*.88))}.gn-aside-header__aside-custom-background{bottom:0;display:flex;position:absolute;top:0;z-index:-1}.gn-aside-header_compact .gn-aside-header__aside{background-color:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--_--background-color)))}.gn-aside-header_compact .gn-aside-header__aside-content{background:transparent}.gn-aside-header__header{--gn-aside-header-header-divider-height:29px;box-sizing:border-box;flex:none;padding-bottom:22px;padding-top:8px;position:relative;width:100%;z-index:1}.gn-aside-header__header .gn-aside-header__header-divider{bottom:0;color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));display:none;left:0;position:absolute;z-index:-2}.gn-aside-header__header_with-decoration:before{background-color:var(--gn-aside-header-decoration-collapsed-background-color,var(--_--decoration-collapsed-background-color));content:\"\";display:none;height:calc(100% - var(--gn-aside-header-header-divider-height));left:0;position:absolute;top:0;width:100%;z-index:-2}.gn-aside-header__header:after{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));bottom:12px;content:\"\";height:1px;left:0;position:absolute;width:100%;z-index:-2}.gn-aside-header_compact .gn-aside-header__header:before,.gn-aside-header_compact .gn-aside-header__header_with-decoration .gn-aside-header__header-divider{display:block}.gn-aside-header_compact .gn-aside-header__header_with-decoration:after{display:none}.gn-aside-header__logo-button .gn-aside-header__logo-icon-place{height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));width:var(--gn-aside-header-min-width)}.gn-aside-header__menu-items{flex-grow:1}.gn-aside-header__footer{display:flex;flex-direction:column;flex-shrink:0;margin:8px 0;width:100%}.gn-aside-header__panels{inset:var(--gn-top-alert-height,0) 0 0;max-height:calc(100vh - var(--gn-top-alert-height, 0));overflow:auto;position:fixed;z-index:var(--gn-aside-header-panel-z-index,98)}.gn-aside-header__panel{height:100%}.gn-aside-header__pane-container{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.gn-aside-header__top-alert{background:var(--g-color-base-background);position:fixed;top:0;width:100%;z-index:var(--gn-aside-header-pane-top-z-index,98)}.gn-aside-header__content{margin-top:var(--gn-top-alert-height,0);width:calc(100% - var(--gn-aside-header-size));z-index:var(--gn-aside-header-content-z-index,95)}";
19
13
  styleInject_es.styleInject(css_248z);
20
14
 
21
- const TopPanel = React__default["default"].lazy(() => Promise.resolve().then(function () { return require('./TopPanel-c6b83157.js'); }).then((module) => ({ default: module.TopPanel })));
15
+ const TopAlert = React.lazy(() => Promise.resolve().then(function () { return require('./index-B6c8DVdr.js'); }).then((module) => ({ default: module.TopAlert })));
22
16
  const Layout = ({ compact, className, children, topAlert }) => {
23
17
  const size = compact ? constants.ASIDE_HEADER_COMPACT_WIDTH : constants.ASIDE_HEADER_EXPANDED_WIDTH;
24
18
  const asideHeaderContextValue = React.useMemo(() => ({ size, compact }), [compact, size]);
25
- return (React__default["default"].createElement(AsideHeaderContext.AsideHeaderContextProvider, { value: asideHeaderContextValue },
26
- React__default["default"].createElement("div", { className: utils.b({ compact }, className), style: Object.assign({}, { '--gn-aside-header-size': `${size}px` }) },
27
- topAlert && (React__default["default"].createElement(React.Suspense, { fallback: null },
28
- React__default["default"].createElement(TopPanel, { topAlert: topAlert }))),
29
- React__default["default"].createElement("div", { className: utils.b('pane-container') }, children))));
19
+ return (React.createElement(AsideHeaderContext.AsideHeaderContextProvider, { value: asideHeaderContextValue },
20
+ React.createElement("div", { className: utils.b({ compact }, className), style: Object.assign({}, { '--gn-aside-header-size': `${size}px` }) },
21
+ topAlert && (React.createElement(React.Suspense, { fallback: null },
22
+ React.createElement(TopAlert, { className: utils.b('top-alert'), alert: topAlert }))),
23
+ React.createElement("div", { className: utils.b('pane-container') }, children))));
30
24
  };
31
25
  const ConnectedContent = ({ children, renderContent, }) => {
32
26
  const { size } = AsideHeaderContext.useAsideHeaderContext();
33
- return (React__default["default"].createElement(Content.Content, { size: size, className: utils.b('content'), renderContent: renderContent }, children));
27
+ return (React.createElement(Content.Content, { size: size, className: utils.b('content'), renderContent: renderContent }, children));
34
28
  };
35
29
  const PageLayout = Object.assign(Layout, {
36
30
  Content: ConnectedContent,
@@ -1 +1 @@
1
- {"version":3,"file":"PageLayout.js","sources":["../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, {PropsWithChildren, Suspense, useMemo} from 'react';\n\nimport {Content, ContentProps} from '../../../Content';\nimport {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';\nimport {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {LayoutProps} from '../../types';\nimport {b} from '../../utils';\n\nimport '../../AsideHeader.scss';\n\nconst TopPanel = React.lazy(() =>\n import('../TopPanel').then((module) => ({default: module.TopPanel})),\n);\n\nexport interface PageLayoutProps extends PropsWithChildren<LayoutProps> {}\n\nconst Layout = ({compact, className, children, topAlert}: PageLayoutProps) => {\n const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;\n const asideHeaderContextValue = useMemo(() => ({size, compact}), [compact, size]);\n\n return (\n <AsideHeaderContextProvider value={asideHeaderContextValue}>\n <div\n className={b({compact}, className)}\n style={{\n ...({'--gn-aside-header-size': `${size}px`} as React.CSSProperties),\n }}\n >\n {topAlert && (\n <Suspense fallback={null}>\n <TopPanel topAlert={topAlert} />\n </Suspense>\n )}\n <div className={b('pane-container')}>{children}</div>\n </div>\n </AsideHeaderContextProvider>\n );\n};\n\nconst ConnectedContent: React.FC<PropsWithChildren<Pick<ContentProps, 'renderContent'>>> = ({\n children,\n renderContent,\n}) => {\n const {size} = useAsideHeaderContext();\n\n return (\n <Content size={size} className={b('content')} renderContent={renderContent}>\n {children}\n </Content>\n );\n};\n\nconst PageLayout = Object.assign(Layout, {\n Content: ConnectedContent,\n});\n\nexport {PageLayout};\n"],"names":["React","ASIDE_HEADER_COMPACT_WIDTH","ASIDE_HEADER_EXPANDED_WIDTH","useMemo","AsideHeaderContextProvider","b","Suspense","useAsideHeaderContext","Content"],"mappings":";;;;;;;;;;;;;;;;;;;;AAUA,MAAM,QAAQ,GAAGA,yBAAK,CAAC,IAAI,CAAC,MACxB,oDAAO,wBAAa,KAAC,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CACvE,CAAC;AAIF,MAAM,MAAM,GAAG,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB,KAAI;IACzE,MAAM,IAAI,GAAG,OAAO,GAAGC,oCAA0B,GAAGC,qCAA2B,CAAC;IAChF,MAAM,uBAAuB,GAAGC,aAAO,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAElF,IAAA,QACIH,yBAAC,CAAA,aAAA,CAAAI,6CAA0B,EAAC,EAAA,KAAK,EAAE,uBAAuB,EAAA;AACtD,QAAAJ,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAEK,OAAC,CAAC,EAAC,OAAO,EAAC,EAAE,SAAS,CAAC,EAClC,KAAK,oBACG,EAAC,wBAAwB,EAAE,CAAG,EAAA,IAAI,IAAI,EAAyB,CAAA,EAAA;AAGtE,YAAA,QAAQ,KACLL,yBAAA,CAAA,aAAA,CAACM,cAAQ,EAAC,EAAA,QAAQ,EAAE,IAAI,EAAA;AACpB,gBAAAN,yBAAA,CAAA,aAAA,CAAC,QAAQ,EAAC,EAAA,QAAQ,EAAE,QAAQ,EAAA,CAAI,CACzB,CACd;AACD,YAAAA,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEK,OAAC,CAAC,gBAAgB,CAAC,EAAG,EAAA,QAAQ,CAAO,CACnD,CACmB,EAC/B;AACN,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAqE,CAAC,EACxF,QAAQ,EACR,aAAa,GAChB,KAAI;AACD,IAAA,MAAM,EAAC,IAAI,EAAC,GAAGE,wCAAqB,EAAE,CAAC;IAEvC,QACIP,wCAACQ,eAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAEH,OAAC,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EACrE,EAAA,QAAQ,CACH,EACZ;AACN,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACrC,IAAA,OAAO,EAAE,gBAAgB;AAC5B,CAAA;;;;"}
1
+ {"version":3,"file":"PageLayout.js","sources":["../../../src/components/AsideHeader/components/PageLayout/PageLayout.tsx"],"sourcesContent":["import React, {PropsWithChildren, Suspense, useMemo} from 'react';\n\nimport {Content, ContentProps} from '../../../Content';\nimport {ASIDE_HEADER_COMPACT_WIDTH, ASIDE_HEADER_EXPANDED_WIDTH} from '../../../constants';\nimport {AsideHeaderContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {LayoutProps} from '../../types';\nimport {b} from '../../utils';\n\nimport '../../AsideHeader.scss';\n\nconst TopAlert = React.lazy(() =>\n import('../../../TopAlert').then((module) => ({default: module.TopAlert})),\n);\n\nexport interface PageLayoutProps extends PropsWithChildren<LayoutProps> {}\n\nconst Layout = ({compact, className, children, topAlert}: PageLayoutProps) => {\n const size = compact ? ASIDE_HEADER_COMPACT_WIDTH : ASIDE_HEADER_EXPANDED_WIDTH;\n const asideHeaderContextValue = useMemo(() => ({size, compact}), [compact, size]);\n\n return (\n <AsideHeaderContextProvider value={asideHeaderContextValue}>\n <div\n className={b({compact}, className)}\n style={{\n ...({'--gn-aside-header-size': `${size}px`} as React.CSSProperties),\n }}\n >\n {topAlert && (\n <Suspense fallback={null}>\n <TopAlert className={b('top-alert')} alert={topAlert} />\n </Suspense>\n )}\n <div className={b('pane-container')}>{children}</div>\n </div>\n </AsideHeaderContextProvider>\n );\n};\n\nconst ConnectedContent: React.FC<PropsWithChildren<Pick<ContentProps, 'renderContent'>>> = ({\n children,\n renderContent,\n}) => {\n const {size} = useAsideHeaderContext();\n\n return (\n <Content size={size} className={b('content')} renderContent={renderContent}>\n {children}\n </Content>\n );\n};\n\nconst PageLayout = Object.assign(Layout, {\n Content: ConnectedContent,\n});\n\nexport {PageLayout};\n"],"names":["ASIDE_HEADER_COMPACT_WIDTH","ASIDE_HEADER_EXPANDED_WIDTH","useMemo","AsideHeaderContextProvider","b","Suspense","useAsideHeaderContext","Content"],"mappings":";;;;;;;;;;;;;;AAUA,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MACxB,oDAAO,qBAAmB,KAAC,CAAC,IAAI,CAAC,CAAC,MAAM,MAAM,EAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAC,CAAC,CAAC,CAC7E;AAID,MAAM,MAAM,GAAG,CAAC,EAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAkB,KAAI;IACzE,MAAM,IAAI,GAAG,OAAO,GAAGA,oCAA0B,GAAGC,qCAA2B;IAC/E,MAAM,uBAAuB,GAAGC,aAAO,CAAC,OAAO,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAEjF,IAAA,QACI,KAAC,CAAA,aAAA,CAAAC,6CAA0B,EAAC,EAAA,KAAK,EAAE,uBAAuB,EAAA;AACtD,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAEC,OAAC,CAAC,EAAC,OAAO,EAAC,EAAE,SAAS,CAAC,EAClC,KAAK,oBACG,EAAC,wBAAwB,EAAE,CAAG,EAAA,IAAI,IAAI,EAAyB,CAAA,EAAA;AAGtE,YAAA,QAAQ,KACL,KAAA,CAAA,aAAA,CAACC,cAAQ,EAAC,EAAA,QAAQ,EAAE,IAAI,EAAA;AACpB,gBAAA,KAAA,CAAA,aAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAED,OAAC,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAA,CAAI,CACjD,CACd;AACD,YAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEA,OAAC,CAAC,gBAAgB,CAAC,EAAG,EAAA,QAAQ,CAAO,CACnD,CACmB;AAErC,CAAC;AAED,MAAM,gBAAgB,GAAqE,CAAC,EACxF,QAAQ,EACR,aAAa,GAChB,KAAI;AACD,IAAA,MAAM,EAAC,IAAI,EAAC,GAAGE,wCAAqB,EAAE;IAEtC,QACI,oBAACC,eAAO,EAAA,EAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAEH,OAAC,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,aAAa,EACrE,EAAA,QAAQ,CACH;AAElB,CAAC;AAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;AACrC,IAAA,OAAO,EAAE,gBAAgB;AAC5B,CAAA;;;;"}