@gravity-ui/navigation 5.0.0-beta.3 → 5.0.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 (395) hide show
  1. package/build/cjs/assets/icons/divider-collapsed-compact.svg.js +41 -0
  2. package/build/cjs/assets/icons/divider-collapsed-compact.svg.js.map +1 -0
  3. package/build/cjs/components/AsideHeader/AsideHeader.css +1 -1
  4. package/build/cjs/components/AsideHeader/AsideHeader.js +3 -3
  5. package/build/cjs/components/AsideHeader/AsideHeader.js.map +1 -1
  6. package/build/cjs/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  7. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +17 -4
  8. package/build/cjs/components/AsideHeader/AsideHeaderContext.js +10 -8
  9. package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  10. package/build/cjs/components/AsideHeader/FooterLayoutContext.d.ts +7 -0
  11. package/build/cjs/components/AsideHeader/FooterLayoutContext.js +10 -0
  12. package/build/cjs/components/AsideHeader/FooterLayoutContext.js.map +1 -0
  13. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  14. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +23 -15
  15. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  16. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  17. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +10 -5
  18. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  19. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +9 -0
  20. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +27 -0
  21. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +1 -0
  22. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +71 -0
  23. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +122 -0
  24. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +1 -1
  25. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +3 -1
  26. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +23 -22
  27. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +1 -1
  28. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  29. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +2 -1
  30. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -13
  31. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  32. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  33. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  34. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +11 -5
  35. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +63 -165
  36. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  37. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  38. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  39. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +25 -1
  40. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +7 -2
  41. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +26 -8
  42. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  43. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  44. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -0
  45. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +8 -0
  46. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +27 -0
  47. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -0
  48. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +8 -0
  49. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +1 -0
  50. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +1 -0
  51. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +21 -0
  52. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +146 -0
  53. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +1 -0
  54. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -2
  55. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +57 -7
  56. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  57. package/build/cjs/components/AsideHeader/components/FirstPanel.js +29 -9
  58. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
  59. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.css +1 -0
  60. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.d.ts +19 -0
  61. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js +95 -0
  62. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js.map +1 -0
  63. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +8 -0
  64. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +1 -0
  65. package/build/cjs/components/AsideHeader/components/FooterBar/constants.d.ts +1 -0
  66. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js +6 -0
  67. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js.map +1 -0
  68. package/build/cjs/components/AsideHeader/components/FooterBar/index.d.ts +1 -0
  69. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  70. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.d.ts +2 -0
  71. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +12 -1
  72. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  73. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  74. package/build/cjs/components/AsideHeader/components/Header.js +9 -6
  75. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
  76. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
  77. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +4 -3
  78. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  79. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
  80. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +4 -2
  81. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +12 -9
  82. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  83. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
  84. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  85. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -3
  86. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  87. package/build/cjs/components/AsideHeader/components/Panels.js +6 -3
  88. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
  89. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.d.ts +3 -1
  90. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js +34 -11
  91. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js.map +1 -1
  92. package/build/cjs/components/AsideHeader/i18n/en.json.js +4 -1
  93. package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -1
  94. package/build/cjs/components/AsideHeader/i18n/index.d.ts +4 -4
  95. package/build/cjs/components/AsideHeader/i18n/ru.json.js +4 -1
  96. package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
  97. package/build/cjs/components/AsideHeader/index.d.ts +3 -2
  98. package/build/cjs/components/AsideHeader/types.d.ts +30 -14
  99. package/build/cjs/components/AsideHeader/types.js.map +1 -1
  100. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +3 -2
  101. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +31 -9
  102. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  103. package/build/cjs/components/AsideHeader/utils/getGroupHeight.d.ts +1 -1
  104. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js +5 -5
  105. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js.map +1 -1
  106. package/build/cjs/components/Footer/desktop/Footer.js +1 -1
  107. package/build/cjs/components/Footer/desktop/Footer.js.map +1 -1
  108. package/build/cjs/components/Footer/mobile/Footer.js +1 -1
  109. package/build/cjs/components/Footer/mobile/Footer.js.map +1 -1
  110. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +6 -4
  111. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +4 -7
  112. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  113. package/build/cjs/components/Logo/Logo.css +1 -1
  114. package/build/cjs/components/Logo/Logo.d.ts +7 -3
  115. package/build/cjs/components/Logo/Logo.js +9 -6
  116. package/build/cjs/components/Logo/Logo.js.map +1 -1
  117. package/build/cjs/components/Logo/Logo.module.scss.js +1 -1
  118. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +4 -8
  119. package/build/cjs/components/MobileHeader/MobileHeader.js +24 -20
  120. package/build/cjs/components/MobileHeader/MobileHeader.js.map +1 -1
  121. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
  122. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
  123. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
  124. package/build/cjs/components/MobileLogo/MobileLogo.d.ts +1 -1
  125. package/build/cjs/components/MobileLogo/MobileLogo.js +2 -2
  126. package/build/cjs/components/MobileLogo/MobileLogo.js.map +1 -1
  127. package/build/cjs/components/Settings/Settings.css +1 -1
  128. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
  129. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
  130. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
  131. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
  132. package/build/cjs/components/constants.d.ts +6 -2
  133. package/build/cjs/components/constants.js +11 -3
  134. package/build/cjs/components/constants.js.map +1 -1
  135. package/build/cjs/components/types.d.ts +11 -6
  136. package/build/cjs/components/utils/getCollapsedWidth.d.ts +1 -0
  137. package/build/cjs/components/utils/getCollapsedWidth.js +10 -0
  138. package/build/cjs/components/utils/getCollapsedWidth.js.map +1 -0
  139. package/build/cjs/index.js +4 -0
  140. package/build/cjs/index.js.map +1 -1
  141. package/build/esm/assets/icons/divider-collapsed-compact.svg.js +18 -0
  142. package/build/esm/assets/icons/divider-collapsed-compact.svg.js.map +1 -0
  143. package/build/esm/components/AsideHeader/AsideHeader.css +1 -1
  144. package/build/esm/components/AsideHeader/AsideHeader.js +3 -3
  145. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
  146. package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  147. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +17 -4
  148. package/build/esm/components/AsideHeader/AsideHeaderContext.js +10 -9
  149. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  150. package/build/esm/components/AsideHeader/FooterLayoutContext.d.ts +7 -0
  151. package/build/esm/components/AsideHeader/FooterLayoutContext.js +7 -0
  152. package/build/esm/components/AsideHeader/FooterLayoutContext.js.map +1 -0
  153. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  154. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +24 -16
  155. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  156. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  157. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +10 -5
  158. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  159. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +9 -0
  160. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +25 -0
  161. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +1 -0
  162. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +71 -0
  163. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +117 -1
  164. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +1 -1
  165. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +3 -1
  166. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +23 -22
  167. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +1 -1
  168. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  169. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +2 -1
  170. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -13
  171. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  172. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  173. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  174. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +11 -5
  175. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +62 -164
  176. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  177. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  178. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  179. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +25 -1
  180. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +7 -2
  181. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +26 -8
  182. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  183. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  184. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -0
  185. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +8 -0
  186. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +25 -0
  187. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -0
  188. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +4 -0
  189. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +1 -0
  190. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +1 -0
  191. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +21 -0
  192. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +144 -0
  193. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +1 -0
  194. package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +4 -2
  195. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +57 -9
  196. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  197. package/build/esm/components/AsideHeader/components/FirstPanel.js +30 -10
  198. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
  199. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.css +1 -0
  200. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.d.ts +19 -0
  201. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js +93 -0
  202. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js.map +1 -0
  203. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +4 -0
  204. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +1 -0
  205. package/build/esm/components/AsideHeader/components/FooterBar/constants.d.ts +1 -0
  206. package/build/esm/components/AsideHeader/components/FooterBar/constants.js +4 -0
  207. package/build/esm/components/AsideHeader/components/FooterBar/constants.js.map +1 -0
  208. package/build/esm/components/AsideHeader/components/FooterBar/index.d.ts +1 -0
  209. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  210. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.d.ts +2 -0
  211. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +12 -1
  212. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  213. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  214. package/build/esm/components/AsideHeader/components/Header.js +10 -7
  215. package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
  216. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +2 -0
  217. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +5 -4
  218. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  219. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +2 -0
  220. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +4 -2
  221. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +13 -10
  222. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  223. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +2 -0
  224. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  225. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -3
  226. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  227. package/build/esm/components/AsideHeader/components/Panels.js +6 -3
  228. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
  229. package/build/esm/components/AsideHeader/hooks/useIsExpanded.d.ts +3 -1
  230. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js +35 -12
  231. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js.map +1 -1
  232. package/build/esm/components/AsideHeader/i18n/en.json.js +4 -2
  233. package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -1
  234. package/build/esm/components/AsideHeader/i18n/index.d.ts +4 -4
  235. package/build/esm/components/AsideHeader/i18n/ru.json.js +4 -2
  236. package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
  237. package/build/esm/components/AsideHeader/index.d.ts +3 -2
  238. package/build/esm/components/AsideHeader/types.d.ts +30 -14
  239. package/build/esm/components/AsideHeader/types.js.map +1 -1
  240. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +3 -2
  241. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +31 -9
  242. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  243. package/build/esm/components/AsideHeader/utils/getGroupHeight.d.ts +1 -1
  244. package/build/esm/components/AsideHeader/utils/getGroupHeight.js +6 -6
  245. package/build/esm/components/AsideHeader/utils/getGroupHeight.js.map +1 -1
  246. package/build/esm/components/Footer/desktop/Footer.js +1 -1
  247. package/build/esm/components/Footer/desktop/Footer.js.map +1 -1
  248. package/build/esm/components/Footer/mobile/Footer.js +1 -1
  249. package/build/esm/components/Footer/mobile/Footer.js.map +1 -1
  250. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +6 -4
  251. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +4 -7
  252. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  253. package/build/esm/components/Logo/Logo.css +1 -1
  254. package/build/esm/components/Logo/Logo.d.ts +7 -3
  255. package/build/esm/components/Logo/Logo.js +9 -6
  256. package/build/esm/components/Logo/Logo.js.map +1 -1
  257. package/build/esm/components/Logo/Logo.module.scss.js +1 -1
  258. package/build/esm/components/MobileHeader/MobileHeader.d.ts +4 -8
  259. package/build/esm/components/MobileHeader/MobileHeader.js +25 -21
  260. package/build/esm/components/MobileHeader/MobileHeader.js.map +1 -1
  261. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.d.ts +2 -2
  262. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js +2 -2
  263. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -1
  264. package/build/esm/components/MobileLogo/MobileLogo.d.ts +1 -1
  265. package/build/esm/components/MobileLogo/MobileLogo.js +2 -2
  266. package/build/esm/components/MobileLogo/MobileLogo.js.map +1 -1
  267. package/build/esm/components/Settings/Settings.css +1 -1
  268. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.css +1 -1
  269. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js +5 -1
  270. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -1
  271. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.module.scss.js +1 -1
  272. package/build/esm/components/constants.d.ts +6 -2
  273. package/build/esm/components/constants.js +7 -3
  274. package/build/esm/components/constants.js.map +1 -1
  275. package/build/esm/components/types.d.ts +11 -6
  276. package/build/esm/components/utils/getCollapsedWidth.d.ts +1 -0
  277. package/build/esm/components/utils/getCollapsedWidth.js +8 -0
  278. package/build/esm/components/utils/getCollapsedWidth.js.map +1 -0
  279. package/build/esm/index.js +2 -1
  280. package/build/esm/index.js.map +1 -1
  281. package/codemods/bin/cli.js +19 -6
  282. package/codemods/transforms/compactToIsExpanded.ts +345 -0
  283. package/codemods/transforms/compactToPinned.ts +135 -0
  284. package/codemods/transforms/v5.ts +36 -0
  285. package/package.json +2 -2
  286. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  287. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  288. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  289. package/build/cjs/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
  290. package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
  291. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
  292. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  293. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  294. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -17
  295. package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
  296. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
  297. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -16
  298. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
  299. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
  300. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
  301. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -34
  302. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
  303. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -8
  304. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
  305. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
  306. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -29
  307. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
  308. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
  309. package/build/cjs/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  310. package/build/cjs/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
  311. package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  312. package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  313. package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  314. package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
  315. package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  316. package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  317. package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  318. package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
  319. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  320. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  321. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  322. package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
  323. package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +0 -7
  324. package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
  325. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  326. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  327. package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
  328. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  329. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  330. package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
  331. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  332. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  333. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
  334. package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
  335. package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  336. package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
  337. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  338. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  339. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  340. package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
  341. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  342. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  343. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  344. package/build/esm/components/ActionBar/__stories__/ActionBarStretchGroupShowcase.d.ts +0 -2
  345. package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +0 -5
  346. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -23
  347. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  348. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  349. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -17
  350. package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +0 -2
  351. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.d.ts +0 -2
  352. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js +0 -14
  353. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItems.js.map +0 -1
  354. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +0 -9
  355. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +0 -9
  356. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +0 -32
  357. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +0 -1
  358. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +0 -4
  359. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +0 -1
  360. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +0 -24
  361. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +0 -26
  362. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +0 -1
  363. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +0 -2
  364. package/build/esm/components/AsideHeader/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  365. package/build/esm/components/AsideHeader/components/FooterItem/__tests__/helpersPlaywright.d.ts +0 -2
  366. package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  367. package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  368. package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  369. package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +0 -2
  370. package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  371. package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  372. package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  373. package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +0 -2
  374. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  375. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  376. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  377. package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +0 -2
  378. package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +0 -7
  379. package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +0 -2
  380. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  381. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  382. package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +0 -2
  383. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  384. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  385. package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +0 -2
  386. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  387. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  388. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
  389. package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +0 -2
  390. package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  391. package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +0 -2
  392. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  393. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  394. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  395. package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +0 -2
@@ -0,0 +1,2 @@
1
+ .AsideHeader-module__g-root___EuNRw{--gn-aside-top-panel-height:0px}
2
+ .AsideHeader-module__gn-aside-header___Z0Sa7{--gn-aside-header-min-width:56px;--_--item-height:36px;--_--item-margin-inline:10px;--gn-aside-header-item-expanded-radius:6px;--gn-aside-header-header-divider-height:29px;--_--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%}.AsideHeader-module__gn-aside-header__aside___AyP0y{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);transition:width .15s ease-in-out;width:inherit;z-index:var(--gn-aside-header-z-index,100)}.AsideHeader-module__gn-aside-header__aside___AyP0y: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}.AsideHeader-module__gn-aside-header__aside-popup-anchor___N3tgM{inset:0;position:absolute;z-index:1}.AsideHeader-module__gn-aside-header__aside-content___w5GOS{--gradient-height:334px;display:flex;flex-direction:column;height:inherit;overflow:hidden;padding-top:var(--gn-aside-header-padding-top);position:relative;user-select:none;width:inherit;z-index:2}.AsideHeader-module__gn-aside-header__aside-content___w5GOS>.AsideHeader-module__gn-aside-header-logo___6MdXx{margin:8px 0}.AsideHeader-module__gn-aside-header__aside-content_with-decoration___UsCye{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))}.AsideHeader-module__gn-aside-header__aside-custom-background___-bqdE{bottom:0;display:flex;position:absolute;top:0;width:var(--gn-aside-header-size);z-index:-1}.AsideHeader-module__gn-aside-header__aside_compact-mode___x4hPl{--_--item-height:28px;--_--item-margin-inline:6px;--_--item-collapsed-radius:4px;--gn-aside-header-item-expanded-radius:4px;--gn-aside-header-header-divider-height:22px;--gn-aside-header-min-width:40px}.AsideHeader-module__gn-aside-header_collapsed___Mnljj .AsideHeader-module__gn-aside-header__aside___AyP0y{background-color:var(--gn-aside-header-collapsed-background-color,var(--gn-aside-header-background-color,var(--_--background-color)))}.AsideHeader-module__gn-aside-header_collapsed___Mnljj .AsideHeader-module__gn-aside-header__aside-content___w5GOS{background:transparent}.AsideHeader-module__gn-aside-header__aside-transition-enter-active___nVB3u, .AsideHeader-module__gn-aside-header__aside-transition-enter-done___zfhNX, .AsideHeader-module__gn-aside-header__aside-transition-enter___QJvnr, .AsideHeader-module__gn-aside-header__aside-transition-exit-active___NzI3l, .AsideHeader-module__gn-aside-header__aside-transition-exit___n28FX{left:0;position:fixed;top:0}.AsideHeader-module__gn-aside-header__aside-transition-enter-active___nVB3u+.AsideHeader-module__gn-aside-header__content___4-mBl, .AsideHeader-module__gn-aside-header__aside-transition-enter-done___zfhNX+.AsideHeader-module__gn-aside-header__content___4-mBl, .AsideHeader-module__gn-aside-header__aside-transition-enter___QJvnr+.AsideHeader-module__gn-aside-header__content___4-mBl, .AsideHeader-module__gn-aside-header__aside-transition-exit-active___NzI3l+.AsideHeader-module__gn-aside-header__content___4-mBl, .AsideHeader-module__gn-aside-header__aside-transition-exit___n28FX+.AsideHeader-module__gn-aside-header__content___4-mBl{padding-left:var(--gn-aside-header-min-width)}.AsideHeader-module__gn-aside-header__content___4-mBl{margin-top:var(--gn-top-alert-height,0);width:100%;z-index:var(--gn-aside-header-content-z-index,95)}.AsideHeader-module__gn-aside-header__content_expanded-by-hover___b0Rcg{padding-left:var(--gn-aside-header-min-width)}.AsideHeader-module__gn-aside-header__header___m5aIU{background-color:var(--gn-aside-top-decoration-background-color);box-sizing:border-box;flex:none;padding-bottom:25px;padding-top:8px;position:relative;width:100%;z-index:1}.AsideHeader-module__gn-aside-header__header___m5aIU .AsideHeader-module__gn-aside-header__header-divider___lIG-e{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}.AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:before{background-color:var(--gn-aside-top-divider-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}.AsideHeader-module__gn-aside-header__header___m5aIU: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}.AsideHeader-module__gn-aside-header_collapsed___Mnljj .AsideHeader-module__gn-aside-header__header___m5aIU:before, .AsideHeader-module__gn-aside-header_collapsed___Mnljj .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO .AsideHeader-module__gn-aside-header__header-divider___lIG-e{display:block}.AsideHeader-module__gn-aside-header_collapsed___Mnljj .AsideHeader-module__gn-aside-header__header_with-decoration___3dTJO:after{display:none}.AsideHeader-module__gn-aside-header__logo-button___5u2iH{margin-bottom:2px}.AsideHeader-module__gn-aside-header__logo-container___pK10O{align-items:center;display:flex;justify-content:space-between;margin-inline:var(--_--item-margin-inline);margin-bottom:2px}.AsideHeader-module__gn-aside-header__logo-container_without-logo___pSqqc{border-bottom:1px solid var(--g-color-line-generic);margin-bottom:var(--g-spacing-2);padding-bottom:var(--g-spacing-2)}.AsideHeader-module__gn-aside-header__logo-button___5u2iH .AsideHeader-module__gn-aside-header__logo-icon-place___3Oo9i{height:var(--_--item-height);width:var(--_--item-height)}.AsideHeader-module__gn-aside-header__menu-items___SOI2-{flex-grow:1}.AsideHeader-module__gn-aside-header__menu-item___q2y31:not(:has([data-type=action])){margin-inline:var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__footer___vmoTl{background-color:var(--gn-aside-bottom-background-color);display:flex;flex-direction:column;flex-shrink:0;margin:var(--g-spacing-2) var(--_--item-margin-inline)}.AsideHeader-module__gn-aside-header__footer_horizontal___QTq4U{margin:0}.AsideHeader-module__gn-aside-header__panels___-fdu4{z-index:var(--gn-aside-header-panel-z-index,98)}.AsideHeader-module__gn-aside-header__panels___-fdu4, .AsideHeader-module__gn-aside-header__panels___-fdu4.g-drawer{inset:var(--gn-top-alert-height,0) 0 0;position:fixed}.AsideHeader-module__gn-aside-header__panel___HywH6, .AsideHeader-module__gn-aside-header__panel___HywH6.g-drawer__item{bottom:0;height:auto;top:var(--gn-top-alert-height,0)}.AsideHeader-module__gn-aside-header__pane-container___y-v2e{display:flex;flex-direction:row;outline:none;overflow:visible;user-select:text}.AsideHeader-module__gn-aside-header__top-alert___hY12r{--gn-drawer-z-index:var(--gn-aside-header-panel-z-index,98);background:var(--g-color-base-background);position:fixed;top:0;width:100%}.AsideHeader-module__gn-aside-header__pin-button___M61Ht{margin-left:auto}.AsideHeader-module__gn-aside-header__pin-button_collapsed___mwHr1{margin-right:auto}.AsideHeader-module__gn-aside-header__panel-content___Y2lCR{height:100%}.AsideHeader-module__gn-aside-header__all-pages-panel___O94IU{width:fit-content!important}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
2
  import { AsideHeaderProps } from '../../types';
3
- type Props = Omit<AsideHeaderProps, 'compact' | 'size'>;
3
+ type Props = Omit<AsideHeaderProps, 'pinned' | 'size'>;
4
4
  export declare const PageLayoutAside: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
5
5
  export {};
@@ -1,3 +1,4 @@
1
+ import './PageLayoutAside.css';
1
2
  'use strict';
2
3
 
3
4
  var React = require('react');
@@ -6,12 +7,13 @@ var AsideHeaderContext = require('../../AsideHeaderContext.js');
6
7
  var useAsideHeaderInnerContextValue = require('../../useAsideHeaderInnerContextValue.js');
7
8
 
8
9
  const PageLayoutAside = React.forwardRef((props, ref) => {
9
- const { size, compact, isExpanded, onExpand, onFold } = AsideHeaderContext.useAsideHeaderContext();
10
+ const { size, pinned, isExpanded, onExpand, onFold, setCollapseBlocker } = AsideHeaderContext.useAsideHeaderContext();
10
11
  const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue.useAsideHeaderInnerContextValue(Object.assign({ size,
11
- compact,
12
+ pinned,
12
13
  isExpanded,
13
14
  onExpand,
14
- onFold }, props));
15
+ onFold,
16
+ setCollapseBlocker }, props));
15
17
  return (React.createElement(AsideHeaderContext.AsideHeaderInnerContextProvider, { value: asideHeaderInnerContextValue },
16
18
  React.createElement(FirstPanel.FirstPanel, { ref: ref })));
17
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PageLayoutAside.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/PageLayoutAside.tsx"],"sourcesContent":["import React from 'react';\n\nimport {FirstPanel} from '..';\nimport {AsideHeaderInnerContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {AsideHeaderProps} from '../../types';\nimport {useAsideHeaderInnerContextValue} from '../../useAsideHeaderInnerContextValue';\n\ntype Props = Omit<AsideHeaderProps, 'compact' | 'size'>;\n\nexport const PageLayoutAside = React.forwardRef<HTMLDivElement, Props>((props, ref) => {\n const {size, compact, isExpanded, onExpand, onFold} = useAsideHeaderContext();\n\n const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue({\n size,\n compact,\n isExpanded,\n onExpand,\n onFold,\n ...props,\n });\n\n return (\n <AsideHeaderInnerContextProvider value={asideHeaderInnerContextValue}>\n <FirstPanel ref={ref} />\n </AsideHeaderInnerContextProvider>\n );\n});\n\nPageLayoutAside.displayName = 'PageLayoutAside';\n"],"names":["useAsideHeaderContext","useAsideHeaderInnerContextValue","AsideHeaderInnerContextProvider","FirstPanel"],"mappings":";;;;;;;AASO,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAwB,CAAC,KAAK,EAAE,GAAG,KAAI;AAClF,IAAA,MAAM,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAC,GAAGA,wCAAqB,EAAE;AAE7E,IAAA,MAAM,4BAA4B,GAAGC,+DAA+B,CAAA,MAAA,CAAA,MAAA,CAAA,EAChE,IAAI;QACJ,OAAO;QACP,UAAU;QACV,QAAQ;QACR,MAAM,EAAA,EACH,KAAK,CAAA,CACV;AAEF,IAAA,QACI,KAAC,CAAA,aAAA,CAAAC,kDAA+B,EAAC,EAAA,KAAK,EAAE,4BAA4B,EAAA;QAChE,KAAC,CAAA,aAAA,CAAAC,qBAAU,IAAC,GAAG,EAAE,GAAG,EAAI,CAAA,CACM;AAE1C,CAAC;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
1
+ {"version":3,"file":"PageLayoutAside.js","sources":["../../../../../../../src/components/AsideHeader/components/PageLayout/PageLayoutAside.tsx"],"sourcesContent":["import React from 'react';\n\nimport {FirstPanel} from '..';\nimport {AsideHeaderInnerContextProvider, useAsideHeaderContext} from '../../AsideHeaderContext';\nimport {AsideHeaderProps} from '../../types';\nimport {useAsideHeaderInnerContextValue} from '../../useAsideHeaderInnerContextValue';\n\ntype Props = Omit<AsideHeaderProps, 'pinned' | 'size'>;\n\nexport const PageLayoutAside = React.forwardRef<HTMLDivElement, Props>((props, ref) => {\n const {size, pinned, isExpanded, onExpand, onFold, setCollapseBlocker} =\n useAsideHeaderContext();\n\n const asideHeaderInnerContextValue = useAsideHeaderInnerContextValue({\n size,\n pinned,\n isExpanded,\n onExpand,\n onFold,\n setCollapseBlocker,\n ...props,\n });\n\n return (\n <AsideHeaderInnerContextProvider value={asideHeaderInnerContextValue}>\n <FirstPanel ref={ref} />\n </AsideHeaderInnerContextProvider>\n );\n});\n\nPageLayoutAside.displayName = 'PageLayoutAside';\n"],"names":["useAsideHeaderContext","useAsideHeaderInnerContextValue","AsideHeaderInnerContextProvider","FirstPanel"],"mappings":";;;;;;;AASO,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAwB,CAAC,KAAK,EAAE,GAAG,KAAI;AAClF,IAAA,MAAM,EAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAC,GAClEA,wCAAqB,EAAE;AAE3B,IAAA,MAAM,4BAA4B,GAAGC,+DAA+B,CAAA,MAAA,CAAA,MAAA,CAAA,EAChE,IAAI;QACJ,MAAM;QACN,UAAU;QACV,QAAQ;QACR,MAAM;QACN,kBAAkB,EAAA,EACf,KAAK,CAAA,CACV;AAEF,IAAA,QACI,KAAC,CAAA,aAAA,CAAAC,kDAA+B,EAAC,EAAA,KAAK,EAAE,4BAA4B,EAAA;QAChE,KAAC,CAAA,aAAA,CAAAC,qBAAU,IAAC,GAAG,EAAE,GAAG,EAAI,CAAA,CACM;AAE1C,CAAC;AAED,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
@@ -1,12 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ var tslib_es6 = require('../../../node_modules/tslib/tslib.es6.js');
3
4
  var React = require('react');
4
5
  var uikit = require('@gravity-ui/uikit');
5
6
  var AsideHeaderContext = require('../AsideHeaderContext.js');
6
7
  var utils = require('../utils.js');
7
8
 
8
9
  const Panels = () => {
9
- const { panelItems, size, onClosePanel, onExpand, onFold } = AsideHeaderContext.useAsideHeaderInnerContext();
10
+ const { panelItems, size, onClosePanel, onFold } = AsideHeaderContext.useAsideHeaderInnerContext();
10
11
  const handleVeilClick = React.useCallback(() => {
11
12
  onFold === null || onFold === undefined ? undefined : onFold();
12
13
  onClosePanel === null || onClosePanel === undefined ? undefined : onClosePanel();
@@ -21,8 +22,10 @@ const Panels = () => {
21
22
  }
22
23
  return;
23
24
  }, [handleVeilClick, onClosePanel]);
24
- return panelItems ? (React.createElement(React.Fragment, null, panelItems.map((item) => (React.createElement(uikit.Drawer, { key: item.id, className: utils.b('panels'), open: item.visible, onOpenChange: handleOpenChange, style: { left: size }, contentClassName: utils.b('panel', item.className) },
25
- React.createElement("div", { onMouseEnter: onExpand, className: utils.b('panel-content') }, item.content)))))) : null;
25
+ return panelItems ? (React.createElement(React.Fragment, null, panelItems.map((_a) => {
26
+ var { id, className, children } = _a, rest = tslib_es6.__rest(_a, ["id", "className", "children"]);
27
+ return (React.createElement(uikit.Drawer, Object.assign({}, rest, { key: id, className: utils.b('panels'), onOpenChange: handleOpenChange, style: { left: size }, contentClassName: utils.b('panel', className) }), children));
28
+ }))) : null;
26
29
  };
27
30
 
28
31
  exports.Panels = Panels;
@@ -1 +1 @@
1
- {"version":3,"file":"Panels.js","sources":["../../../../../../src/components/AsideHeader/components/Panels.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\n\nimport {Drawer, DrawerProps} from '@gravity-ui/uikit';\n\nimport {useAsideHeaderInnerContext} from '../AsideHeaderContext';\nimport {b} from '../utils';\n\nexport const Panels: React.FC = () => {\n const {panelItems, size, onClosePanel, onExpand, onFold} = useAsideHeaderInnerContext();\n\n const handleVeilClick = useCallback(() => {\n onFold?.();\n onClosePanel?.();\n }, [onClosePanel, onFold]);\n\n const handleOpenChange: Required<DrawerProps>['onOpenChange'] = useCallback(\n (open, _event, reason) => {\n if (reason === 'outside-press') {\n handleVeilClick();\n return;\n }\n\n if (!open) {\n onClosePanel?.();\n }\n\n return;\n },\n [handleVeilClick, onClosePanel],\n );\n\n return panelItems ? (\n <React.Fragment>\n {panelItems.map((item) => (\n <Drawer\n key={item.id}\n className={b('panels')}\n open={item.visible}\n onOpenChange={handleOpenChange}\n style={{left: size}}\n contentClassName={b('panel', item.className)}\n >\n <div onMouseEnter={onExpand} className={b('panel-content')}>\n {item.content}\n </div>\n </Drawer>\n ))}\n </React.Fragment>\n ) : null;\n};\n"],"names":["useAsideHeaderInnerContext","useCallback","Drawer","b"],"mappings":";;;;;;;AAOO,MAAM,MAAM,GAAa,MAAK;AACjC,IAAA,MAAM,EAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAC,GAAGA,6CAA0B,EAAE;AAEvF,IAAA,MAAM,eAAe,GAAGC,iBAAW,CAAC,MAAK;AACrC,QAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,SAAA,GAAA,SAAA,GAAA,MAAM,EAAI;AACV,QAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,SAAA,GAAA,SAAA,GAAA,YAAY,EAAI;AACpB,KAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAE1B,MAAM,gBAAgB,GAA0CA,iBAAW,CACvE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,KAAI;AACrB,QAAA,IAAI,MAAM,KAAK,eAAe,EAAE;AAC5B,YAAA,eAAe,EAAE;YACjB;;QAGJ,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,SAAA,GAAA,SAAA,GAAA,YAAY,EAAI;;QAGpB;AACJ,KAAC,EACD,CAAC,eAAe,EAAE,YAAY,CAAC,CAClC;AAED,IAAA,OAAO,UAAU,IACb,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,QAAQ,EAAA,IAAA,EACV,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,MACjB,KAAC,CAAA,aAAA,CAAAC,YAAM,EACH,EAAA,GAAG,EAAE,IAAI,CAAC,EAAE,EACZ,SAAS,EAAEC,OAAC,CAAC,QAAQ,CAAC,EACtB,IAAI,EAAE,IAAI,CAAC,OAAO,EAClB,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,EACnB,gBAAgB,EAAEA,OAAC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAA;QAE5C,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAEA,OAAC,CAAC,eAAe,CAAC,EACrD,EAAA,IAAI,CAAC,OAAO,CACX,CACD,CACZ,CAAC,CACW,IACjB,IAAI;AACZ;;;;"}
1
+ {"version":3,"file":"Panels.js","sources":["../../../../../../src/components/AsideHeader/components/Panels.tsx"],"sourcesContent":["import React, {useCallback} from 'react';\n\nimport {Drawer, DrawerProps} from '@gravity-ui/uikit';\n\nimport {useAsideHeaderInnerContext} from '../AsideHeaderContext';\nimport {b} from '../utils';\n\nexport const Panels: React.FC = () => {\n const {panelItems, size, onClosePanel, onFold} = useAsideHeaderInnerContext();\n\n const handleVeilClick = useCallback(() => {\n onFold?.();\n onClosePanel?.();\n }, [onClosePanel, onFold]);\n\n const handleOpenChange: Required<DrawerProps>['onOpenChange'] = useCallback(\n (open, _event, reason) => {\n if (reason === 'outside-press') {\n handleVeilClick();\n return;\n }\n\n if (!open) {\n onClosePanel?.();\n }\n\n return;\n },\n [handleVeilClick, onClosePanel],\n );\n\n return panelItems ? (\n <React.Fragment>\n {panelItems.map(({id, className, children, ...rest}) => (\n <Drawer\n {...rest}\n key={id}\n className={b('panels')}\n onOpenChange={handleOpenChange}\n style={{left: size}}\n contentClassName={b('panel', className)}\n >\n {children}\n </Drawer>\n ))}\n </React.Fragment>\n ) : null;\n};\n"],"names":["useAsideHeaderInnerContext","useCallback","__rest","Drawer","b"],"mappings":";;;;;;;;AAOO,MAAM,MAAM,GAAa,MAAK;AACjC,IAAA,MAAM,EAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAC,GAAGA,6CAA0B,EAAE;AAE7E,IAAA,MAAM,eAAe,GAAGC,iBAAW,CAAC,MAAK;AACrC,QAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,SAAA,GAAA,SAAA,GAAA,MAAM,EAAI;AACV,QAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,SAAA,GAAA,SAAA,GAAA,YAAY,EAAI;AACpB,KAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAE1B,MAAM,gBAAgB,GAA0CA,iBAAW,CACvE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,KAAI;AACrB,QAAA,IAAI,MAAM,KAAK,eAAe,EAAE;AAC5B,YAAA,eAAe,EAAE;YACjB;;QAGJ,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,YAAY,KAAZ,IAAA,IAAA,YAAY,KAAZ,SAAA,GAAA,SAAA,GAAA,YAAY,EAAI;;QAGpB;AACJ,KAAC,EACD,CAAC,eAAe,EAAE,YAAY,CAAC,CAClC;AAED,IAAA,OAAO,UAAU,IACb,oBAAC,KAAK,CAAC,QAAQ,EAAA,IAAA,EACV,UAAU,CAAC,GAAG,CAAC,CAAC,EAAkC,KAAI;YAAtC,EAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,OAAU,EAAL,IAAI,GAAjCC,gBAAA,CAAA,EAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,UAAA,CAAkC,CAAD;AAAM,QAAA,QACpD,KAAC,CAAA,aAAA,CAAAC,YAAM,oBACC,IAAI,EAAA,EACR,GAAG,EAAE,EAAE,EACP,SAAS,EAAEC,OAAC,CAAC,QAAQ,CAAC,EACtB,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,EACnB,gBAAgB,EAAEA,OAAC,CAAC,OAAO,EAAE,SAAS,CAAC,KAEtC,QAAQ,CACJ;AACZ,KAAA,CAAC,CACW,IACjB,IAAI;AACZ;;;;"}
@@ -1,7 +1,9 @@
1
+ import { SetCollapseBlocker } from '../types';
1
2
  interface UseIsExpandedResult {
2
3
  isExpanded: boolean;
3
4
  onExpand: () => void;
4
5
  onFold: () => void;
6
+ setCollapseBlocker: SetCollapseBlocker;
5
7
  }
6
- export declare const useIsExpanded: (externalCompact: boolean) => UseIsExpandedResult;
8
+ export declare const useIsExpanded: (externalPinned: boolean) => UseIsExpandedResult;
7
9
  export {};
@@ -4,39 +4,62 @@ var React = require('react');
4
4
  var constants = require('../../constants.js');
5
5
  var useDelayedToggle = require('./useDelayedToggle.js');
6
6
 
7
- const useIsExpanded = (externalCompact) => {
8
- const [isExpanded, setIsExpanded] = React.useState(!externalCompact);
7
+ const useIsExpanded = (externalPinned) => {
8
+ const [isExpanded, setIsExpanded] = React.useState(externalPinned);
9
9
  const [isMouseInside, setIsMouseInside] = React.useState(false);
10
+ const collapseBlockerCountRef = React.useRef(0);
11
+ const pendingFoldRef = React.useRef(false);
10
12
  React.useEffect(() => {
11
- if (externalCompact && isExpanded) {
13
+ if (!externalPinned && isExpanded) {
12
14
  return;
13
15
  }
14
- setIsExpanded(!externalCompact);
15
- // We need to run this effect only when externalCompact changes
16
+ setIsExpanded(externalPinned);
17
+ // We need to run this effect only when externalPinned changes
16
18
  // eslint-disable-next-line react-hooks/exhaustive-deps
17
- }, [externalCompact]);
19
+ }, [externalPinned]);
18
20
  const delayedShouldExpand = useDelayedToggle.useDelayedToggle(isMouseInside, {
19
21
  enableDelay: constants.ASIDE_HEADER_EXPAND_DELAY,
20
22
  disableDelay: constants.ASIDE_HEADER_EXPAND_TRANSITION_DELAY,
21
23
  });
22
24
  // Update isExpanded based on hover
23
25
  React.useEffect(() => {
24
- if (externalCompact) {
26
+ if (!externalPinned) {
25
27
  setIsExpanded(delayedShouldExpand);
26
28
  }
27
- // We need to run this effect only when delayedShouldExpand changes
29
+ // Re-run when externalPinned changes so we sync to hover state after pin/unpin
28
30
  // eslint-disable-next-line react-hooks/exhaustive-deps
29
- }, [delayedShouldExpand]);
31
+ }, [delayedShouldExpand, externalPinned]);
32
+ const performFold = React.useCallback(() => {
33
+ setIsMouseInside(false);
34
+ }, []);
30
35
  const handleExpand = React.useCallback(() => {
36
+ pendingFoldRef.current = false;
31
37
  setIsMouseInside(true);
32
38
  }, []);
33
39
  const handleFold = React.useCallback(() => {
34
- setIsMouseInside(false);
35
- }, []);
40
+ if (collapseBlockerCountRef.current > 0) {
41
+ pendingFoldRef.current = true;
42
+ return;
43
+ }
44
+ performFold();
45
+ }, [performFold]);
46
+ const setCollapseBlocker = React.useCallback((isBlocked) => {
47
+ if (isBlocked) {
48
+ collapseBlockerCountRef.current += 1;
49
+ }
50
+ else if (collapseBlockerCountRef.current > 0) {
51
+ collapseBlockerCountRef.current -= 1;
52
+ if (collapseBlockerCountRef.current === 0 && pendingFoldRef.current) {
53
+ pendingFoldRef.current = false;
54
+ performFold();
55
+ }
56
+ }
57
+ }, [performFold]);
36
58
  return {
37
59
  isExpanded,
38
60
  onExpand: handleExpand,
39
61
  onFold: handleFold,
62
+ setCollapseBlocker,
40
63
  };
41
64
  };
42
65
 
@@ -1 +1 @@
1
- {"version":3,"file":"useIsExpanded.js","sources":["../../../../../../src/components/AsideHeader/hooks/useIsExpanded.ts"],"sourcesContent":["import {useCallback, useEffect, useState} from 'react';\n\nimport {ASIDE_HEADER_EXPAND_DELAY, ASIDE_HEADER_EXPAND_TRANSITION_DELAY} from '../../constants';\n\nimport {useDelayedToggle} from './useDelayedToggle';\n\ninterface UseIsExpandedResult {\n isExpanded: boolean;\n onExpand: () => void;\n onFold: () => void;\n}\n\nexport const useIsExpanded = (externalCompact: boolean): UseIsExpandedResult => {\n const [isExpanded, setIsExpanded] = useState(!externalCompact);\n const [isMouseInside, setIsMouseInside] = useState(false);\n\n useEffect(() => {\n if (externalCompact && isExpanded) {\n return;\n }\n\n setIsExpanded(!externalCompact);\n // We need to run this effect only when externalCompact changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [externalCompact]);\n\n const delayedShouldExpand = useDelayedToggle(isMouseInside, {\n enableDelay: ASIDE_HEADER_EXPAND_DELAY,\n disableDelay: ASIDE_HEADER_EXPAND_TRANSITION_DELAY,\n });\n\n // Update isExpanded based on hover\n useEffect(() => {\n if (externalCompact) {\n setIsExpanded(delayedShouldExpand);\n }\n // We need to run this effect only when delayedShouldExpand changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [delayedShouldExpand]);\n\n const handleExpand = useCallback(() => {\n setIsMouseInside(true);\n }, []);\n\n const handleFold = useCallback(() => {\n setIsMouseInside(false);\n }, []);\n\n return {\n isExpanded,\n onExpand: handleExpand,\n onFold: handleFold,\n };\n};\n"],"names":["useState","useEffect","useDelayedToggle","ASIDE_HEADER_EXPAND_DELAY","ASIDE_HEADER_EXPAND_TRANSITION_DELAY","useCallback"],"mappings":";;;;;;AAYa,MAAA,aAAa,GAAG,CAAC,eAAwB,KAAyB;IAC3E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,CAAC,eAAe,CAAC;IAC9D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IAEzDC,eAAS,CAAC,MAAK;AACX,QAAA,IAAI,eAAe,IAAI,UAAU,EAAE;YAC/B;;AAGJ,QAAA,aAAa,CAAC,CAAC,eAAe,CAAC;;;AAGnC,KAAC,EAAE,CAAC,eAAe,CAAC,CAAC;AAErB,IAAA,MAAM,mBAAmB,GAAGC,iCAAgB,CAAC,aAAa,EAAE;AACxD,QAAA,WAAW,EAAEC,mCAAyB;AACtC,QAAA,YAAY,EAAEC,8CAAoC;AACrD,KAAA,CAAC;;IAGFH,eAAS,CAAC,MAAK;QACX,IAAI,eAAe,EAAE;YACjB,aAAa,CAAC,mBAAmB,CAAC;;;;AAI1C,KAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC;AAEzB,IAAA,MAAM,YAAY,GAAGI,iBAAW,CAAC,MAAK;QAClC,gBAAgB,CAAC,IAAI,CAAC;KACzB,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,UAAU,GAAGA,iBAAW,CAAC,MAAK;QAChC,gBAAgB,CAAC,KAAK,CAAC;KAC1B,EAAE,EAAE,CAAC;IAEN,OAAO;QACH,UAAU;AACV,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,UAAU;KACrB;AACL;;;;"}
1
+ {"version":3,"file":"useIsExpanded.js","sources":["../../../../../../src/components/AsideHeader/hooks/useIsExpanded.ts"],"sourcesContent":["import {useCallback, useEffect, useRef, useState} from 'react';\n\nimport {ASIDE_HEADER_EXPAND_DELAY, ASIDE_HEADER_EXPAND_TRANSITION_DELAY} from '../../constants';\nimport {SetCollapseBlocker} from '../types';\n\nimport {useDelayedToggle} from './useDelayedToggle';\n\ninterface UseIsExpandedResult {\n isExpanded: boolean;\n onExpand: () => void;\n onFold: () => void;\n setCollapseBlocker: SetCollapseBlocker;\n}\n\nexport const useIsExpanded = (externalPinned: boolean): UseIsExpandedResult => {\n const [isExpanded, setIsExpanded] = useState(externalPinned);\n const [isMouseInside, setIsMouseInside] = useState(false);\n const collapseBlockerCountRef = useRef(0);\n const pendingFoldRef = useRef(false);\n\n useEffect(() => {\n if (!externalPinned && isExpanded) {\n return;\n }\n\n setIsExpanded(externalPinned);\n // We need to run this effect only when externalPinned changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [externalPinned]);\n\n const delayedShouldExpand = useDelayedToggle(isMouseInside, {\n enableDelay: ASIDE_HEADER_EXPAND_DELAY,\n disableDelay: ASIDE_HEADER_EXPAND_TRANSITION_DELAY,\n });\n\n // Update isExpanded based on hover\n useEffect(() => {\n if (!externalPinned) {\n setIsExpanded(delayedShouldExpand);\n }\n // Re-run when externalPinned changes so we sync to hover state after pin/unpin\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [delayedShouldExpand, externalPinned]);\n\n const performFold = useCallback(() => {\n setIsMouseInside(false);\n }, []);\n\n const handleExpand = useCallback(() => {\n pendingFoldRef.current = false;\n\n setIsMouseInside(true);\n }, []);\n\n const handleFold = useCallback(() => {\n if (collapseBlockerCountRef.current > 0) {\n pendingFoldRef.current = true;\n\n return;\n }\n\n performFold();\n }, [performFold]);\n\n const setCollapseBlocker = useCallback(\n (isBlocked: boolean) => {\n if (isBlocked) {\n collapseBlockerCountRef.current += 1;\n } else if (collapseBlockerCountRef.current > 0) {\n collapseBlockerCountRef.current -= 1;\n\n if (collapseBlockerCountRef.current === 0 && pendingFoldRef.current) {\n pendingFoldRef.current = false;\n performFold();\n }\n }\n },\n [performFold],\n );\n\n return {\n isExpanded,\n onExpand: handleExpand,\n onFold: handleFold,\n setCollapseBlocker,\n };\n};\n"],"names":["useState","useRef","useEffect","useDelayedToggle","ASIDE_HEADER_EXPAND_DELAY","ASIDE_HEADER_EXPAND_TRANSITION_DELAY","useCallback"],"mappings":";;;;;;AAca,MAAA,aAAa,GAAG,CAAC,cAAuB,KAAyB;IAC1E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,cAAc,CAAC;IAC5D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AACzD,IAAA,MAAM,uBAAuB,GAAGC,YAAM,CAAC,CAAC,CAAC;AACzC,IAAA,MAAM,cAAc,GAAGA,YAAM,CAAC,KAAK,CAAC;IAEpCC,eAAS,CAAC,MAAK;AACX,QAAA,IAAI,CAAC,cAAc,IAAI,UAAU,EAAE;YAC/B;;QAGJ,aAAa,CAAC,cAAc,CAAC;;;AAGjC,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;AAEpB,IAAA,MAAM,mBAAmB,GAAGC,iCAAgB,CAAC,aAAa,EAAE;AACxD,QAAA,WAAW,EAAEC,mCAAyB;AACtC,QAAA,YAAY,EAAEC,8CAAoC;AACrD,KAAA,CAAC;;IAGFH,eAAS,CAAC,MAAK;QACX,IAAI,CAAC,cAAc,EAAE;YACjB,aAAa,CAAC,mBAAmB,CAAC;;;;AAI1C,KAAC,EAAE,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;AAEzC,IAAA,MAAM,WAAW,GAAGI,iBAAW,CAAC,MAAK;QACjC,gBAAgB,CAAC,KAAK,CAAC;KAC1B,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,YAAY,GAAGA,iBAAW,CAAC,MAAK;AAClC,QAAA,cAAc,CAAC,OAAO,GAAG,KAAK;QAE9B,gBAAgB,CAAC,IAAI,CAAC;KACzB,EAAE,EAAE,CAAC;AAEN,IAAA,MAAM,UAAU,GAAGA,iBAAW,CAAC,MAAK;AAChC,QAAA,IAAI,uBAAuB,CAAC,OAAO,GAAG,CAAC,EAAE;AACrC,YAAA,cAAc,CAAC,OAAO,GAAG,IAAI;YAE7B;;AAGJ,QAAA,WAAW,EAAE;AACjB,KAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAEjB,IAAA,MAAM,kBAAkB,GAAGA,iBAAW,CAClC,CAAC,SAAkB,KAAI;QACnB,IAAI,SAAS,EAAE;AACX,YAAA,uBAAuB,CAAC,OAAO,IAAI,CAAC;;AACjC,aAAA,IAAI,uBAAuB,CAAC,OAAO,GAAG,CAAC,EAAE;AAC5C,YAAA,uBAAuB,CAAC,OAAO,IAAI,CAAC;YAEpC,IAAI,uBAAuB,CAAC,OAAO,KAAK,CAAC,IAAI,cAAc,CAAC,OAAO,EAAE;AACjE,gBAAA,cAAc,CAAC,OAAO,GAAG,KAAK;AAC9B,gBAAA,WAAW,EAAE;;;AAGzB,KAAC,EACD,CAAC,WAAW,CAAC,CAChB;IAED,OAAO;QACH,UAAU;AACV,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,UAAU;QAClB,kBAAkB;KACrB;AACL;;;;"}
@@ -5,14 +5,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var button_collapse = "Collapse";
6
6
  var button_expand = "Expand";
7
7
  var label_more = "More";
8
+ var label_others = "Others";
8
9
  var en = {
9
10
  button_collapse: button_collapse,
10
11
  button_expand: button_expand,
11
- label_more: label_more
12
+ label_more: label_more,
13
+ label_others: label_others
12
14
  };
13
15
 
14
16
  exports.button_collapse = button_collapse;
15
17
  exports.button_expand = button_expand;
16
18
  exports.default = en;
17
19
  exports.label_more = label_more;
20
+ exports.label_others = label_others;
18
21
  //# sourceMappingURL=en.json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
@@ -1,14 +1,14 @@
1
- declare const _default: ((key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string) & {
1
+ declare const _default: ((key: "button_collapse" | "button_expand" | "label_more" | "label_others", params?: import("@gravity-ui/i18n").Params) => string) & {
2
2
  Translation: import("react").ComponentType<{
3
3
  children: (props: {
4
- t: (key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string;
4
+ t: (key: "button_collapse" | "button_expand" | "label_more" | "label_others", params?: import("@gravity-ui/i18n").Params) => string;
5
5
  }) => React.ReactNode;
6
6
  }>;
7
7
  useTranslation: () => {
8
- t: (key: "button_collapse" | "button_expand" | "label_more", params?: import("@gravity-ui/i18n").Params) => string;
8
+ t: (key: "button_collapse" | "button_expand" | "label_more" | "label_others", params?: import("@gravity-ui/i18n").Params) => string;
9
9
  };
10
10
  keysetData: {
11
- "gn-AsideHeader": Record<"button_collapse" | "button_expand" | "label_more", import("@gravity-ui/i18n").KeyData>;
11
+ "gn-AsideHeader": Record<"button_collapse" | "button_expand" | "label_more" | "label_others", import("@gravity-ui/i18n").KeyData>;
12
12
  };
13
13
  };
14
14
  export default _default;
@@ -5,14 +5,17 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var button_collapse = "Свернуть";
6
6
  var button_expand = "Развернуть";
7
7
  var label_more = "Ещё";
8
+ var label_others = "Другие";
8
9
  var ru = {
9
10
  button_collapse: button_collapse,
10
11
  button_expand: button_expand,
11
- label_more: label_more
12
+ label_more: label_more,
13
+ label_others: label_others
12
14
  };
13
15
 
14
16
  exports.button_collapse = button_collapse;
15
17
  exports.button_expand = button_expand;
16
18
  exports.default = ru;
17
19
  exports.label_more = label_more;
20
+ exports.label_others = label_others;
18
21
  //# sourceMappingURL=ru.json.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,8 @@
1
1
  export { AsideHeader } from './AsideHeader';
2
- export type { AsideHeaderProps, AsideHeaderItem, PanelItemProps } from './types';
3
- export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeaderContext';
2
+ export type { AsideHeaderProps, AsideHeaderItem, PanelItemProps, MenuItemsWithGroups, SetCollapseBlocker, } from './types';
3
+ export { AsideHeaderContextProvider, useAsideHeaderContext, useAsideHeaderContextOptional, } from './AsideHeaderContext';
4
4
  export { FooterItem, type FooterItemProps } from './components/FooterItem/FooterItem';
5
5
  export { PageLayout, type PageLayoutProps } from './components/PageLayout/PageLayout';
6
6
  export { PageLayoutAside } from './components/PageLayout/PageLayoutAside';
7
7
  export { AsideFallback } from './components/PageLayout/AsideFallback';
8
+ export { FooterLayoutContext, useFooterLayout, type FooterLayoutContextValue, } from './FooterLayoutContext';
@@ -1,16 +1,14 @@
1
1
  import * as React from 'react';
2
- import { PopupProps, QAProps } from '@gravity-ui/uikit';
2
+ import { DrawerProps, PopupProps, QAProps } from '@gravity-ui/uikit';
3
3
  import { RenderContentType } from '../Content';
4
4
  import { LogoProps, MenuGroup, MenuItem, OpenModalSubscriber, TopAlertProps } from '../types';
5
5
  import { AsideHeaderContextType } from './AsideHeaderContext';
6
- export interface PanelItemProps {
6
+ export interface PanelItemProps extends DrawerProps {
7
7
  id: string;
8
- content?: React.ReactNode;
9
- visible?: boolean;
10
- className?: string;
11
8
  }
12
9
  export interface LayoutProps {
13
- compact: boolean;
10
+ /** Navigation visual state. When `true`, the navigation is expanded (pinned open). When `false`, it is collapsed. */
11
+ pinned: boolean;
14
12
  className?: string;
15
13
  topAlert?: TopAlertProps;
16
14
  }
@@ -23,7 +21,6 @@ interface EditMenuProps {
23
21
  }
24
22
  interface AsideHeaderGeneralProps extends QAProps {
25
23
  logo?: LogoProps;
26
- multipleTooltip?: boolean;
27
24
  className?: string;
28
25
  collapseTitle?: string;
29
26
  expandTitle?: string;
@@ -32,19 +29,34 @@ interface AsideHeaderGeneralProps extends QAProps {
32
29
  customBackground?: React.ReactNode;
33
30
  customBackgroundClassName?: string;
34
31
  hideCollapseButton?: boolean;
32
+ /** When `true`, menu items use compact height. */
33
+ isCompactMode?: boolean;
35
34
  renderContent?: RenderContentType;
35
+ /**
36
+ * Render function for the footer section.
37
+ *
38
+ * Return types:
39
+ * - `React.ReactNode` - Renders custom content as-is
40
+ * - `React.ReactNode[]` - Wraps in FooterBar with horizontal/vertical layout based on isPinned
41
+ */
36
42
  renderFooter?: (data: {
37
43
  size: number;
38
- compact: boolean;
44
+ isExpanded: boolean;
45
+ isPinned: boolean;
39
46
  asideRef: React.RefObject<HTMLDivElement>;
47
+ isCompactMode?: boolean;
48
+ }) => React.ReactNode | React.ReactNode[];
49
+ /** Render function for additional content after items (e.g., user profile). Receives options with setCollapseBlocker to block sidebar collapse while a popup is open. */
50
+ renderFooterAfter?: (options?: {
51
+ setCollapseBlocker?: SetCollapseBlocker;
40
52
  }) => React.ReactNode;
41
53
  collapseButtonWrapper?: (defaultButton: React.ReactNode, data: {
42
- compact: boolean;
43
- onChangeCompact?: (compact: boolean) => void;
54
+ isExpanded: boolean;
55
+ onChangePinned?: (pinned: boolean) => void;
44
56
  }) => React.ReactNode;
45
57
  editMenuProps?: EditMenuProps;
46
58
  onClosePanel?: () => void;
47
- onChangeCompact?: (compact: boolean) => void;
59
+ onChangePinned?: (pinned: boolean) => void;
48
60
  onMenuMoreClick?: () => void;
49
61
  onAllPagesClick?: () => void;
50
62
  openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;
@@ -68,9 +80,12 @@ export declare enum InnerPanels {
68
80
  }
69
81
  export interface AsideHeaderItem extends MenuItem {
70
82
  enableTooltip?: boolean;
71
- onItemClick?: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>) => void;
83
+ onItemClick?: (item: AsideHeaderItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>, options: {
84
+ setCollapseBlocker: SetCollapseBlocker | undefined;
85
+ }) => void;
72
86
  bringForward?: boolean;
73
- compact?: boolean;
87
+ /** When `true`, forces the item to display in expanded form. */
88
+ isExpanded?: boolean;
74
89
  /**
75
90
  * @deprecated Use itemWrapper instead for popup functionality
76
91
  */
@@ -110,9 +125,10 @@ export interface GroupedMenuItem extends MenuItem {
110
125
  groupId: string;
111
126
  collapsible: boolean;
112
127
  isCollapsed: boolean;
113
- isDisabled: boolean;
114
128
  collapsedByDefault?: boolean;
115
129
  items: MenuItemsWithGroups[];
116
130
  }
117
131
  export type MenuItemsWithGroups = MenuItem | GroupedMenuItem;
132
+ /** Toggles a collapse blocker: pass `true` to block collapsing, `false` to unblock. */
133
+ export type SetCollapseBlocker = (isBlocked: boolean) => void;
118
134
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../src/components/AsideHeader/types.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {PopupProps, QAProps} from '@gravity-ui/uikit';\n\nimport {RenderContentType} from '../Content';\nimport {LogoProps, MenuGroup, MenuItem, OpenModalSubscriber, TopAlertProps} from '../types';\n\nimport {AsideHeaderContextType} from './AsideHeaderContext';\n\nexport interface PanelItemProps {\n id: string;\n content?: React.ReactNode;\n visible?: boolean;\n className?: string;\n}\n\nexport interface LayoutProps {\n compact: boolean;\n className?: string;\n topAlert?: TopAlertProps;\n}\n\ninterface EditMenuProps {\n onOpenEditMode?: () => void;\n onToggleMenuItem?: (changedItem: AsideHeaderItem) => void;\n onResetSettingsToDefault?: () => void;\n enableSorting?: boolean;\n onChangeItemsOrder?: (changedItem: AsideHeaderItem, oldIndex: number, newIndex: number) => void;\n}\n\ninterface AsideHeaderGeneralProps extends QAProps {\n logo?: LogoProps;\n multipleTooltip?: boolean;\n className?: string;\n collapseTitle?: string;\n expandTitle?: string;\n menuMoreTitle?: string;\n topAlert?: TopAlertProps;\n customBackground?: React.ReactNode;\n customBackgroundClassName?: string;\n hideCollapseButton?: boolean;\n renderContent?: RenderContentType;\n renderFooter?: (data: {\n size: number;\n compact: boolean;\n asideRef: React.RefObject<HTMLDivElement>;\n }) => React.ReactNode;\n collapseButtonWrapper?: (\n defaultButton: React.ReactNode,\n data: {\n compact: boolean;\n onChangeCompact?: (compact: boolean) => void;\n },\n ) => React.ReactNode;\n editMenuProps?: EditMenuProps;\n onClosePanel?: () => void;\n onChangeCompact?: (compact: boolean) => void;\n onMenuMoreClick?: () => void;\n onAllPagesClick?: () => void;\n openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;\n}\n\ninterface AsideHeaderDefaultProps {\n panelItems?: PanelItemProps[];\n subheaderItems?: AsideHeaderItem[];\n menuItems?: AsideHeaderItem[];\n defaultMenuItems?: AsideHeaderItem[];\n menuGroups?: MenuGroup[];\n defaultMenuGroups?: MenuGroup[];\n onMenuItemsChanged?: (items: AsideHeaderItem[]) => void;\n onMenuGroupsChanged?: (groups: MenuGroup[]) => void;\n headerDecoration?: boolean;\n}\n\nexport type AsideHeaderInnerProps = AsideHeaderGeneralProps &\n AsideHeaderDefaultProps &\n AsideHeaderContextType;\n\nexport interface AsideHeaderProps\n extends AsideHeaderGeneralProps,\n LayoutProps,\n Partial<AsideHeaderDefaultProps> {}\n\nexport enum InnerPanels {\n AllPages = 'all-pages',\n}\n\nexport interface AsideHeaderItem extends MenuItem {\n enableTooltip?: boolean;\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n ) => void;\n bringForward?: boolean;\n compact?: boolean;\n\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupVisible?: PopupProps['open'];\n /**\n * Floating element anchor ref object\n *\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupRef?: React.RefObject<HTMLElement>;\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupPlacement?: PopupProps['placement'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupOffset?: PopupProps['offset'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupKeepMounted?: PopupProps['keepMounted'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\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 itemWrapper instead for popup functionality\n */\n onOpenChangePopup?: PopupProps['onOpenChange'];\n}\n\nexport interface GroupedMenuItem extends MenuItem {\n groupId: string;\n collapsible: boolean;\n isCollapsed: boolean;\n isDisabled: boolean;\n collapsedByDefault?: boolean;\n items: MenuItemsWithGroups[];\n}\n\nexport type MenuItemsWithGroups = MenuItem | GroupedMenuItem;\n"],"names":["InnerPanels"],"mappings":";;AAmFYA;AAAZ,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,WAAsB;AAC1B,CAAC,EAFWA,mBAAW,KAAXA,mBAAW,GAEtB,EAAA,CAAA,CAAA;;"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../src/components/AsideHeader/types.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {DrawerProps, PopupProps, QAProps} from '@gravity-ui/uikit';\n\nimport {RenderContentType} from '../Content';\nimport {LogoProps, MenuGroup, MenuItem, OpenModalSubscriber, TopAlertProps} from '../types';\n\nimport {AsideHeaderContextType} from './AsideHeaderContext';\n\nexport interface PanelItemProps extends DrawerProps {\n id: string;\n}\n\nexport interface LayoutProps {\n /** Navigation visual state. When `true`, the navigation is expanded (pinned open). When `false`, it is collapsed. */\n pinned: boolean;\n className?: string;\n topAlert?: TopAlertProps;\n}\n\ninterface EditMenuProps {\n onOpenEditMode?: () => void;\n onToggleMenuItem?: (changedItem: AsideHeaderItem) => void;\n onResetSettingsToDefault?: () => void;\n enableSorting?: boolean;\n onChangeItemsOrder?: (changedItem: AsideHeaderItem, oldIndex: number, newIndex: number) => void;\n}\n\ninterface AsideHeaderGeneralProps extends QAProps {\n logo?: LogoProps;\n className?: string;\n collapseTitle?: string;\n expandTitle?: string;\n menuMoreTitle?: string;\n topAlert?: TopAlertProps;\n customBackground?: React.ReactNode;\n customBackgroundClassName?: string;\n hideCollapseButton?: boolean;\n /** When `true`, menu items use compact height. */\n isCompactMode?: boolean;\n renderContent?: RenderContentType;\n /**\n * Render function for the footer section.\n *\n * Return types:\n * - `React.ReactNode` - Renders custom content as-is\n * - `React.ReactNode[]` - Wraps in FooterBar with horizontal/vertical layout based on isPinned\n */\n renderFooter?: (data: {\n size: number;\n isExpanded: boolean;\n isPinned: boolean;\n asideRef: React.RefObject<HTMLDivElement>;\n isCompactMode?: boolean;\n }) => React.ReactNode | React.ReactNode[];\n /** Render function for additional content after items (e.g., user profile). Receives options with setCollapseBlocker to block sidebar collapse while a popup is open. */\n renderFooterAfter?: (options?: {setCollapseBlocker?: SetCollapseBlocker}) => React.ReactNode;\n collapseButtonWrapper?: (\n defaultButton: React.ReactNode,\n data: {\n isExpanded: boolean;\n onChangePinned?: (pinned: boolean) => void;\n },\n ) => React.ReactNode;\n editMenuProps?: EditMenuProps;\n onClosePanel?: () => void;\n onChangePinned?: (pinned: boolean) => void;\n onMenuMoreClick?: () => void;\n onAllPagesClick?: () => void;\n openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;\n}\n\ninterface AsideHeaderDefaultProps {\n panelItems?: PanelItemProps[];\n subheaderItems?: AsideHeaderItem[];\n menuItems?: AsideHeaderItem[];\n defaultMenuItems?: AsideHeaderItem[];\n menuGroups?: MenuGroup[];\n defaultMenuGroups?: MenuGroup[];\n onMenuItemsChanged?: (items: AsideHeaderItem[]) => void;\n onMenuGroupsChanged?: (groups: MenuGroup[]) => void;\n headerDecoration?: boolean;\n}\n\nexport type AsideHeaderInnerProps = AsideHeaderGeneralProps &\n AsideHeaderDefaultProps &\n AsideHeaderContextType;\n\nexport interface AsideHeaderProps\n extends AsideHeaderGeneralProps,\n LayoutProps,\n Partial<AsideHeaderDefaultProps> {}\n\nexport enum InnerPanels {\n AllPages = 'all-pages',\n}\n\nexport interface AsideHeaderItem extends MenuItem {\n enableTooltip?: boolean;\n onItemClick?: (\n item: AsideHeaderItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n options: {setCollapseBlocker: SetCollapseBlocker | undefined},\n ) => void;\n bringForward?: boolean;\n /** When `true`, forces the item to display in expanded form. */\n isExpanded?: boolean;\n\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupVisible?: PopupProps['open'];\n /**\n * Floating element anchor ref object\n *\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupRef?: React.RefObject<HTMLElement>;\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupPlacement?: PopupProps['placement'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupOffset?: PopupProps['offset'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\n popupKeepMounted?: PopupProps['keepMounted'];\n /**\n * @deprecated Use itemWrapper instead for popup functionality\n */\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 itemWrapper instead for popup functionality\n */\n onOpenChangePopup?: PopupProps['onOpenChange'];\n}\n\nexport interface GroupedMenuItem extends MenuItem {\n groupId: string;\n collapsible: boolean;\n isCollapsed: boolean;\n collapsedByDefault?: boolean;\n items: MenuItemsWithGroups[];\n}\n\nexport type MenuItemsWithGroups = MenuItem | GroupedMenuItem;\n\n/** Toggles a collapse blocker: pass `true` to block collapsing, `false` to unblock. */\nexport type SetCollapseBlocker = (isBlocked: boolean) => void;\n"],"names":["InnerPanels"],"mappings":";;AA6FYA;AAAZ,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,UAAA,CAAA,GAAA,WAAsB;AAC1B,CAAC,EAFWA,mBAAW,KAAXA,mBAAW,GAEtB,EAAA,CAAA,CAAA;;"}
@@ -1,9 +1,10 @@
1
1
  import { AsideHeaderInnerContextType } from './AsideHeaderContext';
2
- import { AsideHeaderProps } from './types';
2
+ import { AsideHeaderProps, SetCollapseBlocker } from './types';
3
3
  export declare const useAsideHeaderInnerContextValue: (props: AsideHeaderProps & {
4
4
  size: number;
5
- compact: boolean;
5
+ pinned: boolean;
6
6
  isExpanded: boolean;
7
7
  onExpand?: () => void;
8
8
  onFold?: () => void;
9
+ setCollapseBlocker?: SetCollapseBlocker;
9
10
  }) => AsideHeaderInnerContextType;
@@ -7,15 +7,16 @@ var types = require('./types.js');
7
7
 
8
8
  const EMPTY_MENU_ITEMS = [];
9
9
  const useAsideHeaderInnerContextValue = (props) => {
10
- const { size, onClosePanel, menuItems, menuGroups, defaultMenuGroups, panelItems, onMenuItemsChanged, onMenuGroupsChanged, onAllPagesClick, } = props;
10
+ var _a;
11
+ const { size, onClosePanel, menuItems, menuGroups, defaultMenuGroups, panelItems, isCompactMode = false, setCollapseBlocker, onMenuItemsChanged, onMenuGroupsChanged, onAllPagesClick, } = props;
11
12
  const [innerVisiblePanel, setInnerVisiblePanel] = React.useState();
12
13
  const ALL_PAGES_MENU_ITEM = React.useMemo(() => {
13
14
  return constants.getAllPagesMenuItem();
14
15
  }, []);
15
16
  const allPagesIsAvailable = Boolean(onMenuItemsChanged) && (!menuItems || (menuItems === null || menuItems === undefined ? undefined : menuItems.length) > 0);
16
17
  React.useEffect(() => {
17
- // If any user panel became visible we need to switch off all inner panels
18
- if (panelItems === null || panelItems === undefined ? undefined : panelItems.some((x) => x.visible)) {
18
+ // If any user panel became open we need to switch off all inner panels
19
+ if (panelItems === null || panelItems === undefined ? undefined : panelItems.some((x) => x.open)) {
19
20
  setInnerVisiblePanel(undefined);
20
21
  }
21
22
  }, [panelItems]);
@@ -23,7 +24,7 @@ const useAsideHeaderInnerContextValue = (props) => {
23
24
  setInnerVisiblePanel(undefined);
24
25
  onClosePanel === null || onClosePanel === undefined ? undefined : onClosePanel();
25
26
  }, [onClosePanel]);
26
- const onItemClick = React.useCallback((item, collapsed, event) => {
27
+ const onItemClick = React.useCallback((item, collapsed, event, options) => {
27
28
  var _a;
28
29
  if (item.id === ALL_PAGES_MENU_ITEM.id) {
29
30
  onClosePanel === null || onClosePanel === undefined ? undefined : onClosePanel();
@@ -32,12 +33,14 @@ const useAsideHeaderInnerContextValue = (props) => {
32
33
  else {
33
34
  innerOnClosePanel();
34
35
  }
35
- (_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, collapsed, event);
36
+ (_a = item.onItemClick) === null || _a === undefined ? undefined : _a.call(item, item, collapsed, event, options);
36
37
  }, [innerOnClosePanel, ALL_PAGES_MENU_ITEM, onClosePanel]);
37
38
  const onToggleGroupCollapsed = React.useCallback((groupId) => {
38
39
  const updatedMenuGroups = menuGroups === null || menuGroups === undefined ? undefined : menuGroups.map((group) => {
40
+ var _a, _b;
39
41
  if (group.id === groupId) {
40
- return Object.assign(Object.assign({}, group), { collapsed: !group.collapsed });
42
+ const effectiveCollapsed = (_b = (_a = group.collapsed) !== null && _a !== undefined ? _a : group.collapsedByDefault) !== null && _b !== undefined ? _b : false;
43
+ return Object.assign(Object.assign({}, group), { collapsed: !effectiveCollapsed });
41
44
  }
42
45
  return group;
43
46
  });
@@ -59,12 +62,31 @@ const useAsideHeaderInnerContextValue = (props) => {
59
62
  ...(panelItems || []),
60
63
  {
61
64
  id: types.InnerPanels.AllPages,
62
- content: React.createElement(AllPagesPanel.AllPagesPanel, null),
63
- visible: innerVisiblePanel === types.InnerPanels.AllPages,
65
+ children: React.createElement(AllPagesPanel.AllPagesPanel, null),
66
+ open: innerVisiblePanel === types.InnerPanels.AllPages,
64
67
  },
65
68
  ];
66
69
  }, [allPagesIsAvailable, panelItems, innerVisiblePanel]);
67
- return Object.assign(Object.assign({}, props), { onClosePanel: innerOnClosePanel, allPagesIsAvailable, menuItems: innerMenuItems, menuGroups,
70
+ const hasPanelOpen = (_a = innerPanelItems === null || innerPanelItems === undefined ? undefined : innerPanelItems.some((p) => p.open)) !== null && _a !== undefined ? _a : false;
71
+ const didBlockRef = React.useRef(false);
72
+ React.useEffect(() => {
73
+ if (hasPanelOpen) {
74
+ setCollapseBlocker === null || setCollapseBlocker === undefined ? undefined : setCollapseBlocker(true);
75
+ didBlockRef.current = true;
76
+ }
77
+ else if (didBlockRef.current) {
78
+ setCollapseBlocker === null || setCollapseBlocker === undefined ? undefined : setCollapseBlocker(false);
79
+ didBlockRef.current = false;
80
+ }
81
+ return () => {
82
+ if (didBlockRef.current) {
83
+ setCollapseBlocker === null || setCollapseBlocker === undefined ? undefined : setCollapseBlocker(false);
84
+ didBlockRef.current = false;
85
+ }
86
+ };
87
+ }, [hasPanelOpen, setCollapseBlocker]);
88
+ return Object.assign(Object.assign({}, props), { setCollapseBlocker,
89
+ isCompactMode, onClosePanel: innerOnClosePanel, allPagesIsAvailable, menuItems: innerMenuItems, menuGroups,
68
90
  defaultMenuGroups,
69
91
  onMenuGroupsChanged, panelItems: innerPanelItems, size,
70
92
  onItemClick,
@@ -1 +1 @@
1
- {"version":3,"file":"useAsideHeaderInnerContextValue.js","sources":["../../../../../src/components/AsideHeader/useAsideHeaderInnerContextValue.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {MenuItem} from '../types';\n\nimport {AsideHeaderInnerContextType} from './AsideHeaderContext';\nimport {AllPagesPanel, getAllPagesMenuItem} from './components/AllPagesPanel';\nimport {AsideHeaderItem, AsideHeaderProps, InnerPanels} from './types';\n\nconst EMPTY_MENU_ITEMS: AsideHeaderItem[] = [];\n\nexport const useAsideHeaderInnerContextValue = (\n props: AsideHeaderProps & {\n size: number;\n compact: boolean;\n isExpanded: boolean;\n onExpand?: () => void;\n onFold?: () => void;\n },\n): AsideHeaderInnerContextType => {\n const {\n size,\n onClosePanel,\n menuItems,\n menuGroups,\n defaultMenuGroups,\n panelItems,\n onMenuItemsChanged,\n onMenuGroupsChanged,\n onAllPagesClick,\n } = props;\n\n const [innerVisiblePanel, setInnerVisiblePanel] = useState<InnerPanels | undefined>();\n const ALL_PAGES_MENU_ITEM = React.useMemo(() => {\n return getAllPagesMenuItem();\n }, []);\n\n const allPagesIsAvailable =\n Boolean(onMenuItemsChanged) && (!menuItems || menuItems?.length > 0);\n\n useEffect(() => {\n // If any user panel became visible we need to switch off all inner panels\n if (panelItems?.some((x) => x.visible)) {\n setInnerVisiblePanel(undefined);\n }\n }, [panelItems]);\n\n const innerOnClosePanel = useCallback(() => {\n setInnerVisiblePanel(undefined);\n onClosePanel?.();\n }, [onClosePanel]);\n\n const onItemClick = useCallback(\n (item: MenuItem, collapsed: boolean, event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (item.id === ALL_PAGES_MENU_ITEM.id) {\n onClosePanel?.();\n setInnerVisiblePanel((prev) =>\n prev === InnerPanels.AllPages ? undefined : InnerPanels.AllPages,\n );\n } else {\n innerOnClosePanel();\n }\n item.onItemClick?.(item, collapsed, event);\n },\n [innerOnClosePanel, ALL_PAGES_MENU_ITEM, onClosePanel],\n );\n\n const onToggleGroupCollapsed = useCallback(\n (groupId: string) => {\n const updatedMenuGroups = menuGroups?.map((group) => {\n if (group.id === groupId) {\n return {\n ...group,\n collapsed: !group.collapsed,\n };\n }\n return group;\n });\n\n if (updatedMenuGroups) {\n onMenuGroupsChanged?.(updatedMenuGroups);\n }\n },\n [menuGroups, onMenuGroupsChanged],\n );\n\n const innerMenuItems = useMemo(\n () =>\n allPagesIsAvailable\n ? [\n ...(menuItems || EMPTY_MENU_ITEMS),\n {\n ...ALL_PAGES_MENU_ITEM,\n current: innerVisiblePanel === InnerPanels.AllPages,\n onItemClick: onAllPagesClick,\n },\n ]\n : menuItems || EMPTY_MENU_ITEMS,\n [allPagesIsAvailable, menuItems, innerVisiblePanel, ALL_PAGES_MENU_ITEM, onAllPagesClick],\n );\n\n const innerPanelItems = useMemo(() => {\n if (!allPagesIsAvailable) {\n return panelItems;\n }\n return [\n ...(panelItems || []),\n {\n id: InnerPanels.AllPages,\n content: <AllPagesPanel />,\n visible: innerVisiblePanel === InnerPanels.AllPages,\n },\n ];\n }, [allPagesIsAvailable, panelItems, innerVisiblePanel]);\n\n return {\n ...props,\n onClosePanel: innerOnClosePanel,\n allPagesIsAvailable,\n menuItems: innerMenuItems,\n menuGroups,\n defaultMenuGroups,\n onMenuGroupsChanged,\n panelItems: innerPanelItems,\n size,\n onItemClick,\n onToggleGroupCollapsed,\n };\n};\n"],"names":["useState","getAllPagesMenuItem","useEffect","useCallback","InnerPanels","useMemo","AllPagesPanel"],"mappings":"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"}
1
+ {"version":3,"file":"useAsideHeaderInnerContextValue.js","sources":["../../../../../src/components/AsideHeader/useAsideHeaderInnerContextValue.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {MenuItem} from '../types';\n\nimport {AsideHeaderInnerContextType} from './AsideHeaderContext';\nimport {AllPagesPanel, getAllPagesMenuItem} from './components/AllPagesPanel';\nimport {\n AsideHeaderItem,\n AsideHeaderProps,\n InnerPanels,\n PanelItemProps,\n SetCollapseBlocker,\n} from './types';\n\nconst EMPTY_MENU_ITEMS: AsideHeaderItem[] = [];\n\nexport const useAsideHeaderInnerContextValue = (\n props: AsideHeaderProps & {\n size: number;\n pinned: boolean;\n isExpanded: boolean;\n onExpand?: () => void;\n onFold?: () => void;\n setCollapseBlocker?: SetCollapseBlocker;\n },\n): AsideHeaderInnerContextType => {\n const {\n size,\n onClosePanel,\n menuItems,\n menuGroups,\n defaultMenuGroups,\n panelItems,\n isCompactMode = false,\n setCollapseBlocker,\n onMenuItemsChanged,\n onMenuGroupsChanged,\n onAllPagesClick,\n } = props;\n\n const [innerVisiblePanel, setInnerVisiblePanel] = useState<InnerPanels | undefined>();\n const ALL_PAGES_MENU_ITEM = React.useMemo(() => {\n return getAllPagesMenuItem();\n }, []);\n\n const allPagesIsAvailable =\n Boolean(onMenuItemsChanged) && (!menuItems || menuItems?.length > 0);\n\n useEffect(() => {\n // If any user panel became open we need to switch off all inner panels\n if (panelItems?.some((x) => x.open)) {\n setInnerVisiblePanel(undefined);\n }\n }, [panelItems]);\n\n const innerOnClosePanel = useCallback(() => {\n setInnerVisiblePanel(undefined);\n onClosePanel?.();\n }, [onClosePanel]);\n\n const onItemClick = useCallback(\n (\n item: MenuItem,\n collapsed: boolean,\n event: React.MouseEvent<HTMLElement, MouseEvent>,\n options: {setCollapseBlocker: SetCollapseBlocker | undefined},\n ) => {\n if (item.id === ALL_PAGES_MENU_ITEM.id) {\n onClosePanel?.();\n setInnerVisiblePanel((prev) =>\n prev === InnerPanels.AllPages ? undefined : InnerPanels.AllPages,\n );\n } else {\n innerOnClosePanel();\n }\n item.onItemClick?.(item, collapsed, event, options);\n },\n [innerOnClosePanel, ALL_PAGES_MENU_ITEM, onClosePanel],\n );\n\n const onToggleGroupCollapsed = useCallback(\n (groupId: string) => {\n const updatedMenuGroups = menuGroups?.map((group) => {\n if (group.id === groupId) {\n const effectiveCollapsed = group.collapsed ?? group.collapsedByDefault ?? false;\n\n return {\n ...group,\n collapsed: !effectiveCollapsed,\n };\n }\n return group;\n });\n\n if (updatedMenuGroups) {\n onMenuGroupsChanged?.(updatedMenuGroups);\n }\n },\n [menuGroups, onMenuGroupsChanged],\n );\n\n const innerMenuItems = useMemo(\n () =>\n allPagesIsAvailable\n ? [\n ...(menuItems || EMPTY_MENU_ITEMS),\n {\n ...ALL_PAGES_MENU_ITEM,\n current: innerVisiblePanel === InnerPanels.AllPages,\n onItemClick: onAllPagesClick,\n },\n ]\n : menuItems || EMPTY_MENU_ITEMS,\n [allPagesIsAvailable, menuItems, innerVisiblePanel, ALL_PAGES_MENU_ITEM, onAllPagesClick],\n );\n\n const innerPanelItems = useMemo<PanelItemProps[] | undefined>(() => {\n if (!allPagesIsAvailable) {\n return panelItems;\n }\n\n return [\n ...(panelItems || []),\n {\n id: InnerPanels.AllPages,\n children: <AllPagesPanel />,\n open: innerVisiblePanel === InnerPanels.AllPages,\n },\n ];\n }, [allPagesIsAvailable, panelItems, innerVisiblePanel]);\n\n const hasPanelOpen = innerPanelItems?.some((p) => p.open) ?? false;\n const didBlockRef = React.useRef(false);\n\n useEffect(() => {\n if (hasPanelOpen) {\n setCollapseBlocker?.(true);\n didBlockRef.current = true;\n } else if (didBlockRef.current) {\n setCollapseBlocker?.(false);\n didBlockRef.current = false;\n }\n\n return () => {\n if (didBlockRef.current) {\n setCollapseBlocker?.(false);\n didBlockRef.current = false;\n }\n };\n }, [hasPanelOpen, setCollapseBlocker]);\n\n return {\n ...props,\n setCollapseBlocker,\n isCompactMode,\n onClosePanel: innerOnClosePanel,\n allPagesIsAvailable,\n menuItems: innerMenuItems,\n menuGroups,\n defaultMenuGroups,\n onMenuGroupsChanged,\n panelItems: innerPanelItems,\n size,\n onItemClick,\n onToggleGroupCollapsed,\n };\n};\n"],"names":["useState","getAllPagesMenuItem","useEffect","useCallback","InnerPanels","useMemo","AllPagesPanel"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  import { MenuItemsWithGroups } from '../types';
2
- export declare function getGroupBlockHeight(items: MenuItemsWithGroups[]): number;
2
+ export declare function getGroupBlockHeight(items: MenuItemsWithGroups[], isCompactMode?: boolean): number;
@@ -2,14 +2,14 @@
2
2
 
3
3
  var constants = require('../../constants.js');
4
4
 
5
- const GAP = 2;
6
- function getGroupBlockHeight(items) {
5
+ function getGroupBlockHeight(items, isCompactMode) {
6
+ const itemHeight = isCompactMode ? constants.ITEM_HEIGHT_COMPACT : constants.ITEM_HEIGHT;
7
7
  if (items.length === 0) {
8
- return constants.ITEM_HEIGHT;
8
+ return itemHeight;
9
9
  }
10
- const gaps = items.length * GAP;
10
+ const gaps = items.length * constants.ITEM_GAP;
11
11
  // +1 accounts for the group header item in addition to the menu items
12
- return (items.length + 1) * constants.ITEM_HEIGHT + gaps;
12
+ return (items.length + 1) * itemHeight + gaps;
13
13
  }
14
14
 
15
15
  exports.getGroupBlockHeight = getGroupBlockHeight;
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupHeight.js","sources":["../../../../../../src/components/AsideHeader/utils/getGroupHeight.ts"],"sourcesContent":["import {ITEM_HEIGHT} from '../../constants';\nimport {MenuItemsWithGroups} from '../types';\n\nconst GAP = 2;\n\nexport function getGroupBlockHeight(items: MenuItemsWithGroups[]) {\n if (items.length === 0) {\n return ITEM_HEIGHT;\n }\n\n const gaps = items.length * GAP;\n\n // +1 accounts for the group header item in addition to the menu items\n return (items.length + 1) * ITEM_HEIGHT + gaps;\n}\n"],"names":["ITEM_HEIGHT"],"mappings":";;;;AAGA,MAAM,GAAG,GAAG,CAAC;AAEP,SAAU,mBAAmB,CAAC,KAA4B,EAAA;AAC5D,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAOA,qBAAW;;AAGtB,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,GAAG;;IAG/B,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAIA,qBAAW,GAAG,IAAI;AAClD;;;;"}
1
+ {"version":3,"file":"getGroupHeight.js","sources":["../../../../../../src/components/AsideHeader/utils/getGroupHeight.ts"],"sourcesContent":["import {ITEM_GAP, ITEM_HEIGHT, ITEM_HEIGHT_COMPACT} from '../../constants';\nimport {MenuItemsWithGroups} from '../types';\n\nexport function getGroupBlockHeight(items: MenuItemsWithGroups[], isCompactMode?: boolean) {\n const itemHeight = isCompactMode ? ITEM_HEIGHT_COMPACT : ITEM_HEIGHT;\n\n if (items.length === 0) {\n return itemHeight;\n }\n\n const gaps = items.length * ITEM_GAP;\n\n // +1 accounts for the group header item in addition to the menu items\n return (items.length + 1) * itemHeight + gaps;\n}\n"],"names":["ITEM_HEIGHT_COMPACT","ITEM_HEIGHT","ITEM_GAP"],"mappings":";;;;AAGgB,SAAA,mBAAmB,CAAC,KAA4B,EAAE,aAAuB,EAAA;IACrF,MAAM,UAAU,GAAG,aAAa,GAAGA,6BAAmB,GAAGC,qBAAW;AAEpE,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,QAAA,OAAO,UAAU;;AAGrB,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,GAAGC,kBAAQ;;IAGpC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAG,IAAI;AACjD;;;;"}
@@ -33,7 +33,7 @@ const Footer = ({ className, menuItems: providedMenuItems, withDivider, moreButt
33
33
  React.createElement("div", { className: b('right') },
34
34
  React.createElement("small", { className: b('copyright', { small: !(menuItems === null || menuItems === undefined ? undefined : menuItems.length) }) }, copyright),
35
35
  view !== 'clear' && logo && (React.createElement("div", { className: logoWrapperClassName },
36
- React.createElement(Logo.Logo, Object.assign({}, logo)))))));
36
+ React.createElement(Logo.Logo, Object.assign({}, logo, { placement: "footer" })))))));
37
37
  };
38
38
 
39
39
  exports.Footer = Footer;