@gravity-ui/navigation 5.0.0 → 5.0.1

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 (472) hide show
  1. package/build/cjs/assets/icons/{divider-collapsed-compact.svg.js → control-menu-button.svg.js} +7 -7
  2. package/build/cjs/assets/icons/control-menu-button.svg.js.map +1 -0
  3. package/build/cjs/components/AsideHeader/AsideHeader.css +1 -1
  4. package/build/cjs/components/AsideHeader/AsideHeader.js +4 -4
  5. package/build/cjs/components/AsideHeader/AsideHeader.js.map +1 -1
  6. package/build/cjs/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  7. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +4 -28
  8. package/build/cjs/components/AsideHeader/AsideHeaderContext.js +8 -9
  9. package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  10. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.css +1 -0
  11. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +12 -0
  12. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +44 -0
  13. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  14. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js +8 -0
  15. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js.map +1 -0
  16. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/index.d.ts +1 -0
  17. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  18. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +47 -104
  19. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  20. package/build/cjs/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  21. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.d.ts +0 -1
  22. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js +0 -2
  23. package/build/cjs/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
  24. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -0
  25. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  26. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  27. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +1 -0
  28. package/build/cjs/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  29. package/build/cjs/components/AsideHeader/components/AllPagesPanel/index.d.ts +1 -0
  30. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +4 -3
  31. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +15 -67
  32. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  33. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
  34. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js +29 -0
  35. package/build/cjs/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  36. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  37. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +1 -2
  38. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +11 -16
  39. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  40. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  41. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  42. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +5 -35
  43. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js +127 -79
  44. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  45. package/build/cjs/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  46. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  47. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +2 -2
  48. package/build/cjs/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -1
  49. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -25
  50. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +2 -9
  51. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js +63 -46
  52. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  53. package/build/cjs/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  54. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +7 -0
  55. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +9 -0
  56. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +34 -0
  57. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +1 -0
  58. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +8 -0
  59. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +1 -0
  60. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +24 -0
  61. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +29 -0
  62. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +1 -0
  63. package/build/cjs/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +2 -0
  64. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.d.ts +3 -0
  65. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js +4 -0
  66. package/build/cjs/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
  67. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.d.ts +9 -5
  68. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js +73 -57
  69. package/build/cjs/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  70. package/build/cjs/components/AsideHeader/components/FirstPanel.js +20 -45
  71. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -1
  72. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  73. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.d.ts +0 -2
  74. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js +1 -12
  75. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  76. package/build/cjs/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  77. package/build/cjs/components/AsideHeader/components/Header.js +4 -13
  78. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -1
  79. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.css +1 -1
  80. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js +3 -3
  81. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  82. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.css +1 -1
  83. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -4
  84. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +6 -18
  85. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  86. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.css +1 -1
  87. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  88. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +2 -7
  89. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  90. package/build/cjs/components/AsideHeader/components/Panels.d.ts +1 -1
  91. package/build/cjs/components/AsideHeader/components/Panels.js +4 -18
  92. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -1
  93. package/build/cjs/components/AsideHeader/i18n/en.json.js +1 -4
  94. package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -1
  95. package/build/cjs/components/AsideHeader/i18n/index.d.ts +4 -4
  96. package/build/cjs/components/AsideHeader/i18n/ru.json.js +1 -4
  97. package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -1
  98. package/build/cjs/components/AsideHeader/index.d.ts +2 -3
  99. package/build/cjs/components/AsideHeader/types.d.ts +9 -40
  100. package/build/cjs/components/AsideHeader/types.js.map +1 -1
  101. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +1 -6
  102. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +7 -41
  103. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  104. package/build/cjs/components/Footer/MenuItem/MenuItem.js +2 -2
  105. package/build/cjs/components/Footer/MenuItem/MenuItem.js.map +1 -1
  106. package/build/cjs/components/Footer/desktop/Footer.js +1 -1
  107. package/build/cjs/components/Footer/desktop/Footer.js.map +1 -1
  108. package/build/cjs/components/Footer/mobile/Footer.js +1 -1
  109. package/build/cjs/components/Footer/mobile/Footer.js.map +1 -1
  110. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +4 -2
  111. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +16 -4
  112. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  113. package/build/cjs/components/Logo/Logo.css +1 -1
  114. package/build/cjs/components/Logo/Logo.d.ts +3 -7
  115. package/build/cjs/components/Logo/Logo.js +7 -20
  116. package/build/cjs/components/Logo/Logo.js.map +1 -1
  117. package/build/cjs/components/Logo/Logo.module.scss.js +1 -1
  118. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.css +1 -1
  119. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.module.scss.js +1 -1
  120. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +1 -1
  121. package/build/cjs/components/MobileHeader/MobileHeader.js +9 -9
  122. package/build/cjs/components/MobileHeader/MobileHeader.js.map +1 -1
  123. package/build/cjs/components/MobileHeader/types.d.ts +1 -1
  124. package/build/cjs/components/MobileLogo/MobileLogo.d.ts +1 -1
  125. package/build/cjs/components/MobileLogo/MobileLogo.js +2 -2
  126. package/build/cjs/components/MobileLogo/MobileLogo.js.map +1 -1
  127. package/build/cjs/components/Settings/Settings.js +4 -4
  128. package/build/cjs/components/Settings/Settings.js.map +1 -1
  129. package/build/cjs/components/Settings/SettingsSearch/AllResultsPage.js +2 -2
  130. package/build/cjs/components/Settings/SettingsSearch/AllResultsPage.js.map +1 -1
  131. package/build/cjs/components/Settings/SettingsSearch/SettingsSearch.js +3 -3
  132. package/build/cjs/components/Settings/SettingsSearch/SettingsSearch.js.map +1 -1
  133. package/build/cjs/components/Settings/SettingsSection.js +2 -2
  134. package/build/cjs/components/Settings/SettingsSection.js.map +1 -1
  135. package/build/cjs/components/TopAlert/useTopAlertHeight.js +2 -2
  136. package/build/cjs/components/TopAlert/useTopAlertHeight.js.map +1 -1
  137. package/build/cjs/components/constants.d.ts +4 -10
  138. package/build/cjs/components/constants.js +5 -17
  139. package/build/cjs/components/constants.js.map +1 -1
  140. package/build/cjs/components/types.d.ts +12 -24
  141. package/build/cjs/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.js +2 -2
  142. package/build/cjs/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.js.map +1 -1
  143. package/build/cjs/index.js +0 -4
  144. package/build/cjs/index.js.map +1 -1
  145. package/build/esm/assets/icons/{divider-collapsed-compact.svg.js → control-menu-button.svg.js} +7 -7
  146. package/build/esm/assets/icons/control-menu-button.svg.js.map +1 -0
  147. package/build/esm/components/AsideHeader/AsideHeader.css +1 -1
  148. package/build/esm/components/AsideHeader/AsideHeader.js +4 -4
  149. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -1
  150. package/build/esm/components/AsideHeader/AsideHeader.module.scss.js +1 -1
  151. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +4 -28
  152. package/build/esm/components/AsideHeader/AsideHeaderContext.js +8 -9
  153. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -1
  154. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.css +1 -0
  155. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +12 -0
  156. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +42 -0
  157. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  158. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js +4 -0
  159. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.module.scss.js.map +1 -0
  160. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesListItem/index.d.ts +1 -0
  161. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.css +1 -1
  162. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js +48 -105
  163. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.js.map +1 -1
  164. package/build/esm/components/AsideHeader/components/AllPagesPanel/AllPagesPanel.module.scss.js +1 -1
  165. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.d.ts +0 -1
  166. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js +1 -2
  167. package/build/esm/components/AsideHeader/components/AllPagesPanel/constants.js.map +1 -1
  168. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js +1 -0
  169. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/en.json.js.map +1 -1
  170. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/index.d.ts +4 -4
  171. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js +1 -0
  172. package/build/esm/components/AsideHeader/components/AllPagesPanel/i18n/ru.json.js.map +1 -1
  173. package/build/esm/components/AsideHeader/components/AllPagesPanel/index.d.ts +1 -0
  174. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.d.ts +4 -3
  175. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js +15 -67
  176. package/build/esm/components/AsideHeader/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -1
  177. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.d.ts +2 -0
  178. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js +27 -0
  179. package/build/esm/components/AsideHeader/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  180. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.css +1 -1
  181. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.d.ts +1 -2
  182. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +13 -18
  183. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -1
  184. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.module.scss.js +1 -1
  185. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.css +1 -1
  186. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.d.ts +5 -35
  187. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js +129 -80
  188. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.js.map +1 -1
  189. package/build/esm/components/AsideHeader/components/CompositeBar/CompositeBar.module.scss.js +1 -1
  190. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.css +1 -1
  191. package/build/esm/components/AsideHeader/components/CompositeBar/HighlightedItem/HighlightedItem.js +1 -1
  192. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.css +1 -25
  193. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.d.ts +2 -9
  194. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js +66 -49
  195. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.js.map +1 -1
  196. package/build/esm/components/AsideHeader/components/CompositeBar/Item/Item.module.scss.js +1 -1
  197. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.css +7 -0
  198. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.d.ts +9 -0
  199. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +32 -0
  200. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +1 -0
  201. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js +4 -0
  202. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltip.module.scss.js.map +1 -0
  203. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.d.ts +24 -0
  204. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +26 -0
  205. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +1 -0
  206. package/build/esm/components/AsideHeader/components/CompositeBar/MultipleTooltip/index.d.ts +2 -0
  207. package/build/esm/components/AsideHeader/components/CompositeBar/constants.d.ts +3 -0
  208. package/build/esm/components/AsideHeader/components/CompositeBar/constants.js +3 -1
  209. package/build/esm/components/AsideHeader/components/CompositeBar/constants.js.map +1 -1
  210. package/build/esm/components/AsideHeader/components/CompositeBar/utils.d.ts +9 -5
  211. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js +72 -57
  212. package/build/esm/components/AsideHeader/components/CompositeBar/utils.js.map +1 -1
  213. package/build/esm/components/AsideHeader/components/FirstPanel.js +21 -46
  214. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -1
  215. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.css +1 -1
  216. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.d.ts +0 -2
  217. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js +1 -12
  218. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.js.map +1 -1
  219. package/build/esm/components/AsideHeader/components/FooterItem/FooterItem.module.scss.js +1 -1
  220. package/build/esm/components/AsideHeader/components/Header.js +5 -14
  221. package/build/esm/components/AsideHeader/components/Header.js.map +1 -1
  222. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.css +1 -1
  223. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js +4 -4
  224. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -1
  225. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.css +1 -1
  226. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.d.ts +1 -4
  227. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +7 -19
  228. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -1
  229. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.css +1 -1
  230. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.d.ts +1 -1
  231. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +2 -7
  232. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -1
  233. package/build/esm/components/AsideHeader/components/Panels.d.ts +1 -1
  234. package/build/esm/components/AsideHeader/components/Panels.js +5 -19
  235. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -1
  236. package/build/esm/components/AsideHeader/i18n/en.json.js +2 -4
  237. package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -1
  238. package/build/esm/components/AsideHeader/i18n/index.d.ts +4 -4
  239. package/build/esm/components/AsideHeader/i18n/ru.json.js +2 -4
  240. package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -1
  241. package/build/esm/components/AsideHeader/index.d.ts +2 -3
  242. package/build/esm/components/AsideHeader/types.d.ts +9 -40
  243. package/build/esm/components/AsideHeader/types.js.map +1 -1
  244. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.d.ts +1 -6
  245. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +7 -41
  246. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -1
  247. package/build/esm/components/Footer/MenuItem/MenuItem.js +1 -1
  248. package/build/esm/components/Footer/desktop/Footer.js +1 -1
  249. package/build/esm/components/Footer/desktop/Footer.js.map +1 -1
  250. package/build/esm/components/Footer/mobile/Footer.js +1 -1
  251. package/build/esm/components/Footer/mobile/Footer.js.map +1 -1
  252. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +4 -2
  253. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +17 -5
  254. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -1
  255. package/build/esm/components/Logo/Logo.css +1 -1
  256. package/build/esm/components/Logo/Logo.d.ts +3 -7
  257. package/build/esm/components/Logo/Logo.js +7 -20
  258. package/build/esm/components/Logo/Logo.js.map +1 -1
  259. package/build/esm/components/Logo/Logo.module.scss.js +1 -1
  260. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.css +1 -1
  261. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.module.scss.js +1 -1
  262. package/build/esm/components/MobileHeader/MobileHeader.d.ts +1 -1
  263. package/build/esm/components/MobileHeader/MobileHeader.js +9 -9
  264. package/build/esm/components/MobileHeader/MobileHeader.js.map +1 -1
  265. package/build/esm/components/MobileHeader/types.d.ts +1 -1
  266. package/build/esm/components/MobileLogo/MobileLogo.d.ts +1 -1
  267. package/build/esm/components/MobileLogo/MobileLogo.js +2 -2
  268. package/build/esm/components/MobileLogo/MobileLogo.js.map +1 -1
  269. package/build/esm/components/Settings/Settings.js +2 -2
  270. package/build/esm/components/Settings/SettingsSearch/AllResultsPage.js +1 -1
  271. package/build/esm/components/Settings/SettingsSearch/SettingsSearch.js +1 -1
  272. package/build/esm/components/Settings/SettingsSection.js +1 -1
  273. package/build/esm/components/TopAlert/useTopAlertHeight.js +1 -1
  274. package/build/esm/components/constants.d.ts +4 -10
  275. package/build/esm/components/constants.js +5 -11
  276. package/build/esm/components/constants.js.map +1 -1
  277. package/build/esm/components/types.d.ts +12 -24
  278. package/build/esm/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.js +1 -1
  279. package/build/esm/index.js +1 -2
  280. package/build/esm/index.js.map +1 -1
  281. package/codemods/bin/cli.js +6 -19
  282. package/codemods/transforms/unifyInterfaces.ts +0 -1
  283. package/package.json +7 -4
  284. package/build/cjs/_virtual/_commonjsHelpers.js +0 -11
  285. package/build/cjs/_virtual/_commonjsHelpers.js.map +0 -1
  286. package/build/cjs/_virtual/debounce.js +0 -12
  287. package/build/cjs/_virtual/debounce.js.map +0 -1
  288. package/build/cjs/_virtual/identity.js +0 -12
  289. package/build/cjs/_virtual/identity.js.map +0 -1
  290. package/build/cjs/_virtual/last.js +0 -12
  291. package/build/cjs/_virtual/last.js.map +0 -1
  292. package/build/cjs/assets/icons/divider-collapsed-compact.svg.js.map +0 -1
  293. package/build/cjs/components/AsideHeader/FooterLayoutContext.d.ts +0 -7
  294. package/build/cjs/components/AsideHeader/FooterLayoutContext.js +0 -10
  295. package/build/cjs/components/AsideHeader/FooterLayoutContext.js.map +0 -1
  296. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +0 -3
  297. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js +0 -17
  298. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js.map +0 -1
  299. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +0 -9
  300. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +0 -27
  301. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +0 -1
  302. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.d.ts +0 -2
  303. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js +0 -13
  304. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js.map +0 -1
  305. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +0 -73
  306. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +0 -144
  307. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +0 -1
  308. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +0 -5
  309. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +0 -45
  310. package/build/cjs/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +0 -1
  311. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +0 -1
  312. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +0 -8
  313. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +0 -27
  314. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +0 -1
  315. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +0 -8
  316. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +0 -1
  317. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +0 -1
  318. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +0 -21
  319. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +0 -146
  320. package/build/cjs/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +0 -1
  321. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.css +0 -1
  322. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.d.ts +0 -19
  323. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js +0 -95
  324. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.js.map +0 -1
  325. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +0 -8
  326. package/build/cjs/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +0 -1
  327. package/build/cjs/components/AsideHeader/components/FooterBar/constants.d.ts +0 -1
  328. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js +0 -6
  329. package/build/cjs/components/AsideHeader/components/FooterBar/constants.js.map +0 -1
  330. package/build/cjs/components/AsideHeader/components/FooterBar/index.d.ts +0 -1
  331. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.d.ts +0 -6
  332. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.js +0 -57
  333. package/build/cjs/components/AsideHeader/hooks/useDelayedToggle.js.map +0 -1
  334. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.d.ts +0 -9
  335. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js +0 -67
  336. package/build/cjs/components/AsideHeader/hooks/useIsExpanded.js.map +0 -1
  337. package/build/cjs/components/AsideHeader/utils/getGroupHeight.d.ts +0 -2
  338. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js +0 -16
  339. package/build/cjs/components/AsideHeader/utils/getGroupHeight.js.map +0 -1
  340. package/build/cjs/components/utils/getCollapsedWidth.d.ts +0 -1
  341. package/build/cjs/components/utils/getCollapsedWidth.js +0 -10
  342. package/build/cjs/components/utils/getCollapsedWidth.js.map +0 -1
  343. package/build/cjs/node_modules/lodash/_Symbol.js +0 -21
  344. package/build/cjs/node_modules/lodash/_Symbol.js.map +0 -1
  345. package/build/cjs/node_modules/lodash/_baseGetTag.js +0 -45
  346. package/build/cjs/node_modules/lodash/_baseGetTag.js.map +0 -1
  347. package/build/cjs/node_modules/lodash/_baseTrim.js +0 -34
  348. package/build/cjs/node_modules/lodash/_baseTrim.js.map +0 -1
  349. package/build/cjs/node_modules/lodash/_freeGlobal.js +0 -20
  350. package/build/cjs/node_modules/lodash/_freeGlobal.js.map +0 -1
  351. package/build/cjs/node_modules/lodash/_getRawTag.js +0 -61
  352. package/build/cjs/node_modules/lodash/_getRawTag.js.map +0 -1
  353. package/build/cjs/node_modules/lodash/_objectToString.js +0 -36
  354. package/build/cjs/node_modules/lodash/_objectToString.js.map +0 -1
  355. package/build/cjs/node_modules/lodash/_root.js +0 -24
  356. package/build/cjs/node_modules/lodash/_root.js.map +0 -1
  357. package/build/cjs/node_modules/lodash/_trimmedEndIndex.js +0 -33
  358. package/build/cjs/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
  359. package/build/cjs/node_modules/lodash/debounce.js +0 -208
  360. package/build/cjs/node_modules/lodash/debounce.js.map +0 -1
  361. package/build/cjs/node_modules/lodash/identity.js +0 -35
  362. package/build/cjs/node_modules/lodash/identity.js.map +0 -1
  363. package/build/cjs/node_modules/lodash/isObject.js +0 -45
  364. package/build/cjs/node_modules/lodash/isObject.js.map +0 -1
  365. package/build/cjs/node_modules/lodash/isObjectLike.js +0 -43
  366. package/build/cjs/node_modules/lodash/isObjectLike.js.map +0 -1
  367. package/build/cjs/node_modules/lodash/isSymbol.js +0 -45
  368. package/build/cjs/node_modules/lodash/isSymbol.js.map +0 -1
  369. package/build/cjs/node_modules/lodash/last.js +0 -34
  370. package/build/cjs/node_modules/lodash/last.js.map +0 -1
  371. package/build/cjs/node_modules/lodash/now.js +0 -38
  372. package/build/cjs/node_modules/lodash/now.js.map +0 -1
  373. package/build/cjs/node_modules/lodash/toNumber.js +0 -81
  374. package/build/cjs/node_modules/lodash/toNumber.js.map +0 -1
  375. package/build/cjs/node_modules/tslib/tslib.es6.js +0 -38
  376. package/build/cjs/node_modules/tslib/tslib.es6.js.map +0 -1
  377. package/build/esm/_virtual/_commonjsHelpers.js +0 -8
  378. package/build/esm/_virtual/_commonjsHelpers.js.map +0 -1
  379. package/build/esm/_virtual/debounce.js +0 -8
  380. package/build/esm/_virtual/debounce.js.map +0 -1
  381. package/build/esm/_virtual/identity.js +0 -8
  382. package/build/esm/_virtual/identity.js.map +0 -1
  383. package/build/esm/_virtual/last.js +0 -8
  384. package/build/esm/_virtual/last.js.map +0 -1
  385. package/build/esm/assets/icons/divider-collapsed-compact.svg.js.map +0 -1
  386. package/build/esm/components/AsideHeader/FooterLayoutContext.d.ts +0 -7
  387. package/build/esm/components/AsideHeader/FooterLayoutContext.js +0 -7
  388. package/build/esm/components/AsideHeader/FooterLayoutContext.js.map +0 -1
  389. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.d.ts +0 -3
  390. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js +0 -15
  391. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/buildExpandedFromFlatList.js.map +0 -1
  392. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.d.ts +0 -9
  393. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js +0 -25
  394. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getExpandedIndexForSortableIndex.js.map +0 -1
  395. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.d.ts +0 -2
  396. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js +0 -11
  397. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getIsMenuItem.js.map +0 -1
  398. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.d.ts +0 -73
  399. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js +0 -136
  400. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.js.map +0 -1
  401. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.d.ts +0 -5
  402. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js +0 -43
  403. package/build/esm/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.js.map +0 -1
  404. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.css +0 -1
  405. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.d.ts +0 -8
  406. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js +0 -25
  407. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.js.map +0 -1
  408. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js +0 -4
  409. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.module.scss.js.map +0 -1
  410. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/index.d.ts +0 -1
  411. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.d.ts +0 -21
  412. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js +0 -144
  413. package/build/esm/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.js.map +0 -1
  414. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.css +0 -1
  415. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.d.ts +0 -19
  416. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js +0 -93
  417. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.js.map +0 -1
  418. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js +0 -4
  419. package/build/esm/components/AsideHeader/components/FooterBar/FooterBar.module.scss.js.map +0 -1
  420. package/build/esm/components/AsideHeader/components/FooterBar/constants.d.ts +0 -1
  421. package/build/esm/components/AsideHeader/components/FooterBar/constants.js +0 -4
  422. package/build/esm/components/AsideHeader/components/FooterBar/constants.js.map +0 -1
  423. package/build/esm/components/AsideHeader/components/FooterBar/index.d.ts +0 -1
  424. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.d.ts +0 -6
  425. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.js +0 -55
  426. package/build/esm/components/AsideHeader/hooks/useDelayedToggle.js.map +0 -1
  427. package/build/esm/components/AsideHeader/hooks/useIsExpanded.d.ts +0 -9
  428. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js +0 -65
  429. package/build/esm/components/AsideHeader/hooks/useIsExpanded.js.map +0 -1
  430. package/build/esm/components/AsideHeader/utils/getGroupHeight.d.ts +0 -2
  431. package/build/esm/components/AsideHeader/utils/getGroupHeight.js +0 -14
  432. package/build/esm/components/AsideHeader/utils/getGroupHeight.js.map +0 -1
  433. package/build/esm/components/utils/getCollapsedWidth.d.ts +0 -1
  434. package/build/esm/components/utils/getCollapsedWidth.js +0 -8
  435. package/build/esm/components/utils/getCollapsedWidth.js.map +0 -1
  436. package/build/esm/node_modules/lodash/_Symbol.js +0 -19
  437. package/build/esm/node_modules/lodash/_Symbol.js.map +0 -1
  438. package/build/esm/node_modules/lodash/_baseGetTag.js +0 -43
  439. package/build/esm/node_modules/lodash/_baseGetTag.js.map +0 -1
  440. package/build/esm/node_modules/lodash/_baseTrim.js +0 -32
  441. package/build/esm/node_modules/lodash/_baseTrim.js.map +0 -1
  442. package/build/esm/node_modules/lodash/_freeGlobal.js +0 -18
  443. package/build/esm/node_modules/lodash/_freeGlobal.js.map +0 -1
  444. package/build/esm/node_modules/lodash/_getRawTag.js +0 -59
  445. package/build/esm/node_modules/lodash/_getRawTag.js.map +0 -1
  446. package/build/esm/node_modules/lodash/_objectToString.js +0 -34
  447. package/build/esm/node_modules/lodash/_objectToString.js.map +0 -1
  448. package/build/esm/node_modules/lodash/_root.js +0 -22
  449. package/build/esm/node_modules/lodash/_root.js.map +0 -1
  450. package/build/esm/node_modules/lodash/_trimmedEndIndex.js +0 -31
  451. package/build/esm/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
  452. package/build/esm/node_modules/lodash/debounce.js +0 -206
  453. package/build/esm/node_modules/lodash/debounce.js.map +0 -1
  454. package/build/esm/node_modules/lodash/identity.js +0 -33
  455. package/build/esm/node_modules/lodash/identity.js.map +0 -1
  456. package/build/esm/node_modules/lodash/isObject.js +0 -43
  457. package/build/esm/node_modules/lodash/isObject.js.map +0 -1
  458. package/build/esm/node_modules/lodash/isObjectLike.js +0 -41
  459. package/build/esm/node_modules/lodash/isObjectLike.js.map +0 -1
  460. package/build/esm/node_modules/lodash/isSymbol.js +0 -43
  461. package/build/esm/node_modules/lodash/isSymbol.js.map +0 -1
  462. package/build/esm/node_modules/lodash/last.js +0 -32
  463. package/build/esm/node_modules/lodash/last.js.map +0 -1
  464. package/build/esm/node_modules/lodash/now.js +0 -36
  465. package/build/esm/node_modules/lodash/now.js.map +0 -1
  466. package/build/esm/node_modules/lodash/toNumber.js +0 -79
  467. package/build/esm/node_modules/lodash/toNumber.js.map +0 -1
  468. package/build/esm/node_modules/tslib/tslib.es6.js +0 -36
  469. package/build/esm/node_modules/tslib/tslib.es6.js.map +0 -1
  470. package/codemods/transforms/compactToIsExpanded.ts +0 -345
  471. package/codemods/transforms/compactToPinned.ts +0 -135
  472. package/codemods/transforms/v5.ts +0 -36
@@ -1,73 +0,0 @@
1
- import { MenuItemsWithGroups } from '../../../types';
2
- import { buildExpandedFromFlatList } from './buildExpandedFromFlatList';
3
- /**
4
- * Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).
5
- * Used when groupIndex from the List is the index in the filtered list without dividers.
6
- *
7
- * @param sortableIndex - Index in the list of sortable (non-divider) items.
8
- * @param flatList - Flat list with groups and dividers.
9
- * @returns Index in flatList of the sortableIndex-th sortable item.
10
- */
11
- export declare function getFlatListIndexForSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): number;
12
- /**
13
- * Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.
14
- * Used when oldIndex/newIndex from sort are indices in the sortable-only list.
15
- *
16
- * @param sortableIndex - Index in the list of sortable (non-divider) items.
17
- * @param groupItems - Items of the group (may contain dividers).
18
- * @returns Index in groupItems of the sortableIndex-th sortable item.
19
- */
20
- export declare function getIndexInGroupItemsForSortableIndex(sortableIndex: number, groupItems: MenuItemsWithGroups[]): number;
21
- export declare function getRealIndexInExpandedMenu(flatListIndex: number, flatList: MenuItemsWithGroups[]): number;
22
- /**
23
- * Returns index in the expanded menu for an item in a group.
24
- * itemIndexInGroup is the index in the sortable-only list (dividers are not counted).
25
- *
26
- * @param groupIndex - Index of the group in the flat list.
27
- * @param itemIndexInGroup - Index in the sortable-only list within the group.
28
- * @param flatList - Flat list with groups and dividers.
29
- * @returns Index in the expanded (flattened) menu list.
30
- */
31
- export declare function getRealIndexInGroup(groupIndex: number, itemIndexInGroup: number, flatList: MenuItemsWithGroups[]): number;
32
- type GroupWithItems = MenuItemsWithGroups & {
33
- items: MenuItemsWithGroups[];
34
- };
35
- /**
36
- * Returns group item and its index in flat list by sortable index (index in list without dividers).
37
- *
38
- * @param sortableIndex - Index in the filtered list (getIsMenuItem).
39
- * @param flatList - Flat list with groups and dividers.
40
- * @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.
41
- */
42
- export declare function getGroupAtSortableIndex(sortableIndex: number, flatList: MenuItemsWithGroups[]): {
43
- flatListGroupIndex: number;
44
- groupItem: GroupWithItems;
45
- } | null;
46
- /**
47
- * Returns new flat list with group items replaced at the given index.
48
- *
49
- * @param flatList - Current flat list.
50
- * @param flatListGroupIndex - Index of the group in flat list.
51
- * @param newGroupItems - New items array for the group.
52
- * @returns New flat list with updated group.
53
- */
54
- export declare function updateGroupItemsInFlatList(flatList: MenuItemsWithGroups[], flatListGroupIndex: number, newGroupItems: MenuItemsWithGroups[]): MenuItemsWithGroups[];
55
- interface SecondLevelSortResult {
56
- newFlatList: MenuItemsWithGroups[];
57
- expandedItems: ReturnType<typeof buildExpandedFromFlatList>;
58
- realOldIndex: number;
59
- realNewIndex: number;
60
- changedItem: ReturnType<typeof buildExpandedFromFlatList>[number] | undefined;
61
- }
62
- /**
63
- * Applies second-level sort (within a group) and returns new flat list, expanded items and indices.
64
- * Keeps dividers in place inside the group.
65
- *
66
- * @param groupIndex - Sortable index of the group (from List, without dividers).
67
- * @param oldIndex - Sortable index of dragged item in the group.
68
- * @param newIndex - Sortable index of drop position in the group.
69
- * @param currentFlatList - Current flat list.
70
- * @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.
71
- */
72
- export declare function applySecondLevelSort(groupIndex: number, oldIndex: number, newIndex: number, currentFlatList: MenuItemsWithGroups[]): SecondLevelSortResult | null;
73
- export {};
@@ -1,144 +0,0 @@
1
- 'use strict';
2
-
3
- var buildExpandedFromFlatList = require('./buildExpandedFromFlatList.js');
4
- var getIsMenuItem = require('./getIsMenuItem.js');
5
- var sortMenuItemsWithDividers = require('./sortMenuItemsWithDividers.js');
6
-
7
- /**
8
- * Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).
9
- * Used when groupIndex from the List is the index in the filtered list without dividers.
10
- *
11
- * @param sortableIndex - Index in the list of sortable (non-divider) items.
12
- * @param flatList - Flat list with groups and dividers.
13
- * @returns Index in flatList of the sortableIndex-th sortable item.
14
- */
15
- function getFlatListIndexForSortableIndex(sortableIndex, flatList) {
16
- let sortableCount = 0;
17
- for (let i = 0; i < flatList.length; i++) {
18
- if (getIsMenuItem.getIsMenuItem(flatList[i])) {
19
- if (sortableCount === sortableIndex) {
20
- return i;
21
- }
22
- sortableCount++;
23
- }
24
- }
25
- return 0;
26
- }
27
- /**
28
- * Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.
29
- * Used when oldIndex/newIndex from sort are indices in the sortable-only list.
30
- *
31
- * @param sortableIndex - Index in the list of sortable (non-divider) items.
32
- * @param groupItems - Items of the group (may contain dividers).
33
- * @returns Index in groupItems of the sortableIndex-th sortable item.
34
- */
35
- function getIndexInGroupItemsForSortableIndex(sortableIndex, groupItems) {
36
- let sortableCount = 0;
37
- for (let i = 0; i < groupItems.length; i++) {
38
- if (getIsMenuItem.getIsMenuItem(groupItems[i])) {
39
- if (sortableCount === sortableIndex) {
40
- return i;
41
- }
42
- sortableCount++;
43
- }
44
- }
45
- return 0;
46
- }
47
- function getRealIndexInExpandedMenu(flatListIndex, flatList) {
48
- let realIndex = 0;
49
- for (let i = 0; i < flatListIndex; i++) {
50
- const item = flatList[i];
51
- if ('items' in item && item.items && item.items.length > 0) {
52
- realIndex += item.items.length;
53
- }
54
- else {
55
- realIndex += 1;
56
- }
57
- }
58
- return realIndex;
59
- }
60
- /**
61
- * Returns index in the expanded menu for an item in a group.
62
- * itemIndexInGroup is the index in the sortable-only list (dividers are not counted).
63
- *
64
- * @param groupIndex - Index of the group in the flat list.
65
- * @param itemIndexInGroup - Index in the sortable-only list within the group.
66
- * @param flatList - Flat list with groups and dividers.
67
- * @returns Index in the expanded (flattened) menu list.
68
- */
69
- function getRealIndexInGroup(groupIndex, itemIndexInGroup, flatList) {
70
- const groupStartIndex = getRealIndexInExpandedMenu(groupIndex, flatList);
71
- const groupItem = flatList[groupIndex];
72
- if ('items' in groupItem && groupItem.items && groupItem.items.length > 0) {
73
- const positionInGroup = getIndexInGroupItemsForSortableIndex(itemIndexInGroup, groupItem.items);
74
- return groupStartIndex + positionInGroup;
75
- }
76
- return groupStartIndex + itemIndexInGroup;
77
- }
78
- /**
79
- * Returns group item and its index in flat list by sortable index (index in list without dividers).
80
- *
81
- * @param sortableIndex - Index in the filtered list (getIsMenuItem).
82
- * @param flatList - Flat list with groups and dividers.
83
- * @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.
84
- */
85
- function getGroupAtSortableIndex(sortableIndex, flatList) {
86
- var _a;
87
- const flatListGroupIndex = getFlatListIndexForSortableIndex(sortableIndex, flatList);
88
- const groupItem = flatList[flatListGroupIndex];
89
- if (!groupItem || !('items' in groupItem) || !((_a = groupItem.items) === null || _a === undefined ? undefined : _a.length)) {
90
- return null;
91
- }
92
- return { flatListGroupIndex, groupItem: groupItem };
93
- }
94
- /**
95
- * Returns new flat list with group items replaced at the given index.
96
- *
97
- * @param flatList - Current flat list.
98
- * @param flatListGroupIndex - Index of the group in flat list.
99
- * @param newGroupItems - New items array for the group.
100
- * @returns New flat list with updated group.
101
- */
102
- function updateGroupItemsInFlatList(flatList, flatListGroupIndex, newGroupItems) {
103
- return flatList.map((item, i) => i === flatListGroupIndex && 'items' in item ? Object.assign(Object.assign({}, item), { items: newGroupItems }) : item);
104
- }
105
- /**
106
- * Applies second-level sort (within a group) and returns new flat list, expanded items and indices.
107
- * Keeps dividers in place inside the group.
108
- *
109
- * @param groupIndex - Sortable index of the group (from List, without dividers).
110
- * @param oldIndex - Sortable index of dragged item in the group.
111
- * @param newIndex - Sortable index of drop position in the group.
112
- * @param currentFlatList - Current flat list.
113
- * @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.
114
- */
115
- function applySecondLevelSort(groupIndex, oldIndex, newIndex, currentFlatList) {
116
- const groupData = getGroupAtSortableIndex(groupIndex, currentFlatList);
117
- if (!groupData) {
118
- return null;
119
- }
120
- const { flatListGroupIndex, groupItem } = groupData;
121
- const sortedGroupItems = sortMenuItemsWithDividers.sortMenuItemsWithDividers(oldIndex, newIndex, groupItem.items);
122
- const newFlatList = updateGroupItemsInFlatList(currentFlatList, flatListGroupIndex, sortedGroupItems);
123
- const expandedItems = buildExpandedFromFlatList.buildExpandedFromFlatList(newFlatList);
124
- const expandedItemsOld = buildExpandedFromFlatList.buildExpandedFromFlatList(currentFlatList);
125
- const realOldIndex = getRealIndexInGroup(flatListGroupIndex, oldIndex, currentFlatList);
126
- const realNewIndex = getRealIndexInGroup(flatListGroupIndex, newIndex, newFlatList);
127
- const changedItem = expandedItemsOld[realOldIndex];
128
- return {
129
- newFlatList,
130
- expandedItems,
131
- realOldIndex,
132
- realNewIndex,
133
- changedItem,
134
- };
135
- }
136
-
137
- exports.applySecondLevelSort = applySecondLevelSort;
138
- exports.getFlatListIndexForSortableIndex = getFlatListIndexForSortableIndex;
139
- exports.getGroupAtSortableIndex = getGroupAtSortableIndex;
140
- exports.getIndexInGroupItemsForSortableIndex = getIndexInGroupItemsForSortableIndex;
141
- exports.getRealIndexInExpandedMenu = getRealIndexInExpandedMenu;
142
- exports.getRealIndexInGroup = getRealIndexInGroup;
143
- exports.updateGroupItemsInFlatList = updateGroupItemsInFlatList;
144
- //# sourceMappingURL=getRealIndexInGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getRealIndexInGroup.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/getRealIndexInGroup.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {buildExpandedFromFlatList} from './buildExpandedFromFlatList';\nimport {getIsMenuItem} from './getIsMenuItem';\nimport {sortMenuItemsWithDividers} from './sortMenuItemsWithDividers';\n\n/**\n * Returns index in flatList of the sortableIndex-th sortable item (getIsMenuItem).\n * Used when groupIndex from the List is the index in the filtered list without dividers.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in flatList of the sortableIndex-th sortable item.\n */\nexport function getFlatListIndexForSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < flatList.length; i++) {\n if (getIsMenuItem(flatList[i])) {\n if (sortableCount === sortableIndex) {\n return i;\n }\n sortableCount++;\n }\n }\n return 0;\n}\n\n/**\n * Returns index in groupItems array for the sortableIndex-th sortable (non-divider) item.\n * Used when oldIndex/newIndex from sort are indices in the sortable-only list.\n *\n * @param sortableIndex - Index in the list of sortable (non-divider) items.\n * @param groupItems - Items of the group (may contain dividers).\n * @returns Index in groupItems of the sortableIndex-th sortable item.\n */\nexport function getIndexInGroupItemsForSortableIndex(\n sortableIndex: number,\n groupItems: MenuItemsWithGroups[],\n): number {\n let sortableCount = 0;\n for (let i = 0; i < groupItems.length; i++) {\n if (getIsMenuItem(groupItems[i])) {\n if (sortableCount === sortableIndex) {\n return i;\n }\n sortableCount++;\n }\n }\n return 0;\n}\n\nexport function getRealIndexInExpandedMenu(\n flatListIndex: number,\n flatList: MenuItemsWithGroups[],\n): number {\n let realIndex = 0;\n\n for (let i = 0; i < flatListIndex; i++) {\n const item = flatList[i];\n\n if ('items' in item && item.items && item.items.length > 0) {\n realIndex += item.items.length;\n } else {\n realIndex += 1;\n }\n }\n\n return realIndex;\n}\n\n/**\n * Returns index in the expanded menu for an item in a group.\n * itemIndexInGroup is the index in the sortable-only list (dividers are not counted).\n *\n * @param groupIndex - Index of the group in the flat list.\n * @param itemIndexInGroup - Index in the sortable-only list within the group.\n * @param flatList - Flat list with groups and dividers.\n * @returns Index in the expanded (flattened) menu list.\n */\nexport function getRealIndexInGroup(\n groupIndex: number,\n itemIndexInGroup: number,\n flatList: MenuItemsWithGroups[],\n): number {\n const groupStartIndex = getRealIndexInExpandedMenu(groupIndex, flatList);\n const groupItem = flatList[groupIndex];\n\n if ('items' in groupItem && groupItem.items && groupItem.items.length > 0) {\n const positionInGroup = getIndexInGroupItemsForSortableIndex(\n itemIndexInGroup,\n groupItem.items,\n );\n return groupStartIndex + positionInGroup;\n }\n\n return groupStartIndex + itemIndexInGroup;\n}\n\ntype GroupWithItems = MenuItemsWithGroups & {items: MenuItemsWithGroups[]};\n\n/**\n * Returns group item and its index in flat list by sortable index (index in list without dividers).\n *\n * @param sortableIndex - Index in the filtered list (getIsMenuItem).\n * @param flatList - Flat list with groups and dividers.\n * @returns Object with flatListGroupIndex and groupItem, or null if not a group with items.\n */\nexport function getGroupAtSortableIndex(\n sortableIndex: number,\n flatList: MenuItemsWithGroups[],\n): {flatListGroupIndex: number; groupItem: GroupWithItems} | null {\n const flatListGroupIndex = getFlatListIndexForSortableIndex(sortableIndex, flatList);\n const groupItem = flatList[flatListGroupIndex];\n\n if (!groupItem || !('items' in groupItem) || !(groupItem as GroupWithItems).items?.length) {\n return null;\n }\n\n return {flatListGroupIndex, groupItem: groupItem as GroupWithItems};\n}\n\n/**\n * Returns new flat list with group items replaced at the given index.\n *\n * @param flatList - Current flat list.\n * @param flatListGroupIndex - Index of the group in flat list.\n * @param newGroupItems - New items array for the group.\n * @returns New flat list with updated group.\n */\nexport function updateGroupItemsInFlatList(\n flatList: MenuItemsWithGroups[],\n flatListGroupIndex: number,\n newGroupItems: MenuItemsWithGroups[],\n): MenuItemsWithGroups[] {\n return flatList.map((item, i) =>\n i === flatListGroupIndex && 'items' in item ? {...item, items: newGroupItems} : item,\n );\n}\n\ninterface SecondLevelSortResult {\n newFlatList: MenuItemsWithGroups[];\n expandedItems: ReturnType<typeof buildExpandedFromFlatList>;\n realOldIndex: number;\n realNewIndex: number;\n changedItem: ReturnType<typeof buildExpandedFromFlatList>[number] | undefined;\n}\n\n/**\n * Applies second-level sort (within a group) and returns new flat list, expanded items and indices.\n * Keeps dividers in place inside the group.\n *\n * @param groupIndex - Sortable index of the group (from List, without dividers).\n * @param oldIndex - Sortable index of dragged item in the group.\n * @param newIndex - Sortable index of drop position in the group.\n * @param currentFlatList - Current flat list.\n * @returns Result with newFlatList, expandedItems, indices and changedItem, or null if invalid.\n */\nexport function applySecondLevelSort(\n groupIndex: number,\n oldIndex: number,\n newIndex: number,\n currentFlatList: MenuItemsWithGroups[],\n): SecondLevelSortResult | null {\n const groupData = getGroupAtSortableIndex(groupIndex, currentFlatList);\n\n if (!groupData) {\n return null;\n }\n\n const {flatListGroupIndex, groupItem} = groupData;\n const sortedGroupItems = sortMenuItemsWithDividers(oldIndex, newIndex, groupItem.items);\n const newFlatList = updateGroupItemsInFlatList(\n currentFlatList,\n flatListGroupIndex,\n sortedGroupItems,\n );\n const expandedItems = buildExpandedFromFlatList(newFlatList);\n const expandedItemsOld = buildExpandedFromFlatList(currentFlatList);\n const realOldIndex = getRealIndexInGroup(flatListGroupIndex, oldIndex, currentFlatList);\n const realNewIndex = getRealIndexInGroup(flatListGroupIndex, newIndex, newFlatList);\n const changedItem = expandedItemsOld[realOldIndex];\n\n return {\n newFlatList,\n expandedItems,\n realOldIndex,\n realNewIndex,\n changedItem,\n };\n}\n"],"names":["getIsMenuItem","sortMenuItemsWithDividers","buildExpandedFromFlatList"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { MenuItemsWithGroups } from '../../../types';
2
- /**
3
- * Sorts menu items while preserving divider and action positions at their original locations.
4
- */
5
- export declare function sortMenuItemsWithDividers(oldIndex: number, newIndex: number, currentFlatList: MenuItemsWithGroups[]): MenuItemsWithGroups[];
@@ -1,45 +0,0 @@
1
- 'use strict';
2
-
3
- var getIsMenuItem = require('./getIsMenuItem.js');
4
-
5
- /** Items that stay at their position when sorting (not draggable). */
6
- function isFixedPositionItem(item) {
7
- return item.type === 'divider' || item.type === 'action';
8
- }
9
- /**
10
- * Sorts menu items while preserving divider and action positions at their original locations.
11
- */
12
- function sortMenuItemsWithDividers(oldIndex, newIndex, currentFlatList) {
13
- const fixedPositionItems = [];
14
- const sortableItems = [];
15
- currentFlatList.forEach((item, index) => {
16
- if (isFixedPositionItem(item)) {
17
- fixedPositionItems.push({ index, item });
18
- }
19
- else if (getIsMenuItem.getIsMenuItem(item)) {
20
- sortableItems.push(item);
21
- }
22
- });
23
- if (sortableItems[oldIndex] === undefined || sortableItems[newIndex] === undefined) {
24
- return currentFlatList;
25
- }
26
- const sortedItems = [...sortableItems];
27
- const [movedElement] = sortedItems.splice(oldIndex, 1);
28
- sortedItems.splice(newIndex, 0, movedElement);
29
- const result = [];
30
- const fixedMap = new Map(fixedPositionItems.map((f) => [f.index, f.item]));
31
- let sortableIndex = 0;
32
- for (let originalIndex = 0; originalIndex < currentFlatList.length; originalIndex++) {
33
- const fixedItem = fixedMap.get(originalIndex);
34
- if (fixedItem) {
35
- result.push(fixedItem);
36
- }
37
- else if (sortableIndex < sortedItems.length) {
38
- result.push(sortedItems[sortableIndex++]);
39
- }
40
- }
41
- return result;
42
- }
43
-
44
- exports.sortMenuItemsWithDividers = sortMenuItemsWithDividers;
45
- //# sourceMappingURL=sortMenuItemsWithDividers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sortMenuItemsWithDividers.js","sources":["../../../../../../../../src/components/AsideHeader/components/AllPagesPanel/utils/sortMenuItemsWithDividers.ts"],"sourcesContent":["import {MenuItemsWithGroups} from '../../../types';\n\nimport {getIsMenuItem} from './getIsMenuItem';\n\n/** Items that stay at their position when sorting (not draggable). */\nfunction isFixedPositionItem(item: MenuItemsWithGroups): boolean {\n return item.type === 'divider' || item.type === 'action';\n}\n\n/**\n * Sorts menu items while preserving divider and action positions at their original locations.\n */\nexport function sortMenuItemsWithDividers(\n oldIndex: number,\n newIndex: number,\n currentFlatList: MenuItemsWithGroups[],\n): MenuItemsWithGroups[] {\n const fixedPositionItems: Array<{index: number; item: MenuItemsWithGroups}> = [];\n const sortableItems: MenuItemsWithGroups[] = [];\n\n currentFlatList.forEach((item, index) => {\n if (isFixedPositionItem(item)) {\n fixedPositionItems.push({index, item});\n } else if (getIsMenuItem(item)) {\n sortableItems.push(item);\n }\n });\n\n if (sortableItems[oldIndex] === undefined || sortableItems[newIndex] === undefined) {\n return currentFlatList;\n }\n\n const sortedItems = [...sortableItems];\n const [movedElement] = sortedItems.splice(oldIndex, 1);\n sortedItems.splice(newIndex, 0, movedElement);\n\n const result: MenuItemsWithGroups[] = [];\n const fixedMap = new Map(fixedPositionItems.map((f) => [f.index, f.item]));\n let sortableIndex = 0;\n\n for (let originalIndex = 0; originalIndex < currentFlatList.length; originalIndex++) {\n const fixedItem = fixedMap.get(originalIndex);\n\n if (fixedItem) {\n result.push(fixedItem);\n } else if (sortableIndex < sortedItems.length) {\n result.push(sortedItems[sortableIndex++]);\n }\n }\n\n return result;\n}\n"],"names":["getIsMenuItem"],"mappings":";;;;AAIA;AACA,SAAS,mBAAmB,CAAC,IAAyB,EAAA;IAClD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;AAC5D;AAEA;;AAEG;SACa,yBAAyB,CACrC,QAAgB,EAChB,QAAgB,EAChB,eAAsC,EAAA;IAEtC,MAAM,kBAAkB,GAAsD,EAAE;IAChF,MAAM,aAAa,GAA0B,EAAE;IAE/C,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;AACpC,QAAA,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAC3B,kBAAkB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;;AACnC,aAAA,IAAIA,2BAAa,CAAC,IAAI,CAAC,EAAE;AAC5B,YAAA,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;;AAEhC,KAAC,CAAC;AAEF,IAAA,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,aAAa,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;AAChF,QAAA,OAAO,eAAe;;AAG1B,IAAA,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,CAAC;AACtC,IAAA,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,YAAY,CAAC;IAE7C,MAAM,MAAM,GAA0B,EAAE;IACxC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,IAAI,aAAa,GAAG,CAAC;AAErB,IAAA,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;QACjF,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC;QAE7C,IAAI,SAAS,EAAE;AACX,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;;AACnB,aAAA,IAAI,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE;YAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;;;AAIjD,IAAA,OAAO,MAAM;AACjB;;;;"}
@@ -1 +0,0 @@
1
- .ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS{flex:1 1 auto;min-height:0;position:relative;width:100%}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS:before{background:var(--gn-aside-bottom-shadow-color,linear-gradient(to bottom,transparent 0,transparent 50%,rgba(0,0,0,.08) 100%));bottom:0;content:"";height:100%;left:0;opacity:0;pointer-events:none;position:absolute;right:0;transition:opacity .3s ease-in-out}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar_bottom-shadow___YoCCZ:before{opacity:1}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollable-inner___yRIza{-ms-overflow-style:none;height:100%;overflow:hidden auto;scrollbar-width:none;width:100%}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollable-inner___yRIza::-webkit-scrollbar{display:none}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar___igCbU{bottom:0;box-sizing:border-box;padding:2px 0;position:absolute;right:2px;top:0;width:var(--g-spacing-1)}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-track___u6MVN{background:var(--gn-aside-scrollbar-track-color,transparent);cursor:pointer;height:100%;position:relative;width:100%}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-thumb___bLf6h{background:var(--gn-aside-scrollbar-handle-color,var(--g-color-line-generic-solid));cursor:grab;left:0;min-height:20px;position:absolute;width:100%}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-thumb___bLf6h:hover{background:var(--gn-aside-scrollbar-handle-color-hover,var(--gn-aside-scrollbar-handle-color,var(--g-color-line-generic-solid)))}.ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-thumb___bLf6h:active{cursor:grabbing}.g-root_theme_light .ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS, .g-root_theme_light-hc .ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS{--gn-aside-bottom-shadow-color:linear-gradient(180deg,transparent 0%,transparent 50%,rgba(0,0,0,.08))}.g-root_theme_dark .ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS, .g-root_theme_dark-hc .ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS{--gn-aside-bottom-shadow-color:linear-gradient(180deg,transparent 80%,transparent 0,rgba(0,0,0,.4))}
@@ -1,8 +0,0 @@
1
- import React, { FC, ReactNode } from 'react';
2
- type ScrollableWithScrollbarProps = {
3
- children: ReactNode;
4
- className?: string;
5
- recalcDeps?: React.DependencyList;
6
- };
7
- export declare const ScrollableWithScrollbar: FC<ScrollableWithScrollbarProps>;
8
- export {};
@@ -1,27 +0,0 @@
1
- import './ScrollableWithScrollbar.css';
2
- 'use strict';
3
-
4
- var React = require('react');
5
- var cn = require('../../../../utils/cn.js');
6
- var useScrollbar = require('./useScrollbar.js');
7
- var ScrollableWithScrollbar_module = require('./ScrollableWithScrollbar.module.scss.js');
8
-
9
- const b = cn.createBlock('scrollable-with-scrollbar', ScrollableWithScrollbar_module.default);
10
- const EMPTY_DEPS = [];
11
- const ScrollableWithScrollbar = ({ children, className, recalcDeps = EMPTY_DEPS, }) => {
12
- const scrollableContentId = React.useId();
13
- const { scrollRef, scrollState, updateScrollState, showScrollbar, thumbHeight, thumbTop, handleThumbMouseDown, handleTrackClick, handleScrollbarKeyDown, } = useScrollbar.useScrollbar({ recalcDeps });
14
- const hasContentBelow = scrollState.scrollHeight > scrollState.clientHeight &&
15
- scrollState.scrollTop + scrollState.clientHeight < scrollState.scrollHeight - 1;
16
- return (React.createElement("div", { className: b({ 'bottom-shadow': hasContentBelow }, className) },
17
- React.createElement("div", { id: scrollableContentId, ref: scrollRef, className: b('scrollable-inner'), onScroll: updateScrollState }, children),
18
- showScrollbar && (React.createElement("div", { className: b('scrollbar'), role: "scrollbar", "aria-controls": scrollableContentId, "aria-orientation": "vertical", "aria-valuenow": scrollState.scrollTop, "aria-valuemin": 0, "aria-valuemax": scrollState.scrollHeight - scrollState.clientHeight, tabIndex: 0, onKeyDown: handleScrollbarKeyDown },
19
- React.createElement("div", { className: b('scrollbar-track'), onClick: handleTrackClick },
20
- React.createElement("div", { className: b('scrollbar-thumb'), style: {
21
- height: thumbHeight,
22
- transform: `translateY(${thumbTop}px)`,
23
- }, onMouseDown: handleThumbMouseDown }))))));
24
- };
25
-
26
- exports.ScrollableWithScrollbar = ScrollableWithScrollbar;
27
- //# sourceMappingURL=ScrollableWithScrollbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollableWithScrollbar.js","sources":["../../../../../../../../src/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/ScrollableWithScrollbar.tsx"],"sourcesContent":["import React, {FC, ReactNode, useId} from 'react';\n\nimport {createBlock} from '../../../../utils/cn';\n\nimport {useScrollbar} from './useScrollbar';\n\nimport styles from './ScrollableWithScrollbar.module.scss';\n\nconst b = createBlock('scrollable-with-scrollbar', styles);\n\nconst EMPTY_DEPS: React.DependencyList = [];\n\ntype ScrollableWithScrollbarProps = {\n children: ReactNode;\n className?: string;\n recalcDeps?: React.DependencyList;\n};\n\nexport const ScrollableWithScrollbar: FC<ScrollableWithScrollbarProps> = ({\n children,\n className,\n recalcDeps = EMPTY_DEPS,\n}) => {\n const scrollableContentId = useId();\n const {\n scrollRef,\n scrollState,\n updateScrollState,\n showScrollbar,\n thumbHeight,\n thumbTop,\n handleThumbMouseDown,\n handleTrackClick,\n handleScrollbarKeyDown,\n } = useScrollbar({recalcDeps});\n\n const hasContentBelow =\n scrollState.scrollHeight > scrollState.clientHeight &&\n scrollState.scrollTop + scrollState.clientHeight < scrollState.scrollHeight - 1;\n\n return (\n <div className={b({'bottom-shadow': hasContentBelow}, className)}>\n <div\n id={scrollableContentId}\n ref={scrollRef}\n className={b('scrollable-inner')}\n onScroll={updateScrollState}\n >\n {children}\n </div>\n\n {showScrollbar && (\n <div\n className={b('scrollbar')}\n role=\"scrollbar\"\n aria-controls={scrollableContentId}\n aria-orientation=\"vertical\"\n aria-valuenow={scrollState.scrollTop}\n aria-valuemin={0}\n aria-valuemax={scrollState.scrollHeight - scrollState.clientHeight}\n tabIndex={0}\n onKeyDown={handleScrollbarKeyDown}\n >\n <div className={b('scrollbar-track')} onClick={handleTrackClick}>\n <div\n className={b('scrollbar-thumb')}\n style={{\n height: thumbHeight,\n transform: `translateY(${thumbTop}px)`,\n }}\n onMouseDown={handleThumbMouseDown}\n />\n </div>\n </div>\n )}\n </div>\n );\n};\n"],"names":["createBlock","styles","useId","useScrollbar"],"mappings":";;;;;;;AAQA,MAAM,CAAC,GAAGA,cAAW,CAAC,2BAA2B,EAAEC,sCAAM,CAAC;AAE1D,MAAM,UAAU,GAAyB,EAAE;AAQpC,MAAM,uBAAuB,GAAqC,CAAC,EACtE,QAAQ,EACR,SAAS,EACT,UAAU,GAAG,UAAU,GAC1B,KAAI;AACD,IAAA,MAAM,mBAAmB,GAAGC,WAAK,EAAE;IACnC,MAAM,EACF,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,QAAQ,EACR,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACzB,GAAGC,yBAAY,CAAC,EAAC,UAAU,EAAC,CAAC;IAE9B,MAAM,eAAe,GACjB,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY;AACnD,QAAA,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,GAAG,CAAC;AAEnF,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,CAAC,CAAC,EAAC,eAAe,EAAE,eAAe,EAAC,EAAE,SAAS,CAAC,EAAA;QAC5D,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,EAAE,EAAE,mBAAmB,EACvB,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAChC,QAAQ,EAAE,iBAAiB,EAAA,EAE1B,QAAQ,CACP;AAEL,QAAA,aAAa,KACV,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,EACzB,IAAI,EAAC,WAAW,mBACD,mBAAmB,EAAA,kBAAA,EACjB,UAAU,EACZ,eAAA,EAAA,WAAW,CAAC,SAAS,mBACrB,CAAC,EAAA,eAAA,EACD,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,EAClE,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,sBAAsB,EAAA;YAEjC,KAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAA;gBAC3D,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAC/B,KAAK,EAAE;AACH,wBAAA,MAAM,EAAE,WAAW;wBACnB,SAAS,EAAE,CAAc,WAAA,EAAA,QAAQ,CAAK,GAAA,CAAA;qBACzC,EACD,WAAW,EAAE,oBAAoB,EAAA,CACnC,CACA,CACJ,CACT,CACC;AAEd;;;;"}
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var styles = {"gn-scrollable-with-scrollbar":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS","gnScrollableWithScrollbar":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar___S-GKS","gn-scrollable-with-scrollbar_bottom-shadow":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar_bottom-shadow___YoCCZ","gnScrollableWithScrollbarBottomShadow":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar_bottom-shadow___YoCCZ","gn-scrollable-with-scrollbar__scrollable-inner":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollable-inner___yRIza","gnScrollableWithScrollbarScrollableInner":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollable-inner___yRIza","gn-scrollable-with-scrollbar__scrollbar":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar___igCbU","gnScrollableWithScrollbarScrollbar":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar___igCbU","gn-scrollable-with-scrollbar__scrollbar-track":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-track___u6MVN","gnScrollableWithScrollbarScrollbarTrack":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-track___u6MVN","gn-scrollable-with-scrollbar__scrollbar-thumb":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-thumb___bLf6h","gnScrollableWithScrollbarScrollbarThumb":"ScrollableWithScrollbar-module__gn-scrollable-with-scrollbar__scrollbar-thumb___bLf6h"};
6
-
7
- exports.default = styles;
8
- //# sourceMappingURL=ScrollableWithScrollbar.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ScrollableWithScrollbar.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1 +0,0 @@
1
- export { ScrollableWithScrollbar } from './ScrollableWithScrollbar';
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- type ScrollbarState = {
3
- scrollTop: number;
4
- scrollHeight: number;
5
- clientHeight: number;
6
- };
7
- type UseScrollbarOptions = {
8
- recalcDeps?: React.DependencyList;
9
- };
10
- export declare function useScrollbar(options?: UseScrollbarOptions): {
11
- scrollRef: React.RefObject<HTMLDivElement>;
12
- scrollState: ScrollbarState;
13
- updateScrollState: () => void;
14
- showScrollbar: boolean;
15
- thumbHeight: number;
16
- thumbTop: number;
17
- handleThumbMouseDown: (e: React.MouseEvent) => void;
18
- handleTrackClick: (e: React.MouseEvent<HTMLDivElement>) => void;
19
- handleScrollbarKeyDown: (e: React.KeyboardEvent) => void;
20
- };
21
- export {};
@@ -1,146 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
-
5
- const DEFAULT_SCROLLBAR_THUMB_HEIGHT = 20;
6
- const EMPTY_DEPS = [];
7
- function useScrollbar(options = {}) {
8
- const { recalcDeps = EMPTY_DEPS } = options;
9
- const scrollRef = React.useRef(null);
10
- const [scrollState, setScrollState] = React.useState({
11
- scrollTop: 0,
12
- scrollHeight: 0,
13
- clientHeight: 0,
14
- });
15
- const thumbDragRef = React.useRef({ isDragging: false, startY: 0, startScrollTop: 0 });
16
- const dragCleanupRef = React.useRef(null);
17
- const updateScrollState = React.useCallback(() => {
18
- const el = scrollRef.current;
19
- if (!el)
20
- return;
21
- setScrollState({
22
- scrollTop: el.scrollTop,
23
- scrollHeight: el.scrollHeight,
24
- clientHeight: el.clientHeight,
25
- });
26
- }, []);
27
- React.useEffect(() => {
28
- const el = scrollRef.current;
29
- if (!el)
30
- return;
31
- updateScrollState();
32
- const observer = new ResizeObserver(updateScrollState);
33
- observer.observe(el);
34
- return () => observer.disconnect();
35
- }, [updateScrollState, ...recalcDeps]);
36
- const handleThumbMouseDown = React.useCallback((e) => {
37
- e.preventDefault();
38
- if (!scrollRef.current)
39
- return;
40
- thumbDragRef.current = {
41
- isDragging: true,
42
- startY: e.clientY,
43
- startScrollTop: scrollRef.current.scrollTop,
44
- };
45
- const onMouseMove = (moveEvent) => {
46
- if (!thumbDragRef.current.isDragging || !scrollRef.current)
47
- return;
48
- const { scrollHeight, clientHeight } = scrollRef.current;
49
- const trackHeight = clientHeight;
50
- const maxScroll = scrollHeight - clientHeight;
51
- if (maxScroll <= 0)
52
- return;
53
- const deltaY = moveEvent.clientY - thumbDragRef.current.startY;
54
- const thumbRatio = trackHeight / scrollHeight;
55
- const scrollDelta = deltaY / thumbRatio;
56
- scrollRef.current.scrollTop = Math.min(maxScroll, Math.max(0, thumbDragRef.current.startScrollTop + scrollDelta));
57
- thumbDragRef.current.startY = moveEvent.clientY;
58
- thumbDragRef.current.startScrollTop = scrollRef.current.scrollTop;
59
- };
60
- const removeListeners = () => {
61
- document.removeEventListener('mousemove', onMouseMove);
62
- document.removeEventListener('mouseup', onMouseUp);
63
- dragCleanupRef.current = null;
64
- };
65
- const onMouseUp = () => {
66
- thumbDragRef.current.isDragging = false;
67
- removeListeners();
68
- };
69
- dragCleanupRef.current = removeListeners;
70
- document.addEventListener('mousemove', onMouseMove);
71
- document.addEventListener('mouseup', onMouseUp);
72
- }, []);
73
- React.useEffect(() => {
74
- return () => {
75
- var _a;
76
- (_a = dragCleanupRef.current) === null || _a === undefined ? undefined : _a.call(dragCleanupRef);
77
- };
78
- }, []);
79
- const handleTrackClick = React.useCallback((e) => {
80
- if (!scrollRef.current || e.target !== e.currentTarget)
81
- return;
82
- const { scrollHeight, clientHeight } = scrollRef.current;
83
- const maxScroll = scrollHeight - clientHeight;
84
- if (maxScroll <= 0)
85
- return;
86
- const rect = e.currentTarget.getBoundingClientRect();
87
- const ratio = (e.clientY - rect.top) / rect.height;
88
- scrollRef.current.scrollTop = ratio * maxScroll;
89
- }, []);
90
- const handleScrollbarKeyDown = React.useCallback((e) => {
91
- const el = scrollRef.current;
92
- if (!el)
93
- return;
94
- const { scrollHeight, clientHeight } = el;
95
- const maxScroll = scrollHeight - clientHeight;
96
- if (maxScroll <= 0)
97
- return;
98
- const step = Math.max(20, clientHeight * 0.2);
99
- let newScrollTop = el.scrollTop;
100
- switch (e.key) {
101
- case 'ArrowDown':
102
- e.preventDefault();
103
- newScrollTop = Math.min(maxScroll, el.scrollTop + step);
104
- break;
105
- case 'ArrowUp':
106
- e.preventDefault();
107
- newScrollTop = Math.max(0, el.scrollTop - step);
108
- break;
109
- case 'End':
110
- e.preventDefault();
111
- newScrollTop = maxScroll;
112
- break;
113
- case 'Home':
114
- e.preventDefault();
115
- newScrollTop = 0;
116
- break;
117
- default:
118
- return;
119
- }
120
- el.scrollTop = newScrollTop;
121
- updateScrollState();
122
- }, [updateScrollState]);
123
- const showScrollbar = scrollState.scrollHeight > scrollState.clientHeight && scrollState.scrollHeight > 0;
124
- const thumbRatio = scrollState.scrollHeight > 0 ? scrollState.clientHeight / scrollState.scrollHeight : 0;
125
- const thumbHeight = Math.max(DEFAULT_SCROLLBAR_THUMB_HEIGHT, scrollState.clientHeight * thumbRatio);
126
- const trackHeight = scrollState.clientHeight;
127
- const thumbMaxTop = trackHeight - thumbHeight;
128
- const thumbTop = trackHeight > thumbHeight && scrollState.scrollHeight > scrollState.clientHeight
129
- ? (scrollState.scrollTop / (scrollState.scrollHeight - scrollState.clientHeight)) *
130
- thumbMaxTop
131
- : 0;
132
- return {
133
- scrollRef,
134
- scrollState,
135
- updateScrollState,
136
- showScrollbar,
137
- thumbHeight,
138
- thumbTop,
139
- handleThumbMouseDown,
140
- handleTrackClick,
141
- handleScrollbarKeyDown,
142
- };
143
- }
144
-
145
- exports.useScrollbar = useScrollbar;
146
- //# sourceMappingURL=useScrollbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useScrollbar.js","sources":["../../../../../../../../src/components/AsideHeader/components/CompositeBar/ScrollableWithScrollbar/useScrollbar.ts"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\n\ntype ScrollbarState = {\n scrollTop: number;\n scrollHeight: number;\n clientHeight: number;\n};\n\ntype UseScrollbarOptions = {\n recalcDeps?: React.DependencyList;\n};\n\nconst DEFAULT_SCROLLBAR_THUMB_HEIGHT = 20;\n\nconst EMPTY_DEPS: React.DependencyList = [];\n\nexport function useScrollbar(options: UseScrollbarOptions = {}) {\n const {recalcDeps = EMPTY_DEPS} = options;\n const scrollRef = useRef<HTMLDivElement>(null);\n const [scrollState, setScrollState] = useState<ScrollbarState>({\n scrollTop: 0,\n scrollHeight: 0,\n clientHeight: 0,\n });\n const thumbDragRef = useRef({isDragging: false, startY: 0, startScrollTop: 0});\n const dragCleanupRef = useRef<(() => void) | null>(null);\n\n const updateScrollState = useCallback(() => {\n const el = scrollRef.current;\n\n if (!el) return;\n\n setScrollState({\n scrollTop: el.scrollTop,\n scrollHeight: el.scrollHeight,\n clientHeight: el.clientHeight,\n });\n }, []);\n\n useEffect(() => {\n const el = scrollRef.current;\n\n if (!el) return;\n\n updateScrollState();\n\n const observer = new ResizeObserver(updateScrollState);\n observer.observe(el);\n\n return () => observer.disconnect();\n }, [updateScrollState, ...recalcDeps]);\n\n const handleThumbMouseDown = useCallback((e: React.MouseEvent) => {\n e.preventDefault();\n\n if (!scrollRef.current) return;\n\n thumbDragRef.current = {\n isDragging: true,\n startY: e.clientY,\n startScrollTop: scrollRef.current.scrollTop,\n };\n\n const onMouseMove = (moveEvent: MouseEvent) => {\n if (!thumbDragRef.current.isDragging || !scrollRef.current) return;\n const {scrollHeight, clientHeight} = scrollRef.current;\n const trackHeight = clientHeight;\n const maxScroll = scrollHeight - clientHeight;\n\n if (maxScroll <= 0) return;\n\n const deltaY = moveEvent.clientY - thumbDragRef.current.startY;\n const thumbRatio = trackHeight / scrollHeight;\n const scrollDelta = deltaY / thumbRatio;\n\n scrollRef.current.scrollTop = Math.min(\n maxScroll,\n Math.max(0, thumbDragRef.current.startScrollTop + scrollDelta),\n );\n\n thumbDragRef.current.startY = moveEvent.clientY;\n thumbDragRef.current.startScrollTop = scrollRef.current.scrollTop;\n };\n\n const removeListeners = () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n dragCleanupRef.current = null;\n };\n\n const onMouseUp = () => {\n thumbDragRef.current.isDragging = false;\n removeListeners();\n };\n\n dragCleanupRef.current = removeListeners;\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n }, []);\n\n useEffect(() => {\n return () => {\n dragCleanupRef.current?.();\n };\n }, []);\n\n const handleTrackClick = useCallback((e: React.MouseEvent<HTMLDivElement>) => {\n if (!scrollRef.current || e.target !== e.currentTarget) return;\n\n const {scrollHeight, clientHeight} = scrollRef.current;\n const maxScroll = scrollHeight - clientHeight;\n\n if (maxScroll <= 0) return;\n\n const rect = e.currentTarget.getBoundingClientRect();\n const ratio = (e.clientY - rect.top) / rect.height;\n\n scrollRef.current.scrollTop = ratio * maxScroll;\n }, []);\n\n const handleScrollbarKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n const el = scrollRef.current;\n if (!el) return;\n\n const {scrollHeight, clientHeight} = el;\n const maxScroll = scrollHeight - clientHeight;\n if (maxScroll <= 0) return;\n\n const step = Math.max(20, clientHeight * 0.2);\n let newScrollTop = el.scrollTop;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n newScrollTop = Math.min(maxScroll, el.scrollTop + step);\n break;\n case 'ArrowUp':\n e.preventDefault();\n newScrollTop = Math.max(0, el.scrollTop - step);\n break;\n case 'End':\n e.preventDefault();\n newScrollTop = maxScroll;\n break;\n case 'Home':\n e.preventDefault();\n newScrollTop = 0;\n break;\n default:\n return;\n }\n\n el.scrollTop = newScrollTop;\n updateScrollState();\n },\n [updateScrollState],\n );\n\n const showScrollbar =\n scrollState.scrollHeight > scrollState.clientHeight && scrollState.scrollHeight > 0;\n const thumbRatio =\n scrollState.scrollHeight > 0 ? scrollState.clientHeight / scrollState.scrollHeight : 0;\n const thumbHeight = Math.max(\n DEFAULT_SCROLLBAR_THUMB_HEIGHT,\n scrollState.clientHeight * thumbRatio,\n );\n const trackHeight = scrollState.clientHeight;\n const thumbMaxTop = trackHeight - thumbHeight;\n const thumbTop =\n trackHeight > thumbHeight && scrollState.scrollHeight > scrollState.clientHeight\n ? (scrollState.scrollTop / (scrollState.scrollHeight - scrollState.clientHeight)) *\n thumbMaxTop\n : 0;\n\n return {\n scrollRef,\n scrollState,\n updateScrollState,\n showScrollbar,\n thumbHeight,\n thumbTop,\n handleThumbMouseDown,\n handleTrackClick,\n handleScrollbarKeyDown,\n };\n}\n"],"names":["useRef","useState","useCallback","useEffect"],"mappings":"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"}
@@ -1 +0,0 @@
1
- .FooterBar-module__gn-footer-bar___dunXC, .FooterBar-module__gn-footer-bar__items___xBsUq{display:flex;flex-direction:column;width:100%}.FooterBar-module__gn-footer-bar__items_horizontal___DEeK6{border-bottom:1px solid var(--gn-aside-bottom-divider-color,var(--g-color-line-generic));border-top:1px solid var(--gn-aside-bottom-divider-color,var(--g-color-line-generic));flex-direction:row;height:var(--_--item-height)}.FooterBar-module__gn-footer-bar__item___KAJSe{align-items:center;display:flex;justify-content:center}.FooterBar-module__gn-footer-bar__items_horizontal___DEeK6 .FooterBar-module__gn-footer-bar__item___KAJSe{flex:1 1 0;height:100%;min-width:0}.FooterBar-module__gn-footer-bar__items_horizontal___DEeK6 .FooterBar-module__gn-footer-bar__item___KAJSe:not(:last-child){border-right:1px solid var(--gn-aside-bottom-divider-color,var(--g-color-line-generic))}.FooterBar-module__gn-footer-bar__items_vertical___3A7jw .FooterBar-module__gn-footer-bar__item___KAJSe:not(:last-child){margin-bottom:2px}.FooterBar-module__gn-footer-bar__items___xBsUq:not(.FooterBar-module__gn-footer-bar__items_horizontal___DEeK6) .FooterBar-module__gn-footer-bar__item___KAJSe{height:var(--_--item-height);margin-bottom:2px;width:100%}.FooterBar-module__gn-footer-bar__items___xBsUq:not(.FooterBar-module__gn-footer-bar__items_horizontal___DEeK6) .FooterBar-module__gn-footer-bar__item___KAJSe:last-child{margin-bottom:0}.FooterBar-module__gn-footer-bar__after___yB8To{height:var(--_--item-height);width:100%}.FooterBar-module__gn-footer-bar__after_horizontal___t4KyN{box-sizing:border-box;margin-block:var(--g-spacing-2);padding-inline:var(--_--item-margin-inline)}.FooterBar-module__gn-footer-bar__dropdown-switcher___Czw-L{width:100%}.FooterBar-module__gn-footer-bar__dropdown-popup___nWoMR{--_--item-height:36px;padding:var(--g-spacing-1)}.FooterBar-module__gn-footer-bar__dropdown-popup___nWoMR .g-menu .g-menu__list-item .g-menu__item{height:var(--_--item-height);padding:0}
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- import { SetCollapseBlocker } from '../../types';
3
- export interface FooterBarProps {
4
- /** Array of footer elements (ReactNode[]) */
5
- children: React.ReactNode[];
6
- /** Render function for additional content after items (e.g., user profile). Receives options with setCollapseBlocker. */
7
- renderAfter?: (options?: {
8
- setCollapseBlocker?: SetCollapseBlocker;
9
- }) => React.ReactNode;
10
- /** Registers a temporary block on collapse (e.g. while dropdown is open). Returns release function. */
11
- setCollapseBlocker?: SetCollapseBlocker;
12
- /** When `true`, the navigation is pinned (expanded). Items render horizontally. */
13
- isPinned: boolean;
14
- /** When `true`, the navigation is expanded (hover or pinned). */
15
- isExpanded: boolean;
16
- /** Maximum number of visible items before showing "more" button. Default: 5 */
17
- maxVisibleItems?: number;
18
- }
19
- export declare const FooterBar: React.NamedExoticComponent<FooterBarProps>;