@gravity-ui/navigation 3.0.0-beta.2 → 3.0.0-beta.3

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 (772) hide show
  1. package/build/cjs/{_commonjsHelpers-BJu3ubxk.js → _virtual/_commonjsHelpers.js} +1 -1
  2. package/build/cjs/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/build/cjs/_virtual/debounce.js +10 -0
  4. package/build/cjs/_virtual/debounce.js.map +1 -0
  5. package/build/cjs/_virtual/identity.js +10 -0
  6. package/build/cjs/_virtual/identity.js.map +1 -0
  7. package/build/cjs/_virtual/index.js +10 -0
  8. package/build/cjs/_virtual/index.js.map +1 -0
  9. package/build/cjs/_virtual/index2.js +6 -0
  10. package/build/{esm → cjs/_virtual}/index2.js.map +1 -1
  11. package/build/cjs/_virtual/index3.js +6 -0
  12. package/build/{esm → cjs/_virtual}/index3.js.map +1 -1
  13. package/build/cjs/_virtual/react-is.development.js +6 -0
  14. package/build/cjs/_virtual/react-is.development.js.map +1 -0
  15. package/build/cjs/_virtual/react-is.production.min.js +6 -0
  16. package/build/cjs/_virtual/react-is.production.min.js.map +1 -0
  17. package/build/cjs/assets/icons/control-menu-button.svg.js +39 -0
  18. package/build/cjs/assets/icons/control-menu-button.svg.js.map +1 -0
  19. package/build/cjs/{divider-collapsed-BLSp99lJ.js → assets/icons/divider-collapsed.svg.js} +2 -2
  20. package/build/cjs/assets/icons/divider-collapsed.svg.js.map +1 -0
  21. package/build/cjs/components/ActionBar/ActionBar.js +24 -0
  22. package/build/cjs/components/ActionBar/ActionBar.js.map +1 -0
  23. package/build/cjs/components/ActionBar/ActionBar.scss.js +9 -0
  24. package/build/cjs/components/ActionBar/ActionBar.scss.js.map +1 -0
  25. package/build/cjs/components/ActionBar/Group/ActionBarGroup.js +14 -0
  26. package/build/cjs/components/ActionBar/Group/ActionBarGroup.js.map +1 -0
  27. package/build/cjs/components/ActionBar/Group/ActionBarGroup.scss.js +9 -0
  28. package/build/cjs/components/ActionBar/Group/ActionBarGroup.scss.js.map +1 -0
  29. package/build/cjs/components/ActionBar/Item/ActionBarItem.js +14 -0
  30. package/build/cjs/components/ActionBar/Item/ActionBarItem.js.map +1 -0
  31. package/build/cjs/components/ActionBar/Item/ActionBarItem.scss.js +9 -0
  32. package/build/cjs/components/ActionBar/Item/ActionBarItem.scss.js.map +1 -0
  33. package/build/cjs/components/ActionBar/Section/ActionBarSection.js +14 -0
  34. package/build/cjs/components/ActionBar/Section/ActionBarSection.js.map +1 -0
  35. package/build/cjs/components/ActionBar/Section/ActionBarSection.scss.js +9 -0
  36. package/build/cjs/components/ActionBar/Section/ActionBarSection.scss.js.map +1 -0
  37. package/build/cjs/components/ActionBar/Separator/ActionBarSeparator.js +14 -0
  38. package/build/cjs/components/ActionBar/Separator/ActionBarSeparator.js.map +1 -0
  39. package/build/cjs/components/ActionBar/Separator/ActionBarSeparator.scss.js +9 -0
  40. package/build/cjs/components/ActionBar/Separator/ActionBarSeparator.scss.js.map +1 -0
  41. package/build/cjs/components/ActionBar/index.js +8 -0
  42. package/build/cjs/components/ActionBar/index.js.map +1 -0
  43. package/build/cjs/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +32 -0
  44. package/build/cjs/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  45. package/build/cjs/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.scss.js +9 -0
  46. package/build/cjs/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.scss.js.map +1 -0
  47. package/build/cjs/components/AllPagesPanel/AllPagesPanel.js +101 -0
  48. package/build/cjs/components/AllPagesPanel/AllPagesPanel.js.map +1 -0
  49. package/build/cjs/components/AllPagesPanel/AllPagesPanel.scss.js +9 -0
  50. package/build/cjs/components/AllPagesPanel/AllPagesPanel.scss.js.map +1 -0
  51. package/build/cjs/components/AllPagesPanel/constants.js +18 -0
  52. package/build/cjs/components/AllPagesPanel/constants.js.map +1 -0
  53. package/build/cjs/components/AllPagesPanel/i18n/en.json.js +12 -0
  54. package/build/cjs/components/AllPagesPanel/i18n/en.json.js.map +1 -0
  55. package/build/cjs/components/AllPagesPanel/i18n/index.js +12 -0
  56. package/build/cjs/components/AllPagesPanel/i18n/index.js.map +1 -0
  57. package/build/cjs/components/AllPagesPanel/i18n/ru.json.js +12 -0
  58. package/build/cjs/components/AllPagesPanel/i18n/ru.json.js.map +1 -0
  59. package/build/cjs/components/AllPagesPanel/useGroupedMenuItems.js +33 -0
  60. package/build/cjs/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -0
  61. package/build/cjs/components/AllPagesPanel/useVisibleMenuItems.js +29 -0
  62. package/build/cjs/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  63. package/build/cjs/components/AsideHeader/AsideHeader.js +17 -0
  64. package/build/cjs/components/AsideHeader/AsideHeader.js.map +1 -0
  65. package/build/cjs/{PageLayout.js → components/AsideHeader/AsideHeader.scss.js} +4 -29
  66. package/build/cjs/components/AsideHeader/AsideHeader.scss.js.map +1 -0
  67. package/build/cjs/components/AsideHeader/AsideHeaderContext.js.map +1 -0
  68. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js +25 -0
  69. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -0
  70. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.scss.js +9 -0
  71. package/build/cjs/components/AsideHeader/components/CollapseButton/CollapseButton.scss.js.map +1 -0
  72. package/build/cjs/components/AsideHeader/components/FirstPanel.js +42 -0
  73. package/build/cjs/components/AsideHeader/components/FirstPanel.js.map +1 -0
  74. package/build/cjs/components/AsideHeader/components/Header.js +28 -0
  75. package/build/cjs/components/AsideHeader/components/Header.js.map +1 -0
  76. package/build/cjs/{AsideFallback.js → components/AsideHeader/components/PageLayout/AsideFallback.js} +5 -7
  77. package/build/cjs/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -0
  78. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js +29 -0
  79. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -0
  80. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js +17 -0
  81. package/build/cjs/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -0
  82. package/build/cjs/components/AsideHeader/components/Panels.js +14 -0
  83. package/build/cjs/components/AsideHeader/components/Panels.js.map +1 -0
  84. package/build/cjs/components/AsideHeader/i18n/en.json.js +18 -0
  85. package/build/cjs/components/AsideHeader/i18n/en.json.js.map +1 -0
  86. package/build/cjs/components/AsideHeader/i18n/index.js +12 -0
  87. package/build/cjs/components/AsideHeader/i18n/index.js.map +1 -0
  88. package/build/cjs/components/AsideHeader/i18n/ru.json.js +18 -0
  89. package/build/cjs/components/AsideHeader/i18n/ru.json.js.map +1 -0
  90. package/build/cjs/components/AsideHeader/types.js +7 -0
  91. package/build/cjs/components/AsideHeader/types.js.map +1 -0
  92. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js +62 -0
  93. package/build/cjs/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -0
  94. package/build/cjs/components/AsideHeader/utils.js +8 -0
  95. package/build/cjs/components/AsideHeader/utils.js.map +1 -0
  96. package/build/cjs/components/CompositeBar/CompositeBar.js +154 -0
  97. package/build/cjs/components/CompositeBar/CompositeBar.js.map +1 -0
  98. package/build/cjs/components/CompositeBar/CompositeBar.scss.js +9 -0
  99. package/build/cjs/components/CompositeBar/CompositeBar.scss.js.map +1 -0
  100. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.js +53 -0
  101. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -0
  102. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.scss.js +9 -0
  103. package/build/cjs/components/CompositeBar/HighlightedItem/HighlightedItem.scss.js.map +1 -0
  104. package/build/cjs/components/CompositeBar/Item/Item.js +178 -0
  105. package/build/cjs/components/CompositeBar/Item/Item.js.map +1 -0
  106. package/build/cjs/components/CompositeBar/Item/Item.scss.js +9 -0
  107. package/build/cjs/components/CompositeBar/Item/Item.scss.js.map +1 -0
  108. package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +32 -0
  109. package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +1 -0
  110. package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltip.scss.js +9 -0
  111. package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltip.scss.js.map +1 -0
  112. package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +29 -0
  113. package/build/cjs/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +1 -0
  114. package/build/cjs/components/CompositeBar/constants.js +12 -0
  115. package/build/cjs/components/CompositeBar/constants.js.map +1 -0
  116. package/build/cjs/components/CompositeBar/utils.js +107 -0
  117. package/build/cjs/components/CompositeBar/utils.js.map +1 -0
  118. package/build/cjs/{Content-Dy2XkiRi.js → components/Content/Content.js} +1 -1
  119. package/build/cjs/components/Content/Content.js.map +1 -0
  120. package/build/cjs/components/Drawer/Drawer.js +83 -0
  121. package/build/cjs/components/Drawer/Drawer.js.map +1 -0
  122. package/build/cjs/components/Drawer/Drawer.scss.js +9 -0
  123. package/build/cjs/components/Drawer/Drawer.scss.js.map +1 -0
  124. package/build/cjs/components/Drawer/utils.js +109 -0
  125. package/build/cjs/components/Drawer/utils.js.map +1 -0
  126. package/build/cjs/components/Footer/MenuItem/MenuItem.js +16 -0
  127. package/build/cjs/components/Footer/MenuItem/MenuItem.js.map +1 -0
  128. package/build/cjs/components/Footer/MenuItem/MenuItem.scss.js +9 -0
  129. package/build/cjs/components/Footer/MenuItem/MenuItem.scss.js.map +1 -0
  130. package/build/cjs/components/Footer/desktop/Footer.js +40 -0
  131. package/build/cjs/components/Footer/desktop/Footer.js.map +1 -0
  132. package/build/cjs/components/Footer/desktop/Footer.scss.js +9 -0
  133. package/build/cjs/components/Footer/desktop/Footer.scss.js.map +1 -0
  134. package/build/cjs/components/Footer/desktop/constants/moreItemsPopupProps.js +8 -0
  135. package/build/cjs/components/Footer/desktop/constants/moreItemsPopupProps.js.map +1 -0
  136. package/build/cjs/components/Footer/mobile/Footer.js +47 -0
  137. package/build/cjs/components/Footer/mobile/Footer.js.map +1 -0
  138. package/build/cjs/components/Footer/mobile/Footer.scss.js +9 -0
  139. package/build/cjs/components/Footer/mobile/Footer.scss.js.map +1 -0
  140. package/build/cjs/components/FooterItem/FooterItem.js +17 -0
  141. package/build/cjs/components/FooterItem/FooterItem.js.map +1 -0
  142. package/build/cjs/components/FooterItem/FooterItem.scss.js +9 -0
  143. package/build/cjs/components/FooterItem/FooterItem.scss.js.map +1 -0
  144. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js +35 -0
  145. package/build/cjs/components/HotkeysPanel/HotkeysPanel.js.map +1 -0
  146. package/build/cjs/components/HotkeysPanel/HotkeysPanel.scss.js +9 -0
  147. package/build/cjs/components/HotkeysPanel/HotkeysPanel.scss.js.map +1 -0
  148. package/build/cjs/components/HotkeysPanel/index.js +8 -0
  149. package/build/cjs/components/HotkeysPanel/index.js.map +1 -0
  150. package/build/cjs/components/HotkeysPanel/utils/filterHotkeys.js +19 -0
  151. package/build/cjs/components/HotkeysPanel/utils/filterHotkeys.js.map +1 -0
  152. package/build/cjs/components/HotkeysPanel/utils/flattenHotkeyGroups.js +16 -0
  153. package/build/cjs/components/HotkeysPanel/utils/flattenHotkeyGroups.js.map +1 -0
  154. package/build/cjs/components/Logo/Logo.js +33 -0
  155. package/build/cjs/components/Logo/Logo.js.map +1 -0
  156. package/build/cjs/components/Logo/Logo.scss.js +9 -0
  157. package/build/cjs/components/Logo/Logo.scss.js.map +1 -0
  158. package/build/cjs/components/MobileHeader/Burger/Burger.js +14 -0
  159. package/build/cjs/components/MobileHeader/Burger/Burger.js.map +1 -0
  160. package/build/cjs/components/MobileHeader/Burger/Burger.scss.js +9 -0
  161. package/build/cjs/components/MobileHeader/Burger/Burger.scss.js.map +1 -0
  162. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.js +39 -0
  163. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.js.map +1 -0
  164. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.scss.js +9 -0
  165. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.scss.js.map +1 -0
  166. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerMenu.js +20 -0
  167. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerMenu.js.map +1 -0
  168. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerMenu.scss.js +9 -0
  169. package/build/cjs/components/MobileHeader/BurgerMenu/BurgerMenu.scss.js.map +1 -0
  170. package/build/cjs/components/MobileHeader/FooterItem/FooterItem.js +27 -0
  171. package/build/cjs/components/MobileHeader/FooterItem/FooterItem.js.map +1 -0
  172. package/build/cjs/components/MobileHeader/FooterItem/FooterItem.scss.js +9 -0
  173. package/build/cjs/components/MobileHeader/FooterItem/FooterItem.scss.js.map +1 -0
  174. package/build/cjs/components/MobileHeader/MobileHeader.js +148 -0
  175. package/build/cjs/components/MobileHeader/MobileHeader.js.map +1 -0
  176. package/build/cjs/components/MobileHeader/MobileHeader.scss.js +9 -0
  177. package/build/cjs/components/MobileHeader/MobileHeader.scss.js.map +1 -0
  178. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js +28 -0
  179. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -0
  180. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.scss.js +9 -0
  181. package/build/cjs/components/MobileHeader/OverlapPanel/OverlapPanel.scss.js.map +1 -0
  182. package/build/cjs/components/MobileHeader/constants.js +22 -0
  183. package/build/cjs/components/MobileHeader/constants.js.map +1 -0
  184. package/build/cjs/components/MobileHeader/i18n/en.json.js +18 -0
  185. package/build/cjs/components/MobileHeader/i18n/en.json.js.map +1 -0
  186. package/build/cjs/components/MobileHeader/i18n/index.js +12 -0
  187. package/build/cjs/components/MobileHeader/i18n/index.js.map +1 -0
  188. package/build/cjs/components/MobileHeader/i18n/ru.json.js +18 -0
  189. package/build/cjs/components/MobileHeader/i18n/ru.json.js.map +1 -0
  190. package/build/cjs/components/MobileHeader/index.js +14 -0
  191. package/build/cjs/components/MobileHeader/index.js.map +1 -0
  192. package/build/cjs/components/MobileHeader/utils.js +24 -0
  193. package/build/cjs/components/MobileHeader/utils.js.map +1 -0
  194. package/build/cjs/components/MobileLogo/MobileLogo.js +32 -0
  195. package/build/cjs/components/MobileLogo/MobileLogo.js.map +1 -0
  196. package/build/cjs/components/MobileLogo/MobileLogo.scss.js +9 -0
  197. package/build/cjs/components/MobileLogo/MobileLogo.scss.js.map +1 -0
  198. package/build/cjs/components/Settings/Selection/context.js +26 -0
  199. package/build/cjs/components/Settings/Selection/context.js.map +1 -0
  200. package/build/cjs/components/Settings/Selection/utils.js +22 -0
  201. package/build/cjs/components/Settings/Selection/utils.js.map +1 -0
  202. package/build/cjs/components/Settings/Settings.js +192 -0
  203. package/build/cjs/components/Settings/Settings.js.map +1 -0
  204. package/build/cjs/components/Settings/Settings.scss.js +9 -0
  205. package/build/cjs/components/Settings/Settings.scss.js.map +1 -0
  206. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js +81 -0
  207. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -0
  208. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.scss.js +9 -0
  209. package/build/cjs/components/Settings/SettingsMenu/SettingsMenu.scss.js.map +1 -0
  210. package/build/cjs/components/Settings/SettingsMenuMobile/SettingsMenuMobile.js +37 -0
  211. package/build/cjs/components/Settings/SettingsMenuMobile/SettingsMenuMobile.js.map +1 -0
  212. package/build/cjs/components/Settings/SettingsMenuMobile/SettingsMenuMobile.scss.js +9 -0
  213. package/build/cjs/components/Settings/SettingsMenuMobile/SettingsMenuMobile.scss.js.map +1 -0
  214. package/build/cjs/components/Settings/SettingsSearch/SettingsSearch.js +25 -0
  215. package/build/cjs/components/Settings/SettingsSearch/SettingsSearch.js.map +1 -0
  216. package/build/cjs/components/Settings/collect-settings.js +147 -0
  217. package/build/cjs/components/Settings/collect-settings.js.map +1 -0
  218. package/build/cjs/components/Settings/helpers.js +57 -0
  219. package/build/cjs/components/Settings/helpers.js.map +1 -0
  220. package/build/cjs/components/Settings/i18n/en.json.js +17 -0
  221. package/build/cjs/components/Settings/i18n/en.json.js.map +1 -0
  222. package/build/cjs/components/Settings/i18n/index.js +12 -0
  223. package/build/cjs/components/Settings/i18n/index.js.map +1 -0
  224. package/build/cjs/components/Settings/i18n/ru.json.js +17 -0
  225. package/build/cjs/components/Settings/i18n/ru.json.js.map +1 -0
  226. package/build/cjs/components/Settings/index.js +11 -0
  227. package/build/cjs/components/Settings/index.js.map +1 -0
  228. package/build/cjs/components/Title/Title.js +20 -0
  229. package/build/cjs/components/Title/Title.js.map +1 -0
  230. package/build/cjs/components/Title/Title.scss.js +9 -0
  231. package/build/cjs/components/Title/Title.scss.js.map +1 -0
  232. package/build/cjs/components/Title/i18n/en.json.js +12 -0
  233. package/build/cjs/components/Title/i18n/en.json.js.map +1 -0
  234. package/build/cjs/components/Title/i18n/index.js +12 -0
  235. package/build/cjs/components/Title/i18n/index.js.map +1 -0
  236. package/build/cjs/components/Title/i18n/ru.json.js +12 -0
  237. package/build/cjs/components/Title/i18n/ru.json.js.map +1 -0
  238. package/build/cjs/components/Title/index.js +8 -0
  239. package/build/cjs/components/Title/index.js.map +1 -0
  240. package/build/cjs/components/TopAlert/TopAlert.js +33 -0
  241. package/build/cjs/components/TopAlert/TopAlert.js.map +1 -0
  242. package/build/cjs/components/TopAlert/TopAlert.scss.js +9 -0
  243. package/build/cjs/components/TopAlert/TopAlert.scss.js.map +1 -0
  244. package/build/cjs/components/TopAlert/index.js +8 -0
  245. package/build/cjs/components/TopAlert/index.js.map +1 -0
  246. package/build/cjs/components/TopAlert/useTopAlertHeight.js +37 -0
  247. package/build/cjs/components/TopAlert/useTopAlertHeight.js.map +1 -0
  248. package/build/cjs/{constants-B0DLAQY9.js → components/constants.js} +1 -1
  249. package/build/cjs/components/constants.js.map +1 -0
  250. package/build/cjs/{cn-DSlPZbcs.js → components/utils/cn.js} +1 -1
  251. package/build/cjs/components/utils/cn.js.map +1 -0
  252. package/build/cjs/hooks/useForwardRef.js +21 -0
  253. package/build/cjs/hooks/useForwardRef.js.map +1 -0
  254. package/build/cjs/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.js +66 -0
  255. package/build/cjs/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.js.map +1 -0
  256. package/build/cjs/index.js +43 -6
  257. package/build/cjs/index.js.map +1 -1
  258. package/build/cjs/node_modules/@babel/runtime/helpers/esm/extends.js +14 -0
  259. package/build/cjs/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  260. package/build/cjs/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +10 -0
  261. package/build/cjs/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -0
  262. package/build/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +14 -0
  263. package/build/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  264. package/build/cjs/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +10 -0
  265. package/build/cjs/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
  266. package/build/cjs/node_modules/dom-helpers/esm/addClass.js +17 -0
  267. package/build/cjs/node_modules/dom-helpers/esm/addClass.js.map +1 -0
  268. package/build/cjs/node_modules/dom-helpers/esm/hasClass.js +15 -0
  269. package/build/cjs/node_modules/dom-helpers/esm/hasClass.js.map +1 -0
  270. package/build/cjs/node_modules/dom-helpers/esm/removeClass.js +25 -0
  271. package/build/cjs/node_modules/dom-helpers/esm/removeClass.js.map +1 -0
  272. package/build/cjs/node_modules/lodash/_Symbol.js +21 -0
  273. package/build/cjs/node_modules/lodash/_Symbol.js.map +1 -0
  274. package/build/cjs/node_modules/lodash/_baseGetTag.js +45 -0
  275. package/build/cjs/node_modules/lodash/_baseGetTag.js.map +1 -0
  276. package/build/cjs/node_modules/lodash/_baseTrim.js +34 -0
  277. package/build/cjs/node_modules/lodash/_baseTrim.js.map +1 -0
  278. package/build/cjs/node_modules/lodash/_freeGlobal.js +20 -0
  279. package/build/cjs/node_modules/lodash/_freeGlobal.js.map +1 -0
  280. package/build/cjs/node_modules/lodash/_getRawTag.js +61 -0
  281. package/build/cjs/node_modules/lodash/_getRawTag.js.map +1 -0
  282. package/build/cjs/node_modules/lodash/_objectToString.js +36 -0
  283. package/build/cjs/node_modules/lodash/_objectToString.js.map +1 -0
  284. package/build/cjs/node_modules/lodash/_root.js +24 -0
  285. package/build/cjs/node_modules/lodash/_root.js.map +1 -0
  286. package/build/cjs/node_modules/lodash/_trimmedEndIndex.js +33 -0
  287. package/build/cjs/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
  288. package/build/cjs/node_modules/lodash/debounce.js +208 -0
  289. package/build/cjs/node_modules/lodash/debounce.js.map +1 -0
  290. package/build/cjs/node_modules/lodash/identity.js +35 -0
  291. package/build/cjs/node_modules/lodash/identity.js.map +1 -0
  292. package/build/cjs/node_modules/lodash/isObject.js +45 -0
  293. package/build/cjs/node_modules/lodash/isObject.js.map +1 -0
  294. package/build/cjs/node_modules/lodash/isObjectLike.js +43 -0
  295. package/build/cjs/node_modules/lodash/isObjectLike.js.map +1 -0
  296. package/build/cjs/node_modules/lodash/isSymbol.js +45 -0
  297. package/build/cjs/node_modules/lodash/isSymbol.js.map +1 -0
  298. package/build/cjs/node_modules/lodash/now.js +38 -0
  299. package/build/cjs/node_modules/lodash/now.js.map +1 -0
  300. package/build/cjs/node_modules/lodash/toNumber.js +81 -0
  301. package/build/cjs/node_modules/lodash/toNumber.js.map +1 -0
  302. package/build/cjs/node_modules/object-assign/index.js +102 -0
  303. package/build/cjs/node_modules/object-assign/index.js.map +1 -0
  304. package/build/cjs/node_modules/prop-types/checkPropTypes.js +118 -0
  305. package/build/cjs/node_modules/prop-types/checkPropTypes.js.map +1 -0
  306. package/build/cjs/node_modules/prop-types/factoryWithThrowingShims.js +77 -0
  307. package/build/cjs/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
  308. package/build/cjs/node_modules/prop-types/factoryWithTypeCheckers.js +628 -0
  309. package/build/cjs/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
  310. package/build/cjs/node_modules/prop-types/index.js +36 -0
  311. package/build/cjs/node_modules/prop-types/index.js.map +1 -0
  312. package/build/cjs/node_modules/prop-types/lib/ReactPropTypesSecret.js +24 -0
  313. package/build/cjs/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
  314. package/build/cjs/node_modules/prop-types/lib/has.js +14 -0
  315. package/build/cjs/node_modules/prop-types/lib/has.js.map +1 -0
  316. package/build/cjs/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +193 -0
  317. package/build/cjs/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
  318. package/build/cjs/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +29 -0
  319. package/build/cjs/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
  320. package/build/cjs/node_modules/prop-types/node_modules/react-is/index.js +22 -0
  321. package/build/cjs/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
  322. package/build/cjs/node_modules/react-transition-group/esm/CSSTransition.js +416 -0
  323. package/build/cjs/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -0
  324. package/build/cjs/node_modules/react-transition-group/esm/Transition.js +637 -0
  325. package/build/cjs/node_modules/react-transition-group/esm/Transition.js.map +1 -0
  326. package/build/cjs/node_modules/react-transition-group/esm/TransitionGroupContext.js +8 -0
  327. package/build/cjs/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -0
  328. package/build/cjs/node_modules/react-transition-group/esm/config.js +8 -0
  329. package/build/cjs/node_modules/react-transition-group/esm/config.js.map +1 -0
  330. package/build/cjs/node_modules/react-transition-group/esm/utils/PropTypes.js +25 -0
  331. package/build/cjs/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -0
  332. package/build/cjs/node_modules/react-transition-group/esm/utils/reflow.js +8 -0
  333. package/build/cjs/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -0
  334. package/build/cjs/node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js +385 -0
  335. package/build/cjs/node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js.map +1 -0
  336. package/build/cjs/{style-inject.es-CsU6UJbw.js → node_modules/style-inject/dist/style-inject.es.js} +2 -2
  337. package/build/cjs/{style-inject.es-CsU6UJbw.js.map → node_modules/style-inject/dist/style-inject.es.js.map} +1 -1
  338. package/build/cjs/{tslib.es6-D25eJ2i9.js → node_modules/tslib/tslib.es6.js} +1 -1
  339. package/build/cjs/node_modules/tslib/tslib.es6.js.map +1 -0
  340. package/build/esm/{_commonjsHelpers-BFTU3MAI.js → _virtual/_commonjsHelpers.js} +2 -2
  341. package/build/esm/_virtual/_commonjsHelpers.js.map +1 -0
  342. package/build/esm/_virtual/debounce.js +8 -0
  343. package/build/esm/_virtual/debounce.js.map +1 -0
  344. package/build/esm/_virtual/identity.js +8 -0
  345. package/build/esm/_virtual/identity.js.map +1 -0
  346. package/build/esm/_virtual/index.js +8 -0
  347. package/build/esm/_virtual/index.js.map +1 -0
  348. package/build/esm/_virtual/index2.js +4 -0
  349. package/build/{cjs → esm/_virtual}/index2.js.map +1 -1
  350. package/build/esm/_virtual/index3.js +4 -0
  351. package/build/{cjs → esm/_virtual}/index3.js.map +1 -1
  352. package/build/esm/_virtual/react-is.development.js +4 -0
  353. package/build/esm/_virtual/react-is.development.js.map +1 -0
  354. package/build/esm/_virtual/react-is.production.min.js +4 -0
  355. package/build/esm/_virtual/react-is.production.min.js.map +1 -0
  356. package/build/esm/assets/icons/control-menu-button.svg.js +18 -0
  357. package/build/esm/assets/icons/control-menu-button.svg.js.map +1 -0
  358. package/build/esm/{divider-collapsed-BgKmR8h9.js → assets/icons/divider-collapsed.svg.js} +2 -2
  359. package/build/esm/assets/icons/divider-collapsed.svg.js.map +1 -0
  360. package/build/esm/components/ActionBar/ActionBar.js +22 -0
  361. package/build/esm/components/ActionBar/ActionBar.js.map +1 -0
  362. package/build/esm/components/ActionBar/ActionBar.scss.js +7 -0
  363. package/build/esm/components/ActionBar/ActionBar.scss.js.map +1 -0
  364. package/build/esm/components/ActionBar/Group/ActionBarGroup.js +12 -0
  365. package/build/esm/components/ActionBar/Group/ActionBarGroup.js.map +1 -0
  366. package/build/esm/components/ActionBar/Group/ActionBarGroup.scss.js +7 -0
  367. package/build/esm/components/ActionBar/Group/ActionBarGroup.scss.js.map +1 -0
  368. package/build/esm/components/ActionBar/Item/ActionBarItem.js +12 -0
  369. package/build/esm/components/ActionBar/Item/ActionBarItem.js.map +1 -0
  370. package/build/esm/components/ActionBar/Item/ActionBarItem.scss.js +7 -0
  371. package/build/esm/components/ActionBar/Item/ActionBarItem.scss.js.map +1 -0
  372. package/build/esm/components/ActionBar/Section/ActionBarSection.js +12 -0
  373. package/build/esm/components/ActionBar/Section/ActionBarSection.js.map +1 -0
  374. package/build/esm/components/ActionBar/Section/ActionBarSection.scss.js +7 -0
  375. package/build/esm/components/ActionBar/Section/ActionBarSection.scss.js.map +1 -0
  376. package/build/esm/components/ActionBar/Separator/ActionBarSeparator.js +12 -0
  377. package/build/esm/components/ActionBar/Separator/ActionBarSeparator.js.map +1 -0
  378. package/build/esm/components/ActionBar/Separator/ActionBarSeparator.scss.js +7 -0
  379. package/build/esm/components/ActionBar/Separator/ActionBarSeparator.scss.js.map +1 -0
  380. package/build/esm/components/ActionBar/index.js +2 -0
  381. package/build/esm/components/ActionBar/index.js.map +1 -0
  382. package/build/esm/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js +30 -0
  383. package/build/esm/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.js.map +1 -0
  384. package/build/esm/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.scss.js +7 -0
  385. package/build/esm/components/AllPagesPanel/AllPagesListItem/AllPagesListItem.scss.js.map +1 -0
  386. package/build/esm/components/AllPagesPanel/AllPagesPanel.js +99 -0
  387. package/build/esm/components/AllPagesPanel/AllPagesPanel.js.map +1 -0
  388. package/build/esm/components/AllPagesPanel/AllPagesPanel.scss.js +7 -0
  389. package/build/esm/components/AllPagesPanel/AllPagesPanel.scss.js.map +1 -0
  390. package/build/esm/components/AllPagesPanel/constants.js +15 -0
  391. package/build/esm/components/AllPagesPanel/constants.js.map +1 -0
  392. package/build/esm/components/AllPagesPanel/i18n/en.json.js +10 -0
  393. package/build/esm/components/AllPagesPanel/i18n/en.json.js.map +1 -0
  394. package/build/esm/components/AllPagesPanel/i18n/index.js +10 -0
  395. package/build/esm/components/AllPagesPanel/i18n/index.js.map +1 -0
  396. package/build/esm/components/AllPagesPanel/i18n/ru.json.js +10 -0
  397. package/build/esm/components/AllPagesPanel/i18n/ru.json.js.map +1 -0
  398. package/build/esm/components/AllPagesPanel/useGroupedMenuItems.js +31 -0
  399. package/build/esm/components/AllPagesPanel/useGroupedMenuItems.js.map +1 -0
  400. package/build/esm/components/AllPagesPanel/useVisibleMenuItems.js +27 -0
  401. package/build/esm/components/AllPagesPanel/useVisibleMenuItems.js.map +1 -0
  402. package/build/esm/components/AsideHeader/AsideHeader.js +15 -0
  403. package/build/esm/components/AsideHeader/AsideHeader.js.map +1 -0
  404. package/build/esm/{PageLayout.js → components/AsideHeader/AsideHeader.scss.js} +3 -28
  405. package/build/esm/components/AsideHeader/AsideHeader.scss.js.map +1 -0
  406. package/build/esm/components/AsideHeader/AsideHeaderContext.js.map +1 -0
  407. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js +23 -0
  408. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.js.map +1 -0
  409. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.scss.js +7 -0
  410. package/build/esm/components/AsideHeader/components/CollapseButton/CollapseButton.scss.js.map +1 -0
  411. package/build/esm/components/AsideHeader/components/FirstPanel.js +40 -0
  412. package/build/esm/components/AsideHeader/components/FirstPanel.js.map +1 -0
  413. package/build/esm/components/AsideHeader/components/Header.js +26 -0
  414. package/build/esm/components/AsideHeader/components/Header.js.map +1 -0
  415. package/build/esm/{AsideFallback.js → components/AsideHeader/components/PageLayout/AsideFallback.js} +4 -6
  416. package/build/esm/components/AsideHeader/components/PageLayout/AsideFallback.js.map +1 -0
  417. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js +27 -0
  418. package/build/esm/components/AsideHeader/components/PageLayout/PageLayout.js.map +1 -0
  419. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js +15 -0
  420. package/build/esm/components/AsideHeader/components/PageLayout/PageLayoutAside.js.map +1 -0
  421. package/build/esm/components/AsideHeader/components/Panels.js +12 -0
  422. package/build/esm/components/AsideHeader/components/Panels.js.map +1 -0
  423. package/build/esm/components/AsideHeader/i18n/en.json.js +11 -0
  424. package/build/esm/components/AsideHeader/i18n/en.json.js.map +1 -0
  425. package/build/esm/components/AsideHeader/i18n/index.js +10 -0
  426. package/build/esm/components/AsideHeader/i18n/index.js.map +1 -0
  427. package/build/esm/components/AsideHeader/i18n/ru.json.js +11 -0
  428. package/build/esm/components/AsideHeader/i18n/ru.json.js.map +1 -0
  429. package/build/esm/components/AsideHeader/types.js +7 -0
  430. package/build/esm/components/AsideHeader/types.js.map +1 -0
  431. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js +60 -0
  432. package/build/esm/components/AsideHeader/useAsideHeaderInnerContextValue.js.map +1 -0
  433. package/build/esm/components/AsideHeader/utils.js +6 -0
  434. package/build/esm/components/AsideHeader/utils.js.map +1 -0
  435. package/build/esm/components/CompositeBar/CompositeBar.js +152 -0
  436. package/build/esm/components/CompositeBar/CompositeBar.js.map +1 -0
  437. package/build/esm/components/CompositeBar/CompositeBar.scss.js +7 -0
  438. package/build/esm/components/CompositeBar/CompositeBar.scss.js.map +1 -0
  439. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.js +51 -0
  440. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.js.map +1 -0
  441. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.scss.js +7 -0
  442. package/build/esm/components/CompositeBar/HighlightedItem/HighlightedItem.scss.js.map +1 -0
  443. package/build/esm/components/CompositeBar/Item/Item.js +174 -0
  444. package/build/esm/components/CompositeBar/Item/Item.js.map +1 -0
  445. package/build/esm/components/CompositeBar/Item/Item.scss.js +7 -0
  446. package/build/esm/components/CompositeBar/Item/Item.scss.js.map +1 -0
  447. package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltip.js +30 -0
  448. package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltip.js.map +1 -0
  449. package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltip.scss.js +7 -0
  450. package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltip.scss.js.map +1 -0
  451. package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js +26 -0
  452. package/build/esm/components/CompositeBar/MultipleTooltip/MultipleTooltipContext.js.map +1 -0
  453. package/build/esm/components/CompositeBar/constants.js +7 -0
  454. package/build/esm/components/CompositeBar/constants.js.map +1 -0
  455. package/build/esm/components/CompositeBar/utils.js +98 -0
  456. package/build/esm/components/CompositeBar/utils.js.map +1 -0
  457. package/build/esm/{Content-c3e3OunO.js → components/Content/Content.js} +2 -2
  458. package/build/esm/components/Content/Content.js.map +1 -0
  459. package/build/esm/components/Drawer/Drawer.js +80 -0
  460. package/build/esm/components/Drawer/Drawer.js.map +1 -0
  461. package/build/esm/components/Drawer/Drawer.scss.js +7 -0
  462. package/build/esm/components/Drawer/Drawer.scss.js.map +1 -0
  463. package/build/esm/components/Drawer/utils.js +84 -0
  464. package/build/esm/components/Drawer/utils.js.map +1 -0
  465. package/build/esm/components/Footer/MenuItem/MenuItem.js +14 -0
  466. package/build/esm/components/Footer/MenuItem/MenuItem.js.map +1 -0
  467. package/build/esm/components/Footer/MenuItem/MenuItem.scss.js +7 -0
  468. package/build/esm/components/Footer/MenuItem/MenuItem.scss.js.map +1 -0
  469. package/build/esm/components/Footer/desktop/Footer.js +38 -0
  470. package/build/esm/components/Footer/desktop/Footer.js.map +1 -0
  471. package/build/esm/components/Footer/desktop/Footer.scss.js +7 -0
  472. package/build/esm/components/Footer/desktop/Footer.scss.js.map +1 -0
  473. package/build/esm/components/Footer/desktop/constants/moreItemsPopupProps.js +6 -0
  474. package/build/esm/components/Footer/desktop/constants/moreItemsPopupProps.js.map +1 -0
  475. package/build/esm/components/Footer/mobile/Footer.js +45 -0
  476. package/build/esm/components/Footer/mobile/Footer.js.map +1 -0
  477. package/build/esm/components/Footer/mobile/Footer.scss.js +7 -0
  478. package/build/esm/components/Footer/mobile/Footer.scss.js.map +1 -0
  479. package/build/esm/components/FooterItem/FooterItem.js +15 -0
  480. package/build/esm/components/FooterItem/FooterItem.js.map +1 -0
  481. package/build/esm/components/FooterItem/FooterItem.scss.js +7 -0
  482. package/build/esm/components/FooterItem/FooterItem.scss.js.map +1 -0
  483. package/build/esm/components/HotkeysPanel/HotkeysPanel.js +33 -0
  484. package/build/esm/components/HotkeysPanel/HotkeysPanel.js.map +1 -0
  485. package/build/esm/components/HotkeysPanel/HotkeysPanel.scss.js +7 -0
  486. package/build/esm/components/HotkeysPanel/HotkeysPanel.scss.js.map +1 -0
  487. package/build/esm/components/HotkeysPanel/index.js +2 -0
  488. package/build/esm/components/HotkeysPanel/index.js.map +1 -0
  489. package/build/esm/components/HotkeysPanel/utils/filterHotkeys.js +17 -0
  490. package/build/esm/components/HotkeysPanel/utils/filterHotkeys.js.map +1 -0
  491. package/build/esm/components/HotkeysPanel/utils/flattenHotkeyGroups.js +14 -0
  492. package/build/esm/components/HotkeysPanel/utils/flattenHotkeyGroups.js.map +1 -0
  493. package/build/esm/components/Logo/Logo.js +31 -0
  494. package/build/esm/components/Logo/Logo.js.map +1 -0
  495. package/build/esm/components/Logo/Logo.scss.js +7 -0
  496. package/build/esm/components/Logo/Logo.scss.js.map +1 -0
  497. package/build/esm/components/MobileHeader/Burger/Burger.js +12 -0
  498. package/build/esm/components/MobileHeader/Burger/Burger.js.map +1 -0
  499. package/build/esm/components/MobileHeader/Burger/Burger.scss.js +7 -0
  500. package/build/esm/components/MobileHeader/Burger/Burger.scss.js.map +1 -0
  501. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.js +37 -0
  502. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.js.map +1 -0
  503. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.scss.js +7 -0
  504. package/build/esm/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.scss.js.map +1 -0
  505. package/build/esm/components/MobileHeader/BurgerMenu/BurgerMenu.js +18 -0
  506. package/build/esm/components/MobileHeader/BurgerMenu/BurgerMenu.js.map +1 -0
  507. package/build/esm/components/MobileHeader/BurgerMenu/BurgerMenu.scss.js +7 -0
  508. package/build/esm/components/MobileHeader/BurgerMenu/BurgerMenu.scss.js.map +1 -0
  509. package/build/esm/components/MobileHeader/FooterItem/FooterItem.js +25 -0
  510. package/build/esm/components/MobileHeader/FooterItem/FooterItem.js.map +1 -0
  511. package/build/esm/components/MobileHeader/FooterItem/FooterItem.scss.js +7 -0
  512. package/build/esm/components/MobileHeader/FooterItem/FooterItem.scss.js.map +1 -0
  513. package/build/esm/components/MobileHeader/MobileHeader.js +146 -0
  514. package/build/esm/components/MobileHeader/MobileHeader.js.map +1 -0
  515. package/build/esm/components/MobileHeader/MobileHeader.scss.js +7 -0
  516. package/build/esm/components/MobileHeader/MobileHeader.scss.js.map +1 -0
  517. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js +26 -0
  518. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.js.map +1 -0
  519. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.scss.js +7 -0
  520. package/build/esm/components/MobileHeader/OverlapPanel/OverlapPanel.scss.js.map +1 -0
  521. package/build/esm/components/MobileHeader/constants.js +14 -0
  522. package/build/esm/components/MobileHeader/constants.js.map +1 -0
  523. package/build/esm/components/MobileHeader/i18n/en.json.js +11 -0
  524. package/build/esm/components/MobileHeader/i18n/en.json.js.map +1 -0
  525. package/build/esm/components/MobileHeader/i18n/index.js +10 -0
  526. package/build/esm/components/MobileHeader/i18n/index.js.map +1 -0
  527. package/build/esm/components/MobileHeader/i18n/ru.json.js +11 -0
  528. package/build/esm/components/MobileHeader/i18n/ru.json.js.map +1 -0
  529. package/build/esm/components/MobileHeader/index.js +5 -0
  530. package/build/esm/components/MobileHeader/index.js.map +1 -0
  531. package/build/esm/components/MobileHeader/utils.js +20 -0
  532. package/build/esm/components/MobileHeader/utils.js.map +1 -0
  533. package/build/esm/components/MobileLogo/MobileLogo.js +30 -0
  534. package/build/esm/components/MobileLogo/MobileLogo.js.map +1 -0
  535. package/build/esm/components/MobileLogo/MobileLogo.scss.js +7 -0
  536. package/build/esm/components/MobileLogo/MobileLogo.scss.js.map +1 -0
  537. package/build/esm/components/Settings/Selection/context.js +22 -0
  538. package/build/esm/components/Settings/Selection/context.js.map +1 -0
  539. package/build/esm/components/Settings/Selection/utils.js +20 -0
  540. package/build/esm/components/Settings/Selection/utils.js.map +1 -0
  541. package/build/esm/components/Settings/Settings.js +189 -0
  542. package/build/esm/components/Settings/Settings.js.map +1 -0
  543. package/build/esm/components/Settings/Settings.scss.js +7 -0
  544. package/build/esm/components/Settings/Settings.scss.js.map +1 -0
  545. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js +79 -0
  546. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.js.map +1 -0
  547. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.scss.js +7 -0
  548. package/build/esm/components/Settings/SettingsMenu/SettingsMenu.scss.js.map +1 -0
  549. package/build/esm/components/Settings/SettingsMenuMobile/SettingsMenuMobile.js +35 -0
  550. package/build/esm/components/Settings/SettingsMenuMobile/SettingsMenuMobile.js.map +1 -0
  551. package/build/esm/components/Settings/SettingsMenuMobile/SettingsMenuMobile.scss.js +7 -0
  552. package/build/esm/components/Settings/SettingsMenuMobile/SettingsMenuMobile.scss.js.map +1 -0
  553. package/build/esm/components/Settings/SettingsSearch/SettingsSearch.js +23 -0
  554. package/build/esm/components/Settings/SettingsSearch/SettingsSearch.js.map +1 -0
  555. package/build/esm/components/Settings/collect-settings.js +144 -0
  556. package/build/esm/components/Settings/collect-settings.js.map +1 -0
  557. package/build/esm/components/Settings/helpers.js +33 -0
  558. package/build/esm/components/Settings/helpers.js.map +1 -0
  559. package/build/esm/components/Settings/i18n/en.json.js +11 -0
  560. package/build/esm/components/Settings/i18n/en.json.js.map +1 -0
  561. package/build/esm/components/Settings/i18n/index.js +10 -0
  562. package/build/esm/components/Settings/i18n/index.js.map +1 -0
  563. package/build/esm/components/Settings/i18n/ru.json.js +11 -0
  564. package/build/esm/components/Settings/i18n/ru.json.js.map +1 -0
  565. package/build/esm/components/Settings/index.js +3 -0
  566. package/build/esm/components/Settings/index.js.map +1 -0
  567. package/build/esm/components/Title/Title.js +18 -0
  568. package/build/esm/components/Title/Title.js.map +1 -0
  569. package/build/esm/components/Title/Title.scss.js +7 -0
  570. package/build/esm/components/Title/Title.scss.js.map +1 -0
  571. package/build/esm/components/Title/i18n/en.json.js +7 -0
  572. package/build/esm/components/Title/i18n/en.json.js.map +1 -0
  573. package/build/esm/components/Title/i18n/index.js +10 -0
  574. package/build/esm/components/Title/i18n/index.js.map +1 -0
  575. package/build/esm/components/Title/i18n/ru.json.js +7 -0
  576. package/build/esm/components/Title/i18n/ru.json.js.map +1 -0
  577. package/build/esm/components/Title/index.js +2 -0
  578. package/build/esm/components/Title/index.js.map +1 -0
  579. package/build/esm/components/TopAlert/TopAlert.js +31 -0
  580. package/build/esm/components/TopAlert/TopAlert.js.map +1 -0
  581. package/build/esm/components/TopAlert/TopAlert.scss.js +7 -0
  582. package/build/esm/components/TopAlert/TopAlert.scss.js.map +1 -0
  583. package/build/esm/components/TopAlert/index.js +2 -0
  584. package/build/esm/components/TopAlert/index.js.map +1 -0
  585. package/build/esm/components/TopAlert/useTopAlertHeight.js +35 -0
  586. package/build/esm/components/TopAlert/useTopAlertHeight.js.map +1 -0
  587. package/build/esm/components/constants.js +8 -0
  588. package/build/esm/components/constants.js.map +1 -0
  589. package/build/esm/{cn-CgiqTV3v.js → components/utils/cn.js} +2 -2
  590. package/build/esm/components/utils/cn.js.map +1 -0
  591. package/build/esm/hooks/useForwardRef.js +19 -0
  592. package/build/esm/hooks/useForwardRef.js.map +1 -0
  593. package/build/esm/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.js +64 -0
  594. package/build/esm/hooks/useOverflowingHorizontalListItems/useOverflowingHorizontalListItems.js.map +1 -0
  595. package/build/esm/index.js +20 -5
  596. package/build/esm/index.js.map +1 -1
  597. package/build/esm/node_modules/@babel/runtime/helpers/esm/extends.js +12 -0
  598. package/build/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -0
  599. package/build/esm/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +8 -0
  600. package/build/esm/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -0
  601. package/build/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +12 -0
  602. package/build/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -0
  603. package/build/esm/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js +8 -0
  604. package/build/esm/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -0
  605. package/build/esm/node_modules/dom-helpers/esm/addClass.js +15 -0
  606. package/build/esm/node_modules/dom-helpers/esm/addClass.js.map +1 -0
  607. package/build/esm/node_modules/dom-helpers/esm/hasClass.js +13 -0
  608. package/build/esm/node_modules/dom-helpers/esm/hasClass.js.map +1 -0
  609. package/build/esm/node_modules/dom-helpers/esm/removeClass.js +23 -0
  610. package/build/esm/node_modules/dom-helpers/esm/removeClass.js.map +1 -0
  611. package/build/esm/node_modules/lodash/_Symbol.js +19 -0
  612. package/build/esm/node_modules/lodash/_Symbol.js.map +1 -0
  613. package/build/esm/node_modules/lodash/_baseGetTag.js +43 -0
  614. package/build/esm/node_modules/lodash/_baseGetTag.js.map +1 -0
  615. package/build/esm/node_modules/lodash/_baseTrim.js +32 -0
  616. package/build/esm/node_modules/lodash/_baseTrim.js.map +1 -0
  617. package/build/esm/node_modules/lodash/_freeGlobal.js +18 -0
  618. package/build/esm/node_modules/lodash/_freeGlobal.js.map +1 -0
  619. package/build/esm/node_modules/lodash/_getRawTag.js +59 -0
  620. package/build/esm/node_modules/lodash/_getRawTag.js.map +1 -0
  621. package/build/esm/node_modules/lodash/_objectToString.js +34 -0
  622. package/build/esm/node_modules/lodash/_objectToString.js.map +1 -0
  623. package/build/esm/node_modules/lodash/_root.js +22 -0
  624. package/build/esm/node_modules/lodash/_root.js.map +1 -0
  625. package/build/esm/node_modules/lodash/_trimmedEndIndex.js +31 -0
  626. package/build/esm/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
  627. package/build/esm/node_modules/lodash/debounce.js +206 -0
  628. package/build/esm/node_modules/lodash/debounce.js.map +1 -0
  629. package/build/esm/node_modules/lodash/identity.js +33 -0
  630. package/build/esm/node_modules/lodash/identity.js.map +1 -0
  631. package/build/esm/node_modules/lodash/isObject.js +43 -0
  632. package/build/esm/node_modules/lodash/isObject.js.map +1 -0
  633. package/build/esm/node_modules/lodash/isObjectLike.js +41 -0
  634. package/build/esm/node_modules/lodash/isObjectLike.js.map +1 -0
  635. package/build/esm/node_modules/lodash/isSymbol.js +43 -0
  636. package/build/esm/node_modules/lodash/isSymbol.js.map +1 -0
  637. package/build/esm/node_modules/lodash/now.js +36 -0
  638. package/build/esm/node_modules/lodash/now.js.map +1 -0
  639. package/build/esm/node_modules/lodash/toNumber.js +79 -0
  640. package/build/esm/node_modules/lodash/toNumber.js.map +1 -0
  641. package/build/esm/node_modules/object-assign/index.js +100 -0
  642. package/build/esm/node_modules/object-assign/index.js.map +1 -0
  643. package/build/esm/node_modules/prop-types/checkPropTypes.js +116 -0
  644. package/build/esm/node_modules/prop-types/checkPropTypes.js.map +1 -0
  645. package/build/esm/node_modules/prop-types/factoryWithThrowingShims.js +75 -0
  646. package/build/esm/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
  647. package/build/esm/node_modules/prop-types/factoryWithTypeCheckers.js +626 -0
  648. package/build/esm/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
  649. package/build/esm/node_modules/prop-types/index.js +34 -0
  650. package/build/esm/node_modules/prop-types/index.js.map +1 -0
  651. package/build/esm/node_modules/prop-types/lib/ReactPropTypesSecret.js +22 -0
  652. package/build/esm/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
  653. package/build/esm/node_modules/prop-types/lib/has.js +12 -0
  654. package/build/esm/node_modules/prop-types/lib/has.js.map +1 -0
  655. package/build/esm/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +191 -0
  656. package/build/esm/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
  657. package/build/esm/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +27 -0
  658. package/build/esm/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
  659. package/build/esm/node_modules/prop-types/node_modules/react-is/index.js +20 -0
  660. package/build/esm/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
  661. package/build/esm/node_modules/react-transition-group/esm/CSSTransition.js +414 -0
  662. package/build/esm/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -0
  663. package/build/esm/node_modules/react-transition-group/esm/Transition.js +628 -0
  664. package/build/esm/node_modules/react-transition-group/esm/Transition.js.map +1 -0
  665. package/build/esm/node_modules/react-transition-group/esm/TransitionGroupContext.js +6 -0
  666. package/build/esm/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -0
  667. package/build/esm/node_modules/react-transition-group/esm/config.js +6 -0
  668. package/build/esm/node_modules/react-transition-group/esm/config.js.map +1 -0
  669. package/build/esm/node_modules/react-transition-group/esm/utils/PropTypes.js +22 -0
  670. package/build/esm/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -0
  671. package/build/esm/node_modules/react-transition-group/esm/utils/reflow.js +6 -0
  672. package/build/esm/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -0
  673. package/build/esm/node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js +383 -0
  674. package/build/esm/node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js.map +1 -0
  675. package/build/esm/{style-inject.es-Bff-fD1R.js → node_modules/style-inject/dist/style-inject.es.js} +2 -2
  676. package/build/esm/{style-inject.es-Bff-fD1R.js.map → node_modules/style-inject/dist/style-inject.es.js.map} +1 -1
  677. package/build/esm/{tslib.es6-BCqiemNI.js → node_modules/tslib/tslib.es6.js} +2 -2
  678. package/build/esm/node_modules/tslib/tslib.es6.js.map +1 -0
  679. package/package.json +1 -1
  680. package/build/cjs/ActionBar-_qjZ9IMA.js +0 -59
  681. package/build/cjs/ActionBar-_qjZ9IMA.js.map +0 -1
  682. package/build/cjs/AsideFallback.js.map +0 -1
  683. package/build/cjs/AsideHeader.js +0 -33
  684. package/build/cjs/AsideHeader.js.map +0 -1
  685. package/build/cjs/AsideHeaderContext.js.map +0 -1
  686. package/build/cjs/Content-Dy2XkiRi.js.map +0 -1
  687. package/build/cjs/Drawer.js +0 -2493
  688. package/build/cjs/Drawer.js.map +0 -1
  689. package/build/cjs/FooterItem-CLk0aHrc.js +0 -332
  690. package/build/cjs/FooterItem-CLk0aHrc.js.map +0 -1
  691. package/build/cjs/FooterItem.js +0 -26
  692. package/build/cjs/FooterItem.js.map +0 -1
  693. package/build/cjs/HotkeysPanel-C436myZY.js +0 -63
  694. package/build/cjs/HotkeysPanel-C436myZY.js.map +0 -1
  695. package/build/cjs/Item-CLHysLDd.js +0 -328
  696. package/build/cjs/Item-CLHysLDd.js.map +0 -1
  697. package/build/cjs/PageLayout.js.map +0 -1
  698. package/build/cjs/PageLayoutAside-SMHlPBAO.js +0 -979
  699. package/build/cjs/PageLayoutAside-SMHlPBAO.js.map +0 -1
  700. package/build/cjs/PageLayoutAside.js +0 -24
  701. package/build/cjs/PageLayoutAside.js.map +0 -1
  702. package/build/cjs/Settings-x0a3P0Vr.js +0 -586
  703. package/build/cjs/Settings-x0a3P0Vr.js.map +0 -1
  704. package/build/cjs/Title-CzxcSMoP.js +0 -36
  705. package/build/cjs/Title-CzxcSMoP.js.map +0 -1
  706. package/build/cjs/_commonjsHelpers-BJu3ubxk.js.map +0 -1
  707. package/build/cjs/cn-DSlPZbcs.js.map +0 -1
  708. package/build/cjs/constants-B0DLAQY9.js.map +0 -1
  709. package/build/cjs/debounce-RFF04eVR.js +0 -660
  710. package/build/cjs/debounce-RFF04eVR.js.map +0 -1
  711. package/build/cjs/divider-collapsed-BLSp99lJ.js.map +0 -1
  712. package/build/cjs/index-B6c8DVdr.js +0 -68
  713. package/build/cjs/index-B6c8DVdr.js.map +0 -1
  714. package/build/cjs/index2.js +0 -15
  715. package/build/cjs/index3.js +0 -17
  716. package/build/cjs/index4.js +0 -21
  717. package/build/cjs/index4.js.map +0 -1
  718. package/build/cjs/index5.js +0 -22
  719. package/build/cjs/index5.js.map +0 -1
  720. package/build/cjs/index6.js +0 -194
  721. package/build/cjs/index6.js.map +0 -1
  722. package/build/cjs/tslib.es6-D25eJ2i9.js.map +0 -1
  723. package/build/cjs/utils-BrRoop7o.js +0 -8
  724. package/build/cjs/utils-BrRoop7o.js.map +0 -1
  725. package/build/esm/ActionBar-BD_roj92.js +0 -57
  726. package/build/esm/ActionBar-BD_roj92.js.map +0 -1
  727. package/build/esm/AsideFallback.js.map +0 -1
  728. package/build/esm/AsideHeader.js +0 -31
  729. package/build/esm/AsideHeader.js.map +0 -1
  730. package/build/esm/AsideHeaderContext.js.map +0 -1
  731. package/build/esm/Content-c3e3OunO.js.map +0 -1
  732. package/build/esm/Drawer.js +0 -2472
  733. package/build/esm/Drawer.js.map +0 -1
  734. package/build/esm/FooterItem-DuFjLZPI.js +0 -326
  735. package/build/esm/FooterItem-DuFjLZPI.js.map +0 -1
  736. package/build/esm/FooterItem.js +0 -24
  737. package/build/esm/FooterItem.js.map +0 -1
  738. package/build/esm/HotkeysPanel-BWL1Xkqi.js +0 -61
  739. package/build/esm/HotkeysPanel-BWL1Xkqi.js.map +0 -1
  740. package/build/esm/Item-BU0M-jfC.js +0 -318
  741. package/build/esm/Item-BU0M-jfC.js.map +0 -1
  742. package/build/esm/PageLayout.js.map +0 -1
  743. package/build/esm/PageLayoutAside-Bd3aJNrH.js +0 -958
  744. package/build/esm/PageLayoutAside-Bd3aJNrH.js.map +0 -1
  745. package/build/esm/PageLayoutAside.js +0 -18
  746. package/build/esm/PageLayoutAside.js.map +0 -1
  747. package/build/esm/Settings-BC6Kmplf.js +0 -564
  748. package/build/esm/Settings-BC6Kmplf.js.map +0 -1
  749. package/build/esm/Title-CRlzgg4r.js +0 -34
  750. package/build/esm/Title-CRlzgg4r.js.map +0 -1
  751. package/build/esm/_commonjsHelpers-BFTU3MAI.js.map +0 -1
  752. package/build/esm/cn-CgiqTV3v.js.map +0 -1
  753. package/build/esm/constants-ChYDZ5F2.js +0 -8
  754. package/build/esm/constants-ChYDZ5F2.js.map +0 -1
  755. package/build/esm/debounce-DW3XyyUs.js +0 -658
  756. package/build/esm/debounce-DW3XyyUs.js.map +0 -1
  757. package/build/esm/divider-collapsed-BgKmR8h9.js.map +0 -1
  758. package/build/esm/index-BLdwsphX.js +0 -66
  759. package/build/esm/index-BLdwsphX.js.map +0 -1
  760. package/build/esm/index2.js +0 -9
  761. package/build/esm/index3.js +0 -11
  762. package/build/esm/index4.js +0 -13
  763. package/build/esm/index4.js.map +0 -1
  764. package/build/esm/index5.js +0 -13
  765. package/build/esm/index5.js.map +0 -1
  766. package/build/esm/index6.js +0 -171
  767. package/build/esm/index6.js.map +0 -1
  768. package/build/esm/tslib.es6-BCqiemNI.js.map +0 -1
  769. package/build/esm/utils-D0s6YtvW.js +0 -6
  770. package/build/esm/utils-D0s6YtvW.js.map +0 -1
  771. /package/build/cjs/{AsideHeaderContext.js → components/AsideHeader/AsideHeaderContext.js} +0 -0
  772. /package/build/esm/{AsideHeaderContext.js → components/AsideHeader/AsideHeaderContext.js} +0 -0
@@ -0,0 +1,79 @@
1
+ import React__default from 'react';
2
+ import { Icon } from '@gravity-ui/uikit';
3
+ import { block } from '../../utils/cn.js';
4
+ import { useStableCallback, useCurrent } from '../helpers.js';
5
+ import './SettingsMenu.scss.js';
6
+
7
+ const b = block('settings-menu');
8
+ const SettingsMenu = React__default.forwardRef(
9
+ // eslint-disable-next-line prefer-arrow-callback
10
+ function SettingsMenu({ items, onChange, activeItemId }, ref) {
11
+ const [focusItemId, setFocusId] = React__default.useState();
12
+ const containerRef = React__default.useRef(null);
13
+ const handleChange = useStableCallback(onChange);
14
+ const getFocused = useCurrent(focusItemId);
15
+ React__default.useImperativeHandle(ref, () => ({
16
+ handleKeyDown(event) {
17
+ if (!containerRef.current) {
18
+ return false;
19
+ }
20
+ const focused = getFocused();
21
+ if (focused && event.key === 'Enter') {
22
+ handleChange(focused);
23
+ return true;
24
+ }
25
+ else if (event.key === 'ArrowDown') {
26
+ setFocusId(focusNext(containerRef.current, focused, 1));
27
+ return true;
28
+ }
29
+ else if (event.key === 'ArrowUp') {
30
+ setFocusId(focusNext(containerRef.current, focused, -1));
31
+ return true;
32
+ }
33
+ return false;
34
+ },
35
+ clearFocus() {
36
+ setFocusId(undefined);
37
+ },
38
+ }), [getFocused, handleChange]);
39
+ return (React__default.createElement("div", { ref: containerRef, className: b() }, items.map((firstLevelItem) => {
40
+ if ('groupTitle' in firstLevelItem) {
41
+ return (React__default.createElement("div", { key: firstLevelItem.groupTitle, className: b('group') },
42
+ React__default.createElement("span", { className: b('group-heading') }, firstLevelItem.groupTitle),
43
+ firstLevelItem.items.map((item) => {
44
+ return renderMenuItem(item, onChange, activeItemId, focusItemId);
45
+ })));
46
+ }
47
+ return renderMenuItem(firstLevelItem, onChange, activeItemId, focusItemId);
48
+ })));
49
+ });
50
+ function renderMenuItem(item, onChange, activeItemId, focusItemId) {
51
+ return (React__default.createElement("span", { key: item.title, className: b('item', {
52
+ selected: activeItemId === item.id,
53
+ disabled: item.disabled,
54
+ focused: focusItemId === item.id,
55
+ badge: item.withBadge,
56
+ }), onClick: () => {
57
+ if (!item.disabled) {
58
+ onChange(item.id);
59
+ }
60
+ }, "data-id": item.id },
61
+ item.icon ? React__default.createElement(Icon, Object.assign({ size: 16 }, item.icon, { className: b('item-icon') })) : undefined,
62
+ React__default.createElement("span", null, item.title)));
63
+ }
64
+ function focusNext(container, focused, direction) {
65
+ var _a;
66
+ const elements = container.querySelectorAll(`.${b('item')}:not(.${b('item')}_disabled)`);
67
+ if (elements.length === 0) {
68
+ return undefined;
69
+ }
70
+ let currentIndex = direction > 0 ? -1 : 0;
71
+ if (focused) {
72
+ currentIndex = Array.prototype.findIndex.call(elements, (element) => element.getAttribute('data-id') === focused);
73
+ }
74
+ currentIndex = (elements.length + currentIndex + direction) % elements.length;
75
+ return (_a = elements[currentIndex].getAttribute('data-id')) !== null && _a !== undefined ? _a : undefined;
76
+ }
77
+
78
+ export { SettingsMenu };
79
+ //# sourceMappingURL=SettingsMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsMenu.js","sources":["../../../../../../src/components/Settings/SettingsMenu/SettingsMenu.tsx"],"sourcesContent":["import React from 'react';\n\nimport {Icon} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\nimport {useCurrent, useStableCallback} from '../helpers';\nimport {Item, SettingsMenuProps} from '../types';\n\nimport './SettingsMenu.scss';\n\nconst b = block('settings-menu');\n\nexport interface SettingsMenuInstance {\n handleKeyDown(event: React.KeyboardEvent): boolean;\n clearFocus(): void;\n}\n\nexport const SettingsMenu = React.forwardRef<SettingsMenuInstance, SettingsMenuProps>(\n // eslint-disable-next-line prefer-arrow-callback\n function SettingsMenu({items, onChange, activeItemId}, ref) {\n const [focusItemId, setFocusId] = React.useState<string>();\n const containerRef = React.useRef<HTMLDivElement>(null);\n const handleChange = useStableCallback(onChange);\n const getFocused = useCurrent(focusItemId);\n\n React.useImperativeHandle(\n ref,\n () => ({\n handleKeyDown(event) {\n if (!containerRef.current) {\n return false;\n }\n const focused = getFocused();\n if (focused && event.key === 'Enter') {\n handleChange(focused);\n return true;\n } else if (event.key === 'ArrowDown') {\n setFocusId(focusNext(containerRef.current, focused, 1));\n return true;\n } else if (event.key === 'ArrowUp') {\n setFocusId(focusNext(containerRef.current, focused, -1));\n return true;\n }\n return false;\n },\n clearFocus() {\n setFocusId(undefined);\n },\n }),\n [getFocused, handleChange],\n );\n\n return (\n <div ref={containerRef} className={b()}>\n {items.map((firstLevelItem) => {\n if ('groupTitle' in firstLevelItem) {\n return (\n <div key={firstLevelItem.groupTitle} className={b('group')}>\n <span className={b('group-heading')}>\n {firstLevelItem.groupTitle}\n </span>\n {firstLevelItem.items.map((item) => {\n return renderMenuItem(\n item,\n onChange,\n activeItemId,\n focusItemId,\n );\n })}\n </div>\n );\n }\n return renderMenuItem(firstLevelItem, onChange, activeItemId, focusItemId);\n })}\n </div>\n );\n },\n);\n\nfunction renderMenuItem(\n item: Item,\n onChange: (id: string) => void,\n activeItemId: string | undefined,\n focusItemId: string | undefined,\n) {\n return (\n <span\n key={item.title}\n className={b('item', {\n selected: activeItemId === item.id,\n disabled: item.disabled,\n focused: focusItemId === item.id,\n badge: item.withBadge,\n })}\n onClick={() => {\n if (!item.disabled) {\n onChange(item.id);\n }\n }}\n data-id={item.id}\n >\n {item.icon ? <Icon size={16} {...item.icon} className={b('item-icon')} /> : undefined}\n <span>{item.title}</span>\n </span>\n );\n}\n\nfunction focusNext(container: HTMLElement, focused: string | undefined, direction: number) {\n const elements = container.querySelectorAll(`.${b('item')}:not(.${b('item')}_disabled)`);\n if (elements.length === 0) {\n return undefined;\n }\n\n let currentIndex = direction > 0 ? -1 : 0;\n if (focused) {\n currentIndex = Array.prototype.findIndex.call(\n elements,\n (element) => element.getAttribute('data-id') === focused,\n );\n }\n\n currentIndex = (elements.length + currentIndex + direction) % elements.length;\n return elements[currentIndex].getAttribute('data-id') ?? undefined;\n}\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".gn-settings-menu__group-heading{display:inline-block;font-weight:var(--g-text-accent-font-weight);line-height:18px;margin-bottom:12px;padding:0 20px}.gn-settings-menu__group+.gn-settings-menu__group{margin-top:24px}.gn-settings-menu__item{align-items:center;color:var(--g-color-text-primary);cursor:pointer;display:flex;height:40px;padding:0 20px}.gn-settings-menu__item-icon{color:var(--g-color-text-misc);margin-right:5px}.gn-settings-menu__item:hover,.gn-settings-menu__item_focused{background:var(--g-color-base-simple-hover)}.gn-settings-menu__item_selected{background:var(--g-color-base-selection)}.gn-settings-menu__item_selected.gn-settings-menu__item_focused,.gn-settings-menu__item_selected:hover{background:var(--g-color-base-selection-hover)}.gn-settings-menu__item_disabled{color:var(--g-color-text-secondary);cursor:auto}.gn-settings-menu__item_disabled:hover{background:none}.gn-settings-menu__item_disabled .gn-settings-menu__item-icon{color:var(--g-color-base-misc-heavy)}.gn-settings-menu__item_badge{position:relative}.gn-settings-menu__item_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:\"\";display:block;height:6px;position:absolute;right:9px;top:calc(50% - 3px);width:6px}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=SettingsMenu.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsMenu.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,35 @@
1
+ import React__default from 'react';
2
+ import { Tabs } from '@gravity-ui/uikit';
3
+ import { block } from '../../utils/cn.js';
4
+ import './SettingsMenuMobile.scss.js';
5
+
6
+ const b = block('settings-menu-mobile');
7
+ const SettingsMenuMobile = ({ items, onChange, activeItemId, className, }) => {
8
+ const ref = React__default.useRef(null);
9
+ const tabItems = React__default.useMemo(() => {
10
+ const tabItems = [];
11
+ items.forEach((firstLevelItem) => {
12
+ if ('groupTitle' in firstLevelItem) {
13
+ tabItems.push(...firstLevelItem.items.map(({ id, title, disabled, withBadge }) => ({
14
+ id,
15
+ title,
16
+ disabled,
17
+ className: b('item', { badge: withBadge }),
18
+ })));
19
+ }
20
+ else {
21
+ const { id, title, disabled, withBadge } = firstLevelItem;
22
+ tabItems.push({ id, title, disabled, className: b('item', { badge: withBadge }) });
23
+ }
24
+ });
25
+ return tabItems;
26
+ }, [items]);
27
+ const handleTouchMove = (e) => {
28
+ e.stopPropagation();
29
+ };
30
+ return (React__default.createElement("div", { ref: ref, onTouchMove: handleTouchMove },
31
+ React__default.createElement(Tabs, { items: tabItems, className: b(null, className), size: "l", activeTab: activeItemId, onSelectTab: onChange })));
32
+ };
33
+
34
+ export { SettingsMenuMobile };
35
+ //# sourceMappingURL=SettingsMenuMobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsMenuMobile.js","sources":["../../../../../../src/components/Settings/SettingsMenuMobile/SettingsMenuMobile.tsx"],"sourcesContent":["import React from 'react';\n\nimport {Tabs, TabsItemProps} from '@gravity-ui/uikit';\n\nimport {block} from '../../utils/cn';\nimport {SettingsMenuProps} from '../types';\n\nimport './SettingsMenuMobile.scss';\n\nconst b = block('settings-menu-mobile');\n\nexport const SettingsMenuMobile = ({\n items,\n onChange,\n activeItemId,\n className,\n}: SettingsMenuProps) => {\n const ref = React.useRef<HTMLDivElement>(null);\n\n const tabItems = React.useMemo(() => {\n const tabItems: TabsItemProps[] = [];\n\n items.forEach((firstLevelItem) => {\n if ('groupTitle' in firstLevelItem) {\n tabItems.push(\n ...firstLevelItem.items.map(({id, title, disabled, withBadge}) => ({\n id,\n title,\n disabled,\n className: b('item', {badge: withBadge}),\n })),\n );\n } else {\n const {id, title, disabled, withBadge} = firstLevelItem;\n tabItems.push({id, title, disabled, className: b('item', {badge: withBadge})});\n }\n });\n return tabItems;\n }, [items]);\n\n const handleTouchMove = (e: React.TouchEvent<HTMLDivElement>) => {\n e.stopPropagation();\n };\n\n return (\n <div ref={ref} onTouchMove={handleTouchMove}>\n <Tabs\n items={tabItems}\n className={b(null, className)}\n size=\"l\"\n activeTab={activeItemId}\n onSelectTab={onChange}\n />\n </div>\n );\n};\n"],"names":["React"],"mappings":";;;;;AASA,MAAM,CAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC;AAEhC,MAAM,kBAAkB,GAAG,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,SAAS,GACO,KAAI;IACpB,MAAM,GAAG,GAAGA,cAAK,CAAC,MAAM,CAAiB,IAAI,CAAC;AAE9C,IAAA,MAAM,QAAQ,GAAGA,cAAK,CAAC,OAAO,CAAC,MAAK;QAChC,MAAM,QAAQ,GAAoB,EAAE;AAEpC,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,cAAc,KAAI;AAC7B,YAAA,IAAI,YAAY,IAAI,cAAc,EAAE;gBAChC,QAAQ,CAAC,IAAI,CACT,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM;oBAC/D,EAAE;oBACF,KAAK;oBACL,QAAQ;oBACR,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC;iBAC3C,CAAC,CAAC,CACN;;iBACE;gBACH,MAAM,EAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAC,GAAG,cAAc;gBACvD,QAAQ,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,SAAS,EAAC,CAAC,EAAC,CAAC;;AAEtF,SAAC,CAAC;AACF,QAAA,OAAO,QAAQ;AACnB,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,MAAM,eAAe,GAAG,CAAC,CAAmC,KAAI;QAC5D,CAAC,CAAC,eAAe,EAAE;AACvB,KAAC;IAED,QACIA,sCAAK,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,eAAe,EAAA;AACvC,QAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EACD,KAAK,EAAE,QAAQ,EACf,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAC7B,IAAI,EAAC,GAAG,EACR,SAAS,EAAE,YAAY,EACvB,WAAW,EAAE,QAAQ,EACvB,CAAA,CACA;AAEd;;;;"}
@@ -0,0 +1,7 @@
1
+ import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".gn-settings-menu-mobile.g-tabs_direction_horizontal{-ms-overflow-style:none;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:none;scrollbar-width:none}.gn-settings-menu-mobile.g-tabs_direction_horizontal::-webkit-scrollbar{display:none}.gn-settings-menu-mobile__item_badge{position:relative}.gn-settings-menu-mobile__item_badge:after{background-color:var(--g-color-text-danger);border-radius:50%;content:\"\";display:block;height:6px;position:absolute;right:-8px;top:11px;width:6px}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=SettingsMenuMobile.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsMenuMobile.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,23 @@
1
+ import React__default from 'react';
2
+ import { TextInput } from '@gravity-ui/uikit';
3
+ import debounceFn from '../../../_virtual/debounce.js';
4
+ import { block } from '../../utils/cn.js';
5
+ import { useStableCallback } from '../helpers.js';
6
+ import i18n from '../i18n/index.js';
7
+
8
+ const b = block('settings-search');
9
+ function SettingsSearch({ className, initialValue, onChange, debounce = 200, inputRef, inputSize, placeholder, autoFocus = true, }) {
10
+ const [value, setValue] = React__default.useState(initialValue !== null && initialValue !== undefined ? initialValue : '');
11
+ const onChangeDebounced = useStableCallback(debounceFn(onChange, debounce));
12
+ const handleUpdate = useStableCallback((updated) => {
13
+ setValue(updated);
14
+ onChangeDebounced(updated);
15
+ });
16
+ return (React__default.createElement("div", { className: b(null, className) },
17
+ React__default.createElement(TextInput, { value: value, controlRef: inputRef, hasClear: true, autoFocus: autoFocus, size: inputSize, placeholder: placeholder, onUpdate: handleUpdate, controlProps: {
18
+ 'aria-label': i18n('label_search'),
19
+ } })));
20
+ }
21
+
22
+ export { SettingsSearch };
23
+ //# sourceMappingURL=SettingsSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsSearch.js","sources":["../../../../../../src/components/Settings/SettingsSearch/SettingsSearch.tsx"],"sourcesContent":["import React from 'react';\n\nimport {TextInput, TextInputSize} from '@gravity-ui/uikit';\nimport debounceFn from 'lodash/debounce';\n\nimport {block} from '../../utils/cn';\nimport {useStableCallback} from '../helpers';\nimport i18n from '../i18n';\n\nconst b = block('settings-search');\n\ninterface SettingsSearchProps {\n className?: string;\n initialValue?: string;\n onChange: (search: string) => void;\n debounce?: number;\n inputRef?: React.Ref<HTMLInputElement>;\n inputSize?: TextInputSize;\n placeholder?: string;\n autoFocus?: boolean;\n}\n\nexport function SettingsSearch({\n className,\n initialValue,\n onChange,\n debounce = 200,\n inputRef,\n inputSize,\n placeholder,\n autoFocus = true,\n}: SettingsSearchProps) {\n const [value, setValue] = React.useState(initialValue ?? '');\n\n const onChangeDebounced = useStableCallback(debounceFn(onChange, debounce));\n const handleUpdate = useStableCallback((updated: string) => {\n setValue(updated);\n onChangeDebounced(updated);\n });\n\n return (\n <div className={b(null, className)}>\n <TextInput\n value={value}\n controlRef={inputRef}\n hasClear\n autoFocus={autoFocus}\n size={inputSize}\n placeholder={placeholder}\n onUpdate={handleUpdate}\n controlProps={{\n 'aria-label': i18n('label_search'),\n }}\n />\n </div>\n );\n}\n"],"names":["React"],"mappings":";;;;;;;AASA,MAAM,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC;AAa5B,SAAU,cAAc,CAAC,EAC3B,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,QAAQ,GAAG,GAAG,EACd,QAAQ,EACR,SAAS,EACT,WAAW,EACX,SAAS,GAAG,IAAI,GACE,EAAA;AAClB,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,YAAY,aAAZ,YAAY,KAAA,SAAA,GAAZ,YAAY,GAAI,EAAE,CAAC;IAE5D,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3E,IAAA,MAAM,YAAY,GAAG,iBAAiB,CAAC,CAAC,OAAe,KAAI;QACvD,QAAQ,CAAC,OAAO,CAAC;QACjB,iBAAiB,CAAC,OAAO,CAAC;AAC9B,KAAC,CAAC;IAEF,QACIA,sCAAK,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAA;AAC9B,QAAAA,cAAA,CAAA,aAAA,CAAC,SAAS,EAAA,EACN,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,QAAQ,EACpB,QAAQ,EAAA,IAAA,EACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE;AACV,gBAAA,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC;aACrC,EACH,CAAA,CACA;AAEd;;;;"}
@@ -0,0 +1,144 @@
1
+ import React__default from 'react';
2
+ import { escapeStringForRegExp, invariant } from './helpers.js';
3
+
4
+ function getSettingsFromChildren(children, searchText = '') {
5
+ // 'abc def fg' -> abc.*?cde.*?fg
6
+ const preparedFilter = escapeStringForRegExp(searchText).replace(/\s+/g, '.*?');
7
+ const filterRe = new RegExp(preparedFilter, 'i');
8
+ return getSettingsFromChildrenRecursive(children, '', filterRe);
9
+ }
10
+ function getSettingsFromChildrenRecursive(children, basepath = '', filterRe) {
11
+ const menu = [];
12
+ const pages = {};
13
+ let hasGroup = false;
14
+ let hasItems = false;
15
+ React__default.Children.forEach(children, (element) => {
16
+ var _a, _b;
17
+ if (!React__default.isValidElement(element)) {
18
+ // Ignore non-elements.
19
+ return;
20
+ }
21
+ if (element.type === React__default.Fragment) {
22
+ // Transparently support React.Fragment and its children.
23
+ const { menu: menuFragment, pages: pagesFragment } = getSettingsFromChildrenRecursive(element.props.children, basepath, filterRe);
24
+ menu.push(...menuFragment);
25
+ Object.assign(pages, pagesFragment);
26
+ }
27
+ else if (element.props.groupTitle) {
28
+ if (process.env.NODE_ENV === 'development') {
29
+ invariant(!hasItems, 'Setting menu must not mix groups and pages on one level');
30
+ }
31
+ const pageId = `${basepath}/${(_a = element.props.id) !== null && _a !== undefined ? _a : element.props.groupTitle}`;
32
+ hasGroup = true;
33
+ const { menu: menuFragment, pages: pagesFragment } = getSettingsFromChildrenRecursive(element.props.children, pageId, filterRe);
34
+ if (process.env.NODE_ENV === 'development') {
35
+ const hasInnerGroup = menuFragment.some((item) => 'groupTitle' in item);
36
+ invariant(!hasInnerGroup, `Group ${element.props.groupTitle} should not include groups`);
37
+ }
38
+ menu.push({
39
+ groupTitle: element.props.groupTitle,
40
+ // @ts-ignore
41
+ items: menuFragment,
42
+ });
43
+ Object.assign(pages, pagesFragment);
44
+ }
45
+ else {
46
+ hasItems = true;
47
+ const pageId = `${basepath}/${(_b = element.props.id) !== null && _b !== undefined ? _b : element.props.title}`;
48
+ if (process.env.NODE_ENV === 'development') {
49
+ invariant(Boolean(element.props.title), 'Component must include title prop');
50
+ invariant(!hasGroup, 'Setting menu must not mix groups and pages on one level');
51
+ invariant(!pages[pageId], `Setting menu page id must be uniq (${pageId})`);
52
+ }
53
+ pages[pageId] = getSettingsPageFromChildren(element.props.children, filterRe);
54
+ pages[pageId].id = pageId;
55
+ menu.push({
56
+ id: pageId,
57
+ title: element.props.title,
58
+ icon: element.props.icon,
59
+ withBadge: pages[pageId].withBadge,
60
+ disabled: pages[pageId].hidden,
61
+ });
62
+ }
63
+ });
64
+ return { menu, pages };
65
+ }
66
+ function getSettingsPageFromChildren(children, filterRe) {
67
+ const page = { id: '', sections: [], hidden: true };
68
+ React__default.Children.forEach(children, (element) => {
69
+ if (!React__default.isValidElement(element)) {
70
+ // Ignore non-elements.
71
+ return;
72
+ }
73
+ if (element.type === React__default.Fragment) {
74
+ // Transparently support React.Fragment and its children.
75
+ const { sections, withBadge, hidden } = getSettingsPageFromChildren(element.props.children, filterRe);
76
+ page.sections.push(...sections);
77
+ page.withBadge = withBadge || page.withBadge;
78
+ page.hidden = hidden && page.hidden;
79
+ }
80
+ else {
81
+ const { withBadge } = element.props;
82
+ const { items, hidden } = getSettingsItemsFromChildren(element.props.children, filterRe);
83
+ page.withBadge = withBadge || page.withBadge;
84
+ page.hidden = hidden && page.hidden;
85
+ page.sections.push(Object.assign(Object.assign({}, element.props), { withBadge,
86
+ items,
87
+ hidden }));
88
+ }
89
+ });
90
+ return page;
91
+ }
92
+ function getSettingsItemsFromChildren(children, filterRe) {
93
+ let hidden = true;
94
+ const items = [];
95
+ React__default.Children.forEach(children, (element) => {
96
+ if (!React__default.isValidElement(element)) {
97
+ // Ignore non-elements.
98
+ return;
99
+ }
100
+ if (element.type === React__default.Fragment) {
101
+ // Transparently support React.Fragment and its children.
102
+ const fragmentItems = getSettingsItemsFromChildren(element.props.children, filterRe);
103
+ items.push(...fragmentItems.items);
104
+ hidden = hidden && fragmentItems.hidden;
105
+ }
106
+ else {
107
+ const item = Object.assign(Object.assign({}, element.props), { element, hidden: !filterRe.test(element.props.title) });
108
+ items.push(item);
109
+ hidden = hidden && item.hidden;
110
+ }
111
+ });
112
+ return { items, hidden };
113
+ }
114
+ function getSelectedSettingsPart(pages, selection) {
115
+ if (!selection.settingId && !selection.section && !selection.page) {
116
+ return {};
117
+ }
118
+ for (const page of Object.values(pages)) {
119
+ if (!selection.settingId && !selection.section) {
120
+ if (selection.page !== page.id)
121
+ continue;
122
+ return { page };
123
+ }
124
+ for (const section of page.sections) {
125
+ if (selection.settingId) {
126
+ for (const setting of section.items) {
127
+ if (setting.id === selection.settingId) {
128
+ return { page, section, setting };
129
+ }
130
+ }
131
+ }
132
+ else if (selection.section &&
133
+ ('id' in selection.section
134
+ ? selection.section.id === section.id
135
+ : selection.section.title === section.title)) {
136
+ return { page, section };
137
+ }
138
+ }
139
+ }
140
+ return {};
141
+ }
142
+
143
+ export { getSelectedSettingsPart, getSettingsFromChildren };
144
+ //# sourceMappingURL=collect-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect-settings.js","sources":["../../../../../src/components/Settings/collect-settings.ts"],"sourcesContent":["import React from 'react';\n\nimport {IconProps} from '@gravity-ui/uikit';\n\nimport {SettingsSelection} from './Selection/types';\nimport {escapeStringForRegExp, invariant} from './helpers';\n\nexport type SettingsMenu = (SettingsMenuGroup | SettingsMenuItem)[];\n\ninterface SettingsMenuGroup {\n groupTitle: string;\n items: SettingsMenuItem[];\n}\n\ninterface SettingsMenuItem {\n id: string;\n title: string;\n icon?: IconProps;\n withBadge?: boolean;\n disabled?: boolean;\n}\n\nexport interface SettingsPage {\n id: string;\n sections: SettingsPageSection[];\n hidden?: boolean;\n withBadge?: boolean;\n}\n\nexport interface SettingsPageSection {\n id?: string;\n title: string;\n header?: React.ReactNode;\n items: SettingsItem[];\n hidden?: boolean;\n withBadge?: boolean;\n}\n\nexport interface SettingsItem {\n id?: string;\n title: string;\n element: React.ReactElement;\n hidden: boolean;\n titleComponent?: React.ReactNode;\n renderTitleComponent?: (highlightedTitle: React.ReactNode | null) => React.ReactNode;\n}\n\nexport interface SelectedSettingsPart {\n page?: SettingsPage;\n section?: SettingsPageSection;\n setting?: SettingsItem;\n}\n\ninterface SettingsDescription {\n menu: SettingsMenu;\n pages: Record<string, SettingsPage>;\n}\nexport function getSettingsFromChildren(\n children: React.ReactNode,\n searchText = '',\n): SettingsDescription {\n // 'abc def fg' -> abc.*?cde.*?fg\n const preparedFilter = escapeStringForRegExp(searchText).replace(/\\s+/g, '.*?');\n const filterRe = new RegExp(preparedFilter, 'i');\n\n return getSettingsFromChildrenRecursive(children, '', filterRe);\n}\n\nfunction getSettingsFromChildrenRecursive(\n children: React.ReactNode,\n basepath = '',\n filterRe: RegExp,\n): SettingsDescription {\n const menu: SettingsMenu = [];\n const pages: Record<string, SettingsPage> = {};\n let hasGroup = false;\n let hasItems = false;\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements.\n return;\n }\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n const {menu: menuFragment, pages: pagesFragment} = getSettingsFromChildrenRecursive(\n element.props.children,\n basepath,\n filterRe,\n );\n menu.push(...menuFragment);\n Object.assign(pages, pagesFragment);\n } else if (element.props.groupTitle) {\n if (process.env.NODE_ENV === 'development') {\n invariant(!hasItems, 'Setting menu must not mix groups and pages on one level');\n }\n\n const pageId = `${basepath}/${element.props.id ?? element.props.groupTitle}`;\n hasGroup = true;\n\n const {menu: menuFragment, pages: pagesFragment} = getSettingsFromChildrenRecursive(\n element.props.children,\n pageId,\n filterRe,\n );\n\n if (process.env.NODE_ENV === 'development') {\n const hasInnerGroup = menuFragment.some((item) => 'groupTitle' in item);\n invariant(\n !hasInnerGroup,\n `Group ${element.props.groupTitle} should not include groups`,\n );\n }\n\n menu.push({\n groupTitle: element.props.groupTitle,\n // @ts-ignore\n items: menuFragment,\n });\n Object.assign(pages, pagesFragment);\n } else {\n hasItems = true;\n const pageId = `${basepath}/${element.props.id ?? element.props.title}`;\n\n if (process.env.NODE_ENV === 'development') {\n invariant(Boolean(element.props.title), 'Component must include title prop');\n invariant(!hasGroup, 'Setting menu must not mix groups and pages on one level');\n invariant(!pages[pageId], `Setting menu page id must be uniq (${pageId})`);\n }\n\n pages[pageId] = getSettingsPageFromChildren(element.props.children, filterRe);\n pages[pageId].id = pageId;\n menu.push({\n id: pageId,\n title: element.props.title,\n icon: element.props.icon,\n withBadge: pages[pageId].withBadge,\n disabled: pages[pageId].hidden,\n });\n }\n });\n return {menu, pages};\n}\n\nfunction getSettingsPageFromChildren(children: React.ReactNode, filterRe: RegExp): SettingsPage {\n const page: SettingsPage = {id: '', sections: [], hidden: true};\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements.\n return;\n }\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n const {sections, withBadge, hidden} = getSettingsPageFromChildren(\n element.props.children,\n filterRe,\n );\n page.sections.push(...sections);\n page.withBadge = withBadge || page.withBadge;\n page.hidden = hidden && page.hidden;\n } else {\n const {withBadge} = element.props;\n const {items, hidden} = getSettingsItemsFromChildren(element.props.children, filterRe);\n page.withBadge = withBadge || page.withBadge;\n page.hidden = hidden && page.hidden;\n page.sections.push({\n ...element.props,\n withBadge,\n items,\n hidden,\n });\n }\n });\n return page;\n}\n\nfunction getSettingsItemsFromChildren(children: React.ReactNode, filterRe: RegExp) {\n let hidden = true;\n const items: SettingsItem[] = [];\n React.Children.forEach(children, (element) => {\n if (!React.isValidElement(element)) {\n // Ignore non-elements.\n return;\n }\n if (element.type === React.Fragment) {\n // Transparently support React.Fragment and its children.\n const fragmentItems = getSettingsItemsFromChildren(element.props.children, filterRe);\n items.push(...fragmentItems.items);\n hidden = hidden && fragmentItems.hidden;\n } else {\n const item: SettingsItem = {\n ...element.props,\n element,\n hidden: !filterRe.test(element.props.title),\n };\n items.push(item);\n hidden = hidden && item.hidden;\n }\n });\n return {items, hidden};\n}\n\nexport function getSelectedSettingsPart(\n pages: Record<string, SettingsPage>,\n selection: SettingsSelection,\n): SelectedSettingsPart {\n if (!selection.settingId && !selection.section && !selection.page) {\n return {};\n }\n\n for (const page of Object.values(pages)) {\n if (!selection.settingId && !selection.section) {\n if (selection.page !== page.id) continue;\n\n return {page};\n }\n\n for (const section of page.sections) {\n if (selection.settingId) {\n for (const setting of section.items) {\n if (setting.id === selection.settingId) {\n return {page, section, setting};\n }\n }\n } else if (\n selection.section &&\n ('id' in selection.section\n ? selection.section.id === section.id\n : selection.section.title === section.title)\n ) {\n return {page, section};\n }\n }\n }\n\n return {};\n}\n"],"names":["React"],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+
3
+ function useStableCallback(func) {
4
+ const funcRef = React.useRef();
5
+ React.useEffect(() => {
6
+ funcRef.current = func;
7
+ return () => {
8
+ funcRef.current = undefined;
9
+ };
10
+ }, [func]);
11
+ return React.useCallback((...args) => {
12
+ if (typeof funcRef.current === 'function') {
13
+ return funcRef.current(...args);
14
+ }
15
+ return undefined;
16
+ }, []);
17
+ }
18
+ function useCurrent(value) {
19
+ const ref = React.useRef(value);
20
+ ref.current = value;
21
+ return React.useCallback(() => ref.current, []);
22
+ }
23
+ function invariant(cond, message) {
24
+ if (!cond) {
25
+ throw new Error(message);
26
+ }
27
+ }
28
+ function escapeStringForRegExp(input) {
29
+ return input.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
30
+ }
31
+
32
+ export { escapeStringForRegExp, invariant, useCurrent, useStableCallback };
33
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../src/components/Settings/helpers.ts"],"sourcesContent":["import * as React from 'react';\n\ntype AnyFunc = (...args: any[]) => any;\n\nexport function useStableCallback<T extends AnyFunc>(\n func: T,\n): (...args: Parameters<T>) => ReturnType<T> | undefined {\n const funcRef = React.useRef<T>();\n\n React.useEffect(() => {\n funcRef.current = func;\n return () => {\n funcRef.current = undefined;\n };\n }, [func]);\n\n return React.useCallback((...args: Parameters<T>) => {\n if (typeof funcRef.current === 'function') {\n return funcRef.current(...args);\n }\n return undefined;\n }, []);\n}\n\nexport function useCurrent<T>(value: T) {\n const ref = React.useRef(value);\n ref.current = value;\n return React.useCallback(() => ref.current, []);\n}\n\nexport function invariant(cond: boolean, message: string): void {\n if (!cond) {\n throw new Error(message);\n }\n}\n\nexport function escapeStringForRegExp(input: string) {\n return input.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n"],"names":[],"mappings":";;AAIM,SAAU,iBAAiB,CAC7B,IAAO,EAAA;AAEP,IAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAK;AAEjC,IAAA,KAAK,CAAC,SAAS,CAAC,MAAK;AACjB,QAAA,OAAO,CAAC,OAAO,GAAG,IAAI;AACtB,QAAA,OAAO,MAAK;AACR,YAAA,OAAO,CAAC,OAAO,GAAG,SAAS;AAC/B,SAAC;AACL,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IAEV,OAAO,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,IAAmB,KAAI;AAChD,QAAA,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE;AACvC,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;;AAEnC,QAAA,OAAO,SAAS;KACnB,EAAE,EAAE,CAAC;AACV;AAEM,SAAU,UAAU,CAAI,KAAQ,EAAA;IAClC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,IAAA,GAAG,CAAC,OAAO,GAAG,KAAK;AACnB,IAAA,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;AACnD;AAEgB,SAAA,SAAS,CAAC,IAAa,EAAE,OAAe,EAAA;IACpD,IAAI,CAAC,IAAI,EAAE;AACP,QAAA,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC;;AAEhC;AAEM,SAAU,qBAAqB,CAAC,KAAa,EAAA;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;AACvD;;;;"}
@@ -0,0 +1,11 @@
1
+ var label_title = "Settings";
2
+ var label_search = "Search";
3
+ var en = {
4
+ label_title: label_title,
5
+ "label_filter-placeholder": "Search settings",
6
+ "label_empty-placeholder": "No results found",
7
+ label_search: label_search
8
+ };
9
+
10
+ export { en as default, label_search, label_title };
11
+ //# sourceMappingURL=en.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,10 @@
1
+ import { addComponentKeysets } from '@gravity-ui/uikit/i18n';
2
+ import { NAMESPACE } from '../../utils/cn.js';
3
+ import en from './en.json.js';
4
+ import ru from './ru.json.js';
5
+
6
+ const COMPONENT = 'Settings';
7
+ var i18n = addComponentKeysets({ en, ru }, `${NAMESPACE}${COMPONENT}`);
8
+
9
+ export { i18n as default };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/Settings/i18n/index.ts"],"sourcesContent":["import {addComponentKeysets} from '@gravity-ui/uikit/i18n';\n\nimport {NAMESPACE} from '../../utils/cn';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nconst COMPONENT = 'Settings';\nexport default addComponentKeysets({en, ru}, `${NAMESPACE}${COMPONENT}`);\n"],"names":[],"mappings":";;;;;AAOA,MAAM,SAAS,GAAG,UAAU;AAC5B,WAAe,mBAAmB,CAAC,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,CAAA,EAAG,SAAS,CAAA,EAAG,SAAS,CAAA,CAAE,CAAC;;;;"}
@@ -0,0 +1,11 @@
1
+ var label_title = "Настройки";
2
+ var label_search = "Поиск";
3
+ var ru = {
4
+ label_title: label_title,
5
+ "label_filter-placeholder": "Найти настройки",
6
+ "label_empty-placeholder": "Ничего не найдено",
7
+ label_search: label_search
8
+ };
9
+
10
+ export { ru as default, label_search, label_title };
11
+ //# sourceMappingURL=ru.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ export { useSettingsSelectionContext } from './Selection/context.js';
2
+ export { Settings, useSettingsContext } from './Settings.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,18 @@
1
+ import React__default from 'react';
2
+ import { Xmark } from '@gravity-ui/icons';
3
+ import { Text, Button, Icon } from '@gravity-ui/uikit';
4
+ import { block } from '../utils/cn.js';
5
+ import i18n from './i18n/index.js';
6
+ import './Title.scss.js';
7
+
8
+ const b = block('title');
9
+ const Title = ({ children, closeIconSize = 23, hasSeparator, closeTitle = i18n('button_close'), onClose, }) => {
10
+ return (React__default.createElement("div", { className: b({ separator: hasSeparator }) },
11
+ React__default.createElement(Text, { className: b('text'), as: 'h3', variant: 'subheader-3' }, children),
12
+ onClose && (React__default.createElement(Button, { onClick: onClose, view: "flat", size: "l", "aria-label": closeTitle },
13
+ React__default.createElement(Icon, { data: Xmark, size: closeIconSize })))));
14
+ };
15
+ Title.displayName = 'Title';
16
+
17
+ export { Title };
18
+ //# sourceMappingURL=Title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Title.js","sources":["../../../../../src/components/Title/Title.tsx"],"sourcesContent":["import React from 'react';\n\nimport {Xmark} from '@gravity-ui/icons';\nimport {Button, Icon, Text} from '@gravity-ui/uikit';\n\nimport {block} from '../utils/cn';\n\nimport i18n from './i18n';\n\nimport './Title.scss';\n\nconst b = block('title');\n\ninterface TitleProps {\n hasSeparator?: boolean;\n closeTitle?: string;\n closeIconSize?: number;\n onClose?: () => void;\n}\nexport const Title: React.FC<React.PropsWithChildren<TitleProps>> = ({\n children,\n closeIconSize = 23,\n hasSeparator,\n closeTitle = i18n('button_close'),\n onClose,\n}) => {\n return (\n <div className={b({separator: hasSeparator})}>\n <Text className={b('text')} as={'h3'} variant={'subheader-3'}>\n {children}\n </Text>\n {onClose && (\n <Button onClick={onClose} view=\"flat\" size=\"l\" aria-label={closeTitle}>\n <Icon data={Xmark} size={closeIconSize} />\n </Button>\n )}\n </div>\n );\n};\n\nTitle.displayName = 'Title';\n"],"names":["React"],"mappings":";;;;;;;AAWA,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;AAQX,MAAA,KAAK,GAAkD,CAAC,EACjE,QAAQ,EACR,aAAa,GAAG,EAAE,EAClB,YAAY,EACZ,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,EACjC,OAAO,GACV,KAAI;IACD,QACIA,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,EAAC,SAAS,EAAE,YAAY,EAAC,CAAC,EAAA;AACxC,QAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAC,EAAA,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAA,EACvD,QAAQ,CACN;AACN,QAAA,OAAO,KACJA,cAAA,CAAA,aAAA,CAAC,MAAM,EAAA,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,GAAG,gBAAa,UAAU,EAAA;AACjE,YAAAA,cAAA,CAAA,aAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAI,CAAA,CACrC,CACZ,CACC;AAEd;AAEA,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
@@ -0,0 +1,7 @@
1
+ import styleInject from '../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".gn-title{align-items:center;box-sizing:border-box;display:flex;justify-content:space-between;min-height:64px;padding:14px 10px 14px 20px}.gn-title_separator{border-bottom:1px solid var(--g-color-line-generic)}.gn-title__text{margin:0 20px 0 0}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=Title.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Title.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,7 @@
1
+ var button_close = "Close";
2
+ var en = {
3
+ button_close: button_close
4
+ };
5
+
6
+ export { button_close, en as default };
7
+ //# sourceMappingURL=en.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,10 @@
1
+ import { addComponentKeysets } from '@gravity-ui/uikit/i18n';
2
+ import { NAMESPACE } from '../../utils/cn.js';
3
+ import en from './en.json.js';
4
+ import ru from './ru.json.js';
5
+
6
+ const COMPONENT = 'Title';
7
+ var i18n = addComponentKeysets({ en, ru }, `${NAMESPACE}${COMPONENT}`);
8
+
9
+ export { i18n as default };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/Title/i18n/index.ts"],"sourcesContent":["import {addComponentKeysets} from '@gravity-ui/uikit/i18n';\n\nimport {NAMESPACE} from '../../utils/cn';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nconst COMPONENT = 'Title';\nexport default addComponentKeysets({en, ru}, `${NAMESPACE}${COMPONENT}`);\n"],"names":[],"mappings":";;;;;AAOA,MAAM,SAAS,GAAG,OAAO;AACzB,WAAe,mBAAmB,CAAC,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,CAAA,EAAG,SAAS,CAAA,EAAG,SAAS,CAAA,CAAE,CAAC;;;;"}
@@ -0,0 +1,7 @@
1
+ var button_close = "Закрыть";
2
+ var ru = {
3
+ button_close: button_close
4
+ };
5
+
6
+ export { button_close, ru as default };
7
+ //# sourceMappingURL=ru.json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ru.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { Title } from './Title.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import React__default from 'react';
2
+ import { Alert, Text } from '@gravity-ui/uikit';
3
+ import { block } from '../utils/cn.js';
4
+ import { useTopAlertHeight } from './useTopAlertHeight.js';
5
+ import './TopAlert.scss.js';
6
+
7
+ const b = block('top-alert');
8
+ const TopAlert = ({ alert, className, mobileView = false }) => {
9
+ const { alertRef, updateTopSize } = useTopAlertHeight({ alert });
10
+ const [opened, setOpened] = React__default.useState(true);
11
+ const handleClose = React__default.useCallback(() => {
12
+ var _a;
13
+ setOpened(false);
14
+ (_a = alert === null || alert === undefined ? undefined : alert.onCloseTopAlert) === null || _a === undefined ? undefined : _a.call(alert);
15
+ }, [alert]);
16
+ React__default.useEffect(() => {
17
+ if (!opened) {
18
+ updateTopSize();
19
+ }
20
+ }, [opened, updateTopSize]);
21
+ if (!alert || !alert.message) {
22
+ return null;
23
+ }
24
+ return (React__default.createElement("div", { ref: alertRef, className: b('wrapper', { 'with-bottom-border': !mobileView && opened }, className) }, opened && (React__default.createElement(Alert, { className: b('', {
25
+ centered: alert.centered,
26
+ dense: alert.dense,
27
+ }), corners: "square", layout: "horizontal", align: alert.align, theme: alert.theme || 'warning', view: alert.view, icon: alert.icon, title: alert.title, message: mobileView ? (React__default.createElement(Text, { ellipsisLines: 5, variant: "body-2" }, alert.message)) : (alert.message), actions: alert.actions, onClose: alert.closable ? handleClose : undefined }))));
28
+ };
29
+
30
+ export { TopAlert };
31
+ //# sourceMappingURL=TopAlert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopAlert.js","sources":["../../../../../src/components/TopAlert/TopAlert.tsx"],"sourcesContent":["import React from 'react';\n\nimport {Alert, Text} from '@gravity-ui/uikit';\n\nimport {TopAlertProps} from '../types';\nimport {block} from '../utils/cn';\n\nimport {useTopAlertHeight} from './useTopAlertHeight';\n\nimport './TopAlert.scss';\n\nconst b = block('top-alert');\n\ntype Props = {\n alert?: TopAlertProps;\n className?: string;\n mobileView?: boolean;\n};\n\nexport const TopAlert = ({alert, className, mobileView = false}: Props) => {\n const {alertRef, updateTopSize} = useTopAlertHeight({alert});\n\n const [opened, setOpened] = React.useState(true);\n\n const handleClose = React.useCallback(() => {\n setOpened(false);\n alert?.onCloseTopAlert?.();\n }, [alert]);\n\n React.useEffect(() => {\n if (!opened) {\n updateTopSize();\n }\n }, [opened, updateTopSize]);\n\n if (!alert || !alert.message) {\n return null;\n }\n\n return (\n <div\n ref={alertRef}\n className={b('wrapper', {'with-bottom-border': !mobileView && opened}, className)}\n >\n {opened && (\n <Alert\n className={b('', {\n centered: alert.centered,\n dense: alert.dense,\n })}\n corners=\"square\"\n layout=\"horizontal\"\n align={alert.align}\n theme={alert.theme || 'warning'}\n view={alert.view}\n icon={alert.icon}\n title={alert.title}\n message={\n mobileView ? (\n <Text ellipsisLines={5} variant=\"body-2\">\n {alert.message}\n </Text>\n ) : (\n alert.message\n )\n }\n actions={alert.actions}\n onClose={alert.closable ? handleClose : undefined}\n />\n )}\n </div>\n );\n};\n"],"names":["React"],"mappings":";;;;;;AAWA,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;AAQrB,MAAM,QAAQ,GAAG,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,UAAU,GAAG,KAAK,EAAQ,KAAI;AACtE,IAAA,MAAM,EAAC,QAAQ,EAAE,aAAa,EAAC,GAAG,iBAAiB,CAAC,EAAC,KAAK,EAAC,CAAC;AAE5D,IAAA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;AAEhD,IAAA,MAAM,WAAW,GAAGA,cAAK,CAAC,WAAW,CAAC,MAAK;;QACvC,SAAS,CAAC,KAAK,CAAC;QAChB,CAAA,EAAA,GAAA,KAAK,aAAL,KAAK,KAAA,SAAA,GAAA,SAAA,GAAL,KAAK,CAAE,eAAe,2DAAI;AAC9B,KAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAAA,cAAK,CAAC,SAAS,CAAC,MAAK;QACjB,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,aAAa,EAAE;;AAEvB,KAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE3B,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;AAC1B,QAAA,OAAO,IAAI;;AAGf,IAAA,QACIA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAC,oBAAoB,EAAE,CAAC,UAAU,IAAI,MAAM,EAAC,EAAE,SAAS,CAAC,EAAA,EAEhF,MAAM,KACHA,cAAC,CAAA,aAAA,CAAA,KAAK,IACF,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC,EACF,OAAO,EAAC,QAAQ,EAChB,MAAM,EAAC,YAAY,EACnB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,SAAS,EAC/B,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,OAAO,EACH,UAAU,IACNA,6BAAC,IAAI,EAAA,EAAC,aAAa,EAAE,CAAC,EAAE,OAAO,EAAC,QAAQ,EACnC,EAAA,KAAK,CAAC,OAAO,CACX,KAEP,KAAK,CAAC,OAAO,CAChB,EAEL,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,KAAK,CAAC,QAAQ,GAAG,WAAW,GAAG,SAAS,EACnD,CAAA,CACL,CACC;AAEd;;;;"}
@@ -0,0 +1,7 @@
1
+ import styleInject from '../../node_modules/style-inject/dist/style-inject.es.js';
2
+
3
+ var css_248z = ".g-root{--gn-top-alert-height:0px}.gn-top-alert_centered{display:flex;justify-content:space-around}.gn-top-alert_dense{padding-bottom:var(--g-spacing-2);padding-top:var(--g-spacing-2)}.gn-top-alert__wrapper_with-bottom-border:after{background-color:var(--gn-aside-header-divider-horizontal-color,var(--_--horizontal-divider-line-color));content:\"\";display:block;height:1px;margin-top:-1px}";
4
+ styleInject(css_248z);
5
+
6
+ export { css_248z as default };
7
+ //# sourceMappingURL=TopAlert.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TopAlert.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}