@diplodoc/components 5.2.1 → 5.2.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 (316) hide show
  1. package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
  2. package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  3. package/build/cjs/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  4. package/build/cjs/components/Breadcrumbs/Breadcrumbs.js.map +2 -2
  5. package/build/cjs/components/ConsentPopup/ConsentPopup.d.ts +1 -1
  6. package/build/cjs/components/ConsentPopup/ConsentPopup.js.map +2 -2
  7. package/build/cjs/components/ContributorAvatars/Avatars/Avatar.d.ts +1 -1
  8. package/build/cjs/components/ContributorAvatars/Avatars/Avatar.js.map +2 -2
  9. package/build/cjs/components/ContributorAvatars/Avatars/AvatarWithDescription.d.ts +2 -2
  10. package/build/cjs/components/ContributorAvatars/Avatars/AvatarWithDescription.js.map +2 -2
  11. package/build/cjs/components/ContributorAvatars/Avatars/HiddenAvatars.d.ts +2 -2
  12. package/build/cjs/components/ContributorAvatars/Avatars/HiddenAvatars.js.map +2 -2
  13. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  14. package/build/cjs/components/ContributorAvatars/ContributorAvatars.d.ts +1 -1
  15. package/build/cjs/components/ContributorAvatars/ContributorAvatars.js.map +2 -2
  16. package/build/cjs/components/ContributorAvatars/models.d.ts +1 -1
  17. package/build/cjs/components/ContributorAvatars/models.js.map +1 -1
  18. package/build/cjs/components/ContributorAvatars/utils.d.ts +1 -1
  19. package/build/cjs/components/ContributorAvatars/utils.js.map +1 -1
  20. package/build/cjs/components/Contributors/Contributors.css.map +1 -1
  21. package/build/cjs/components/Contributors/Contributors.d.ts +1 -1
  22. package/build/cjs/components/Contributors/Contributors.js.map +2 -2
  23. package/build/cjs/components/Control/Control.css.map +1 -1
  24. package/build/cjs/components/Controls/Controls.css.map +1 -1
  25. package/build/cjs/components/Controls/ControlsLayout.d.ts +2 -1
  26. package/build/cjs/components/Controls/ControlsLayout.js.map +2 -2
  27. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  28. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  29. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  30. package/build/cjs/components/DocLayout/DocLayout.css.map +3 -3
  31. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +2 -2
  32. package/build/cjs/components/DocPage/DocPage.css.map +1 -1
  33. package/build/cjs/components/DocPage/components/RenderBody/RenderBody.d.ts +1 -1
  34. package/build/cjs/components/DocPage/components/RenderBody/RenderBody.js.map +2 -2
  35. package/build/cjs/components/DocPage/components/RenderBodyWithHooks/RenderBodyWithHooks.d.ts +2 -2
  36. package/build/cjs/components/DocPage/components/RenderBodyWithHooks/RenderBodyWithHooks.js.map +2 -2
  37. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  38. package/build/cjs/components/DocPageTitle/DocPageTitle.d.ts +2 -1
  39. package/build/cjs/components/DocPageTitle/DocPageTitle.js.map +2 -2
  40. package/build/cjs/components/ErrorBoundary/ErrorBoundary.d.ts +2 -1
  41. package/build/cjs/components/ErrorBoundary/ErrorBoundary.js.map +2 -2
  42. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  43. package/build/cjs/components/ErrorPage/ErrorPage.js +1 -3
  44. package/build/cjs/components/ErrorPage/ErrorPage.js.map +2 -2
  45. package/build/cjs/components/Feedback/Feedback.css.map +2 -2
  46. package/build/cjs/components/Feedback/Feedback.d.ts +1 -1
  47. package/build/cjs/components/Feedback/Feedback.js.map +2 -2
  48. package/build/cjs/components/Mark/Mark.css.map +1 -1
  49. package/build/cjs/components/Meta/Meta.d.ts +1 -1
  50. package/build/cjs/components/Meta/Meta.js.map +2 -2
  51. package/build/cjs/components/MiniToc/MiniToc.css.map +3 -3
  52. package/build/cjs/components/MiniToc/MiniToc.d.ts +2 -2
  53. package/build/cjs/components/MiniToc/MiniToc.js.map +2 -2
  54. package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  55. package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  56. package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
  57. package/build/cjs/components/Notification/Notification.css.map +1 -1
  58. package/build/cjs/components/OutsideClick/OutsideClick.d.ts +4 -3
  59. package/build/cjs/components/OutsideClick/OutsideClick.js.map +2 -2
  60. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  61. package/build/cjs/components/Paginator/Paginator.js.map +2 -2
  62. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  63. package/build/cjs/components/SearchBar/hooks.d.ts +1 -1
  64. package/build/cjs/components/SearchBar/hooks.js.map +2 -2
  65. package/build/cjs/components/SearchBar/withHighlightedSearchWords.d.ts +1 -1
  66. package/build/cjs/components/SearchBar/withHighlightedSearchWords.js.map +2 -2
  67. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  68. package/build/cjs/components/SearchPage/SearchPage.css.map +2 -2
  69. package/build/cjs/components/SearchSuggest/SearchInput.d.ts +1 -1
  70. package/build/cjs/components/SearchSuggest/SearchInput.js.map +2 -2
  71. package/build/cjs/components/SearchSuggest/Suggest.d.ts +2 -1
  72. package/build/cjs/components/SearchSuggest/Suggest.js.map +2 -2
  73. package/build/cjs/components/SearchSuggest/SuggestItem.js.map +2 -2
  74. package/build/cjs/components/SearchSuggest/index.css.map +1 -1
  75. package/build/cjs/components/SearchSuggest/useFocus.d.ts +1 -1
  76. package/build/cjs/components/SearchSuggest/useFocus.js.map +2 -2
  77. package/build/cjs/components/SearchSuggest/useProvider.js +1 -1
  78. package/build/cjs/components/SearchSuggest/useProvider.js.map +2 -2
  79. package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
  80. package/build/cjs/components/ShareButton/ShareButton.d.ts +2 -2
  81. package/build/cjs/components/ShareButton/ShareButton.js.map +2 -2
  82. package/build/cjs/components/StageLabel/StageLabel.js.map +2 -2
  83. package/build/cjs/components/SubNavigation/SubNavigation.css.map +1 -1
  84. package/build/cjs/components/SubNavigation/SubNavigation.d.ts +4 -3
  85. package/build/cjs/components/SubNavigation/SubNavigation.js.map +2 -2
  86. package/build/cjs/components/SubNavigation/hooks/useHeadingIntersectionObserver.d.ts +2 -2
  87. package/build/cjs/components/SubNavigation/hooks/useHeadingIntersectionObserver.js.map +2 -2
  88. package/build/cjs/components/Subscribe/Subscribe.css.map +2 -2
  89. package/build/cjs/components/Subscribe/Subscribe.d.ts +1 -1
  90. package/build/cjs/components/Subscribe/Subscribe.js.map +2 -2
  91. package/build/cjs/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +2 -2
  92. package/build/cjs/components/Subscribe/utils.d.ts +1 -1
  93. package/build/cjs/components/Subscribe/utils.js.map +1 -1
  94. package/build/cjs/components/Toc/Toc.css.map +1 -1
  95. package/build/cjs/components/Toc/Toc.d.ts +1 -1
  96. package/build/cjs/components/Toc/Toc.js +1 -1
  97. package/build/cjs/components/Toc/Toc.js.map +2 -2
  98. package/build/cjs/components/Toc/TocItemRegistry.d.ts +1 -1
  99. package/build/cjs/components/Toc/TocItemRegistry.js +2 -1
  100. package/build/cjs/components/Toc/TocItemRegistry.js.map +2 -2
  101. package/build/cjs/components/TocItem/TocItem.css.map +1 -1
  102. package/build/cjs/components/TocItem/TocItem.d.ts +1 -1
  103. package/build/cjs/components/TocItem/TocItem.js.map +2 -2
  104. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  105. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  106. package/build/cjs/components/TocNavPanel/TocNavPanel.d.ts +1 -1
  107. package/build/cjs/components/TocNavPanel/TocNavPanel.js.map +2 -2
  108. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  109. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  110. package/build/cjs/components/Widgets/Widgets.css.map +1 -1
  111. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  112. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.d.ts +3 -3
  113. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.js.map +2 -2
  114. package/build/cjs/components/navigation/CustomNavigation/hooks/useMainMenuOpenness.d.ts +1 -1
  115. package/build/cjs/components/navigation/CustomNavigation/hooks/useMainMenuOpenness.js.map +2 -2
  116. package/build/cjs/components/navigation/CustomNavigation/hooks/useSidebarOpenness.d.ts +1 -1
  117. package/build/cjs/components/navigation/CustomNavigation/hooks/useSidebarOpenness.js.map +2 -2
  118. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  119. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.d.ts +1 -1
  120. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.js.map +2 -2
  121. package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
  122. package/build/cjs/components/navigation/Sidebar/Sidebar.d.ts +2 -1
  123. package/build/cjs/components/navigation/Sidebar/Sidebar.js.map +2 -2
  124. package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  125. package/build/cjs/components/navigation/SidebarContent/SidebarContent.d.ts +5 -4
  126. package/build/cjs/components/navigation/SidebarContent/SidebarContent.js.map +2 -2
  127. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  128. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.d.ts +4 -3
  129. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.js.map +2 -2
  130. package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  131. package/build/cjs/components/navigation/hooks/useItemsWithCustomDropdowns.d.ts +1 -1
  132. package/build/cjs/components/navigation/hooks/useItemsWithCustomDropdowns.js.map +1 -1
  133. package/build/cjs/config/i18n.js.map +2 -2
  134. package/build/cjs/config/index.d.ts +1 -1
  135. package/build/cjs/config/index.js.map +2 -2
  136. package/build/cjs/contexts/RenderBodyHooksContext.d.ts +2 -2
  137. package/build/cjs/contexts/RenderBodyHooksContext.js.map +2 -2
  138. package/build/cjs/hoc/withLang.d.ts +2 -2
  139. package/build/cjs/hoc/withLang.js.map +2 -2
  140. package/build/cjs/hoc/withRouter.d.ts +2 -2
  141. package/build/cjs/hoc/withRouter.js.map +2 -2
  142. package/build/cjs/hooks/usePopper.d.ts +2 -2
  143. package/build/cjs/hooks/usePopper.js.map +2 -2
  144. package/build/cjs/i18n/index.d.ts +30 -14
  145. package/build/cjs/i18n/index.js +26 -21
  146. package/build/cjs/i18n/index.js.map +2 -2
  147. package/build/cjs/utils/index.js +1 -1
  148. package/build/cjs/utils/index.js.map +2 -2
  149. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  150. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  151. package/build/esm/components/Breadcrumbs/Breadcrumbs.d.ts +1 -1
  152. package/build/esm/components/Breadcrumbs/Breadcrumbs.js.map +2 -2
  153. package/build/esm/components/ConsentPopup/ConsentPopup.d.ts +1 -1
  154. package/build/esm/components/ConsentPopup/ConsentPopup.js.map +2 -2
  155. package/build/esm/components/ContributorAvatars/Avatars/Avatar.d.ts +1 -1
  156. package/build/esm/components/ContributorAvatars/Avatars/Avatar.js.map +2 -2
  157. package/build/esm/components/ContributorAvatars/Avatars/AvatarWithDescription.d.ts +2 -2
  158. package/build/esm/components/ContributorAvatars/Avatars/AvatarWithDescription.js.map +2 -2
  159. package/build/esm/components/ContributorAvatars/Avatars/HiddenAvatars.d.ts +2 -2
  160. package/build/esm/components/ContributorAvatars/Avatars/HiddenAvatars.js.map +2 -2
  161. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  162. package/build/esm/components/ContributorAvatars/ContributorAvatars.d.ts +1 -1
  163. package/build/esm/components/ContributorAvatars/ContributorAvatars.js.map +2 -2
  164. package/build/esm/components/ContributorAvatars/models.d.ts +1 -1
  165. package/build/esm/components/ContributorAvatars/models.js.map +1 -1
  166. package/build/esm/components/ContributorAvatars/utils.d.ts +1 -1
  167. package/build/esm/components/ContributorAvatars/utils.js.map +1 -1
  168. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  169. package/build/esm/components/Contributors/Contributors.d.ts +1 -1
  170. package/build/esm/components/Contributors/Contributors.js.map +2 -2
  171. package/build/esm/components/Control/Control.css.map +1 -1
  172. package/build/esm/components/Controls/Controls.css.map +1 -1
  173. package/build/esm/components/Controls/ControlsLayout.d.ts +2 -1
  174. package/build/esm/components/Controls/ControlsLayout.js.map +2 -2
  175. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  176. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  177. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  178. package/build/esm/components/DocLayout/DocLayout.css.map +3 -3
  179. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +2 -2
  180. package/build/esm/components/DocPage/DocPage.css.map +1 -1
  181. package/build/esm/components/DocPage/components/RenderBody/RenderBody.d.ts +1 -1
  182. package/build/esm/components/DocPage/components/RenderBody/RenderBody.js.map +2 -2
  183. package/build/esm/components/DocPage/components/RenderBodyWithHooks/RenderBodyWithHooks.d.ts +2 -2
  184. package/build/esm/components/DocPage/components/RenderBodyWithHooks/RenderBodyWithHooks.js.map +2 -2
  185. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  186. package/build/esm/components/DocPageTitle/DocPageTitle.d.ts +2 -1
  187. package/build/esm/components/DocPageTitle/DocPageTitle.js.map +2 -2
  188. package/build/esm/components/ErrorBoundary/ErrorBoundary.d.ts +2 -1
  189. package/build/esm/components/ErrorBoundary/ErrorBoundary.js.map +2 -2
  190. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  191. package/build/esm/components/ErrorPage/ErrorPage.js +2 -4
  192. package/build/esm/components/ErrorPage/ErrorPage.js.map +2 -2
  193. package/build/esm/components/Feedback/Feedback.css.map +2 -2
  194. package/build/esm/components/Feedback/Feedback.d.ts +1 -1
  195. package/build/esm/components/Feedback/Feedback.js.map +2 -2
  196. package/build/esm/components/Mark/Mark.css.map +1 -1
  197. package/build/esm/components/Meta/Meta.d.ts +1 -1
  198. package/build/esm/components/Meta/Meta.js.map +2 -2
  199. package/build/esm/components/MiniToc/MiniToc.css.map +3 -3
  200. package/build/esm/components/MiniToc/MiniToc.d.ts +2 -2
  201. package/build/esm/components/MiniToc/MiniToc.js.map +2 -2
  202. package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  203. package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  204. package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
  205. package/build/esm/components/Notification/Notification.css.map +1 -1
  206. package/build/esm/components/OutsideClick/OutsideClick.d.ts +4 -3
  207. package/build/esm/components/OutsideClick/OutsideClick.js.map +2 -2
  208. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  209. package/build/esm/components/Paginator/Paginator.js.map +2 -2
  210. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  211. package/build/esm/components/SearchBar/hooks.d.ts +1 -1
  212. package/build/esm/components/SearchBar/hooks.js.map +2 -2
  213. package/build/esm/components/SearchBar/withHighlightedSearchWords.d.ts +1 -1
  214. package/build/esm/components/SearchBar/withHighlightedSearchWords.js.map +2 -2
  215. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  216. package/build/esm/components/SearchPage/SearchPage.css.map +2 -2
  217. package/build/esm/components/SearchSuggest/SearchInput.d.ts +1 -1
  218. package/build/esm/components/SearchSuggest/SearchInput.js.map +2 -2
  219. package/build/esm/components/SearchSuggest/Suggest.d.ts +2 -1
  220. package/build/esm/components/SearchSuggest/Suggest.js.map +2 -2
  221. package/build/esm/components/SearchSuggest/SuggestItem.js.map +2 -2
  222. package/build/esm/components/SearchSuggest/index.css.map +1 -1
  223. package/build/esm/components/SearchSuggest/useFocus.d.ts +1 -1
  224. package/build/esm/components/SearchSuggest/useFocus.js.map +2 -2
  225. package/build/esm/components/SearchSuggest/useProvider.js +1 -1
  226. package/build/esm/components/SearchSuggest/useProvider.js.map +2 -2
  227. package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
  228. package/build/esm/components/ShareButton/ShareButton.d.ts +2 -2
  229. package/build/esm/components/ShareButton/ShareButton.js.map +2 -2
  230. package/build/esm/components/StageLabel/StageLabel.js.map +2 -2
  231. package/build/esm/components/SubNavigation/SubNavigation.css.map +1 -1
  232. package/build/esm/components/SubNavigation/SubNavigation.d.ts +4 -3
  233. package/build/esm/components/SubNavigation/SubNavigation.js.map +2 -2
  234. package/build/esm/components/SubNavigation/hooks/useHeadingIntersectionObserver.d.ts +2 -2
  235. package/build/esm/components/SubNavigation/hooks/useHeadingIntersectionObserver.js.map +2 -2
  236. package/build/esm/components/Subscribe/Subscribe.css.map +2 -2
  237. package/build/esm/components/Subscribe/Subscribe.d.ts +1 -1
  238. package/build/esm/components/Subscribe/Subscribe.js.map +2 -2
  239. package/build/esm/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +2 -2
  240. package/build/esm/components/Subscribe/utils.d.ts +1 -1
  241. package/build/esm/components/Subscribe/utils.js.map +1 -1
  242. package/build/esm/components/Toc/Toc.css.map +1 -1
  243. package/build/esm/components/Toc/Toc.d.ts +1 -1
  244. package/build/esm/components/Toc/Toc.js +1 -1
  245. package/build/esm/components/Toc/Toc.js.map +2 -2
  246. package/build/esm/components/Toc/TocItemRegistry.d.ts +1 -1
  247. package/build/esm/components/Toc/TocItemRegistry.js +2 -1
  248. package/build/esm/components/Toc/TocItemRegistry.js.map +2 -2
  249. package/build/esm/components/TocItem/TocItem.css.map +1 -1
  250. package/build/esm/components/TocItem/TocItem.d.ts +1 -1
  251. package/build/esm/components/TocItem/TocItem.js.map +2 -2
  252. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  253. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  254. package/build/esm/components/TocNavPanel/TocNavPanel.d.ts +1 -1
  255. package/build/esm/components/TocNavPanel/TocNavPanel.js.map +2 -2
  256. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  257. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  258. package/build/esm/components/Widgets/Widgets.css.map +1 -1
  259. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  260. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.d.ts +3 -3
  261. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.js.map +2 -2
  262. package/build/esm/components/navigation/CustomNavigation/hooks/useMainMenuOpenness.d.ts +1 -1
  263. package/build/esm/components/navigation/CustomNavigation/hooks/useMainMenuOpenness.js.map +2 -2
  264. package/build/esm/components/navigation/CustomNavigation/hooks/useSidebarOpenness.d.ts +1 -1
  265. package/build/esm/components/navigation/CustomNavigation/hooks/useSidebarOpenness.js.map +2 -2
  266. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  267. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.d.ts +1 -1
  268. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.js.map +2 -2
  269. package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
  270. package/build/esm/components/navigation/Sidebar/Sidebar.d.ts +2 -1
  271. package/build/esm/components/navigation/Sidebar/Sidebar.js.map +2 -2
  272. package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  273. package/build/esm/components/navigation/SidebarContent/SidebarContent.d.ts +5 -4
  274. package/build/esm/components/navigation/SidebarContent/SidebarContent.js +1 -5
  275. package/build/esm/components/navigation/SidebarContent/SidebarContent.js.map +2 -2
  276. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  277. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.d.ts +4 -3
  278. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.js.map +2 -2
  279. package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  280. package/build/esm/components/navigation/hooks/useItemsWithCustomDropdowns.d.ts +1 -1
  281. package/build/esm/components/navigation/hooks/useItemsWithCustomDropdowns.js.map +1 -1
  282. package/build/esm/config/i18n.js.map +2 -2
  283. package/build/esm/config/index.d.ts +1 -1
  284. package/build/esm/config/index.js.map +2 -2
  285. package/build/esm/contexts/RenderBodyHooksContext.d.ts +2 -2
  286. package/build/esm/contexts/RenderBodyHooksContext.js.map +2 -2
  287. package/build/esm/hoc/withLang.d.ts +2 -2
  288. package/build/esm/hoc/withLang.js.map +2 -2
  289. package/build/esm/hoc/withRouter.d.ts +2 -2
  290. package/build/esm/hoc/withRouter.js.map +2 -2
  291. package/build/esm/hooks/usePopper.d.ts +2 -2
  292. package/build/esm/hooks/usePopper.js.map +2 -2
  293. package/build/esm/i18n/index.d.ts +30 -14
  294. package/build/esm/i18n/index.js +26 -21
  295. package/build/esm/i18n/index.js.map +2 -2
  296. package/build/esm/utils/index.js +1 -1
  297. package/build/esm/utils/index.js.map +2 -2
  298. package/build/index.css.map +2 -2
  299. package/build/themes/common/index.css.map +2 -2
  300. package/package.json +3 -4
  301. package/src/i18n/ar.json +3 -2
  302. package/src/i18n/bg.json +3 -2
  303. package/src/i18n/cs.json +3 -2
  304. package/src/i18n/el.json +3 -2
  305. package/src/i18n/en.json +3 -2
  306. package/src/i18n/es.json +3 -2
  307. package/src/i18n/et.json +3 -2
  308. package/src/i18n/fr.json +3 -2
  309. package/src/i18n/he.json +3 -2
  310. package/src/i18n/kk.json +3 -2
  311. package/src/i18n/pt.json +3 -2
  312. package/src/i18n/ru.json +3 -2
  313. package/src/i18n/tr.json +3 -2
  314. package/src/i18n/uz.json +3 -2
  315. package/src/i18n/zh-tw.json +2 -1
  316. package/src/i18n/zh.json +1 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Paginator/Paginator.scss", "../../../../src/styles/mixins.scss", "../../../../src/components/Paginator/%3Cinput css yK9Aze%3E"],
3
+ "sources": ["../../../../src/components/Paginator/Paginator.scss", "../../../../src/styles/mixins.scss", "../../../../src/components/Paginator/%3Cinput css K2ZGiX%3E"],
4
4
  "sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.Paginator {\n $block: &;\n\n @include mixins.reset-list-style();\n\n display: flex;\n align-items: center;\n\n &__item {\n $item: &;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n min-width: 28px;\n min-height: 28px;\n margin: 4px;\n\n color: var(--g-color-text-primary);\n @include mixins.text-size(body-1);\n\n &_type {\n &_prev {\n margin: 4px 6px 4px 0;\n\n [dir='rtl'] & {\n transform: rotate(180deg);\n }\n }\n\n &_dots {\n min-width: 0;\n color: var(--g-color-text-secondary);\n }\n\n &_page {\n cursor: pointer;\n border-radius: 14px;\n\n &:hover {\n background: var(--g-color-base-simple-hover);\n }\n\n &#{$item}_active {\n color: var(--g-color-text-light-primary);\n background: var(--g-color-base-brand);\n cursor: default;\n }\n }\n\n &_next {\n margin: 4px 0 4px 6px;\n\n [dir='rtl'] & {\n transform: rotate(180deg);\n }\n }\n }\n }\n}\n", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n", ".Paginator {\n margin: 0;\n padding: 0;\n list-style: none;\n display: flex;\n align-items: center;\n}\n.Paginator__item {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 28px;\n min-height: 28px;\n margin: 4px;\n color: var(--g-color-text-primary);\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.Paginator__item_type_prev {\n margin: 4px 6px 4px 0;\n}\n[dir=rtl] .Paginator__item_type_prev {\n transform: rotate(180deg);\n}\n.Paginator__item_type_dots {\n min-width: 0;\n color: var(--g-color-text-secondary);\n}\n.Paginator__item_type_page {\n cursor: pointer;\n border-radius: 14px;\n}\n.Paginator__item_type_page:hover {\n background: var(--g-color-base-simple-hover);\n}\n.Paginator__item_type_page.Paginator__item_active {\n color: var(--g-color-text-light-primary);\n background: var(--g-color-base-brand);\n cursor: default;\n}\n.Paginator__item_type_next {\n margin: 4px 0 4px 6px;\n}\n[dir=rtl] .Paginator__item_type_next {\n transform: rotate(180deg);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1BhZ2luYXRvciIsInNvdXJjZXMiOlsiUGFnaW5hdG9yLnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUNNSTtFQUNBO0VBQ0E7RURIQTtFQUNBOztBQUVBO0VBR0k7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBRUE7RUNsQko7RUFDQTs7QURxQlE7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJOztBQUVBO0VBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcbkB1c2UgJy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuXG4uUGFnaW5hdG9yIHtcbiAgICAkYmxvY2s6ICY7XG5cbiAgICBAaW5jbHVkZSBtaXhpbnMucmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgICRpdGVtOiAmO1xuXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICBtaW4td2lkdGg6IDI4cHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIG1hcmdpbjogNHB4O1xuXG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgIEBpbmNsdWRlIG1peGlucy50ZXh0LXNpemUoYm9keS0xKTtcblxuICAgICAgICAmX3R5cGUge1xuICAgICAgICAgICAgJl9wcmV2IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDRweCA2cHggNHB4IDA7XG5cbiAgICAgICAgICAgICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfZG90cyB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9wYWdlIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTRweDtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2ltcGxlLWhvdmVyKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmI3skaXRlbX1fYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saWdodC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tZy1jb2xvci1iYXNlLWJyYW5kKTtcbiAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9uZXh0IHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDRweCAwIDRweCA2cHg7XG5cbiAgICAgICAgICAgICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIl19 */"],
5
5
  "mappings": ";AAGA,CAAA;ACMI,UAAA;AACA,WAAA;AACA,cAAA;ADHA,WAAA;AACA,eAAA;AEHJ;AFKI,CAAA;AAGI,WAAA;AACA,eAAA;AACA,mBAAA;AAEA,aAAA;AACA,cAAA;AACA,UAAA;AAEA,SAAA,IAAA;AClBJ,aAAA,IAAA;AACA,eAAA,IAAA;ACYJ;AFSY,CAAA;AACI,UAAA,IAAA,IAAA,IAAA;AEPhB;AFSgB,CAAA,SAAA,CAHJ;AAIQ,aAAA,OAAA;AEPpB;AFWY,CAAA;AACI,aAAA;AACA,SAAA,IAAA;AEThB;AFYY,CAAA;AACI,UAAA;AACA,iBAAA;AEVhB;AFYgB,CAJJ,yBAII;AACI,cAAA,IAAA;AEVpB;AFagB,CARJ,yBAQI,CAAA;AACI,SAAA,IAAA;AACA,cAAA,IAAA;AACA,UAAA;AEXpB;AFeY,CAAA;AACI,UAAA,IAAA,EAAA,IAAA;AEbhB;AFegB,CAAA,SAAA,CAHJ;AAIQ,aAAA,OAAA;AEbpB;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Paginator/Paginator.tsx"],
4
- "sourcesContent": ["import React, {ReactNode} from 'react';\nimport {ArrowLeft, ArrowRight} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../hooks';\n\nimport './Paginator.scss';\n\nconst b = block('Paginator');\n\nconst MOBILE_VISIBLE_PAGES = 1;\nconst DESKTOP_VISIBLE_PAGES = 3;\nconst MAX_VISIBLE_PAGES = 6;\n\nexport interface PaginatorDefaultProps {\n page: number;\n maxPages?: number;\n onPageChange: (page: number) => void;\n}\n\nexport interface PaginatorExtraProps {\n className?: string;\n isMobile?: boolean;\n}\n\nexport interface TotalCountItems {\n totalItems: number;\n itemsPerPage?: number;\n}\n\nexport type PaginatorProps = PaginatorExtraProps & PaginatorDefaultProps & TotalCountItems;\n\ninterface Modifications {\n [name: string]: string | boolean | undefined;\n}\n\ninterface PaginatorItemProps<T> {\n key: T;\n mods: Modifications;\n content: ReactNode;\n onClick?: (key: T) => void;\n}\n\nenum ArrowType {\n Prev = 'prev',\n Next = 'next',\n}\n\nconst Paginator = ({\n page = 1,\n itemsPerPage = 10,\n totalItems,\n maxPages = Infinity,\n className,\n isMobile = false,\n onPageChange,\n}: PaginatorProps) => {\n const {t} = useTranslation('paginator');\n\n const getPagesCount = () => {\n const totalPages = Math.ceil(totalItems / itemsPerPage);\n\n return Math.min(totalPages, maxPages);\n };\n\n const pagesCount = getPagesCount();\n\n if (pagesCount <= 1) {\n return null;\n }\n\n const renderPaginatorItem = <T,>({key, mods, content, onClick}: PaginatorItemProps<T>) => {\n return (\n <li\n key={`page_${key}`}\n className={b('item', mods)}\n onClick={onClick && onClick.bind(this, key)}\n aria-current={mods.active ? 'page' : undefined}\n >\n {content}\n </li>\n );\n };\n\n const handlePageChange = (newPage: number) => {\n if (onPageChange) {\n onPageChange(newPage);\n }\n };\n\n const handleArrowClick = (type: string) => {\n let newPage = page;\n if (type === 'prev' && page > 1) {\n newPage = page - 1;\n } else if (type === 'next' && page < pagesCount) {\n newPage = page + 1;\n }\n if (newPage !== page) {\n handlePageChange(newPage);\n }\n };\n\n const handlePageClick = (index: number) => {\n if (index !== page) {\n handlePageChange(index);\n }\n };\n\n const getPageConfigs = () => {\n const visiblePages = isMobile ? MOBILE_VISIBLE_PAGES : DESKTOP_VISIBLE_PAGES;\n\n const pages = [];\n\n for (let i = 1; i <= pagesCount; i++) {\n if (\n pagesCount <= MAX_VISIBLE_PAGES ||\n i <= visiblePages ||\n i > pagesCount - visiblePages ||\n (i >= page - 1 && i <= page + 1)\n ) {\n pages.push({\n key: i,\n mods: {type: 'page', active: page === i},\n onClick: handlePageClick,\n content: i,\n });\n } else if (pages.length > 0 && pages[pages.length - 1].key !== 'dots') {\n pages.push({\n key: 'dots',\n mods: {type: 'dots'},\n content: '...',\n });\n }\n }\n\n return pages;\n };\n\n const arrowButton = (disable: boolean, type: string) => {\n const label = t(type);\n const Icon = type === 'prev' ? ArrowLeft : ArrowRight;\n\n return (\n <Button\n className={b('icon')}\n size=\"s\"\n view={'flat'}\n disabled={disable}\n extraProps={{\n 'aria-label': label,\n }}\n >\n <Button.Icon>\n <Icon width={16} height={16} />\n </Button.Icon>\n </Button>\n );\n };\n\n const pages = getPageConfigs() as PaginatorItemProps<string>[];\n\n pages.unshift({\n key: ArrowType.Prev,\n mods: {type: 'prev'},\n onClick: handleArrowClick,\n content: arrowButton(page === 1, 'prev'),\n });\n\n pages.push({\n key: ArrowType.Next,\n mods: {type: 'next'},\n onClick: handleArrowClick,\n content: arrowButton(page === pagesCount, 'next'),\n });\n\n return <ul className={b(null, className)}>{pages.map(renderPaginatorItem)}</ul>;\n};\n\nexport default Paginator;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type {ReactNode} from 'react';\n\nimport React from 'react';\nimport {ArrowLeft, ArrowRight} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../hooks';\n\nimport './Paginator.scss';\n\nconst b = block('Paginator');\n\nconst MOBILE_VISIBLE_PAGES = 1;\nconst DESKTOP_VISIBLE_PAGES = 3;\nconst MAX_VISIBLE_PAGES = 6;\n\nexport interface PaginatorDefaultProps {\n page: number;\n maxPages?: number;\n onPageChange: (page: number) => void;\n}\n\nexport interface PaginatorExtraProps {\n className?: string;\n isMobile?: boolean;\n}\n\nexport interface TotalCountItems {\n totalItems: number;\n itemsPerPage?: number;\n}\n\nexport type PaginatorProps = PaginatorExtraProps & PaginatorDefaultProps & TotalCountItems;\n\ninterface Modifications {\n [name: string]: string | boolean | undefined;\n}\n\ninterface PaginatorItemProps<T> {\n key: T;\n mods: Modifications;\n content: ReactNode;\n onClick?: (key: T) => void;\n}\n\nenum ArrowType {\n Prev = 'prev',\n Next = 'next',\n}\n\nconst Paginator = ({\n page = 1,\n itemsPerPage = 10,\n totalItems,\n maxPages = Infinity,\n className,\n isMobile = false,\n onPageChange,\n}: PaginatorProps) => {\n const {t} = useTranslation('paginator');\n\n const getPagesCount = () => {\n const totalPages = Math.ceil(totalItems / itemsPerPage);\n\n return Math.min(totalPages, maxPages);\n };\n\n const pagesCount = getPagesCount();\n\n if (pagesCount <= 1) {\n return null;\n }\n\n const renderPaginatorItem = <T,>({key, mods, content, onClick}: PaginatorItemProps<T>) => {\n return (\n <li\n key={`page_${key}`}\n className={b('item', mods)}\n onClick={onClick && onClick.bind(this, key)}\n aria-current={mods.active ? 'page' : undefined}\n >\n {content}\n </li>\n );\n };\n\n const handlePageChange = (newPage: number) => {\n if (onPageChange) {\n onPageChange(newPage);\n }\n };\n\n const handleArrowClick = (type: string) => {\n let newPage = page;\n if (type === 'prev' && page > 1) {\n newPage = page - 1;\n } else if (type === 'next' && page < pagesCount) {\n newPage = page + 1;\n }\n if (newPage !== page) {\n handlePageChange(newPage);\n }\n };\n\n const handlePageClick = (index: number) => {\n if (index !== page) {\n handlePageChange(index);\n }\n };\n\n const getPageConfigs = () => {\n const visiblePages = isMobile ? MOBILE_VISIBLE_PAGES : DESKTOP_VISIBLE_PAGES;\n\n const pages = [];\n\n for (let i = 1; i <= pagesCount; i++) {\n if (\n pagesCount <= MAX_VISIBLE_PAGES ||\n i <= visiblePages ||\n i > pagesCount - visiblePages ||\n (i >= page - 1 && i <= page + 1)\n ) {\n pages.push({\n key: i,\n mods: {type: 'page', active: page === i},\n onClick: handlePageClick,\n content: i,\n });\n } else if (pages.length > 0 && pages[pages.length - 1].key !== 'dots') {\n pages.push({\n key: 'dots',\n mods: {type: 'dots'},\n content: '...',\n });\n }\n }\n\n return pages;\n };\n\n const arrowButton = (disable: boolean, type: string) => {\n const label = t(type);\n const Icon = type === 'prev' ? ArrowLeft : ArrowRight;\n\n return (\n <Button\n className={b('icon')}\n size=\"s\"\n view={'flat'}\n disabled={disable}\n extraProps={{\n 'aria-label': label,\n }}\n >\n <Button.Icon>\n <Icon width={16} height={16} />\n </Button.Icon>\n </Button>\n );\n };\n\n const pages = getPageConfigs() as PaginatorItemProps<string>[];\n\n pages.unshift({\n key: ArrowType.Prev,\n mods: {type: 'prev'},\n onClick: handleArrowClick,\n content: arrowButton(page === 1, 'prev'),\n });\n\n pages.push({\n key: ArrowType.Next,\n mods: {type: 'next'},\n onClick: handleArrowClick,\n content: arrowButton(page === pagesCount, 'next'),\n });\n\n return <ul className={b(null, className)}>{pages.map(renderPaginatorItem)}</ul>;\n};\n\nexport default Paginator;\n"],
5
+ "mappings": "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",
6
6
  "names": ["pages"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/SearchBar/SearchBar.scss", "../../../../src/components/SearchBar/%3Cinput css -wTyMH%3E"],
3
+ "sources": ["../../../../src/components/SearchBar/SearchBar.scss", "../../../../src/components/SearchBar/%3Cinput css mD6j-x%3E"],
4
4
  "sourcesContent": ["@use 'sass:map';\n@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-bar {\n width: 100%;\n height: 100%;\n border-radius: 5px;\n box-sizing: border-box;\n box-shadow: 0px 3px 10px var(--g-color-base-generic-accent);\n padding: 11px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n\n &__search-query-label {\n color: var(--g-color-text-secondary);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') + 1) {\n display: none;\n }\n }\n\n &__search-query {\n max-width: 400px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') + 1) {\n display: none;\n }\n }\n\n &__left {\n width: 90%;\n display: flex;\n align-items: center;\n }\n\n &__navigation {\n display: flex;\n align-items: center;\n margin-right: 11px;\n }\n\n &__next-arrow {\n transform: rotate(-180deg);\n }\n\n &__counter {\n margin: 0 4px;\n }\n}\n\n$hl-class: '.dc-search-highlighted';\n\n#{$hl-class} {\n background: var(--dc-text-highlight);\n\n &_selected {\n background: var(--dc-text-highlight-selected);\n }\n}\n", ".dc-search-bar {\n width: 100%;\n height: 100%;\n border-radius: 5px;\n box-sizing: border-box;\n box-shadow: 0px 3px 10px var(--g-color-base-generic-accent);\n padding: 11px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n}\n.dc-search-bar__search-query-label {\n color: var(--g-color-text-secondary);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n@media (max-width: 770px) {\n .dc-search-bar__search-query-label {\n display: none;\n }\n}\n.dc-search-bar__search-query {\n max-width: 400px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n@media (max-width: 770px) {\n .dc-search-bar__search-query {\n display: none;\n }\n}\n.dc-search-bar__left {\n width: 90%;\n display: flex;\n align-items: center;\n}\n.dc-search-bar__navigation {\n display: flex;\n align-items: center;\n margin-right: 11px;\n}\n.dc-search-bar__next-arrow {\n transform: rotate(-180deg);\n}\n.dc-search-bar__counter {\n margin: 0 4px;\n}\n\n.dc-search-highlighted {\n background: var(--dc-text-highlight);\n}\n.dc-search-highlighted_selected {\n background: var(--dc-text-highlight-selected);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaEJhciIsInNvdXJjZXMiOlsiU2VhcmNoQmFyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFOSjtJQU9ROzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBTko7SUFPUTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOzs7QUFNUjtFQUNJOztBQUVBO0VBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcbkB1c2UgJy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuXG4uZGMtc2VhcmNoLWJhciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaGFkb3c6IDBweCAzcHggMTBweCB2YXIoLS1nLWNvbG9yLWJhc2UtZ2VuZXJpYy1hY2NlbnQpO1xuICAgIHBhZGRpbmc6IDExcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtbGluZS1oZWlnaHQpO1xuXG4gICAgJl9fc2VhcmNoLXF1ZXJ5LWxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSArIDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWFyY2gtcXVlcnkge1xuICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSArIDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sZWZ0IHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMXB4O1xuICAgIH1cblxuICAgICZfX25leHQtYXJyb3cge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICB9XG5cbiAgICAmX19jb3VudGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICB9XG59XG5cbiRobC1jbGFzczogJy5kYy1zZWFyY2gtaGlnaGxpZ2h0ZWQnO1xuXG4jeyRobC1jbGFzc30ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRjLXRleHQtaGlnaGxpZ2h0KTtcblxuICAgICZfc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYy10ZXh0LWhpZ2hsaWdodC1zZWxlY3RlZCk7XG4gICAgfVxufVxuIl19 */"],
5
5
  "mappings": ";AAIA,CAAA;AACI,SAAA;AACA,UAAA;AACA,iBAAA;AACA,cAAA;AACA,cAAA,IAAA,IAAA,KAAA,IAAA;AACA,WAAA;AACA,WAAA;AACA,eAAA;AACA,mBAAA;AAEA,aAAA,IAAA;AACA,eAAA,IAAA;ACJJ;ADMI,CAAA;AACI,SAAA,IAAA;AACA,eAAA;AACA,iBAAA;AACA,YAAA;ACJR;ADMQ,QAAA,WAAA;AANJ,GAAA;AAOQ,aAAA;ACHV;AACF;ADMI,CAAA;AACI,aAAA;AACA,eAAA;AACA,iBAAA;AACA,YAAA;ACJR;ADMQ,QAAA,WAAA;AANJ,GAAA;AAOQ,aAAA;ACHV;AACF;ADMI,CAAA;AACI,SAAA;AACA,WAAA;AACA,eAAA;ACJR;ADOI,CAAA;AACI,WAAA;AACA,eAAA;AACA,gBAAA;ACLR;ADQI,CAAA;AACI,aAAA,OAAA;ACNR;ADSI,CAAA;AACI,UAAA,EAAA;ACPR;ADaA,CAAA;AACI,cAAA,IAAA;ACVJ;ADYI,CAAA;AACI,cAAA,IAAA;ACVR;",
6
6
  "names": []
@@ -1,4 +1,4 @@
1
- import { SyntheticEvent } from 'react';
1
+ import type { SyntheticEvent } from 'react';
2
2
  type UseHighlightedSearchWords = {
3
3
  html: string;
4
4
  searchWords: string[];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchBar/hooks.ts"],
4
- "sourcesContent": ["import {SyntheticEvent, useCallback, useEffect, useRef, useState} from 'react';\nimport throttle from 'lodash/throttle';\n\nimport {CLASSNAME, CLASSNAME_SELECTED, HIGHLIGHT_OPTIONS} from './constants';\nimport {getHighlightedItemIndexInView, highlight, scrollToItem} from './utils';\n\ntype UseHighlightedSearchWords = {\n html: string;\n searchWords: string[];\n showSearchBar: boolean;\n onNotFoundWords?: () => void;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nexport function useHighlightedSearchWords({\n html,\n searchWords,\n showSearchBar,\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n onNotFoundWords,\n}: UseHighlightedSearchWords) {\n const highlightedHtml = useHighlightedHTMLString(html, searchWords, showSearchBar);\n\n const {wasChangedDOM, onContentMutation, onContentLoaded} = useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n });\n\n const highlightedDOMElements = useHighlightedDOMElements(\n highlightedHtml,\n wasChangedDOM,\n showSearchBar,\n );\n\n const searchBarIsVisible = useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n });\n\n useNoSearchWordsFoundEffect({highlightedDOMElements, showSearchBar, onNotFoundWords});\n\n return {\n highlightedHtml,\n highlightedDOMElements,\n searchBarIsVisible,\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\nfunction useHighlightedDOMElements(\n highlightedHtml: string,\n wasChangedDOM: boolean,\n showSearchBar: boolean,\n) {\n const cachedHighlightedDOMElements = useRef<Element[]>([] as Element[]);\n\n useEffect(() => {\n cachedHighlightedDOMElements.current = [];\n }, [highlightedHtml]);\n\n useEffect(() => {\n if (wasChangedDOM) {\n cachedHighlightedDOMElements.current = [];\n }\n }, [wasChangedDOM]);\n\n if (cachedHighlightedDOMElements.current.length) {\n return cachedHighlightedDOMElements.current;\n }\n\n if (!showSearchBar || typeof document === 'undefined') {\n return [];\n }\n\n const elements = Array.from(document.querySelectorAll(`.${CLASSNAME}`));\n cachedHighlightedDOMElements.current = elements;\n\n return cachedHighlightedDOMElements.current;\n}\n\n/* Try wrapping the search words in an html string by span elements with a highlight class */\nfunction useHighlightedHTMLString(html: string, searchWords: string[], showSearchBar: boolean) {\n const [highlightedHtml, setHighlightedHtml] = useState(html);\n\n useEffect(() => {\n if (!searchWords.length || !showSearchBar) {\n setHighlightedHtml(html);\n return;\n }\n\n const highlightedResult = highlight({\n html,\n keywords: searchWords,\n options: HIGHLIGHT_OPTIONS,\n });\n\n if (highlightedResult.includes(CLASSNAME)) {\n setHighlightedHtml(highlightedResult);\n } else {\n setHighlightedHtml(html);\n }\n }, [html, searchWords, showSearchBar]);\n\n return highlightedHtml;\n}\n\ntype UseSearchBarIsVisible = {\n showSearchBar: boolean;\n searchWords: string[];\n html: string;\n highlightedHtml: string;\n};\n\nfunction useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n}: UseSearchBarIsVisible) {\n const [searchBarIsVisible, setSearchBarIsVisible] = useState(showSearchBar);\n\n useEffect(() => {\n setSearchBarIsVisible(\n showSearchBar && Boolean(searchWords && searchWords.length) && highlightedHtml !== html,\n );\n }, [showSearchBar, searchWords, highlightedHtml, html]);\n\n return searchBarIsVisible;\n}\n\ntype UseCallbackDOMChange = {\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nfunction useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n}: UseCallbackDOMChange) {\n const [wasChangedDOM, setWasChangedDOM] = useState(false);\n\n useEffect(() => {\n if (wasChangedDOM) {\n setWasChangedDOM(false);\n }\n }, [wasChangedDOM]);\n\n /* Callback for dangerouslySetInnerHTML when inserting content */\n const onContentMutation = useCallback(() => {\n if (_onContentMutation) {\n _onContentMutation();\n }\n\n setWasChangedDOM(true);\n }, [_onContentMutation]);\n\n /* Callback for loading resources after inserting content */\n const onContentLoaded = useCallback(() => {\n if (_onContentLoaded) {\n _onContentLoaded();\n }\n\n setWasChangedDOM(true);\n }, [_onContentLoaded]);\n\n return {\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\ntype UseNoSearchWordsFoundEffect = {\n showSearchBar: boolean;\n highlightedDOMElements: Element[];\n onNotFoundWords?: () => void;\n};\n\nexport function useNoSearchWordsFoundEffect({\n showSearchBar,\n highlightedDOMElements,\n onNotFoundWords,\n}: UseNoSearchWordsFoundEffect) {\n useEffect(() => {\n if (!onNotFoundWords) {\n return;\n }\n\n if (showSearchBar && !highlightedDOMElements.length) {\n onNotFoundWords();\n }\n }, [highlightedDOMElements, showSearchBar, onNotFoundWords]);\n}\n\ntype UseSearchBarNavigation = {\n highlightedDOMElements: Element[];\n stopSyncOnScroll: () => void;\n headerHeight: number;\n hash?: string;\n};\n\nexport function useSearchBarNavigation({\n highlightedDOMElements,\n stopSyncOnScroll,\n headerHeight,\n hash,\n}: UseSearchBarNavigation) {\n const [searchCurrentIndex, setSearchCurrentIndex] = useState(1);\n const [searchCountResults, setSearchCountResults] = useState(1);\n\n useEffect(() => {\n const startIndex =\n getHighlightedItemIndexInView({highlightedDOMElements, headerHeight, hash}) || 1;\n\n setSearchCurrentIndex(startIndex);\n setSearchCountResults(highlightedDOMElements.length || 1);\n }, [highlightedDOMElements, headerHeight, hash]);\n\n const onClickNextSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex + 1;\n if (newIndex > highlightedDOMElements.length) {\n newIndex = 1;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n const onClickPrevSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex - 1;\n if (newIndex < 1) {\n newIndex = highlightedDOMElements.length;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n return {\n searchCurrentIndex,\n setSearchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n };\n}\n\ntype UseHighlightCurrentWordEffect = {\n highlightedDOMElements: Element[];\n searchCurrentIndex: number;\n wasChangedDOM: boolean;\n syncOnScroll: boolean;\n hash?: string;\n};\n\nexport function useCurrentWordSelectionEffect({\n searchCurrentIndex,\n highlightedDOMElements,\n wasChangedDOM,\n syncOnScroll,\n hash,\n}: UseHighlightCurrentWordEffect) {\n useEffect(() => {\n try {\n if (!highlightedDOMElements || !highlightedDOMElements.length) {\n return;\n }\n\n for (let index = 0; index < highlightedDOMElements.length; index++) {\n const item = highlightedDOMElements[index];\n\n item.classList.remove(CLASSNAME_SELECTED);\n }\n\n const item = highlightedDOMElements[searchCurrentIndex - 1];\n item.classList.add(CLASSNAME_SELECTED);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }, [highlightedDOMElements, searchCurrentIndex, wasChangedDOM]);\n\n useEffect(() => {\n if (syncOnScroll) {\n return;\n }\n\n scrollToItem(highlightedDOMElements[searchCurrentIndex - 1]);\n }, [wasChangedDOM, searchCurrentIndex, highlightedDOMElements, syncOnScroll, hash]);\n}\n\ntype UseCurrentWordSelectionSyncScrollEffect = {\n highlightedDOMElements: Element[];\n searchWords: string[];\n syncOnScroll: boolean;\n searchBarIsVisible: boolean;\n setSearchCurrentIndex: (index: number) => void;\n headerHeight: number;\n setSyncOnScroll: (flag: boolean) => void;\n};\n\nexport function useCurrentWordSelectionSyncScrollEffect({\n highlightedDOMElements,\n searchWords,\n syncOnScroll,\n searchBarIsVisible,\n setSearchCurrentIndex,\n headerHeight,\n setSyncOnScroll,\n}: UseCurrentWordSelectionSyncScrollEffect) {\n const scrollEndTimer = useRef<ReturnType<typeof setTimeout>>();\n\n const handleScroll = useCallback(() => {\n if (scrollEndTimer.current) {\n clearTimeout(scrollEndTimer.current);\n }\n\n scrollEndTimer.current = setTimeout(() => {\n setSyncOnScroll(true);\n }, 50);\n\n if (!syncOnScroll || !searchBarIsVisible) {\n return;\n }\n\n const highlightedItemIndexInView = getHighlightedItemIndexInView({\n highlightedDOMElements,\n headerHeight,\n });\n\n if (isNaN(highlightedItemIndexInView as number)) {\n return;\n }\n\n setSearchCurrentIndex(highlightedItemIndexInView as number);\n }, [\n setSyncOnScroll,\n searchBarIsVisible,\n syncOnScroll,\n setSearchCurrentIndex,\n highlightedDOMElements,\n headerHeight,\n ]);\n\n const handleScrollThrottled = throttle(handleScroll, 50);\n\n useEffect(() => {\n if (searchBarIsVisible) {\n window.addEventListener('scroll', handleScrollThrottled);\n }\n return () => {\n window.removeEventListener('scroll', handleScrollThrottled);\n };\n }, [searchBarIsVisible, searchWords, handleScrollThrottled]);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type {SyntheticEvent} from 'react';\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport throttle from 'lodash/throttle';\n\nimport {CLASSNAME, CLASSNAME_SELECTED, HIGHLIGHT_OPTIONS} from './constants';\nimport {getHighlightedItemIndexInView, highlight, scrollToItem} from './utils';\n\ntype UseHighlightedSearchWords = {\n html: string;\n searchWords: string[];\n showSearchBar: boolean;\n onNotFoundWords?: () => void;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nexport function useHighlightedSearchWords({\n html,\n searchWords,\n showSearchBar,\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n onNotFoundWords,\n}: UseHighlightedSearchWords) {\n const highlightedHtml = useHighlightedHTMLString(html, searchWords, showSearchBar);\n\n const {wasChangedDOM, onContentMutation, onContentLoaded} = useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n });\n\n const highlightedDOMElements = useHighlightedDOMElements(\n highlightedHtml,\n wasChangedDOM,\n showSearchBar,\n );\n\n const searchBarIsVisible = useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n });\n\n useNoSearchWordsFoundEffect({highlightedDOMElements, showSearchBar, onNotFoundWords});\n\n return {\n highlightedHtml,\n highlightedDOMElements,\n searchBarIsVisible,\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\nfunction useHighlightedDOMElements(\n highlightedHtml: string,\n wasChangedDOM: boolean,\n showSearchBar: boolean,\n) {\n const cachedHighlightedDOMElements = useRef<Element[]>([] as Element[]);\n\n useEffect(() => {\n cachedHighlightedDOMElements.current = [];\n }, [highlightedHtml]);\n\n useEffect(() => {\n if (wasChangedDOM) {\n cachedHighlightedDOMElements.current = [];\n }\n }, [wasChangedDOM]);\n\n if (cachedHighlightedDOMElements.current.length) {\n return cachedHighlightedDOMElements.current;\n }\n\n if (!showSearchBar || typeof document === 'undefined') {\n return [];\n }\n\n const elements = Array.from(document.querySelectorAll(`.${CLASSNAME}`));\n cachedHighlightedDOMElements.current = elements;\n\n return cachedHighlightedDOMElements.current;\n}\n\n/* Try wrapping the search words in an html string by span elements with a highlight class */\nfunction useHighlightedHTMLString(html: string, searchWords: string[], showSearchBar: boolean) {\n const [highlightedHtml, setHighlightedHtml] = useState(html);\n\n useEffect(() => {\n if (!searchWords.length || !showSearchBar) {\n setHighlightedHtml(html);\n return;\n }\n\n const highlightedResult = highlight({\n html,\n keywords: searchWords,\n options: HIGHLIGHT_OPTIONS,\n });\n\n if (highlightedResult.includes(CLASSNAME)) {\n setHighlightedHtml(highlightedResult);\n } else {\n setHighlightedHtml(html);\n }\n }, [html, searchWords, showSearchBar]);\n\n return highlightedHtml;\n}\n\ntype UseSearchBarIsVisible = {\n showSearchBar: boolean;\n searchWords: string[];\n html: string;\n highlightedHtml: string;\n};\n\nfunction useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n}: UseSearchBarIsVisible) {\n const [searchBarIsVisible, setSearchBarIsVisible] = useState(showSearchBar);\n\n useEffect(() => {\n setSearchBarIsVisible(\n showSearchBar && Boolean(searchWords && searchWords.length) && highlightedHtml !== html,\n );\n }, [showSearchBar, searchWords, highlightedHtml, html]);\n\n return searchBarIsVisible;\n}\n\ntype UseCallbackDOMChange = {\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nfunction useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n}: UseCallbackDOMChange) {\n const [wasChangedDOM, setWasChangedDOM] = useState(false);\n\n useEffect(() => {\n if (wasChangedDOM) {\n setWasChangedDOM(false);\n }\n }, [wasChangedDOM]);\n\n /* Callback for dangerouslySetInnerHTML when inserting content */\n const onContentMutation = useCallback(() => {\n if (_onContentMutation) {\n _onContentMutation();\n }\n\n setWasChangedDOM(true);\n }, [_onContentMutation]);\n\n /* Callback for loading resources after inserting content */\n const onContentLoaded = useCallback(() => {\n if (_onContentLoaded) {\n _onContentLoaded();\n }\n\n setWasChangedDOM(true);\n }, [_onContentLoaded]);\n\n return {\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\ntype UseNoSearchWordsFoundEffect = {\n showSearchBar: boolean;\n highlightedDOMElements: Element[];\n onNotFoundWords?: () => void;\n};\n\nexport function useNoSearchWordsFoundEffect({\n showSearchBar,\n highlightedDOMElements,\n onNotFoundWords,\n}: UseNoSearchWordsFoundEffect) {\n useEffect(() => {\n if (!onNotFoundWords) {\n return;\n }\n\n if (showSearchBar && !highlightedDOMElements.length) {\n onNotFoundWords();\n }\n }, [highlightedDOMElements, showSearchBar, onNotFoundWords]);\n}\n\ntype UseSearchBarNavigation = {\n highlightedDOMElements: Element[];\n stopSyncOnScroll: () => void;\n headerHeight: number;\n hash?: string;\n};\n\nexport function useSearchBarNavigation({\n highlightedDOMElements,\n stopSyncOnScroll,\n headerHeight,\n hash,\n}: UseSearchBarNavigation) {\n const [searchCurrentIndex, setSearchCurrentIndex] = useState(1);\n const [searchCountResults, setSearchCountResults] = useState(1);\n\n useEffect(() => {\n const startIndex =\n getHighlightedItemIndexInView({highlightedDOMElements, headerHeight, hash}) || 1;\n\n setSearchCurrentIndex(startIndex);\n setSearchCountResults(highlightedDOMElements.length || 1);\n }, [highlightedDOMElements, headerHeight, hash]);\n\n const onClickNextSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex + 1;\n if (newIndex > highlightedDOMElements.length) {\n newIndex = 1;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n const onClickPrevSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex - 1;\n if (newIndex < 1) {\n newIndex = highlightedDOMElements.length;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n return {\n searchCurrentIndex,\n setSearchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n };\n}\n\ntype UseHighlightCurrentWordEffect = {\n highlightedDOMElements: Element[];\n searchCurrentIndex: number;\n wasChangedDOM: boolean;\n syncOnScroll: boolean;\n hash?: string;\n};\n\nexport function useCurrentWordSelectionEffect({\n searchCurrentIndex,\n highlightedDOMElements,\n wasChangedDOM,\n syncOnScroll,\n hash,\n}: UseHighlightCurrentWordEffect) {\n useEffect(() => {\n try {\n if (!highlightedDOMElements || !highlightedDOMElements.length) {\n return;\n }\n\n for (let index = 0; index < highlightedDOMElements.length; index++) {\n const item = highlightedDOMElements[index];\n\n item.classList.remove(CLASSNAME_SELECTED);\n }\n\n const item = highlightedDOMElements[searchCurrentIndex - 1];\n item.classList.add(CLASSNAME_SELECTED);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }, [highlightedDOMElements, searchCurrentIndex, wasChangedDOM]);\n\n useEffect(() => {\n if (syncOnScroll) {\n return;\n }\n\n scrollToItem(highlightedDOMElements[searchCurrentIndex - 1]);\n }, [wasChangedDOM, searchCurrentIndex, highlightedDOMElements, syncOnScroll, hash]);\n}\n\ntype UseCurrentWordSelectionSyncScrollEffect = {\n highlightedDOMElements: Element[];\n searchWords: string[];\n syncOnScroll: boolean;\n searchBarIsVisible: boolean;\n setSearchCurrentIndex: (index: number) => void;\n headerHeight: number;\n setSyncOnScroll: (flag: boolean) => void;\n};\n\nexport function useCurrentWordSelectionSyncScrollEffect({\n highlightedDOMElements,\n searchWords,\n syncOnScroll,\n searchBarIsVisible,\n setSearchCurrentIndex,\n headerHeight,\n setSyncOnScroll,\n}: UseCurrentWordSelectionSyncScrollEffect) {\n const scrollEndTimer = useRef<ReturnType<typeof setTimeout>>();\n\n const handleScroll = useCallback(() => {\n if (scrollEndTimer.current) {\n clearTimeout(scrollEndTimer.current);\n }\n\n scrollEndTimer.current = setTimeout(() => {\n setSyncOnScroll(true);\n }, 50);\n\n if (!syncOnScroll || !searchBarIsVisible) {\n return;\n }\n\n const highlightedItemIndexInView = getHighlightedItemIndexInView({\n highlightedDOMElements,\n headerHeight,\n });\n\n if (isNaN(highlightedItemIndexInView as number)) {\n return;\n }\n\n setSearchCurrentIndex(highlightedItemIndexInView as number);\n }, [\n setSyncOnScroll,\n searchBarIsVisible,\n syncOnScroll,\n setSearchCurrentIndex,\n highlightedDOMElements,\n headerHeight,\n ]);\n\n const handleScrollThrottled = throttle(handleScroll, 50);\n\n useEffect(() => {\n if (searchBarIsVisible) {\n window.addEventListener('scroll', handleScrollThrottled);\n }\n return () => {\n window.removeEventListener('scroll', handleScrollThrottled);\n };\n }, [searchBarIsVisible, searchWords, handleScrollThrottled]);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["item"]
7
7
  }
@@ -1,5 +1,5 @@
1
+ import type { DocPageData, Router } from '../../models';
1
2
  import React from 'react';
2
- import { DocPageData, Router } from '../../models';
3
3
  export interface SearchWordsHighlighterProps extends DocPageData {
4
4
  useSearchBar?: boolean;
5
5
  searchWords?: string[];
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchBar/withHighlightedSearchWords.tsx"],
4
- "sourcesContent": ["import React, {useCallback, useEffect, useState} from 'react';\n\nimport {DocPageData, Router} from '../../models';\n\nimport {\n useCurrentWordSelectionEffect,\n useCurrentWordSelectionSyncScrollEffect,\n useHighlightedSearchWords,\n useSearchBarNavigation,\n} from './hooks';\n\nexport interface SearchWordsHighlighterProps extends DocPageData {\n useSearchBar?: boolean;\n searchWords?: string[];\n showSearchBar?: boolean;\n onCloseSearchBar?: () => void;\n onNotFoundWords?: () => void;\n searchQuery?: string;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n headerHeight?: number;\n router: Router;\n}\n\nfunction withHighlightedSearchWords<T extends SearchWordsHighlighterProps>(\n Component: React.ComponentType<T>,\n) {\n const SearchWordsHighlighter: React.FC<SearchWordsHighlighterProps & T> = (\n props,\n ): JSX.Element | null => {\n const {\n html,\n searchWords = [],\n showSearchBar = false,\n onCloseSearchBar,\n onNotFoundWords = () => {},\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n headerHeight = 0,\n router: {hash},\n } = props;\n\n const [syncOnScroll, setSyncOnScroll] = useState<boolean>(true);\n const stopSyncOnScroll = useCallback(() => setSyncOnScroll(false), []);\n\n useEffect(() => {\n setSyncOnScroll(false);\n }, [html, searchWords]);\n\n const {\n highlightedHtml,\n highlightedDOMElements,\n searchBarIsVisible,\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n } = useHighlightedSearchWords({\n html,\n searchWords,\n showSearchBar,\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n onNotFoundWords,\n });\n\n const {\n searchCurrentIndex,\n setSearchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n } = useSearchBarNavigation({highlightedDOMElements, stopSyncOnScroll, headerHeight, hash});\n\n useCurrentWordSelectionEffect({\n searchCurrentIndex,\n highlightedDOMElements,\n wasChangedDOM,\n syncOnScroll,\n hash,\n });\n\n /* Sync scroll with a current item in viewport */\n useCurrentWordSelectionSyncScrollEffect({\n highlightedDOMElements,\n searchWords,\n syncOnScroll,\n searchBarIsVisible,\n setSearchCurrentIndex,\n headerHeight,\n setSyncOnScroll,\n });\n\n if (searchBarIsVisible) {\n return (\n <Component\n {...props}\n html={highlightedHtml}\n onContentMutation={onContentMutation}\n onContentLoaded={onContentLoaded}\n searchCurrentIndex={searchCurrentIndex}\n searchCountResults={searchCountResults}\n onCloseSearchBar={onCloseSearchBar}\n onClickPrevSearch={onClickPrevSearch}\n onClickNextSearch={onClickNextSearch}\n />\n );\n }\n\n return <Component {...props} showSearchBar={false} />;\n };\n\n const SearchWordsHighlighterWrapper: React.FC<SearchWordsHighlighterProps & T> = (\n props,\n ): JSX.Element | null => {\n const {useSearchBar = false} = props;\n\n if (useSearchBar) {\n return <SearchWordsHighlighter {...props} />;\n }\n\n return <Component {...props} />;\n };\n\n return SearchWordsHighlighterWrapper;\n}\n\nexport default withHighlightedSearchWords;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,SAAQ,aAAa,WAAW,gBAAe;AAItD;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAeP,SAAS,2BACL,WACF;AACE,QAAM,yBAAoE,CACtE,UACqB;AACrB,UAAM;AAAA,MACF;AAAA,MACA,cAAc,CAAC;AAAA,MACf,gBAAgB;AAAA,MAChB;AAAA,MACA,kBAAkB,MAAM;AAAA,MAAC;AAAA,MACzB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,QAAQ,EAAC,KAAI;AAAA,IACjB,IAAI;AAEJ,UAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,IAAI;AAC9D,UAAM,mBAAmB,YAAY,MAAM,gBAAgB,KAAK,GAAG,CAAC,CAAC;AAErE,cAAU,MAAM;AACZ,sBAAgB,KAAK;AAAA,IACzB,GAAG,CAAC,MAAM,WAAW,CAAC;AAEtB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,0BAA0B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB;AAAA,IACJ,CAAC;AAED,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,uBAAuB,EAAC,wBAAwB,kBAAkB,cAAc,KAAI,CAAC;AAEzF,kCAA8B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAGD,4CAAwC;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,QAAI,oBAAoB;AACpB,aACI;AAAA,QAAC;AAAA,yCACO,QADP;AAAA,UAEG,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACJ;AAAA,IAER;AAEA,WAAO,oCAAC,4CAAc,QAAd,EAAqB,eAAe,QAAO;AAAA,EACvD;AAEA,QAAM,gCAA2E,CAC7E,UACqB;AACrB,UAAM,EAAC,eAAe,MAAK,IAAI;AAE/B,QAAI,cAAc;AACd,aAAO,oCAAC,2CAA2B,MAAO;AAAA,IAC9C;AAEA,WAAO,oCAAC,8BAAc,MAAO;AAAA,EACjC;AAEA,SAAO;AACX;AAEA,IAAO,qCAAQ;",
4
+ "sourcesContent": ["import type {DocPageData, Router} from '../../models';\n\nimport React, {useCallback, useEffect, useState} from 'react';\n\nimport {\n useCurrentWordSelectionEffect,\n useCurrentWordSelectionSyncScrollEffect,\n useHighlightedSearchWords,\n useSearchBarNavigation,\n} from './hooks';\n\nexport interface SearchWordsHighlighterProps extends DocPageData {\n useSearchBar?: boolean;\n searchWords?: string[];\n showSearchBar?: boolean;\n onCloseSearchBar?: () => void;\n onNotFoundWords?: () => void;\n searchQuery?: string;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n headerHeight?: number;\n router: Router;\n}\n\nfunction withHighlightedSearchWords<T extends SearchWordsHighlighterProps>(\n Component: React.ComponentType<T>,\n) {\n const SearchWordsHighlighter: React.FC<SearchWordsHighlighterProps & T> = (\n props,\n ): JSX.Element | null => {\n const {\n html,\n searchWords = [],\n showSearchBar = false,\n onCloseSearchBar,\n onNotFoundWords = () => {},\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n headerHeight = 0,\n router: {hash},\n } = props;\n\n const [syncOnScroll, setSyncOnScroll] = useState<boolean>(true);\n const stopSyncOnScroll = useCallback(() => setSyncOnScroll(false), []);\n\n useEffect(() => {\n setSyncOnScroll(false);\n }, [html, searchWords]);\n\n const {\n highlightedHtml,\n highlightedDOMElements,\n searchBarIsVisible,\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n } = useHighlightedSearchWords({\n html,\n searchWords,\n showSearchBar,\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n onNotFoundWords,\n });\n\n const {\n searchCurrentIndex,\n setSearchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n } = useSearchBarNavigation({highlightedDOMElements, stopSyncOnScroll, headerHeight, hash});\n\n useCurrentWordSelectionEffect({\n searchCurrentIndex,\n highlightedDOMElements,\n wasChangedDOM,\n syncOnScroll,\n hash,\n });\n\n /* Sync scroll with a current item in viewport */\n useCurrentWordSelectionSyncScrollEffect({\n highlightedDOMElements,\n searchWords,\n syncOnScroll,\n searchBarIsVisible,\n setSearchCurrentIndex,\n headerHeight,\n setSyncOnScroll,\n });\n\n if (searchBarIsVisible) {\n return (\n <Component\n {...props}\n html={highlightedHtml}\n onContentMutation={onContentMutation}\n onContentLoaded={onContentLoaded}\n searchCurrentIndex={searchCurrentIndex}\n searchCountResults={searchCountResults}\n onCloseSearchBar={onCloseSearchBar}\n onClickPrevSearch={onClickPrevSearch}\n onClickNextSearch={onClickNextSearch}\n />\n );\n }\n\n return <Component {...props} showSearchBar={false} />;\n };\n\n const SearchWordsHighlighterWrapper: React.FC<SearchWordsHighlighterProps & T> = (\n props,\n ): JSX.Element | null => {\n const {useSearchBar = false} = props;\n\n if (useSearchBar) {\n return <SearchWordsHighlighter {...props} />;\n }\n\n return <Component {...props} />;\n };\n\n return SearchWordsHighlighterWrapper;\n}\n\nexport default withHighlightedSearchWords;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAQ,aAAa,WAAW,gBAAe;AAEtD;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAeP,SAAS,2BACL,WACF;AACE,QAAM,yBAAoE,CACtE,UACqB;AACrB,UAAM;AAAA,MACF;AAAA,MACA,cAAc,CAAC;AAAA,MACf,gBAAgB;AAAA,MAChB;AAAA,MACA,kBAAkB,MAAM;AAAA,MAAC;AAAA,MACzB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,QAAQ,EAAC,KAAI;AAAA,IACjB,IAAI;AAEJ,UAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,IAAI;AAC9D,UAAM,mBAAmB,YAAY,MAAM,gBAAgB,KAAK,GAAG,CAAC,CAAC;AAErE,cAAU,MAAM;AACZ,sBAAgB,KAAK;AAAA,IACzB,GAAG,CAAC,MAAM,WAAW,CAAC;AAEtB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,0BAA0B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB;AAAA,IACJ,CAAC;AAED,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,uBAAuB,EAAC,wBAAwB,kBAAkB,cAAc,KAAI,CAAC;AAEzF,kCAA8B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAGD,4CAAwC;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,QAAI,oBAAoB;AACpB,aACI;AAAA,QAAC;AAAA,yCACO,QADP;AAAA,UAEG,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACJ;AAAA,IAER;AAEA,WAAO,oCAAC,4CAAc,QAAd,EAAqB,eAAe,QAAO;AAAA,EACvD;AAEA,QAAM,gCAA2E,CAC7E,UACqB;AACrB,UAAM,EAAC,eAAe,MAAK,IAAI;AAE/B,QAAI,cAAc;AACd,aAAO,oCAAC,2CAA2B,MAAO;AAAA,IAC9C;AAEA,WAAO,oCAAC,8BAAc,MAAO;AAAA,EACjC;AAEA,SAAO;AACX;AAEA,IAAO,qCAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/SearchItem/SearchItem.scss", "../../../../src/components/SearchItem/%3Cinput css NOWmmV%3E", "../../../../src/styles/mixins.scss"],
3
+ "sources": ["../../../../src/components/SearchItem/SearchItem.scss", "../../../../src/components/SearchItem/%3Cinput css alRi33%3E", "../../../../src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.SearchItem {\n &__link {\n cursor: pointer;\n color: inherit;\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n }\n\n &__marks-wrapper {\n display: none;\n justify-content: flex-end;\n align-items: center;\n }\n\n &__marks {\n height: 16px;\n margin-top: 10px;\n }\n\n &__mark {\n margin-right: 20px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n &__item-wrapper:hover &__marks-wrapper {\n display: flex;\n }\n\n &__item-wrapper {\n margin-bottom: 20px;\n @include mixins.text-size(body-1);\n }\n\n &__item {\n display: block;\n overflow: hidden;\n text-decoration: none;\n\n cursor: pointer;\n text-overflow: ellipsis;\n border-radius: var(--g-focus-border-radius);\n @include mixins.focusable();\n\n &-title,\n &-description {\n display: block;\n overflow: hidden;\n\n text-overflow: ellipsis;\n }\n\n &-title {\n margin-bottom: 4px;\n }\n\n &-title,\n &-title &-search-token {\n color: var(--g-color-text-primary);\n\n @include mixins.text-size(subheader-3);\n @include mixins.link();\n }\n\n &-title:hover &-search-token {\n color: var(--g-color-text-link-hover);\n }\n\n &-description {\n display: inline-block;\n color: var(--g-color-text-secondary);\n\n em {\n font-weight: bolder;\n }\n\n &::after {\n content: '...';\n display: inline;\n }\n }\n &-description &-search-token {\n color: var(--g-color-text-primary);\n }\n }\n}\n", ".SearchItem__link {\n cursor: pointer;\n color: inherit;\n}\n.SearchItem__link:hover, .SearchItem__link:active {\n color: var(--g-color-text-link-hover);\n}\n.SearchItem__marks-wrapper {\n display: none;\n justify-content: flex-end;\n align-items: center;\n}\n.SearchItem__marks {\n height: 16px;\n margin-top: 10px;\n}\n.SearchItem__mark {\n margin-right: 20px;\n}\n.SearchItem__mark:last-child {\n margin-right: 0;\n}\n.SearchItem__item-wrapper:hover .SearchItem__marks-wrapper {\n display: flex;\n}\n.SearchItem__item-wrapper {\n margin-bottom: 20px;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.SearchItem__item {\n display: block;\n overflow: hidden;\n text-decoration: none;\n cursor: pointer;\n text-overflow: ellipsis;\n border-radius: var(--g-focus-border-radius);\n}\n.SearchItem__item:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: 0;\n}\n.SearchItem__item:focus:not(:focus-visible) {\n outline: 0;\n}\n.SearchItem__item-title, .SearchItem__item-description {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.SearchItem__item-title {\n margin-bottom: 4px;\n}\n.SearchItem__item-title, .SearchItem__item-title .SearchItem__item-search-token {\n color: var(--g-color-text-primary);\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n outline: none;\n}\n.utilityfocus .SearchItem__item-title:focus, .utilityfocus .SearchItem__item-title .SearchItem__item-search-token:focus {\n outline: 2px solid #ffdb4d;\n}\n.SearchItem__item-title:focus, .SearchItem__item-title .SearchItem__item-search-token:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.SearchItem__item-title:focus:not(:focus-visible), .SearchItem__item-title .SearchItem__item-search-token:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.SearchItem__item-title:hover, .SearchItem__item-title:active, .SearchItem__item-title .SearchItem__item-search-token:hover, .SearchItem__item-title .SearchItem__item-search-token:active {\n color: var(--g-color-text-link-hover);\n}\n.SearchItem__item-title:hover .SearchItem__item-search-token {\n color: var(--g-color-text-link-hover);\n}\n.SearchItem__item-description {\n display: inline-block;\n color: var(--g-color-text-secondary);\n}\n.SearchItem__item-description em {\n font-weight: bolder;\n}\n.SearchItem__item-description::after {\n content: \"...\";\n display: inline;\n}\n.SearchItem__item-description .SearchItem__item-search-token {\n color: var(--g-color-text-primary);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaEl0ZW0iLCJzb3VyY2VzIjpbIlNlYXJjaEl0ZW0uc2NzcyIsIi4uLy4uL3N0eWxlcy9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJSTtFQUNJO0VBQ0E7O0FBRUE7RUFFSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTtFQ2xDSjtFQUNBOztBRHFDQTtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUNmQTtFQUNJO0VBQ0EsZ0JBSmM7O0FBTWxCO0VBQ0k7O0FEYUo7RUFFSTtFQUNBO0VBRUE7O0FBR0o7RUFDSTs7QUFHSjtFQUVJO0VDOURSO0VBQ0E7RUFrREE7RUFDQTtFQUNBO0VBQ0E7RUFqQ0E7O0FBRUE7RUFDSTs7QUFnQkE7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBZVI7RUFFSTs7QURNQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFHUjtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLlNlYXJjaEl0ZW0ge1xuICAgICZfX2xpbmsge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYXJrcy13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19tYXJrcyB7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAmX19tYXJrIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLXdyYXBwZXI6aG92ZXIgJl9fbWFya3Mtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgJl9faXRlbS13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShib2R5LTEpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIEBpbmNsdWRlIG1peGlucy5mb2N1c2FibGUoKTtcblxuICAgICAgICAmLXRpdGxlLFxuICAgICAgICAmLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtdGl0bGUsXG4gICAgICAgICYtdGl0bGUgJi1zZWFyY2gtdG9rZW4ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1wcmltYXJ5KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShzdWJoZWFkZXItMyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMubGluaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi10aXRsZTpob3ZlciAmLXNlYXJjaC10b2tlbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmstaG92ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG5cbiAgICAgICAgICAgIGVtIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJy4uLic7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtZGVzY3JpcHRpb24gJi1zZWFyY2gtdG9rZW4ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiB0ZXh0LXNpemUoJG5hbWUpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWl4aW4gZml4QW5jaG9yUG9zaXRpb24oJG9mZnNldDogMHB4KSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG9mZnNldH0gLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgaXNsYW5kcy1mb2N1cygpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXNhYmxlKDAsICdib3gtc2hhZG93Jyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzMoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMik7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0xKTtcbn1cblxuQG1peGluIGhlYWRpbmc1KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGhlYWRpbmc2KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGRlc2t0b3AtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iXX0= */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n"],
5
5
  "mappings": ";AAII,CAAA;AACI,UAAA;AACA,SAAA;ACHR;ADKQ,CAJJ,gBAII;AAAA,CAJJ,gBAII;AAEI,SAAA,IAAA;ACJZ;ADQI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,eAAA;ACNR;ADSI,CAAA;AACI,UAAA;AACA,cAAA;ACPR;ADUI,CAAA;AACI,gBAAA;ACRR;ADUQ,CAHJ,gBAGI;AACI,gBAAA;ACRZ;ADYI,CAAA,wBAAA,OAAA,CAnBA;AAoBI,WAAA;ACVR;ADaI,CAJA;AAKI,iBAAA;AElCJ,aAAA,IAAA;AACA,eAAA,IAAA;ADwBJ;ADaI,CAAA;AACI,WAAA;AACA,YAAA;AACA,2BAAA;AAAA,mBAAA;AAEA,UAAA;AACA,iBAAA;AACA,iBAAA,IAAA;ACZR;ACHQ,CFQJ,gBERI;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ADKZ;ACHQ,CFIJ,gBEJI,MAAA,KAAA;AACI,WAAA;ADKZ;ADQQ,CAAA;AAAA,CAAA;AAEI,WAAA;AACA,YAAA;AAEA,iBAAA;ACRZ;ADWQ,CARA;AASI,iBAAA;ACTZ;ADYQ,CAZA;AAYA,CAZA,uBAYA,CAAA;AAEI,SAAA,IAAA;AE9DR,aAAA,IAAA;AACA,eAAA,IAAA;AAkDA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;AAjCA,WAAA;ADqCJ;ACnCI,CAAA,aAAA,CFyBI,sBEzBJ;AAAA,CAAA,aAAA,CFyBI,uBEzBJ,CFqCI,6BErCJ;AACI,WAAA,IAAA,MAAA;ADqCR;ACrBQ,CFQA,sBERA;AAAA,CFQA,uBERA,CFoBA,6BEpBA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADuBZ;ACrBQ,CFIA,sBEJA,MAAA,KAAA;AAAA,CFIA,uBEJA,CFgBA,6BEhBA,MAAA,KAAA;AACI,cAAA;ADuBZ;ACRI,CFZI,sBEYJ;AAAA,CFZI,sBEYJ;AAAA,CFZI,uBEYJ,CFAI,6BEAJ;AAAA,CFZI,uBEYJ,CFAI,6BEAJ;AAEI,SAAA,IAAA;ADSR;ADHQ,CApBA,sBAoBA,OAAA,CARA;AASI,SAAA,IAAA;ACKZ;ADFQ,CAxBA;AAyBI,WAAA;AACA,SAAA,IAAA;ACIZ;ADFY,CA5BJ,6BA4BI;AACI,eAAA;ACIhB;ADDY,CAhCJ,4BAgCI;AACI,WAAA;AACA,WAAA;ACGhB;ADAQ,CArCA,6BAqCA,CAzBA;AA0BI,SAAA,IAAA;ACEZ;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/SearchPage/SearchPage.scss", "../../../../src/components/SearchPage/%3Cinput css MxicUO%3E", "../../../../src/styles/variables.scss"],
4
- "sourcesContent": ["@use 'sass:map';\n@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-page {\n margin-top: 26px;\n display: flex;\n justify-content: center;\n\n &__layout {\n max-width: variables.$centerBlockMaxWidth;\n width: 100%;\n }\n\n &__search-field-wrapper {\n display: flex;\n align-items: center;\n }\n\n &__search-button {\n margin-left: 10px;\n }\n\n &__search {\n &-field,\n &-item {\n margin-bottom: 36px;\n }\n }\n\n &__subtitle {\n margin-bottom: 18px;\n }\n\n &__paginator {\n padding: 10px 0;\n border-top: 1px solid var(--g-color-line-generic);\n }\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md')) {\n margin-top: 16px;\n\n &__layout {\n padding: 0 12px;\n }\n\n &__search {\n &-field {\n margin-bottom: 24px;\n }\n\n &-item {\n margin-bottom: 40px;\n }\n }\n }\n}\n", ".dc-search-page {\n margin-top: 26px;\n display: flex;\n justify-content: center;\n}\n.dc-search-page__layout {\n max-width: 736px;\n width: 100%;\n}\n.dc-search-page__search-field-wrapper {\n display: flex;\n align-items: center;\n}\n.dc-search-page__search-button {\n margin-left: 10px;\n}\n.dc-search-page__search-field, .dc-search-page__search-item {\n margin-bottom: 36px;\n}\n.dc-search-page__subtitle {\n margin-bottom: 18px;\n}\n.dc-search-page__paginator {\n padding: 10px 0;\n border-top: 1px solid var(--g-color-line-generic);\n}\n@media (max-width: 769px) {\n .dc-search-page {\n margin-top: 16px;\n }\n .dc-search-page__layout {\n padding: 0 12px;\n }\n .dc-search-page__search-field {\n margin-bottom: 24px;\n }\n .dc-search-page__search-item {\n margin-bottom: 40px;\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaFBhZ2UiLCJzb3VyY2VzIjpbIlNlYXJjaFBhZ2Uuc2NzcyIsIi4uLy4uL3N0eWxlcy92YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLFdDQ2M7RURBZDs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFJQTtFQUVJOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBbkNKO0lBb0NROztFQUVBO0lBQ0k7O0VBSUE7SUFDSTs7RUFHSjtJQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLmRjLXNlYXJjaC1wYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAyNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmX19sYXlvdXQge1xuICAgICAgICBtYXgtd2lkdGg6IHZhcmlhYmxlcy4kY2VudGVyQmxvY2tNYXhXaWR0aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3NlYXJjaC1idXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmX19zZWFyY2gge1xuICAgICAgICAmLWZpZWxkLFxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YnRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICB9XG5cbiAgICAmX19wYWdpbmF0b3Ige1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcblxuICAgICAgICAmX19sYXlvdXQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoIHtcbiAgICAgICAgICAgICYtZmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIFNpemVzXG4kaGVhZGVySGVpZ2h0OiAwcHg7XG4kc3ViSGVhZGVySGVpZ2h0OiA0MHB4O1xuJHN1Yk5hdmlnYXRpb25IZWlnaHQ6IDUycHg7XG4kbm9ybWFsT2Zmc2V0OiAyMHB4O1xuJG1pbmlUb2NPZmZzZXQ6IDU2cHg7XG4kYmxvY2tNYXJnaW5Cb3R0b21MYXJnZTogMjBweDtcbiRibG9ja01hcmdpbkJvdHRvbU1lZGl1bTogMTVweDtcbiRoZWFkZXJNYXJnaW5Ub3BMYXJnZTogNDBweDtcbiRoZWFkZXJNYXJnaW5Ub3BNZWRpdW06IDMycHg7XG4kcG9wdXBQYWRkaW5nOiAxNnB4O1xuJGNlbnRlckJsb2NrTWF4V2lkdGg6IDczNnB4O1xuXG4vLyBOYXZpZ2F0aW9uXG4kdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZzogNHB4O1xuJHRvTWFpbk1lbnVIb3Jpem9udGFsUGFkZGluZzogMTJweDtcbiR0b01haW5NZW51SGVpZ2h0OiBjYWxjKFxuICAgIHZhcigtLWRjLXN1Ym5hdmlnYXRpb24taGVpZ2h0LCAkc3ViTmF2aWdhdGlvbkhlaWdodCkgLSAjeyR0b01haW5NZW51VmVydGljYWxQYWRkaW5nfSAtICN7JHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmd9XG4pO1xuXG4vLyBNaW5pVG9jXG4kbWluaVRvY1ZlcnRpY2FsUGFkZGluZzogMTZweDtcbiRtaW5pVG9jVGl0bGVIZWlnaHQ6IDIwcHg7IC8vIGxpbmUtaGVpZ2h0IGJvZHktMlxuJG1pbmlUb2NUaXRsZU1hcmdpbjogMTJweDtcbiRtb2JpbGVNaW5pVG9jT2Zmc2V0OiAyICogJG1pbmlUb2NWZXJ0aWNhbFBhZGRpbmcgKyAkbWluaVRvY1RpdGxlSGVpZ2h0ICsgJG1pbmlUb2NUaXRsZU1hcmdpbjtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iXX0= */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} - #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n"],
3
+ "sources": ["../../../../src/components/SearchPage/SearchPage.scss", "../../../../src/components/SearchPage/%3Cinput css fCVz0U%3E", "../../../../src/styles/variables.scss"],
4
+ "sourcesContent": ["@use 'sass:map';\n@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-page {\n margin-top: 26px;\n display: flex;\n justify-content: center;\n\n &__layout {\n max-width: variables.$centerBlockMaxWidth;\n width: 100%;\n }\n\n &__search-field-wrapper {\n display: flex;\n align-items: center;\n }\n\n &__search-button {\n margin-left: 10px;\n }\n\n &__search {\n &-field,\n &-item {\n margin-bottom: 36px;\n }\n }\n\n &__subtitle {\n margin-bottom: 18px;\n }\n\n &__paginator {\n padding: 10px 0;\n border-top: 1px solid var(--g-color-line-generic);\n }\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md')) {\n margin-top: 16px;\n\n &__layout {\n padding: 0 12px;\n }\n\n &__search {\n &-field {\n margin-bottom: 24px;\n }\n\n &-item {\n margin-bottom: 40px;\n }\n }\n }\n}\n", ".dc-search-page {\n margin-top: 26px;\n display: flex;\n justify-content: center;\n}\n.dc-search-page__layout {\n max-width: 736px;\n width: 100%;\n}\n.dc-search-page__search-field-wrapper {\n display: flex;\n align-items: center;\n}\n.dc-search-page__search-button {\n margin-left: 10px;\n}\n.dc-search-page__search-field, .dc-search-page__search-item {\n margin-bottom: 36px;\n}\n.dc-search-page__subtitle {\n margin-bottom: 18px;\n}\n.dc-search-page__paginator {\n padding: 10px 0;\n border-top: 1px solid var(--g-color-line-generic);\n}\n@media (max-width: 769px) {\n .dc-search-page {\n margin-top: 16px;\n }\n .dc-search-page__layout {\n padding: 0 12px;\n }\n .dc-search-page__search-field {\n margin-bottom: 24px;\n }\n .dc-search-page__search-item {\n margin-bottom: 40px;\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaFBhZ2UiLCJzb3VyY2VzIjpbIlNlYXJjaFBhZ2Uuc2NzcyIsIi4uLy4uL3N0eWxlcy92YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLFdDQ2M7RURBZDs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFJQTtFQUVJOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBbkNKO0lBb0NROztFQUVBO0lBQ0k7O0VBSUE7SUFDSTs7RUFHSjtJQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLmRjLXNlYXJjaC1wYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAyNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmX19sYXlvdXQge1xuICAgICAgICBtYXgtd2lkdGg6IHZhcmlhYmxlcy4kY2VudGVyQmxvY2tNYXhXaWR0aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3NlYXJjaC1idXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmX19zZWFyY2gge1xuICAgICAgICAmLWZpZWxkLFxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YnRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICB9XG5cbiAgICAmX19wYWdpbmF0b3Ige1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcblxuICAgICAgICAmX19sYXlvdXQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoIHtcbiAgICAgICAgICAgICYtZmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIFNpemVzXG4kaGVhZGVySGVpZ2h0OiAwcHg7XG4kc3ViSGVhZGVySGVpZ2h0OiA0MHB4O1xuJHN1Yk5hdmlnYXRpb25IZWlnaHQ6IDUycHg7XG4kbm9ybWFsT2Zmc2V0OiAyMHB4O1xuJG1pbmlUb2NPZmZzZXQ6IDU2cHg7XG4kYmxvY2tNYXJnaW5Cb3R0b21MYXJnZTogMjBweDtcbiRibG9ja01hcmdpbkJvdHRvbU1lZGl1bTogMTVweDtcbiRoZWFkZXJNYXJnaW5Ub3BMYXJnZTogNDBweDtcbiRoZWFkZXJNYXJnaW5Ub3BNZWRpdW06IDMycHg7XG4kcG9wdXBQYWRkaW5nOiAxNnB4O1xuJGNlbnRlckJsb2NrTWF4V2lkdGg6IDczNnB4O1xuXG4vLyBOYXZpZ2F0aW9uXG4kdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZzogNHB4O1xuJHRvTWFpbk1lbnVIb3Jpem9udGFsUGFkZGluZzogMTJweDtcbiR0b01haW5NZW51SGVpZ2h0OiBjYWxjKFxuICAgIHZhcigtLWRjLXN1Ym5hdmlnYXRpb24taGVpZ2h0LCAkc3ViTmF2aWdhdGlvbkhlaWdodCkgLSAjeyR0b01haW5NZW51VmVydGljYWxQYWRkaW5nfSAtXG4gICAgICAgICN7JHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmd9XG4pO1xuXG4vLyBNaW5pVG9jXG4kbWluaVRvY1ZlcnRpY2FsUGFkZGluZzogMTZweDtcbiRtaW5pVG9jVGl0bGVIZWlnaHQ6IDIwcHg7IC8vIGxpbmUtaGVpZ2h0IGJvZHktMlxuJG1pbmlUb2NUaXRsZU1hcmdpbjogMTJweDtcbiRtb2JpbGVNaW5pVG9jT2Zmc2V0OiAyICogJG1pbmlUb2NWZXJ0aWNhbFBhZGRpbmcgKyAkbWluaVRvY1RpdGxlSGVpZ2h0ICsgJG1pbmlUb2NUaXRsZU1hcmdpbjtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iXX0= */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} -\n #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n"],
5
5
  "mappings": ";AAIA,CAAA;AACI,cAAA;AACA,WAAA;AACA,mBAAA;ACHJ;ADKI,CAAA;AACI,aAAA;AACA,SAAA;ACHR;ADMI,CAAA;AACI,WAAA;AACA,eAAA;ACJR;ADOI,CAAA;AACI,eAAA;ACLR;ADSQ,CAAA;AAAA,CAAA;AAEI,iBAAA;ACRZ;ADYI,CAAA;AACI,iBAAA;ACVR;ADaI,CAAA;AACI,WAAA,KAAA;AACA,cAAA,IAAA,MAAA,IAAA;ACXR;ADcI,QAAA,WAAA;AAnCJ,GAAA;AAoCQ,gBAAA;ACXN;ADaM,GAjCJ;AAkCQ,aAAA,EAAA;ACXV;ADeU,GAvBJ;AAwBQ,mBAAA;ACbd;ADgBU,GA3BJ;AA4BQ,mBAAA;ACdd;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import type { KeyboardEvent, SyntheticEvent } from 'react';
2
+ import type { TextInputSize } from '@gravity-ui/uikit';
2
3
  import React from 'react';
3
- import { TextInputSize } from '@gravity-ui/uikit';
4
4
  type SuggestInputProps = {
5
5
  id: string;
6
6
  text: string;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/SearchInput.tsx"],
4
- "sourcesContent": ["import type {KeyboardEvent, SyntheticEvent} from 'react';\n\nimport React, {forwardRef, memo} from 'react';\nimport {TextInput, TextInputSize} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\ntype SuggestInputProps = {\n id: string;\n text: string;\n size?: TextInputSize;\n autoFocus?: boolean;\n placeholder?: string;\n endContent?: React.ReactNode;\n onUpdate?: (item: string) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n onFocus?: (event: SyntheticEvent) => void;\n onBlur?: (event: SyntheticEvent) => void;\n className?: string;\n controlProps?: React.InputHTMLAttributes<HTMLInputElement>;\n};\n\nconst b = block('dc-search-input');\n\nexport const SearchInput = memo(\n forwardRef<HTMLElement, SuggestInputProps>((props, ref) => {\n const {\n id,\n text,\n size,\n autoFocus,\n placeholder,\n endContent,\n onBlur,\n onFocus,\n onUpdate,\n onKeyDown,\n className,\n controlProps,\n } = props;\n\n return (\n <TextInput\n ref={ref}\n size={size}\n value={text}\n placeholder={placeholder}\n endContent={endContent}\n autoComplete={false}\n autoFocus={autoFocus}\n hasClear={false}\n onBlur={onBlur}\n onUpdate={onUpdate}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n className={b('input', className)}\n id={id}\n controlProps={{\n role: 'combobox',\n 'aria-autocomplete': 'list',\n ...(controlProps || {}),\n }}\n />\n );\n }),\n);\n\nSearchInput.displayName = 'SuggestInput';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAEA,OAAO,SAAQ,YAAY,YAAW;AACtC,SAAQ,iBAA+B;AACvC,OAAO,WAAW;AAiBlB,IAAM,IAAI,MAAM,iBAAiB;AAE1B,IAAM,cAAc;AAAA,EACvB,WAA2C,CAAC,OAAO,QAAQ;AACvD,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI;AAEJ,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,EAAE,SAAS,SAAS;AAAA,QAC/B;AAAA,QACA,cAAc;AAAA,UACV,MAAM;AAAA,UACN,qBAAqB;AAAA,WACjB,gBAAgB,CAAC;AAAA;AAAA,IAE7B;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;",
4
+ "sourcesContent": ["import type {KeyboardEvent, SyntheticEvent} from 'react';\nimport type {TextInputSize} from '@gravity-ui/uikit';\n\nimport React, {forwardRef, memo} from 'react';\nimport {TextInput} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\ntype SuggestInputProps = {\n id: string;\n text: string;\n size?: TextInputSize;\n autoFocus?: boolean;\n placeholder?: string;\n endContent?: React.ReactNode;\n onUpdate?: (item: string) => void;\n onKeyDown?: (event: KeyboardEvent<HTMLElement>) => void;\n onFocus?: (event: SyntheticEvent) => void;\n onBlur?: (event: SyntheticEvent) => void;\n className?: string;\n controlProps?: React.InputHTMLAttributes<HTMLInputElement>;\n};\n\nconst b = block('dc-search-input');\n\nexport const SearchInput = memo(\n forwardRef<HTMLElement, SuggestInputProps>((props, ref) => {\n const {\n id,\n text,\n size,\n autoFocus,\n placeholder,\n endContent,\n onBlur,\n onFocus,\n onUpdate,\n onKeyDown,\n className,\n controlProps,\n } = props;\n\n return (\n <TextInput\n ref={ref}\n size={size}\n value={text}\n placeholder={placeholder}\n endContent={endContent}\n autoComplete={false}\n autoFocus={autoFocus}\n hasClear={false}\n onBlur={onBlur}\n onUpdate={onUpdate}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n className={b('input', className)}\n id={id}\n controlProps={{\n role: 'combobox',\n 'aria-autocomplete': 'list',\n ...(controlProps || {}),\n }}\n />\n );\n }),\n);\n\nSearchInput.displayName = 'SuggestInput';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAGA,OAAO,SAAQ,YAAY,YAAW;AACtC,SAAQ,iBAAgB;AACxB,OAAO,WAAW;AAiBlB,IAAM,IAAI,MAAM,iBAAiB;AAE1B,IAAM,cAAc;AAAA,EACvB,WAA2C,CAAC,OAAO,QAAQ;AACvD,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI;AAEJ,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP;AAAA,QACA;AAAA,QACA,cAAc;AAAA,QACd;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW,EAAE,SAAS,SAAS;AAAA,QAC/B;AAAA,QACA,cAAc;AAAA,UACV,MAAM;AAAA,UACN,qBAAqB;AAAA,WACjB,gBAAgB,CAAC;AAAA;AAAA,IAE7B;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,9 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { ISearchProvider } from '../../models';
3
3
  import type { SearchSuggestItem } from './types';
4
+ import type { ListItemData } from '@gravity-ui/uikit';
4
5
  import React from 'react';
5
- import { List, ListItemData } from '@gravity-ui/uikit';
6
+ import { List } from '@gravity-ui/uikit';
6
7
  import './index.scss';
7
8
  type SuggestListProps = {
8
9
  id: string;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/Suggest.tsx"],
4
- "sourcesContent": ["import type {ReactNode} from 'react';\nimport type {ISearchProvider} from '../../models';\nimport type {SearchSuggestItem} from './types';\n\nimport React, {forwardRef, memo, useEffect} from 'react';\nimport {List, ListItemData, Loader} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport pick from 'lodash/pick';\n\nimport {useTranslation} from '../../hooks';\n\nimport {useProvider} from './useProvider';\nimport './index.scss';\n\nconst b = block('dc-search-suggest');\n\nconst SuggestLoader = memo(() => {\n return (\n <div className={b('loader')}>\n <Loader />\n </div>\n );\n});\n\nSuggestLoader.displayName = 'SuggestLoader';\n\nconst SuggestEmpty = memo<{query: string}>(({query}) => {\n const {t} = useTranslation('search-suggest');\n\n return <div className={b('list', {empty: true})}>{t('search-suggest_not-found', {query})}</div>;\n});\n\nSuggestEmpty.displayName = 'SuggestEmpty';\n\ntype SuggestListProps = {\n id: string;\n items: SearchSuggestItem[];\n renderItem: (item: SearchSuggestItem) => ReactNode;\n onItemClick: (\n item: ListItemData<SearchSuggestItem>,\n index?: number,\n fromKeyboard?: boolean,\n ) => boolean | void;\n onChangeActive: (index?: number) => void;\n};\n\nconst SuggestList = memo(\n forwardRef<List<SearchSuggestItem>, SuggestListProps>((props, ref) => {\n const {id, items, renderItem, onItemClick, onChangeActive} = props;\n\n return (\n <List\n ref={ref}\n id={id}\n className={b('list')}\n role={'listbox'}\n filterable={false}\n virtualized={false}\n items={items}\n renderItem={renderItem}\n onItemClick={onItemClick}\n onChangeActive={onChangeActive}\n />\n );\n }),\n);\n\nSuggestList.displayName = 'SuggestList';\n\ntype SuggestProps = {\n id: string;\n query: string;\n provider: ISearchProvider;\n} & Omit<SuggestListProps, 'items'>;\n\nexport const Suggest = memo(\n forwardRef<List<SearchSuggestItem>, SuggestProps>((props, ref) => {\n const {query, provider} = props;\n const [items, suggest] = useProvider(provider);\n\n useEffect(() => suggest(query), [query, suggest]);\n\n if (!items) {\n return null;\n }\n\n if (items instanceof Promise) {\n return <SuggestLoader />;\n }\n\n if (Array.isArray(items) && !items.length) {\n return <SuggestEmpty query={query} />;\n }\n\n return (\n <SuggestList\n ref={ref}\n items={items}\n {...pick(props, ['id', 'renderItem', 'onItemClick', 'onChangeActive'])}\n />\n );\n }),\n);\n\nSuggest.displayName = 'Suggest';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAIA,OAAO,SAAQ,YAAY,MAAM,iBAAgB;AACjD,SAAQ,MAAoB,cAAa;AACzC,OAAO,WAAW;AAClB,OAAO,UAAU;AAEjB,SAAQ,sBAAqB;AAE7B,SAAQ,mBAAkB;AAC1B,OAAO;AAEP,IAAM,IAAI,MAAM,mBAAmB;AAEnC,IAAM,gBAAgB,KAAK,MAAM;AAC7B,SACI,oCAAC,SAAI,WAAW,EAAE,QAAQ,KACtB,oCAAC,YAAO,CACZ;AAER,CAAC;AAED,cAAc,cAAc;AAE5B,IAAM,eAAe,KAAsB,CAAC,EAAC,MAAK,MAAM;AACpD,QAAM,EAAC,EAAC,IAAI,eAAe,gBAAgB;AAE3C,SAAO,oCAAC,SAAI,WAAW,EAAE,QAAQ,EAAC,OAAO,KAAI,CAAC,KAAI,EAAE,4BAA4B,EAAC,MAAK,CAAC,CAAE;AAC7F,CAAC;AAED,aAAa,cAAc;AAc3B,IAAM,cAAc;AAAA,EAChB,WAAsD,CAAC,OAAO,QAAQ;AAClE,UAAM,EAAC,IAAI,OAAO,YAAY,aAAa,eAAc,IAAI;AAE7D,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA,WAAW,EAAE,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;AAQnB,IAAM,UAAU;AAAA,EACnB,WAAkD,CAAC,OAAO,QAAQ;AAC9D,UAAM,EAAC,OAAO,SAAQ,IAAI;AAC1B,UAAM,CAAC,OAAO,OAAO,IAAI,YAAY,QAAQ;AAE7C,cAAU,MAAM,QAAQ,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC;AAEhD,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,SAAS;AAC1B,aAAO,oCAAC,mBAAc;AAAA,IAC1B;AAEA,QAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,QAAQ;AACvC,aAAO,oCAAC,gBAAa,OAAc;AAAA,IACvC;AAEA,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,SACI,KAAK,OAAO,CAAC,MAAM,cAAc,eAAe,gBAAgB,CAAC;AAAA,IACzE;AAAA,EAER,CAAC;AACL;AAEA,QAAQ,cAAc;",
4
+ "sourcesContent": ["import type {ReactNode} from 'react';\nimport type {ISearchProvider} from '../../models';\nimport type {SearchSuggestItem} from './types';\nimport type {ListItemData} from '@gravity-ui/uikit';\n\nimport React, {forwardRef, memo, useEffect} from 'react';\nimport {List, Loader} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport pick from 'lodash/pick';\n\nimport {useTranslation} from '../../hooks';\n\nimport {useProvider} from './useProvider';\nimport './index.scss';\n\nconst b = block('dc-search-suggest');\n\nconst SuggestLoader = memo(() => {\n return (\n <div className={b('loader')}>\n <Loader />\n </div>\n );\n});\n\nSuggestLoader.displayName = 'SuggestLoader';\n\nconst SuggestEmpty = memo<{query: string}>(({query}) => {\n const {t} = useTranslation('search-suggest');\n\n return <div className={b('list', {empty: true})}>{t('search-suggest_not-found', {query})}</div>;\n});\n\nSuggestEmpty.displayName = 'SuggestEmpty';\n\ntype SuggestListProps = {\n id: string;\n items: SearchSuggestItem[];\n renderItem: (item: SearchSuggestItem) => ReactNode;\n onItemClick: (\n item: ListItemData<SearchSuggestItem>,\n index?: number,\n fromKeyboard?: boolean,\n ) => boolean | void;\n onChangeActive: (index?: number) => void;\n};\n\nconst SuggestList = memo(\n forwardRef<List<SearchSuggestItem>, SuggestListProps>((props, ref) => {\n const {id, items, renderItem, onItemClick, onChangeActive} = props;\n\n return (\n <List\n ref={ref}\n id={id}\n className={b('list')}\n role={'listbox'}\n filterable={false}\n virtualized={false}\n items={items}\n renderItem={renderItem}\n onItemClick={onItemClick}\n onChangeActive={onChangeActive}\n />\n );\n }),\n);\n\nSuggestList.displayName = 'SuggestList';\n\ntype SuggestProps = {\n id: string;\n query: string;\n provider: ISearchProvider;\n} & Omit<SuggestListProps, 'items'>;\n\nexport const Suggest = memo(\n forwardRef<List<SearchSuggestItem>, SuggestProps>((props, ref) => {\n const {query, provider} = props;\n const [items, suggest] = useProvider(provider);\n\n useEffect(() => suggest(query), [query, suggest]);\n\n if (!items) {\n return null;\n }\n\n if (items instanceof Promise) {\n return <SuggestLoader />;\n }\n\n if (Array.isArray(items) && !items.length) {\n return <SuggestEmpty query={query} />;\n }\n\n return (\n <SuggestList\n ref={ref}\n items={items}\n {...pick(props, ['id', 'renderItem', 'onItemClick', 'onChangeActive'])}\n />\n );\n }),\n);\n\nSuggest.displayName = 'Suggest';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAKA,OAAO,SAAQ,YAAY,MAAM,iBAAgB;AACjD,SAAQ,MAAM,cAAa;AAC3B,OAAO,WAAW;AAClB,OAAO,UAAU;AAEjB,SAAQ,sBAAqB;AAE7B,SAAQ,mBAAkB;AAC1B,OAAO;AAEP,IAAM,IAAI,MAAM,mBAAmB;AAEnC,IAAM,gBAAgB,KAAK,MAAM;AAC7B,SACI,oCAAC,SAAI,WAAW,EAAE,QAAQ,KACtB,oCAAC,YAAO,CACZ;AAER,CAAC;AAED,cAAc,cAAc;AAE5B,IAAM,eAAe,KAAsB,CAAC,EAAC,MAAK,MAAM;AACpD,QAAM,EAAC,EAAC,IAAI,eAAe,gBAAgB;AAE3C,SAAO,oCAAC,SAAI,WAAW,EAAE,QAAQ,EAAC,OAAO,KAAI,CAAC,KAAI,EAAE,4BAA4B,EAAC,MAAK,CAAC,CAAE;AAC7F,CAAC;AAED,aAAa,cAAc;AAc3B,IAAM,cAAc;AAAA,EAChB,WAAsD,CAAC,OAAO,QAAQ;AAClE,UAAM,EAAC,IAAI,OAAO,YAAY,aAAa,eAAc,IAAI;AAE7D,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA,WAAW,EAAE,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;AAQnB,IAAM,UAAU;AAAA,EACnB,WAAkD,CAAC,OAAO,QAAQ;AAC9D,UAAM,EAAC,OAAO,SAAQ,IAAI;AAC1B,UAAM,CAAC,OAAO,OAAO,IAAI,YAAY,QAAQ;AAE7C,cAAU,MAAM,QAAQ,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC;AAEhD,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,SAAS;AAC1B,aAAO,oCAAC,mBAAc;AAAA,IAC1B;AAEA,QAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,QAAQ;AACvC,aAAO,oCAAC,gBAAa,OAAc;AAAA,IACvC;AAEA,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,SACI,KAAK,OAAO,CAAC,MAAM,cAAc,eAAe,gBAAgB,CAAC;AAAA,IACzE;AAAA,EAER,CAAC;AACL;AAEA,QAAQ,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/SuggestItem.tsx"],
4
- "sourcesContent": ["import type {SearchSuggestItem} from './types';\n\nimport React, {FC, PropsWithChildren} from 'react';\nimport {ChevronRight} from '@gravity-ui/icons';\nimport {Link} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {HTML} from '../HTML';\n\nimport {SuggestItemType} from './types';\n\nconst b = block('dc-search-suggest');\n\nconst BasicSuggestItem: FC<PropsWithChildren<{item: SearchSuggestItem}>> = ({item, children}) => {\n return <div className={b('item', {type: item.type})}>{children}</div>;\n};\n\nexport const SuggestItem: React.FC<SearchSuggestItem> = (item) => {\n switch (item.type) {\n case SuggestItemType.Delimiter:\n return <BasicSuggestItem item={item}>{null}</BasicSuggestItem>;\n case SuggestItemType.Link:\n return (\n <Link className={b('item', {type: item.type})} view={'primary'} href={item.link}>\n <span>{item.title}</span>\n <ChevronRight width={13} height={13} viewBox={'0 0 13 13'} />\n </Link>\n );\n case SuggestItemType.Page:\n return (\n <Link className={b('item', {type: item.type})} view={'primary'} href={item.link}>\n <HTML className={b('item-title')}>{item.title}</HTML>\n <HTML className={b('item-description')}>{item.description}</HTML>\n </Link>\n );\n case SuggestItemType.Group:\n return (\n <BasicSuggestItem item={item}>\n <h5>\n <HTML>{item.title}</HTML>\n </h5>\n </BasicSuggestItem>\n );\n default:\n return (\n <BasicSuggestItem item={item}>\n <HTML>{item.title}</HTML>\n </BasicSuggestItem>\n );\n }\n};\n"],
5
- "mappings": ";AAEA,OAAO,WAAoC;AAC3C,SAAQ,oBAAmB;AAC3B,SAAQ,YAAW;AACnB,OAAO,WAAW;AAElB,SAAQ,YAAW;AAEnB,SAAQ,uBAAsB;AAE9B,IAAM,IAAI,MAAM,mBAAmB;AAEnC,IAAM,mBAAqE,CAAC,EAAC,MAAM,SAAQ,MAAM;AAC7F,SAAO,oCAAC,SAAI,WAAW,EAAE,QAAQ,EAAC,MAAM,KAAK,KAAI,CAAC,KAAI,QAAS;AACnE;AAEO,IAAM,cAA2C,CAAC,SAAS;AAC9D,UAAQ,KAAK,MAAM;AAAA,IACf,KAAK,gBAAgB;AACjB,aAAO,oCAAC,oBAAiB,QAAa,IAAK;AAAA,IAC/C,KAAK,gBAAgB;AACjB,aACI,oCAAC,QAAK,WAAW,EAAE,QAAQ,EAAC,MAAM,KAAK,KAAI,CAAC,GAAG,MAAM,WAAW,MAAM,KAAK,QACvE,oCAAC,cAAM,KAAK,KAAM,GAClB,oCAAC,gBAAa,OAAO,IAAI,QAAQ,IAAI,SAAS,aAAa,CAC/D;AAAA,IAER,KAAK,gBAAgB;AACjB,aACI,oCAAC,QAAK,WAAW,EAAE,QAAQ,EAAC,MAAM,KAAK,KAAI,CAAC,GAAG,MAAM,WAAW,MAAM,KAAK,QACvE,oCAAC,QAAK,WAAW,EAAE,YAAY,KAAI,KAAK,KAAM,GAC9C,oCAAC,QAAK,WAAW,EAAE,kBAAkB,KAAI,KAAK,WAAY,CAC9D;AAAA,IAER,KAAK,gBAAgB;AACjB,aACI,oCAAC,oBAAiB,QACd,oCAAC,YACG,oCAAC,YAAM,KAAK,KAAM,CACtB,CACJ;AAAA,IAER;AACI,aACI,oCAAC,oBAAiB,QACd,oCAAC,YAAM,KAAK,KAAM,CACtB;AAAA,EAEZ;AACJ;",
4
+ "sourcesContent": ["import type {SearchSuggestItem} from './types';\nimport type {FC, PropsWithChildren} from 'react';\n\nimport React from 'react';\nimport {ChevronRight} from '@gravity-ui/icons';\nimport {Link} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {HTML} from '../HTML';\n\nimport {SuggestItemType} from './types';\n\nconst b = block('dc-search-suggest');\n\nconst BasicSuggestItem: FC<PropsWithChildren<{item: SearchSuggestItem}>> = ({item, children}) => {\n return <div className={b('item', {type: item.type})}>{children}</div>;\n};\n\nexport const SuggestItem: React.FC<SearchSuggestItem> = (item) => {\n switch (item.type) {\n case SuggestItemType.Delimiter:\n return <BasicSuggestItem item={item}>{null}</BasicSuggestItem>;\n case SuggestItemType.Link:\n return (\n <Link className={b('item', {type: item.type})} view={'primary'} href={item.link}>\n <span>{item.title}</span>\n <ChevronRight width={13} height={13} viewBox={'0 0 13 13'} />\n </Link>\n );\n case SuggestItemType.Page:\n return (\n <Link className={b('item', {type: item.type})} view={'primary'} href={item.link}>\n <HTML className={b('item-title')}>{item.title}</HTML>\n <HTML className={b('item-description')}>{item.description}</HTML>\n </Link>\n );\n case SuggestItemType.Group:\n return (\n <BasicSuggestItem item={item}>\n <h5>\n <HTML>{item.title}</HTML>\n </h5>\n </BasicSuggestItem>\n );\n default:\n return (\n <BasicSuggestItem item={item}>\n <HTML>{item.title}</HTML>\n </BasicSuggestItem>\n );\n }\n};\n"],
5
+ "mappings": ";AAGA,OAAO,WAAW;AAClB,SAAQ,oBAAmB;AAC3B,SAAQ,YAAW;AACnB,OAAO,WAAW;AAElB,SAAQ,YAAW;AAEnB,SAAQ,uBAAsB;AAE9B,IAAM,IAAI,MAAM,mBAAmB;AAEnC,IAAM,mBAAqE,CAAC,EAAC,MAAM,SAAQ,MAAM;AAC7F,SAAO,oCAAC,SAAI,WAAW,EAAE,QAAQ,EAAC,MAAM,KAAK,KAAI,CAAC,KAAI,QAAS;AACnE;AAEO,IAAM,cAA2C,CAAC,SAAS;AAC9D,UAAQ,KAAK,MAAM;AAAA,IACf,KAAK,gBAAgB;AACjB,aAAO,oCAAC,oBAAiB,QAAa,IAAK;AAAA,IAC/C,KAAK,gBAAgB;AACjB,aACI,oCAAC,QAAK,WAAW,EAAE,QAAQ,EAAC,MAAM,KAAK,KAAI,CAAC,GAAG,MAAM,WAAW,MAAM,KAAK,QACvE,oCAAC,cAAM,KAAK,KAAM,GAClB,oCAAC,gBAAa,OAAO,IAAI,QAAQ,IAAI,SAAS,aAAa,CAC/D;AAAA,IAER,KAAK,gBAAgB;AACjB,aACI,oCAAC,QAAK,WAAW,EAAE,QAAQ,EAAC,MAAM,KAAK,KAAI,CAAC,GAAG,MAAM,WAAW,MAAM,KAAK,QACvE,oCAAC,QAAK,WAAW,EAAE,YAAY,KAAI,KAAK,KAAM,GAC9C,oCAAC,QAAK,WAAW,EAAE,kBAAkB,KAAI,KAAK,WAAY,CAC9D;AAAA,IAER,KAAK,gBAAgB;AACjB,aACI,oCAAC,oBAAiB,QACd,oCAAC,YACG,oCAAC,YAAM,KAAK,KAAM,CACtB,CACJ;AAAA,IAER;AACI,aACI,oCAAC,oBAAiB,QACd,oCAAC,YAAM,KAAK,KAAM,CACtB;AAAA,EAEZ;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/SearchSuggest/index.scss", "../../../../src/components/SearchSuggest/%3Cinput css sV7bfe%3E", "../../../../src/styles/mixins.scss"],
3
+ "sources": ["../../../../src/components/SearchSuggest/index.scss", "../../../../src/components/SearchSuggest/%3Cinput css pMUhrt%3E", "../../../../src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-suggest {\n $block: &;\n\n --g-text-input-placeholder-color: rgba(0, 0, 0, 0.5);\n --g-text-input-placeholder-color-hover: rgba(0, 0, 0, 0.65);\n --g-text-input-border-color: rgba(0, 0, 0, 0.5);\n --g-text-input-border-color-hover: rgba(0, 0, 0, 0.65);\n\n .g-root_theme_dark & {\n --g-text-input-placeholder-color: rgba(255, 255, 255, 0.3);\n --g-text-input-placeholder-color-hover: rgba(255, 255, 255, 0.5);\n --g-text-input-border-color: rgba(255, 255, 255, 0.4);\n --g-text-input-border-color-hover: rgba(255, 255, 255, 0.5);\n }\n\n &__wrapper {\n position: relative;\n width: 100%;\n }\n\n &__loader {\n display: flex;\n justify-content: center;\n padding: 10px;\n }\n\n &__list {\n box-sizing: border-box;\n display: flex;\n max-height: 60vh;\n overflow: hidden auto;\n\n &_empty {\n text-align: center;\n padding: 12px;\n word-break: break-word;\n }\n }\n\n &__close {\n flex: none;\n margin-left: 16px;\n }\n\n &__item {\n width: 100%;\n display: block;\n overflow: hidden;\n padding: 12px 20px;\n box-sizing: border-box;\n\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n @include mixins.text-size(body-1);\n\n &-title,\n &-description,\n &-breadcrumbs > * {\n display: block;\n overflow: hidden;\n\n text-overflow: ellipsis;\n }\n\n &-description {\n margin-top: 4px;\n\n color: var(--g-color-text-secondary);\n }\n\n &_type {\n &_page {\n padding-bottom: 9px;\n\n @include mixins.link();\n\n #{$block}__item {\n &-breadcrumbs {\n padding-top: 2px;\n\n color: var(--g-color-text-secondary);\n }\n }\n }\n\n &_service,\n &_marketplace {\n display: flex;\n\n padding-top: 9px;\n padding-bottom: 11px;\n\n #{$block}__item {\n &-logo {\n margin-right: 16px;\n padding: 3px 0 1px;\n\n text-align: center;\n }\n\n &-icon {\n width: 16px;\n height: var(--g-text-body-3-line-height);\n }\n\n &-text {\n min-width: 0;\n }\n\n &-title {\n padding: 3px 0 1px;\n }\n }\n }\n\n &_group {\n padding: 16px 20px 4px;\n\n color: var(--www-text-content-color);\n }\n\n &_link {\n display: flex;\n\n padding: 22px 20px;\n\n color: var(--g-color-text-link);\n border-top: 1px solid var(--g-color-line-generic);\n }\n\n &_delimiter {\n height: 1px;\n padding: 0;\n\n background-color: var(--g-color-line-generic);\n }\n }\n\n h5 {\n margin: 0;\n font-weight: 700;\n font-size: 16px;\n line-height: 25px;\n }\n\n em {\n position: relative;\n\n font-style: inherit;\n\n &::before {\n position: absolute;\n z-index: -1;\n top: -3px;\n bottom: -1px;\n\n width: 100%;\n\n content: '';\n\n background-color: var(--g-color-base-selection);\n }\n }\n }\n}\n", ".dc-search-suggest {\n --g-text-input-placeholder-color: rgba(0, 0, 0, 0.5);\n --g-text-input-placeholder-color-hover: rgba(0, 0, 0, 0.65);\n --g-text-input-border-color: rgba(0, 0, 0, 0.5);\n --g-text-input-border-color-hover: rgba(0, 0, 0, 0.65);\n}\n.g-root_theme_dark .dc-search-suggest {\n --g-text-input-placeholder-color: rgba(255, 255, 255, 0.3);\n --g-text-input-placeholder-color-hover: rgba(255, 255, 255, 0.5);\n --g-text-input-border-color: rgba(255, 255, 255, 0.4);\n --g-text-input-border-color-hover: rgba(255, 255, 255, 0.5);\n}\n.dc-search-suggest__wrapper {\n position: relative;\n width: 100%;\n}\n.dc-search-suggest__loader {\n display: flex;\n justify-content: center;\n padding: 10px;\n}\n.dc-search-suggest__list {\n box-sizing: border-box;\n display: flex;\n max-height: 60vh;\n overflow: hidden auto;\n}\n.dc-search-suggest__list_empty {\n text-align: center;\n padding: 12px;\n word-break: break-word;\n}\n.dc-search-suggest__close {\n flex: none;\n margin-left: 16px;\n}\n.dc-search-suggest__item {\n width: 100%;\n display: block;\n overflow: hidden;\n padding: 12px 20px;\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-search-suggest__item-title, .dc-search-suggest__item-description, .dc-search-suggest__item-breadcrumbs > * {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dc-search-suggest__item-description {\n margin-top: 4px;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item_type_page {\n padding-bottom: 9px;\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n outline: none;\n}\n.utilityfocus .dc-search-suggest__item_type_page:focus {\n outline: 2px solid #ffdb4d;\n}\n.dc-search-suggest__item_type_page:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.dc-search-suggest__item_type_page:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.dc-search-suggest__item_type_page:hover, .dc-search-suggest__item_type_page:active {\n color: var(--g-color-text-link-hover);\n}\n.dc-search-suggest__item_type_page .dc-search-suggest__item-breadcrumbs {\n padding-top: 2px;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item_type_service, .dc-search-suggest__item_type_marketplace {\n display: flex;\n padding-top: 9px;\n padding-bottom: 11px;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-logo, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-logo {\n margin-right: 16px;\n padding: 3px 0 1px;\n text-align: center;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-icon, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-icon {\n width: 16px;\n height: var(--g-text-body-3-line-height);\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-text, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-text {\n min-width: 0;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-title, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-title {\n padding: 3px 0 1px;\n}\n.dc-search-suggest__item_type_group {\n padding: 16px 20px 4px;\n color: var(--www-text-content-color);\n}\n.dc-search-suggest__item_type_link {\n display: flex;\n padding: 22px 20px;\n color: var(--g-color-text-link);\n border-top: 1px solid var(--g-color-line-generic);\n}\n.dc-search-suggest__item_type_delimiter {\n height: 1px;\n padding: 0;\n background-color: var(--g-color-line-generic);\n}\n.dc-search-suggest__item h5 {\n margin: 0;\n font-weight: 700;\n font-size: 16px;\n line-height: 25px;\n}\n.dc-search-suggest__item em {\n position: relative;\n font-style: inherit;\n}\n.dc-search-suggest__item em::before {\n position: absolute;\n z-index: -1;\n top: -3px;\n bottom: -1px;\n width: 100%;\n content: \"\";\n background-color: var(--g-color-base-selection);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaFN1Z2dlc3QiLCJzb3VyY2VzIjpbImluZGV4LnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFHSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUNwREo7RUFDQTs7QUR1REk7RUFHSTtFQUNBO0VBRUE7O0FBR0o7RUFDSTtFQUVBOztBQUlBO0VBQ0k7RUN0Qlo7RUFDQTtFQUNBO0VBQ0E7RUFqQ0E7O0FBRUE7RUFDSTs7QUFnQkE7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBZVI7RUFFSTs7QURnQlk7RUFDSTtFQUVBOztBQUtaO0VBRUk7RUFFQTtFQUNBOztBQUdJO0VBQ0k7RUFDQTtFQUVBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBS1o7RUFDSTtFQUVBOztBQUdKO0VBQ0k7RUFFQTtFQUVBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBRUE7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBRUE7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFFQSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbi5kYy1zZWFyY2gtc3VnZ2VzdCB7XG4gICAgJGJsb2NrOiAmO1xuXG4gICAgLS1nLXRleHQtaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAtLWctdGV4dC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvci1ob3ZlcjogcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgICAtLWctdGV4dC1pbnB1dC1ib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAtLWctdGV4dC1pbnB1dC1ib3JkZXItY29sb3ItaG92ZXI6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG5cbiAgICAuZy1yb290X3RoZW1lX2RhcmsgJiB7XG4gICAgICAgIC0tZy10ZXh0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgICAgIC0tZy10ZXh0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICAgIC0tZy10ZXh0LWlucHV0LWJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgICAgICAtLWctdGV4dC1pbnB1dC1ib3JkZXItY29sb3ItaG92ZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19sb2FkZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbiBhdXRvO1xuXG4gICAgICAgICZfZW1wdHkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMTJweDtcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGZsZXg6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgIEBpbmNsdWRlIG1peGlucy50ZXh0LXNpemUoYm9keS0xKTtcblxuICAgICAgICAmLXRpdGxlLFxuICAgICAgICAmLWRlc2NyaXB0aW9uLFxuICAgICAgICAmLWJyZWFkY3J1bWJzID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG5cbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdHlwZSB7XG4gICAgICAgICAgICAmX3BhZ2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMubGluaygpO1xuXG4gICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJi1icmVhZGNydW1icyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfc2VydmljZSxcbiAgICAgICAgICAgICZfbWFya2V0cGxhY2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMXB4O1xuXG4gICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJi1sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwIDFweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwIDFweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9ncm91cCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTZweCAyMHB4IDRweDtcblxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13d3ctdGV4dC1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9saW5rIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjJweCAyMHB4O1xuXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX2RlbGltaXRlciB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGVtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgZm9udC1zdHlsZTogaW5oZXJpdDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgdG9wOiAtM3B4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcblxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiB0ZXh0LXNpemUoJG5hbWUpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWl4aW4gZml4QW5jaG9yUG9zaXRpb24oJG9mZnNldDogMHB4KSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG9mZnNldH0gLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgaXNsYW5kcy1mb2N1cygpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXNhYmxlKDAsICdib3gtc2hhZG93Jyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzMoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMik7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0xKTtcbn1cblxuQG1peGluIGhlYWRpbmc1KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGhlYWRpbmc2KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGRlc2t0b3AtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iXX0= */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
@@ -1,4 +1,4 @@
1
- import { SyntheticEvent } from 'react';
1
+ import type { SyntheticEvent } from 'react';
2
2
  type Props = {
3
3
  onFocus?: (event: SyntheticEvent) => void;
4
4
  onBlur?: (event: SyntheticEvent) => void;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/useFocus.ts"],
4
- "sourcesContent": ["import {SyntheticEvent, useCallback, useMemo, useState} from 'react';\n\ntype Props = {\n onFocus?: (event: SyntheticEvent) => void;\n onBlur?: (event: SyntheticEvent) => void;\n};\n\ntype Result = [\n boolean,\n (value: boolean) => void,\n {\n onFocus: (event: SyntheticEvent) => void;\n onBlur: (event: SyntheticEvent) => void;\n },\n];\n\nexport function useFocus({onFocus, onBlur}: Props): Result {\n const [focused, setFocused] = useState(false);\n const _onFocus = useCallback(\n (event: SyntheticEvent) => {\n event.persist();\n setTimeout(() => {\n setFocused(true);\n if (onFocus) {\n onFocus(event);\n }\n }, 100);\n },\n [onFocus, setFocused],\n );\n\n const _onBlur = useCallback(\n (event: SyntheticEvent) => {\n event.persist();\n setTimeout(() => {\n setFocused(false);\n if (onBlur) {\n onBlur(event);\n }\n }, 100);\n },\n [onBlur, setFocused],\n );\n\n const handlers = useMemo(() => ({onFocus: _onFocus, onBlur: _onBlur}), [_onFocus, _onBlur]);\n\n return [focused, setFocused, handlers];\n}\n"],
5
- "mappings": ";AAAA,SAAwB,aAAa,SAAS,gBAAe;AAgBtD,SAAS,SAAS,EAAC,SAAS,OAAM,GAAkB;AACvD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,WAAW;AAAA,IACb,CAAC,UAA0B;AACvB,YAAM,QAAQ;AACd,iBAAW,MAAM;AACb,mBAAW,IAAI;AACf,YAAI,SAAS;AACT,kBAAQ,KAAK;AAAA,QACjB;AAAA,MACJ,GAAG,GAAG;AAAA,IACV;AAAA,IACA,CAAC,SAAS,UAAU;AAAA,EACxB;AAEA,QAAM,UAAU;AAAA,IACZ,CAAC,UAA0B;AACvB,YAAM,QAAQ;AACd,iBAAW,MAAM;AACb,mBAAW,KAAK;AAChB,YAAI,QAAQ;AACR,iBAAO,KAAK;AAAA,QAChB;AAAA,MACJ,GAAG,GAAG;AAAA,IACV;AAAA,IACA,CAAC,QAAQ,UAAU;AAAA,EACvB;AAEA,QAAM,WAAW,QAAQ,OAAO,EAAC,SAAS,UAAU,QAAQ,QAAO,IAAI,CAAC,UAAU,OAAO,CAAC;AAE1F,SAAO,CAAC,SAAS,YAAY,QAAQ;AACzC;",
4
+ "sourcesContent": ["import type {SyntheticEvent} from 'react';\n\nimport {useCallback, useMemo, useState} from 'react';\n\ntype Props = {\n onFocus?: (event: SyntheticEvent) => void;\n onBlur?: (event: SyntheticEvent) => void;\n};\n\ntype Result = [\n boolean,\n (value: boolean) => void,\n {\n onFocus: (event: SyntheticEvent) => void;\n onBlur: (event: SyntheticEvent) => void;\n },\n];\n\nexport function useFocus({onFocus, onBlur}: Props): Result {\n const [focused, setFocused] = useState(false);\n const _onFocus = useCallback(\n (event: SyntheticEvent) => {\n event.persist();\n setTimeout(() => {\n setFocused(true);\n if (onFocus) {\n onFocus(event);\n }\n }, 100);\n },\n [onFocus, setFocused],\n );\n\n const _onBlur = useCallback(\n (event: SyntheticEvent) => {\n event.persist();\n setTimeout(() => {\n setFocused(false);\n if (onBlur) {\n onBlur(event);\n }\n }, 100);\n },\n [onBlur, setFocused],\n );\n\n const handlers = useMemo(() => ({onFocus: _onFocus, onBlur: _onBlur}), [_onFocus, _onBlur]);\n\n return [focused, setFocused, handlers];\n}\n"],
5
+ "mappings": ";AAEA,SAAQ,aAAa,SAAS,gBAAe;AAgBtC,SAAS,SAAS,EAAC,SAAS,OAAM,GAAkB;AACvD,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,WAAW;AAAA,IACb,CAAC,UAA0B;AACvB,YAAM,QAAQ;AACd,iBAAW,MAAM;AACb,mBAAW,IAAI;AACf,YAAI,SAAS;AACT,kBAAQ,KAAK;AAAA,QACjB;AAAA,MACJ,GAAG,GAAG;AAAA,IACV;AAAA,IACA,CAAC,SAAS,UAAU;AAAA,EACxB;AAEA,QAAM,UAAU;AAAA,IACZ,CAAC,UAA0B;AACvB,YAAM,QAAQ;AACd,iBAAW,MAAM;AACb,mBAAW,KAAK;AAChB,YAAI,QAAQ;AACR,iBAAO,KAAK;AAAA,QAChB;AAAA,MACJ,GAAG,GAAG;AAAA,IACV;AAAA,IACA,CAAC,QAAQ,UAAU;AAAA,EACvB;AAEA,QAAM,WAAW,QAAQ,OAAO,EAAC,SAAS,UAAU,QAAQ,QAAO,IAAI,CAAC,UAAU,OAAO,CAAC;AAE1F,SAAO,CAAC,SAAS,YAAY,QAAQ;AACzC;",
6
6
  "names": []
7
7
  }
@@ -17,7 +17,7 @@ function useProvider(provider) {
17
17
  cache.set(query, items2);
18
18
  setTimeout(() => cache.delete(query), 3e4);
19
19
  return items2;
20
- } catch (error) {
20
+ } catch (e) {
21
21
  return [
22
22
  {
23
23
  type: SuggestItemType.Text,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/useProvider.ts"],
4
- "sourcesContent": ["import type {ISearchProvider, ISearchResult, TFunction} from '../../models';\nimport type {SearchGroup, SearchSuggestItem} from './types';\n\nimport {useCallback, useMemo, useRef, useState} from 'react';\nimport debounce from 'lodash/debounce';\n\nimport {useTranslation} from '../../hooks';\n\nimport {SuggestItemType} from './types';\n\ntype Link = (query: string) => string | null;\ntype Zalgo<T> = Promise<T> | T;\ntype Items = Zalgo<SearchSuggestItem[] | null>;\ntype Request = (query: string) => () => void;\n\nconst cache = new Map<string, SearchSuggestItem[]>();\n\nexport function useProvider(provider: ISearchProvider): [Items, Request] {\n const wait = useRef<Zalgo<SearchSuggestItem[] | null>>(null);\n const [items, setItems] = useState<Zalgo<SearchSuggestItem[] | null>>(null);\n const {t} = useTranslation('search-suggest');\n\n const suggest = useMemo(\n () =>\n debounce((query: string) => {\n const promise = (wait.current = (async () => {\n try {\n const data = await provider.suggest(query);\n const items = format(query, data, (args) => provider.link(args), t);\n\n cache.set(query, items);\n setTimeout(() => cache.delete(query), 30000);\n\n return items;\n } catch (error) {\n return [\n {\n type: SuggestItemType.Text,\n title: t('search-suggest_error-text'),\n disabled: true,\n },\n ] as SearchSuggestItem[];\n }\n })());\n\n setItems(promise);\n\n promise.then((items) => {\n if (wait.current === promise) {\n setItems(items);\n }\n });\n }, 300),\n [t, provider, wait, setItems],\n );\n\n const request = useCallback(\n (query: string) => {\n if (!query) {\n wait.current = null;\n setItems(null);\n } else if (cache.has(query)) {\n wait.current = null;\n setItems(cache.get(query) as SearchSuggestItem[]);\n } else {\n suggest(query);\n }\n\n return suggest.cancel;\n },\n [suggest, setItems],\n );\n\n return [items, request];\n}\n\nfunction format(query: string, items: ISearchResult[], link: Link, t: TFunction) {\n const page = link(query);\n const groups = Object.values(\n items.reduce(\n (result, item) => {\n result[item.type] = result[item.type] || {type: item.type, items: []};\n result[item.type].items.push({\n type: SuggestItemType.Page,\n title: item.title,\n link: item.link,\n description: item.description,\n breadcrumbs: item.breadcrumbs,\n });\n return result;\n },\n {} as Record<string, SearchGroup>,\n ),\n );\n\n const result =\n groups.length === 1\n ? groups[0].items\n : groups.reduce((result, group) => {\n if (result.length) {\n result.push({\n type: SuggestItemType.Delimiter,\n disabled: true,\n });\n }\n\n result.push({\n type: SuggestItemType.Group,\n title: t(`search-item_type-${group.type}`, t('search-item_type-main')),\n disabled: true,\n });\n\n return result.concat(group.items as SearchSuggestItem[]);\n }, [] as SearchSuggestItem[]);\n\n if (result.length > 0 && page) {\n result.push({\n type: SuggestItemType.Link,\n title: t('search-suggest_all-results'),\n link: page,\n });\n }\n\n return result;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type {ISearchProvider, ISearchResult, TFunction} from '../../models';\nimport type {SearchGroup, SearchSuggestItem} from './types';\n\nimport {useCallback, useMemo, useRef, useState} from 'react';\nimport debounce from 'lodash/debounce';\n\nimport {useTranslation} from '../../hooks';\n\nimport {SuggestItemType} from './types';\n\ntype Link = (query: string) => string | null;\ntype Zalgo<T> = Promise<T> | T;\ntype Items = Zalgo<SearchSuggestItem[] | null>;\ntype Request = (query: string) => () => void;\n\nconst cache = new Map<string, SearchSuggestItem[]>();\n\nexport function useProvider(provider: ISearchProvider): [Items, Request] {\n const wait = useRef<Zalgo<SearchSuggestItem[] | null>>(null);\n const [items, setItems] = useState<Zalgo<SearchSuggestItem[] | null>>(null);\n const {t} = useTranslation('search-suggest');\n\n const suggest = useMemo(\n () =>\n debounce((query: string) => {\n const promise = (wait.current = (async () => {\n try {\n const data = await provider.suggest(query);\n const items = format(query, data, (args) => provider.link(args), t);\n\n cache.set(query, items);\n setTimeout(() => cache.delete(query), 30000);\n\n return items;\n } catch {\n return [\n {\n type: SuggestItemType.Text,\n title: t('search-suggest_error-text'),\n disabled: true,\n },\n ] as SearchSuggestItem[];\n }\n })());\n\n setItems(promise);\n\n promise.then((items) => {\n if (wait.current === promise) {\n setItems(items);\n }\n });\n }, 300),\n [t, provider, wait, setItems],\n );\n\n const request = useCallback(\n (query: string) => {\n if (!query) {\n wait.current = null;\n setItems(null);\n } else if (cache.has(query)) {\n wait.current = null;\n setItems(cache.get(query) as SearchSuggestItem[]);\n } else {\n suggest(query);\n }\n\n return suggest.cancel;\n },\n [suggest, setItems],\n );\n\n return [items, request];\n}\n\nfunction format(query: string, items: ISearchResult[], link: Link, t: TFunction) {\n const page = link(query);\n const groups = Object.values(\n items.reduce(\n (result, item) => {\n result[item.type] = result[item.type] || {type: item.type, items: []};\n result[item.type].items.push({\n type: SuggestItemType.Page,\n title: item.title,\n link: item.link,\n description: item.description,\n breadcrumbs: item.breadcrumbs,\n });\n return result;\n },\n {} as Record<string, SearchGroup>,\n ),\n );\n\n const result =\n groups.length === 1\n ? groups[0].items\n : groups.reduce((result, group) => {\n if (result.length) {\n result.push({\n type: SuggestItemType.Delimiter,\n disabled: true,\n });\n }\n\n result.push({\n type: SuggestItemType.Group,\n title: t(`search-item_type-${group.type}`, t('search-item_type-main')),\n disabled: true,\n });\n\n return result.concat(group.items as SearchSuggestItem[]);\n }, [] as SearchSuggestItem[]);\n\n if (result.length > 0 && page) {\n result.push({\n type: SuggestItemType.Link,\n title: t('search-suggest_all-results'),\n link: page,\n });\n }\n\n return result;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["items", "result"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ShareButton/ShareButton.scss", "../../../../src/components/ShareButton/%3Cinput css CLY88m%3E"],
3
+ "sources": ["../../../../src/components/ShareButton/ShareButton.scss", "../../../../src/components/ShareButton/%3Cinput css x_qo22%3E"],
4
4
  "sourcesContent": ["// same as bookmark button keep it sync :)\n\n.dc-share-button {\n vertical-align: middle;\n margin: 0 0 5px 12px;\n\n &:hover::before {\n background-color: transparent;\n }\n}\n", ".dc-share-button {\n vertical-align: middle;\n margin: 0 0 5px 12px;\n}\n.dc-share-button:hover::before {\n background-color: transparent;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NoYXJlQnV0dG9uIiwic291cmNlcyI6WyJTaGFyZUJ1dHRvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc2FtZSBhcyBib29rbWFyayBidXR0b24ga2VlcCBpdCBzeW5jIDopXG5cbi5kYy1zaGFyZS1idXR0b24ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwIDAgNXB4IDEycHg7XG5cbiAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4iXX0= */"],
5
5
  "mappings": ";AAEA,CAAA;AACI,kBAAA;AACA,UAAA,EAAA,EAAA,IAAA;ACDJ;ADGI,CAJJ,eAII,MAAA;AACI,oBAAA;ACDR;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
+ import type { ButtonSize, ButtonView } from '@gravity-ui/uikit';
2
+ import type { ClassNameProps } from '../../models';
1
3
  import React from 'react';
2
- import { ButtonSize, ButtonView } from '@gravity-ui/uikit';
3
- import { ClassNameProps } from '../../models';
4
4
  import './ShareButton.scss';
5
5
  type IconSize = {
6
6
  width: number;