@gravity-ui/navigation 6.5.1 → 7.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/build/cjs/components/AsideHeader/AsideHeader.css +9 -1
  2. package/build/cjs/components/AsideHeader/AsideHeader.js +2 -2
  3. package/build/cjs/components/AsideHeader/AsideHeader.js.map +1 -1
  4. package/build/cjs/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  5. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +5 -0
  6. package/build/cjs/components/AsideHeader/AsideHeaderContext.js +2 -0
  7. package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  8. package/build/cjs/components/AsideHeader/__playwright__/AsideTransitionExample.d.ts +8 -0
  9. package/build/cjs/components/AsideHeader/__playwright__/CollapseButtonExample.d.ts +14 -0
  10. package/build/cjs/components/AsideHeader/__playwright__/CompactTransitionExample.d.ts +12 -0
  11. package/build/cjs/components/AsideHeader/__playwright__/CurrentIndicatorExample.d.ts +20 -0
  12. package/build/cjs/components/AsideHeader/__playwright__/QuickAccessOverflowExample.d.ts +8 -0
  13. package/build/cjs/components/AsideHeader/__playwright__/currentIndicatorPaint.d.ts +21 -0
  14. package/build/cjs/components/AsideHeader/__playwright__/transitionTestUtils.d.ts +4 -0
  15. package/build/cjs/components/AsideHeader/__stories__/fullNavigationMoc.d.ts +6 -0
  16. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +2 -4
  17. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -1
  18. package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.d.ts +2 -1
  19. package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js +5 -1
  20. package/build/cjs/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js.map +1 -1
  21. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -3
  22. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  23. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  24. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +2 -4
  25. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  26. package/build/cjs/components/AsideHeader/components/AsideDivider.d.ts +7 -0
  27. package/build/cjs/components/AsideHeader/components/AsideDivider.js +13 -0
  28. package/build/cjs/components/AsideHeader/components/AsideDivider.js.map +1 -0
  29. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  30. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +3 -1
  31. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +12 -8
  32. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  33. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  34. package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.d.ts +20 -0
  35. package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js +170 -0
  36. package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js.map +1 -0
  37. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +3 -1
  38. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +13 -2
  39. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +53 -39
  40. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  41. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  42. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  43. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +4 -2
  44. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -1
  45. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +33 -1
  46. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +158 -43
  47. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  48. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  49. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +22 -4
  50. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +19 -0
  51. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +137 -20
  52. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
  53. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.d.ts +7 -0
  54. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js +25 -0
  55. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js.map +1 -0
  56. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +1 -1
  57. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +5 -1
  58. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -1
  59. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
  60. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -6
  61. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +14 -5
  62. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
  63. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
  64. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +8 -8
  65. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +68 -33
  66. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
  67. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.d.ts +1 -0
  68. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js +2 -0
  69. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
  70. package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.d.ts +24 -0
  71. package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.js +39 -0
  72. package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.js.map +1 -0
  73. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +12 -7
  74. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +42 -35
  75. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  76. package/build/cjs/components/AsideHeader/components/FirstPanel.js +129 -10
  77. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
  78. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  79. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +18 -2
  80. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  81. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  82. package/build/cjs/components/AsideHeader/components/Header.js +7 -3
  83. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
  84. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +9 -1
  85. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +1 -0
  86. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +13 -6
  87. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  88. package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.d.ts +80 -0
  89. package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js +600 -0
  90. package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js.map +1 -0
  91. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.d.ts +14 -0
  92. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js +164 -0
  93. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js.map +1 -0
  94. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.d.ts +14 -0
  95. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js +94 -0
  96. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js.map +1 -0
  97. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +9 -1
  98. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -1
  99. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +14 -5
  100. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  101. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +9 -1
  102. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  103. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -2
  104. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  105. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.d.ts +7 -0
  106. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.js +25 -0
  107. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.js.map +1 -0
  108. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.d.ts +25 -0
  109. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.js +89 -0
  110. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.js.map +1 -0
  111. package/build/cjs/components/AsideHeader/components/Panels.js +2 -2
  112. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
  113. package/build/cjs/components/AsideHeader/density.d.ts +21 -0
  114. package/build/cjs/components/AsideHeader/density.js +61 -0
  115. package/build/cjs/components/AsideHeader/density.js.map +1 -0
  116. package/build/cjs/components/AsideHeader/i18n/__mocks__/index.d.ts +1 -0
  117. package/build/cjs/components/AsideHeader/i18n/en.json.js +10 -1
  118. package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -1
  119. package/build/cjs/components/AsideHeader/i18n/index.d.ts +4 -4
  120. package/build/cjs/components/AsideHeader/i18n/ru.json.js +10 -1
  121. package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
  122. package/build/cjs/components/AsideHeader/index.d.ts +1 -0
  123. package/build/cjs/components/AsideHeader/quickAccess.d.ts +9 -0
  124. package/build/cjs/components/AsideHeader/quickAccess.js +31 -0
  125. package/build/cjs/components/AsideHeader/quickAccess.js.map +1 -0
  126. package/build/cjs/components/AsideHeader/types.d.ts +50 -5
  127. package/build/cjs/components/AsideHeader/types.js.map +1 -1
  128. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +18 -3
  129. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  130. package/build/cjs/components/AsideHeader/utils.d.ts +1 -0
  131. package/build/cjs/components/AsideHeader/utils.js +2 -0
  132. package/build/cjs/components/AsideHeader/utils.js.map +1 -1
  133. package/build/cjs/components/Footer/desktop/Footer.css +1 -1
  134. package/build/cjs/components/Footer/mobile/Footer.css +1 -1
  135. package/build/cjs/components/HotkeysPanel/HotkeysPanel.css +1 -1
  136. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +1 -1
  137. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  138. package/build/cjs/components/HotkeysPanel/HotkeysPanel.module.scss.js +1 -1
  139. package/build/cjs/components/Logo/Logo.css +1 -1
  140. package/build/cjs/components/Logo/Logo.d.ts +1 -0
  141. package/build/cjs/components/Logo/Logo.js +4 -4
  142. package/build/cjs/components/Logo/Logo.js.map +1 -1
  143. package/build/cjs/components/constants.d.ts +5 -0
  144. package/build/cjs/components/constants.js +6 -0
  145. package/build/cjs/components/constants.js.map +1 -1
  146. package/build/cjs/components/types.d.ts +11 -4
  147. package/build/docs/components/AsideHeader.md +244 -51
  148. package/build/esm/components/AsideHeader/AsideHeader.css +9 -1
  149. package/build/esm/components/AsideHeader/AsideHeader.js +2 -2
  150. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
  151. package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  152. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +5 -0
  153. package/build/esm/components/AsideHeader/AsideHeaderContext.js +2 -0
  154. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  155. package/build/esm/components/AsideHeader/__playwright__/AsideTransitionExample.d.ts +8 -0
  156. package/build/esm/components/AsideHeader/__playwright__/CollapseButtonExample.d.ts +14 -0
  157. package/build/esm/components/AsideHeader/__playwright__/CompactTransitionExample.d.ts +12 -0
  158. package/build/esm/components/AsideHeader/__playwright__/CurrentIndicatorExample.d.ts +20 -0
  159. package/build/esm/components/AsideHeader/__playwright__/QuickAccessOverflowExample.d.ts +8 -0
  160. package/build/esm/components/AsideHeader/__playwright__/currentIndicatorPaint.d.ts +21 -0
  161. package/build/esm/components/AsideHeader/__playwright__/transitionTestUtils.d.ts +4 -0
  162. package/build/esm/components/AsideHeader/__stories__/fullNavigationMoc.d.ts +6 -0
  163. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +3 -5
  164. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -1
  165. package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.d.ts +2 -1
  166. package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js +5 -1
  167. package/build/esm/components/AsideHeader/components/AllPagesPanel/allPagesEditDisplay.js.map +1 -1
  168. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -3
  169. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  170. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  171. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +2 -4
  172. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  173. package/build/esm/components/AsideHeader/components/AsideDivider.d.ts +7 -0
  174. package/build/esm/components/AsideHeader/components/AsideDivider.js +11 -0
  175. package/build/esm/components/AsideHeader/components/AsideDivider.js.map +1 -0
  176. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  177. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +3 -1
  178. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +12 -8
  179. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  180. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  181. package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.d.ts +20 -0
  182. package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js +167 -0
  183. package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js.map +1 -0
  184. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +3 -1
  185. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +13 -2
  186. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +54 -40
  187. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  188. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  189. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  190. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +4 -2
  191. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -1
  192. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +33 -1
  193. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +161 -46
  194. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  195. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  196. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +22 -4
  197. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +19 -0
  198. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +139 -23
  199. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
  200. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.d.ts +7 -0
  201. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js +23 -0
  202. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js.map +1 -0
  203. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +1 -1
  204. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +5 -1
  205. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -1
  206. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
  207. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -6
  208. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +15 -6
  209. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
  210. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
  211. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +8 -8
  212. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +68 -33
  213. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
  214. package/build/esm/components/AsideHeader/components/CompositeBar/constants.d.ts +1 -0
  215. package/build/esm/components/AsideHeader/components/CompositeBar/constants.js +2 -1
  216. package/build/esm/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
  217. package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.d.ts +24 -0
  218. package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.js +36 -0
  219. package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.js.map +1 -0
  220. package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +12 -7
  221. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +44 -35
  222. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  223. package/build/esm/components/AsideHeader/components/FirstPanel.js +131 -12
  224. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
  225. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  226. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +18 -2
  227. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  228. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  229. package/build/esm/components/AsideHeader/components/Header.js +8 -4
  230. package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
  231. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +9 -1
  232. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +1 -0
  233. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +14 -7
  234. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  235. package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.d.ts +80 -0
  236. package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js +598 -0
  237. package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js.map +1 -0
  238. package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.d.ts +14 -0
  239. package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js +162 -0
  240. package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js.map +1 -0
  241. package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.d.ts +14 -0
  242. package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js +92 -0
  243. package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js.map +1 -0
  244. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +9 -1
  245. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -1
  246. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +15 -6
  247. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  248. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +9 -1
  249. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  250. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -2
  251. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  252. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.d.ts +7 -0
  253. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.js +17 -0
  254. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.js.map +1 -0
  255. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.d.ts +25 -0
  256. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.js +84 -0
  257. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.js.map +1 -0
  258. package/build/esm/components/AsideHeader/components/Panels.js +3 -3
  259. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
  260. package/build/esm/components/AsideHeader/density.d.ts +21 -0
  261. package/build/esm/components/AsideHeader/density.js +58 -0
  262. package/build/esm/components/AsideHeader/density.js.map +1 -0
  263. package/build/esm/components/AsideHeader/i18n/__mocks__/index.d.ts +1 -0
  264. package/build/esm/components/AsideHeader/i18n/en.json.js +8 -2
  265. package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -1
  266. package/build/esm/components/AsideHeader/i18n/index.d.ts +4 -4
  267. package/build/esm/components/AsideHeader/i18n/ru.json.js +8 -2
  268. package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
  269. package/build/esm/components/AsideHeader/index.d.ts +1 -0
  270. package/build/esm/components/AsideHeader/quickAccess.d.ts +9 -0
  271. package/build/esm/components/AsideHeader/quickAccess.js +27 -0
  272. package/build/esm/components/AsideHeader/quickAccess.js.map +1 -0
  273. package/build/esm/components/AsideHeader/types.d.ts +50 -5
  274. package/build/esm/components/AsideHeader/types.js.map +1 -1
  275. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +18 -3
  276. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  277. package/build/esm/components/AsideHeader/utils.d.ts +1 -0
  278. package/build/esm/components/AsideHeader/utils.js +2 -1
  279. package/build/esm/components/AsideHeader/utils.js.map +1 -1
  280. package/build/esm/components/Footer/desktop/Footer.css +1 -1
  281. package/build/esm/components/Footer/mobile/Footer.css +1 -1
  282. package/build/esm/components/HotkeysPanel/HotkeysPanel.css +1 -1
  283. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +1 -1
  284. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  285. package/build/esm/components/HotkeysPanel/HotkeysPanel.module.scss.js +1 -1
  286. package/build/esm/components/Logo/Logo.css +1 -1
  287. package/build/esm/components/Logo/Logo.d.ts +1 -0
  288. package/build/esm/components/Logo/Logo.js +4 -4
  289. package/build/esm/components/Logo/Logo.js.map +1 -1
  290. package/build/esm/components/constants.d.ts +5 -0
  291. package/build/esm/components/constants.js +6 -1
  292. package/build/esm/components/constants.js.map +1 -1
  293. package/build/esm/components/types.d.ts +11 -4
  294. package/package.json +1 -1
  295. package/build/cjs/assets/icons/control-menu-button.svg.js +0 -41
  296. package/build/cjs/assets/icons/control-menu-button.svg.js.map +0 -1
  297. package/build/esm/assets/icons/control-menu-button.svg.js +0 -18
  298. package/build/esm/assets/icons/control-menu-button.svg.js.map +0 -1
@@ -1,4 +1,4 @@
1
- var styles = {"gn-composite-bar":"CompositeBar-module__gn-composite-bar___WoCDY","gnCompositeBar":"CompositeBar-module__gn-composite-bar___WoCDY","gn-composite-bar__root-menu-item":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF","gnCompositeBarRootMenuItem":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF","gn-composite-bar__menu-group":"CompositeBar-module__gn-composite-bar__menu-group___3hCzS","gnCompositeBarMenuGroup":"CompositeBar-module__gn-composite-bar__menu-group___3hCzS","gn-composite-bar__menu-group-header":"CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21","gnCompositeBarMenuGroupHeader":"CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21","gn-composite-bar__menu-group-nested-item":"CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-","gnCompositeBarMenuGroupNestedItem":"CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-","gn-composite-bar__menu-group-nested-list-item":"CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH","gnCompositeBarMenuGroupNestedListItem":"CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH","gn-composite-bar__menu-group-nested-connector":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb","gnCompositeBarMenuGroupNestedConnector":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb","gn-composite-bar__menu-group-nested-connector_spine-active":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector_spine-active___qVoAX","gnCompositeBarMenuGroupNestedConnectorSpineActive":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector_spine-active___qVoAX","gn-composite-bar__menu-group-nested-tree-svg":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg___FJny7","gnCompositeBarMenuGroupNestedTreeSvg":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg___FJny7","gn-composite-bar__menu-group-nested-tree-svg_active":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg_active___Gmthf","gnCompositeBarMenuGroupNestedTreeSvgActive":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg_active___Gmthf","gn-composite-bar__menu-group-nested-row-inner":"CompositeBar-module__gn-composite-bar__menu-group-nested-row-inner___jJLTe","gnCompositeBarMenuGroupNestedRowInner":"CompositeBar-module__gn-composite-bar__menu-group-nested-row-inner___jJLTe"};
1
+ var styles = {"gn-composite-bar":"CompositeBar-module__gn-composite-bar___WoCDY","gnCompositeBar":"CompositeBar-module__gn-composite-bar___WoCDY","gn-composite-bar__root-menu-item":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF","gnCompositeBarRootMenuItem":"CompositeBar-module__gn-composite-bar__root-menu-item___oxCuF","gn-composite-bar_inline-groups":"CompositeBar-module__gn-composite-bar_inline-groups___BsraQ","gnCompositeBarInlineGroups":"CompositeBar-module__gn-composite-bar_inline-groups___BsraQ","gn-composite-bar_quick-access":"CompositeBar-module__gn-composite-bar_quick-access___zNlSe","gnCompositeBarQuickAccess":"CompositeBar-module__gn-composite-bar_quick-access___zNlSe","gn-composite-bar__menu-group":"CompositeBar-module__gn-composite-bar__menu-group___3hCzS","gnCompositeBarMenuGroup":"CompositeBar-module__gn-composite-bar__menu-group___3hCzS","gn-composite-bar__menu-group-header":"CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21","gnCompositeBarMenuGroupHeader":"CompositeBar-module__gn-composite-bar__menu-group-header___Yvr21","gn-composite-bar__menu-group-nested-item":"CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-","gnCompositeBarMenuGroupNestedItem":"CompositeBar-module__gn-composite-bar__menu-group-nested-item___9gea-","gn-composite-bar__menu-group-nested-connector":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb","gnCompositeBarMenuGroupNestedConnector":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector___uiegb","gn-composite-bar__menu-group-nested-list-item":"CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH","gnCompositeBarMenuGroupNestedListItem":"CompositeBar-module__gn-composite-bar__menu-group-nested-list-item___-IygH","gn-composite-bar__menu-group-nested-connector_spine-active":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector_spine-active___qVoAX","gnCompositeBarMenuGroupNestedConnectorSpineActive":"CompositeBar-module__gn-composite-bar__menu-group-nested-connector_spine-active___qVoAX","gn-composite-bar__menu-group-nested-tree-svg":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg___FJny7","gnCompositeBarMenuGroupNestedTreeSvg":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg___FJny7","gn-composite-bar__menu-group-nested-tree-svg_active":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg_active___Gmthf","gnCompositeBarMenuGroupNestedTreeSvgActive":"CompositeBar-module__gn-composite-bar__menu-group-nested-tree-svg_active___Gmthf","gn-composite-bar__menu-group-nested-row-inner":"CompositeBar-module__gn-composite-bar__menu-group-nested-row-inner___jJLTe","gnCompositeBarMenuGroupNestedRowInner":"CompositeBar-module__gn-composite-bar__menu-group-nested-row-inner___jJLTe"};
2
2
 
3
3
  export { styles as default };
4
4
  //# sourceMappingURL=CompositeBar.module.scss.js.map
@@ -1 +1 @@
1
- .HighlightedItem-module__gn-composite-bar-highlighted-item___8jg4a{--_--background-color:var(--g-color-base-background);--_--item-icon-background-size:38px;--_--item-background-color-hover:var(--g-color-base-selection-hover);--_--item-selected-background-color-active:var(--g-color-base-selection);display:flex;justify-content:center;position:absolute;z-index:10000}.HighlightedItem-module__gn-composite-bar-highlighted-item__icon___zlo6v{align-items:center;background-color:var(--gn-aside-header-background-color,var(--_--background-color));border-radius:7px;box-shadow:0 8px 20px 0 var(--g-color-sfx-shadow);cursor:pointer;display:flex;height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));justify-content:center;overflow:hidden;position:relative;transform:translateY(1px);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size))}.HighlightedItem-module__gn-composite-bar-highlighted-item__icon___zlo6v:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active));content:"";height:100%;position:absolute;width:100%;z-index:-1}.HighlightedItem-module__gn-composite-bar-highlighted-item__icon___zlo6v:hover:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover))}
1
+ .HighlightedItem-module__gn-composite-bar-highlighted-item___8jg4a{--_--background-color:var(--g-color-base-background);--_--item-icon-background-size:var(--_--gn-aside-header-density-icon-background-size,38px);--_--item-background-color-hover:var(--g-color-base-selection-hover);--_--item-selected-background-color-active:var(--g-color-base-selection);display:flex;justify-content:center;position:absolute;z-index:10000}.HighlightedItem-module__gn-composite-bar-highlighted-item__icon___zlo6v{align-items:center;background-color:var(--gn-aside-header-background-color,var(--_--background-color));border-radius:var(--_--gn-aside-header-density-item-collapsed-radius,7px);box-shadow:0 8px 20px 0 var(--g-color-sfx-shadow);cursor:pointer;display:flex;height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));justify-content:center;overflow:hidden;position:relative;transform:translateY(1px);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size))}.HighlightedItem-module__gn-composite-bar-highlighted-item__icon___zlo6v:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color-active));content:"";height:100%;position:absolute;width:100%;z-index:-1}.HighlightedItem-module__gn-composite-bar-highlighted-item__icon___zlo6v:hover:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover))}
@@ -4,13 +4,15 @@ import { Portal } from '@gravity-ui/uikit';
4
4
  import debounceFn from 'lodash/debounce';
5
5
  import { createBlock, block } from '../../../../utils/cn.js';
6
6
  import { useAsideHeaderInnerContext } from '../../../AsideHeaderContext.js';
7
+ import { getAsideHeaderDensityCssProperties } from '../../../density.js';
7
8
  import styles from './HighlightedItem.module.scss.js';
8
9
 
9
10
  const b = createBlock('composite-bar-highlighted-item', styles);
10
11
  const bGlobal = block('composite-bar-highlighted-item');
11
12
  const DEBOUNCE_TIME = 200;
12
13
  const HighlightedItem = ({ iconRef, iconNode, onClick, onClickCapture, }) => {
13
- const { openModalSubscriber } = useAsideHeaderInnerContext();
14
+ const { menuDensity, openModalSubscriber } = useAsideHeaderInnerContext();
15
+ const densityCssProperties = getAsideHeaderDensityCssProperties(menuDensity);
14
16
  const [position, setPosition] = useState({
15
17
  top: 0,
16
18
  left: 0,
@@ -46,7 +48,7 @@ const HighlightedItem = ({ iconRef, iconNode, onClick, onClickCapture, }) => {
46
48
  return null;
47
49
  }
48
50
  return (React__default.createElement(Portal, null,
49
- React__default.createElement("div", { className: `${b()} ${bGlobal()}`, style: position, onClick: onClick, onClickCapture: onClickCapture, "data-toast": true },
51
+ React__default.createElement("div", { className: `${b()} ${bGlobal()}`, style: Object.assign(Object.assign({}, densityCssProperties), position), onClick: onClick, onClickCapture: onClickCapture, "data-toast": true },
50
52
  React__default.createElement("div", { className: b('icon') }, iconNode))));
51
53
  };
52
54
  HighlightedItem.displayName = 'HighlightedItem';
@@ -1 +1 @@
1
- {"version":3,"file":"HighlightedItem.js","sources":["../../../../../../../../src/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {Portal} from '@gravity-ui/uikit';\nimport debounceFn from 'lodash/debounce';\n\nimport {block, createBlock} from '../../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../../AsideHeaderContext';\n\nimport styles from './HighlightedItem.module.scss';\n\nconst b = createBlock('composite-bar-highlighted-item', styles);\nconst bGlobal = block('composite-bar-highlighted-item');\n\ninterface ItemInnerProps {\n iconRef: React.RefObject<HTMLDivElement>;\n iconNode: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onClickCapture?: (event: React.SyntheticEvent) => void;\n}\n\nconst DEBOUNCE_TIME = 200;\n\nexport const HighlightedItem: React.FC<ItemInnerProps> = ({\n iconRef,\n iconNode,\n onClick,\n onClickCapture,\n}: ItemInnerProps) => {\n const {openModalSubscriber} = useAsideHeaderInnerContext();\n const [position, setPosition] = useState({\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n });\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n\n const handleResizeDebounced = useMemo(\n () =>\n debounceFn(\n () => {\n const {\n top = 0,\n left = 0,\n width = 0,\n height = 0,\n } = iconRef?.current?.getBoundingClientRect() || {};\n\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n width,\n height,\n });\n },\n DEBOUNCE_TIME,\n {leading: true},\n ),\n [iconRef],\n );\n\n const handleResize = useCallback(() => handleResizeDebounced(), [handleResizeDebounced]);\n\n useEffect(() => {\n if (!isModalOpen) {\n return undefined;\n }\n\n handleResize();\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize, isModalOpen]);\n\n openModalSubscriber?.((open: boolean) => {\n setIsModalOpen(open);\n });\n\n if (!iconNode || !isModalOpen) {\n return null;\n }\n\n return (\n <Portal>\n <div\n className={`${b()} ${bGlobal()}`}\n style={position}\n onClick={onClick}\n onClickCapture={onClickCapture}\n data-toast\n >\n <div className={b('icon')}>{iconNode}</div>\n </div>\n </Portal>\n );\n};\n\nHighlightedItem.displayName = 'HighlightedItem';\n"],"names":["React"],"mappings":";;;;;;;AAUA,MAAM,CAAC,GAAG,WAAW,CAAC,gCAAgC,EAAE,MAAM,CAAC;AAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,gCAAgC,CAAC;AASvD,MAAM,aAAa,GAAG,GAAG;AAElB,MAAM,eAAe,GAA6B,CAAC,EACtD,OAAO,EACP,QAAQ,EACR,OAAO,EACP,cAAc,GACD,KAAI;AACjB,IAAA,MAAM,EAAC,mBAAmB,EAAC,GAAG,0BAA0B,EAAE;AAC1D,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC;AACrC,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,CAAC;AACZ,KAAA,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC;IAE9D,MAAM,qBAAqB,GAAG,OAAO,CACjC,MACI,UAAU,CACN,MAAK;;AACD,QAAA,MAAM,EACF,GAAG,GAAG,CAAC,EACP,IAAI,GAAG,CAAC,EACR,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,GACb,GAAG,CAAA,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,SAAA,GAAA,SAAA,GAAA,OAAO,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAA,qBAAqB,EAAE,KAAI,EAAE;AAEnD,QAAA,WAAW,CAAC;AACR,YAAA,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO;AACzB,YAAA,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,OAAO;YAC3B,KAAK;YACL,MAAM;AACT,SAAA,CAAC;AACN,KAAC,EACD,aAAa,EACb,EAAC,OAAO,EAAE,IAAI,EAAC,CAClB,EACL,CAAC,OAAO,CAAC,CACZ;AAED,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC;IAExF,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,OAAO,SAAS;;AAGpB,QAAA,YAAY,EAAE;AAEd,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAE/C,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACtD,SAAC;AACL,KAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE/B,mBAAmB,KAAA,IAAA,IAAnB,mBAAmB,KAAnB,SAAA,GAAA,SAAA,GAAA,mBAAmB,CAAG,CAAC,IAAa,KAAI;QACpC,cAAc,CAAC,IAAI,CAAC;AACxB,KAAC,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC3B,QAAA,OAAO,IAAI;;IAGf,QACIA,6BAAC,MAAM,EAAA,IAAA;QACHA,cACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAG,EAAA,CAAC,EAAE,CAAI,CAAA,EAAA,OAAO,EAAE,CAAE,CAAA,EAChC,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA;AAG9B,YAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAG,EAAA,QAAQ,CAAO,CACzC,CACD;AAEjB;AAEA,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
1
+ {"version":3,"file":"HighlightedItem.js","sources":["../../../../../../../../src/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {Portal} from '@gravity-ui/uikit';\nimport debounceFn from 'lodash/debounce';\n\nimport {block, createBlock} from '../../../../utils/cn';\nimport {useAsideHeaderInnerContext} from '../../../AsideHeaderContext';\nimport {getAsideHeaderDensityCssProperties} from '../../../density';\n\nimport styles from './HighlightedItem.module.scss';\n\nconst b = createBlock('composite-bar-highlighted-item', styles);\nconst bGlobal = block('composite-bar-highlighted-item');\n\ninterface ItemInnerProps {\n iconRef: React.RefObject<HTMLDivElement>;\n iconNode: React.ReactNode;\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n onClickCapture?: (event: React.SyntheticEvent) => void;\n}\n\nconst DEBOUNCE_TIME = 200;\n\nexport const HighlightedItem: React.FC<ItemInnerProps> = ({\n iconRef,\n iconNode,\n onClick,\n onClickCapture,\n}: ItemInnerProps) => {\n const {menuDensity, openModalSubscriber} = useAsideHeaderInnerContext();\n const densityCssProperties = getAsideHeaderDensityCssProperties(menuDensity);\n const [position, setPosition] = useState({\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n });\n const [isModalOpen, setIsModalOpen] = useState<boolean>(false);\n\n const handleResizeDebounced = useMemo(\n () =>\n debounceFn(\n () => {\n const {\n top = 0,\n left = 0,\n width = 0,\n height = 0,\n } = iconRef?.current?.getBoundingClientRect() || {};\n\n setPosition({\n top: top + window.scrollY,\n left: left + window.scrollX,\n width,\n height,\n });\n },\n DEBOUNCE_TIME,\n {leading: true},\n ),\n [iconRef],\n );\n\n const handleResize = useCallback(() => handleResizeDebounced(), [handleResizeDebounced]);\n\n useEffect(() => {\n if (!isModalOpen) {\n return undefined;\n }\n\n handleResize();\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [handleResize, isModalOpen]);\n\n openModalSubscriber?.((open: boolean) => {\n setIsModalOpen(open);\n });\n\n if (!iconNode || !isModalOpen) {\n return null;\n }\n\n return (\n <Portal>\n <div\n className={`${b()} ${bGlobal()}`}\n style={{...densityCssProperties, ...position}}\n onClick={onClick}\n onClickCapture={onClickCapture}\n data-toast\n >\n <div className={b('icon')}>{iconNode}</div>\n </div>\n </Portal>\n );\n};\n\nHighlightedItem.displayName = 'HighlightedItem';\n"],"names":["React"],"mappings":";;;;;;;;AAWA,MAAM,CAAC,GAAG,WAAW,CAAC,gCAAgC,EAAE,MAAM,CAAC;AAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,gCAAgC,CAAC;AASvD,MAAM,aAAa,GAAG,GAAG;AAElB,MAAM,eAAe,GAA6B,CAAC,EACtD,OAAO,EACP,QAAQ,EACR,OAAO,EACP,cAAc,GACD,KAAI;IACjB,MAAM,EAAC,WAAW,EAAE,mBAAmB,EAAC,GAAG,0BAA0B,EAAE;AACvE,IAAA,MAAM,oBAAoB,GAAG,kCAAkC,CAAC,WAAW,CAAC;AAC5E,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC;AACrC,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,IAAI,EAAE,CAAC;AACP,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,CAAC;AACZ,KAAA,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC;IAE9D,MAAM,qBAAqB,GAAG,OAAO,CACjC,MACI,UAAU,CACN,MAAK;;AACD,QAAA,MAAM,EACF,GAAG,GAAG,CAAC,EACP,IAAI,GAAG,CAAC,EACR,KAAK,GAAG,CAAC,EACT,MAAM,GAAG,CAAC,GACb,GAAG,CAAA,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,SAAA,GAAA,SAAA,GAAA,OAAO,CAAE,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,SAAA,GAAA,EAAA,CAAA,qBAAqB,EAAE,KAAI,EAAE;AAEnD,QAAA,WAAW,CAAC;AACR,YAAA,GAAG,EAAE,GAAG,GAAG,MAAM,CAAC,OAAO;AACzB,YAAA,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,OAAO;YAC3B,KAAK;YACL,MAAM;AACT,SAAA,CAAC;AACN,KAAC,EACD,aAAa,EACb,EAAC,OAAO,EAAE,IAAI,EAAC,CAClB,EACL,CAAC,OAAO,CAAC,CACZ;AAED,IAAA,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,qBAAqB,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC;IAExF,SAAS,CAAC,MAAK;QACX,IAAI,CAAC,WAAW,EAAE;AACd,YAAA,OAAO,SAAS;;AAGpB,QAAA,YAAY,EAAE;AAEd,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC;AAE/C,QAAA,OAAO,MAAK;AACR,YAAA,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC;AACtD,SAAC;AACL,KAAC,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE/B,mBAAmB,KAAA,IAAA,IAAnB,mBAAmB,KAAnB,SAAA,GAAA,SAAA,GAAA,mBAAmB,CAAG,CAAC,IAAa,KAAI;QACpC,cAAc,CAAC,IAAI,CAAC;AACxB,KAAC,CAAC;AAEF,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC3B,QAAA,OAAO,IAAI;;IAGf,QACIA,6BAAC,MAAM,EAAA,IAAA;QACHA,cACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAG,EAAA,CAAC,EAAE,CAAI,CAAA,EAAA,OAAO,EAAE,CAAA,CAAE,EAChC,KAAK,kCAAM,oBAAoB,CAAA,EAAK,QAAQ,CAC5C,EAAA,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA;AAG9B,YAAAA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAG,EAAA,QAAQ,CAAO,CACzC,CACD;AAEjB;AAEA,eAAe,CAAC,WAAW,GAAG,iBAAiB;;;;"}
@@ -1 +1,33 @@
1
- .Item-module__gn-composite-bar-item___-pkx5{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item___-pkx5:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item___-pkx5{--gn-composite-bar-item-action-size:36px;--gn-aside-header-item-expanded-radius:8px;--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-general-icon-color:var(--g-color-text-primary);--_--item-icon-color:var(--g-color-text-complementary);--_--item-text-color:var(--g-color-text-primary);--_--item-collapsed-radius:7px;--_--item-action-color:var(--g-color-base-float);--_--item-action-color-hover:var(--g-color-base-float-hover);--_--item-chevron-padding-right:var(--g-spacing-1);--_--item-selected-text-color:var(--g-color-text-primary);--_--item-selected-background-color:var(--g-color-base-selection);align-items:center;cursor:pointer;display:flex;height:100%;margin-inline:auto;min-width:0;padding:0;width:100%}.Item-module__gn-composite-bar-item___-pkx5.gn-footer-item.Item-module__gn-composite-bar-item_type_regular___wkhsT{--gn-aside-header-item-icon-background-size:32px;height:32px}.Item-module__gn-composite-bar-item___-pkx5.gn-footer-item_regular-size.Item-module__gn-composite-bar-item_type_regular___wkhsT{--gn-aside-header-item-icon-background-size:38px;height:40px}.Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color))}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-item-icon-color,var(--_--item-icon-color)))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color)))}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i .Item-module__g-action-tooltip__description___UsHcG{color:var(--g-color-text-light-primary);margin-block-start:0}.Item-module__gn-composite-bar-item__icon-place___jPKRh{align-items:center;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--_--item-height,40px)}.Item-module__gn-composite-bar-item__title___wj5L5{align-items:center;display:flex;margin:0 var(--g-spacing-4) 0 var(--g-spacing-2);overflow:hidden}.Item-module__gn-composite-bar-item__title-text___cILJo{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--gn-aside-header-item-text-color,var(--_--item-text-color));display:-webkit-box;overflow:hidden;text-align:start}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__title-text___cILJo{color:var(--gn-aside-header-item-current-text-color,var(--_--item-selected-text-color))}.Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin:0 10px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item__collapse-item___Up6IX:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{--_--item-icon-color:var(--g-color-text-misc);align-items:center;cursor:pointer;display:flex;height:100%;padding:0 16px;width:100%}.Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color));margin-right:10px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX .Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin-right:0}.Item-module__gn-composite-bar-item__menu-divider___hkm-Z{border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));cursor:default;margin:0 8px;width:100%}.Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to{padding:4px 0}.Item-module__gn-composite-bar-item__link___McAVN{align-items:center;display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__link___McAVN, .Item-module__gn-composite-bar-item__link___McAVN:active, .Item-module__gn-composite-bar-item__link___McAVN:focus, .Item-module__gn-composite-bar-item__link___McAVN:hover, .Item-module__gn-composite-bar-item__link___McAVN:visited{color:inherit;outline:none;text-decoration:none}.Item-module__gn-composite-bar-item__btn-icon___SwT65{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Item-module__gn-composite-bar-item_type_action___2jxO8{background:var(--gn-aside-header-item-action-color,var(--_--item-action-color));border-radius:var(--gn-composite-bar-item-action-size);box-shadow:0 0 0 1px rgba(0,0,0,.03),0 5px 6px rgba(0,0,0,.12);height:var(--gn-composite-bar-item-action-size);justify-content:center;margin:0 10px 8px;transition:transform .1s ease-out,background-color .15s linear}.Item-module__gn-composite-bar-item_type_action___2jxO8:focus-visible{box-shadow:0 0 0 2px var(--g-color-line-misc)}.Item-module__gn-composite-bar-item_type_action___2jxO8:hover{background-color:var(--gn-aside-header-item-action-color-hover,var(--_--item-action-color-hover))}.Item-module__gn-composite-bar-item_type_action___2jxO8:active{box-shadow:0 1px 2px var(--g-color-sfx-shadow);transform:scale(.96);transition:none}.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__icon-place___jPKRh{width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_type_action___2jxO8.gn-footer-item{width:calc(100% - 20px)}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i{align-items:center;box-sizing:border-box;display:flex;height:30px;padding:8px 12px}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i .g-action-tooltip__description{color:var(--g-color-text-light-primary);margin:0;margin-block:0}.Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR{margin-left:10px}.Item-module__gn-composite-bar-item__icon-popover___euq-P{align-items:center;border-radius:12px;box-sizing:border-box;display:flex;padding:var(--g-spacing-2)}.Item-module__gn-composite-bar-item__icon-popover_item-type_action___ep-D3{margin-left:10px}.Item-module__gn-composite-bar-item__popup-content___oys3t{border-radius:var(--gn-aside-header-item-expanded-radius);box-sizing:border-box}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__root-menu-item___nlpvH[class]{background-color:transparent}.Item-module__gn-composite-bar-item__popup-title___2-tGd{color:var(--g-color-text-primary);font-size:var(--g-text-subheader-2-font-size);font-weight:var(--g-text-subheader-font-weight);line-height:var(--g-text-subheader-2-line-height);padding:var(--g-spacing-1) var(--g-spacing-2) 6px}.Item-module__gn-composite-bar-item__popup-item___MPgm3{box-sizing:border-box}.Item-module__gn-composite-bar-item__popup-item___MPgm3.Item-module__gn-composite-bar-item_type_regular___wkhsT{border-radius:var(--gn-aside-header-item-expanded-radius);height:32px}.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__icon-place___jPKRh{display:none}.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__title___wj5L5{margin-left:var(--g-spacing-4)}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM).Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-expanded-radius)}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)));border-radius:var(--gn-aside-header-item-expanded-radius)}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-expanded-radius)}.Item-module__gn-composite-bar-item__group-header-row___m-4WB{--gn-aside-header-item-expanded-radius:8px;--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-chevron-padding-right:var(--g-spacing-1);display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__group-header-row___m-4WB:hover{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-expanded-radius)}.Item-module__gn-composite-bar-item_with-chevron-control___5F9O3{align-self:stretch;flex:1 1 auto;height:auto;min-width:0;width:auto}.Item-module__gn-composite-bar-item___-pkx5.Item-module__gn-composite-bar-item_with-chevron-control___5F9O3:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:transparent}.Item-module__gn-composite-bar-item__chevron___ZZ-vf{align-items:center;align-self:stretch;display:flex;flex-shrink:0;margin-left:auto;padding-left:var(--g-spacing-2);padding-right:var(--gn-aside-header-item-chevron-padding-right,var(--_--item-chevron-padding-right))}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC{background:transparent;border:none;color:var(--g-color-text-secondary);cursor:pointer;padding-bottom:0;padding-top:0}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC:hover{color:var(--g-color-text-primary)}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC:focus-visible{box-shadow:inset 0 0 0 2px var(--g-color-line-misc);outline:none}.Item-module__gn-composite-bar-item_compact___PVTeM .Item-module__gn-composite-bar-item__chevron___ZZ-vf{align-self:auto;margin:0;padding:0;position:absolute;right:8px}.Item-module__gn-composite-bar-item_compact___PVTeM .Item-module__gn-composite-bar-item__chevron___ZZ-vf svg{stroke:currentColor;stroke-width:1}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8{width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__title___wj5L5{margin:0}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}.Item-module__gn-composite-bar-item_compact___PVTeM:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65{background-color:transparent;position:relative}.Item-module__gn-composite-bar-item_compact___PVTeM:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT .Item-module__gn-composite-bar-item__btn-icon___SwT65:before{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));content:"";height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));z-index:-1}
1
+ .Item-module__gn-composite-bar-item___-pkx5{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item___-pkx5:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item___-pkx5{--gn-composite-bar-item-action-size:var(--_--gn-aside-header-density-action-size,36px);--_--item-expanded-radius:var(
2
+ --_--gn-aside-header-density-item-expanded-radius,8px
3
+ );--_--horizontal-divider-line-color:var(--g-color-line-generic);--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-general-icon-color:var(--g-color-text-primary);--_--item-icon-color:var(--g-color-text-complementary);--_--item-text-color:var(--g-color-text-primary);--_--item-collapsed-radius:var(--_--gn-aside-header-density-item-collapsed-radius,7px);--_--item-action-color:var(--g-color-base-float);--_--item-action-color-hover:var(--g-color-base-float-hover);--_--item-chevron-padding-right:var(--g-spacing-1);--_--item-selected-text-color:var(--g-color-text-primary);--_--item-selected-background-color:var(--g-color-base-selection);--_--row-surface-color:transparent;align-items:center;cursor:pointer;display:flex;height:100%;isolation:isolate;margin-inline:auto;min-width:0;padding:0;position:relative;width:100%}.Item-module__gn-composite-bar-item___-pkx5.gn-footer-item.Item-module__gn-composite-bar-item_type_regular___wkhsT{--gn-aside-header-item-icon-background-size:var(
4
+ --_--gn-aside-header-density-footer-item-height,32px
5
+ );height:var(--_--gn-aside-header-density-footer-item-height,32px)}.Item-module__gn-composite-bar-item___-pkx5.gn-footer-item_regular-size.Item-module__gn-composite-bar-item_type_regular___wkhsT{--gn-aside-header-item-icon-background-size:38px;height:40px}.Item-module__gn-composite-bar-item__surface___iqsAp{background-color:var(--_--row-surface-color);border-radius:inherit;inset:0;pointer-events:none;position:absolute;z-index:-1}.Item-module__gn-composite-bar-item__surface___iqsAp[data-gn-aside-current-ghost-suppressed], .Item-module__gn-composite-bar-item__surface___iqsAp[data-gn-aside-current-suppressed]{--_--row-surface-color:transparent}.Item-module__gn-composite-bar-item_menu-popup-row___pX55k{background-color:var(--_--row-surface-color)}.Item-module__gn-composite-bar-item_compact___PVTeM .Item-module__gn-composite-bar-item__surface___iqsAp{border-radius:var(--gn-aside-header-item-collapsed-radius,var(--_--item-collapsed-radius));height:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size));inset:auto;inset-inline-start:calc((var(--_--gn-aside-header-density-item-height, 40px) - var(--gn-aside-header-item-icon-background-size, var(--_--item-icon-background-size)))/2);top:calc((100% - var(--gn-aside-header-item-icon-background-size, var(--_--item-icon-background-size)))/2);width:var(--gn-aside-header-item-icon-background-size,var(--_--item-icon-background-size))}.Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color))}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-item-icon-color,var(--_--item-icon-color)))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color))}.gn-composite-bar-highlighted-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-composite-bar_subheader .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf, .gn-footer-item .Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__icon___ORFNf{color:var(--gn-aside-header-item-current-icon-color,var(--gn-aside-header-general-item-icon-color,var(--_--item-general-icon-color)))}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i .Item-module__g-action-tooltip__description___UsHcG{color:var(--g-color-text-light-primary);margin-block-start:0}.Item-module__gn-composite-bar-item__icon-place___jPKRh{align-items:center;display:flex;flex-shrink:0;height:100%;justify-content:center;width:var(--_--gn-aside-header-density-item-height,40px)}.Item-module__gn-composite-bar-item__title___wj5L5{align-items:center;display:flex;margin:0 var(--_--gn-aside-header-density-item-title-gap-end,var(--g-spacing-4)) 0 var(--_--gn-aside-header-density-item-title-gap,var(--g-spacing-2));overflow:hidden}.Item-module__gn-composite-bar-item__title-text___cILJo{-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;color:var(--gn-aside-header-item-text-color,var(--_--item-text-color));display:-webkit-box;overflow:hidden;text-align:start}.Item-module__gn-composite-bar-item_current___NT2hB .Item-module__gn-composite-bar-item__title-text___cILJo{color:var(--gn-aside-header-item-current-text-color,var(--_--item-selected-text-color))}.Item-module__gn-composite-bar-item__title-text_lines_2___iBySH{-webkit-line-clamp:2;line-clamp:2}.Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin:0 10px}.Item-module__gn-composite-bar-item__interactive-row___JXbmT{align-self:flex-start;height:100%;min-width:0;position:relative;width:100%}.Item-module__gn-composite-bar-item__interactive-row___JXbmT>:first-child{min-width:0;width:100%}.Item-module__gn-composite-bar-item__quick-access-pin-slot___j9wtv{align-items:center;display:flex;inset-block:0;inset-inline-end:var(--g-spacing-1);justify-content:center;opacity:0;pointer-events:none;position:absolute;transition:none;visibility:hidden;width:24px;z-index:1}.Item-module__gn-composite-bar-item__quick-access-pin-slot_suppressed___3yKbX{opacity:0;pointer-events:none;visibility:hidden}.Item-module__gn-composite-bar-item_with-quick-access-pin___yPnvd .Item-module__gn-composite-bar-item__title___wj5L5{margin-inline-end:calc(24px + var(--g-spacing-1)*2)}.Item-module__gn-composite-bar-item__interactive-row___JXbmT:hover .Item-module__gn-composite-bar-item__quick-access-pin-slot___j9wtv:not(.Item-module__gn-composite-bar-item__quick-access-pin-slot_suppressed___3yKbX){opacity:1;pointer-events:auto;transition:opacity .15s ease var(--_--gn-aside-header-quick-access-pin-hover-delay,.2s),visibility 0s linear var(--_--gn-aside-header-quick-access-pin-hover-delay,.2s);visibility:visible}.Item-module__gn-composite-bar-item__interactive-row___JXbmT:focus-within .Item-module__gn-composite-bar-item__quick-access-pin-slot___j9wtv:not(.Item-module__gn-composite-bar-item__quick-access-pin-slot_suppressed___3yKbX){opacity:1;pointer-events:auto;transition:none;visibility:visible}.Item-module__gn-composite-bar-item__interactive-row___JXbmT:hover .Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM).Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
6
+ --gn-aside-header-item-current-background-color-hover,var(
7
+ --gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)
8
+ )
9
+ );border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__interactive-row___JXbmT:hover .Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):not(.Item-module__gn-composite-bar-item_current___NT2hB).Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
10
+ --gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover)
11
+ )}.Item-module__gn-composite-bar-item__quick-access-pin___WLaB0{color:var(--g-color-text-complementary);flex-shrink:0}.Item-module__gn-composite-bar-item__quick-access-pin_pinned___Q9mQK{color:var(--g-color-text-secondary)}.Item-module__gn-composite-bar-item__quick-access-pin___WLaB0:hover{color:var(--g-color-text-primary)}.Item-module__gn-composite-bar-item__quick-access-pin___WLaB0 .g-button__icon{color:inherit}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{background:none;border:none;color:inherit;font:inherit;outline:inherit;text-decoration:inherit}.Item-module__gn-composite-bar-item__collapse-item___Up6IX:focus-visible{outline:solid var(--g-color-line-misc);outline-offset:-2px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX{--_--item-icon-color:var(--g-color-text-misc);align-items:center;cursor:pointer;display:flex;height:100%;padding:0 16px;width:100%}.Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao{color:var(--gn-aside-header-item-icon-color,var(--_--item-icon-color));margin-right:10px}.Item-module__gn-composite-bar-item__collapse-item___Up6IX .Item-module__gn-composite-bar-item__title-adornment___Xcopn{margin-right:0}.Item-module__gn-composite-bar-item__menu-divider___hkm-Z{border-top:1px solid var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));cursor:default;margin:0 8px;width:100%}.Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to{padding:4px 0}.Item-module__gn-composite-bar-item__link___McAVN{align-items:center;display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__link___McAVN, .Item-module__gn-composite-bar-item__link___McAVN:active, .Item-module__gn-composite-bar-item__link___McAVN:focus, .Item-module__gn-composite-bar-item__link___McAVN:hover, .Item-module__gn-composite-bar-item__link___McAVN:visited{color:inherit;outline:none;text-decoration:none}.Item-module__gn-composite-bar-item_title-lines_2___u8Dcn .Item-module__gn-composite-bar-item__icon-place___jPKRh{align-items:flex-start;align-self:flex-start}.Item-module__gn-composite-bar-item_title-lines_2___u8Dcn .Item-module__gn-composite-bar-item__chevron___ZZ-vf, .Item-module__gn-composite-bar-item_title-lines_2___u8Dcn .Item-module__gn-composite-bar-item__icon-place___jPKRh, .Item-module__gn-composite-bar-item_title-lines_2___u8Dcn .Item-module__gn-composite-bar-item__title___wj5L5{padding-block:var(--g-spacing-1)}.Item-module__gn-composite-bar-item__btn-icon___SwT65{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Item-module__gn-composite-bar-item_type_action___2jxO8{--_--row-surface-color:var(
12
+ --gn-aside-header-item-action-color,var(--_--item-action-color)
13
+ );border-radius:var(--gn-composite-bar-item-action-size);height:var(--gn-composite-bar-item-action-size);justify-content:center;margin:0 10px 8px;transition:transform .1s ease-out,background-color .15s linear}.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__surface___iqsAp{box-shadow:0 0 0 1px rgba(0,0,0,.03),0 5px 6px rgba(0,0,0,.12);transition:background-color .15s linear}.Item-module__gn-composite-bar-item_type_action___2jxO8:focus-visible .Item-module__gn-composite-bar-item__surface___iqsAp{box-shadow:0 0 0 2px var(--g-color-line-misc)}.Item-module__gn-composite-bar-item_type_action___2jxO8:hover{--_--row-surface-color:var(
14
+ --gn-aside-header-item-action-color-hover,var(--_--item-action-color-hover)
15
+ )}.Item-module__gn-composite-bar-item_type_action___2jxO8:active{transform:scale(.96);transition:none}.Item-module__gn-composite-bar-item_type_action___2jxO8:active .Item-module__gn-composite-bar-item__surface___iqsAp{box-shadow:0 1px 2px var(--g-color-sfx-shadow);transition:none}.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__icon-place___jPKRh{width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_type_action___2jxO8.gn-footer-item{width:calc(100% - 20px)}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i{align-items:center;box-sizing:border-box;display:flex;height:30px;padding:8px 12px}.Item-module__gn-composite-bar-item__icon-tooltip___PxU2i .g-action-tooltip__description{color:var(--g-color-text-light-primary);margin:0;margin-block:0}.Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR{margin-left:10px}.Item-module__gn-composite-bar-item__icon-popover___euq-P{--_--popup-min-width:200px;--_--popup-row-padding-inline:var(--g-spacing-3);--_--popup-icon-place-width:var(--_--gn-aside-header-density-icon-size,18px);--_--floating-surface-box-shadow-default:0 0 0 1px var(--g-color-line-generic-solid),0 3px 10px 0 var(--g-color-sfx-shadow),0 8px 20px -4px var(--g-color-sfx-shadow)}.Item-module__gn-composite-bar-item__icon-popover___euq-P.g-root_theme_dark, .Item-module__gn-composite-bar-item__icon-popover___euq-P.g-root_theme_dark-hc, .g-root_theme_dark .Item-module__gn-composite-bar-item__icon-popover___euq-P, .g-root_theme_dark-hc .Item-module__gn-composite-bar-item__icon-popover___euq-P{--_--floating-surface-box-shadow-default:0 0 0 1px var(--g-color-line-generic-solid),0 4px 12px 0 var(--g-color-sfx-veil),0 10px 24px -2px var(--g-color-sfx-shadow-heavy)}.Item-module__gn-composite-bar-item__icon-popover___euq-P{align-items:center;border-radius:var(--_--popup-border-radius);box-shadow:var(--gn-aside-header-floating-surface-box-shadow,var(--_--floating-surface-box-shadow-default));box-sizing:border-box;display:flex;min-width:var(--_--popup-min-width);overflow:hidden;padding:var(--_--popup-padding)}.Item-module__gn-composite-bar-item__icon-popover_single-label___mc-tU{--_--popup-min-width:0;--_--popup-row-padding-inline:var(--g-spacing-2);box-shadow:var(--gn-aside-header-floating-surface-box-shadow,0 0 0 1px var(--g-color-line-generic-solid),0 2px 8px 0 var(--g-color-sfx-shadow))}.Item-module__gn-composite-bar-item__icon-popover_item-type_action___ep-D3{margin-left:10px}.Item-module__gn-composite-bar-item__popup-content___oys3t{border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--gn-aside-header-density-item-expanded-radius,8px));box-sizing:border-box;width:100%}.Item-module__gn-composite-bar-item__popup-content_single-label___done-{overflow:hidden}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__root-menu-item___nlpvH[class]{background:none;box-sizing:border-box;overflow:visible;padding-block-end:1px;position:relative}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__root-menu-item___nlpvH[class].g-list__item_active, .Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__root-menu-item___nlpvH[class].g-list__item_active.g-list__item_selected, .Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__root-menu-item___nlpvH[class].g-list__item_selected{background:none}.Item-module__gn-composite-bar-item__popup-title___2-tGd{box-sizing:border-box;color:var(--g-color-text-secondary);display:block;font-family:var(--g-text-body-font-family);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);font-weight:var(--g-text-subheader-font-weight);height:var(--_--popup-title-height);line-height:var(--g-text-body-1-line-height);overflow:hidden;padding:6px var(--_--popup-row-padding-inline);text-overflow:ellipsis;white-space:nowrap}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__popup-item___MPgm3.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__title___wj5L5{flex:1 1 auto;margin:0 var(--_--gn-aside-header-density-item-title-gap-end,var(--g-spacing-4)) 0 var(--_--popup-row-padding-inline);min-width:0}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__popup-item___MPgm3:not(.Item-module__gn-composite-bar-item_hide-icon___bf5h3){padding-inline-start:var(--_--popup-row-padding-inline)}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__popup-item___MPgm3:not(.Item-module__gn-composite-bar-item_hide-icon___bf5h3) .Item-module__gn-composite-bar-item__icon-place___jPKRh{width:var(--_--popup-icon-place-width)}.Item-module__gn-composite-bar-item__popup-content___oys3t .Item-module__gn-composite-bar-item__popup-item___MPgm3:not(.Item-module__gn-composite-bar-item_hide-icon___bf5h3) .Item-module__gn-composite-bar-item__title___wj5L5{flex:1 1 auto;margin-left:var(--g-spacing-2);min-width:0}.Item-module__gn-composite-bar-item__popup-item___MPgm3{box-sizing:border-box}.Item-module__gn-composite-bar-item__popup-item___MPgm3.Item-module__gn-composite-bar-item_type_regular___wkhsT{border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--gn-aside-header-density-item-expanded-radius,8px));height:32px}.Item-module__gn-composite-bar-item__popup-content_single-label___done- .Item-module__gn-composite-bar-item__root-menu-item___nlpvH[class]{align-items:stretch}.Item-module__gn-composite-bar-item__popup-content_single-label___done- .Item-module__gn-composite-bar-item__popup-item___MPgm3.Item-module__gn-composite-bar-item_type_regular___wkhsT{border-radius:var(--_--popup-border-radius);height:100%;min-height:0}.Item-module__gn-composite-bar-item__popup-content_single-label___done- .Item-module__gn-composite-bar-item__popup-item___MPgm3.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__title___wj5L5{margin:0 var(--_--popup-row-padding-inline)}.Item-module__gn-composite-bar-item__popup-content_single-label___done- .Item-module__gn-composite-bar-item__popup-item___MPgm3.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__title-text___cILJo{-webkit-line-clamp:unset;line-clamp:unset;display:block;white-space:nowrap}.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__icon-place___jPKRh{display:none}.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__title___wj5L5{margin-left:var(--g-spacing-4)}.Item-module__gn-composite-bar-item_menu-group-nested___CVzJD{padding-inline-start:calc(var(--_--gn-aside-header-density-item-height, 40px)/2 + var(--_--menu-group-tree-connector-width, 16px)/2 + var(--g-spacing-1))}.Item-module__gn-composite-bar-item_menu-group-nested___CVzJD.Item-module__gn-composite-bar-item_hide-icon___bf5h3{padding-inline-start:calc(var(--_--gn-aside-header-density-item-height, 40px) + var(--_--gn-aside-header-density-item-title-gap, var(--g-spacing-2)))}.Item-module__gn-composite-bar-item_menu-group-nested___CVzJD.Item-module__gn-composite-bar-item_hide-icon___bf5h3 .Item-module__gn-composite-bar-item__title___wj5L5{margin-left:0}.Item-module__gn-composite-bar-item_menu-group-nested___CVzJD .Item-module__gn-composite-bar-item__title___wj5L5{flex:1 1 auto;min-width:0}.Item-module__gn-composite-bar-item_menu-group-nested___CVzJD.Item-module__gn-composite-bar-item_title-lines_2___u8Dcn{--_--menu-group-tree-connector-hook-inset-block:calc(var(--g-spacing-1) + var(--_--gn-aside-header-density-icon-size, 18px)/2)}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM).Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
16
+ --gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)
17
+ );border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
18
+ --gn-aside-header-item-current-background-color-hover,var(
19
+ --gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)
20
+ )
21
+ );border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item___-pkx5:not(.Item-module__gn-composite-bar-item_compact___PVTeM):not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
22
+ --gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover)
23
+ );border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row___m-4WB{--_--item-expanded-radius:var(
24
+ --_--gn-aside-header-density-item-expanded-radius,8px
25
+ );--_--item-background-color-hover:var(--g-color-base-simple-hover);--_--item-selected-background-color:var(--g-color-base-selection);--_--item-chevron-padding-right:var(--g-spacing-1);display:flex;height:100%;width:100%}.Item-module__gn-composite-bar-item__group-header-row___m-4WB:hover{background-color:var(--gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover));border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row_current___YYm8y{background-color:var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color));border-radius:var(--gn-aside-header-item-expanded-radius,var(--_--item-expanded-radius))}.Item-module__gn-composite-bar-item__group-header-row_current___YYm8y:hover{background-color:var(--gn-aside-header-item-current-background-color-hover,var(--gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)))}.Item-module__gn-composite-bar-item___-pkx5.Item-module__gn-composite-bar-item_with-chevron-control___5F9O3.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:transparent}.Item-module__gn-composite-bar-item_with-chevron-control___5F9O3{align-self:stretch;flex:1 1 auto;height:auto;min-width:0;width:auto}.Item-module__gn-composite-bar-item___-pkx5.Item-module__gn-composite-bar-item_with-chevron-control___5F9O3:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{background-color:transparent}.Item-module__gn-composite-bar-item__chevron___ZZ-vf{align-items:center;align-self:stretch;display:flex;flex-shrink:0;margin-left:auto;padding-left:var(--g-spacing-2);padding-right:var(--gn-aside-header-item-chevron-padding-right,var(--_--item-chevron-padding-right))}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC{background:transparent;border:none;color:var(--g-color-text-secondary);cursor:pointer;padding-bottom:0;padding-top:0}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC:hover{color:var(--g-color-text-primary)}.Item-module__gn-composite-bar-item__chevron_interactive___jmUhC:focus-visible{box-shadow:inset 0 0 0 2px var(--g-color-line-misc);outline:none}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8{margin-inline:auto;width:var(--gn-composite-bar-item-action-size)}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__surface___iqsAp{border-radius:inherit;height:auto;inset:0;width:auto}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_type_action___2jxO8 .Item-module__gn-composite-bar-item__title___wj5L5{margin:0}.Item-module__gn-composite-bar-item_compact___PVTeM.Item-module__gn-composite-bar-item_current___NT2hB.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
26
+ --gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)
27
+ )}.Item-module__gn-composite-bar-item_compact___PVTeM:hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
28
+ --gn-aside-header-item-current-background-color-hover,var(
29
+ --gn-aside-header-item-current-background-color,var(--_--item-selected-background-color)
30
+ )
31
+ )}.Item-module__gn-composite-bar-item_compact___PVTeM:not(.Item-module__gn-composite-bar-item_current___NT2hB):hover.Item-module__gn-composite-bar-item_type_regular___wkhsT{--_--row-surface-color:var(
32
+ --gn-aside-header-item-background-color-hover,var(--_--item-background-color-hover)
33
+ )}
@@ -1,14 +1,20 @@
1
1
  import './Item.css';
2
2
  import React__default from 'react';
3
- import { ChevronUp, ChevronDown, ChevronRight } from '@gravity-ui/icons';
4
- import { Icon, Popup } from '@gravity-ui/uikit';
5
- import { ASIDE_HEADER_ICON_SIZE } from '../../../../constants.js';
3
+ import { ChevronDown, ChevronRight } from '@gravity-ui/icons';
4
+ import { setRef, Icon, Popup } from '@gravity-ui/uikit';
6
5
  import { createBlock } from '../../../../utils/cn.js';
6
+ import { useSafeAsideHeaderContext } from '../../../AsideHeaderContext.js';
7
+ import { getAsideHeaderDensityConfig } from '../../../density.js';
7
8
  import i18n from '../../../i18n/index.js';
9
+ import { isQuickAccessPinEligible } from '../../../quickAccess.js';
10
+ import { AsideDivider } from '../../AsideDivider.js';
11
+ import { CURRENT_IDS_ATTRIBUTE } from '../../PageLayout/currentIndicatorDom.js';
8
12
  import { HighlightedItem } from '../HighlightedItem/HighlightedItem.js';
9
- import { ITEM_TYPE_REGULAR, COLLAPSE_ITEM_ID } from '../constants.js';
13
+ import { ITEM_TYPE_REGULAR, COLLAPSE_ITEM_ID, COMPOSITE_BAR_ITEM_ID_ATTRIBUTE } from '../constants.js';
14
+ import { getItemPresentationCurrentIds } from '../presentationCurrent.js';
10
15
  import { ItemPopup } from './ItemPopup.js';
11
16
  import { ItemPopupNestContext } from './ItemPopupNestContext.js';
17
+ import { ItemQuickAccessPin } from './ItemQuickAccessPin.js';
12
18
  import { renderItemTitle } from './renderItemTitle.js';
13
19
  import styles from './Item.module.scss.js';
14
20
 
@@ -16,7 +22,33 @@ const b = createBlock('composite-bar-item', styles);
16
22
  const defaultPopupPlacement = ['right-end'];
17
23
  const defaultPopupOffset = { mainAxis: 14 };
18
24
  const CHEVRON_SIZE = 16;
19
- const CHEVRON_SIZE_COMPACT = 10;
25
+ function shouldShowMenuPopup({ type, popupItems, collapsedItem, inlineGroupHeader, groupHeaderExpanded, }) {
26
+ return (type !== 'divider' &&
27
+ Boolean(popupItems === null || popupItems === undefined ? undefined : popupItems.length) &&
28
+ (collapsedItem || !inlineGroupHeader || !groupHeaderExpanded));
29
+ }
30
+ function shouldShowLabelPopup({ isDivider, compact, hasPopupItems, disabled, }) {
31
+ return !isDivider && Boolean(compact) && !hasPopupItems && !disabled;
32
+ }
33
+ function shouldShowChevron({ compact, inlineGroupHeader, hasPopupItems, }) {
34
+ if (inlineGroupHeader) {
35
+ return !compact;
36
+ }
37
+ return !compact && hasPopupItems;
38
+ }
39
+ function getExpandedTitleLines({ type, compact, menuPopupRow, titleLines, }) {
40
+ if (type !== ITEM_TYPE_REGULAR || compact || menuPopupRow) {
41
+ return 1;
42
+ }
43
+ return titleLines;
44
+ }
45
+ function shouldShowQuickAccessPin({ enabled, compact, popupItems, item, onToggle, }) {
46
+ return (Boolean(enabled) &&
47
+ !compact &&
48
+ !(popupItems === null || popupItems === undefined ? undefined : popupItems.length) &&
49
+ isQuickAccessPinEligible(item) &&
50
+ typeof onToggle === 'function');
51
+ }
20
52
  function getChevronFallbackLabel(expanded) {
21
53
  return expanded ? i18n('button_collapse') : i18n('button_expand');
22
54
  }
@@ -27,24 +59,54 @@ function resolveItemAriaLabel(ariaProps, titleLabel) {
27
59
  function resolveAnchorRef(anchorRef, fallback) {
28
60
  return (anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) ? anchorRef : fallback;
29
61
  }
30
- function shouldShowFlyoutChevron(hasPopupItems, compact, hideCompactChevron) {
31
- return hasPopupItems && !(compact && hideCompactChevron);
32
- }
33
62
  const Item = (props) => {
34
- const { className, popupItemClassName, menuPopupItems, menuPopupTitle, groupHeaderExpanded, compact, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupRef: anchoreRefProp, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onOpenChangePopup, onItemClick, onPopupItemClick, onItemClickCapture, itemWrapper, bringForward, rightAdornment, title, href, qa, hideIcon = false, stopClickPropagation = false, menuGroupNestedTreeConnector, menuItemAriaProps, onGroupHeaderChevronClick, hideCompactChevron, } = props;
35
- const [compactNavPopoverOpen, setCompactNavPopoverOpen] = React__default.useState(false);
63
+ const { className, popupItemClassName, menuPopupItems, menuPopupTitle, groupHeaderExpanded, compact, onMouseLeave, onMouseEnter, enableTooltip = true, popupVisible = false, popupRef: anchoreRefProp, popupPlacement = defaultPopupPlacement, popupOffset = defaultPopupOffset, popupKeepMounted, renderPopupContent, onOpenChangePopup, onItemClick, onPopupItemClick, onItemClickCapture, itemWrapper, bringForward, rightAdornment, title, href, qa, hideIcon = false, menuPopupHideIcon, menuPopupNestedHideIcon, stopClickPropagation = false, menuGroupNestedTreeConnector, menuGroupNested, menuItemAriaProps, menuPopupRow, suppressCurrentHighlight = false, suppressCurrentItemIds, enableQuickAccessPin, quickAccessPinItem: quickAccessPinItemProp, onToggleQuickAccess, onGroupHeaderChevronClick, } = props;
64
+ const [labelPopupOpen, setLabelPopupOpen] = React__default.useState(false);
65
+ const [menuPopupOpen, setMenuPopupOpen] = React__default.useState(false);
36
66
  const ref = React__default.useRef(null);
67
+ const mergedRowRef = React__default.useCallback((element) => {
68
+ setRef(ref, element);
69
+ setRef(props.rowRef, element);
70
+ }, [props.rowRef]);
37
71
  const anchorRef = resolveAnchorRef(anchoreRefProp, ref);
38
72
  const highlightedRef = React__default.useRef(null);
73
+ const interactiveRowRef = React__default.useRef(null);
39
74
  const type = props.type || ITEM_TYPE_REGULAR;
40
75
  const icon = props.icon;
41
- const iconSize = props.iconSize || ASIDE_HEADER_ICON_SIZE;
76
+ const asideHeaderContext = useSafeAsideHeaderContext();
77
+ const defaultIconSize = getAsideHeaderDensityConfig(asideHeaderContext === null || asideHeaderContext === undefined ? undefined : asideHeaderContext.menuDensity).iconSize;
78
+ const iconSize = props.iconSize || defaultIconSize;
42
79
  const iconQa = props.iconQa;
43
80
  const collapsedItem = props.id === COLLAPSE_ITEM_ID;
44
81
  const inlineGroupHeader = groupHeaderExpanded !== undefined;
45
82
  const resolvedMenuPopupItems = menuPopupItems !== null && menuPopupItems !== undefined ? menuPopupItems : props.compositeBarMenuPopupItems;
46
83
  const resolvedMenuPopupTitle = menuPopupTitle !== null && menuPopupTitle !== undefined ? menuPopupTitle : props.compositeBarMenuPopupTitle;
47
- const current = props.current || (resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.some((item) => item.current)) || false;
84
+ const currentIds = suppressCurrentHighlight
85
+ ? []
86
+ : getItemPresentationCurrentIds(props, {
87
+ suppressCurrentItemIds,
88
+ popupItems: resolvedMenuPopupItems,
89
+ });
90
+ const current = currentIds.length > 0;
91
+ const currentIdsMetadata = !menuPopupRow && currentIds.length ? JSON.stringify(currentIds) : undefined;
92
+ const quickAccessPinItem = quickAccessPinItemProp !== null && quickAccessPinItemProp !== undefined ? quickAccessPinItemProp : props;
93
+ const showQuickAccessPin = shouldShowQuickAccessPin({
94
+ enabled: enableQuickAccessPin,
95
+ compact,
96
+ popupItems: resolvedMenuPopupItems,
97
+ item: quickAccessPinItem,
98
+ onToggle: onToggleQuickAccess,
99
+ });
100
+ const [quickAccessPinSuppressed, setQuickAccessPinSuppressed] = React__default.useState(false);
101
+ const handleToggleQuickAccess = React__default.useCallback((event) => {
102
+ onToggleQuickAccess === null || onToggleQuickAccess === undefined ? undefined : onToggleQuickAccess(quickAccessPinItem, event);
103
+ // Pointer clicks should not leave the control under the cursor after the row moves.
104
+ // Keep keyboard-triggered controls visible and focused.
105
+ if (event.detail > 0) {
106
+ setQuickAccessPinSuppressed(true);
107
+ event.currentTarget.blur();
108
+ }
109
+ }, [onToggleQuickAccess, quickAccessPinItem]);
48
110
  const handleOpenChangePopup = React__default.useCallback((newOpen, event, reason) => {
49
111
  var _a;
50
112
  if (event instanceof MouseEvent &&
@@ -53,29 +115,51 @@ const Item = (props) => {
53
115
  return;
54
116
  }
55
117
  if (newOpen) {
56
- setCompactNavPopoverOpen(false);
118
+ setLabelPopupOpen(false);
119
+ setMenuPopupOpen(false);
57
120
  }
58
121
  onOpenChangePopup === null || onOpenChangePopup === undefined ? undefined : onOpenChangePopup(newOpen, event, reason);
59
122
  }, [onOpenChangePopup]);
60
123
  const isDivider = type === 'divider';
61
- const showMenuPopup = !isDivider &&
62
- Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length) &&
63
- (collapsedItem || !inlineGroupHeader);
124
+ const showMenuPopup = shouldShowMenuPopup({
125
+ type,
126
+ popupItems: resolvedMenuPopupItems,
127
+ collapsedItem,
128
+ inlineGroupHeader,
129
+ groupHeaderExpanded,
130
+ });
131
+ const compactPopoverDisabled = !enableTooltip || popupVisible || type === 'action';
132
+ const labelPopupAvailable = shouldShowLabelPopup({
133
+ isDivider,
134
+ compact,
135
+ hasPopupItems: Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length),
136
+ disabled: compactPopoverDisabled,
137
+ });
138
+ React__default.useEffect(() => {
139
+ if (!showMenuPopup)
140
+ setMenuPopupOpen(false);
141
+ if (!labelPopupAvailable)
142
+ setLabelPopupOpen(false);
143
+ }, [showMenuPopup, labelPopupAvailable]);
64
144
  const submenuNest = React__default.useContext(ItemPopupNestContext);
65
145
  React__default.useEffect(() => {
66
- if (!submenuNest || !showMenuPopup || !compactNavPopoverOpen) {
146
+ if (!submenuNest || !showMenuPopup || !menuPopupOpen) {
67
147
  return undefined;
68
148
  }
69
149
  submenuNest.registerNestedOpen(1);
70
150
  return () => {
71
151
  submenuNest.registerNestedOpen(-1);
72
152
  };
73
- }, [submenuNest, showMenuPopup, compactNavPopoverOpen]);
153
+ }, [submenuNest, showMenuPopup, menuPopupOpen]);
74
154
  if (isDivider) {
75
- return React__default.createElement("div", { className: b('menu-divider') });
155
+ return (React__default.createElement(AsideDivider, { as: "div", className: b('menu-divider'), transitionId: `item/${props.id}` }));
76
156
  }
77
- const compactPopoverDisabled = !enableTooltip || popupVisible || type === 'action';
78
- const showFlyoutChevron = shouldShowFlyoutChevron(Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length), compact, hideCompactChevron);
157
+ const expandedTitleLines = getExpandedTitleLines({
158
+ type,
159
+ compact,
160
+ menuPopupRow,
161
+ titleLines: props.titleLines,
162
+ });
79
163
  const makeIconNode = (iconEl, withCompactPopover = true) => {
80
164
  if (!compact) {
81
165
  return iconEl;
@@ -84,10 +168,10 @@ const Item = (props) => {
84
168
  if (!withCompactPopover || (resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length)) {
85
169
  return iconButton;
86
170
  }
87
- return (React__default.createElement(ItemPopup, { items: [props], open: compactNavPopoverOpen, onOpenChange: (nextOpen) => {
171
+ return (React__default.createElement(ItemPopup, { items: [quickAccessPinItem], variant: "label", highlightCurrentItem: false, open: labelPopupOpen, onOpenChange: (nextOpen) => {
88
172
  if (nextOpen && compactPopoverDisabled)
89
173
  return;
90
- setCompactNavPopoverOpen(nextOpen);
174
+ setLabelPopupOpen(nextOpen);
91
175
  }, hideIcon: true, itemClassName: popupItemClassName, disabled: compactPopoverDisabled, type: type, collapsed: compact,
92
176
  /**
93
177
  * No `onPopupItemClick` here on purpose: this popup renders the item itself
@@ -96,14 +180,20 @@ const Item = (props) => {
96
180
  * the AsideHeader handler; the direct path would pass the wrapper as
97
181
  * `item.onItemClick` and trigger the handler twice (toggling All pages back).
98
182
  */
99
- onItemClick: onItemClick }, iconButton));
183
+ onItemClick: onItemClick, suppressCurrentItemIds: suppressCurrentItemIds }, iconButton));
100
184
  };
101
185
  const ariaLabel = typeof title === 'string' ? title : undefined;
102
186
  const resolvedAriaLabel = resolveItemAriaLabel(menuItemAriaProps, ariaLabel);
187
+ const showSurface = !menuPopupRow && [ITEM_TYPE_REGULAR, 'action'].includes(type);
103
188
  const makeNode = ({ icon: iconEl, title: titleEl }) => {
104
189
  var _a;
105
190
  const wrappedByItemWrapper = typeof itemWrapper === 'function';
106
- const chevronClick = inlineGroupHeader ? onGroupHeaderChevronClick : undefined;
191
+ const showChevron = shouldShowChevron({
192
+ compact,
193
+ inlineGroupHeader,
194
+ hasPopupItems: Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length),
195
+ });
196
+ const chevronClick = showChevron && inlineGroupHeader ? onGroupHeaderChevronClick : undefined;
107
197
  /* With a sibling chevron control, the wrapper becomes the outer box of the row,
108
198
  so the external className (outer layout) is applied to it instead of the row. */
109
199
  const rowClassName = b({
@@ -111,41 +201,51 @@ const Item = (props) => {
111
201
  current,
112
202
  compact,
113
203
  'hide-icon': hideIcon,
204
+ 'menu-group-nested': menuGroupNested,
205
+ 'menu-popup-row': menuPopupRow,
206
+ 'with-quick-access-pin': showQuickAccessPin,
207
+ 'title-lines': expandedTitleLines === null || expandedTitleLines === undefined ? undefined : expandedTitleLines.toString(),
114
208
  'with-chevron-control': Boolean(chevronClick),
115
209
  }, chevronClick ? undefined : className);
116
210
  const handleRowClick = (event) => {
211
+ var _a;
117
212
  if (compact && !collapsedItem && !showMenuPopup && !current) {
118
- setCompactNavPopoverOpen(false);
213
+ setLabelPopupOpen(false);
214
+ }
215
+ if (event.detail > 0) {
216
+ const activeElement = event.currentTarget.ownerDocument.activeElement;
217
+ if (activeElement instanceof HTMLElement &&
218
+ ((_a = interactiveRowRef.current) === null || _a === undefined ? undefined : _a.contains(activeElement))) {
219
+ activeElement.blur();
220
+ }
119
221
  }
120
222
  onItemClick === null || onItemClick === undefined ? undefined : onItemClick(props, collapsedItem, event);
121
223
  if (stopClickPropagation) {
122
224
  event.stopPropagation();
123
225
  }
124
226
  };
125
- const chevronSize = compact ? CHEVRON_SIZE_COMPACT : CHEVRON_SIZE;
126
227
  let chevronNode = null;
127
228
  let chevronControl = null;
128
229
  if (chevronClick) {
129
- chevronControl = (React__default.createElement("button", { type: "button", className: b('chevron', { interactive: true }), "aria-label": resolvedAriaLabel !== null && resolvedAriaLabel !== undefined ? resolvedAriaLabel : getChevronFallbackLabel(groupHeaderExpanded), "aria-expanded": groupHeaderExpanded, onClick: (event) => {
230
+ chevronControl = (React__default.createElement("button", { type: "button", className: b('chevron', { interactive: true }), "aria-label": [getChevronFallbackLabel(groupHeaderExpanded), resolvedAriaLabel]
231
+ .filter(Boolean)
232
+ .join(' '), "aria-expanded": groupHeaderExpanded, onClick: (event) => {
130
233
  event.stopPropagation();
131
234
  chevronClick(event);
132
235
  } },
133
- React__default.createElement(Icon, { data: groupHeaderExpanded ? ChevronUp : ChevronDown, size: chevronSize })));
236
+ React__default.createElement(Icon, { data: groupHeaderExpanded ? ChevronDown : ChevronRight, size: CHEVRON_SIZE })));
134
237
  }
135
- else if (inlineGroupHeader) {
238
+ else if (showChevron) {
136
239
  chevronNode = (React__default.createElement("div", { className: b('chevron') },
137
- React__default.createElement(Icon, { data: groupHeaderExpanded ? ChevronUp : ChevronDown, size: chevronSize })));
138
- }
139
- else if (showFlyoutChevron) {
140
- chevronNode = (React__default.createElement("div", { className: b('chevron') },
141
- React__default.createElement(Icon, { data: ChevronRight, size: chevronSize })));
240
+ React__default.createElement(Icon, { data: groupHeaderExpanded ? ChevronDown : ChevronRight, size: CHEVRON_SIZE })));
142
241
  }
143
242
  const rowChildren = (React__default.createElement(React__default.Fragment, null,
243
+ showSurface && (React__default.createElement("span", { className: b('surface'), "data-gn-aside-part": "surface", "aria-hidden": true })),
144
244
  menuGroupNestedTreeConnector,
145
- React__default.createElement("div", { className: b('icon-place'), ref: highlightedRef }, makeIconNode(iconEl)),
146
- React__default.createElement("div", { className: b('title'), title: ariaLabel }, titleEl),
245
+ React__default.createElement("div", { className: b('icon-place'), ref: highlightedRef, "data-gn-aside-part": "icon" }, makeIconNode(iconEl)),
246
+ React__default.createElement("div", { className: b('title'), "data-gn-aside-part": "title", title: ariaLabel }, titleEl),
147
247
  chevronNode));
148
- const rowEventProps = Object.assign(Object.assign({}, (menuItemAriaProps !== null && menuItemAriaProps !== undefined ? menuItemAriaProps : {})), { className: rowClassName, 'data-type': type, 'data-qa': qa, 'aria-label': resolvedAriaLabel, onClick: handleRowClick, onClickCapture: onItemClickCapture, onMouseEnter: () => {
248
+ const rowEventProps = Object.assign(Object.assign({}, (menuItemAriaProps !== null && menuItemAriaProps !== undefined ? menuItemAriaProps : {})), { className: rowClassName, 'data-type': type, 'data-qa': qa, [COMPOSITE_BAR_ITEM_ID_ATTRIBUTE]: props.id, [CURRENT_IDS_ATTRIBUTE]: currentIdsMetadata, 'data-gn-aside-nested': menuGroupNested ? '' : undefined, 'aria-label': resolvedAriaLabel, onClick: handleRowClick, onClickCapture: onItemClickCapture, onMouseEnter: () => {
149
249
  if (!compact) {
150
250
  onMouseEnter === null || onMouseEnter === undefined ? undefined : onMouseEnter();
151
251
  }
@@ -156,40 +256,55 @@ const Item = (props) => {
156
256
  } });
157
257
  let tagNode;
158
258
  if (href) {
159
- tagNode = (React__default.createElement("a", Object.assign({}, rowEventProps, { href: href, ref: ref }), rowChildren));
259
+ tagNode = (React__default.createElement("a", Object.assign({}, rowEventProps, { href: href, ref: mergedRowRef }), rowChildren));
160
260
  }
161
261
  else if (wrappedByItemWrapper) {
162
- tagNode = (React__default.createElement("div", Object.assign({}, rowEventProps, { role: (_a = menuItemAriaProps === null || menuItemAriaProps === undefined ? undefined : menuItemAriaProps.role) !== null && _a !== undefined ? _a : 'button', ref: ref }), rowChildren));
262
+ tagNode = (React__default.createElement("div", Object.assign({}, rowEventProps, { role: (_a = menuItemAriaProps === null || menuItemAriaProps === undefined ? undefined : menuItemAriaProps.role) !== null && _a !== undefined ? _a : 'button', ref: mergedRowRef }), rowChildren));
163
263
  }
164
264
  else {
165
- tagNode = (React__default.createElement("button", Object.assign({}, rowEventProps, { ref: ref }), rowChildren));
265
+ tagNode = (React__default.createElement("button", Object.assign({}, rowEventProps, { ref: mergedRowRef }), rowChildren));
166
266
  }
167
267
  if (chevronControl) {
168
- tagNode = (React__default.createElement("div", { className: b('group-header-row', className) },
268
+ tagNode = (React__default.createElement("div", { className: b('group-header-row', { current }, className) },
169
269
  tagNode,
170
270
  chevronControl));
171
271
  }
172
272
  const expandedMenuRows = resolvedMenuPopupItems;
173
- const wrappedTagNode = showMenuPopup && expandedMenuRows ? (React__default.createElement(ItemPopup, { items: expandedMenuRows, title: resolvedMenuPopupTitle, open: compactNavPopoverOpen, itemClassName: popupItemClassName, onOpenChange: setCompactNavPopoverOpen, collapsed: collapsedItem ? true : compact, onPopupItemClick: onPopupItemClick, onItemClick: onItemClick }, tagNode)) : (tagNode);
273
+ const wrappedTagNode = showMenuPopup && expandedMenuRows ? (React__default.createElement(ItemPopup, { items: expandedMenuRows, title: resolvedMenuPopupTitle, open: menuPopupOpen, itemClassName: popupItemClassName, hideIcon: menuPopupHideIcon, nestedPopupHideIcon: menuPopupNestedHideIcon, onOpenChange: setMenuPopupOpen, collapsed: collapsedItem ? true : compact, onPopupItemClick: onPopupItemClick, onItemClick: onItemClick, enableQuickAccessPin: enableQuickAccessPin, onToggleQuickAccess: onToggleQuickAccess, suppressCurrentItemIds: suppressCurrentItemIds }, tagNode)) : (tagNode);
174
274
  const createdNode = (React__default.createElement(React__default.Fragment, null,
175
275
  wrappedTagNode,
176
276
  renderPopupContent && Boolean(anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) && (React__default.createElement(Popup, { strategy: "fixed", open: popupVisible, keepMounted: popupKeepMounted, placement: popupPlacement, offset: popupOffset, anchorElement: anchorRef.current, onOpenChange: handleOpenChangePopup }, renderPopupContent()))));
177
277
  return createdNode;
178
278
  };
279
+ const wrapWithQuickAccessPin = (rowNode) => {
280
+ if (!showQuickAccessPin) {
281
+ return rowNode;
282
+ }
283
+ return (React__default.createElement("div", { ref: interactiveRowRef, className: b('interactive-row', { 'menu-popup': menuPopupRow }), onMouseLeave: () => setQuickAccessPinSuppressed(false) },
284
+ rowNode,
285
+ React__default.createElement("span", { className: b('quick-access-pin-slot', {
286
+ suppressed: quickAccessPinSuppressed,
287
+ }) },
288
+ React__default.createElement(ItemQuickAccessPin, { quickAccess: quickAccessPinItem.quickAccess, onToggle: handleToggleQuickAccess }))));
289
+ };
179
290
  const iconNode = hideIcon || !icon ? null : (React__default.createElement(Icon, { qa: iconQa, data: icon, size: iconSize, className: b('icon') }));
180
- const titleNode = renderItemTitle({ title, rightAdornment });
291
+ const titleNode = renderItemTitle({
292
+ title,
293
+ rightAdornment,
294
+ titleLines: expandedTitleLines,
295
+ });
181
296
  const params = { icon: iconNode, title: titleNode };
182
297
  let highlightedNode = null;
183
298
  let node;
184
299
  const opts = { compact: Boolean(compact), collapsed: false, item: props, ref };
185
300
  if (typeof itemWrapper === 'function') {
186
- node = itemWrapper(params, makeNode, opts);
301
+ node = wrapWithQuickAccessPin(itemWrapper(params, makeNode, opts));
187
302
  highlightedNode =
188
303
  bringForward &&
189
304
  itemWrapper(params, ({ icon: iconEl }) => makeIconNode(iconEl, false), opts);
190
305
  }
191
306
  else {
192
- node = makeNode(params);
307
+ node = wrapWithQuickAccessPin(makeNode(params));
193
308
  highlightedNode = bringForward && makeIconNode(iconNode, false);
194
309
  }
195
310
  return (React__default.createElement(React__default.Fragment, null,