@diplodoc/components 4.9.3 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
  2. package/build/cjs/components/BookmarkButton/BookmarkButton.js.map +2 -2
  3. package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  4. package/build/cjs/components/Breadcrumbs/Breadcrumbs.js.map +2 -2
  5. package/build/cjs/components/ConsentPopup/ConsentPopup.js +6 -1
  6. package/build/cjs/components/ConsentPopup/ConsentPopup.js.map +2 -2
  7. package/build/cjs/components/ContributorAvatars/Avatars/Avatar.js.map +2 -2
  8. package/build/cjs/components/ContributorAvatars/Avatars/Details.js.map +2 -2
  9. package/build/cjs/components/ContributorAvatars/Avatars/HiddenAvatars.js.map +2 -2
  10. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  11. package/build/cjs/components/ContributorAvatars/ContributorAvatars.js.map +2 -2
  12. package/build/cjs/components/ContributorAvatars/models.d.ts +0 -1
  13. package/build/cjs/components/Contributors/Contributors.css.map +1 -1
  14. package/build/cjs/components/Contributors/Contributors.js.map +2 -2
  15. package/build/cjs/components/Control/Control.css.map +1 -1
  16. package/build/cjs/components/Control/Control.js.map +2 -2
  17. package/build/cjs/components/Controls/Controls.css.map +1 -1
  18. package/build/cjs/components/Controls/Controls.js.map +2 -2
  19. package/build/cjs/components/Controls/ControlsLayout.js.map +2 -2
  20. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  21. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.js.map +2 -2
  22. package/build/cjs/components/Controls/single-controls/EditControl.js.map +2 -2
  23. package/build/cjs/components/Controls/single-controls/FullScreenControl.js.map +2 -2
  24. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  25. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.js +3 -0
  26. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.js.map +2 -2
  27. package/build/cjs/components/Controls/single-controls/PdfControl.js.map +2 -2
  28. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css +1 -3
  29. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +2 -2
  30. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.js.map +2 -2
  31. package/build/cjs/components/Controls/single-controls/SinglePageControl.js.map +2 -2
  32. package/build/cjs/components/DocContentPage/DocContentPage.js.map +2 -2
  33. package/build/cjs/components/DocLayout/DocLayout.css +3 -2
  34. package/build/cjs/components/DocLayout/DocLayout.css.map +3 -3
  35. package/build/cjs/components/DocLayout/DocLayout.d.ts +3 -3
  36. package/build/cjs/components/DocLayout/DocLayout.js +1 -1
  37. package/build/cjs/components/DocLayout/DocLayout.js.map +2 -2
  38. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  39. package/build/cjs/components/DocLeadingPage/DocLeadingPage.js.map +2 -2
  40. package/build/cjs/components/DocPage/DocPage.css.map +1 -1
  41. package/build/cjs/components/DocPage/DocPage.js +2 -2
  42. package/build/cjs/components/DocPage/DocPage.js.map +2 -2
  43. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  44. package/build/cjs/components/DocPageTitle/DocPageTitle.js.map +2 -2
  45. package/build/cjs/components/ErrorBoundary/ErrorBoundary.js.map +2 -2
  46. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  47. package/build/cjs/components/ErrorPage/ErrorPage.js.map +2 -2
  48. package/build/cjs/components/Feedback/Feedback.css +0 -4
  49. package/build/cjs/components/Feedback/Feedback.css.map +2 -2
  50. package/build/cjs/components/Feedback/Feedback.js +5 -2
  51. package/build/cjs/components/Feedback/Feedback.js.map +2 -2
  52. package/build/cjs/components/Feedback/controls/DislikeControl.d.ts +1 -0
  53. package/build/cjs/components/Feedback/controls/DislikeControl.js +34 -19
  54. package/build/cjs/components/Feedback/controls/DislikeControl.js.map +2 -2
  55. package/build/cjs/components/Feedback/controls/DislikeVariantsPopup.js.map +2 -2
  56. package/build/cjs/components/Feedback/controls/LikeControl.d.ts +2 -1
  57. package/build/cjs/components/Feedback/controls/LikeControl.js +32 -27
  58. package/build/cjs/components/Feedback/controls/LikeControl.js.map +2 -2
  59. package/build/cjs/components/Feedback/controls/SuccessPopup.js.map +2 -2
  60. package/build/cjs/components/Mark/Mark.css.map +1 -1
  61. package/build/cjs/components/Mark/Mark.js.map +2 -2
  62. package/build/cjs/components/MiniToc/MiniToc.css.map +3 -3
  63. package/build/cjs/components/MiniToc/MiniToc.js.map +2 -2
  64. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  65. package/build/cjs/components/Paginator/Paginator.js.map +2 -2
  66. package/build/cjs/components/Scrollspy/Scrollspy.js.map +2 -2
  67. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  68. package/build/cjs/components/SearchBar/SearchBar.js.map +2 -2
  69. package/build/cjs/components/SearchBar/hooks.js +2 -2
  70. package/build/cjs/components/SearchBar/hooks.js.map +2 -2
  71. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  72. package/build/cjs/components/SearchItem/SearchItem.js.map +2 -2
  73. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  74. package/build/cjs/components/SearchPage/SearchPage.js.map +2 -2
  75. package/build/cjs/components/SearchSuggest/SearchInput.d.ts +19 -0
  76. package/build/cjs/components/SearchSuggest/SearchInput.js +96 -0
  77. package/build/cjs/components/SearchSuggest/SearchInput.js.map +7 -0
  78. package/build/cjs/components/SearchSuggest/Suggest.d.ts +18 -0
  79. package/build/cjs/components/SearchSuggest/Suggest.js +112 -0
  80. package/build/cjs/components/SearchSuggest/Suggest.js.map +7 -0
  81. package/build/cjs/components/SearchSuggest/SuggestItem.d.ts +3 -0
  82. package/build/cjs/components/SearchSuggest/SuggestItem.js +60 -0
  83. package/build/cjs/components/SearchSuggest/SuggestItem.js.map +7 -0
  84. package/build/cjs/components/SearchSuggest/index.css +132 -0
  85. package/build/cjs/components/SearchSuggest/index.css.map +7 -0
  86. package/build/cjs/components/SearchSuggest/index.d.ts +18 -0
  87. package/build/cjs/components/SearchSuggest/index.js +150 -0
  88. package/build/cjs/components/SearchSuggest/index.js.map +7 -0
  89. package/build/cjs/components/SearchSuggest/types.d.ts +53 -0
  90. package/build/cjs/components/SearchSuggest/types.js +34 -0
  91. package/build/cjs/components/SearchSuggest/types.js.map +7 -0
  92. package/build/cjs/components/SearchSuggest/useFocus.d.ts +14 -0
  93. package/build/cjs/components/SearchSuggest/useFocus.js +48 -0
  94. package/build/cjs/components/SearchSuggest/useFocus.js.map +7 -0
  95. package/build/cjs/components/SearchSuggest/useProvider.d.ts +6 -0
  96. package/build/cjs/components/SearchSuggest/useProvider.js +133 -0
  97. package/build/cjs/components/SearchSuggest/useProvider.js.map +7 -0
  98. package/build/cjs/components/Subscribe/Subscribe.css +0 -4
  99. package/build/cjs/components/Subscribe/Subscribe.css.map +2 -2
  100. package/build/cjs/components/Subscribe/Subscribe.js +32 -25
  101. package/build/cjs/components/Subscribe/Subscribe.js.map +2 -2
  102. package/build/cjs/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.d.ts +1 -1
  103. package/build/cjs/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js.map +2 -2
  104. package/build/cjs/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.d.ts +2 -2
  105. package/build/cjs/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +2 -2
  106. package/build/cjs/components/Subscribe/utils.d.ts +1 -1
  107. package/build/cjs/components/Toc/Toc.css.map +1 -1
  108. package/build/cjs/components/Toc/Toc.d.ts +2 -2
  109. package/build/cjs/components/Toc/Toc.js +21 -2
  110. package/build/cjs/components/Toc/Toc.js.map +2 -2
  111. package/build/cjs/components/TocItem/TocItem.css.map +1 -1
  112. package/build/cjs/components/TocItem/TocItem.d.ts +1 -6
  113. package/build/cjs/components/TocItem/TocItem.js +20 -39
  114. package/build/cjs/components/TocItem/TocItem.js.map +2 -2
  115. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  116. package/build/cjs/components/TocLable/TocLabel.js.map +2 -2
  117. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  118. package/build/cjs/components/TocNavPanel/TocNavPanel.js.map +2 -2
  119. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  120. package/build/cjs/components/ToggleArrow/ToggleArrow.js.map +2 -2
  121. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  122. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.js.map +2 -2
  123. package/build/cjs/hooks/index.d.ts +1 -0
  124. package/build/cjs/hooks/index.js +1 -0
  125. package/build/cjs/hooks/index.js.map +2 -2
  126. package/build/cjs/hooks/useAnalytics.d.ts +1 -0
  127. package/build/cjs/hooks/useAnalytics.js +0 -1
  128. package/build/cjs/hooks/useAnalytics.js.map +2 -2
  129. package/build/cjs/hooks/usePopper.js.map +2 -2
  130. package/build/cjs/hooks/usePopupState.d.ts +1 -1
  131. package/build/cjs/hooks/useVirtualElementRef.d.ts +32 -0
  132. package/build/cjs/hooks/useVirtualElementRef.js +107 -0
  133. package/build/cjs/hooks/useVirtualElementRef.js.map +7 -0
  134. package/build/cjs/i18n/index.d.ts +18 -0
  135. package/build/cjs/i18n/index.js +11 -2
  136. package/build/cjs/i18n/index.js.map +2 -2
  137. package/build/cjs/index.d.ts +1 -0
  138. package/build/cjs/index.js +1 -0
  139. package/build/cjs/index.js.map +2 -2
  140. package/build/cjs/models/index.d.ts +3 -4
  141. package/build/cjs/models/index.js.map +1 -1
  142. package/build/cjs/utils/index.d.ts +1 -2
  143. package/build/cjs/utils/index.js.map +2 -2
  144. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  145. package/build/esm/components/BookmarkButton/BookmarkButton.js.map +2 -2
  146. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  147. package/build/esm/components/Breadcrumbs/Breadcrumbs.js.map +2 -2
  148. package/build/esm/components/ConsentPopup/ConsentPopup.js +6 -1
  149. package/build/esm/components/ConsentPopup/ConsentPopup.js.map +2 -2
  150. package/build/esm/components/ContributorAvatars/Avatars/Avatar.js.map +2 -2
  151. package/build/esm/components/ContributorAvatars/Avatars/Details.js.map +2 -2
  152. package/build/esm/components/ContributorAvatars/Avatars/HiddenAvatars.js.map +2 -2
  153. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  154. package/build/esm/components/ContributorAvatars/ContributorAvatars.js.map +2 -2
  155. package/build/esm/components/ContributorAvatars/models.d.ts +0 -1
  156. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  157. package/build/esm/components/Contributors/Contributors.js.map +2 -2
  158. package/build/esm/components/Control/Control.css.map +1 -1
  159. package/build/esm/components/Control/Control.js.map +2 -2
  160. package/build/esm/components/Controls/Controls.css.map +1 -1
  161. package/build/esm/components/Controls/Controls.js.map +2 -2
  162. package/build/esm/components/Controls/ControlsLayout.js.map +2 -2
  163. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  164. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.js.map +2 -2
  165. package/build/esm/components/Controls/single-controls/EditControl.js.map +2 -2
  166. package/build/esm/components/Controls/single-controls/FullScreenControl.js.map +2 -2
  167. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  168. package/build/esm/components/Controls/single-controls/LangControl/LangControl.js +3 -0
  169. package/build/esm/components/Controls/single-controls/LangControl/LangControl.js.map +2 -2
  170. package/build/esm/components/Controls/single-controls/PdfControl.js.map +2 -2
  171. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css +1 -3
  172. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +2 -2
  173. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.js.map +2 -2
  174. package/build/esm/components/Controls/single-controls/SinglePageControl.js.map +2 -2
  175. package/build/esm/components/DocContentPage/DocContentPage.js.map +2 -2
  176. package/build/esm/components/DocLayout/DocLayout.css +3 -2
  177. package/build/esm/components/DocLayout/DocLayout.css.map +3 -3
  178. package/build/esm/components/DocLayout/DocLayout.d.ts +3 -3
  179. package/build/esm/components/DocLayout/DocLayout.js +1 -1
  180. package/build/esm/components/DocLayout/DocLayout.js.map +2 -2
  181. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  182. package/build/esm/components/DocLeadingPage/DocLeadingPage.js.map +2 -2
  183. package/build/esm/components/DocPage/DocPage.css.map +1 -1
  184. package/build/esm/components/DocPage/DocPage.js +2 -2
  185. package/build/esm/components/DocPage/DocPage.js.map +2 -2
  186. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  187. package/build/esm/components/DocPageTitle/DocPageTitle.js.map +2 -2
  188. package/build/esm/components/ErrorBoundary/ErrorBoundary.js.map +2 -2
  189. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  190. package/build/esm/components/ErrorPage/ErrorPage.js.map +2 -2
  191. package/build/esm/components/Feedback/Feedback.css +0 -4
  192. package/build/esm/components/Feedback/Feedback.css.map +2 -2
  193. package/build/esm/components/Feedback/Feedback.js +5 -2
  194. package/build/esm/components/Feedback/Feedback.js.map +2 -2
  195. package/build/esm/components/Feedback/controls/DislikeControl.d.ts +1 -0
  196. package/build/esm/components/Feedback/controls/DislikeControl.js +34 -19
  197. package/build/esm/components/Feedback/controls/DislikeControl.js.map +2 -2
  198. package/build/esm/components/Feedback/controls/DislikeVariantsPopup.js.map +2 -2
  199. package/build/esm/components/Feedback/controls/LikeControl.d.ts +2 -1
  200. package/build/esm/components/Feedback/controls/LikeControl.js +32 -27
  201. package/build/esm/components/Feedback/controls/LikeControl.js.map +2 -2
  202. package/build/esm/components/Feedback/controls/SuccessPopup.js.map +2 -2
  203. package/build/esm/components/Mark/Mark.css.map +1 -1
  204. package/build/esm/components/Mark/Mark.js.map +2 -2
  205. package/build/esm/components/MiniToc/MiniToc.css.map +3 -3
  206. package/build/esm/components/MiniToc/MiniToc.js.map +2 -2
  207. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  208. package/build/esm/components/Paginator/Paginator.js.map +2 -2
  209. package/build/esm/components/Scrollspy/Scrollspy.js.map +2 -2
  210. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  211. package/build/esm/components/SearchBar/SearchBar.js.map +2 -2
  212. package/build/esm/components/SearchBar/hooks.js +2 -2
  213. package/build/esm/components/SearchBar/hooks.js.map +2 -2
  214. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  215. package/build/esm/components/SearchItem/SearchItem.js.map +2 -2
  216. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  217. package/build/esm/components/SearchPage/SearchPage.js.map +2 -2
  218. package/build/esm/components/SearchSuggest/SearchInput.d.ts +19 -0
  219. package/build/esm/components/SearchSuggest/SearchInput.js +68 -0
  220. package/build/esm/components/SearchSuggest/SearchInput.js.map +7 -0
  221. package/build/esm/components/SearchSuggest/Suggest.d.ts +18 -0
  222. package/build/esm/components/SearchSuggest/Suggest.js +84 -0
  223. package/build/esm/components/SearchSuggest/Suggest.js.map +7 -0
  224. package/build/esm/components/SearchSuggest/SuggestItem.d.ts +3 -0
  225. package/build/esm/components/SearchSuggest/SuggestItem.js +29 -0
  226. package/build/esm/components/SearchSuggest/SuggestItem.js.map +7 -0
  227. package/build/esm/components/SearchSuggest/index.css +132 -0
  228. package/build/esm/components/SearchSuggest/index.css.map +7 -0
  229. package/build/esm/components/SearchSuggest/index.d.ts +18 -0
  230. package/build/esm/components/SearchSuggest/index.js +129 -0
  231. package/build/esm/components/SearchSuggest/index.js.map +7 -0
  232. package/build/esm/components/SearchSuggest/types.d.ts +53 -0
  233. package/build/esm/components/SearchSuggest/types.js +13 -0
  234. package/build/esm/components/SearchSuggest/types.js.map +7 -0
  235. package/build/esm/components/SearchSuggest/useFocus.d.ts +14 -0
  236. package/build/esm/components/SearchSuggest/useFocus.js +27 -0
  237. package/build/esm/components/SearchSuggest/useFocus.js.map +7 -0
  238. package/build/esm/components/SearchSuggest/useProvider.d.ts +6 -0
  239. package/build/esm/components/SearchSuggest/useProvider.js +102 -0
  240. package/build/esm/components/SearchSuggest/useProvider.js.map +7 -0
  241. package/build/esm/components/Subscribe/Subscribe.css +0 -4
  242. package/build/esm/components/Subscribe/Subscribe.css.map +2 -2
  243. package/build/esm/components/Subscribe/Subscribe.js +32 -25
  244. package/build/esm/components/Subscribe/Subscribe.js.map +2 -2
  245. package/build/esm/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.d.ts +1 -1
  246. package/build/esm/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js.map +2 -2
  247. package/build/esm/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.d.ts +2 -2
  248. package/build/esm/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +2 -2
  249. package/build/esm/components/Subscribe/utils.d.ts +1 -1
  250. package/build/esm/components/Toc/Toc.css.map +1 -1
  251. package/build/esm/components/Toc/Toc.d.ts +2 -2
  252. package/build/esm/components/Toc/Toc.js +21 -2
  253. package/build/esm/components/Toc/Toc.js.map +2 -2
  254. package/build/esm/components/TocItem/TocItem.css.map +1 -1
  255. package/build/esm/components/TocItem/TocItem.d.ts +1 -6
  256. package/build/esm/components/TocItem/TocItem.js +20 -39
  257. package/build/esm/components/TocItem/TocItem.js.map +2 -2
  258. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  259. package/build/esm/components/TocLable/TocLabel.js.map +2 -2
  260. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  261. package/build/esm/components/TocNavPanel/TocNavPanel.js.map +2 -2
  262. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  263. package/build/esm/components/ToggleArrow/ToggleArrow.js.map +2 -2
  264. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  265. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.js.map +2 -2
  266. package/build/esm/hooks/index.d.ts +1 -0
  267. package/build/esm/hooks/index.js +1 -0
  268. package/build/esm/hooks/index.js.map +2 -2
  269. package/build/esm/hooks/useAnalytics.d.ts +1 -0
  270. package/build/esm/hooks/useAnalytics.js +0 -2
  271. package/build/esm/hooks/useAnalytics.js.map +2 -2
  272. package/build/esm/hooks/usePopper.js.map +2 -2
  273. package/build/esm/hooks/usePopupState.d.ts +1 -1
  274. package/build/esm/hooks/useVirtualElementRef.d.ts +32 -0
  275. package/build/esm/hooks/useVirtualElementRef.js +89 -0
  276. package/build/esm/hooks/useVirtualElementRef.js.map +7 -0
  277. package/build/esm/i18n/index.d.ts +18 -0
  278. package/build/esm/i18n/index.js +11 -2
  279. package/build/esm/i18n/index.js.map +2 -2
  280. package/build/esm/index.d.ts +1 -0
  281. package/build/esm/index.js +1 -0
  282. package/build/esm/index.js.map +2 -2
  283. package/build/esm/models/index.d.ts +3 -4
  284. package/build/esm/models/index.js.map +1 -1
  285. package/build/esm/utils/index.d.ts +1 -2
  286. package/build/esm/utils/index.js.map +2 -2
  287. package/build/index.css.map +1 -1
  288. package/build/themes/common/index.css.map +1 -1
  289. package/package.json +10 -45
  290. package/src/i18n/en.json +10 -1
  291. package/src/i18n/ru.json +10 -1
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/SearchSuggest/useProvider.ts
31
+ var useProvider_exports = {};
32
+ __export(useProvider_exports, {
33
+ useProvider: () => useProvider
34
+ });
35
+ module.exports = __toCommonJS(useProvider_exports);
36
+ var import_react = require("react");
37
+ var import_debounce = __toESM(require("lodash/debounce"));
38
+ var import_hooks = require("../../hooks");
39
+ var import_types = require("./types");
40
+ var cache = /* @__PURE__ */ new Map();
41
+ function useProvider(provider) {
42
+ const wait = (0, import_react.useRef)(null);
43
+ const [items, setItems] = (0, import_react.useState)(null);
44
+ const { t } = (0, import_hooks.useTranslation)("search-suggest");
45
+ const suggest = (0, import_react.useMemo)(
46
+ () => (0, import_debounce.default)((query) => {
47
+ const promise = wait.current = (async () => {
48
+ try {
49
+ const data = await provider.suggest(query);
50
+ const items2 = format(query, data, provider.link, t);
51
+ cache.set(query, items2);
52
+ setTimeout(() => cache.delete(query), 3e4);
53
+ return items2;
54
+ } catch (error) {
55
+ return [
56
+ {
57
+ type: import_types.SuggestItemType.Text,
58
+ title: t("search-suggest_error-text"),
59
+ disabled: true
60
+ }
61
+ ];
62
+ }
63
+ })();
64
+ setItems(promise);
65
+ promise.then((items2) => {
66
+ if (wait.current === promise) {
67
+ setItems(items2);
68
+ }
69
+ });
70
+ }, 300),
71
+ [t, provider, wait, setItems]
72
+ );
73
+ const request = (0, import_react.useCallback)(
74
+ (query) => {
75
+ if (!query) {
76
+ wait.current = null;
77
+ setItems(null);
78
+ } else if (cache.has(query)) {
79
+ wait.current = null;
80
+ setItems(cache.get(query));
81
+ } else {
82
+ suggest(query);
83
+ }
84
+ return suggest.cancel;
85
+ },
86
+ [suggest, setItems]
87
+ );
88
+ return [items, request];
89
+ }
90
+ function format(query, items, link, t) {
91
+ const groups = Object.values(
92
+ items.reduce(
93
+ (result2, item) => {
94
+ result2[item.type] = result2[item.type] || { type: item.type, items: [] };
95
+ result2[item.type].items.push({
96
+ type: import_types.SuggestItemType.Page,
97
+ title: item.title,
98
+ link: link(item.link),
99
+ description: item.description,
100
+ breadcrumbs: item.breadcrumbs
101
+ });
102
+ return result2;
103
+ },
104
+ {}
105
+ )
106
+ );
107
+ const result = groups.length === 1 ? groups[0].items : groups.reduce((result2, group) => {
108
+ if (result2.length) {
109
+ result2.push({
110
+ type: import_types.SuggestItemType.Delimiter,
111
+ disabled: true
112
+ });
113
+ }
114
+ result2.push({
115
+ type: import_types.SuggestItemType.Group,
116
+ title: t(
117
+ `search-item_type-${group.type}`,
118
+ t("search-item_type-main")
119
+ ),
120
+ disabled: true
121
+ });
122
+ return result2.concat(group.items);
123
+ }, []);
124
+ if (result.length > 0) {
125
+ result.push({
126
+ type: import_types.SuggestItemType.Link,
127
+ title: t("search-suggest_all-results"),
128
+ link: link(`/search?query=${query}`)
129
+ });
130
+ }
131
+ return result;
132
+ }
133
+ //# sourceMappingURL=useProvider.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/SearchSuggest/useProvider.ts"],
4
+ "sourcesContent": ["import type {TFunction} from 'react-i18next';\nimport type {SearchGroup, SearchProvider, SearchResult, 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;\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: SearchProvider): [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, provider.link, 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: SearchResult[], link: Link, t: TFunction) {\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: 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<string>(\n `search-item_type-${group.type}`,\n t<string>('search-item_type-main'),\n ),\n disabled: true,\n });\n\n return result.concat(group.items as SearchSuggestItem[]);\n }, [] as SearchSuggestItem[]);\n\n if (result.length > 0) {\n result.push({\n type: SuggestItemType.Link,\n title: t('search-suggest_all-results'),\n link: link(`/search?query=${query}`),\n });\n }\n\n return result;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["debounce", "items", "result"]
7
+ }
@@ -25,8 +25,6 @@
25
25
  .dc-subscribe__success-popup_view_wide {
26
26
  right: 0 !important;
27
27
  left: 0 !important;
28
- }
29
- .dc-subscribe__success-popup_view_wide {
30
28
  margin: auto;
31
29
  }
32
30
  }
@@ -38,8 +36,6 @@
38
36
  .dc-subscribe__variants-popup_view_wide {
39
37
  right: 0 !important;
40
38
  left: 0 !important;
41
- }
42
- .dc-subscribe__variants-popup_view_wide {
43
39
  margin: auto;
44
40
  }
45
41
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Subscribe/home/runner/work/components/components/src/components/Subscribe/Subscribe.scss", "../../../../src/components/Subscribe/%3Cinput%20css%20MvtKc1%3E", "../../../../src/components/Subscribe/home/runner/work/components/components/src/styles/variables.scss"],
3
+ "sources": ["../../../../src/components/Subscribe/home/runner/work/components/components/src/components/Subscribe/Subscribe.scss", "../../../../src/components/Subscribe/%3Cinput%20css%209eIYK_%3E", "../../../../src/components/Subscribe/home/runner/work/components/components/src/styles/variables.scss"],
4
4
  "sourcesContent": ["@import '../../styles/mixins';\n@import '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n @media screen and (max-width: map-get($screenBreakpoints, 'xs')) {\n & {\n // stylelint-disable declaration-no-important\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n }\n}\n\n.dc-subscribe {\n &__container {\n &_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n }\n }\n\n &__container-row {\n display: flex;\n justify-content: center;\n width: 100%;\n padding: 28px;\n\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n\n &_view_wide {\n display: flex;\n align-items: center;\n }\n }\n\n &__success-popup {\n padding: $popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: $popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__popup-title {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n padding-bottom: 8px;\n }\n\n &__popup-text {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n }\n\n &__variants-actions {\n display: flex;\n justify-content: flex-end;\n }\n\n &__variants-action {\n margin-left: 10px;\n }\n\n &__variant__list-item {\n padding: 6px 12px;\n }\n\n &__textarea {\n padding: 8px 0;\n }\n\n &__title {\n &_view_wide {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n margin-right: 16px;\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n\n &_view_wide {\n display: flex;\n }\n }\n\n &__control {\n &:last-child {\n font-size: 13px;\n line-height: 18px;\n display: flex;\n align-items: center;\n }\n\n &_view_wide {\n margin-right: 12px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n &_view_regular {\n margin-right: 4px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n}\n", ".dc-subscribe__container_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n}\n.dc-subscribe__container-row {\n display: flex;\n justify-content: center;\n width: 100%;\n padding: 28px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-subscribe__container-row_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-subscribe__success-popup {\n padding: 16px;\n width: 320px;\n}\n@media screen and (max-width: 375px) {\n .dc-subscribe__success-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-subscribe__variants-popup {\n padding: 16px;\n width: 320px;\n}\n@media screen and (max-width: 375px) {\n .dc-subscribe__variants-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-subscribe__popup-title {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n padding-bottom: 8px;\n}\n.dc-subscribe__popup-text {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-subscribe__variants-actions {\n display: flex;\n justify-content: flex-end;\n}\n.dc-subscribe__variants-action {\n margin-left: 10px;\n}\n.dc-subscribe__variant__list-item {\n padding: 6px 12px;\n}\n.dc-subscribe__textarea {\n padding: 8px 0;\n}\n.dc-subscribe__title_view_wide {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n margin-right: 16px;\n font-weight: 400;\n}\n.dc-subscribe__controls {\n display: flex;\n}\n.dc-subscribe__controls_view_wide {\n display: flex;\n}\n.dc-subscribe__control:last-child {\n font-size: 13px;\n line-height: 18px;\n display: flex;\n align-items: center;\n}\n.dc-subscribe__control_view_wide {\n margin-right: 12px;\n}\n.dc-subscribe__control_view_wide:last-child {\n margin-right: 0;\n}\n.dc-subscribe__control_view_regular {\n margin-right: 4px;\n}\n.dc-subscribe__control_view_regular:last-child {\n margin-right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1N1YnNjcmliZSIsInNvdXJjZXMiOlsiU3Vic2NyaWJlLnNjc3MiLCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlSO0VBQ0ksU0NsQ087RURtQ1AsT0F4Q0s7O0FBR1Q7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdUNSO0VBQ0ksU0MzQ087RUQ0Q1AsT0FqREs7O0FBR1Q7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBZ0RSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJOztBQUVBO0VBQ0k7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcblxuJHBvcHVwV2lkdGg6IDMyMHB4O1xuXG5AbWl4aW4gdG9vbHRpcC1pbi1jZW50ZXIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAneHMnKSkge1xuICAgICAgICAmIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuICAgICAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRjLXN1YnNjcmliZSB7XG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWluZXItcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyOHB4O1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1wb3B1cCB7XG4gICAgICAgIHBhZGRpbmc6ICRwb3B1cFBhZGRpbmc7XG4gICAgICAgIHdpZHRoOiAkcG9wdXBXaWR0aDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b29sdGlwLWluLWNlbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtcG9wdXAge1xuICAgICAgICBwYWRkaW5nOiAkcG9wdXBQYWRkaW5nO1xuICAgICAgICB3aWR0aDogJHBvcHVwV2lkdGg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9vbHRpcC1pbi1jZW50ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BvcHVwLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keTItZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5Mi1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtYWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudF9fbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgfVxuXG4gICAgJl9fdGV4dGFyZWEge1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHkyLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHkyLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX3ZpZXdfcmVndWxhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBTaXplc1xuJGhlYWRlckhlaWdodDogMHB4O1xuJG5vcm1hbE9mZnNldDogMjBweDtcbiRtaW5pVG9jT2Zmc2V0OiA1NnB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTGFyZ2U6IDIwcHg7XG4kYmxvY2tNYXJnaW5Cb3R0b21NZWRpdW06IDE1cHg7XG4kaGVhZGVyTWFyZ2luVG9wTGFyZ2U6IDQwcHg7XG4kaGVhZGVyTWFyZ2luVG9wTWVkaXVtOiAzMnB4O1xuJHBvcHVwUGFkZGluZzogMTZweDtcbiRjZW50ZXJCbG9ja01heFdpZHRoOiA3MzZweDtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iXX0= */", "// Sizes\n$headerHeight: 0px;\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$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n"],
5
- "mappings": ";AAkBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACjBZ;ADqBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACpBR;ADsBQ,CAAA;AACI,WAAA;AACA,eAAA;ACpBZ;ADwBI,CAAA;AACI,WAAA;AACA,SAAA;ACtBR;ADfI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;ACiBV;ADpBM,GAAA;AAII,YAAA;ACgBV;AACF;ADsBI,CAAA;AACI,WAAA;AACA,SAAA;ACpBR;AD1BI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AC4BV;AD/BM,GAAA;AAII,YAAA;AC2BV;AACF;ADoBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;AClBR;ADqBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACnBR;ADsBI,CAAA;AACI,WAAA;AACA,mBAAA;ACpBR;ADuBI,CAAA;AACI,eAAA;ACrBR;ADwBI,CAAA;AACI,WAAA,IAAA;ACtBR;ADyBI,CAAA;AACI,WAAA,IAAA;ACvBR;AD2BQ,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,gBAAA;AACA,eAAA;ACzBZ;AD6BI,CAAA;AACI,WAAA;AC3BR;AD6BQ,CAAA;AACI,WAAA;AC3BZ;ADgCQ,CAAA,qBAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AC9BZ;ADiCQ,CAAA;AACI,gBAAA;AC/BZ;ADiCY,CAHJ,+BAGI;AACI,gBAAA;AC/BhB;ADmCQ,CAAA;AACI,gBAAA;ACjCZ;ADmCY,CAHJ,kCAGI;AACI,gBAAA;ACjChB;",
5
+ "mappings": ";AAkBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACjBZ;ADqBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACpBR;ADsBQ,CAAA;AACI,WAAA;AACA,eAAA;ACpBZ;ADwBI,CAAA;AACI,WAAA;AACA,SAAA;ACtBR;ADfI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;ACgBV;AACF;ADsBI,CAAA;AACI,WAAA;AACA,SAAA;ACpBR;AD1BI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;AC2BV;AACF;ADoBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;AClBR;ADqBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACnBR;ADsBI,CAAA;AACI,WAAA;AACA,mBAAA;ACpBR;ADuBI,CAAA;AACI,eAAA;ACrBR;ADwBI,CAAA;AACI,WAAA,IAAA;ACtBR;ADyBI,CAAA;AACI,WAAA,IAAA;ACvBR;AD2BQ,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,gBAAA;AACA,eAAA;ACzBZ;AD6BI,CAAA;AACI,WAAA;AC3BR;AD6BQ,CAAA;AACI,WAAA;AC3BZ;ADgCQ,CAAA,qBAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AC9BZ;ADiCQ,CAAA;AACI,gBAAA;AC/BZ;ADiCY,CAHJ,+BAGI;AACI,gBAAA;AC/BhB;ADmCQ,CAAA;AACI,gBAAA;ACjCZ;ADmCY,CAHJ,kCAGI;AACI,gBAAA;ACjChB;",
6
6
  "names": []
7
7
  }
@@ -51,36 +51,41 @@ var SubscribeView = /* @__PURE__ */ ((SubscribeView2) => {
51
51
  return SubscribeView2;
52
52
  })(SubscribeView || {});
53
53
  var SubscribeControl = (0, import_react.memo)(
54
- (0, import_react.forwardRef)(({ view, onChangeSubscribe }, ref) => {
55
- const { isVerticalView, popupPosition, controlClassName, controlSize } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
56
- const { t } = (0, import_hooks.useTranslation)("controls");
57
- if (view === "wide" /* Wide */) {
54
+ (0, import_react.forwardRef)(
55
+ ({ view, onChangeSubscribe, isPopupVisible }, ref) => {
56
+ const { isVerticalView, popupPosition, controlClassName, controlSize } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
57
+ const { t } = (0, import_hooks.useTranslation)("controls");
58
+ if (view === "wide" /* Wide */) {
59
+ return /* @__PURE__ */ import_react.default.createElement(
60
+ import_uikit.Button,
61
+ {
62
+ view: "flat-secondary",
63
+ ref,
64
+ onClick: onChangeSubscribe,
65
+ className: b("control", { view })
66
+ },
67
+ /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(import_icons.Envelope, { width: 16, height: 16 })),
68
+ t("button-Subscribe-text")
69
+ );
70
+ }
58
71
  return /* @__PURE__ */ import_react.default.createElement(
59
- import_uikit.Button,
72
+ import_Control.Control,
60
73
  {
61
- view: "flat-secondary",
62
74
  ref,
63
75
  onClick: onChangeSubscribe,
64
- className: b("control", { view })
65
- },
66
- /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(import_icons.Envelope, { width: 16, height: 16 })),
67
- t("button-Subscribe-text")
76
+ size: controlSize,
77
+ className: b("control", { view }, controlClassName),
78
+ isVerticalView,
79
+ tooltipText: t(`subscribe-text`),
80
+ icon: import_icons.Envelope,
81
+ popupPosition,
82
+ buttonExtraProps: {
83
+ "aria-expanded": isPopupVisible
84
+ }
85
+ }
68
86
  );
69
87
  }
70
- return /* @__PURE__ */ import_react.default.createElement(
71
- import_Control.Control,
72
- {
73
- ref,
74
- onClick: onChangeSubscribe,
75
- size: controlSize,
76
- className: b("control", { view }, controlClassName),
77
- isVerticalView,
78
- tooltipText: t(`subscribe-text`),
79
- icon: import_icons.Envelope,
80
- popupPosition
81
- }
82
- );
83
- })
88
+ )
84
89
  );
85
90
  SubscribeControl.displayName = "SubscribeControl";
86
91
  var SubscribeControlsLayout = (0, import_react.memo)(
@@ -106,12 +111,14 @@ var Subscribe = (0, import_react.memo)((props) => {
106
111
  variantsPopup.close();
107
112
  successPopup.open();
108
113
  }, [successPopup, variantsPopup]);
114
+ const isPopupVisible = successPopup.visible || variantsPopup.visible;
109
115
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SubscribeControlsLayout, { view }, /* @__PURE__ */ import_react.default.createElement(
110
116
  SubscribeControl,
111
117
  {
112
118
  ref: subscribeControlRef,
113
119
  view,
114
- onChangeSubscribe
120
+ onChangeSubscribe,
121
+ isPopupVisible
115
122
  }
116
123
  )), successPopup.visible && subscribeControlRef.current && /* @__PURE__ */ import_react.default.createElement(
117
124
  import_SubscribeSuccessPopup.SubscribeSuccessPopup,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Subscribe/Subscribe.tsx"],
4
- "sourcesContent": ["import React, {PropsWithChildren, forwardRef, memo, useCallback, useContext, useRef} from 'react';\n\nimport {Envelope} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {usePopupState, useTranslation} from '../../hooks';\nimport {SubscribeData} from '../../models';\nimport {Control} from '../Control';\nimport {ControlsLayoutContext} from '../Controls/ControlsLayout';\n\nimport {SubscribeSuccessPopup} from './SubscribeSuccessPopup';\nimport {SubscribeVariantsPopup} from './SubscribeVariantsPopup';\n\nimport './Subscribe.scss';\n\nconst b = block('dc-subscribe');\n\nexport enum SubscribeView {\n Wide = 'wide',\n Regular = 'regular',\n}\n\nexport interface SubscribeProps {\n onSubscribe: (data: SubscribeData) => void;\n view?: SubscribeView;\n}\n\ntype SubscribeControlProps = {\n view: SubscribeView;\n onChangeSubscribe: () => void;\n};\n\nconst SubscribeControl = memo(\n forwardRef<HTMLButtonElement, SubscribeControlProps>(({view, onChangeSubscribe}, ref) => {\n const {isVerticalView, popupPosition, controlClassName, controlSize} =\n useContext(ControlsLayoutContext);\n const {t} = useTranslation('controls');\n\n if (view === SubscribeView.Wide) {\n return (\n <Button\n view=\"flat-secondary\"\n ref={ref}\n onClick={onChangeSubscribe}\n className={b('control', {view})}\n >\n <Button.Icon>\n <Envelope width={16} height={16} />\n </Button.Icon>\n {t<string>('button-Subscribe-text')}\n </Button>\n );\n }\n\n return (\n <Control\n ref={ref}\n onClick={onChangeSubscribe}\n size={controlSize}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={t(`subscribe-text`)}\n icon={Envelope}\n popupPosition={popupPosition}\n />\n );\n }),\n);\n\nSubscribeControl.displayName = 'SubscribeControl';\n\nconst SubscribeControlsLayout = memo<PropsWithChildren<{view: SubscribeView}>>(\n ({view, children}) => {\n const {t} = useTranslation('controls');\n\n if (view === SubscribeView.Regular) {\n return <React.Fragment>{children}</React.Fragment>;\n }\n\n return (\n <div className={b('container', {view})}>\n <div className={b('container-row', {view})}>\n <h3 className={b('title', {view})}>{t<string>('main-question')}</h3>\n <div className={b('controls', {view})}>{children}</div>\n </div>\n </div>\n );\n },\n);\n\nSubscribeControlsLayout.displayName = 'SubscribeControlsLayout';\n\nconst Subscribe = memo<SubscribeProps>((props) => {\n const {view = SubscribeView.Regular, onSubscribe} = props;\n\n const subscribeControlRef = useRef<HTMLButtonElement | null>(null);\n\n const successPopup = usePopupState({autoclose: 60000});\n const variantsPopup = usePopupState();\n\n const onChangeSubscribe = useCallback(() => {\n variantsPopup.toggle();\n successPopup.close();\n }, [successPopup, variantsPopup]);\n\n const onSubmitVariants = useCallback(() => {\n variantsPopup.close();\n successPopup.open();\n }, [successPopup, variantsPopup]);\n\n return (\n <React.Fragment>\n <SubscribeControlsLayout view={view}>\n <SubscribeControl\n ref={subscribeControlRef}\n view={view}\n onChangeSubscribe={onChangeSubscribe}\n />\n </SubscribeControlsLayout>\n {successPopup.visible && subscribeControlRef.current && (\n <SubscribeSuccessPopup\n view={view}\n anchor={subscribeControlRef}\n onOutsideClick={successPopup.close}\n />\n )}\n {variantsPopup.visible && subscribeControlRef.current && (\n <SubscribeVariantsPopup\n view={view}\n anchor={subscribeControlRef}\n onOutsideClick={variantsPopup.close}\n onSubscribe={onSubscribe}\n onSubmit={onSubmitVariants}\n />\n )}\n </React.Fragment>\n );\n});\n\nSubscribe.displayName = 'Subscribe';\n\nexport default Subscribe;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React, {PropsWithChildren, forwardRef, memo, useCallback, useContext, useRef} from 'react';\nimport {Envelope} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {usePopupState, useTranslation} from '../../hooks';\nimport {SubscribeData} from '../../models';\nimport {Control} from '../Control';\nimport {ControlsLayoutContext} from '../Controls/ControlsLayout';\n\nimport {SubscribeSuccessPopup} from './SubscribeSuccessPopup';\nimport {SubscribeVariantsPopup} from './SubscribeVariantsPopup';\nimport './Subscribe.scss';\n\nconst b = block('dc-subscribe');\n\nexport enum SubscribeView {\n Wide = 'wide',\n Regular = 'regular',\n}\n\nexport interface SubscribeProps {\n onSubscribe: (data: SubscribeData) => void;\n view?: SubscribeView;\n}\n\ntype SubscribeControlProps = {\n view: SubscribeView;\n onChangeSubscribe: () => void;\n isPopupVisible: boolean;\n};\n\nconst SubscribeControl = memo(\n forwardRef<HTMLButtonElement, SubscribeControlProps>(\n ({view, onChangeSubscribe, isPopupVisible}, ref) => {\n const {isVerticalView, popupPosition, controlClassName, controlSize} =\n useContext(ControlsLayoutContext);\n const {t} = useTranslation('controls');\n\n if (view === SubscribeView.Wide) {\n return (\n <Button\n view=\"flat-secondary\"\n ref={ref}\n onClick={onChangeSubscribe}\n className={b('control', {view})}\n >\n <Button.Icon>\n <Envelope width={16} height={16} />\n </Button.Icon>\n {t<string>('button-Subscribe-text')}\n </Button>\n );\n }\n\n return (\n <Control\n ref={ref}\n onClick={onChangeSubscribe}\n size={controlSize}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={t(`subscribe-text`)}\n icon={Envelope}\n popupPosition={popupPosition}\n buttonExtraProps={{\n 'aria-expanded': isPopupVisible,\n }}\n />\n );\n },\n ),\n);\n\nSubscribeControl.displayName = 'SubscribeControl';\n\nconst SubscribeControlsLayout = memo<PropsWithChildren<{view: SubscribeView}>>(\n ({view, children}) => {\n const {t} = useTranslation('controls');\n\n if (view === SubscribeView.Regular) {\n return <React.Fragment>{children}</React.Fragment>;\n }\n\n return (\n <div className={b('container', {view})}>\n <div className={b('container-row', {view})}>\n <h3 className={b('title', {view})}>{t<string>('main-question')}</h3>\n <div className={b('controls', {view})}>{children}</div>\n </div>\n </div>\n );\n },\n);\n\nSubscribeControlsLayout.displayName = 'SubscribeControlsLayout';\n\nconst Subscribe = memo<SubscribeProps>((props) => {\n const {view = SubscribeView.Regular, onSubscribe} = props;\n\n const subscribeControlRef = useRef<HTMLButtonElement | null>(null);\n\n const successPopup = usePopupState({autoclose: 60000});\n const variantsPopup = usePopupState();\n\n const onChangeSubscribe = useCallback(() => {\n variantsPopup.toggle();\n successPopup.close();\n }, [successPopup, variantsPopup]);\n\n const onSubmitVariants = useCallback(() => {\n variantsPopup.close();\n successPopup.open();\n }, [successPopup, variantsPopup]);\n\n const isPopupVisible = successPopup.visible || variantsPopup.visible;\n\n return (\n <React.Fragment>\n <SubscribeControlsLayout view={view}>\n <SubscribeControl\n ref={subscribeControlRef}\n view={view}\n onChangeSubscribe={onChangeSubscribe}\n isPopupVisible={isPopupVisible}\n />\n </SubscribeControlsLayout>\n {successPopup.visible && subscribeControlRef.current && (\n <SubscribeSuccessPopup\n view={view}\n anchor={subscribeControlRef}\n onOutsideClick={successPopup.close}\n />\n )}\n {variantsPopup.visible && subscribeControlRef.current && (\n <SubscribeVariantsPopup\n view={view}\n anchor={subscribeControlRef}\n onOutsideClick={variantsPopup.close}\n onSubscribe={onSubscribe}\n onSubmit={onSubmitVariants}\n />\n )}\n </React.Fragment>\n );\n});\n\nSubscribe.displayName = 'Subscribe';\n\nexport default Subscribe;\n"],
5
+ "mappings": "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",
6
6
  "names": ["block", "SubscribeView", "React"]
7
7
  }
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { SubscribeView } from '../Subscribe';
3
3
  declare const SubscribeSuccessPopup: React.NamedExoticComponent<{
4
4
  anchor: React.RefObject<HTMLElement>;
5
- view?: SubscribeView | undefined;
5
+ view?: SubscribeView;
6
6
  onOutsideClick: () => void;
7
7
  }>;
8
8
  export default SubscribeSuccessPopup;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.tsx"],
4
- "sourcesContent": ["import React, {memo, useContext} from 'react';\n\nimport {Popup, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {SubscribeView} from '../Subscribe';\nimport {getSubscribePopupPosition} from '../utils';\n\nconst b = block('dc-subscribe');\n\nconst SubscribeSuccessPopup = memo<{\n anchor: React.RefObject<HTMLElement>;\n view?: SubscribeView;\n onOutsideClick: () => void;\n}>(({anchor, view, onOutsideClick}) => {\n const {t} = useTranslation('controls');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n return (\n <Popup\n anchorRef={anchor}\n open={true}\n onOutsideClick={onOutsideClick}\n contentClassName={b('success-popup', {view})}\n placement={getSubscribePopupPosition(isVerticalView, view, direction)}\n >\n <h3 className={b('popup-title')}>{t<string>('verify-title')}</h3>\n <p className={b('popup-text')}>{t<string>('verify-text')}</p>\n </Popup>\n );\n});\n\nSubscribeSuccessPopup.displayName = 'SubscribeSuccessPopup';\n\nexport default SubscribeSuccessPopup;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsC;AAEtC,mBAAkC;AAClC,yBAAkB;AAElB,mBAA6B;AAC7B,4BAAoC;AAEpC,mBAAwC;AAExC,IAAM,QAAI,mBAAAA,SAAM,cAAc;AAE9B,IAAM,4BAAwB,mBAI3B,CAAC,EAAC,QAAQ,MAAM,eAAc,MAAM;AACnC,QAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,QAAM,EAAC,eAAc,QAAI,yBAAW,2CAAqB;AACzD,QAAM,gBAAY,2BAAa;AAE/B,SACI,6BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,MACX,MAAM;AAAA,MACN;AAAA,MACA,kBAAkB,EAAE,iBAAiB,EAAC,KAAI,CAAC;AAAA,MAC3C,eAAW,wCAA0B,gBAAgB,MAAM,SAAS;AAAA;AAAA,IAEpE,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,aAAa,KAAI,EAAU,cAAc,CAAE;AAAA,IAC5D,6BAAAA,QAAA,cAAC,OAAE,WAAW,EAAE,YAAY,KAAI,EAAU,aAAa,CAAE;AAAA,EAC7D;AAER,CAAC;AAED,sBAAsB,cAAc;AAEpC,IAAO,gCAAQ;",
4
+ "sourcesContent": ["import React, {memo, useContext} from 'react';\nimport {Popup, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {SubscribeView} from '../Subscribe';\nimport {getSubscribePopupPosition} from '../utils';\n\nconst b = block('dc-subscribe');\n\nconst SubscribeSuccessPopup = memo<{\n anchor: React.RefObject<HTMLElement>;\n view?: SubscribeView;\n onOutsideClick: () => void;\n}>(({anchor, view, onOutsideClick}) => {\n const {t} = useTranslation('controls');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n return (\n <Popup\n anchorRef={anchor}\n open={true}\n onOutsideClick={onOutsideClick}\n contentClassName={b('success-popup', {view})}\n placement={getSubscribePopupPosition(isVerticalView, view, direction)}\n >\n <h3 className={b('popup-title')}>{t<string>('verify-title')}</h3>\n <p className={b('popup-text')}>{t<string>('verify-text')}</p>\n </Popup>\n );\n});\n\nSubscribeSuccessPopup.displayName = 'SubscribeSuccessPopup';\n\nexport default SubscribeSuccessPopup;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsC;AACtC,mBAAkC;AAClC,yBAAkB;AAElB,mBAA6B;AAC7B,4BAAoC;AAEpC,mBAAwC;AAExC,IAAM,QAAI,mBAAAA,SAAM,cAAc;AAE9B,IAAM,4BAAwB,mBAI3B,CAAC,EAAC,QAAQ,MAAM,eAAc,MAAM;AACnC,QAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,QAAM,EAAC,eAAc,QAAI,yBAAW,2CAAqB;AACzD,QAAM,gBAAY,2BAAa;AAE/B,SACI,6BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,MACX,MAAM;AAAA,MACN;AAAA,MACA,kBAAkB,EAAE,iBAAiB,EAAC,KAAI,CAAC;AAAA,MAC3C,eAAW,wCAA0B,gBAAgB,MAAM,SAAS;AAAA;AAAA,IAEpE,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,aAAa,KAAI,EAAU,cAAc,CAAE;AAAA,IAC5D,6BAAAA,QAAA,cAAC,OAAE,WAAW,EAAE,YAAY,KAAI,EAAU,aAAa,CAAE;AAAA,EAC7D;AAER,CAAC;AAED,sBAAsB,cAAc;AAEpC,IAAO,gCAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -3,8 +3,8 @@ import { SubscribeData } from '../../../models';
3
3
  import { SubscribeView } from '../Subscribe';
4
4
  declare const SubscribeVariantsPopup: React.NamedExoticComponent<{
5
5
  anchor: React.RefObject<HTMLElement>;
6
- view?: SubscribeView | undefined;
7
- onSubscribe?: ((data: SubscribeData) => void) | undefined;
6
+ view?: SubscribeView;
7
+ onSubscribe?: (data: SubscribeData) => void;
8
8
  onSubmit: () => void;
9
9
  onOutsideClick: () => void;
10
10
  }>;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.tsx"],
4
- "sourcesContent": ["import React, {SyntheticEvent, memo, useCallback, useContext, useState} from 'react';\n\nimport {Button, List, Popup, TextInput, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {SubscribeData, SubscribeType} from '../../../models';\nimport {isInvalidEmail} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {SubscribeView} from '../Subscribe';\nimport {getSubscribePopupPosition} from '../utils';\n\nconst b = block('dc-subscribe');\n\nconst LIST_ITEM_HEIGHT = 36;\n\nconst SubscribeVariantsPopup = memo<{\n anchor: React.RefObject<HTMLElement>;\n view?: SubscribeView;\n onSubscribe?: (data: SubscribeData) => void;\n onSubmit: () => void;\n onOutsideClick: () => void;\n}>((props) => {\n const {t} = useTranslation('controls');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n const {anchor, view, onSubscribe, onSubmit, onOutsideClick} = props;\n\n const [email, setEmail] = useState('');\n const [showError, setShowError] = useState('');\n const [subscribeSelectors, setSubscribeSelectors] = useState(SubscribeType.documentation);\n\n const resetSubscribeAdditionalInfo = useCallback(() => {\n setEmail('');\n }, []);\n\n const onSendSubscribeInformation = useCallback(\n (event: SyntheticEvent) => {\n event.preventDefault();\n\n if (isInvalidEmail(email)) {\n setShowError(t('email-text-invalid'));\n return;\n }\n\n setShowError('');\n\n if (onSubscribe) {\n try {\n onSubscribe({\n email,\n type: subscribeSelectors,\n });\n\n onSubmit();\n } catch (e) {\n setShowError(t('email-request-fail'));\n }\n\n resetSubscribeAdditionalInfo();\n }\n },\n [onSubscribe, email, resetSubscribeAdditionalInfo, subscribeSelectors, onSubmit, t],\n );\n\n const renderSubscribeVariantsList = useCallback(() => {\n const ITEMS = [\n {value: SubscribeType.documentation, text: t('subscribe-documentation-title')},\n {value: SubscribeType.page, text: t('subscribe-page-title')},\n ];\n\n const itemsHeight = LIST_ITEM_HEIGHT * ITEMS.length;\n const selectedItemIndex = ITEMS.findIndex(({value}) => value === subscribeSelectors);\n\n return (\n <List\n filterable={false}\n items={ITEMS}\n onItemClick={(item) => setSubscribeSelectors(item.value as SubscribeType)}\n selectedItemIndex={selectedItemIndex}\n itemHeight={LIST_ITEM_HEIGHT}\n itemsHeight={itemsHeight}\n renderItem={(item) => <div className={b('variant__list-item')}>{item.text}</div>}\n />\n );\n }, [subscribeSelectors, t]);\n\n const renderSubscribeForm = useCallback(() => {\n return (\n <form onSubmit={onSendSubscribeInformation}>\n <div className={b('textarea')}>\n <TextInput\n size=\"l\"\n placeholder={t('subscribe-documentation-placeholder')}\n error={showError || undefined}\n value={email}\n onUpdate={setEmail}\n />\n </div>\n <div className={b('variants-actions')}>\n <Button view=\"action\" className={b('variants-action')} type={'submit'}>\n {t<string>('subscribe-text')}\n </Button>\n </div>\n </form>\n );\n }, [email, showError, onSendSubscribeInformation, t]);\n\n return (\n <Popup\n anchorRef={anchor}\n open={true}\n onOutsideClick={onOutsideClick}\n contentClassName={b('variants-popup', {view})}\n placement={getSubscribePopupPosition(isVerticalView, view, direction)}\n >\n {renderSubscribeVariantsList()}\n {renderSubscribeForm()}\n </Popup>\n );\n});\n\nSubscribeVariantsPopup.displayName = 'SubscribeVariantsPopup';\n\nexport default SubscribeVariantsPopup;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React, {SyntheticEvent, memo, useCallback, useContext, useState} from 'react';\nimport {Button, List, Popup, TextInput, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {SubscribeData, SubscribeType} from '../../../models';\nimport {isInvalidEmail} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {SubscribeView} from '../Subscribe';\nimport {getSubscribePopupPosition} from '../utils';\n\nconst b = block('dc-subscribe');\n\nconst LIST_ITEM_HEIGHT = 36;\n\nconst SubscribeVariantsPopup = memo<{\n anchor: React.RefObject<HTMLElement>;\n view?: SubscribeView;\n onSubscribe?: (data: SubscribeData) => void;\n onSubmit: () => void;\n onOutsideClick: () => void;\n}>((props) => {\n const {t} = useTranslation('controls');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n const {anchor, view, onSubscribe, onSubmit, onOutsideClick} = props;\n\n const [email, setEmail] = useState('');\n const [showError, setShowError] = useState('');\n const [subscribeSelectors, setSubscribeSelectors] = useState(SubscribeType.documentation);\n\n const resetSubscribeAdditionalInfo = useCallback(() => {\n setEmail('');\n }, []);\n\n const onSendSubscribeInformation = useCallback(\n (event: SyntheticEvent) => {\n event.preventDefault();\n\n if (isInvalidEmail(email)) {\n setShowError(t('email-text-invalid'));\n return;\n }\n\n setShowError('');\n\n if (onSubscribe) {\n try {\n onSubscribe({\n email,\n type: subscribeSelectors,\n });\n\n onSubmit();\n } catch (e) {\n setShowError(t('email-request-fail'));\n }\n\n resetSubscribeAdditionalInfo();\n }\n },\n [onSubscribe, email, resetSubscribeAdditionalInfo, subscribeSelectors, onSubmit, t],\n );\n\n const renderSubscribeVariantsList = useCallback(() => {\n const ITEMS = [\n {value: SubscribeType.documentation, text: t('subscribe-documentation-title')},\n {value: SubscribeType.page, text: t('subscribe-page-title')},\n ];\n\n const itemsHeight = LIST_ITEM_HEIGHT * ITEMS.length;\n const selectedItemIndex = ITEMS.findIndex(({value}) => value === subscribeSelectors);\n\n return (\n <List\n filterable={false}\n items={ITEMS}\n onItemClick={(item) => setSubscribeSelectors(item.value as SubscribeType)}\n selectedItemIndex={selectedItemIndex}\n itemHeight={LIST_ITEM_HEIGHT}\n itemsHeight={itemsHeight}\n renderItem={(item) => <div className={b('variant__list-item')}>{item.text}</div>}\n />\n );\n }, [subscribeSelectors, t]);\n\n const renderSubscribeForm = useCallback(() => {\n return (\n <form onSubmit={onSendSubscribeInformation}>\n <div className={b('textarea')}>\n <TextInput\n size=\"l\"\n placeholder={t('subscribe-documentation-placeholder')}\n error={showError || undefined}\n value={email}\n onUpdate={setEmail}\n />\n </div>\n <div className={b('variants-actions')}>\n <Button view=\"action\" className={b('variants-action')} type={'submit'}>\n {t<string>('subscribe-text')}\n </Button>\n </div>\n </form>\n );\n }, [email, showError, onSendSubscribeInformation, t]);\n\n return (\n <Popup\n anchorRef={anchor}\n open={true}\n onOutsideClick={onOutsideClick}\n contentClassName={b('variants-popup', {view})}\n placement={getSubscribePopupPosition(isVerticalView, view, direction)}\n >\n {renderSubscribeVariantsList()}\n {renderSubscribeForm()}\n </Popup>\n );\n});\n\nSubscribeVariantsPopup.displayName = 'SubscribeVariantsPopup';\n\nexport default SubscribeVariantsPopup;\n"],
5
+ "mappings": "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",
6
6
  "names": ["import_utils", "block", "React"]
7
7
  }
@@ -1,4 +1,4 @@
1
1
  import { ThemeContextProps } from '@gravity-ui/uikit';
2
2
  import { PopperPosition } from '../../hooks';
3
3
  import { SubscribeView } from './Subscribe';
4
- export declare const getSubscribePopupPosition: (isVerticalView: boolean | undefined, view?: SubscribeView, direction?: ThemeContextProps['direction']) => PopperPosition.BOTTOM_END | PopperPosition.RIGHT_START | PopperPosition.RIGHT | PopperPosition.LEFT_START;
4
+ export declare const getSubscribePopupPosition: (isVerticalView: boolean | undefined, view?: SubscribeView, direction?: ThemeContextProps["direction"]) => PopperPosition.BOTTOM_END | PopperPosition.RIGHT_START | PopperPosition.RIGHT | PopperPosition.LEFT_START;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Toc/home/runner/work/components/components/src/components/Toc/Toc.scss", "../../../../src/components/Toc/%3Cinput%20css%20ZWnvit%3E", "../../../../src/components/Toc/home/runner/work/components/components/src/styles/mixins.scss"],
3
+ "sources": ["../../../../src/components/Toc/home/runner/work/components/components/src/components/Toc/Toc.scss", "../../../../src/components/Toc/%3Cinput%20css%20QlQ_fM%3E", "../../../../src/components/Toc/home/runner/work/components/components/src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@import '../../styles/variables';\n@import '../../styles/mixins';\n\n$iconSize: 18px;\n$toggleSize: 10px;\n$leftOffset: 57px;\n\n@mixin toc-header {\n @include text-size(body-2);\n font-weight: 500;\n}\n\n.dc-toc {\n $class: &;\n\n display: flex;\n flex-direction: column;\n height: calc(100vh - var(--dc-header-height, #{$headerHeight}));\n overflow-y: hidden;\n border-right: 1px solid var(--g-color-line-generic);\n\n .mobile & {\n border-top: 1px solid var(--g-color-line-generic);\n border-right: none;\n }\n\n &__empty {\n padding: 5px 15px 5px 24px;\n }\n\n &__top {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: flex-start;\n padding: 10px 10px 8px 0;\n margin-bottom: 12px;\n\n &_scrolled {\n border-bottom: 1px solid var(--g-color-line-generic);\n }\n\n &-header-icon {\n display: flex;\n margin-right: 5px;\n flex-shrink: 0;\n\n [dir='rtl'] & {\n margin-left: 5px;\n }\n }\n\n &-header {\n flex-grow: 0;\n $headerClass: &;\n position: relative;\n\n @include text-size(body-2);\n font-weight: 500;\n\n &_link {\n @include reset-link-style();\n display: flex;\n align-items: center;\n border-radius: var(--g-focus-border-radius);\n\n &:hover {\n @include link();\n\n color: var(--g-color-text-primary);\n }\n @include focusable();\n }\n }\n }\n\n &__bottom {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 4px 10px 20px 0;\n\n &_scrolled {\n border-top: 1px solid var(--g-color-line-generic);\n }\n }\n\n &__content {\n --g-scrollbar-width: 6px;\n\n position: relative;\n flex-grow: 1;\n overflow-y: auto;\n scrollbar-width: thin;\n\n &_offset_top {\n padding-top: 24px;\n }\n }\n\n &__list {\n @include reset-list-style();\n\n display: block;\n\n &-item {\n cursor: pointer;\n user-select: none;\n\n &_labeled {\n margin-top: 16px;\n }\n\n &_main > *:first-child {\n color: var(--g-color-text-primary);\n }\n\n &:not(&_opened) > #{$class}__list {\n display: none;\n }\n\n // recurcive padding\n &:not(&_labeled) > #{$class}__list {\n padding-left: 20px;\n\n [dir='rtl'] & {\n padding-right: 20px;\n }\n }\n }\n }\n\n &__content > &__list {\n padding-right: 21px;\n padding-bottom: 30px;\n }\n}\n", ".dc-toc {\n display: flex;\n flex-direction: column;\n height: calc(100vh - var(--dc-header-height, 0px));\n overflow-y: hidden;\n border-right: 1px solid var(--g-color-line-generic);\n}\n.mobile .dc-toc {\n border-top: 1px solid var(--g-color-line-generic);\n border-right: none;\n}\n.dc-toc__empty {\n padding: 5px 15px 5px 24px;\n}\n.dc-toc__top {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: flex-start;\n padding: 10px 10px 8px 0;\n margin-bottom: 12px;\n}\n.dc-toc__top_scrolled {\n border-bottom: 1px solid var(--g-color-line-generic);\n}\n.dc-toc__top-header-icon {\n display: flex;\n margin-right: 5px;\n flex-shrink: 0;\n}\n[dir=rtl] .dc-toc__top-header-icon {\n margin-left: 5px;\n}\n.dc-toc__top-header {\n flex-grow: 0;\n position: relative;\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n font-weight: 500;\n}\n.dc-toc__top-header_link {\n color: inherit;\n text-decoration: none;\n display: flex;\n align-items: center;\n border-radius: var(--g-focus-border-radius);\n}\n.dc-toc__top-header_link:hover {\n outline: none;\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n color: var(--g-color-text-primary);\n}\n.utilityfocus .dc-toc__top-header_link:hover:focus {\n outline: 2px solid #ffdb4d;\n}\n.dc-toc__top-header_link:hover:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.dc-toc__top-header_link:hover:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.dc-toc__top-header_link:hover:hover, .dc-toc__top-header_link:hover:active {\n color: var(--g-color-text-link-hover);\n}\n.dc-toc__top-header_link:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: 0;\n}\n.dc-toc__top-header_link:focus:not(:focus-visible) {\n outline: 0;\n}\n.dc-toc__bottom {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 4px 10px 20px 0;\n}\n.dc-toc__bottom_scrolled {\n border-top: 1px solid var(--g-color-line-generic);\n}\n.dc-toc__content {\n --g-scrollbar-width: 6px;\n position: relative;\n flex-grow: 1;\n overflow-y: auto;\n scrollbar-width: thin;\n}\n.dc-toc__content_offset_top {\n padding-top: 24px;\n}\n.dc-toc__list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: block;\n}\n.dc-toc__list-item {\n cursor: pointer;\n user-select: none;\n}\n.dc-toc__list-item_labeled {\n margin-top: 16px;\n}\n.dc-toc__list-item_main > *:first-child {\n color: var(--g-color-text-primary);\n}\n.dc-toc__list-item:not(.dc-toc__list-item_opened) > .dc-toc__list {\n display: none;\n}\n.dc-toc__list-item:not(.dc-toc__list-item_labeled) > .dc-toc__list {\n padding-left: 20px;\n}\n[dir=rtl] .dc-toc__list-item:not(.dc-toc__list-item_labeled) > .dc-toc__list {\n padding-right: 20px;\n}\n.dc-toc__content > .dc-toc__list {\n padding-right: 21px;\n padding-bottom: 30px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RvYyIsInNvdXJjZXMiOlsiVG9jLnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBRUE7RUNwRFI7RUFDQTtFRHNEUTs7QUFFQTtFQ3pDUjtFQUNBO0VEMENZO0VBQ0E7RUFDQTs7QUFFQTtFQzFDWjtFQWlDQTtFQUNBO0VBQ0E7RUFDQTtFRFNnQjs7QUMzQ2hCO0VBQ0k7O0FBZ0JBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQWNSO0VBRUk7O0FBL0JBO0VBQ0k7RUFDQSxnQkFKYzs7QUFNbEI7RUFDSTs7QURzQ1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUM3RkE7RUFDQTtFQUNBO0VEOEZJOztBQUVBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQSIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbiRpY29uU2l6ZTogMThweDtcbiR0b2dnbGVTaXplOiAxMHB4O1xuJGxlZnRPZmZzZXQ6IDU3cHg7XG5cbkBtaXhpbiB0b2MtaGVhZGVyIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0yKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uZGMtdG9jIHtcbiAgICAkY2xhc3M6ICY7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3skaGVhZGVySGVpZ2h0fSkpO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG5cbiAgICAubW9iaWxlICYge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjRweDtcbiAgICB9XG5cbiAgICAmX190b3Age1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMHB4IDhweCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgICAgICZfc2Nyb2xsZWQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaGVhZGVyLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWhlYWRlciB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICAkaGVhZGVyQ2xhc3M6ICY7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTIpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAgICAgJl9saW5rIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC1saW5rLXN0eWxlKCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGluaygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHggMjBweCAwO1xuXG4gICAgICAgICZfc2Nyb2xsZWQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICAtLWctc2Nyb2xsYmFyLXdpZHRoOiA2cHg7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcblxuICAgICAgICAmX29mZnNldF90b3Age1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgJl9sYWJlbGVkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX21haW4gPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgmX29wZW5lZCkgPiAjeyRjbGFzc31fX2xpc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHJlY3VyY2l2ZSBwYWRkaW5nXG4gICAgICAgICAgICAmOm5vdCgmX2xhYmVsZWQpID4gI3skY2xhc3N9X19saXN0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cbiAgICAgICAgICAgICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50ID4gJl9fbGlzdCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIxcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4vdmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAjeyRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3skaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiJdfQ== */", "@import './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, #{$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{$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 @include islands-focus();\n @include focusable(0, 'box-shadow');\n\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n @include text-size(display-3);\n font-weight: 500;\n\n @media (max-width: map-get($screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n @include text-size(display-1);\n font-weight: 500;\n}\n\n@mixin heading3() {\n @include text-size(header-2);\n font-weight: 500;\n}\n\n@mixin heading4() {\n @include text-size(header-1);\n font-weight: 500;\n}\n\n@mixin heading5() {\n @include text-size(body-3);\n font-weight: 500;\n}\n\n@mixin heading6() {\n @include text-size(body-3);\n font-weight: 400;\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($screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map-get($screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map-get($screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map-get($screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n"],
5
5
  "mappings": ";AAYA,CAAA;AAGI,WAAA;AACA,kBAAA;AACA,UAAA,KAAA,MAAA,EAAA;AAAA,UAAA,KAAA,MAAA,EAAA,IAAA,kBAAA,EAAA;AACA,cAAA;AACA,gBAAA,IAAA,MAAA,IAAA;ACbJ;ADeI,CAAA,OAAA,CATJ;AAUQ,cAAA,IAAA,MAAA,IAAA;AACA,gBAAA;ACbR;ADgBI,CAAA;AACI,WAAA,IAAA,KAAA,IAAA;ACdR;ADiBI,CAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AACA,WAAA,KAAA,KAAA,IAAA;AACA,iBAAA;ACfR;ADiBQ,CAAA;AACI,iBAAA,IAAA,MAAA,IAAA;ACfZ;ADkBQ,CAAA;AACI,WAAA;AACA,gBAAA;AACA,eAAA;AChBZ;ADkBY,CAAA,SAAA,CALJ;AAMQ,eAAA;AChBhB;ADoBQ,CAAA;AACI,aAAA;AAEA,YAAA;AEpDR,aAAA,IAAA;AACA,eAAA,IAAA;AFsDQ,eAAA;ACnBZ;ADqBY,CAAA;AEzCR,SAAA;AACA,2BAAA;AAAA,mBAAA;AF0CY,WAAA;AACA,eAAA;AACA,iBAAA,IAAA;AClBhB;ADoBgB,CANJ,uBAMI;AE1CZ,WAAA;AAiCA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;AFSgB,SAAA,IAAA;ACfpB;AC5BI,CAAA,aAAA,CFkCQ,uBElCR,MAAA;AACI,WAAA,IAAA,MAAA;AD8BR;ACdQ,CFiBI,uBEjBJ,MAAA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADgBZ;ACdQ,CFaI,uBEbJ,MAAA,MAAA,KAAA;AACI,cAAA;ADgBZ;ACFI,CFFQ,uBEER,MAAA;AAAA,CFFQ,uBEER,MAAA;AAEI,SAAA,IAAA;ADGR;AClCQ,CF2BI,uBE3BJ;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ADoCZ;AClCQ,CFuBI,uBEvBJ,MAAA,KAAA;AACI,WAAA;ADoCZ;ADEI,CAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AACA,WAAA,IAAA,KAAA,KAAA;ACAR;ADEQ,CAAA;AACI,cAAA,IAAA,MAAA,IAAA;ACAZ;ADII,CAAA;AACI,uBAAA;AAEA,YAAA;AACA,aAAA;AACA,cAAA;AACA,mBAAA;ACHR;ADKQ,CAAA;AACI,eAAA;ACHZ;ADOI,CAAA;AE7FA,UAAA;AACA,WAAA;AACA,cAAA;AF8FI,WAAA;ACJR;ADMQ,CAAA;AACI,UAAA;AACA,uBAAA;AAAA,oBAAA;AAAA,eAAA;ACJZ;ADMY,CAAA;AACI,cAAA;ACJhB;ADOY,CAAA,uBAAA,EAAA,CAAA;AACI,SAAA,IAAA;ACLhB;ADQY,CAZJ,iBAYI,KAAA,CAAA,0BAAA,EAAA,CAjBR;AAkBY,WAAA;ACNhB;ADUY,CAjBJ,iBAiBI,KAAA,CAbA,2BAaA,EAAA,CAtBR;AAuBY,gBAAA;ACRhB;ADUgB,CAAA,SAAA,CApBR,iBAoBQ,KAAA,CAhBJ,2BAgBI,EAAA,CAzBZ;AA0BgB,iBAAA;ACRpB;ADcI,CA7CA,gBA6CA,EAAA,CAhCA;AAiCI,iBAAA;AACA,kBAAA;ACZR;",
6
6
  "names": []
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { Router, TocData } from '../../models';
3
- import { TocItem as Item } from '../TocItem';
4
3
  import { TocItemRegistry } from './TocItemRegistry';
5
4
  import './Toc.scss';
6
5
  export interface TocProps extends TocData {
@@ -21,7 +20,7 @@ interface TocState {
21
20
  declare class Toc extends React.Component<TocProps, TocState> {
22
21
  contentRef: React.RefObject<HTMLDivElement>;
23
22
  rootRef: React.RefObject<HTMLDivElement>;
24
- activeRef: React.RefObject<Item>;
23
+ activeRef: React.RefObject<HTMLButtonElement>;
25
24
  containerEl: HTMLElement | null;
26
25
  footerEl: HTMLElement | null;
27
26
  tocTopId: string;
@@ -50,6 +49,7 @@ declare class Toc extends React.Component<TocProps, TocState> {
50
49
  private setTocHeight;
51
50
  private handleScroll;
52
51
  private handleResize;
52
+ private scrollToItem;
53
53
  private scrollToActiveItem;
54
54
  private handleContentScroll;
55
55
  private openItem;
@@ -131,11 +131,30 @@ var Toc = class extends import_react.default.Component {
131
131
  __publicField(this, "handleResize", () => {
132
132
  this.setTocHeight();
133
133
  });
134
+ __publicField(this, "scrollToItem", () => {
135
+ var _a;
136
+ if (!this.activeRef.current) {
137
+ return;
138
+ }
139
+ const itemElement = this.activeRef.current;
140
+ const itemHeight = (_a = itemElement.offsetHeight) != null ? _a : 0;
141
+ const itemOffset = itemElement.offsetTop;
142
+ const scrollableParent = itemElement.offsetParent;
143
+ if (!scrollableParent) {
144
+ return;
145
+ }
146
+ const scrollableHeight = scrollableParent.offsetHeight;
147
+ const scrollableOffset = scrollableParent.scrollTop;
148
+ const itemVisible = itemOffset >= scrollableOffset && itemOffset <= scrollableOffset + scrollableHeight - itemHeight;
149
+ if (!itemVisible) {
150
+ scrollableParent.scrollTop = itemOffset - Math.floor(scrollableHeight / 2) + itemHeight;
151
+ }
152
+ });
134
153
  __publicField(this, "scrollToActiveItem", () => {
135
154
  if (!this.activeRef.current) {
136
155
  return;
137
156
  }
138
- this.activeRef.current.scrollToItem();
157
+ this.scrollToItem();
139
158
  });
140
159
  __publicField(this, "handleContentScroll", () => {
141
160
  const contentNode = this.contentRef.current;
@@ -214,7 +233,7 @@ var Toc = class extends import_react.default.Component {
214
233
  render() {
215
234
  const { items, hideTocHeader } = this.props;
216
235
  const content = items ? this.renderList(items) : this.renderEmpty("");
217
- return /* @__PURE__ */ import_react.default.createElement("div", { className: b(), ref: this.rootRef }, this.renderTop(), /* @__PURE__ */ import_react.default.createElement("div", { className: b("content", { offset_top: hideTocHeader }), ref: this.contentRef }, content), this.renderBottom());
236
+ return /* @__PURE__ */ import_react.default.createElement("nav", { className: b(), ref: this.rootRef }, this.renderTop(), /* @__PURE__ */ import_react.default.createElement("div", { className: b("content", { offset_top: hideTocHeader }), ref: this.contentRef }, content), this.renderBottom());
218
237
  }
219
238
  computeState(prevState) {
220
239
  const { router } = this.props;