@gravity-ui/navigation 3.0.0-beta.0 → 3.0.0-beta.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 (289) hide show
  1. package/README.md +1 -1
  2. package/build/cjs/{ActionBar-_qjZ9IMA.js → ActionBar-3c6cdf57.js} +14 -10
  3. package/build/cjs/{ActionBar-_qjZ9IMA.js.map → ActionBar-3c6cdf57.js.map} +1 -1
  4. package/build/cjs/AsideFallback.js +16 -10
  5. package/build/cjs/AsideFallback.js.map +1 -1
  6. package/build/cjs/AsideHeader.js +20 -15
  7. package/build/cjs/AsideHeader.js.map +1 -1
  8. package/build/cjs/AsideHeaderContext.js +10 -4
  9. package/build/cjs/AsideHeaderContext.js.map +1 -1
  10. package/build/cjs/Content-64d5738a.js +20 -0
  11. package/build/cjs/{Content-Dy2XkiRi.js.map → Content-64d5738a.js.map} +1 -1
  12. package/build/cjs/Drawer.js +823 -122
  13. package/build/cjs/Drawer.js.map +1 -1
  14. package/build/cjs/{FooterItem-Bl_XrJ67.js → FooterItem-de603636.js} +81 -77
  15. package/build/cjs/FooterItem-de603636.js.map +1 -0
  16. package/build/cjs/FooterItem.js +13 -8
  17. package/build/cjs/FooterItem.js.map +1 -1
  18. package/build/cjs/{HotkeysPanel-D1wI7tZj.js → HotkeysPanel-1ed9fc32.js} +16 -12
  19. package/build/cjs/{HotkeysPanel-D1wI7tZj.js.map → HotkeysPanel-1ed9fc32.js.map} +1 -1
  20. package/build/cjs/Item-ff6bc440.js +303 -0
  21. package/build/cjs/Item-ff6bc440.js.map +1 -0
  22. package/build/cjs/PageLayout.js +19 -13
  23. package/build/cjs/PageLayout.js.map +1 -1
  24. package/build/cjs/{PageLayoutAside-BzYF9W7M.js → PageLayoutAside-30f2015c.js} +165 -110
  25. package/build/cjs/PageLayoutAside-30f2015c.js.map +1 -0
  26. package/build/cjs/PageLayoutAside.js +11 -10
  27. package/build/cjs/PageLayoutAside.js.map +1 -1
  28. package/build/cjs/{Settings-D6-a2hgE.js → Settings-8dc2a8ee.js} +102 -110
  29. package/build/cjs/{Settings-D6-a2hgE.js.map → Settings-8dc2a8ee.js.map} +1 -1
  30. package/build/cjs/{Title-CzxcSMoP.js → Title-54580605.js} +13 -7
  31. package/build/cjs/Title-54580605.js.map +1 -0
  32. package/build/cjs/TopPanel-c6b83157.js +82 -0
  33. package/build/cjs/TopPanel-c6b83157.js.map +1 -0
  34. package/build/cjs/{cn-DSlPZbcs.js → cn-9933321a.js} +1 -1
  35. package/build/cjs/{cn-DSlPZbcs.js.map → cn-9933321a.js.map} +1 -1
  36. package/build/cjs/components/ActionBar/ActionBar.d.ts +3 -3
  37. package/build/cjs/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  38. package/build/cjs/components/ActionBar/types.d.ts +1 -1
  39. package/build/cjs/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +3 -0
  40. package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +1 -5
  41. package/build/cjs/components/AsideHeader/AsideHeaderContext.d.ts +2 -1
  42. package/build/cjs/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  43. package/build/cjs/components/AsideHeader/components/TopPanel.d.ts +7 -0
  44. package/build/cjs/components/AsideHeader/components/index.d.ts +1 -0
  45. package/build/cjs/components/AsideHeader/i18n/index.d.ts +1 -5
  46. package/build/cjs/components/AsideHeader/types.d.ts +7 -3
  47. package/build/cjs/components/AsideHeader/useAsideHeaderTopPanel.d.ts +10 -0
  48. package/build/cjs/components/CompositeBar/CompositeBar.d.ts +1 -1
  49. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  50. package/build/cjs/components/CompositeBar/Item/Item.d.ts +2 -15
  51. package/build/cjs/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  52. package/build/cjs/components/Drawer/utils.d.ts +2 -2
  53. package/build/cjs/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  54. package/build/cjs/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  55. package/build/cjs/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  56. package/build/cjs/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  57. package/build/cjs/components/Logo/Logo.d.ts +1 -1
  58. package/build/cjs/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  59. package/build/cjs/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  60. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +1 -2
  61. package/build/cjs/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  62. package/build/cjs/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  63. package/build/cjs/components/MobileHeader/i18n/index.d.ts +1 -5
  64. package/build/cjs/components/MobileHeader/types.d.ts +1 -0
  65. package/build/cjs/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  66. package/build/cjs/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  67. package/build/cjs/components/Settings/i18n/index.d.ts +1 -5
  68. package/build/cjs/components/Title/i18n/index.d.ts +1 -5
  69. package/build/cjs/components/types.d.ts +4 -4
  70. package/build/cjs/{constants-B0DLAQY9.js → constants-d81c3867.js} +1 -1
  71. package/build/{esm/constants-ChYDZ5F2.js.map → cjs/constants-d81c3867.js.map} +1 -1
  72. package/build/cjs/debounce-8772fd80.js +545 -0
  73. package/build/{esm/debounce-DW3XyyUs.js.map → cjs/debounce-8772fd80.js.map} +1 -1
  74. package/build/cjs/{divider-collapsed-BLSp99lJ.js → divider-collapsed-b743122e.js} +9 -7
  75. package/build/cjs/divider-collapsed-b743122e.js.map +1 -0
  76. package/build/cjs/hooks/useForwardRef.d.ts +1 -1
  77. package/build/cjs/index.js +191 -4
  78. package/build/cjs/index.js.map +1 -1
  79. package/build/cjs/index2.js +6 -7
  80. package/build/cjs/index2.js.map +1 -1
  81. package/build/cjs/index3.js +8 -8
  82. package/build/cjs/index4.js +9 -12
  83. package/build/cjs/index4.js.map +1 -1
  84. package/build/cjs/index5.js +12 -12
  85. package/build/cjs/index6.js +15 -186
  86. package/build/cjs/index6.js.map +1 -1
  87. package/build/cjs/{style-inject.es-CsU6UJbw.js → style-inject.es-dcee06b6.js} +2 -2
  88. package/build/cjs/style-inject.es-dcee06b6.js.map +1 -0
  89. package/build/cjs/{tslib.es6-D25eJ2i9.js → tslib.es6-705c6589.js} +31 -33
  90. package/build/cjs/tslib.es6-705c6589.js.map +1 -0
  91. package/build/cjs/utils-db3e03c2.js +8 -0
  92. package/build/cjs/{utils-BrRoop7o.js.map → utils-db3e03c2.js.map} +1 -1
  93. package/build/esm/{ActionBar-BD_roj92.js → ActionBar-834b178a.js} +5 -5
  94. package/build/esm/{ActionBar-BD_roj92.js.map → ActionBar-834b178a.js.map} +1 -1
  95. package/build/esm/AsideFallback.js +5 -5
  96. package/build/esm/AsideFallback.js.map +1 -1
  97. package/build/esm/AsideHeader.js +10 -11
  98. package/build/esm/AsideHeader.js.map +1 -1
  99. package/build/esm/AsideHeaderContext.js.map +1 -1
  100. package/build/esm/{Content-c3e3OunO.js → Content-f94ba85d.js} +1 -1
  101. package/build/esm/{Content-c3e3OunO.js.map → Content-f94ba85d.js.map} +1 -1
  102. package/build/esm/Drawer.js +784 -90
  103. package/build/esm/Drawer.js.map +1 -1
  104. package/build/esm/{FooterItem-BP7Ya02G.js → FooterItem-3cc816a3.js} +43 -43
  105. package/build/esm/FooterItem-3cc816a3.js.map +1 -0
  106. package/build/esm/FooterItem.js +6 -7
  107. package/build/esm/FooterItem.js.map +1 -1
  108. package/build/esm/{HotkeysPanel-BiJ8VcX-.js → HotkeysPanel-0576deee.js} +4 -4
  109. package/build/esm/{HotkeysPanel-BiJ8VcX-.js.map → HotkeysPanel-0576deee.js.map} +1 -1
  110. package/build/esm/{Item-BnjbUb88.js → Item-55899ec8.js} +44 -40
  111. package/build/esm/Item-55899ec8.js.map +1 -0
  112. package/build/esm/PageLayout.js +8 -8
  113. package/build/esm/PageLayout.js.map +1 -1
  114. package/build/esm/{PageLayoutAside-DQVfkCeA.js → PageLayoutAside-5d010e96.js} +108 -57
  115. package/build/esm/PageLayoutAside-5d010e96.js.map +1 -0
  116. package/build/esm/PageLayoutAside.js +9 -10
  117. package/build/esm/PageLayoutAside.js.map +1 -1
  118. package/build/esm/{Settings-BPE0n6i2.js → Settings-e660a4c5.js} +24 -36
  119. package/build/esm/{Settings-BPE0n6i2.js.map → Settings-e660a4c5.js.map} +1 -1
  120. package/build/esm/{Title-CRlzgg4r.js → Title-03b4255a.js} +6 -4
  121. package/build/esm/Title-03b4255a.js.map +1 -0
  122. package/build/esm/TopPanel-cd270f27.js +76 -0
  123. package/build/esm/TopPanel-cd270f27.js.map +1 -0
  124. package/build/esm/{cn-CgiqTV3v.js → cn-ffe5e9f5.js} +1 -1
  125. package/build/esm/{cn-CgiqTV3v.js.map → cn-ffe5e9f5.js.map} +1 -1
  126. package/build/esm/components/ActionBar/ActionBar.d.ts +3 -3
  127. package/build/esm/components/ActionBar/__tests__/helpersPlaywright.d.ts +1 -1
  128. package/build/esm/components/ActionBar/types.d.ts +1 -1
  129. package/build/esm/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.d.ts +3 -0
  130. package/build/esm/components/AllPagesPanel/i18n/index.d.ts +1 -5
  131. package/build/esm/components/AsideHeader/AsideHeaderContext.d.ts +2 -1
  132. package/build/esm/components/AsideHeader/__tests__/helpersPlaywright.d.ts +1 -1
  133. package/build/esm/components/AsideHeader/components/TopPanel.d.ts +7 -0
  134. package/build/esm/components/AsideHeader/components/index.d.ts +1 -0
  135. package/build/esm/components/AsideHeader/i18n/index.d.ts +1 -5
  136. package/build/esm/components/AsideHeader/types.d.ts +7 -3
  137. package/build/esm/components/AsideHeader/useAsideHeaderTopPanel.d.ts +10 -0
  138. package/build/esm/components/CompositeBar/CompositeBar.d.ts +1 -1
  139. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.d.ts +1 -1
  140. package/build/esm/components/CompositeBar/Item/Item.d.ts +2 -15
  141. package/build/esm/components/Drawer/__tests__/helpersPlaywright.d.ts +1 -1
  142. package/build/esm/components/Drawer/utils.d.ts +2 -2
  143. package/build/esm/components/Footer/desktop/__tests__/helpersPlaywright.d.ts +1 -1
  144. package/build/esm/components/Footer/mobile/__tests__/helpersPlaywright.d.ts +1 -1
  145. package/build/esm/components/FooterItem/__tests__/helpersPlaywright.d.ts +1 -1
  146. package/build/esm/components/HotkeysPanel/__tests__/helpersPlaywright.d.ts +1 -1
  147. package/build/esm/components/Logo/Logo.d.ts +1 -1
  148. package/build/esm/components/Logo/__tests__/helpersPlaywright.d.ts +1 -1
  149. package/build/esm/components/MobileHeader/BurgerMenu/__tests__/helpersPlaywright.d.ts +1 -1
  150. package/build/esm/components/MobileHeader/MobileHeader.d.ts +1 -2
  151. package/build/esm/components/MobileHeader/OverlapPanel/__tests__/helpersPlaywright.d.ts +1 -1
  152. package/build/esm/components/MobileHeader/__tests__/helpersPlaywright.d.ts +1 -1
  153. package/build/esm/components/MobileHeader/i18n/index.d.ts +1 -5
  154. package/build/esm/components/MobileHeader/types.d.ts +1 -0
  155. package/build/esm/components/MobileLogo/__tests__/helpersPlaywright.d.ts +1 -1
  156. package/build/esm/components/Settings/__tests__/helpersPlaywright.d.ts +1 -1
  157. package/build/esm/components/Settings/i18n/index.d.ts +1 -5
  158. package/build/esm/components/Title/i18n/index.d.ts +1 -5
  159. package/build/esm/components/types.d.ts +4 -4
  160. package/build/esm/{constants-ChYDZ5F2.js → constants-b1604ff5.js} +2 -2
  161. package/build/{cjs/constants-B0DLAQY9.js.map → esm/constants-b1604ff5.js.map} +1 -1
  162. package/build/esm/debounce-64cd2b4c.js +543 -0
  163. package/build/{cjs/debounce-RFF04eVR.js.map → esm/debounce-64cd2b4c.js.map} +1 -1
  164. package/build/esm/{divider-collapsed-BgKmR8h9.js → divider-collapsed-a0ef54c3.js} +5 -4
  165. package/build/esm/divider-collapsed-a0ef54c3.js.map +1 -0
  166. package/build/esm/hooks/useForwardRef.d.ts +1 -1
  167. package/build/esm/index.js +168 -4
  168. package/build/esm/index.js.map +1 -1
  169. package/build/esm/index2.js +3 -6
  170. package/build/esm/index2.js.map +1 -1
  171. package/build/esm/index3.js +5 -7
  172. package/build/esm/index3.js.map +1 -1
  173. package/build/esm/index4.js +6 -9
  174. package/build/esm/index4.js.map +1 -1
  175. package/build/esm/index5.js +7 -8
  176. package/build/esm/index5.js.map +1 -1
  177. package/build/esm/index6.js +9 -168
  178. package/build/esm/index6.js.map +1 -1
  179. package/build/esm/{style-inject.es-Bff-fD1R.js → style-inject.es-1f59c1d0.js} +2 -2
  180. package/build/esm/style-inject.es-1f59c1d0.js.map +1 -0
  181. package/build/esm/{tslib.es6-BCqiemNI.js → tslib.es6-3cd4e99f.js} +31 -33
  182. package/build/esm/tslib.es6-3cd4e99f.js.map +1 -0
  183. package/build/esm/utils-117463a5.js +6 -0
  184. package/build/esm/{utils-D0s6YtvW.js.map → utils-117463a5.js.map} +1 -1
  185. package/package.json +45 -48
  186. package/build/cjs/Content-Dy2XkiRi.js +0 -16
  187. package/build/cjs/FooterItem-Bl_XrJ67.js.map +0 -1
  188. package/build/cjs/Item-B_-IH1_h.js +0 -295
  189. package/build/cjs/Item-B_-IH1_h.js.map +0 -1
  190. package/build/cjs/PageLayoutAside-BzYF9W7M.js.map +0 -1
  191. package/build/cjs/Title-CzxcSMoP.js.map +0 -1
  192. package/build/cjs/_commonjsHelpers-BJu3ubxk.js +0 -11
  193. package/build/cjs/_commonjsHelpers-BJu3ubxk.js.map +0 -1
  194. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -17
  195. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  196. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  197. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -18
  198. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -14
  199. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  200. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -6
  201. package/build/cjs/components/Drawer/__stories__/DisablePortal.d.ts +0 -3
  202. package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +0 -7
  203. package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
  204. package/build/cjs/components/Drawer/__stories__/HideVeil.d.ts +0 -3
  205. package/build/cjs/components/Drawer/__stories__/ResizableItem.d.ts +0 -3
  206. package/build/cjs/components/Drawer/__stories__/moc.d.ts +0 -2
  207. package/build/cjs/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  208. package/build/cjs/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  209. package/build/cjs/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  210. package/build/cjs/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  211. package/build/cjs/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  212. package/build/cjs/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  213. package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  214. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  215. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  216. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  217. package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +0 -6
  218. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  219. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  220. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  221. package/build/cjs/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  222. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  223. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  224. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
  225. package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  226. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  227. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  228. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  229. package/build/cjs/components/TopAlert/TopAlert.d.ts +0 -10
  230. package/build/cjs/components/TopAlert/index.d.ts +0 -1
  231. package/build/cjs/components/TopAlert/useTopAlertHeight.d.ts +0 -10
  232. package/build/cjs/debounce-RFF04eVR.js +0 -660
  233. package/build/cjs/divider-collapsed-BLSp99lJ.js.map +0 -1
  234. package/build/cjs/index-B6c8DVdr.js +0 -68
  235. package/build/cjs/index-B6c8DVdr.js.map +0 -1
  236. package/build/cjs/style-inject.es-CsU6UJbw.js.map +0 -1
  237. package/build/cjs/tslib.es6-D25eJ2i9.js.map +0 -1
  238. package/build/cjs/utils-BrRoop7o.js +0 -8
  239. package/build/esm/FooterItem-BP7Ya02G.js.map +0 -1
  240. package/build/esm/Item-BnjbUb88.js.map +0 -1
  241. package/build/esm/PageLayoutAside-DQVfkCeA.js.map +0 -1
  242. package/build/esm/Title-CRlzgg4r.js.map +0 -1
  243. package/build/esm/_commonjsHelpers-BFTU3MAI.js +0 -8
  244. package/build/esm/_commonjsHelpers-BFTU3MAI.js.map +0 -1
  245. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -17
  246. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  247. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  248. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -18
  249. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -14
  250. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  251. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -6
  252. package/build/esm/components/Drawer/__stories__/DisablePortal.d.ts +0 -3
  253. package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +0 -7
  254. package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
  255. package/build/esm/components/Drawer/__stories__/HideVeil.d.ts +0 -3
  256. package/build/esm/components/Drawer/__stories__/ResizableItem.d.ts +0 -3
  257. package/build/esm/components/Drawer/__stories__/moc.d.ts +0 -2
  258. package/build/esm/components/Footer/desktop/__stories__/Footer.stories.d.ts +0 -8
  259. package/build/esm/components/Footer/desktop/__stories__/FooterShowcase.d.ts +0 -4
  260. package/build/esm/components/Footer/desktop/__stories__/moc.d.ts +0 -3
  261. package/build/esm/components/Footer/mobile/__stories__/MobileFooter.stories.d.ts +0 -8
  262. package/build/esm/components/Footer/mobile/__stories__/MobileFooterShowcase.d.ts +0 -4
  263. package/build/esm/components/Footer/mobile/__stories__/moc.d.ts +0 -3
  264. package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -6
  265. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -5
  266. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -6
  267. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  268. package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +0 -6
  269. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -6
  270. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  271. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/OverlapPanel.stories.d.ts +0 -6
  272. package/build/esm/components/MobileHeader/OverlapPanel/__stories__/moc.d.ts +0 -2
  273. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -4
  274. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  275. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
  276. package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +0 -6
  277. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -5
  278. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  279. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  280. package/build/esm/components/TopAlert/TopAlert.d.ts +0 -10
  281. package/build/esm/components/TopAlert/index.d.ts +0 -1
  282. package/build/esm/components/TopAlert/useTopAlertHeight.d.ts +0 -10
  283. package/build/esm/debounce-DW3XyyUs.js +0 -658
  284. package/build/esm/divider-collapsed-BgKmR8h9.js.map +0 -1
  285. package/build/esm/index-BLdwsphX.js +0 -66
  286. package/build/esm/index-BLdwsphX.js.map +0 -1
  287. package/build/esm/style-inject.es-Bff-fD1R.js.map +0 -1
  288. package/build/esm/tslib.es6-BCqiemNI.js.map +0 -1
  289. package/build/esm/utils-D0s6YtvW.js +0 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"divider-collapsed-a0ef54c3.js","sources":["../../assets/icons/divider-collapsed.svg"],"sourcesContent":["<svg width=\"56\" height=\"29\" viewBox=\"0 0 56 29\" fill=\"currentColor\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M56 0v29c-.8-1-7-6.1-17.7-8.4L13 15.7A16 16 0 0 1 0 0Z\"/></svg>\n"],"names":[],"mappings":";;AAAA,IAAI,KAAK,CAAC;AACV,SAAS,QAAQ,GAAG,EAAE,OAAO,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE;AAEpR,IAAI,mBAAmB,GAAG,SAAS,mBAAmB,CAAC,KAAK,EAAE;AAC9D,EAAE,oBAAoB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC1D,IAAI,KAAK,EAAE,EAAE;AACb,IAAI,MAAM,EAAE,EAAE;AACd,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,IAAI,EAAE,cAAc;AACxB,IAAI,KAAK,EAAE,4BAA4B;AACvC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,gBAAgB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;AACxE,IAAI,CAAC,EAAE,wDAAwD;AAC/D,GAAG,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AACF,iCAAe,mBAAmB;;;;"}
@@ -1,2 +1,2 @@
1
1
  import React from 'react';
2
- export declare const useForwardRef: <T>(ref: ((instance: T | null) => void) | React.MutableRefObject<T | null> | null, initialValue?: any) => React.MutableRefObject<T>;
2
+ export declare const useForwardRef: <T>(ref: React.MutableRefObject<T | null> | ((instance: T | null) => void) | null, initialValue?: any) => React.MutableRefObject<T>;
@@ -1,6 +1,170 @@
1
- export { P as ActionBar } from './ActionBar-BD_roj92.js';
2
- import 'react';
3
- import './cn-CgiqTV3v.js';
1
+ export { AsideHeader } from './AsideHeader.js';
2
+ export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeaderContext.js';
3
+ export { FooterItem } from './FooterItem.js';
4
+ export { PageLayout } from './PageLayout.js';
5
+ import { L as Logo } from './PageLayoutAside-5d010e96.js';
6
+ export { L as Logo, P as PageLayoutAside } from './PageLayoutAside-5d010e96.js';
7
+ export { AsideFallback } from './AsideFallback.js';
8
+ export { Drawer, DrawerItem } from './Drawer.js';
9
+ export { M as MOBILE_HEADER_EVENT_NAMES, a as MobileHeader, F as MobileHeaderFooterItem, b as MobileLogo, g as getMobileHeaderCustomEvent } from './FooterItem-3cc816a3.js';
10
+ import React__default, { useState, useLayoutEffect, useMemo, useRef, useCallback } from 'react';
11
+ import { Menu, DropdownMenu, Button, Icon, Sheet } from '@gravity-ui/uikit';
12
+ import { d as debounce_1 } from './debounce-64cd2b4c.js';
13
+ import { b as block } from './cn-ffe5e9f5.js';
14
+ import { _ as __rest } from './tslib.es6-3cd4e99f.js';
15
+ import { s as styleInject } from './style-inject.es-1f59c1d0.js';
16
+ import { Ellipsis } from '@gravity-ui/icons';
17
+ export { P as ActionBar } from './ActionBar-834b178a.js';
18
+ export { T as Title } from './Title-03b4255a.js';
19
+ export { H as HotkeysPanel } from './HotkeysPanel-0576deee.js';
20
+ export { S as Settings, a as useSettingsContext, u as useSettingsSelectionContext } from './Settings-e660a4c5.js';
21
+ import './Item-55899ec8.js';
22
+ import './constants-b1604ff5.js';
23
+ import './Content-f94ba85d.js';
24
+ import './utils-117463a5.js';
25
+ import '@gravity-ui/uikit/i18n';
26
+ import './divider-collapsed-a0ef54c3.js';
27
+ import 'react-dom';
4
28
  import '@bem-react/classname';
5
- import './style-inject.es-Bff-fD1R.js';
29
+
30
+ function useOverflowingHorizontalListItems({ containerRef, items, itemSelector, moreButtonWidth = 0, }) {
31
+ const [containerWidth, setContainerWidth] = useState(0);
32
+ const [itemWidths, setItemWidths] = useState([]);
33
+ useLayoutEffect(() => {
34
+ if (!containerRef.current) {
35
+ return;
36
+ }
37
+ const measureItemSizes = () => {
38
+ var _a, _b;
39
+ const itemElements = Array.from((_b = (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll(itemSelector)) !== null && _b !== void 0 ? _b : []);
40
+ setItemWidths(itemElements.map((item) => item.clientWidth));
41
+ };
42
+ measureItemSizes();
43
+ }, [containerRef, itemSelector]);
44
+ useLayoutEffect(() => {
45
+ const footerMenu = containerRef.current;
46
+ if (!footerMenu) {
47
+ return;
48
+ }
49
+ const updateContainerSize = (entries) => {
50
+ if (entries.length > 0 && footerMenu) {
51
+ setContainerWidth(entries[0].contentRect.width);
52
+ }
53
+ };
54
+ const updateContainerSizeDebounced = debounce_1(updateContainerSize, 100);
55
+ const footerMenuResizeObserver = new ResizeObserver(updateContainerSizeDebounced);
56
+ footerMenuResizeObserver.observe(footerMenu);
57
+ }, [containerRef]);
58
+ const isMeasured = containerWidth > 0;
59
+ const { visibleItems, hiddenItems } = useMemo(() => {
60
+ var _a, _b;
61
+ if (!isMeasured) {
62
+ return {
63
+ visibleItems: items !== null && items !== void 0 ? items : [],
64
+ hiddenItems: [],
65
+ };
66
+ }
67
+ const itemsCount = itemWidths.length;
68
+ let visibleItemsCount = 0;
69
+ let remainingContainerWidth = containerWidth;
70
+ for (const width of itemWidths) {
71
+ remainingContainerWidth -= width;
72
+ if (remainingContainerWidth < moreButtonWidth) {
73
+ const isMoreThanOneItemLeft = itemsCount !== visibleItemsCount + 1;
74
+ const hasNoSpaceForTheLastItem = remainingContainerWidth < 0;
75
+ if (isMoreThanOneItemLeft || hasNoSpaceForTheLastItem) {
76
+ break;
77
+ }
78
+ }
79
+ visibleItemsCount++;
80
+ }
81
+ return {
82
+ visibleItems: (_a = items === null || items === void 0 ? void 0 : items.slice(0, visibleItemsCount)) !== null && _a !== void 0 ? _a : [],
83
+ hiddenItems: (_b = items === null || items === void 0 ? void 0 : items.slice(visibleItemsCount)) !== null && _b !== void 0 ? _b : [],
84
+ };
85
+ }, [containerWidth, isMeasured, itemWidths, items, moreButtonWidth]);
86
+ return { visibleItems, hiddenItems, measured: isMeasured };
87
+ }
88
+
89
+ var css_248z$2 = ".gn-footer-menu-item{align-items:center;align-self:stretch;display:flex;height:100%;justify-content:center}.gn-footer-menu-item .g-menu__item-content{color:var(--g-color-text-secondary);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gn-footer-menu-item[class]:hover{background-color:inherit}.gn-footer-menu-item[class]:hover[href] .g-menu__item-content{color:var(--g-color-text-link-hover)}";
90
+ styleInject(css_248z$2);
91
+
92
+ const b$2 = block('footer-menu-item');
93
+ const MenuItem = (_a) => {
94
+ var { text, className } = _a, menuItemProps = __rest(_a, ["text", "className"]);
95
+ return (React__default.createElement(Menu.Item, Object.assign({ className: b$2(null, className) }, menuItemProps), text));
96
+ };
97
+
98
+ const moreItemsPopupProps = {
99
+ placement: 'top-start',
100
+ };
101
+
102
+ var css_248z$1 = ".gn-footer_desktop{align-items:center;background:var(--g-color-base-background);display:flex;gap:var(--g-spacing-6);height:40px;justify-content:flex-end;padding:0 var(--g-spacing-6) 0 var(--g-spacing-3)}.gn-footer_desktop .gn-footer__menu{align-items:center;align-self:stretch;display:flex;flex:1;min-width:0;visibility:hidden}.gn-footer_desktop .gn-footer__menu_measured{visibility:visible}.gn-footer_desktop .gn-footer__list[class]{background-color:inherit;display:flex;height:100%;padding:0}.gn-footer_desktop .gn-footer__more-button svg{color:var(--g-color-text-secondary)}.gn-footer_desktop .gn-footer__right{align-items:center;display:flex;gap:var(--g-spacing-5)}.gn-footer_desktop .gn-footer__copyright{color:var(--g-color-text-secondary);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);white-space:nowrap}.gn-footer_desktop .gn-footer__copyright_small{font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height)}.gn-footer_with-divider{border-top:1px solid var(--g-color-line-generic)}.gn-footer_view_clear{background:transparent;z-index:-1}";
103
+ styleInject(css_248z$1);
104
+
105
+ const b$1 = block('footer');
106
+ const Footer = ({ className, menuItems: providedMenuItems, withDivider, moreButtonTitle, onMoreButtonClick, view = 'normal', logo, logoWrapperClassName, copyright, }) => {
107
+ var _a;
108
+ const menuContainerRef = useRef(null);
109
+ const menuItems = view === 'clear' ? undefined : providedMenuItems;
110
+ const { visibleItems, hiddenItems, measured } = useOverflowingHorizontalListItems({
111
+ containerRef: menuContainerRef,
112
+ items: menuItems,
113
+ itemSelector: `.${b$1('menu-item')}`,
114
+ moreButtonWidth: 28,
115
+ });
116
+ const moreButtonProps = useMemo(() => ({
117
+ title: moreButtonTitle,
118
+ }), [moreButtonTitle]);
119
+ const dropdownMenuItems = useMemo(() => hiddenItems.map((item) => (Object.assign(Object.assign({}, item), { action: item.onClick }))), [hiddenItems]);
120
+ const shouldRenderLogo = view !== 'clear' && Boolean(logo);
121
+ const shouldRenderMenu = ((_a = menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) !== null && _a !== void 0 ? _a : 0) > 0;
122
+ return (React__default.createElement("footer", { className: b$1({ desktop: true, 'with-divider': withDivider, view }, className) },
123
+ shouldRenderMenu && (React__default.createElement("div", { className: b$1('menu', { measured }), ref: menuContainerRef },
124
+ visibleItems.length > 0 && (React__default.createElement(Menu, { className: b$1('list') }, visibleItems.map((item, index) => (React__default.createElement(MenuItem, Object.assign({ key: index }, item, { className: b$1('menu-item', item.className) })))))),
125
+ dropdownMenuItems.length > 0 && (React__default.createElement(DropdownMenu, { items: dropdownMenuItems, switcherWrapperClassName: b$1('more-button'), popupProps: moreItemsPopupProps, defaultSwitcherProps: moreButtonProps, onSwitcherClick: onMoreButtonClick })))),
126
+ React__default.createElement("div", { className: b$1('right') },
127
+ React__default.createElement("small", { className: b$1('copyright', { small: !(menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) }) }, copyright),
128
+ shouldRenderLogo && (React__default.createElement("div", { className: logoWrapperClassName },
129
+ React__default.createElement(Logo, Object.assign({}, logo)))))));
130
+ };
131
+
132
+ var css_248z = ".gn-footer_mobile{background:var(--g-color-base-background);display:flex;flex-direction:column;padding:var(--g-spacing-1) var(--g-spacing-6) var(--g-spacing-3) var(--g-spacing-3)}.gn-footer_mobile .gn-footer_with-divider{border-top:1px solid var(--g-color-line-generic)}.gn-footer_mobile .gn-footer__menu{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--g-spacing-1);visibility:hidden}.gn-footer_mobile .gn-footer__menu_measured{visibility:visible}.gn-footer_mobile .gn-footer__list[class]{background-color:inherit;display:flex;padding:0}.gn-footer_mobile .gn-footer__menu-item{box-sizing:border-box;padding:var(--g-spacing-2) var(--g-spacing-3)}.gn-footer_mobile .gn-footer__bottom-row{align-items:center;display:flex;justify-content:space-between}.gn-footer_mobile .gn-footer__copyright{color:var(--g-color-text-secondary);font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height);padding:0 var(--g-spacing-3);white-space:nowrap}.gn-footer__modal .gn-footer__menu-item{color:var(--g-color-text-primary);font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);height:48px;line-height:var(--g-text-body-2-line-height)}.gn-footer_view_clear{background:transparent;z-index:-1}.gn-footer_view_clear .gn-footer__bottom-row{justify-content:flex-end}";
133
+ styleInject(css_248z);
134
+
135
+ const b = block('footer');
136
+ const modalId = 'footer-more-items';
137
+ const MobileFooter = ({ className, menuItems: providedMenuItems, withDivider, moreButtonTitle, onMoreButtonClick, view = 'normal', logo, logoWrapperClassName, copyright, }) => {
138
+ const [moreItemsMenuVisible, setMoreItemsMenuVisible] = useState(false);
139
+ const menuContainerRef = useRef(null);
140
+ const handleOpenMoreItemsMenu = useCallback((event) => {
141
+ setMoreItemsMenuVisible(true);
142
+ onMoreButtonClick === null || onMoreButtonClick === void 0 ? void 0 : onMoreButtonClick(event);
143
+ }, [onMoreButtonClick]);
144
+ const handleCloseMoreItemsMenu = useCallback(() => {
145
+ setMoreItemsMenuVisible(false);
146
+ }, []);
147
+ const menuItems = view === 'clear' ? undefined : providedMenuItems;
148
+ const { visibleItems, hiddenItems, measured } = useOverflowingHorizontalListItems({
149
+ containerRef: menuContainerRef,
150
+ items: menuItems,
151
+ itemSelector: `.${b('menu-item')}`,
152
+ moreButtonWidth: 28,
153
+ });
154
+ const renderMenu = (items) => (React__default.createElement(Menu, { className: b('list') }, items.map((item, index) => (React__default.createElement(MenuItem, Object.assign({ key: index }, item, { className: b('menu-item', item.className) }))))));
155
+ const shouldRenderLogo = view !== 'clear' && Boolean(logo);
156
+ return (React__default.createElement("footer", { className: b({ mobile: true, 'with-divider': withDivider, view }, className) },
157
+ React__default.createElement("div", { className: b('menu', { measured }), ref: menuContainerRef },
158
+ visibleItems.length > 0 && renderMenu(visibleItems),
159
+ hiddenItems.length > 0 && (React__default.createElement(React__default.Fragment, null,
160
+ React__default.createElement(Button, { view: "flat-secondary", size: "l", onClick: handleOpenMoreItemsMenu, title: moreButtonTitle },
161
+ React__default.createElement(Icon, { data: Ellipsis, size: 16 })),
162
+ React__default.createElement(Sheet, { id: modalId, visible: moreItemsMenuVisible, className: b('modal'), contentClassName: b('modal-content'), onClose: handleCloseMoreItemsMenu }, renderMenu(hiddenItems))))),
163
+ React__default.createElement("div", { className: b('bottom-row') },
164
+ React__default.createElement("small", { className: b('copyright') }, copyright),
165
+ shouldRenderLogo && (React__default.createElement("div", { className: logoWrapperClassName },
166
+ React__default.createElement(Logo, Object.assign({}, logo)))))));
167
+ };
168
+
169
+ export { Footer, MobileFooter };
6
170
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.ts","../../../src/components/Footer/MenuItem/MenuItem.tsx","../../../src/components/Footer/desktop/constants/moreItemsPopupProps.ts","../../../src/components/Footer/desktop/Footer.tsx","../../../src/components/Footer/mobile/Footer.tsx"],"sourcesContent":["import {useLayoutEffect, useMemo, useState} from 'react';\nimport type {RefObject} from 'react';\n\nimport debounceFn from 'lodash/debounce';\n\nexport type UseOverflowingContainerListItemsProps<ItemType extends unknown> = {\n containerRef: RefObject<HTMLElement>;\n items?: ItemType[];\n itemSelector: string;\n moreButtonWidth?: number;\n};\n\nexport function useOverflowingHorizontalListItems<ItemType>({\n containerRef,\n items,\n itemSelector,\n moreButtonWidth = 0,\n}: UseOverflowingContainerListItemsProps<ItemType>) {\n const [containerWidth, setContainerWidth] = useState<number>(0);\n const [itemWidths, setItemWidths] = useState<number[]>([]);\n\n useLayoutEffect(() => {\n if (!containerRef.current) {\n return;\n }\n\n const measureItemSizes = () => {\n const itemElements = Array.from(\n containerRef.current?.querySelectorAll(itemSelector) ?? [],\n );\n setItemWidths(itemElements.map((item) => item.clientWidth));\n };\n\n measureItemSizes();\n }, [containerRef, itemSelector]);\n\n useLayoutEffect(() => {\n const footerMenu = containerRef.current;\n if (!footerMenu) {\n return;\n }\n\n const updateContainerSize = (entries: ResizeObserverEntry[]) => {\n if (entries.length > 0 && footerMenu) {\n setContainerWidth(entries[0].contentRect.width);\n }\n };\n\n const updateContainerSizeDebounced = debounceFn(updateContainerSize, 100);\n const footerMenuResizeObserver = new ResizeObserver(updateContainerSizeDebounced);\n\n footerMenuResizeObserver.observe(footerMenu);\n }, [containerRef]);\n\n const isMeasured = containerWidth > 0;\n\n const {visibleItems, hiddenItems} = useMemo(() => {\n if (!isMeasured) {\n return {\n visibleItems: items ?? [],\n hiddenItems: [],\n };\n }\n\n const itemsCount = itemWidths.length;\n let visibleItemsCount = 0;\n let remainingContainerWidth = containerWidth;\n for (const width of itemWidths) {\n remainingContainerWidth -= width;\n if (remainingContainerWidth < moreButtonWidth) {\n const isMoreThanOneItemLeft = itemsCount !== visibleItemsCount + 1;\n const hasNoSpaceForTheLastItem = remainingContainerWidth < 0;\n if (isMoreThanOneItemLeft || hasNoSpaceForTheLastItem) {\n break;\n }\n }\n\n visibleItemsCount++;\n }\n\n return {\n visibleItems: items?.slice(0, visibleItemsCount) ?? [],\n hiddenItems: items?.slice(visibleItemsCount) ?? [],\n };\n }, [containerWidth, isMeasured, itemWidths, items, moreButtonWidth]);\n\n return {visibleItems, hiddenItems, measured: isMeasured};\n}\n","import React from 'react';\nimport type {FC} from 'react';\n\nimport {Menu} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\nimport {FooterMenuItem} from '../types';\n\nimport './MenuItem.scss';\n\nconst b = block('footer-menu-item');\n\nexport type MenuItemProps = FooterMenuItem;\n\nexport const MenuItem: FC<MenuItemProps> = ({text, className, ...menuItemProps}) => {\n return (\n <Menu.Item className={b(null, className)} {...menuItemProps}>\n {text}\n </Menu.Item>\n );\n};\n","import {PopupProps} from '@gravity-ui/uikit';\n\nexport const moreItemsPopupProps: PopupProps = {\n placement: 'top-start',\n};\n","import React, {useMemo, useRef} from 'react';\nimport type {FC} from 'react';\n\nimport {DropdownMenu, Menu} from '@gravity-ui/uikit';\nimport type {DropdownMenuItem} from '@gravity-ui/uikit';\n\nimport {useOverflowingHorizontalListItems} from '../../../hooks/useOverflowingHorizontalListItems';\nimport {Logo} from '../../Logo';\nimport {block} from '../../utils/cn';\nimport {MenuItem} from '../MenuItem/MenuItem';\nimport {FooterProps} from '../types';\n\nimport {moreItemsPopupProps} from './constants/moreItemsPopupProps';\n\nimport './Footer.scss';\n\nconst b = block('footer');\n\nexport const Footer: FC<FooterProps> = ({\n className,\n menuItems: providedMenuItems,\n withDivider,\n moreButtonTitle,\n onMoreButtonClick,\n view = 'normal',\n logo,\n logoWrapperClassName,\n copyright,\n}) => {\n const menuContainerRef = useRef<HTMLDivElement>(null);\n\n const menuItems = view === 'clear' ? undefined : providedMenuItems;\n\n const {visibleItems, hiddenItems, measured} = useOverflowingHorizontalListItems({\n containerRef: menuContainerRef,\n items: menuItems,\n itemSelector: `.${b('menu-item')}`,\n moreButtonWidth: 28,\n });\n\n const moreButtonProps = useMemo(\n () => ({\n title: moreButtonTitle,\n }),\n [moreButtonTitle],\n );\n\n const dropdownMenuItems = useMemo(\n () =>\n hiddenItems.map(\n (item) =>\n ({\n ...item,\n action: item.onClick,\n }) as DropdownMenuItem,\n ),\n [hiddenItems],\n );\n\n const shouldRenderLogo = view !== 'clear' && Boolean(logo);\n const shouldRenderMenu = (menuItems?.length ?? 0) > 0;\n\n return (\n <footer className={b({desktop: true, 'with-divider': withDivider, view}, className)}>\n {shouldRenderMenu && (\n <div className={b('menu', {measured})} ref={menuContainerRef}>\n {visibleItems.length > 0 && (\n <Menu className={b('list')}>\n {visibleItems.map((item, index) => (\n <MenuItem\n key={index}\n {...item}\n className={b('menu-item', item.className)}\n />\n ))}\n </Menu>\n )}\n {dropdownMenuItems.length > 0 && (\n <DropdownMenu\n items={dropdownMenuItems}\n switcherWrapperClassName={b('more-button')}\n popupProps={moreItemsPopupProps}\n defaultSwitcherProps={moreButtonProps}\n onSwitcherClick={onMoreButtonClick}\n />\n )}\n </div>\n )}\n <div className={b('right')}>\n <small className={b('copyright', {small: !menuItems?.length})}>{copyright}</small>\n {shouldRenderLogo && (\n <div className={logoWrapperClassName}>\n <Logo {...logo!} />\n </div>\n )}\n </div>\n </footer>\n );\n};\n","import React, {useCallback, useRef, useState} from 'react';\nimport type {FC} from 'react';\n\nimport {Ellipsis} from '@gravity-ui/icons';\nimport {Button, Icon, Menu, Sheet} from '@gravity-ui/uikit';\n\nimport {useOverflowingHorizontalListItems} from '../../../hooks/useOverflowingHorizontalListItems';\nimport {Logo} from '../../Logo';\nimport {block} from '../../utils/cn';\nimport {MenuItem} from '../MenuItem/MenuItem';\nimport {FooterMenuItem, FooterProps} from '../types';\n\nimport './Footer.scss';\n\nconst b = block('footer');\n\nconst modalId = 'footer-more-items';\n\nexport const MobileFooter: FC<FooterProps> = ({\n className,\n menuItems: providedMenuItems,\n withDivider,\n moreButtonTitle,\n onMoreButtonClick,\n view = 'normal',\n logo,\n logoWrapperClassName,\n copyright,\n}) => {\n const [moreItemsMenuVisible, setMoreItemsMenuVisible] = useState(false);\n const menuContainerRef = useRef<HTMLDivElement>(null);\n\n const handleOpenMoreItemsMenu = useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n setMoreItemsMenuVisible(true);\n onMoreButtonClick?.(event);\n },\n [onMoreButtonClick],\n );\n\n const handleCloseMoreItemsMenu = useCallback(() => {\n setMoreItemsMenuVisible(false);\n }, []);\n\n const menuItems = view === 'clear' ? undefined : providedMenuItems;\n\n const {visibleItems, hiddenItems, measured} = useOverflowingHorizontalListItems({\n containerRef: menuContainerRef,\n items: menuItems,\n itemSelector: `.${b('menu-item')}`,\n moreButtonWidth: 28,\n });\n\n const renderMenu = (items: FooterMenuItem[]) => (\n <Menu className={b('list')}>\n {items.map((item, index) => (\n <MenuItem key={index} {...item} className={b('menu-item', item.className)} />\n ))}\n </Menu>\n );\n\n const shouldRenderLogo = view !== 'clear' && Boolean(logo);\n\n return (\n <footer className={b({mobile: true, 'with-divider': withDivider, view}, className)}>\n <div className={b('menu', {measured})} ref={menuContainerRef}>\n {visibleItems.length > 0 && renderMenu(visibleItems)}\n {hiddenItems.length > 0 && (\n <>\n <Button\n view=\"flat-secondary\"\n size=\"l\"\n onClick={handleOpenMoreItemsMenu}\n title={moreButtonTitle}\n >\n <Icon data={Ellipsis} size={16} />\n </Button>\n <Sheet\n id={modalId}\n visible={moreItemsMenuVisible}\n className={b('modal')}\n contentClassName={b('modal-content')}\n onClose={handleCloseMoreItemsMenu}\n >\n {renderMenu(hiddenItems)}\n </Sheet>\n </>\n )}\n </div>\n <div className={b('bottom-row')}>\n <small className={b('copyright')}>{copyright}</small>\n {shouldRenderLogo && (\n <div className={logoWrapperClassName}>\n <Logo {...logo!} />\n </div>\n )}\n </div>\n </footer>\n );\n};\n"],"names":["debounceFn","b","React"],"mappings":"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"}
@@ -1,9 +1,6 @@
1
- export { T as Title } from './Title-CRlzgg4r.js';
1
+ export { P as ActionBar } from './ActionBar-834b178a.js';
2
2
  import 'react';
3
- import '@gravity-ui/icons';
4
- import '@gravity-ui/uikit';
5
- import './cn-CgiqTV3v.js';
3
+ import './cn-ffe5e9f5.js';
6
4
  import '@bem-react/classname';
7
- import '@gravity-ui/uikit/i18n';
8
- import './style-inject.es-Bff-fD1R.js';
5
+ import './style-inject.es-1f59c1d0.js';
9
6
  //# sourceMappingURL=index2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"index2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,11 +1,9 @@
1
- export { H as HotkeysPanel } from './HotkeysPanel-BiJ8VcX-.js';
2
- import './tslib.es6-BCqiemNI.js';
1
+ export { T as Title } from './Title-03b4255a.js';
3
2
  import 'react';
3
+ import '@gravity-ui/icons';
4
4
  import '@gravity-ui/uikit';
5
- import './Drawer.js';
6
- import './cn-CgiqTV3v.js';
5
+ import './cn-ffe5e9f5.js';
7
6
  import '@bem-react/classname';
8
- import './style-inject.es-Bff-fD1R.js';
9
- import './_commonjsHelpers-BFTU3MAI.js';
10
- import 'react-dom';
7
+ import '@gravity-ui/uikit/i18n';
8
+ import './style-inject.es-1f59c1d0.js';
11
9
  //# sourceMappingURL=index3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"index3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,13 +1,10 @@
1
- export { S as Settings, a as useSettingsContext, u as useSettingsSelectionContext } from './Settings-BPE0n6i2.js';
2
- import './tslib.es6-BCqiemNI.js';
1
+ export { H as HotkeysPanel } from './HotkeysPanel-0576deee.js';
2
+ import './tslib.es6-3cd4e99f.js';
3
3
  import 'react';
4
4
  import '@gravity-ui/uikit';
5
- import './_commonjsHelpers-BFTU3MAI.js';
6
- import './Title-CRlzgg4r.js';
7
- import '@gravity-ui/icons';
8
- import './cn-CgiqTV3v.js';
5
+ import './Drawer.js';
6
+ import 'react-dom';
7
+ import './cn-ffe5e9f5.js';
9
8
  import '@bem-react/classname';
10
- import '@gravity-ui/uikit/i18n';
11
- import './style-inject.es-Bff-fD1R.js';
12
- import './debounce-DW3XyyUs.js';
9
+ import './style-inject.es-1f59c1d0.js';
13
10
  //# sourceMappingURL=index4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index4.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -1,13 +1,12 @@
1
- export { M as MOBILE_HEADER_EVENT_NAMES, a as MobileHeader, F as MobileHeaderFooterItem, g as getMobileHeaderCustomEvent } from './FooterItem-BP7Ya02G.js';
1
+ export { S as Settings, a as useSettingsContext, u as useSettingsSelectionContext } from './Settings-e660a4c5.js';
2
+ import './tslib.es6-3cd4e99f.js';
2
3
  import 'react';
3
- import './Content-c3e3OunO.js';
4
- import './Drawer.js';
5
4
  import '@gravity-ui/uikit';
6
- import './cn-CgiqTV3v.js';
5
+ import './cn-ffe5e9f5.js';
7
6
  import '@bem-react/classname';
8
- import './style-inject.es-Bff-fD1R.js';
9
- import './_commonjsHelpers-BFTU3MAI.js';
10
- import 'react-dom';
11
- import '@gravity-ui/icons';
7
+ import './style-inject.es-1f59c1d0.js';
8
+ import './debounce-64cd2b4c.js';
12
9
  import '@gravity-ui/uikit/i18n';
10
+ import './Title-03b4255a.js';
11
+ import '@gravity-ui/icons';
13
12
  //# sourceMappingURL=index5.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index5.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -1,171 +1,12 @@
1
- export { AsideHeader } from './AsideHeader.js';
2
- export { AsideHeaderContextProvider, useAsideHeaderContext } from './AsideHeaderContext.js';
3
- export { FooterItem } from './FooterItem.js';
4
- export { PageLayout } from './PageLayout.js';
5
- import { L as Logo } from './PageLayoutAside-DQVfkCeA.js';
6
- export { P as PageLayoutAside } from './PageLayoutAside-DQVfkCeA.js';
7
- export { AsideFallback } from './AsideFallback.js';
8
- export { Drawer, DrawerItem } from './Drawer.js';
9
- export { P as ActionBar } from './ActionBar-BD_roj92.js';
10
- export { T as Title } from './Title-CRlzgg4r.js';
11
- export { H as HotkeysPanel } from './HotkeysPanel-BiJ8VcX-.js';
12
- export { S as Settings, a as useSettingsContext, u as useSettingsSelectionContext } from './Settings-BPE0n6i2.js';
13
- export { M as MOBILE_HEADER_EVENT_NAMES, a as MobileHeader, F as MobileHeaderFooterItem, b as MobileLogo, g as getMobileHeaderCustomEvent } from './FooterItem-BP7Ya02G.js';
14
- import React__default, { useState, useLayoutEffect, useMemo, useRef, useCallback } from 'react';
15
- import { Menu, DropdownMenu, Button, Icon, Sheet } from '@gravity-ui/uikit';
16
- import { d as debounceFn } from './debounce-DW3XyyUs.js';
17
- import { b as block } from './cn-CgiqTV3v.js';
18
- import { _ as __rest } from './tslib.es6-BCqiemNI.js';
19
- import { s as styleInject } from './style-inject.es-Bff-fD1R.js';
20
- import { Ellipsis } from '@gravity-ui/icons';
21
- import './Content-c3e3OunO.js';
22
- import './constants-ChYDZ5F2.js';
23
- import './utils-D0s6YtvW.js';
1
+ export { M as MOBILE_HEADER_EVENT_NAMES, a as MobileHeader, F as MobileHeaderFooterItem, g as getMobileHeaderCustomEvent } from './FooterItem-3cc816a3.js';
2
+ import 'react';
3
+ import './Content-f94ba85d.js';
4
+ import './Drawer.js';
5
+ import '@gravity-ui/uikit';
6
+ import 'react-dom';
7
+ import './cn-ffe5e9f5.js';
24
8
  import '@bem-react/classname';
9
+ import './style-inject.es-1f59c1d0.js';
10
+ import '@gravity-ui/icons';
25
11
  import '@gravity-ui/uikit/i18n';
26
- import './Item-BnjbUb88.js';
27
- import './_commonjsHelpers-BFTU3MAI.js';
28
- import './divider-collapsed-BgKmR8h9.js';
29
- import 'react-dom';
30
-
31
- function useOverflowingHorizontalListItems({ containerRef, items, itemSelector, moreButtonWidth = 0, }) {
32
- const [containerWidth, setContainerWidth] = useState(0);
33
- const [itemWidths, setItemWidths] = useState([]);
34
- useLayoutEffect(() => {
35
- if (!containerRef.current) {
36
- return;
37
- }
38
- const measureItemSizes = () => {
39
- var _a, _b;
40
- const itemElements = Array.from((_b = (_a = containerRef.current) === null || _a === undefined ? undefined : _a.querySelectorAll(itemSelector)) !== null && _b !== undefined ? _b : []);
41
- setItemWidths(itemElements.map((item) => item.clientWidth));
42
- };
43
- measureItemSizes();
44
- }, [containerRef, itemSelector]);
45
- useLayoutEffect(() => {
46
- const footerMenu = containerRef.current;
47
- if (!footerMenu) {
48
- return;
49
- }
50
- const updateContainerSize = (entries) => {
51
- if (entries.length > 0 && footerMenu) {
52
- setContainerWidth(entries[0].contentRect.width);
53
- }
54
- };
55
- const updateContainerSizeDebounced = debounceFn(updateContainerSize, 100);
56
- const footerMenuResizeObserver = new ResizeObserver(updateContainerSizeDebounced);
57
- footerMenuResizeObserver.observe(footerMenu);
58
- }, [containerRef]);
59
- const isMeasured = containerWidth > 0;
60
- const { visibleItems, hiddenItems } = useMemo(() => {
61
- var _a, _b;
62
- if (!isMeasured) {
63
- return {
64
- visibleItems: items !== null && items !== undefined ? items : [],
65
- hiddenItems: [],
66
- };
67
- }
68
- const itemsCount = itemWidths.length;
69
- let visibleItemsCount = 0;
70
- let remainingContainerWidth = containerWidth;
71
- for (const width of itemWidths) {
72
- remainingContainerWidth -= width;
73
- if (remainingContainerWidth < moreButtonWidth) {
74
- const isMoreThanOneItemLeft = itemsCount !== visibleItemsCount + 1;
75
- const hasNoSpaceForTheLastItem = remainingContainerWidth < 0;
76
- if (isMoreThanOneItemLeft || hasNoSpaceForTheLastItem) {
77
- break;
78
- }
79
- }
80
- visibleItemsCount++;
81
- }
82
- return {
83
- visibleItems: (_a = items === null || items === undefined ? undefined : items.slice(0, visibleItemsCount)) !== null && _a !== undefined ? _a : [],
84
- hiddenItems: (_b = items === null || items === undefined ? undefined : items.slice(visibleItemsCount)) !== null && _b !== undefined ? _b : [],
85
- };
86
- }, [containerWidth, isMeasured, itemWidths, items, moreButtonWidth]);
87
- return { visibleItems, hiddenItems, measured: isMeasured };
88
- }
89
-
90
- var css_248z$2 = ".gn-footer-menu-item{align-items:center;align-self:stretch;display:flex;height:100%;justify-content:center}.gn-footer-menu-item .g-menu__item-content{color:var(--g-color-text-secondary);font-family:var(--g-text-body-font-family);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gn-footer-menu-item[class]:hover{background-color:inherit}.gn-footer-menu-item[class]:hover[href] .g-menu__item-content{color:var(--g-color-text-link-hover)}";
91
- styleInject(css_248z$2);
92
-
93
- const b$2 = block('footer-menu-item');
94
- const MenuItem = (_a) => {
95
- var { text, className } = _a, menuItemProps = __rest(_a, ["text", "className"]);
96
- return (React__default.createElement(Menu.Item, Object.assign({ className: b$2(null, className) }, menuItemProps), text));
97
- };
98
-
99
- const moreItemsPopupProps = {
100
- placement: 'top-start',
101
- };
102
-
103
- var css_248z$1 = ".gn-footer_desktop{align-items:center;background:var(--g-color-base-background);display:flex;gap:var(--g-spacing-6);height:40px;justify-content:flex-end;padding:0 var(--g-spacing-6) 0 var(--g-spacing-3)}.gn-footer_desktop .gn-footer__menu{align-items:center;align-self:stretch;display:flex;flex:1;min-width:0;visibility:hidden}.gn-footer_desktop .gn-footer__menu_measured{visibility:visible}.gn-footer_desktop .gn-footer__list[class]{background-color:inherit;display:flex;height:100%;padding:0}.gn-footer_desktop .gn-footer__more-button svg{color:var(--g-color-text-secondary)}.gn-footer_desktop .gn-footer__right{align-items:center;display:flex;gap:var(--g-spacing-5)}.gn-footer_desktop .gn-footer__copyright{color:var(--g-color-text-secondary);font-family:var(--g-text-body-font-family);font-size:var(--g-text-body-1-font-size);font-weight:var(--g-text-body-font-weight);line-height:var(--g-text-body-1-line-height);white-space:nowrap}.gn-footer_desktop .gn-footer__copyright_small{font-family:var(--g-text-caption-font-family);font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height)}.gn-footer_with-divider{border-top:1px solid var(--g-color-line-generic)}.gn-footer_view_clear{background:transparent;z-index:-1}";
104
- styleInject(css_248z$1);
105
-
106
- const b$1 = block('footer');
107
- const Footer = ({ className, menuItems: providedMenuItems, withDivider, moreButtonTitle, onMoreButtonClick, view = 'normal', logo, logoWrapperClassName, copyright, }) => {
108
- var _a;
109
- const menuContainerRef = useRef(null);
110
- const menuItems = view === 'clear' ? undefined : providedMenuItems;
111
- const { visibleItems, hiddenItems, measured } = useOverflowingHorizontalListItems({
112
- containerRef: menuContainerRef,
113
- items: menuItems,
114
- itemSelector: `.${b$1('menu-item')}`,
115
- moreButtonWidth: 28,
116
- });
117
- const moreButtonProps = useMemo(() => ({
118
- title: moreButtonTitle,
119
- }), [moreButtonTitle]);
120
- const dropdownMenuItems = useMemo(() => hiddenItems.map((item) => (Object.assign(Object.assign({}, item), { action: item.onClick }))), [hiddenItems]);
121
- const shouldRenderLogo = view !== 'clear' && Boolean(logo);
122
- const shouldRenderMenu = ((_a = menuItems === null || menuItems === undefined ? undefined : menuItems.length) !== null && _a !== undefined ? _a : 0) > 0;
123
- return (React__default.createElement("footer", { className: b$1({ desktop: true, 'with-divider': withDivider, view }, className) },
124
- shouldRenderMenu && (React__default.createElement("div", { className: b$1('menu', { measured }), ref: menuContainerRef },
125
- visibleItems.length > 0 && (React__default.createElement(Menu, { className: b$1('list') }, visibleItems.map((item, index) => (React__default.createElement(MenuItem, Object.assign({ key: index }, item, { className: b$1('menu-item', item.className) })))))),
126
- dropdownMenuItems.length > 0 && (React__default.createElement(DropdownMenu, { items: dropdownMenuItems, switcherWrapperClassName: b$1('more-button'), popupProps: moreItemsPopupProps, defaultSwitcherProps: moreButtonProps, onSwitcherClick: onMoreButtonClick })))),
127
- React__default.createElement("div", { className: b$1('right') },
128
- React__default.createElement("small", { className: b$1('copyright', { small: !(menuItems === null || menuItems === undefined ? undefined : menuItems.length) }) }, copyright),
129
- shouldRenderLogo && (React__default.createElement("div", { className: logoWrapperClassName },
130
- React__default.createElement(Logo, Object.assign({}, logo)))))));
131
- };
132
-
133
- var css_248z = ".gn-footer_mobile{background:var(--g-color-base-background);display:flex;flex-direction:column;padding:var(--g-spacing-1) var(--g-spacing-6) var(--g-spacing-3) var(--g-spacing-3)}.gn-footer_mobile .gn-footer_with-divider{border-top:1px solid var(--g-color-line-generic)}.gn-footer_mobile .gn-footer__menu{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--g-spacing-1);visibility:hidden}.gn-footer_mobile .gn-footer__menu_measured{visibility:visible}.gn-footer_mobile .gn-footer__list[class]{background-color:inherit;display:flex;padding:0}.gn-footer_mobile .gn-footer__menu-item{box-sizing:border-box;padding:var(--g-spacing-2) var(--g-spacing-3)}.gn-footer_mobile .gn-footer__bottom-row{align-items:center;display:flex;justify-content:space-between}.gn-footer_mobile .gn-footer__copyright{color:var(--g-color-text-secondary);font-family:var(--g-text-caption-font-family);font-size:var(--g-text-caption-2-font-size);font-weight:var(--g-text-caption-font-weight);line-height:var(--g-text-caption-2-line-height);padding:0 var(--g-spacing-3);white-space:nowrap}.gn-footer__modal .gn-footer__menu-item{color:var(--g-color-text-primary);font-family:var(--g-text-body-font-family);font-size:var(--g-text-body-2-font-size);font-weight:var(--g-text-body-font-weight);height:48px;line-height:var(--g-text-body-2-line-height)}.gn-footer_view_clear{background:transparent;z-index:-1}.gn-footer_view_clear .gn-footer__bottom-row{justify-content:flex-end}";
134
- styleInject(css_248z);
135
-
136
- const b = block('footer');
137
- const modalId = 'footer-more-items';
138
- const MobileFooter = ({ className, menuItems: providedMenuItems, withDivider, moreButtonTitle, onMoreButtonClick, view = 'normal', logo, logoWrapperClassName, copyright, }) => {
139
- const [moreItemsMenuVisible, setMoreItemsMenuVisible] = useState(false);
140
- const menuContainerRef = useRef(null);
141
- const handleOpenMoreItemsMenu = useCallback((event) => {
142
- setMoreItemsMenuVisible(true);
143
- onMoreButtonClick === null || onMoreButtonClick === undefined ? undefined : onMoreButtonClick(event);
144
- }, [onMoreButtonClick]);
145
- const handleCloseMoreItemsMenu = useCallback(() => {
146
- setMoreItemsMenuVisible(false);
147
- }, []);
148
- const menuItems = view === 'clear' ? undefined : providedMenuItems;
149
- const { visibleItems, hiddenItems, measured } = useOverflowingHorizontalListItems({
150
- containerRef: menuContainerRef,
151
- items: menuItems,
152
- itemSelector: `.${b('menu-item')}`,
153
- moreButtonWidth: 28,
154
- });
155
- const renderMenu = (items) => (React__default.createElement(Menu, { className: b('list') }, items.map((item, index) => (React__default.createElement(MenuItem, Object.assign({ key: index }, item, { className: b('menu-item', item.className) }))))));
156
- const shouldRenderLogo = view !== 'clear' && Boolean(logo);
157
- return (React__default.createElement("footer", { className: b({ mobile: true, 'with-divider': withDivider, view }, className) },
158
- React__default.createElement("div", { className: b('menu', { measured }), ref: menuContainerRef },
159
- visibleItems.length > 0 && renderMenu(visibleItems),
160
- hiddenItems.length > 0 && (React__default.createElement(React__default.Fragment, null,
161
- React__default.createElement(Button, { view: "flat-secondary", size: "l", onClick: handleOpenMoreItemsMenu, title: moreButtonTitle },
162
- React__default.createElement(Icon, { data: Ellipsis, size: 16 })),
163
- React__default.createElement(Sheet, { id: modalId, visible: moreItemsMenuVisible, className: b('modal'), contentClassName: b('modal-content'), onClose: handleCloseMoreItemsMenu }, renderMenu(hiddenItems))))),
164
- React__default.createElement("div", { className: b('bottom-row') },
165
- React__default.createElement("small", { className: b('copyright') }, copyright),
166
- shouldRenderLogo && (React__default.createElement("div", { className: logoWrapperClassName },
167
- React__default.createElement(Logo, Object.assign({}, logo)))))));
168
- };
169
-
170
- export { Footer, Logo, MobileFooter };
171
12
  //# sourceMappingURL=index6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index6.js","sources":["../../../src/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.ts","../../../src/components/Footer/MenuItem/MenuItem.tsx","../../../src/components/Footer/desktop/constants/moreItemsPopupProps.ts","../../../src/components/Footer/desktop/Footer.tsx","../../../src/components/Footer/mobile/Footer.tsx"],"sourcesContent":["import {useLayoutEffect, useMemo, useState} from 'react';\nimport type {RefObject} from 'react';\n\nimport debounceFn from 'lodash/debounce';\n\nexport type UseOverflowingContainerListItemsProps<ItemType extends unknown> = {\n containerRef: RefObject<HTMLElement>;\n items?: ItemType[];\n itemSelector: string;\n moreButtonWidth?: number;\n};\n\nexport function useOverflowingHorizontalListItems<ItemType>({\n containerRef,\n items,\n itemSelector,\n moreButtonWidth = 0,\n}: UseOverflowingContainerListItemsProps<ItemType>) {\n const [containerWidth, setContainerWidth] = useState<number>(0);\n const [itemWidths, setItemWidths] = useState<number[]>([]);\n\n useLayoutEffect(() => {\n if (!containerRef.current) {\n return;\n }\n\n const measureItemSizes = () => {\n const itemElements = Array.from(\n containerRef.current?.querySelectorAll(itemSelector) ?? [],\n );\n setItemWidths(itemElements.map((item) => item.clientWidth));\n };\n\n measureItemSizes();\n }, [containerRef, itemSelector]);\n\n useLayoutEffect(() => {\n const footerMenu = containerRef.current;\n if (!footerMenu) {\n return;\n }\n\n const updateContainerSize = (entries: ResizeObserverEntry[]) => {\n if (entries.length > 0 && footerMenu) {\n setContainerWidth(entries[0].contentRect.width);\n }\n };\n\n const updateContainerSizeDebounced = debounceFn(updateContainerSize, 100);\n const footerMenuResizeObserver = new ResizeObserver(updateContainerSizeDebounced);\n\n footerMenuResizeObserver.observe(footerMenu);\n }, [containerRef]);\n\n const isMeasured = containerWidth > 0;\n\n const {visibleItems, hiddenItems} = useMemo(() => {\n if (!isMeasured) {\n return {\n visibleItems: items ?? [],\n hiddenItems: [],\n };\n }\n\n const itemsCount = itemWidths.length;\n let visibleItemsCount = 0;\n let remainingContainerWidth = containerWidth;\n for (const width of itemWidths) {\n remainingContainerWidth -= width;\n if (remainingContainerWidth < moreButtonWidth) {\n const isMoreThanOneItemLeft = itemsCount !== visibleItemsCount + 1;\n const hasNoSpaceForTheLastItem = remainingContainerWidth < 0;\n if (isMoreThanOneItemLeft || hasNoSpaceForTheLastItem) {\n break;\n }\n }\n\n visibleItemsCount++;\n }\n\n return {\n visibleItems: items?.slice(0, visibleItemsCount) ?? [],\n hiddenItems: items?.slice(visibleItemsCount) ?? [],\n };\n }, [containerWidth, isMeasured, itemWidths, items, moreButtonWidth]);\n\n return {visibleItems, hiddenItems, measured: isMeasured};\n}\n","import React from 'react';\nimport type {FC} from 'react';\n\nimport {Menu} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\nimport {FooterMenuItem} from '../types';\n\nimport './MenuItem.scss';\n\nconst b = block('footer-menu-item');\n\nexport type MenuItemProps = FooterMenuItem;\n\nexport const MenuItem: FC<MenuItemProps> = ({text, className, ...menuItemProps}) => {\n return (\n <Menu.Item className={b(null, className)} {...menuItemProps}>\n {text}\n </Menu.Item>\n );\n};\n","import {PopupProps} from '@gravity-ui/uikit';\n\nexport const moreItemsPopupProps: PopupProps = {\n placement: 'top-start',\n};\n","import React, {useMemo, useRef} from 'react';\nimport type {FC} from 'react';\n\nimport {DropdownMenu, Menu} from '@gravity-ui/uikit';\nimport type {DropdownMenuItem} from '@gravity-ui/uikit';\n\nimport {useOverflowingHorizontalListItems} from '../../../hooks/useOverflowingHorizontalListItems';\nimport {Logo} from '../../Logo';\nimport {block} from '../../utils/cn';\nimport {MenuItem} from '../MenuItem/MenuItem';\nimport {FooterProps} from '../types';\n\nimport {moreItemsPopupProps} from './constants/moreItemsPopupProps';\n\nimport './Footer.scss';\n\nconst b = block('footer');\n\nexport const Footer: FC<FooterProps> = ({\n className,\n menuItems: providedMenuItems,\n withDivider,\n moreButtonTitle,\n onMoreButtonClick,\n view = 'normal',\n logo,\n logoWrapperClassName,\n copyright,\n}) => {\n const menuContainerRef = useRef<HTMLDivElement>(null);\n\n const menuItems = view === 'clear' ? undefined : providedMenuItems;\n\n const {visibleItems, hiddenItems, measured} = useOverflowingHorizontalListItems({\n containerRef: menuContainerRef,\n items: menuItems,\n itemSelector: `.${b('menu-item')}`,\n moreButtonWidth: 28,\n });\n\n const moreButtonProps = useMemo(\n () => ({\n title: moreButtonTitle,\n }),\n [moreButtonTitle],\n );\n\n const dropdownMenuItems = useMemo(\n () =>\n hiddenItems.map(\n (item) =>\n ({\n ...item,\n action: item.onClick,\n }) as DropdownMenuItem,\n ),\n [hiddenItems],\n );\n\n const shouldRenderLogo = view !== 'clear' && Boolean(logo);\n const shouldRenderMenu = (menuItems?.length ?? 0) > 0;\n\n return (\n <footer className={b({desktop: true, 'with-divider': withDivider, view}, className)}>\n {shouldRenderMenu && (\n <div className={b('menu', {measured})} ref={menuContainerRef}>\n {visibleItems.length > 0 && (\n <Menu className={b('list')}>\n {visibleItems.map((item, index) => (\n <MenuItem\n key={index}\n {...item}\n className={b('menu-item', item.className)}\n />\n ))}\n </Menu>\n )}\n {dropdownMenuItems.length > 0 && (\n <DropdownMenu\n items={dropdownMenuItems}\n switcherWrapperClassName={b('more-button')}\n popupProps={moreItemsPopupProps}\n defaultSwitcherProps={moreButtonProps}\n onSwitcherClick={onMoreButtonClick}\n />\n )}\n </div>\n )}\n <div className={b('right')}>\n <small className={b('copyright', {small: !menuItems?.length})}>{copyright}</small>\n {shouldRenderLogo && (\n <div className={logoWrapperClassName}>\n <Logo {...logo!} />\n </div>\n )}\n </div>\n </footer>\n );\n};\n","import React, {useCallback, useRef, useState} from 'react';\nimport type {FC} from 'react';\n\nimport {Ellipsis} from '@gravity-ui/icons';\nimport {Button, Icon, Menu, Sheet} from '@gravity-ui/uikit';\n\nimport {useOverflowingHorizontalListItems} from '../../../hooks/useOverflowingHorizontalListItems';\nimport {Logo} from '../../Logo';\nimport {block} from '../../utils/cn';\nimport {MenuItem} from '../MenuItem/MenuItem';\nimport {FooterMenuItem, FooterProps} from '../types';\n\nimport './Footer.scss';\n\nconst b = block('footer');\n\nconst modalId = 'footer-more-items';\n\nexport const MobileFooter: FC<FooterProps> = ({\n className,\n menuItems: providedMenuItems,\n withDivider,\n moreButtonTitle,\n onMoreButtonClick,\n view = 'normal',\n logo,\n logoWrapperClassName,\n copyright,\n}) => {\n const [moreItemsMenuVisible, setMoreItemsMenuVisible] = useState(false);\n const menuContainerRef = useRef<HTMLDivElement>(null);\n\n const handleOpenMoreItemsMenu = useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n setMoreItemsMenuVisible(true);\n onMoreButtonClick?.(event);\n },\n [onMoreButtonClick],\n );\n\n const handleCloseMoreItemsMenu = useCallback(() => {\n setMoreItemsMenuVisible(false);\n }, []);\n\n const menuItems = view === 'clear' ? undefined : providedMenuItems;\n\n const {visibleItems, hiddenItems, measured} = useOverflowingHorizontalListItems({\n containerRef: menuContainerRef,\n items: menuItems,\n itemSelector: `.${b('menu-item')}`,\n moreButtonWidth: 28,\n });\n\n const renderMenu = (items: FooterMenuItem[]) => (\n <Menu className={b('list')}>\n {items.map((item, index) => (\n <MenuItem key={index} {...item} className={b('menu-item', item.className)} />\n ))}\n </Menu>\n );\n\n const shouldRenderLogo = view !== 'clear' && Boolean(logo);\n\n return (\n <footer className={b({mobile: true, 'with-divider': withDivider, view}, className)}>\n <div className={b('menu', {measured})} ref={menuContainerRef}>\n {visibleItems.length > 0 && renderMenu(visibleItems)}\n {hiddenItems.length > 0 && (\n <>\n <Button\n view=\"flat-secondary\"\n size=\"l\"\n onClick={handleOpenMoreItemsMenu}\n title={moreButtonTitle}\n >\n <Icon data={Ellipsis} size={16} />\n </Button>\n <Sheet\n id={modalId}\n visible={moreItemsMenuVisible}\n className={b('modal')}\n contentClassName={b('modal-content')}\n onClose={handleCloseMoreItemsMenu}\n >\n {renderMenu(hiddenItems)}\n </Sheet>\n </>\n )}\n </div>\n <div className={b('bottom-row')}>\n <small className={b('copyright')}>{copyright}</small>\n {shouldRenderLogo && (\n <div className={logoWrapperClassName}>\n <Logo {...logo!} />\n </div>\n )}\n </div>\n </footer>\n );\n};\n"],"names":["b","React"],"mappings":"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"}
1
+ {"version":3,"file":"index6.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  function styleInject(css, ref) {
2
- if ( ref === undefined ) ref = {};
2
+ if ( ref === void 0 ) ref = {};
3
3
  var insertAt = ref.insertAt;
4
4
 
5
5
  if (!css || typeof document === 'undefined') { return; }
@@ -26,4 +26,4 @@ function styleInject(css, ref) {
26
26
  }
27
27
 
28
28
  export { styleInject as s };
29
- //# sourceMappingURL=style-inject.es-Bff-fD1R.js.map
29
+ //# sourceMappingURL=style-inject.es-1f59c1d0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-inject.es-1f59c1d0.js","sources":["../../node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":[],"mappings":"AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;AACjC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;AAC9B;AACA,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO,EAAE;AAC1D;AACA,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC9C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AAC1B;AACA,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9B,KAAK;AACL,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5B,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AACpD,GAAG;AACH;;;;"}