@gravity-ui/navigation 6.6.0 → 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 (292) 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/i18n/en.json.js +1 -3
  19. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  20. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  21. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +2 -4
  22. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  23. package/build/cjs/components/AsideHeader/components/AsideDivider.d.ts +7 -0
  24. package/build/cjs/components/AsideHeader/components/AsideDivider.js +13 -0
  25. package/build/cjs/components/AsideHeader/components/AsideDivider.js.map +1 -0
  26. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  27. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +3 -1
  28. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +12 -8
  29. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  30. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  31. package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.d.ts +20 -0
  32. package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js +170 -0
  33. package/build/cjs/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js.map +1 -0
  34. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +3 -1
  35. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +13 -2
  36. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +53 -39
  37. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  38. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  39. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  40. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +4 -2
  41. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -1
  42. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +33 -1
  43. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +158 -43
  44. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  45. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  46. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +22 -4
  47. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +19 -0
  48. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +137 -20
  49. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
  50. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.d.ts +7 -0
  51. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js +25 -0
  52. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js.map +1 -0
  53. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +1 -1
  54. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +5 -1
  55. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -1
  56. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
  57. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -6
  58. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +14 -5
  59. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
  60. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
  61. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +8 -8
  62. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +68 -33
  63. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
  64. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.d.ts +1 -0
  65. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js +2 -0
  66. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
  67. package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.d.ts +24 -0
  68. package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.js +39 -0
  69. package/build/cjs/components/AsideHeader/components/CompositeBar/presentationCurrent.js.map +1 -0
  70. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +12 -7
  71. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +42 -35
  72. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  73. package/build/cjs/components/AsideHeader/components/FirstPanel.js +129 -10
  74. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
  75. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  76. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +18 -2
  77. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  78. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  79. package/build/cjs/components/AsideHeader/components/Header.js +7 -3
  80. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
  81. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +9 -1
  82. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +1 -0
  83. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +13 -6
  84. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  85. package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.d.ts +80 -0
  86. package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js +600 -0
  87. package/build/cjs/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js.map +1 -0
  88. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.d.ts +14 -0
  89. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js +164 -0
  90. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js.map +1 -0
  91. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.d.ts +14 -0
  92. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js +94 -0
  93. package/build/cjs/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js.map +1 -0
  94. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +9 -1
  95. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -1
  96. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +14 -5
  97. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  98. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +9 -1
  99. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  100. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -2
  101. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  102. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.d.ts +7 -0
  103. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.js +25 -0
  104. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorDom.js.map +1 -0
  105. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.d.ts +25 -0
  106. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.js +89 -0
  107. package/build/cjs/components/AsideHeader/components/PageLayout/currentIndicatorModel.js.map +1 -0
  108. package/build/cjs/components/AsideHeader/components/Panels.js +2 -2
  109. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
  110. package/build/cjs/components/AsideHeader/density.d.ts +21 -0
  111. package/build/cjs/components/AsideHeader/density.js +61 -0
  112. package/build/cjs/components/AsideHeader/density.js.map +1 -0
  113. package/build/cjs/components/AsideHeader/i18n/__mocks__/index.d.ts +1 -0
  114. package/build/cjs/components/AsideHeader/i18n/en.json.js +10 -1
  115. package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -1
  116. package/build/cjs/components/AsideHeader/i18n/index.d.ts +4 -4
  117. package/build/cjs/components/AsideHeader/i18n/ru.json.js +10 -1
  118. package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
  119. package/build/cjs/components/AsideHeader/index.d.ts +1 -0
  120. package/build/cjs/components/AsideHeader/quickAccess.d.ts +9 -0
  121. package/build/cjs/components/AsideHeader/quickAccess.js +31 -0
  122. package/build/cjs/components/AsideHeader/quickAccess.js.map +1 -0
  123. package/build/cjs/components/AsideHeader/types.d.ts +50 -5
  124. package/build/cjs/components/AsideHeader/types.js.map +1 -1
  125. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +18 -3
  126. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  127. package/build/cjs/components/AsideHeader/utils.d.ts +1 -0
  128. package/build/cjs/components/AsideHeader/utils.js +2 -0
  129. package/build/cjs/components/AsideHeader/utils.js.map +1 -1
  130. package/build/cjs/components/Footer/desktop/Footer.css +1 -1
  131. package/build/cjs/components/Footer/mobile/Footer.css +1 -1
  132. package/build/cjs/components/HotkeysPanel/HotkeysPanel.css +1 -1
  133. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +1 -1
  134. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  135. package/build/cjs/components/HotkeysPanel/HotkeysPanel.module.scss.js +1 -1
  136. package/build/cjs/components/Logo/Logo.css +1 -1
  137. package/build/cjs/components/Logo/Logo.d.ts +1 -0
  138. package/build/cjs/components/Logo/Logo.js +4 -4
  139. package/build/cjs/components/Logo/Logo.js.map +1 -1
  140. package/build/cjs/components/constants.d.ts +5 -0
  141. package/build/cjs/components/constants.js +6 -0
  142. package/build/cjs/components/constants.js.map +1 -1
  143. package/build/cjs/components/types.d.ts +4 -4
  144. package/build/docs/components/AsideHeader.md +234 -42
  145. package/build/esm/components/AsideHeader/AsideHeader.css +9 -1
  146. package/build/esm/components/AsideHeader/AsideHeader.js +2 -2
  147. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
  148. package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  149. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +5 -0
  150. package/build/esm/components/AsideHeader/AsideHeaderContext.js +2 -0
  151. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  152. package/build/esm/components/AsideHeader/__playwright__/AsideTransitionExample.d.ts +8 -0
  153. package/build/esm/components/AsideHeader/__playwright__/CollapseButtonExample.d.ts +14 -0
  154. package/build/esm/components/AsideHeader/__playwright__/CompactTransitionExample.d.ts +12 -0
  155. package/build/esm/components/AsideHeader/__playwright__/CurrentIndicatorExample.d.ts +20 -0
  156. package/build/esm/components/AsideHeader/__playwright__/QuickAccessOverflowExample.d.ts +8 -0
  157. package/build/esm/components/AsideHeader/__playwright__/currentIndicatorPaint.d.ts +21 -0
  158. package/build/esm/components/AsideHeader/__playwright__/transitionTestUtils.d.ts +4 -0
  159. package/build/esm/components/AsideHeader/__stories__/fullNavigationMoc.d.ts +6 -0
  160. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +3 -5
  161. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -1
  162. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -3
  163. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  164. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  165. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +2 -4
  166. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  167. package/build/esm/components/AsideHeader/components/AsideDivider.d.ts +7 -0
  168. package/build/esm/components/AsideHeader/components/AsideDivider.js +11 -0
  169. package/build/esm/components/AsideHeader/components/AsideDivider.js.map +1 -0
  170. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  171. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +3 -1
  172. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +12 -8
  173. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  174. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  175. package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.d.ts +20 -0
  176. package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js +167 -0
  177. package/build/esm/components/AsideHeader/components/CollapseButton/useCollapseAnchor.js.map +1 -0
  178. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +3 -1
  179. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +13 -2
  180. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +54 -40
  181. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  182. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  183. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  184. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +4 -2
  185. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -1
  186. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +33 -1
  187. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +161 -46
  188. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  189. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  190. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.types.d.ts +22 -4
  191. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.d.ts +19 -0
  192. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js +139 -23
  193. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemPopup.js.map +1 -1
  194. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.d.ts +7 -0
  195. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js +23 -0
  196. package/build/esm/components/AsideHeader/components/CompositeBar/Item/ItemQuickAccessPin.js.map +1 -0
  197. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.d.ts +1 -1
  198. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js +5 -1
  199. package/build/esm/components/AsideHeader/components/CompositeBar/Item/renderItemTitle.js.map +1 -1
  200. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +1 -1
  201. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +4 -6
  202. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +15 -6
  203. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +1 -1
  204. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +1 -1
  205. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.d.ts +8 -8
  206. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js +68 -33
  207. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollableScrollbarSync.js.map +1 -1
  208. package/build/esm/components/AsideHeader/components/CompositeBar/constants.d.ts +1 -0
  209. package/build/esm/components/AsideHeader/components/CompositeBar/constants.js +2 -1
  210. package/build/esm/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
  211. package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.d.ts +24 -0
  212. package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.js +36 -0
  213. package/build/esm/components/AsideHeader/components/CompositeBar/presentationCurrent.js.map +1 -0
  214. package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +12 -7
  215. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +44 -35
  216. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  217. package/build/esm/components/AsideHeader/components/FirstPanel.js +131 -12
  218. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
  219. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  220. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +18 -2
  221. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  222. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  223. package/build/esm/components/AsideHeader/components/Header.js +8 -4
  224. package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
  225. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +9 -1
  226. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.d.ts +1 -0
  227. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +14 -7
  228. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  229. package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.d.ts +80 -0
  230. package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js +598 -0
  231. package/build/esm/components/AsideHeader/components/PageLayout/AsideLayoutTransition.js.map +1 -0
  232. package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.d.ts +14 -0
  233. package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js +162 -0
  234. package/build/esm/components/AsideHeader/components/PageLayout/CurrentIndicatorTransition.js.map +1 -0
  235. package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.d.ts +14 -0
  236. package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js +92 -0
  237. package/build/esm/components/AsideHeader/components/PageLayout/CurrentPresentationObserver.js.map +1 -0
  238. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +9 -1
  239. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -1
  240. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +15 -6
  241. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  242. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +9 -1
  243. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  244. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +5 -2
  245. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  246. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.d.ts +7 -0
  247. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.js +17 -0
  248. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorDom.js.map +1 -0
  249. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.d.ts +25 -0
  250. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.js +84 -0
  251. package/build/esm/components/AsideHeader/components/PageLayout/currentIndicatorModel.js.map +1 -0
  252. package/build/esm/components/AsideHeader/components/Panels.js +3 -3
  253. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
  254. package/build/esm/components/AsideHeader/density.d.ts +21 -0
  255. package/build/esm/components/AsideHeader/density.js +58 -0
  256. package/build/esm/components/AsideHeader/density.js.map +1 -0
  257. package/build/esm/components/AsideHeader/i18n/__mocks__/index.d.ts +1 -0
  258. package/build/esm/components/AsideHeader/i18n/en.json.js +8 -2
  259. package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -1
  260. package/build/esm/components/AsideHeader/i18n/index.d.ts +4 -4
  261. package/build/esm/components/AsideHeader/i18n/ru.json.js +8 -2
  262. package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
  263. package/build/esm/components/AsideHeader/index.d.ts +1 -0
  264. package/build/esm/components/AsideHeader/quickAccess.d.ts +9 -0
  265. package/build/esm/components/AsideHeader/quickAccess.js +27 -0
  266. package/build/esm/components/AsideHeader/quickAccess.js.map +1 -0
  267. package/build/esm/components/AsideHeader/types.d.ts +50 -5
  268. package/build/esm/components/AsideHeader/types.js.map +1 -1
  269. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +18 -3
  270. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  271. package/build/esm/components/AsideHeader/utils.d.ts +1 -0
  272. package/build/esm/components/AsideHeader/utils.js +2 -1
  273. package/build/esm/components/AsideHeader/utils.js.map +1 -1
  274. package/build/esm/components/Footer/desktop/Footer.css +1 -1
  275. package/build/esm/components/Footer/mobile/Footer.css +1 -1
  276. package/build/esm/components/HotkeysPanel/HotkeysPanel.css +1 -1
  277. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +1 -1
  278. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  279. package/build/esm/components/HotkeysPanel/HotkeysPanel.module.scss.js +1 -1
  280. package/build/esm/components/Logo/Logo.css +1 -1
  281. package/build/esm/components/Logo/Logo.d.ts +1 -0
  282. package/build/esm/components/Logo/Logo.js +4 -4
  283. package/build/esm/components/Logo/Logo.js.map +1 -1
  284. package/build/esm/components/constants.d.ts +5 -0
  285. package/build/esm/components/constants.js +6 -1
  286. package/build/esm/components/constants.js.map +1 -1
  287. package/build/esm/components/types.d.ts +4 -4
  288. package/package.json +1 -1
  289. package/build/cjs/assets/icons/control-menu-button.svg.js +0 -41
  290. package/build/cjs/assets/icons/control-menu-button.svg.js.map +0 -1
  291. package/build/esm/assets/icons/control-menu-button.svg.js +0 -18
  292. package/build/esm/assets/icons/control-menu-button.svg.js.map +0 -1
@@ -4,13 +4,19 @@ import './Item.css';
4
4
  var React = require('react');
5
5
  var icons = require('@gravity-ui/icons');
6
6
  var uikit = require('@gravity-ui/uikit');
7
- var constants$1 = require('../../../../constants.js');
8
7
  var cn = require('../../../../utils/cn.js');
8
+ var AsideHeaderContext = require('../../../AsideHeaderContext.js');
9
+ var density = require('../../../density.js');
9
10
  var index = require('../../../i18n/index.js');
11
+ var quickAccess = require('../../../quickAccess.js');
12
+ var AsideDivider = require('../../AsideDivider.js');
13
+ var currentIndicatorDom = require('../../PageLayout/currentIndicatorDom.js');
10
14
  var HighlightedItem = require('../HighlightedItem/HighlightedItem.js');
11
15
  var constants = require('../constants.js');
16
+ var presentationCurrent = require('../presentationCurrent.js');
12
17
  var ItemPopup = require('./ItemPopup.js');
13
18
  var ItemPopupNestContext = require('./ItemPopupNestContext.js');
19
+ var ItemQuickAccessPin = require('./ItemQuickAccessPin.js');
14
20
  var renderItemTitle = require('./renderItemTitle.js');
15
21
  var Item_module = require('./Item.module.scss.js');
16
22
 
@@ -18,7 +24,33 @@ const b = cn.createBlock('composite-bar-item', Item_module.default);
18
24
  const defaultPopupPlacement = ['right-end'];
19
25
  const defaultPopupOffset = { mainAxis: 14 };
20
26
  const CHEVRON_SIZE = 16;
21
- const CHEVRON_SIZE_COMPACT = 10;
27
+ function shouldShowMenuPopup({ type, popupItems, collapsedItem, inlineGroupHeader, groupHeaderExpanded, }) {
28
+ return (type !== 'divider' &&
29
+ Boolean(popupItems === null || popupItems === undefined ? undefined : popupItems.length) &&
30
+ (collapsedItem || !inlineGroupHeader || !groupHeaderExpanded));
31
+ }
32
+ function shouldShowLabelPopup({ isDivider, compact, hasPopupItems, disabled, }) {
33
+ return !isDivider && Boolean(compact) && !hasPopupItems && !disabled;
34
+ }
35
+ function shouldShowChevron({ compact, inlineGroupHeader, hasPopupItems, }) {
36
+ if (inlineGroupHeader) {
37
+ return !compact;
38
+ }
39
+ return !compact && hasPopupItems;
40
+ }
41
+ function getExpandedTitleLines({ type, compact, menuPopupRow, titleLines, }) {
42
+ if (type !== constants.ITEM_TYPE_REGULAR || compact || menuPopupRow) {
43
+ return 1;
44
+ }
45
+ return titleLines;
46
+ }
47
+ function shouldShowQuickAccessPin({ enabled, compact, popupItems, item, onToggle, }) {
48
+ return (Boolean(enabled) &&
49
+ !compact &&
50
+ !(popupItems === null || popupItems === undefined ? undefined : popupItems.length) &&
51
+ quickAccess.isQuickAccessPinEligible(item) &&
52
+ typeof onToggle === 'function');
53
+ }
22
54
  function getChevronFallbackLabel(expanded) {
23
55
  return expanded ? index.default('button_collapse') : index.default('button_expand');
24
56
  }
@@ -29,24 +61,54 @@ function resolveItemAriaLabel(ariaProps, titleLabel) {
29
61
  function resolveAnchorRef(anchorRef, fallback) {
30
62
  return (anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) ? anchorRef : fallback;
31
63
  }
32
- function shouldShowFlyoutChevron(hasPopupItems, compact, hideCompactChevron) {
33
- return hasPopupItems && !(compact && hideCompactChevron);
34
- }
35
64
  const Item = (props) => {
36
- 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;
37
- const [compactNavPopoverOpen, setCompactNavPopoverOpen] = React.useState(false);
65
+ 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;
66
+ const [labelPopupOpen, setLabelPopupOpen] = React.useState(false);
67
+ const [menuPopupOpen, setMenuPopupOpen] = React.useState(false);
38
68
  const ref = React.useRef(null);
69
+ const mergedRowRef = React.useCallback((element) => {
70
+ uikit.setRef(ref, element);
71
+ uikit.setRef(props.rowRef, element);
72
+ }, [props.rowRef]);
39
73
  const anchorRef = resolveAnchorRef(anchoreRefProp, ref);
40
74
  const highlightedRef = React.useRef(null);
75
+ const interactiveRowRef = React.useRef(null);
41
76
  const type = props.type || constants.ITEM_TYPE_REGULAR;
42
77
  const icon = props.icon;
43
- const iconSize = props.iconSize || constants$1.ASIDE_HEADER_ICON_SIZE;
78
+ const asideHeaderContext = AsideHeaderContext.useSafeAsideHeaderContext();
79
+ const defaultIconSize = density.getAsideHeaderDensityConfig(asideHeaderContext === null || asideHeaderContext === undefined ? undefined : asideHeaderContext.menuDensity).iconSize;
80
+ const iconSize = props.iconSize || defaultIconSize;
44
81
  const iconQa = props.iconQa;
45
82
  const collapsedItem = props.id === constants.COLLAPSE_ITEM_ID;
46
83
  const inlineGroupHeader = groupHeaderExpanded !== undefined;
47
84
  const resolvedMenuPopupItems = menuPopupItems !== null && menuPopupItems !== undefined ? menuPopupItems : props.compositeBarMenuPopupItems;
48
85
  const resolvedMenuPopupTitle = menuPopupTitle !== null && menuPopupTitle !== undefined ? menuPopupTitle : props.compositeBarMenuPopupTitle;
49
- const current = props.current || (resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.some((item) => item.current)) || false;
86
+ const currentIds = suppressCurrentHighlight
87
+ ? []
88
+ : presentationCurrent.getItemPresentationCurrentIds(props, {
89
+ suppressCurrentItemIds,
90
+ popupItems: resolvedMenuPopupItems,
91
+ });
92
+ const current = currentIds.length > 0;
93
+ const currentIdsMetadata = !menuPopupRow && currentIds.length ? JSON.stringify(currentIds) : undefined;
94
+ const quickAccessPinItem = quickAccessPinItemProp !== null && quickAccessPinItemProp !== undefined ? quickAccessPinItemProp : props;
95
+ const showQuickAccessPin = shouldShowQuickAccessPin({
96
+ enabled: enableQuickAccessPin,
97
+ compact,
98
+ popupItems: resolvedMenuPopupItems,
99
+ item: quickAccessPinItem,
100
+ onToggle: onToggleQuickAccess,
101
+ });
102
+ const [quickAccessPinSuppressed, setQuickAccessPinSuppressed] = React.useState(false);
103
+ const handleToggleQuickAccess = React.useCallback((event) => {
104
+ onToggleQuickAccess === null || onToggleQuickAccess === undefined ? undefined : onToggleQuickAccess(quickAccessPinItem, event);
105
+ // Pointer clicks should not leave the control under the cursor after the row moves.
106
+ // Keep keyboard-triggered controls visible and focused.
107
+ if (event.detail > 0) {
108
+ setQuickAccessPinSuppressed(true);
109
+ event.currentTarget.blur();
110
+ }
111
+ }, [onToggleQuickAccess, quickAccessPinItem]);
50
112
  const handleOpenChangePopup = React.useCallback((newOpen, event, reason) => {
51
113
  var _a;
52
114
  if (event instanceof MouseEvent &&
@@ -55,29 +117,51 @@ const Item = (props) => {
55
117
  return;
56
118
  }
57
119
  if (newOpen) {
58
- setCompactNavPopoverOpen(false);
120
+ setLabelPopupOpen(false);
121
+ setMenuPopupOpen(false);
59
122
  }
60
123
  onOpenChangePopup === null || onOpenChangePopup === undefined ? undefined : onOpenChangePopup(newOpen, event, reason);
61
124
  }, [onOpenChangePopup]);
62
125
  const isDivider = type === 'divider';
63
- const showMenuPopup = !isDivider &&
64
- Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length) &&
65
- (collapsedItem || !inlineGroupHeader);
126
+ const showMenuPopup = shouldShowMenuPopup({
127
+ type,
128
+ popupItems: resolvedMenuPopupItems,
129
+ collapsedItem,
130
+ inlineGroupHeader,
131
+ groupHeaderExpanded,
132
+ });
133
+ const compactPopoverDisabled = !enableTooltip || popupVisible || type === 'action';
134
+ const labelPopupAvailable = shouldShowLabelPopup({
135
+ isDivider,
136
+ compact,
137
+ hasPopupItems: Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length),
138
+ disabled: compactPopoverDisabled,
139
+ });
140
+ React.useEffect(() => {
141
+ if (!showMenuPopup)
142
+ setMenuPopupOpen(false);
143
+ if (!labelPopupAvailable)
144
+ setLabelPopupOpen(false);
145
+ }, [showMenuPopup, labelPopupAvailable]);
66
146
  const submenuNest = React.useContext(ItemPopupNestContext.ItemPopupNestContext);
67
147
  React.useEffect(() => {
68
- if (!submenuNest || !showMenuPopup || !compactNavPopoverOpen) {
148
+ if (!submenuNest || !showMenuPopup || !menuPopupOpen) {
69
149
  return undefined;
70
150
  }
71
151
  submenuNest.registerNestedOpen(1);
72
152
  return () => {
73
153
  submenuNest.registerNestedOpen(-1);
74
154
  };
75
- }, [submenuNest, showMenuPopup, compactNavPopoverOpen]);
155
+ }, [submenuNest, showMenuPopup, menuPopupOpen]);
76
156
  if (isDivider) {
77
- return React.createElement("div", { className: b('menu-divider') });
157
+ return (React.createElement(AsideDivider.AsideDivider, { as: "div", className: b('menu-divider'), transitionId: `item/${props.id}` }));
78
158
  }
79
- const compactPopoverDisabled = !enableTooltip || popupVisible || type === 'action';
80
- const showFlyoutChevron = shouldShowFlyoutChevron(Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length), compact, hideCompactChevron);
159
+ const expandedTitleLines = getExpandedTitleLines({
160
+ type,
161
+ compact,
162
+ menuPopupRow,
163
+ titleLines: props.titleLines,
164
+ });
81
165
  const makeIconNode = (iconEl, withCompactPopover = true) => {
82
166
  if (!compact) {
83
167
  return iconEl;
@@ -86,10 +170,10 @@ const Item = (props) => {
86
170
  if (!withCompactPopover || (resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length)) {
87
171
  return iconButton;
88
172
  }
89
- return (React.createElement(ItemPopup.ItemPopup, { items: [props], open: compactNavPopoverOpen, onOpenChange: (nextOpen) => {
173
+ return (React.createElement(ItemPopup.ItemPopup, { items: [quickAccessPinItem], variant: "label", highlightCurrentItem: false, open: labelPopupOpen, onOpenChange: (nextOpen) => {
90
174
  if (nextOpen && compactPopoverDisabled)
91
175
  return;
92
- setCompactNavPopoverOpen(nextOpen);
176
+ setLabelPopupOpen(nextOpen);
93
177
  }, hideIcon: true, itemClassName: popupItemClassName, disabled: compactPopoverDisabled, type: type, collapsed: compact,
94
178
  /**
95
179
  * No `onPopupItemClick` here on purpose: this popup renders the item itself
@@ -98,14 +182,20 @@ const Item = (props) => {
98
182
  * the AsideHeader handler; the direct path would pass the wrapper as
99
183
  * `item.onItemClick` and trigger the handler twice (toggling All pages back).
100
184
  */
101
- onItemClick: onItemClick }, iconButton));
185
+ onItemClick: onItemClick, suppressCurrentItemIds: suppressCurrentItemIds }, iconButton));
102
186
  };
103
187
  const ariaLabel = typeof title === 'string' ? title : undefined;
104
188
  const resolvedAriaLabel = resolveItemAriaLabel(menuItemAriaProps, ariaLabel);
189
+ const showSurface = !menuPopupRow && [constants.ITEM_TYPE_REGULAR, 'action'].includes(type);
105
190
  const makeNode = ({ icon: iconEl, title: titleEl }) => {
106
191
  var _a;
107
192
  const wrappedByItemWrapper = typeof itemWrapper === 'function';
108
- const chevronClick = inlineGroupHeader ? onGroupHeaderChevronClick : undefined;
193
+ const showChevron = shouldShowChevron({
194
+ compact,
195
+ inlineGroupHeader,
196
+ hasPopupItems: Boolean(resolvedMenuPopupItems === null || resolvedMenuPopupItems === undefined ? undefined : resolvedMenuPopupItems.length),
197
+ });
198
+ const chevronClick = showChevron && inlineGroupHeader ? onGroupHeaderChevronClick : undefined;
109
199
  /* With a sibling chevron control, the wrapper becomes the outer box of the row,
110
200
  so the external className (outer layout) is applied to it instead of the row. */
111
201
  const rowClassName = b({
@@ -113,41 +203,51 @@ const Item = (props) => {
113
203
  current,
114
204
  compact,
115
205
  'hide-icon': hideIcon,
206
+ 'menu-group-nested': menuGroupNested,
207
+ 'menu-popup-row': menuPopupRow,
208
+ 'with-quick-access-pin': showQuickAccessPin,
209
+ 'title-lines': expandedTitleLines === null || expandedTitleLines === undefined ? undefined : expandedTitleLines.toString(),
116
210
  'with-chevron-control': Boolean(chevronClick),
117
211
  }, chevronClick ? undefined : className);
118
212
  const handleRowClick = (event) => {
213
+ var _a;
119
214
  if (compact && !collapsedItem && !showMenuPopup && !current) {
120
- setCompactNavPopoverOpen(false);
215
+ setLabelPopupOpen(false);
216
+ }
217
+ if (event.detail > 0) {
218
+ const activeElement = event.currentTarget.ownerDocument.activeElement;
219
+ if (activeElement instanceof HTMLElement &&
220
+ ((_a = interactiveRowRef.current) === null || _a === undefined ? undefined : _a.contains(activeElement))) {
221
+ activeElement.blur();
222
+ }
121
223
  }
122
224
  onItemClick === null || onItemClick === undefined ? undefined : onItemClick(props, collapsedItem, event);
123
225
  if (stopClickPropagation) {
124
226
  event.stopPropagation();
125
227
  }
126
228
  };
127
- const chevronSize = compact ? CHEVRON_SIZE_COMPACT : CHEVRON_SIZE;
128
229
  let chevronNode = null;
129
230
  let chevronControl = null;
130
231
  if (chevronClick) {
131
- chevronControl = (React.createElement("button", { type: "button", className: b('chevron', { interactive: true }), "aria-label": resolvedAriaLabel !== null && resolvedAriaLabel !== undefined ? resolvedAriaLabel : getChevronFallbackLabel(groupHeaderExpanded), "aria-expanded": groupHeaderExpanded, onClick: (event) => {
232
+ chevronControl = (React.createElement("button", { type: "button", className: b('chevron', { interactive: true }), "aria-label": [getChevronFallbackLabel(groupHeaderExpanded), resolvedAriaLabel]
233
+ .filter(Boolean)
234
+ .join(' '), "aria-expanded": groupHeaderExpanded, onClick: (event) => {
132
235
  event.stopPropagation();
133
236
  chevronClick(event);
134
237
  } },
135
- React.createElement(uikit.Icon, { data: groupHeaderExpanded ? icons.ChevronUp : icons.ChevronDown, size: chevronSize })));
238
+ React.createElement(uikit.Icon, { data: groupHeaderExpanded ? icons.ChevronDown : icons.ChevronRight, size: CHEVRON_SIZE })));
136
239
  }
137
- else if (inlineGroupHeader) {
240
+ else if (showChevron) {
138
241
  chevronNode = (React.createElement("div", { className: b('chevron') },
139
- React.createElement(uikit.Icon, { data: groupHeaderExpanded ? icons.ChevronUp : icons.ChevronDown, size: chevronSize })));
140
- }
141
- else if (showFlyoutChevron) {
142
- chevronNode = (React.createElement("div", { className: b('chevron') },
143
- React.createElement(uikit.Icon, { data: icons.ChevronRight, size: chevronSize })));
242
+ React.createElement(uikit.Icon, { data: groupHeaderExpanded ? icons.ChevronDown : icons.ChevronRight, size: CHEVRON_SIZE })));
144
243
  }
145
244
  const rowChildren = (React.createElement(React.Fragment, null,
245
+ showSurface && (React.createElement("span", { className: b('surface'), "data-gn-aside-part": "surface", "aria-hidden": true })),
146
246
  menuGroupNestedTreeConnector,
147
- React.createElement("div", { className: b('icon-place'), ref: highlightedRef }, makeIconNode(iconEl)),
148
- React.createElement("div", { className: b('title'), title: ariaLabel }, titleEl),
247
+ React.createElement("div", { className: b('icon-place'), ref: highlightedRef, "data-gn-aside-part": "icon" }, makeIconNode(iconEl)),
248
+ React.createElement("div", { className: b('title'), "data-gn-aside-part": "title", title: ariaLabel }, titleEl),
149
249
  chevronNode));
150
- 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: () => {
250
+ const rowEventProps = Object.assign(Object.assign({}, (menuItemAriaProps !== null && menuItemAriaProps !== undefined ? menuItemAriaProps : {})), { className: rowClassName, 'data-type': type, 'data-qa': qa, [constants.COMPOSITE_BAR_ITEM_ID_ATTRIBUTE]: props.id, [currentIndicatorDom.CURRENT_IDS_ATTRIBUTE]: currentIdsMetadata, 'data-gn-aside-nested': menuGroupNested ? '' : undefined, 'aria-label': resolvedAriaLabel, onClick: handleRowClick, onClickCapture: onItemClickCapture, onMouseEnter: () => {
151
251
  if (!compact) {
152
252
  onMouseEnter === null || onMouseEnter === undefined ? undefined : onMouseEnter();
153
253
  }
@@ -158,40 +258,55 @@ const Item = (props) => {
158
258
  } });
159
259
  let tagNode;
160
260
  if (href) {
161
- tagNode = (React.createElement("a", Object.assign({}, rowEventProps, { href: href, ref: ref }), rowChildren));
261
+ tagNode = (React.createElement("a", Object.assign({}, rowEventProps, { href: href, ref: mergedRowRef }), rowChildren));
162
262
  }
163
263
  else if (wrappedByItemWrapper) {
164
- tagNode = (React.createElement("div", Object.assign({}, rowEventProps, { role: (_a = menuItemAriaProps === null || menuItemAriaProps === undefined ? undefined : menuItemAriaProps.role) !== null && _a !== undefined ? _a : 'button', ref: ref }), rowChildren));
264
+ tagNode = (React.createElement("div", Object.assign({}, rowEventProps, { role: (_a = menuItemAriaProps === null || menuItemAriaProps === undefined ? undefined : menuItemAriaProps.role) !== null && _a !== undefined ? _a : 'button', ref: mergedRowRef }), rowChildren));
165
265
  }
166
266
  else {
167
- tagNode = (React.createElement("button", Object.assign({}, rowEventProps, { ref: ref }), rowChildren));
267
+ tagNode = (React.createElement("button", Object.assign({}, rowEventProps, { ref: mergedRowRef }), rowChildren));
168
268
  }
169
269
  if (chevronControl) {
170
- tagNode = (React.createElement("div", { className: b('group-header-row', className) },
270
+ tagNode = (React.createElement("div", { className: b('group-header-row', { current }, className) },
171
271
  tagNode,
172
272
  chevronControl));
173
273
  }
174
274
  const expandedMenuRows = resolvedMenuPopupItems;
175
- const wrappedTagNode = showMenuPopup && expandedMenuRows ? (React.createElement(ItemPopup.ItemPopup, { items: expandedMenuRows, title: resolvedMenuPopupTitle, open: compactNavPopoverOpen, itemClassName: popupItemClassName, onOpenChange: setCompactNavPopoverOpen, collapsed: collapsedItem ? true : compact, onPopupItemClick: onPopupItemClick, onItemClick: onItemClick }, tagNode)) : (tagNode);
275
+ const wrappedTagNode = showMenuPopup && expandedMenuRows ? (React.createElement(ItemPopup.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);
176
276
  const createdNode = (React.createElement(React.Fragment, null,
177
277
  wrappedTagNode,
178
278
  renderPopupContent && Boolean(anchorRef === null || anchorRef === undefined ? undefined : anchorRef.current) && (React.createElement(uikit.Popup, { strategy: "fixed", open: popupVisible, keepMounted: popupKeepMounted, placement: popupPlacement, offset: popupOffset, anchorElement: anchorRef.current, onOpenChange: handleOpenChangePopup }, renderPopupContent()))));
179
279
  return createdNode;
180
280
  };
281
+ const wrapWithQuickAccessPin = (rowNode) => {
282
+ if (!showQuickAccessPin) {
283
+ return rowNode;
284
+ }
285
+ return (React.createElement("div", { ref: interactiveRowRef, className: b('interactive-row', { 'menu-popup': menuPopupRow }), onMouseLeave: () => setQuickAccessPinSuppressed(false) },
286
+ rowNode,
287
+ React.createElement("span", { className: b('quick-access-pin-slot', {
288
+ suppressed: quickAccessPinSuppressed,
289
+ }) },
290
+ React.createElement(ItemQuickAccessPin.ItemQuickAccessPin, { quickAccess: quickAccessPinItem.quickAccess, onToggle: handleToggleQuickAccess }))));
291
+ };
181
292
  const iconNode = hideIcon || !icon ? null : (React.createElement(uikit.Icon, { qa: iconQa, data: icon, size: iconSize, className: b('icon') }));
182
- const titleNode = renderItemTitle.renderItemTitle({ title, rightAdornment });
293
+ const titleNode = renderItemTitle.renderItemTitle({
294
+ title,
295
+ rightAdornment,
296
+ titleLines: expandedTitleLines,
297
+ });
183
298
  const params = { icon: iconNode, title: titleNode };
184
299
  let highlightedNode = null;
185
300
  let node;
186
301
  const opts = { compact: Boolean(compact), collapsed: false, item: props, ref };
187
302
  if (typeof itemWrapper === 'function') {
188
- node = itemWrapper(params, makeNode, opts);
303
+ node = wrapWithQuickAccessPin(itemWrapper(params, makeNode, opts));
189
304
  highlightedNode =
190
305
  bringForward &&
191
306
  itemWrapper(params, ({ icon: iconEl }) => makeIconNode(iconEl, false), opts);
192
307
  }
193
308
  else {
194
- node = makeNode(params);
309
+ node = wrapWithQuickAccessPin(makeNode(params));
195
310
  highlightedNode = bringForward && makeIconNode(iconNode, false);
196
311
  }
197
312
  return (React.createElement(React.Fragment, null,
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sources":["../../../../../../../../src/components/AsideHeader/components/CompositeBar/Item/Item.tsx"],"sourcesContent":["import React from 'react';\n\nimport {ChevronDown, ChevronRight, ChevronUp} from '@gravity-ui/icons';\nimport {Icon, Popup, PopupPlacement, PopupProps} from '@gravity-ui/uikit';\n\nimport {ASIDE_HEADER_ICON_SIZE} from '../../../../constants';\nimport {MakeItemParams} from '../../../../types';\nimport {createBlock} from '../../../../utils/cn';\nimport i18n from '../../../i18n';\nimport {HighlightedItem} from '../HighlightedItem/HighlightedItem';\nimport {COLLAPSE_ITEM_ID, ITEM_TYPE_REGULAR} from '../constants';\n\nimport {ItemInnerProps, ItemProps} from './Item.types';\nimport {ItemPopup} from './ItemPopup';\nimport {ItemPopupNestContext} from './ItemPopupNestContext';\nimport {renderItemTitle} from './renderItemTitle';\n\nimport styles from './Item.module.scss';\n\nconst b = createBlock('composite-bar-item', styles);\n\nconst defaultPopupPlacement: PopupPlacement = ['right-end'];\nconst defaultPopupOffset: NonNullable<PopupProps['offset']> = {mainAxis: 14};\nconst CHEVRON_SIZE = 16;\nconst CHEVRON_SIZE_COMPACT = 10;\n\nfunction getChevronFallbackLabel(expanded: boolean | undefined): string {\n return expanded ? i18n('button_collapse') : i18n('button_expand');\n}\n\nfunction resolveItemAriaLabel(\n ariaProps: ItemInnerProps['menuItemAriaProps'],\n titleLabel: string | undefined,\n): string | undefined {\n return ariaProps?.['aria-label'] ?? titleLabel;\n}\n\nfunction resolveAnchorRef(\n anchorRef: React.RefObject<HTMLElement> | undefined,\n fallback: React.RefObject<HTMLElement>,\n): React.RefObject<HTMLElement> {\n return anchorRef?.current ? anchorRef : fallback;\n}\n\nfunction shouldShowFlyoutChevron(\n hasPopupItems: boolean,\n compact?: boolean,\n hideCompactChevron?: boolean,\n): boolean {\n return hasPopupItems && !(compact && hideCompactChevron);\n}\n\nexport const Item: React.FC<ItemInnerProps> = (props) => {\n const {\n className,\n popupItemClassName,\n menuPopupItems,\n menuPopupTitle,\n groupHeaderExpanded,\n compact,\n onMouseLeave,\n onMouseEnter,\n enableTooltip = true,\n popupVisible = false,\n popupRef: anchoreRefProp,\n popupPlacement = defaultPopupPlacement,\n popupOffset = defaultPopupOffset,\n popupKeepMounted,\n renderPopupContent,\n onOpenChangePopup,\n onItemClick,\n onPopupItemClick,\n onItemClickCapture,\n itemWrapper,\n bringForward,\n rightAdornment,\n title,\n href,\n qa,\n hideIcon = false,\n stopClickPropagation = false,\n menuGroupNestedTreeConnector,\n menuItemAriaProps,\n onGroupHeaderChevronClick,\n hideCompactChevron,\n } = props;\n\n const [compactNavPopoverOpen, setCompactNavPopoverOpen] = React.useState(false);\n\n const ref = React.useRef<HTMLElement>(null);\n const anchorRef = resolveAnchorRef(anchoreRefProp, ref);\n const highlightedRef = React.useRef<HTMLDivElement>(null);\n\n const type = props.type || ITEM_TYPE_REGULAR;\n const icon = props.icon;\n const iconSize = props.iconSize || ASIDE_HEADER_ICON_SIZE;\n const iconQa = props.iconQa;\n const collapsedItem = props.id === COLLAPSE_ITEM_ID;\n const inlineGroupHeader = groupHeaderExpanded !== undefined;\n const resolvedMenuPopupItems = menuPopupItems ?? props.compositeBarMenuPopupItems;\n const resolvedMenuPopupTitle = menuPopupTitle ?? props.compositeBarMenuPopupTitle;\n\n const current = props.current || resolvedMenuPopupItems?.some((item) => item.current) || false;\n\n const handleOpenChangePopup = React.useCallback<NonNullable<ItemProps['onOpenChangePopup']>>(\n (newOpen, event, reason) => {\n if (\n event instanceof MouseEvent &&\n event.target &&\n ref.current?.contains(event.target as Node)\n ) {\n return;\n }\n\n if (newOpen) {\n setCompactNavPopoverOpen(false);\n }\n\n onOpenChangePopup?.(newOpen, event, reason);\n },\n [onOpenChangePopup],\n );\n\n const isDivider = type === 'divider';\n const showMenuPopup =\n !isDivider &&\n Boolean(resolvedMenuPopupItems?.length) &&\n (collapsedItem || !inlineGroupHeader);\n\n const submenuNest = React.useContext(ItemPopupNestContext);\n\n React.useEffect(() => {\n if (!submenuNest || !showMenuPopup || !compactNavPopoverOpen) {\n return undefined;\n }\n\n submenuNest.registerNestedOpen(1);\n\n return () => {\n submenuNest.registerNestedOpen(-1);\n };\n }, [submenuNest, showMenuPopup, compactNavPopoverOpen]);\n\n if (isDivider) {\n return <div className={b('menu-divider')} />;\n }\n\n const compactPopoverDisabled = !enableTooltip || popupVisible || type === 'action';\n\n const showFlyoutChevron = shouldShowFlyoutChevron(\n Boolean(resolvedMenuPopupItems?.length),\n compact,\n hideCompactChevron,\n );\n\n const makeIconNode = (iconEl: React.ReactNode, withCompactPopover = true): React.ReactNode => {\n if (!compact) {\n return iconEl;\n }\n\n const iconButton = (\n <div\n onMouseEnter={() => onMouseEnter?.()}\n onMouseLeave={() => onMouseLeave?.()}\n className={b('btn-icon')}\n >\n {iconEl}\n </div>\n );\n\n if (!withCompactPopover || resolvedMenuPopupItems?.length) {\n return iconButton;\n }\n\n return (\n <ItemPopup\n items={[props]}\n open={compactNavPopoverOpen}\n onOpenChange={(nextOpen) => {\n if (nextOpen && compactPopoverDisabled) return;\n setCompactNavPopoverOpen(nextOpen);\n }}\n hideIcon\n itemClassName={popupItemClassName}\n disabled={compactPopoverDisabled}\n type={type}\n collapsed={compact}\n /**\n * No `onPopupItemClick` here on purpose: this popup renders the item itself\n * (`items={[props]}`), whose `onItemClick` is already the row-level wrapper.\n * Going through the wrapper keeps the original `item.onItemClick` intact for\n * the AsideHeader handler; the direct path would pass the wrapper as\n * `item.onItemClick` and trigger the handler twice (toggling All pages back).\n */\n onItemClick={onItemClick}\n >\n {iconButton}\n </ItemPopup>\n );\n };\n\n const ariaLabel = typeof title === 'string' ? title : undefined;\n const resolvedAriaLabel = resolveItemAriaLabel(menuItemAriaProps, ariaLabel);\n\n const makeNode = ({icon: iconEl, title: titleEl}: MakeItemParams) => {\n const wrappedByItemWrapper = typeof itemWrapper === 'function';\n const chevronClick = inlineGroupHeader ? onGroupHeaderChevronClick : undefined;\n /* With a sibling chevron control, the wrapper becomes the outer box of the row,\n so the external className (outer layout) is applied to it instead of the row. */\n const rowClassName = b(\n {\n type,\n current,\n compact,\n 'hide-icon': hideIcon,\n 'with-chevron-control': Boolean(chevronClick),\n },\n chevronClick ? undefined : className,\n );\n\n const handleRowClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (compact && !collapsedItem && !showMenuPopup && !current) {\n setCompactNavPopoverOpen(false);\n }\n\n onItemClick?.(props, collapsedItem, event);\n\n if (stopClickPropagation) {\n event.stopPropagation();\n }\n };\n\n const chevronSize = compact ? CHEVRON_SIZE_COMPACT : CHEVRON_SIZE;\n\n let chevronNode: React.ReactNode = null;\n let chevronControl: React.ReactNode = null;\n\n if (chevronClick) {\n chevronControl = (\n <button\n type=\"button\"\n className={b('chevron', {interactive: true})}\n aria-label={resolvedAriaLabel ?? getChevronFallbackLabel(groupHeaderExpanded)}\n aria-expanded={groupHeaderExpanded}\n onClick={(event) => {\n event.stopPropagation();\n chevronClick(event);\n }}\n >\n <Icon data={groupHeaderExpanded ? ChevronUp : ChevronDown} size={chevronSize} />\n </button>\n );\n } else if (inlineGroupHeader) {\n chevronNode = (\n <div className={b('chevron')}>\n <Icon data={groupHeaderExpanded ? ChevronUp : ChevronDown} size={chevronSize} />\n </div>\n );\n } else if (showFlyoutChevron) {\n chevronNode = (\n <div className={b('chevron')}>\n <Icon data={ChevronRight} size={chevronSize} />\n </div>\n );\n }\n\n const rowChildren = (\n <>\n {menuGroupNestedTreeConnector}\n <div className={b('icon-place')} ref={highlightedRef}>\n {makeIconNode(iconEl)}\n </div>\n\n <div className={b('title')} title={ariaLabel}>\n {titleEl}\n </div>\n\n {chevronNode}\n </>\n );\n\n const rowEventProps = {\n ...(menuItemAriaProps ?? {}),\n className: rowClassName,\n 'data-type': type,\n 'data-qa': qa,\n 'aria-label': resolvedAriaLabel,\n onClick: handleRowClick,\n onClickCapture: onItemClickCapture,\n onMouseEnter: () => {\n if (!compact) {\n onMouseEnter?.();\n }\n },\n onMouseLeave: () => {\n if (!compact) {\n onMouseLeave?.();\n }\n },\n };\n\n let tagNode: React.ReactNode;\n\n if (href) {\n tagNode = (\n <a {...rowEventProps} href={href} ref={ref as React.RefObject<HTMLAnchorElement>}>\n {rowChildren}\n </a>\n );\n } else if (wrappedByItemWrapper) {\n tagNode = (\n <div\n {...rowEventProps}\n role={menuItemAriaProps?.role ?? 'button'}\n ref={ref as React.RefObject<HTMLDivElement>}\n >\n {rowChildren}\n </div>\n );\n } else {\n tagNode = (\n <button {...rowEventProps} ref={ref as React.RefObject<HTMLButtonElement>}>\n {rowChildren}\n </button>\n );\n }\n\n if (chevronControl) {\n tagNode = (\n <div className={b('group-header-row', className)}>\n {tagNode}\n {chevronControl}\n </div>\n );\n }\n\n const expandedMenuRows = resolvedMenuPopupItems;\n\n const wrappedTagNode =\n showMenuPopup && expandedMenuRows ? (\n <ItemPopup\n items={expandedMenuRows}\n title={resolvedMenuPopupTitle}\n open={compactNavPopoverOpen}\n itemClassName={popupItemClassName}\n onOpenChange={setCompactNavPopoverOpen}\n collapsed={collapsedItem ? true : compact}\n onPopupItemClick={onPopupItemClick}\n onItemClick={onItemClick}\n >\n {tagNode}\n </ItemPopup>\n ) : (\n tagNode\n );\n\n const createdNode = (\n <React.Fragment>\n {wrappedTagNode}\n {renderPopupContent && Boolean(anchorRef?.current) && (\n <Popup\n strategy=\"fixed\"\n open={popupVisible}\n keepMounted={popupKeepMounted}\n placement={popupPlacement}\n offset={popupOffset}\n anchorElement={anchorRef.current}\n onOpenChange={handleOpenChangePopup}\n >\n {renderPopupContent()}\n </Popup>\n )}\n </React.Fragment>\n );\n\n return createdNode;\n };\n\n const iconNode =\n hideIcon || !icon ? null : (\n <Icon qa={iconQa} data={icon} size={iconSize} className={b('icon')} />\n );\n const titleNode = renderItemTitle({title, rightAdornment});\n const params = {icon: iconNode, title: titleNode};\n let highlightedNode = null;\n let node;\n\n const opts = {compact: Boolean(compact), collapsed: false, item: props, ref};\n\n if (typeof itemWrapper === 'function') {\n node = itemWrapper(params, makeNode, opts) as React.ReactElement;\n highlightedNode =\n bringForward &&\n (itemWrapper(\n params,\n ({icon: iconEl}) => makeIconNode(iconEl, false),\n opts,\n ) as React.ReactElement);\n } else {\n node = makeNode(params);\n highlightedNode = bringForward && makeIconNode(iconNode, false);\n }\n\n return (\n <React.Fragment>\n {bringForward && (\n <HighlightedItem\n iconNode={highlightedNode}\n iconRef={highlightedRef}\n onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) =>\n onItemClick?.(props, false, event)\n }\n onClickCapture={onItemClickCapture}\n />\n )}\n {node}\n </React.Fragment>\n );\n};\n\nItem.displayName = 'Item';\n"],"names":["createBlock","styles","i18n","ITEM_TYPE_REGULAR","ASIDE_HEADER_ICON_SIZE","COLLAPSE_ITEM_ID","ItemPopupNestContext","ItemPopup","Icon","ChevronUp","ChevronDown","ChevronRight","Popup","renderItemTitle","HighlightedItem"],"mappings":"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"}
1
+ {"version":3,"file":"Item.js","sources":["../../../../../../../../src/components/AsideHeader/components/CompositeBar/Item/Item.tsx"],"sourcesContent":["import React from 'react';\n\nimport {ChevronDown, ChevronRight} from '@gravity-ui/icons';\nimport {Icon, Popup, PopupPlacement, PopupProps, setRef} from '@gravity-ui/uikit';\n\nimport {MakeItemParams} from '../../../../types';\nimport {createBlock} from '../../../../utils/cn';\nimport {useSafeAsideHeaderContext} from '../../../AsideHeaderContext';\nimport {getAsideHeaderDensityConfig} from '../../../density';\nimport i18n from '../../../i18n';\nimport {isQuickAccessPinEligible} from '../../../quickAccess';\nimport {AsideHeaderItem} from '../../../types';\nimport {AsideDivider} from '../../AsideDivider';\nimport {CURRENT_IDS_ATTRIBUTE} from '../../PageLayout/currentIndicatorDom';\nimport {HighlightedItem} from '../HighlightedItem/HighlightedItem';\nimport {COLLAPSE_ITEM_ID, COMPOSITE_BAR_ITEM_ID_ATTRIBUTE, ITEM_TYPE_REGULAR} from '../constants';\nimport {getItemPresentationCurrentIds} from '../presentationCurrent';\n\nimport {ItemInnerProps, ItemProps, QuickAccessToggleHandler} from './Item.types';\nimport {ItemPopup} from './ItemPopup';\nimport {ItemPopupNestContext} from './ItemPopupNestContext';\nimport {ItemQuickAccessPin} from './ItemQuickAccessPin';\nimport {renderItemTitle} from './renderItemTitle';\n\nimport styles from './Item.module.scss';\n\nconst b = createBlock('composite-bar-item', styles);\n\nconst defaultPopupPlacement: PopupPlacement = ['right-end'];\nconst defaultPopupOffset: NonNullable<PopupProps['offset']> = {mainAxis: 14};\nconst CHEVRON_SIZE = 16;\n\nfunction shouldShowMenuPopup({\n type,\n popupItems,\n collapsedItem,\n inlineGroupHeader,\n groupHeaderExpanded,\n}: {\n type: string;\n popupItems?: ItemInnerProps['menuPopupItems'];\n collapsedItem: boolean;\n inlineGroupHeader: boolean;\n groupHeaderExpanded?: boolean;\n}) {\n return (\n type !== 'divider' &&\n Boolean(popupItems?.length) &&\n (collapsedItem || !inlineGroupHeader || !groupHeaderExpanded)\n );\n}\n\nfunction shouldShowLabelPopup({\n isDivider,\n compact,\n hasPopupItems,\n disabled,\n}: {\n isDivider: boolean;\n compact?: boolean;\n hasPopupItems: boolean;\n disabled: boolean;\n}) {\n return !isDivider && Boolean(compact) && !hasPopupItems && !disabled;\n}\n\nfunction shouldShowChevron({\n compact,\n inlineGroupHeader,\n hasPopupItems,\n}: {\n compact?: boolean;\n inlineGroupHeader: boolean;\n hasPopupItems: boolean;\n}) {\n if (inlineGroupHeader) {\n return !compact;\n }\n\n return !compact && hasPopupItems;\n}\n\nfunction getExpandedTitleLines({\n type,\n compact,\n menuPopupRow,\n titleLines,\n}: {\n type: string;\n compact?: boolean;\n menuPopupRow?: boolean;\n titleLines?: ItemInnerProps['titleLines'];\n}) {\n if (type !== ITEM_TYPE_REGULAR || compact || menuPopupRow) {\n return 1;\n }\n\n return titleLines;\n}\n\nfunction shouldShowQuickAccessPin({\n enabled,\n compact,\n popupItems,\n item,\n onToggle,\n}: {\n enabled?: boolean;\n compact?: boolean;\n popupItems?: AsideHeaderItem[];\n item: AsideHeaderItem;\n onToggle?: QuickAccessToggleHandler;\n}) {\n return (\n Boolean(enabled) &&\n !compact &&\n !popupItems?.length &&\n isQuickAccessPinEligible(item) &&\n typeof onToggle === 'function'\n );\n}\n\nfunction getChevronFallbackLabel(expanded: boolean | undefined): string {\n return expanded ? i18n('button_collapse') : i18n('button_expand');\n}\n\nfunction resolveItemAriaLabel(\n ariaProps: ItemInnerProps['menuItemAriaProps'],\n titleLabel: string | undefined,\n): string | undefined {\n return ariaProps?.['aria-label'] ?? titleLabel;\n}\n\nfunction resolveAnchorRef(\n anchorRef: React.RefObject<HTMLElement> | undefined,\n fallback: React.RefObject<HTMLElement>,\n): React.RefObject<HTMLElement> {\n return anchorRef?.current ? anchorRef : fallback;\n}\n\nexport const Item: React.FC<ItemInnerProps> = (props) => {\n const {\n className,\n popupItemClassName,\n menuPopupItems,\n menuPopupTitle,\n groupHeaderExpanded,\n compact,\n onMouseLeave,\n onMouseEnter,\n enableTooltip = true,\n popupVisible = false,\n popupRef: anchoreRefProp,\n popupPlacement = defaultPopupPlacement,\n popupOffset = defaultPopupOffset,\n popupKeepMounted,\n renderPopupContent,\n onOpenChangePopup,\n onItemClick,\n onPopupItemClick,\n onItemClickCapture,\n itemWrapper,\n bringForward,\n rightAdornment,\n title,\n href,\n qa,\n hideIcon = false,\n menuPopupHideIcon,\n menuPopupNestedHideIcon,\n stopClickPropagation = false,\n menuGroupNestedTreeConnector,\n menuGroupNested,\n menuItemAriaProps,\n menuPopupRow,\n suppressCurrentHighlight = false,\n suppressCurrentItemIds,\n enableQuickAccessPin,\n quickAccessPinItem: quickAccessPinItemProp,\n onToggleQuickAccess,\n onGroupHeaderChevronClick,\n } = props;\n\n const [labelPopupOpen, setLabelPopupOpen] = React.useState(false);\n const [menuPopupOpen, setMenuPopupOpen] = React.useState(false);\n\n const ref = React.useRef<HTMLElement>(null);\n const mergedRowRef = React.useCallback(\n (element: HTMLElement | null) => {\n setRef(ref, element);\n setRef(props.rowRef, element);\n },\n [props.rowRef],\n );\n const anchorRef = resolveAnchorRef(anchoreRefProp, ref);\n const highlightedRef = React.useRef<HTMLDivElement>(null);\n const interactiveRowRef = React.useRef<HTMLDivElement>(null);\n\n const type = props.type || ITEM_TYPE_REGULAR;\n const icon = props.icon;\n const asideHeaderContext = useSafeAsideHeaderContext();\n const defaultIconSize = getAsideHeaderDensityConfig(asideHeaderContext?.menuDensity).iconSize;\n const iconSize = props.iconSize || defaultIconSize;\n const iconQa = props.iconQa;\n const collapsedItem = props.id === COLLAPSE_ITEM_ID;\n const inlineGroupHeader = groupHeaderExpanded !== undefined;\n const resolvedMenuPopupItems = menuPopupItems ?? props.compositeBarMenuPopupItems;\n const resolvedMenuPopupTitle = menuPopupTitle ?? props.compositeBarMenuPopupTitle;\n\n const currentIds = suppressCurrentHighlight\n ? []\n : getItemPresentationCurrentIds(props, {\n suppressCurrentItemIds,\n popupItems: resolvedMenuPopupItems,\n });\n const current = currentIds.length > 0;\n const currentIdsMetadata =\n !menuPopupRow && currentIds.length ? JSON.stringify(currentIds) : undefined;\n const quickAccessPinItem = quickAccessPinItemProp ?? props;\n const showQuickAccessPin = shouldShowQuickAccessPin({\n enabled: enableQuickAccessPin,\n compact,\n popupItems: resolvedMenuPopupItems,\n item: quickAccessPinItem,\n onToggle: onToggleQuickAccess,\n });\n const [quickAccessPinSuppressed, setQuickAccessPinSuppressed] = React.useState(false);\n\n const handleToggleQuickAccess = React.useCallback(\n (event: React.MouseEvent<HTMLButtonElement>) => {\n onToggleQuickAccess?.(quickAccessPinItem, event);\n\n // Pointer clicks should not leave the control under the cursor after the row moves.\n // Keep keyboard-triggered controls visible and focused.\n if (event.detail > 0) {\n setQuickAccessPinSuppressed(true);\n event.currentTarget.blur();\n }\n },\n [onToggleQuickAccess, quickAccessPinItem],\n );\n\n const handleOpenChangePopup = React.useCallback<NonNullable<ItemProps['onOpenChangePopup']>>(\n (newOpen, event, reason) => {\n if (\n event instanceof MouseEvent &&\n event.target &&\n ref.current?.contains(event.target as Node)\n ) {\n return;\n }\n\n if (newOpen) {\n setLabelPopupOpen(false);\n setMenuPopupOpen(false);\n }\n\n onOpenChangePopup?.(newOpen, event, reason);\n },\n [onOpenChangePopup],\n );\n\n const isDivider = type === 'divider';\n const showMenuPopup = shouldShowMenuPopup({\n type,\n popupItems: resolvedMenuPopupItems,\n collapsedItem,\n inlineGroupHeader,\n groupHeaderExpanded,\n });\n\n const compactPopoverDisabled = !enableTooltip || popupVisible || type === 'action';\n const labelPopupAvailable = shouldShowLabelPopup({\n isDivider,\n compact,\n hasPopupItems: Boolean(resolvedMenuPopupItems?.length),\n disabled: compactPopoverDisabled,\n });\n\n React.useEffect(() => {\n if (!showMenuPopup) setMenuPopupOpen(false);\n if (!labelPopupAvailable) setLabelPopupOpen(false);\n }, [showMenuPopup, labelPopupAvailable]);\n\n const submenuNest = React.useContext(ItemPopupNestContext);\n\n React.useEffect(() => {\n if (!submenuNest || !showMenuPopup || !menuPopupOpen) {\n return undefined;\n }\n\n submenuNest.registerNestedOpen(1);\n\n return () => {\n submenuNest.registerNestedOpen(-1);\n };\n }, [submenuNest, showMenuPopup, menuPopupOpen]);\n\n if (isDivider) {\n return (\n <AsideDivider\n as=\"div\"\n className={b('menu-divider')}\n transitionId={`item/${props.id}`}\n />\n );\n }\n\n const expandedTitleLines = getExpandedTitleLines({\n type,\n compact,\n menuPopupRow,\n titleLines: props.titleLines,\n });\n\n const makeIconNode = (iconEl: React.ReactNode, withCompactPopover = true): React.ReactNode => {\n if (!compact) {\n return iconEl;\n }\n\n const iconButton = (\n <div\n onMouseEnter={() => onMouseEnter?.()}\n onMouseLeave={() => onMouseLeave?.()}\n className={b('btn-icon')}\n >\n {iconEl}\n </div>\n );\n\n if (!withCompactPopover || resolvedMenuPopupItems?.length) {\n return iconButton;\n }\n\n return (\n <ItemPopup\n items={[quickAccessPinItem]}\n variant=\"label\"\n highlightCurrentItem={false}\n open={labelPopupOpen}\n onOpenChange={(nextOpen) => {\n if (nextOpen && compactPopoverDisabled) return;\n setLabelPopupOpen(nextOpen);\n }}\n hideIcon\n itemClassName={popupItemClassName}\n disabled={compactPopoverDisabled}\n type={type}\n collapsed={compact}\n /**\n * No `onPopupItemClick` here on purpose: this popup renders the item itself\n * (`items={[props]}`), whose `onItemClick` is already the row-level wrapper.\n * Going through the wrapper keeps the original `item.onItemClick` intact for\n * the AsideHeader handler; the direct path would pass the wrapper as\n * `item.onItemClick` and trigger the handler twice (toggling All pages back).\n */\n onItemClick={onItemClick}\n suppressCurrentItemIds={suppressCurrentItemIds}\n >\n {iconButton}\n </ItemPopup>\n );\n };\n\n const ariaLabel = typeof title === 'string' ? title : undefined;\n const resolvedAriaLabel = resolveItemAriaLabel(menuItemAriaProps, ariaLabel);\n const showSurface = !menuPopupRow && [ITEM_TYPE_REGULAR, 'action'].includes(type);\n\n const makeNode = ({icon: iconEl, title: titleEl}: MakeItemParams) => {\n const wrappedByItemWrapper = typeof itemWrapper === 'function';\n const showChevron = shouldShowChevron({\n compact,\n inlineGroupHeader,\n hasPopupItems: Boolean(resolvedMenuPopupItems?.length),\n });\n const chevronClick =\n showChevron && inlineGroupHeader ? onGroupHeaderChevronClick : undefined;\n /* With a sibling chevron control, the wrapper becomes the outer box of the row,\n so the external className (outer layout) is applied to it instead of the row. */\n const rowClassName = b(\n {\n type,\n current,\n compact,\n 'hide-icon': hideIcon,\n 'menu-group-nested': menuGroupNested,\n 'menu-popup-row': menuPopupRow,\n 'with-quick-access-pin': showQuickAccessPin,\n 'title-lines': expandedTitleLines?.toString(),\n 'with-chevron-control': Boolean(chevronClick),\n },\n chevronClick ? undefined : className,\n );\n\n const handleRowClick = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n if (compact && !collapsedItem && !showMenuPopup && !current) {\n setLabelPopupOpen(false);\n }\n\n if (event.detail > 0) {\n const activeElement = event.currentTarget.ownerDocument.activeElement;\n\n if (\n activeElement instanceof HTMLElement &&\n interactiveRowRef.current?.contains(activeElement)\n ) {\n activeElement.blur();\n }\n }\n\n onItemClick?.(props, collapsedItem, event);\n\n if (stopClickPropagation) {\n event.stopPropagation();\n }\n };\n\n let chevronNode: React.ReactNode = null;\n let chevronControl: React.ReactNode = null;\n\n if (chevronClick) {\n chevronControl = (\n <button\n type=\"button\"\n className={b('chevron', {interactive: true})}\n aria-label={[getChevronFallbackLabel(groupHeaderExpanded), resolvedAriaLabel]\n .filter(Boolean)\n .join(' ')}\n aria-expanded={groupHeaderExpanded}\n onClick={(event) => {\n event.stopPropagation();\n chevronClick(event);\n }}\n >\n <Icon\n data={groupHeaderExpanded ? ChevronDown : ChevronRight}\n size={CHEVRON_SIZE}\n />\n </button>\n );\n } else if (showChevron) {\n chevronNode = (\n <div className={b('chevron')}>\n <Icon\n data={groupHeaderExpanded ? ChevronDown : ChevronRight}\n size={CHEVRON_SIZE}\n />\n </div>\n );\n }\n\n const rowChildren = (\n <>\n {showSurface && (\n <span className={b('surface')} data-gn-aside-part=\"surface\" aria-hidden />\n )}\n {menuGroupNestedTreeConnector}\n <div className={b('icon-place')} ref={highlightedRef} data-gn-aside-part=\"icon\">\n {makeIconNode(iconEl)}\n </div>\n\n <div className={b('title')} data-gn-aside-part=\"title\" title={ariaLabel}>\n {titleEl}\n </div>\n\n {chevronNode}\n </>\n );\n\n const rowEventProps = {\n ...(menuItemAriaProps ?? {}),\n className: rowClassName,\n 'data-type': type,\n 'data-qa': qa,\n [COMPOSITE_BAR_ITEM_ID_ATTRIBUTE]: props.id,\n [CURRENT_IDS_ATTRIBUTE]: currentIdsMetadata,\n 'data-gn-aside-nested': menuGroupNested ? '' : undefined,\n 'aria-label': resolvedAriaLabel,\n onClick: handleRowClick,\n onClickCapture: onItemClickCapture,\n onMouseEnter: () => {\n if (!compact) {\n onMouseEnter?.();\n }\n },\n onMouseLeave: () => {\n if (!compact) {\n onMouseLeave?.();\n }\n },\n };\n\n let tagNode: React.ReactNode;\n\n if (href) {\n tagNode = (\n <a {...rowEventProps} href={href} ref={mergedRowRef}>\n {rowChildren}\n </a>\n );\n } else if (wrappedByItemWrapper) {\n tagNode = (\n <div\n {...rowEventProps}\n role={menuItemAriaProps?.role ?? 'button'}\n ref={mergedRowRef}\n >\n {rowChildren}\n </div>\n );\n } else {\n tagNode = (\n <button {...rowEventProps} ref={mergedRowRef}>\n {rowChildren}\n </button>\n );\n }\n\n if (chevronControl) {\n tagNode = (\n <div className={b('group-header-row', {current}, className)}>\n {tagNode}\n {chevronControl}\n </div>\n );\n }\n\n const expandedMenuRows = resolvedMenuPopupItems;\n\n const wrappedTagNode =\n showMenuPopup && expandedMenuRows ? (\n <ItemPopup\n items={expandedMenuRows}\n title={resolvedMenuPopupTitle}\n open={menuPopupOpen}\n itemClassName={popupItemClassName}\n hideIcon={menuPopupHideIcon}\n nestedPopupHideIcon={menuPopupNestedHideIcon}\n onOpenChange={setMenuPopupOpen}\n collapsed={collapsedItem ? true : compact}\n onPopupItemClick={onPopupItemClick}\n onItemClick={onItemClick}\n enableQuickAccessPin={enableQuickAccessPin}\n onToggleQuickAccess={onToggleQuickAccess}\n suppressCurrentItemIds={suppressCurrentItemIds}\n >\n {tagNode}\n </ItemPopup>\n ) : (\n tagNode\n );\n\n const createdNode = (\n <React.Fragment>\n {wrappedTagNode}\n {renderPopupContent && Boolean(anchorRef?.current) && (\n <Popup\n strategy=\"fixed\"\n open={popupVisible}\n keepMounted={popupKeepMounted}\n placement={popupPlacement}\n offset={popupOffset}\n anchorElement={anchorRef.current}\n onOpenChange={handleOpenChangePopup}\n >\n {renderPopupContent()}\n </Popup>\n )}\n </React.Fragment>\n );\n\n return createdNode;\n };\n\n const wrapWithQuickAccessPin = (rowNode: React.ReactNode) => {\n if (!showQuickAccessPin) {\n return rowNode;\n }\n\n return (\n <div\n ref={interactiveRowRef}\n className={b('interactive-row', {'menu-popup': menuPopupRow})}\n onMouseLeave={() => setQuickAccessPinSuppressed(false)}\n >\n {rowNode}\n <span\n className={b('quick-access-pin-slot', {\n suppressed: quickAccessPinSuppressed,\n })}\n >\n <ItemQuickAccessPin\n quickAccess={quickAccessPinItem.quickAccess}\n onToggle={handleToggleQuickAccess}\n />\n </span>\n </div>\n );\n };\n\n const iconNode =\n hideIcon || !icon ? null : (\n <Icon qa={iconQa} data={icon} size={iconSize} className={b('icon')} />\n );\n const titleNode = renderItemTitle({\n title,\n rightAdornment,\n titleLines: expandedTitleLines,\n });\n const params = {icon: iconNode, title: titleNode};\n let highlightedNode = null;\n let node;\n\n const opts = {compact: Boolean(compact), collapsed: false, item: props, ref};\n\n if (typeof itemWrapper === 'function') {\n node = wrapWithQuickAccessPin(itemWrapper(params, makeNode, opts) as React.ReactElement);\n highlightedNode =\n bringForward &&\n (itemWrapper(\n params,\n ({icon: iconEl}) => makeIconNode(iconEl, false),\n opts,\n ) as React.ReactElement);\n } else {\n node = wrapWithQuickAccessPin(makeNode(params));\n highlightedNode = bringForward && makeIconNode(iconNode, false);\n }\n\n return (\n <React.Fragment>\n {bringForward && (\n <HighlightedItem\n iconNode={highlightedNode}\n iconRef={highlightedRef}\n onClick={(event: React.MouseEvent<HTMLElement, MouseEvent>) =>\n onItemClick?.(props, false, event)\n }\n onClickCapture={onItemClickCapture}\n />\n )}\n {node}\n </React.Fragment>\n );\n};\n\nItem.displayName = 'Item';\n"],"names":["createBlock","styles","ITEM_TYPE_REGULAR","isQuickAccessPinEligible","i18n","setRef","useSafeAsideHeaderContext","getAsideHeaderDensityConfig","COLLAPSE_ITEM_ID","getItemPresentationCurrentIds","ItemPopupNestContext","AsideDivider","ItemPopup","Icon","ChevronDown","ChevronRight","COMPOSITE_BAR_ITEM_ID_ATTRIBUTE","CURRENT_IDS_ATTRIBUTE","Popup","ItemQuickAccessPin","renderItemTitle","HighlightedItem"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var styles = {"gn-composite-bar-item":"Item-module__gn-composite-bar-item___-pkx5","gnCompositeBarItem":"Item-module__gn-composite-bar-item___-pkx5","gn-composite-bar-item_type_regular":"Item-module__gn-composite-bar-item_type_regular___wkhsT","gnCompositeBarItemTypeRegular":"Item-module__gn-composite-bar-item_type_regular___wkhsT","gn-composite-bar-item__icon":"Item-module__gn-composite-bar-item__icon___ORFNf","gnCompositeBarItemIcon":"Item-module__gn-composite-bar-item__icon___ORFNf","gn-composite-bar-item_current":"Item-module__gn-composite-bar-item_current___NT2hB","gnCompositeBarItemCurrent":"Item-module__gn-composite-bar-item_current___NT2hB","gn-composite-bar-item__icon-tooltip":"Item-module__gn-composite-bar-item__icon-tooltip___PxU2i","gnCompositeBarItemIconTooltip":"Item-module__gn-composite-bar-item__icon-tooltip___PxU2i","g-action-tooltip__description":"Item-module__g-action-tooltip__description___UsHcG","gActionTooltipDescription":"Item-module__g-action-tooltip__description___UsHcG","gn-composite-bar-item__icon-place":"Item-module__gn-composite-bar-item__icon-place___jPKRh","gnCompositeBarItemIconPlace":"Item-module__gn-composite-bar-item__icon-place___jPKRh","gn-composite-bar-item__title":"Item-module__gn-composite-bar-item__title___wj5L5","gnCompositeBarItemTitle":"Item-module__gn-composite-bar-item__title___wj5L5","gn-composite-bar-item__title-text":"Item-module__gn-composite-bar-item__title-text___cILJo","gnCompositeBarItemTitleText":"Item-module__gn-composite-bar-item__title-text___cILJo","gn-composite-bar-item__title-adornment":"Item-module__gn-composite-bar-item__title-adornment___Xcopn","gnCompositeBarItemTitleAdornment":"Item-module__gn-composite-bar-item__title-adornment___Xcopn","gn-composite-bar-item__collapse-item":"Item-module__gn-composite-bar-item__collapse-item___Up6IX","gnCompositeBarItemCollapseItem":"Item-module__gn-composite-bar-item__collapse-item___Up6IX","gn-composite-bar-item__collapse-item-icon":"Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao","gnCompositeBarItemCollapseItemIcon":"Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao","gn-composite-bar-item__menu-divider":"Item-module__gn-composite-bar-item__menu-divider___hkm-Z","gnCompositeBarItemMenuDivider":"Item-module__gn-composite-bar-item__menu-divider___hkm-Z","gn-composite-bar-item__collapse-items-popup-content":"Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to","gnCompositeBarItemCollapseItemsPopupContent":"Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to","gn-composite-bar-item__link":"Item-module__gn-composite-bar-item__link___McAVN","gnCompositeBarItemLink":"Item-module__gn-composite-bar-item__link___McAVN","gn-composite-bar-item__btn-icon":"Item-module__gn-composite-bar-item__btn-icon___SwT65","gnCompositeBarItemBtnIcon":"Item-module__gn-composite-bar-item__btn-icon___SwT65","gn-composite-bar-item_type_action":"Item-module__gn-composite-bar-item_type_action___2jxO8","gnCompositeBarItemTypeAction":"Item-module__gn-composite-bar-item_type_action___2jxO8","gn-composite-bar-item__icon-tooltip_item-type_action":"Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR","gnCompositeBarItemIconTooltipItemTypeAction":"Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR","gn-composite-bar-item__icon-popover":"Item-module__gn-composite-bar-item__icon-popover___euq-P","gnCompositeBarItemIconPopover":"Item-module__gn-composite-bar-item__icon-popover___euq-P","gn-composite-bar-item__icon-popover_item-type_action":"Item-module__gn-composite-bar-item__icon-popover_item-type_action___ep-D3","gnCompositeBarItemIconPopoverItemTypeAction":"Item-module__gn-composite-bar-item__icon-popover_item-type_action___ep-D3","gn-composite-bar-item__popup-content":"Item-module__gn-composite-bar-item__popup-content___oys3t","gnCompositeBarItemPopupContent":"Item-module__gn-composite-bar-item__popup-content___oys3t","gn-composite-bar-item__root-menu-item":"Item-module__gn-composite-bar-item__root-menu-item___nlpvH","gnCompositeBarItemRootMenuItem":"Item-module__gn-composite-bar-item__root-menu-item___nlpvH","gn-composite-bar-item__popup-title":"Item-module__gn-composite-bar-item__popup-title___2-tGd","gnCompositeBarItemPopupTitle":"Item-module__gn-composite-bar-item__popup-title___2-tGd","gn-composite-bar-item__popup-item":"Item-module__gn-composite-bar-item__popup-item___MPgm3","gnCompositeBarItemPopupItem":"Item-module__gn-composite-bar-item__popup-item___MPgm3","gn-composite-bar-item_hide-icon":"Item-module__gn-composite-bar-item_hide-icon___bf5h3","gnCompositeBarItemHideIcon":"Item-module__gn-composite-bar-item_hide-icon___bf5h3","gn-composite-bar-item_compact":"Item-module__gn-composite-bar-item_compact___PVTeM","gnCompositeBarItemCompact":"Item-module__gn-composite-bar-item_compact___PVTeM","gn-composite-bar-item__group-header-row":"Item-module__gn-composite-bar-item__group-header-row___m-4WB","gnCompositeBarItemGroupHeaderRow":"Item-module__gn-composite-bar-item__group-header-row___m-4WB","gn-composite-bar-item_with-chevron-control":"Item-module__gn-composite-bar-item_with-chevron-control___5F9O3","gnCompositeBarItemWithChevronControl":"Item-module__gn-composite-bar-item_with-chevron-control___5F9O3","gn-composite-bar-item__chevron":"Item-module__gn-composite-bar-item__chevron___ZZ-vf","gnCompositeBarItemChevron":"Item-module__gn-composite-bar-item__chevron___ZZ-vf","gn-composite-bar-item__chevron_interactive":"Item-module__gn-composite-bar-item__chevron_interactive___jmUhC","gnCompositeBarItemChevronInteractive":"Item-module__gn-composite-bar-item__chevron_interactive___jmUhC"};
5
+ var styles = {"gn-composite-bar-item":"Item-module__gn-composite-bar-item___-pkx5","gnCompositeBarItem":"Item-module__gn-composite-bar-item___-pkx5","gn-composite-bar-item_type_regular":"Item-module__gn-composite-bar-item_type_regular___wkhsT","gnCompositeBarItemTypeRegular":"Item-module__gn-composite-bar-item_type_regular___wkhsT","gn-composite-bar-item__surface":"Item-module__gn-composite-bar-item__surface___iqsAp","gnCompositeBarItemSurface":"Item-module__gn-composite-bar-item__surface___iqsAp","gn-composite-bar-item_menu-popup-row":"Item-module__gn-composite-bar-item_menu-popup-row___pX55k","gnCompositeBarItemMenuPopupRow":"Item-module__gn-composite-bar-item_menu-popup-row___pX55k","gn-composite-bar-item_compact":"Item-module__gn-composite-bar-item_compact___PVTeM","gnCompositeBarItemCompact":"Item-module__gn-composite-bar-item_compact___PVTeM","gn-composite-bar-item__icon":"Item-module__gn-composite-bar-item__icon___ORFNf","gnCompositeBarItemIcon":"Item-module__gn-composite-bar-item__icon___ORFNf","gn-composite-bar-item_current":"Item-module__gn-composite-bar-item_current___NT2hB","gnCompositeBarItemCurrent":"Item-module__gn-composite-bar-item_current___NT2hB","gn-composite-bar-item__icon-tooltip":"Item-module__gn-composite-bar-item__icon-tooltip___PxU2i","gnCompositeBarItemIconTooltip":"Item-module__gn-composite-bar-item__icon-tooltip___PxU2i","g-action-tooltip__description":"Item-module__g-action-tooltip__description___UsHcG","gActionTooltipDescription":"Item-module__g-action-tooltip__description___UsHcG","gn-composite-bar-item__icon-place":"Item-module__gn-composite-bar-item__icon-place___jPKRh","gnCompositeBarItemIconPlace":"Item-module__gn-composite-bar-item__icon-place___jPKRh","gn-composite-bar-item__title":"Item-module__gn-composite-bar-item__title___wj5L5","gnCompositeBarItemTitle":"Item-module__gn-composite-bar-item__title___wj5L5","gn-composite-bar-item__title-text":"Item-module__gn-composite-bar-item__title-text___cILJo","gnCompositeBarItemTitleText":"Item-module__gn-composite-bar-item__title-text___cILJo","gn-composite-bar-item__title-text_lines_2":"Item-module__gn-composite-bar-item__title-text_lines_2___iBySH","gnCompositeBarItemTitleTextLines2":"Item-module__gn-composite-bar-item__title-text_lines_2___iBySH","gn-composite-bar-item__title-adornment":"Item-module__gn-composite-bar-item__title-adornment___Xcopn","gnCompositeBarItemTitleAdornment":"Item-module__gn-composite-bar-item__title-adornment___Xcopn","gn-composite-bar-item__interactive-row":"Item-module__gn-composite-bar-item__interactive-row___JXbmT","gnCompositeBarItemInteractiveRow":"Item-module__gn-composite-bar-item__interactive-row___JXbmT","gn-composite-bar-item__quick-access-pin-slot":"Item-module__gn-composite-bar-item__quick-access-pin-slot___j9wtv","gnCompositeBarItemQuickAccessPinSlot":"Item-module__gn-composite-bar-item__quick-access-pin-slot___j9wtv","gn-composite-bar-item__quick-access-pin-slot_suppressed":"Item-module__gn-composite-bar-item__quick-access-pin-slot_suppressed___3yKbX","gnCompositeBarItemQuickAccessPinSlotSuppressed":"Item-module__gn-composite-bar-item__quick-access-pin-slot_suppressed___3yKbX","gn-composite-bar-item_with-quick-access-pin":"Item-module__gn-composite-bar-item_with-quick-access-pin___yPnvd","gnCompositeBarItemWithQuickAccessPin":"Item-module__gn-composite-bar-item_with-quick-access-pin___yPnvd","gn-composite-bar-item__quick-access-pin":"Item-module__gn-composite-bar-item__quick-access-pin___WLaB0","gnCompositeBarItemQuickAccessPin":"Item-module__gn-composite-bar-item__quick-access-pin___WLaB0","gn-composite-bar-item__quick-access-pin_pinned":"Item-module__gn-composite-bar-item__quick-access-pin_pinned___Q9mQK","gnCompositeBarItemQuickAccessPinPinned":"Item-module__gn-composite-bar-item__quick-access-pin_pinned___Q9mQK","gn-composite-bar-item__collapse-item":"Item-module__gn-composite-bar-item__collapse-item___Up6IX","gnCompositeBarItemCollapseItem":"Item-module__gn-composite-bar-item__collapse-item___Up6IX","gn-composite-bar-item__collapse-item-icon":"Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao","gnCompositeBarItemCollapseItemIcon":"Item-module__gn-composite-bar-item__collapse-item-icon___CD-ao","gn-composite-bar-item__menu-divider":"Item-module__gn-composite-bar-item__menu-divider___hkm-Z","gnCompositeBarItemMenuDivider":"Item-module__gn-composite-bar-item__menu-divider___hkm-Z","gn-composite-bar-item__collapse-items-popup-content":"Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to","gnCompositeBarItemCollapseItemsPopupContent":"Item-module__gn-composite-bar-item__collapse-items-popup-content___a82to","gn-composite-bar-item__link":"Item-module__gn-composite-bar-item__link___McAVN","gnCompositeBarItemLink":"Item-module__gn-composite-bar-item__link___McAVN","gn-composite-bar-item_title-lines_2":"Item-module__gn-composite-bar-item_title-lines_2___u8Dcn","gnCompositeBarItemTitleLines2":"Item-module__gn-composite-bar-item_title-lines_2___u8Dcn","gn-composite-bar-item__chevron":"Item-module__gn-composite-bar-item__chevron___ZZ-vf","gnCompositeBarItemChevron":"Item-module__gn-composite-bar-item__chevron___ZZ-vf","gn-composite-bar-item__btn-icon":"Item-module__gn-composite-bar-item__btn-icon___SwT65","gnCompositeBarItemBtnIcon":"Item-module__gn-composite-bar-item__btn-icon___SwT65","gn-composite-bar-item_type_action":"Item-module__gn-composite-bar-item_type_action___2jxO8","gnCompositeBarItemTypeAction":"Item-module__gn-composite-bar-item_type_action___2jxO8","gn-composite-bar-item__icon-tooltip_item-type_action":"Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR","gnCompositeBarItemIconTooltipItemTypeAction":"Item-module__gn-composite-bar-item__icon-tooltip_item-type_action___HUhUR","gn-composite-bar-item__icon-popover":"Item-module__gn-composite-bar-item__icon-popover___euq-P","gnCompositeBarItemIconPopover":"Item-module__gn-composite-bar-item__icon-popover___euq-P","gn-composite-bar-item__icon-popover_single-label":"Item-module__gn-composite-bar-item__icon-popover_single-label___mc-tU","gnCompositeBarItemIconPopoverSingleLabel":"Item-module__gn-composite-bar-item__icon-popover_single-label___mc-tU","gn-composite-bar-item__icon-popover_item-type_action":"Item-module__gn-composite-bar-item__icon-popover_item-type_action___ep-D3","gnCompositeBarItemIconPopoverItemTypeAction":"Item-module__gn-composite-bar-item__icon-popover_item-type_action___ep-D3","gn-composite-bar-item__popup-content":"Item-module__gn-composite-bar-item__popup-content___oys3t","gnCompositeBarItemPopupContent":"Item-module__gn-composite-bar-item__popup-content___oys3t","gn-composite-bar-item__popup-content_single-label":"Item-module__gn-composite-bar-item__popup-content_single-label___done-","gnCompositeBarItemPopupContentSingleLabel":"Item-module__gn-composite-bar-item__popup-content_single-label___done-","gn-composite-bar-item__root-menu-item":"Item-module__gn-composite-bar-item__root-menu-item___nlpvH","gnCompositeBarItemRootMenuItem":"Item-module__gn-composite-bar-item__root-menu-item___nlpvH","gn-composite-bar-item__popup-title":"Item-module__gn-composite-bar-item__popup-title___2-tGd","gnCompositeBarItemPopupTitle":"Item-module__gn-composite-bar-item__popup-title___2-tGd","gn-composite-bar-item__popup-item":"Item-module__gn-composite-bar-item__popup-item___MPgm3","gnCompositeBarItemPopupItem":"Item-module__gn-composite-bar-item__popup-item___MPgm3","gn-composite-bar-item_hide-icon":"Item-module__gn-composite-bar-item_hide-icon___bf5h3","gnCompositeBarItemHideIcon":"Item-module__gn-composite-bar-item_hide-icon___bf5h3","gn-composite-bar-item_menu-group-nested":"Item-module__gn-composite-bar-item_menu-group-nested___CVzJD","gnCompositeBarItemMenuGroupNested":"Item-module__gn-composite-bar-item_menu-group-nested___CVzJD","gn-composite-bar-item__group-header-row":"Item-module__gn-composite-bar-item__group-header-row___m-4WB","gnCompositeBarItemGroupHeaderRow":"Item-module__gn-composite-bar-item__group-header-row___m-4WB","gn-composite-bar-item__group-header-row_current":"Item-module__gn-composite-bar-item__group-header-row_current___YYm8y","gnCompositeBarItemGroupHeaderRowCurrent":"Item-module__gn-composite-bar-item__group-header-row_current___YYm8y","gn-composite-bar-item_with-chevron-control":"Item-module__gn-composite-bar-item_with-chevron-control___5F9O3","gnCompositeBarItemWithChevronControl":"Item-module__gn-composite-bar-item_with-chevron-control___5F9O3","gn-composite-bar-item__chevron_interactive":"Item-module__gn-composite-bar-item__chevron_interactive___jmUhC","gnCompositeBarItemChevronInteractive":"Item-module__gn-composite-bar-item__chevron_interactive___jmUhC"};
6
6
 
7
7
  exports.default = styles;
8
8
  //# sourceMappingURL=Item.module.scss.js.map
@@ -1,8 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import type { AsideHeaderItem } from 'src/components/AsideHeader/types';
3
+ export type QuickAccessToggleHandler = (item: AsideHeaderItem, event?: React.MouseEvent<HTMLButtonElement>) => void;
3
4
  export interface ItemProps extends AsideHeaderItem {
4
5
  }
5
6
  export interface ItemInnerProps extends ItemProps {
7
+ /** Internal registration of the original DOM row (never a popup or highlighted copy). */
8
+ rowRef?: React.Ref<HTMLElement>;
6
9
  className?: string;
7
10
  popupItemClassName?: string;
8
11
  /** Items shown in the compact (or expanded overflow) popover: group children or overflow list. */
@@ -10,14 +13,24 @@ export interface ItemInnerProps extends ItemProps {
10
13
  /** Optional title rendered at the top of the popup listing `menuPopupItems`. */
11
14
  menuPopupTitle?: string;
12
15
  /**
13
- * When set, the row is an inline (expanded sidebar) group header: chevron up/down
14
- * instead of a flyout chevron, and children render in a nested list.
16
+ * When set, the row is an inline (expanded sidebar) group header: chevron right/down
17
+ * instead of a flyout chevron. A collapsed header may still open its children in a popup.
15
18
  */
16
19
  groupHeaderExpanded?: boolean;
17
20
  onMouseEnter?: () => void;
18
21
  onMouseLeave?: () => void;
19
22
  /** When true, the icon slot is not rendered (e.g. compact popover: icon stays in the bar). */
20
23
  hideIcon?: boolean;
24
+ /** Controls icon visibility for the rows rendered in this item's popup. */
25
+ menuPopupHideIcon?: boolean;
26
+ /** Controls icon visibility one popup level deeper (a group nested inside `More`). */
27
+ menuPopupNestedHideIcon?: boolean;
28
+ /** Row rendered inside ItemPopup; always uses a single-line title. */
29
+ menuPopupRow?: boolean;
30
+ /** Suppresses selected styling without changing the source item's `current` value. */
31
+ suppressCurrentHighlight?: boolean;
32
+ /** Item ids whose current state is visually suppressed in this item's popup. */
33
+ suppressCurrentItemIds?: ReadonlySet<string>;
21
34
  /**
22
35
  * Stops click bubbling so portaled popup rows do not trigger the parent Item's onClick.
23
36
  * Off when `itemWrapper` is set so the wrapper (e.g. react-router Link) receives the click.
@@ -31,8 +44,13 @@ export interface ItemInnerProps extends ItemProps {
31
44
  * itself can carry the group's own main action.
32
45
  */
33
46
  onGroupHeaderChevronClick?: (event: React.SyntheticEvent) => void;
34
- /** When `true`, the chevron is not rendered in the compact (collapsed) sidebar. */
35
- hideCompactChevron?: boolean;
36
47
  /** Inline menu-group tree (L-connector) rendered inside the row, before the icon slot. */
37
48
  menuGroupNestedTreeConnector?: React.ReactNode;
49
+ /** Inline expanded menu-group child row. */
50
+ menuGroupNested?: boolean;
51
+ /** Enables pin/unpin controls for eligible leaf items. */
52
+ enableQuickAccessPin?: boolean;
53
+ /** Original public item used by the quick access callback. */
54
+ quickAccessPinItem?: AsideHeaderItem;
55
+ onToggleQuickAccess?: QuickAccessToggleHandler;
38
56
  }