@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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Toc/Toc.tsx"],
4
- "sourcesContent": ["import React from 'react';\n\nimport {getUniqId} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport omit from 'lodash/omit';\n\nimport {PopperPosition} from '../../hooks';\nimport {ControlSizes, Router, TocData, TocItem} from '../../models';\nimport {isActiveItem, normalizeHash, normalizePath} from '../../utils';\nimport {Controls, ControlsLayout} from '../Controls';\nimport {HTML} from '../HTML';\nimport {TocItem as Item} from '../TocItem';\nimport TocLabel from '../TocLable/TocLabel';\n\nimport {TocItemRegistry} from './TocItemRegistry';\n\nimport './Toc.scss';\n\nconst b = block('dc-toc');\nconst HEADER_DEFAULT_HEIGHT = 0;\n\nfunction zip<T>(array: string[], fill: T): Record<string, T> {\n return array.reduce((acc, item) => Object.assign(acc, {[item]: fill}), {});\n}\n\nexport interface TocProps extends TocData {\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideTocHeader?: boolean;\n singlePage?: boolean;\n onChangeSinglePage?: (value: boolean) => void;\n pdfLink?: string;\n}\n\ninterface TocState {\n activeId: string | null | undefined;\n fixedById: Record<string, 'opened' | 'closed'>;\n contentScrolled: boolean;\n registry: TocItemRegistry;\n}\n\nclass Toc extends React.Component<TocProps, TocState> {\n contentRef = React.createRef<HTMLDivElement>();\n rootRef = React.createRef<HTMLDivElement>();\n activeRef = React.createRef<Item>();\n\n containerEl: HTMLElement | null = null;\n footerEl: HTMLElement | null = null;\n tocTopId: string;\n\n constructor(props: TocProps) {\n super(props);\n\n this.state = this.computeState(this.getInitialState());\n this.tocTopId = getUniqId();\n }\n\n getInitialState() {\n return {\n registry: new TocItemRegistry(this.props.items, this.normalizeUrl),\n fixedById: {},\n activeId: null,\n contentScrolled: false,\n };\n }\n\n componentDidMount() {\n this.containerEl = document.querySelector('.Layout__content');\n this.footerEl = document.querySelector('.Footer');\n this.setTocHeight();\n\n window.addEventListener('scroll', this.handleScroll);\n window.addEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.addEventListener('scroll', this.handleContentScroll);\n }\n\n this.scrollToActiveItem();\n }\n\n componentDidUpdate(prevProps: TocProps, prevState: TocState) {\n const {router, singlePage, items} = this.props;\n\n let nextState;\n\n if (prevProps.items !== items) {\n nextState = this.getInitialState();\n }\n\n if (\n prevProps.router.pathname !== router.pathname ||\n prevProps.router.hash !== router.hash ||\n prevProps.singlePage !== singlePage\n ) {\n this.setTocHeight();\n\n nextState = this.computeState(nextState || prevState);\n } else if (prevState.activeId !== this.state.activeId) {\n this.scrollToActiveItem();\n }\n\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.removeEventListener('scroll', this.handleContentScroll);\n }\n }\n\n render() {\n const {items, hideTocHeader} = this.props;\n const content = items ? this.renderList(items) : this.renderEmpty('');\n\n return (\n <div className={b()} ref={this.rootRef}>\n {this.renderTop()}\n <div className={b('content', {offset_top: hideTocHeader})} ref={this.contentRef}>\n {content}\n </div>\n {this.renderBottom()}\n </div>\n );\n }\n\n computeState(prevState: TocState) {\n const {router} = this.props;\n const {pathname, hash} = router;\n\n const activeUrl = this.normalizeUrl(pathname, hash);\n const activeId = activeUrl && prevState.registry.getIdByUrl(activeUrl as string);\n\n let fixedById = prevState.fixedById;\n\n if (activeId && prevState.activeId && activeId !== prevState.activeId) {\n const expandedIds = [activeId].concat(prevState.registry.getParentIds(activeId));\n const dropClosedSign = expandedIds.filter((id) => prevState.fixedById[id] === 'closed');\n\n if (dropClosedSign.length) {\n fixedById = omit(fixedById, dropClosedSign);\n }\n }\n\n return {...prevState, activeId, fixedById};\n }\n\n private normalizeUrl = (path: string, hash: string | undefined) => {\n const {singlePage} = this.props;\n\n return singlePage ? normalizeHash(hash) : normalizePath(path);\n };\n\n private renderList = (items: TocItem[]) => {\n const {toggleItem} = this;\n const {singlePage} = this.props;\n const {activeId, fixedById} = this.state;\n\n const activeItem = activeId && this.state.registry.getItemById(activeId);\n const activeScope: Record<string, boolean> = activeItem\n ? zip([activeId].concat(this.state.registry.getParentIds(activeId)), true)\n : {};\n\n return (\n <ul className={b('list')} aria-labelledby={this.tocTopId}>\n {items.map((item, index) => {\n const main = !this.state.registry.getParentId(item.id);\n const active =\n (singlePage && !activeId && index === 0 && main) || item.id === activeId;\n const opened = fixedById[item.id] === 'opened';\n const closed = fixedById[item.id] === 'closed';\n const hasItems = Boolean(item.items && item.items.length > 0);\n const expandable = hasItems && !item.labeled;\n const expanded =\n (expandable &&\n !closed &&\n (item.expanded || activeScope[item.id] || opened)) ||\n (hasItems && Boolean(item.labeled));\n\n const ref = active ? {ref: this.activeRef} : {};\n\n return (\n <li\n key={item.id}\n id={item.id}\n className={b('list-item', {\n main,\n active,\n opened: expanded,\n labeled: item.labeled,\n })}\n >\n <Item\n {...{\n ...item,\n ...ref,\n active,\n expanded,\n expandable,\n toggleItem,\n }}\n />\n {expanded && this.renderList(item.items as TocItem[])}\n </li>\n );\n })}\n </ul>\n );\n };\n\n private renderEmpty(text: string) {\n return <div className={b('empty')}>{text}</div>;\n }\n\n private renderTop() {\n const {router, title, href, tocTitleIcon, hideTocHeader, singlePage, label} = this.props;\n const {contentScrolled} = this.state;\n let topHeader;\n\n if (hideTocHeader) {\n return null;\n }\n\n if (href) {\n const active = isActiveItem(router, href, singlePage);\n\n topHeader = (\n <a\n href={href}\n className={b('top-header', {active, link: true})}\n data-router-shallow\n >\n <HTML>{title}</HTML>\n </a>\n );\n } else {\n topHeader = (\n <div className={b('top-header')}>\n <HTML>{title}</HTML>\n </div>\n );\n }\n\n return (\n <div className={b('top', {scrolled: contentScrolled})} id={this.tocTopId}>\n {tocTitleIcon ? (\n <div className={b('top-header-icon')} aria-hidden={'true'}>\n {tocTitleIcon}\n </div>\n ) : null}\n {topHeader}\n {label ? <TocLabel label={label} /> : null}\n </div>\n );\n }\n\n private renderBottom() {\n const {singlePage, onChangeSinglePage, pdfLink} = this.props;\n const {contentScrolled} = this.state;\n\n return (\n <div className={b('bottom', {scrolled: contentScrolled})}>\n <ControlsLayout\n controlSize={ControlSizes.L}\n popupPosition={PopperPosition.TOP_START}\n >\n <Controls\n singlePage={singlePage}\n onChangeSinglePage={onChangeSinglePage}\n pdfLink={pdfLink}\n />\n </ControlsLayout>\n </div>\n );\n }\n\n private setTocHeight() {\n const {headerHeight = HEADER_DEFAULT_HEIGHT} = this.props;\n const containerHeight = this.containerEl?.offsetHeight ?? 0;\n const footerHeight = this.footerEl?.offsetHeight ?? 0;\n const scrollDiff =\n window.scrollY + window.innerHeight + footerHeight - headerHeight - containerHeight;\n const rootNode = this.rootRef.current;\n\n if (!rootNode) {\n return;\n }\n\n if (scrollDiff > 0) {\n rootNode.style.height = window.innerHeight - headerHeight - scrollDiff + 'px';\n } else if (containerHeight < window.innerHeight) {\n rootNode.style.height = containerHeight - footerHeight + 'px';\n } else {\n rootNode.style.height = window.innerHeight - headerHeight + 'px';\n }\n }\n\n private handleScroll = () => {\n this.setTocHeight();\n };\n\n private handleResize = () => {\n this.setTocHeight();\n };\n\n private scrollToActiveItem = () => {\n if (!this.activeRef.current) {\n return;\n }\n\n this.activeRef.current.scrollToItem();\n };\n\n private handleContentScroll = () => {\n const contentNode = this.contentRef.current;\n const contentScrolled = contentNode ? contentNode.scrollTop > 0 : false;\n if (contentScrolled !== this.state.contentScrolled) {\n this.setState({contentScrolled});\n }\n };\n\n private openItem = (id: string) => {\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...prevState.fixedById,\n [id]: 'opened',\n },\n }));\n };\n\n private closeItem = (id: string) => {\n const ids = this.state.registry.getChildIds(id);\n\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...omit(prevState.fixedById, ids),\n [id]: 'closed',\n },\n }));\n };\n\n private toggleItem = (id: string, opened: boolean) => {\n if (opened) {\n this.closeItem(id);\n } else {\n this.openItem(id);\n }\n };\n}\n\nexport default Toc;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React from 'react';\nimport {getUniqId} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport omit from 'lodash/omit';\n\nimport {PopperPosition} from '../../hooks';\nimport {ControlSizes, Router, TocData, TocItem} from '../../models';\nimport {isActiveItem, normalizeHash, normalizePath} from '../../utils';\nimport {Controls, ControlsLayout} from '../Controls';\nimport {HTML} from '../HTML';\nimport {TocItem as Item} from '../TocItem';\nimport TocLabel from '../TocLable/TocLabel';\n\nimport {TocItemRegistry} from './TocItemRegistry';\nimport './Toc.scss';\n\nconst b = block('dc-toc');\nconst HEADER_DEFAULT_HEIGHT = 0;\n\nfunction zip<T>(array: string[], fill: T): Record<string, T> {\n return array.reduce((acc, item) => Object.assign(acc, {[item]: fill}), {});\n}\n\nexport interface TocProps extends TocData {\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideTocHeader?: boolean;\n singlePage?: boolean;\n onChangeSinglePage?: (value: boolean) => void;\n pdfLink?: string;\n}\n\ninterface TocState {\n activeId: string | null | undefined;\n fixedById: Record<string, 'opened' | 'closed'>;\n contentScrolled: boolean;\n registry: TocItemRegistry;\n}\n\nclass Toc extends React.Component<TocProps, TocState> {\n contentRef = React.createRef<HTMLDivElement>();\n rootRef = React.createRef<HTMLDivElement>();\n activeRef = React.createRef<HTMLButtonElement>();\n\n containerEl: HTMLElement | null = null;\n footerEl: HTMLElement | null = null;\n tocTopId: string;\n\n constructor(props: TocProps) {\n super(props);\n\n this.state = this.computeState(this.getInitialState());\n this.tocTopId = getUniqId();\n }\n\n getInitialState() {\n return {\n registry: new TocItemRegistry(this.props.items, this.normalizeUrl),\n fixedById: {},\n activeId: null,\n contentScrolled: false,\n };\n }\n\n componentDidMount() {\n this.containerEl = document.querySelector('.Layout__content');\n this.footerEl = document.querySelector('.Footer');\n this.setTocHeight();\n\n window.addEventListener('scroll', this.handleScroll);\n window.addEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.addEventListener('scroll', this.handleContentScroll);\n }\n\n this.scrollToActiveItem();\n }\n\n componentDidUpdate(prevProps: TocProps, prevState: TocState) {\n const {router, singlePage, items} = this.props;\n\n let nextState;\n\n if (prevProps.items !== items) {\n nextState = this.getInitialState();\n }\n\n if (\n prevProps.router.pathname !== router.pathname ||\n prevProps.router.hash !== router.hash ||\n prevProps.singlePage !== singlePage\n ) {\n this.setTocHeight();\n\n nextState = this.computeState(nextState || prevState);\n } else if (prevState.activeId !== this.state.activeId) {\n this.scrollToActiveItem();\n }\n\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.removeEventListener('scroll', this.handleContentScroll);\n }\n }\n\n render() {\n const {items, hideTocHeader} = this.props;\n const content = items ? this.renderList(items) : this.renderEmpty('');\n\n return (\n <nav className={b()} ref={this.rootRef}>\n {this.renderTop()}\n <div className={b('content', {offset_top: hideTocHeader})} ref={this.contentRef}>\n {content}\n </div>\n {this.renderBottom()}\n </nav>\n );\n }\n\n computeState(prevState: TocState) {\n const {router} = this.props;\n const {pathname, hash} = router;\n\n const activeUrl = this.normalizeUrl(pathname, hash);\n const activeId = activeUrl && prevState.registry.getIdByUrl(activeUrl as string);\n\n let fixedById = prevState.fixedById;\n\n if (activeId && prevState.activeId && activeId !== prevState.activeId) {\n const expandedIds = [activeId].concat(prevState.registry.getParentIds(activeId));\n const dropClosedSign = expandedIds.filter((id) => prevState.fixedById[id] === 'closed');\n\n if (dropClosedSign.length) {\n fixedById = omit(fixedById, dropClosedSign);\n }\n }\n\n return {...prevState, activeId, fixedById};\n }\n\n private normalizeUrl = (path: string, hash: string | undefined) => {\n const {singlePage} = this.props;\n\n return singlePage ? normalizeHash(hash) : normalizePath(path);\n };\n\n private renderList = (items: TocItem[]) => {\n const {toggleItem} = this;\n const {singlePage} = this.props;\n const {activeId, fixedById} = this.state;\n\n const activeItem = activeId && this.state.registry.getItemById(activeId);\n const activeScope: Record<string, boolean> = activeItem\n ? zip([activeId].concat(this.state.registry.getParentIds(activeId)), true)\n : {};\n\n return (\n <ul className={b('list')} aria-labelledby={this.tocTopId}>\n {items.map((item, index) => {\n const main = !this.state.registry.getParentId(item.id);\n const active =\n (singlePage && !activeId && index === 0 && main) || item.id === activeId;\n const opened = fixedById[item.id] === 'opened';\n const closed = fixedById[item.id] === 'closed';\n const hasItems = Boolean(item.items && item.items.length > 0);\n const expandable = hasItems && !item.labeled;\n const expanded =\n (expandable &&\n !closed &&\n (item.expanded || activeScope[item.id] || opened)) ||\n (hasItems && Boolean(item.labeled));\n\n const ref = active ? {ref: this.activeRef} : {};\n\n return (\n <li\n key={item.id}\n id={item.id}\n className={b('list-item', {\n main,\n active,\n opened: expanded,\n labeled: item.labeled,\n })}\n >\n <Item\n {...{\n ...item,\n ...ref,\n active,\n expanded,\n expandable,\n toggleItem,\n }}\n />\n {expanded && this.renderList(item.items as TocItem[])}\n </li>\n );\n })}\n </ul>\n );\n };\n\n private renderEmpty(text: string) {\n return <div className={b('empty')}>{text}</div>;\n }\n\n private renderTop() {\n const {router, title, href, tocTitleIcon, hideTocHeader, singlePage, label} = this.props;\n const {contentScrolled} = this.state;\n let topHeader;\n\n if (hideTocHeader) {\n return null;\n }\n\n if (href) {\n const active = isActiveItem(router, href, singlePage);\n\n topHeader = (\n <a\n href={href}\n className={b('top-header', {active, link: true})}\n data-router-shallow\n >\n <HTML>{title}</HTML>\n </a>\n );\n } else {\n topHeader = (\n <div className={b('top-header')}>\n <HTML>{title}</HTML>\n </div>\n );\n }\n\n return (\n <div className={b('top', {scrolled: contentScrolled})} id={this.tocTopId}>\n {tocTitleIcon ? (\n <div className={b('top-header-icon')} aria-hidden={'true'}>\n {tocTitleIcon}\n </div>\n ) : null}\n {topHeader}\n {label ? <TocLabel label={label} /> : null}\n </div>\n );\n }\n\n private renderBottom() {\n const {singlePage, onChangeSinglePage, pdfLink} = this.props;\n const {contentScrolled} = this.state;\n\n return (\n <div className={b('bottom', {scrolled: contentScrolled})}>\n <ControlsLayout\n controlSize={ControlSizes.L}\n popupPosition={PopperPosition.TOP_START}\n >\n <Controls\n singlePage={singlePage}\n onChangeSinglePage={onChangeSinglePage}\n pdfLink={pdfLink}\n />\n </ControlsLayout>\n </div>\n );\n }\n\n private setTocHeight() {\n const {headerHeight = HEADER_DEFAULT_HEIGHT} = this.props;\n const containerHeight = this.containerEl?.offsetHeight ?? 0;\n const footerHeight = this.footerEl?.offsetHeight ?? 0;\n const scrollDiff =\n window.scrollY + window.innerHeight + footerHeight - headerHeight - containerHeight;\n const rootNode = this.rootRef.current;\n\n if (!rootNode) {\n return;\n }\n\n if (scrollDiff > 0) {\n rootNode.style.height = window.innerHeight - headerHeight - scrollDiff + 'px';\n } else if (containerHeight < window.innerHeight) {\n rootNode.style.height = containerHeight - footerHeight + 'px';\n } else {\n rootNode.style.height = window.innerHeight - headerHeight + 'px';\n }\n }\n\n private handleScroll = () => {\n this.setTocHeight();\n };\n\n private handleResize = () => {\n this.setTocHeight();\n };\n\n private scrollToItem = () => {\n if (!this.activeRef.current) {\n return;\n }\n\n const itemElement = this.activeRef.current;\n const itemHeight = itemElement.offsetHeight ?? 0;\n const itemOffset = itemElement.offsetTop;\n const scrollableParent = itemElement.offsetParent as HTMLDivElement | null;\n\n if (!scrollableParent) {\n return;\n }\n\n const scrollableHeight = scrollableParent.offsetHeight;\n const scrollableOffset = scrollableParent.scrollTop;\n\n const itemVisible =\n itemOffset >= scrollableOffset &&\n itemOffset <= scrollableOffset + scrollableHeight - itemHeight;\n\n if (!itemVisible) {\n scrollableParent.scrollTop = itemOffset - Math.floor(scrollableHeight / 2) + itemHeight;\n }\n };\n\n private scrollToActiveItem = () => {\n if (!this.activeRef.current) {\n return;\n }\n\n this.scrollToItem();\n };\n\n private handleContentScroll = () => {\n const contentNode = this.contentRef.current;\n const contentScrolled = contentNode ? contentNode.scrollTop > 0 : false;\n if (contentScrolled !== this.state.contentScrolled) {\n this.setState({contentScrolled});\n }\n };\n\n private openItem = (id: string) => {\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...prevState.fixedById,\n [id]: 'opened',\n },\n }));\n };\n\n private closeItem = (id: string) => {\n const ids = this.state.registry.getChildIds(id);\n\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...omit(prevState.fixedById, ids),\n [id]: 'closed',\n },\n }));\n };\n\n private toggleItem = (id: string, opened: boolean) => {\n if (opened) {\n this.closeItem(id);\n } else {\n this.openItem(id);\n }\n };\n}\n\nexport default Toc;\n"],
5
+ "mappings": "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",
6
6
  "names": ["block", "React", "Item", "omit", "TocLabel"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/TocItem/home/runner/work/components/components/src/components/TocItem/TocItem.scss", "../../../../src/components/TocItem/%3Cinput%20css%20wam960%3E", "../../../../src/components/TocItem/home/runner/work/components/components/src/styles/mixins.scss"],
3
+ "sources": ["../../../../src/components/TocItem/home/runner/work/components/components/src/components/TocItem/TocItem.scss", "../../../../src/components/TocItem/%3Cinput%20css%200soUuH%3E", "../../../../src/components/TocItem/home/runner/work/components/components/src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@import '../../styles/variables';\n@import '../../styles/mixins';\n\n.dc-toc-item {\n cursor: pointer;\n user-select: none;\n\n &__link {\n --g-focus-border-radius: 4px;\n\n display: block;\n text-decoration: none;\n border-radius: var(--g-focus-border-radius);\n\n @include focusable(-2px); // -2px, as outline on focues goes out of toc's borders\n }\n\n &__text {\n --g-focus-border-radius: 4px;\n\n display: block;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n\n position: relative;\n padding: 7px 12px 7px 20px;\n box-sizing: border-box;\n word-break: break-word;\n background-color: transparent;\n border: 0;\n text-align: initial;\n width: 100%;\n border-radius: var(--g-focus-border-radius);\n\n color: var(--g-color-text-primary);\n\n [dir='rtl'] & {\n padding: 7px 20px 7px 12px;\n }\n\n &_active {\n border-radius: 3px;\n background: var(--g-color-base-selection);\n }\n\n &_labeled {\n @include text-size(body-1);\n font-weight: 500;\n text-transform: uppercase;\n }\n\n &_clicable {\n cursor: pointer;\n\n &:hover {\n border-radius: 3px;\n background: var(--g-color-base-simple-hover);\n }\n }\n\n &::before {\n content: '';\n position: absolute;\n top: 0;\n right: 0;\n // hack: to be shure that it will always start from the left of the TOC\n left: -100vw;\n height: 100%;\n }\n\n @include focusable(-2px); // -2px, as outline on focues goes out of toc's borders\n }\n\n &__icon {\n position: absolute;\n left: 0;\n\n [dir='rtl'] & {\n right: 0;\n }\n }\n}\n", ".dc-toc-item {\n cursor: pointer;\n user-select: none;\n}\n.dc-toc-item__link {\n --g-focus-border-radius: 4px;\n display: block;\n text-decoration: none;\n border-radius: var(--g-focus-border-radius);\n}\n.dc-toc-item__link:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: -2px;\n}\n.dc-toc-item__link:focus:not(:focus-visible) {\n outline: 0;\n}\n.dc-toc-item__text {\n --g-focus-border-radius: 4px;\n display: block;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n position: relative;\n padding: 7px 12px 7px 20px;\n box-sizing: border-box;\n word-break: break-word;\n background-color: transparent;\n border: 0;\n text-align: initial;\n width: 100%;\n border-radius: var(--g-focus-border-radius);\n color: var(--g-color-text-primary);\n}\n[dir=rtl] .dc-toc-item__text {\n padding: 7px 20px 7px 12px;\n}\n.dc-toc-item__text_active {\n border-radius: 3px;\n background: var(--g-color-base-selection);\n}\n.dc-toc-item__text_labeled {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: 500;\n text-transform: uppercase;\n}\n.dc-toc-item__text_clicable {\n cursor: pointer;\n}\n.dc-toc-item__text_clicable:hover {\n border-radius: 3px;\n background: var(--g-color-base-simple-hover);\n}\n.dc-toc-item__text::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n left: -100vw;\n height: 100%;\n}\n.dc-toc-item__text:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: -2px;\n}\n.dc-toc-item__text:focus:not(:focus-visible) {\n outline: 0;\n}\n.dc-toc-item__icon {\n position: absolute;\n left: 0;\n}\n[dir=rtl] .dc-toc-item__icon {\n right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RvY0l0ZW0iLCJzb3VyY2VzIjpbIlRvY0l0ZW0uc2NzcyIsIi4uLy4uL3N0eWxlcy9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUVBO0VBQ0E7RUFDQTs7QUNxQkE7RUFDSTtFQUNBLGdCRHJCZTs7QUN1Qm5CO0VBQ0k7O0FEckJSO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VDM0NKO0VBQ0E7RUQ0Q1E7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTs7QUNuQ0o7RUFDSTtFQUNBLGdCRG9DZTs7QUNsQ25CO0VBQ0k7O0FEb0NSO0VBQ0k7RUFDQTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLmRjLXRvYy1pdGVtIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgLS1nLWZvY3VzLWJvcmRlci1yYWRpdXM6IDRweDtcblxuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgtMnB4KTsgLy8gLTJweCwgYXMgb3V0bGluZSBvbiBmb2N1ZXMgZ29lcyBvdXQgb2YgdG9jJ3MgYm9yZGVyc1xuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICAtLWctZm9jdXMtYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6IDdweCAxMnB4IDdweCAyMHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBpbml0aWFsO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXByaW1hcnkpO1xuXG4gICAgICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgICAgICAgcGFkZGluZzogN3B4IDIwcHggN3B4IDEycHg7XG4gICAgICAgIH1cblxuICAgICAgICAmX2FjdGl2ZSB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2VsZWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfbGFiZWxlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0xKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9jbGljYWJsZSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2ltcGxlLWhvdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgLy8gaGFjazogdG8gYmUgc2h1cmUgdGhhdCBpdCB3aWxsIGFsd2F5cyBzdGFydCBmcm9tIHRoZSBsZWZ0IG9mIHRoZSBUT0NcbiAgICAgICAgICAgIGxlZnQ6IC0xMDB2dztcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgtMnB4KTsgLy8gLTJweCwgYXMgb3V0bGluZSBvbiBmb2N1ZXMgZ29lcyBvdXQgb2YgdG9jJ3MgYm9yZGVyc1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4vdmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAjeyRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3skaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiJdfQ== */", "@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": ";AAGA,CAAA;AACI,UAAA;AACA,uBAAA;AAAA,oBAAA;AAAA,eAAA;ACFJ;ADII,CAAA;AACI,2BAAA;AAEA,WAAA;AACA,2BAAA;AAAA,mBAAA;AACA,iBAAA;AAAA,iBAAA,IAAA;ACHR;ACwBQ,CF1BJ,iBE0BI;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ADtBZ;ACwBQ,CF9BJ,iBE8BI,MAAA,KAAA;AACI,WAAA;ADtBZ;ADCI,CAAA;AACI,2BAAA;AAEA,WAAA;AACA,eAAA;AACA,aAAA;AACA,eAAA;AAEA,YAAA;AACA,WAAA,IAAA,KAAA,IAAA;AACA,cAAA;AACA,cAAA;AACA,oBAAA;AACA,UAAA;AACA,cAAA;AAAA,cAAA;AACA,SAAA;AACA,iBAAA;AAAA,iBAAA,IAAA;AAEA,SAAA,IAAA;ACFR;ADIQ,CAAA,SAAA,CApBJ;AAqBQ,WAAA,IAAA,KAAA,IAAA;ACFZ;ADKQ,CAAA;AACI,iBAAA;AACA,cAAA,IAAA;ACHZ;ADMQ,CAAA;AE3CJ,aAAA,IAAA;AACA,eAAA,IAAA;AF4CQ,eAAA;AACA,kBAAA;ACHZ;ADMQ,CAAA;AACI,UAAA;ACJZ;ADMY,CAHJ,0BAGI;AACI,iBAAA;AACA,cAAA,IAAA;ACJhB;ADQQ,CA5CJ,iBA4CI;AACI,WAAA;AACA,YAAA;AACA,OAAA;AACA,SAAA;AAEA,QAAA;AACA,UAAA;ACPZ;AC5BQ,CFhBJ,iBEgBI;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;AD8BZ;AC5BQ,CFpBJ,iBEoBI,MAAA,KAAA;AACI,WAAA;AD8BZ;ADMI,CAAA;AACI,YAAA;AACA,QAAA;ACJR;ADMQ,CAAA,SAAA,CAJJ;AAKQ,SAAA;ACJZ;",
6
6
  "names": []
@@ -11,10 +11,5 @@ export interface TocItemProps extends ITocItem {
11
11
  expanded: boolean;
12
12
  toggleItem: (id: string, opened: boolean) => void;
13
13
  }
14
- declare class TocItem extends React.Component<TocItemProps> {
15
- contentRef: React.RefObject<HTMLButtonElement>;
16
- render(): React.JSX.Element;
17
- scrollToItem: () => void;
18
- private handleClick;
19
- }
14
+ export declare const TocItem: React.FC<TocItemProps>;
20
15
  export default TocItem;
@@ -43,65 +43,44 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
43
43
  mod
44
44
  ));
45
45
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
- var __publicField = (obj, key, value) => {
47
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
48
- return value;
49
- };
50
46
 
51
47
  // src/components/TocItem/TocItem.tsx
52
48
  var TocItem_exports = {};
53
49
  __export(TocItem_exports, {
50
+ TocItem: () => TocItem,
54
51
  default: () => TocItem_default
55
52
  });
56
53
  module.exports = __toCommonJS(TocItem_exports);
57
54
  var import_react = __toESM(require("react"));
58
55
  var import_bem_cn_lite = __toESM(require("bem-cn-lite"));
56
+ var import_hooks = require("../../hooks");
59
57
  var import_utils = require("../../utils");
60
58
  var import_ToggleArrow = require("../ToggleArrow");
61
59
  var import_TocItem = require("./TocItem.css");
62
60
  var b = (0, import_bem_cn_lite.default)("dc-toc-item");
63
- var TocItem = class extends import_react.default.Component {
64
- constructor() {
65
- super(...arguments);
66
- __publicField(this, "contentRef", import_react.default.createRef());
67
- __publicField(this, "scrollToItem", () => {
68
- var _a;
69
- if (!this.contentRef.current) {
70
- return;
71
- }
72
- const itemElement = this.contentRef.current;
73
- const itemHeight = (_a = itemElement.offsetHeight) != null ? _a : 0;
74
- const itemOffset = itemElement.offsetTop;
75
- const scrollableParent = itemElement.offsetParent;
76
- if (!scrollableParent) {
77
- return;
78
- }
79
- const scrollableHeight = scrollableParent.offsetHeight;
80
- const scrollableOffset = scrollableParent.scrollTop;
81
- const itemVisible = itemOffset >= scrollableOffset && itemOffset <= scrollableOffset + scrollableHeight - itemHeight;
82
- if (!itemVisible) {
83
- scrollableParent.scrollTop = itemOffset - Math.floor(scrollableHeight / 2) + itemHeight;
84
- }
85
- });
86
- __publicField(this, "handleClick", () => {
87
- const { id, href, active, expanded, toggleItem } = this.props;
61
+ var TocItem = import_react.default.forwardRef(
62
+ ({ id, name, href, active, expandable, expanded, toggleItem, labeled }, ref) => {
63
+ const handleClick = () => {
88
64
  if (!active && href) {
89
65
  return;
90
66
  }
91
67
  toggleItem(id, expanded);
92
- });
93
- }
94
- render() {
95
- const { name, href, active, expandable, expanded, labeled } = this.props;
68
+ };
69
+ const { t } = (0, import_hooks.useTranslation)("toc-nav-panel");
96
70
  const text = /* @__PURE__ */ import_react.default.createElement("span", null, name);
97
71
  const icon = expandable ? /* @__PURE__ */ import_react.default.createElement(import_ToggleArrow.ToggleArrow, { className: b("icon"), open: expanded, thin: true }) : null;
98
72
  const content = import_react.default.createElement(
99
73
  href ? "div" : "button",
100
74
  {
101
- ref: href ? null : this.contentRef,
102
- className: b("text", { clicable: Boolean(expandable || href), active, labeled }),
103
- onClick: expandable && !href ? this.handleClick : void 0,
75
+ ref: href ? null : ref,
76
+ className: b("text", {
77
+ clicable: Boolean(expandable || href),
78
+ active,
79
+ labeled
80
+ }),
81
+ onClick: expandable && !href ? handleClick : void 0,
104
82
  "aria-expanded": expandable ? expanded : void 0,
83
+ "aria-label": expandable ? t("drop-down-list") + " " + name : void 0,
105
84
  tabIndex: expandable ? 0 : -1
106
85
  },
107
86
  icon,
@@ -120,12 +99,14 @@ var TocItem = class extends import_react.default.Component {
120
99
  "a",
121
100
  __spreadProps(__spreadValues({}, linkAttributes), {
122
101
  className: b("link"),
123
- onClick: expandable && href ? this.handleClick : void 0,
124
- "data-router-shallow": true
102
+ onClick: expandable && href ? handleClick : void 0,
103
+ "data-router-shallow": true,
104
+ "aria-current": active ? "true" : void 0
125
105
  }),
126
106
  content
127
107
  );
128
108
  }
129
- };
109
+ );
110
+ TocItem.displayName = "TocItem";
130
111
  var TocItem_default = TocItem;
131
112
  //# sourceMappingURL=TocItem.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/TocItem/TocItem.tsx"],
4
- "sourcesContent": ["import React from 'react';\n\nimport block from 'bem-cn-lite';\n\nimport {TocItem as ITocItem} from '../../models';\nimport {isExternalHref} from '../../utils';\nimport {ToggleArrow} from '../ToggleArrow';\n\nimport './TocItem.scss';\n\nconst b = block('dc-toc-item');\n\nexport interface TocItemProps extends ITocItem {\n id: string;\n name: string;\n href?: string;\n items?: ITocItem[];\n active: boolean;\n expandable: boolean;\n expanded: boolean;\n toggleItem: (id: string, opened: boolean) => void;\n}\n\nclass TocItem extends React.Component<TocItemProps> {\n contentRef = React.createRef<HTMLButtonElement>();\n\n render() {\n const {name, href, active, expandable, expanded, labeled} = this.props;\n const text = <span>{name}</span>;\n const icon = expandable ? (\n <ToggleArrow className={b('icon')} open={expanded} thin={true} />\n ) : null;\n\n const content = React.createElement(\n href ? 'div' : 'button',\n {\n ref: href ? null : this.contentRef,\n className: b('text', {clicable: Boolean(expandable || href), active, labeled}),\n onClick: expandable && !href ? this.handleClick : undefined,\n 'aria-expanded': expandable ? expanded : undefined,\n tabIndex: expandable ? 0 : -1,\n },\n icon,\n text,\n );\n\n if (!href) {\n return content;\n }\n\n const isExternal = isExternalHref(href);\n const linkAttributes = {\n href,\n target: isExternal ? '_blank' : '_self',\n rel: isExternal ? 'noopener noreferrer' : undefined,\n };\n\n return (\n <a\n {...linkAttributes}\n className={b('link')}\n onClick={expandable && href ? this.handleClick : undefined}\n data-router-shallow\n >\n {content}\n </a>\n );\n }\n\n scrollToItem = () => {\n if (!this.contentRef.current) {\n return;\n }\n\n const itemElement = this.contentRef.current;\n const itemHeight = itemElement.offsetHeight ?? 0;\n const itemOffset = itemElement.offsetTop;\n const scrollableParent = itemElement.offsetParent as HTMLDivElement | null;\n\n if (!scrollableParent) {\n return;\n }\n\n const scrollableHeight = scrollableParent.offsetHeight;\n const scrollableOffset = scrollableParent.scrollTop;\n\n const itemVisible =\n itemOffset >= scrollableOffset &&\n itemOffset <= scrollableOffset + scrollableHeight - itemHeight;\n\n if (!itemVisible) {\n scrollableParent.scrollTop = itemOffset - Math.floor(scrollableHeight / 2) + itemHeight;\n }\n };\n\n private handleClick = () => {\n const {id, href, active, expanded, toggleItem} = this.props;\n\n if (!active && href) {\n return;\n }\n\n toggleItem(id, expanded);\n };\n}\n\nexport default TocItem;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,yBAAkB;AAGlB,mBAA6B;AAC7B,yBAA0B;AAE1B,qBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAa7B,IAAM,UAAN,cAAsB,aAAAC,QAAM,UAAwB;AAAA,EAApD;AAAA;AACI,sCAAa,aAAAA,QAAM,UAA6B;AA6ChD,wCAAe,MAAM;AArEzB;AAsEQ,UAAI,CAAC,KAAK,WAAW,SAAS;AAC1B;AAAA,MACJ;AAEA,YAAM,cAAc,KAAK,WAAW;AACpC,YAAM,cAAa,iBAAY,iBAAZ,YAA4B;AAC/C,YAAM,aAAa,YAAY;AAC/B,YAAM,mBAAmB,YAAY;AAErC,UAAI,CAAC,kBAAkB;AACnB;AAAA,MACJ;AAEA,YAAM,mBAAmB,iBAAiB;AAC1C,YAAM,mBAAmB,iBAAiB;AAE1C,YAAM,cACF,cAAc,oBACd,cAAc,mBAAmB,mBAAmB;AAExD,UAAI,CAAC,aAAa;AACd,yBAAiB,YAAY,aAAa,KAAK,MAAM,mBAAmB,CAAC,IAAI;AAAA,MACjF;AAAA,IACJ;AAEA,wBAAQ,eAAc,MAAM;AACxB,YAAM,EAAC,IAAI,MAAM,QAAQ,UAAU,WAAU,IAAI,KAAK;AAEtD,UAAI,CAAC,UAAU,MAAM;AACjB;AAAA,MACJ;AAEA,iBAAW,IAAI,QAAQ;AAAA,IAC3B;AAAA;AAAA,EA7EA,SAAS;AACL,UAAM,EAAC,MAAM,MAAM,QAAQ,YAAY,UAAU,QAAO,IAAI,KAAK;AACjE,UAAM,OAAO,6BAAAA,QAAA,cAAC,cAAM,IAAK;AACzB,UAAM,OAAO,aACT,6BAAAA,QAAA,cAAC,kCAAY,WAAW,EAAE,MAAM,GAAG,MAAM,UAAU,MAAM,MAAM,IAC/D;AAEJ,UAAM,UAAU,aAAAA,QAAM;AAAA,MAClB,OAAO,QAAQ;AAAA,MACf;AAAA,QACI,KAAK,OAAO,OAAO,KAAK;AAAA,QACxB,WAAW,EAAE,QAAQ,EAAC,UAAU,QAAQ,cAAc,IAAI,GAAG,QAAQ,QAAO,CAAC;AAAA,QAC7E,SAAS,cAAc,CAAC,OAAO,KAAK,cAAc;AAAA,QAClD,iBAAiB,aAAa,WAAW;AAAA,QACzC,UAAU,aAAa,IAAI;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAEA,QAAI,CAAC,MAAM;AACP,aAAO;AAAA,IACX;AAEA,UAAM,iBAAa,6BAAe,IAAI;AACtC,UAAM,iBAAiB;AAAA,MACnB;AAAA,MACA,QAAQ,aAAa,WAAW;AAAA,MAChC,KAAK,aAAa,wBAAwB;AAAA,IAC9C;AAEA,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA,uCACO,iBADP;AAAA,QAEG,WAAW,EAAE,MAAM;AAAA,QACnB,SAAS,cAAc,OAAO,KAAK,cAAc;AAAA,QACjD,uBAAmB;AAAA;AAAA,MAElB;AAAA,IACL;AAAA,EAER;AAqCJ;AAEA,IAAO,kBAAQ;",
4
+ "sourcesContent": ["import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../hooks';\nimport {TocItem as ITocItem} from '../../models';\nimport {isExternalHref} from '../../utils';\nimport {ToggleArrow} from '../ToggleArrow';\n\nimport './TocItem.scss';\n\nconst b = block('dc-toc-item');\n\nexport interface TocItemProps extends ITocItem {\n id: string;\n name: string;\n href?: string;\n items?: ITocItem[];\n active: boolean;\n expandable: boolean;\n expanded: boolean;\n toggleItem: (id: string, opened: boolean) => void;\n}\n\nexport const TocItem: React.FC<TocItemProps> = React.forwardRef(\n (\n {id, name, href, active, expandable, expanded, toggleItem, labeled},\n ref: React.ForwardedRef<HTMLButtonElement>,\n ) => {\n const handleClick = () => {\n if (!active && href) {\n return;\n }\n\n toggleItem(id, expanded);\n };\n\n const {t} = useTranslation('toc-nav-panel');\n\n const text = <span>{name}</span>;\n const icon = expandable ? (\n <ToggleArrow className={b('icon')} open={expanded} thin={true} />\n ) : null;\n\n const content = React.createElement(\n href ? 'div' : 'button',\n {\n ref: href ? null : ref,\n className: b('text', {\n clicable: Boolean(expandable || href),\n active,\n labeled,\n }),\n onClick: expandable && !href ? handleClick : undefined,\n 'aria-expanded': expandable ? expanded : undefined,\n 'aria-label': expandable ? t('drop-down-list') + ' ' + name : undefined,\n tabIndex: expandable ? 0 : -1,\n },\n icon,\n text,\n );\n\n if (!href) {\n return content;\n }\n\n const isExternal = isExternalHref(href);\n const linkAttributes = {\n href,\n target: isExternal ? '_blank' : '_self',\n rel: isExternal ? 'noopener noreferrer' : undefined,\n };\n\n return (\n <a\n {...linkAttributes}\n className={b('link')}\n onClick={expandable && href ? handleClick : undefined}\n data-router-shallow\n aria-current={active ? 'true' : undefined}\n >\n {content}\n </a>\n );\n },\n);\n\nTocItem.displayName = 'TocItem';\n\nexport default TocItem;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,yBAAkB;AAElB,mBAA6B;AAE7B,mBAA6B;AAC7B,yBAA0B;AAE1B,qBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAatB,IAAM,UAAkC,aAAAC,QAAM;AAAA,EACjD,CACI,EAAC,IAAI,MAAM,MAAM,QAAQ,YAAY,UAAU,YAAY,QAAO,GAClE,QACC;AACD,UAAM,cAAc,MAAM;AACtB,UAAI,CAAC,UAAU,MAAM;AACjB;AAAA,MACJ;AAEA,iBAAW,IAAI,QAAQ;AAAA,IAC3B;AAEA,UAAM,EAAC,EAAC,QAAI,6BAAe,eAAe;AAE1C,UAAM,OAAO,6BAAAA,QAAA,cAAC,cAAM,IAAK;AACzB,UAAM,OAAO,aACT,6BAAAA,QAAA,cAAC,kCAAY,WAAW,EAAE,MAAM,GAAG,MAAM,UAAU,MAAM,MAAM,IAC/D;AAEJ,UAAM,UAAU,aAAAA,QAAM;AAAA,MAClB,OAAO,QAAQ;AAAA,MACf;AAAA,QACI,KAAK,OAAO,OAAO;AAAA,QACnB,WAAW,EAAE,QAAQ;AAAA,UACjB,UAAU,QAAQ,cAAc,IAAI;AAAA,UACpC;AAAA,UACA;AAAA,QACJ,CAAC;AAAA,QACD,SAAS,cAAc,CAAC,OAAO,cAAc;AAAA,QAC7C,iBAAiB,aAAa,WAAW;AAAA,QACzC,cAAc,aAAa,EAAE,gBAAgB,IAAI,MAAM,OAAO;AAAA,QAC9D,UAAU,aAAa,IAAI;AAAA,MAC/B;AAAA,MACA;AAAA,MACA;AAAA,IACJ;AAEA,QAAI,CAAC,MAAM;AACP,aAAO;AAAA,IACX;AAEA,UAAM,iBAAa,6BAAe,IAAI;AACtC,UAAM,iBAAiB;AAAA,MACnB;AAAA,MACA,QAAQ,aAAa,WAAW;AAAA,MAChC,KAAK,aAAa,wBAAwB;AAAA,IAC9C;AAEA,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA,uCACO,iBADP;AAAA,QAEG,WAAW,EAAE,MAAM;AAAA,QACnB,SAAS,cAAc,OAAO,cAAc;AAAA,QAC5C,uBAAmB;AAAA,QACnB,gBAAc,SAAS,SAAS;AAAA;AAAA,MAE/B;AAAA,IACL;AAAA,EAER;AACJ;AAEA,QAAQ,cAAc;AAEtB,IAAO,kBAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/TocLable/home/runner/work/components/components/src/components/TocLable/TocLabel.scss", "../../../../src/components/TocLable/%3Cinput%20css%200TTDWH%3E"],
3
+ "sources": ["../../../../src/components/TocLable/home/runner/work/components/components/src/components/TocLable/TocLabel.scss", "../../../../src/components/TocLable/%3Cinput%20css%20bPLuBj%3E"],
4
4
  "sourcesContent": ["@import '../../styles/variables';\n@import '../../styles/mixins';\n\n.dc-toc-label {\n &_offset {\n margin-left: 10px;\n\n [dir='rtl'] & {\n margin-right: 10px;\n }\n }\n}\n", ".dc-toc-label_offset {\n margin-left: 10px;\n}\n[dir=rtl] .dc-toc-label_offset {\n margin-right: 10px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RvY0xhYmxlIiwic291cmNlcyI6WyJUb2NMYWJlbC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlJO0VBQ0k7O0FBRUE7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbi5kYy10b2MtbGFiZWwge1xuICAgICZfb2Zmc2V0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG5cbiAgICAgICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0= */"],
5
5
  "mappings": ";AAII,CAAA;AACI,eAAA;ACHR;ADKQ,CAAA,SAAA,CAHJ;AAIQ,gBAAA;ACHZ;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/TocLable/TocLabel.tsx"],
4
- "sourcesContent": ["import React, {FC} from 'react';\n\nimport {Label, Popover, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {TocLabel as TocLabelType} from '../../models';\n\nimport './TocLabel.scss';\n\nconst b = block('dc-toc-label');\n\ninterface TocLabelProps {\n label: TocLabelType;\n}\n\nconst TocLabel: FC<TocLabelProps> = ({label}) => {\n const direction = useDirection();\n\n let labelElement = null;\n if (label?.title) {\n const hasDescription = Boolean(label.description);\n labelElement = (\n <Label size={'xs'} theme={label.theme} className={b({offset: !hasDescription})}>\n {label.title}\n </Label>\n );\n if (hasDescription) {\n const placement = direction === 'rtl' ? 'left' : 'right';\n labelElement = (\n <Popover\n content={label.description}\n placement={placement}\n size={'s'}\n className={b({offset: true})}\n >\n {labelElement}\n </Popover>\n );\n }\n }\n return labelElement;\n};\n\nexport default TocLabel;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAwB;AAExB,mBAA2C;AAC3C,yBAAkB;AAIlB,sBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,cAAc;AAM9B,IAAM,WAA8B,CAAC,EAAC,MAAK,MAAM;AAC7C,QAAM,gBAAY,2BAAa;AAE/B,MAAI,eAAe;AACnB,MAAI,+BAAO,OAAO;AACd,UAAM,iBAAiB,QAAQ,MAAM,WAAW;AAChD,mBACI,6BAAAC,QAAA,cAAC,sBAAM,MAAM,MAAM,OAAO,MAAM,OAAO,WAAW,EAAE,EAAC,QAAQ,CAAC,eAAc,CAAC,KACxE,MAAM,KACX;AAEJ,QAAI,gBAAgB;AAChB,YAAM,YAAY,cAAc,QAAQ,SAAS;AACjD,qBACI,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACG,SAAS,MAAM;AAAA,UACf;AAAA,UACA,MAAM;AAAA,UACN,WAAW,EAAE,EAAC,QAAQ,KAAI,CAAC;AAAA;AAAA,QAE1B;AAAA,MACL;AAAA,IAER;AAAA,EACJ;AACA,SAAO;AACX;AAEA,IAAO,mBAAQ;",
4
+ "sourcesContent": ["import React, {FC} from 'react';\nimport {Label, Popover, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {TocLabel as TocLabelType} from '../../models';\n\nimport './TocLabel.scss';\n\nconst b = block('dc-toc-label');\n\ninterface TocLabelProps {\n label: TocLabelType;\n}\n\nconst TocLabel: FC<TocLabelProps> = ({label}) => {\n const direction = useDirection();\n\n let labelElement = null;\n if (label?.title) {\n const hasDescription = Boolean(label.description);\n labelElement = (\n <Label size={'xs'} theme={label.theme} className={b({offset: !hasDescription})}>\n {label.title}\n </Label>\n );\n if (hasDescription) {\n const placement = direction === 'rtl' ? 'left' : 'right';\n labelElement = (\n <Popover\n content={label.description}\n placement={placement}\n size={'s'}\n className={b({offset: true})}\n >\n {labelElement}\n </Popover>\n );\n }\n }\n return labelElement;\n};\n\nexport default TocLabel;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAwB;AACxB,mBAA2C;AAC3C,yBAAkB;AAIlB,sBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,cAAc;AAM9B,IAAM,WAA8B,CAAC,EAAC,MAAK,MAAM;AAC7C,QAAM,gBAAY,2BAAa;AAE/B,MAAI,eAAe;AACnB,MAAI,+BAAO,OAAO;AACd,UAAM,iBAAiB,QAAQ,MAAM,WAAW;AAChD,mBACI,6BAAAC,QAAA,cAAC,sBAAM,MAAM,MAAM,OAAO,MAAM,OAAO,WAAW,EAAE,EAAC,QAAQ,CAAC,eAAc,CAAC,KACxE,MAAM,KACX;AAEJ,QAAI,gBAAgB;AAChB,YAAM,YAAY,cAAc,QAAQ,SAAS;AACjD,qBACI,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACG,SAAS,MAAM;AAAA,UACf;AAAA,UACA,MAAM;AAAA,UACN,WAAW,EAAE,EAAC,QAAQ,KAAI,CAAC;AAAA;AAAA,QAE1B;AAAA,MACL;AAAA,IAER;AAAA,EACJ;AACA,SAAO;AACX;AAEA,IAAO,mBAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/TocNavPanel/home/runner/work/components/components/src/components/TocNavPanel/TocNavPanel.scss", "../../../../src/components/TocNavPanel/home/runner/work/components/components/src/styles/mixins.scss", "../../../../src/components/TocNavPanel/%3Cinput%20css%20CreV8X%3E"],
3
+ "sources": ["../../../../src/components/TocNavPanel/home/runner/work/components/components/src/components/TocNavPanel/TocNavPanel.scss", "../../../../src/components/TocNavPanel/home/runner/work/components/components/src/styles/mixins.scss", "../../../../src/components/TocNavPanel/%3Cinput%20css%20Lnfmwf%3E"],
4
4
  "sourcesContent": ["@import '../../styles/mixins';\n\n.dc-nav-toc-panel {\n display: flex;\n justify-content: center;\n width: 100%;\n background: var(--g-color-base-background);\n\n @include text-size(body-1);\n\n &_fixed {\n position: fixed;\n bottom: 0;\n z-index: 1000;\n left: 0;\n border-top: 1px solid var(--g-color-line-generic);\n }\n\n &_fixed &__control-hint {\n display: none;\n }\n\n &_fixed &__content {\n padding: 0 40px;\n }\n\n &__content {\n display: flex;\n justify-content: space-between;\n flex: 1;\n max-width: 1440px;\n }\n\n &__control {\n display: flex;\n flex-direction: column;\n width: 48%;\n\n &_left {\n align-items: flex-start;\n }\n\n &_right {\n align-items: flex-end;\n }\n\n & svg {\n margin-top: -1px;\n min-width: 16px;\n }\n\n &_left svg {\n margin-right: 6px;\n\n [dir='rtl'] & {\n margin-left: 6px;\n transform: rotate(180deg);\n }\n }\n\n &_right svg {\n margin-left: 6px;\n\n [dir='rtl'] & {\n margin-right: 6px;\n transform: rotate(180deg);\n }\n }\n }\n\n &__control-hint {\n color: var(--g-color-text-hint);\n }\n\n &__control-text {\n display: flex;\n align-items: center;\n }\n\n &__link {\n display: flex;\n align-items: center;\n min-height: 32px;\n color: var(--g-color-text-primary);\n font-weight: 500;\n border-radius: var(--g-focus-border-radius);\n\n @include focusable();\n }\n}\n", "@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", ".dc-nav-toc-panel {\n display: flex;\n justify-content: center;\n width: 100%;\n background: var(--g-color-base-background);\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-nav-toc-panel_fixed {\n position: fixed;\n bottom: 0;\n z-index: 1000;\n left: 0;\n border-top: 1px solid var(--g-color-line-generic);\n}\n.dc-nav-toc-panel_fixed .dc-nav-toc-panel__control-hint {\n display: none;\n}\n.dc-nav-toc-panel_fixed .dc-nav-toc-panel__content {\n padding: 0 40px;\n}\n.dc-nav-toc-panel__content {\n display: flex;\n justify-content: space-between;\n flex: 1;\n max-width: 1440px;\n}\n.dc-nav-toc-panel__control {\n display: flex;\n flex-direction: column;\n width: 48%;\n}\n.dc-nav-toc-panel__control_left {\n align-items: flex-start;\n}\n.dc-nav-toc-panel__control_right {\n align-items: flex-end;\n}\n.dc-nav-toc-panel__control svg {\n margin-top: -1px;\n min-width: 16px;\n}\n.dc-nav-toc-panel__control_left svg {\n margin-right: 6px;\n}\n[dir=rtl] .dc-nav-toc-panel__control_left svg {\n margin-left: 6px;\n transform: rotate(180deg);\n}\n.dc-nav-toc-panel__control_right svg {\n margin-left: 6px;\n}\n[dir=rtl] .dc-nav-toc-panel__control_right svg {\n margin-right: 6px;\n transform: rotate(180deg);\n}\n.dc-nav-toc-panel__control-hint {\n color: var(--g-color-text-hint);\n}\n.dc-nav-toc-panel__control-text {\n display: flex;\n align-items: center;\n}\n.dc-nav-toc-panel__link {\n display: flex;\n align-items: center;\n min-height: 32px;\n color: var(--g-color-text-primary);\n font-weight: 500;\n border-radius: var(--g-focus-border-radius);\n}\n.dc-nav-toc-panel__link:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: 0;\n}\n.dc-nav-toc-panel__link:focus:not(:focus-visible) {\n outline: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RvY05hdlBhbmVsIiwic291cmNlcyI6WyJUb2NOYXZQYW5lbC5zY3NzIiwiLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUNIQTtFQUNBOztBRE1BO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOztBQUlSO0VBQ0k7O0FBRUE7RUFDSTtFQUNBOztBQUtaO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQ3BEQTtFQUNJO0VBQ0EsZ0JBSmM7O0FBTWxCO0VBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLmRjLW5hdi10b2MtcGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZy1jb2xvci1iYXNlLWJhY2tncm91bmQpO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMSk7XG5cbiAgICAmX2ZpeGVkIHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgfVxuXG4gICAgJl9maXhlZCAmX19jb250cm9sLWhpbnQge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfZml4ZWQgJl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDAgNDBweDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBtYXgtd2lkdGg6IDE0NDBweDtcbiAgICB9XG5cbiAgICAmX19jb250cm9sIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgd2lkdGg6IDQ4JTtcblxuICAgICAgICAmX2xlZnQge1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX3JpZ2h0IHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDE2cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmX2xlZnQgc3ZnIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNnB4O1xuXG4gICAgICAgICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX3JpZ2h0IHN2ZyB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogNnB4O1xuXG4gICAgICAgICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udHJvbC1oaW50IHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1oaW50KTtcbiAgICB9XG5cbiAgICAmX19jb250cm9sLXRleHQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4vdmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAjeyRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3skaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiJdfQ== */"],
5
5
  "mappings": ";AAEA,CAAA;AACI,WAAA;AACA,mBAAA;AACA,SAAA;AACA,cAAA,IAAA;ACHA,aAAA,IAAA;AACA,eAAA,IAAA;ACGJ;AFGI,CAAA;AACI,YAAA;AACA,UAAA;AACA,WAAA;AACA,QAAA;AACA,cAAA,IAAA,MAAA,IAAA;AEDR;AFII,CARA,uBAQA,CAAA;AACI,WAAA;AEFR;AFKI,CAZA,uBAYA,CAAA;AACI,WAAA,EAAA;AEHR;AFMI,CAJA;AAKI,WAAA;AACA,mBAAA;AACA,QAAA;AACA,aAAA;AEJR;AFOI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,SAAA;AELR;AFOQ,CAAA;AACI,eAAA;AELZ;AFQQ,CAAA;AACI,eAAA;AENZ;AFSQ,CAbJ,0BAaI;AACI,cAAA;AACA,aAAA;AEPZ;AFUQ,CAbA,+BAaA;AACI,gBAAA;AERZ;AFUY,CAAA,SAAA,CAhBJ,+BAgBI;AACI,eAAA;AACA,aAAA,OAAA;AERhB;AFYQ,CAlBA,gCAkBA;AACI,eAAA;AEVZ;AFYY,CAAA,SAAA,CArBJ,gCAqBI;AACI,gBAAA;AACA,aAAA,OAAA;AEVhB;AFeI,CApDA;AAqDI,SAAA,IAAA;AEbR;AFgBI,CAAA;AACI,WAAA;AACA,eAAA;AEdR;AFiBI,CAAA;AACI,WAAA;AACA,eAAA;AACA,cAAA;AACA,SAAA,IAAA;AACA,eAAA;AACA,iBAAA,IAAA;AEfR;ADrCQ,CD8CJ,sBC9CI;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ACuCZ;ADrCQ,CD0CJ,sBC1CI,MAAA,KAAA;AACI,WAAA;ACuCZ;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/TocNavPanel/TocNavPanel.tsx"],
4
- "sourcesContent": ["import React, {memo, useMemo} from 'react';\n\nimport {ArrowLeft, ArrowRight} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../hooks';\nimport {Router, TocData, TocItem} from '../../models';\nimport {isActiveItem, isExternalHref} from '../../utils';\n\nimport './TocNavPanel.scss';\n\nconst b = block('dc-nav-toc-panel');\n\nexport interface TocNavPanelProps extends TocData {\n router: Router;\n fixed?: boolean;\n className?: string;\n}\n\ninterface FlatTocItem {\n name: string;\n href: string;\n}\n\nfunction getFlatToc(items: TocItem[]): FlatTocItem[] {\n return items.reduce((result, {href, name, items: subItems}) => {\n if (href) {\n result.push({name, href});\n }\n\n return result.concat(getFlatToc(subItems || []));\n }, [] as FlatTocItem[]);\n}\n\nfunction getBoundingItems(flatToc: FlatTocItem[], router: Router) {\n for (let i = 0; i < flatToc.length; i++) {\n const {href} = flatToc[i];\n\n if (isActiveItem(router, href)) {\n return {\n prevItem: flatToc[i - 1] || null,\n nextItem: flatToc[i + 1] || null,\n };\n }\n }\n\n return {\n prevItem: null,\n nextItem: null,\n };\n}\n\nconst TocNavControl = memo<{isNext?: boolean; item: FlatTocItem | null}>(({item, isNext}) => {\n const {t} = useTranslation('toc-nav-panel');\n const keyHint = isNext ? 'hint_next' : 'hint_previous';\n const isExternal = item && isExternalHref(item.href);\n const linkAttributes = {\n href: item?.href,\n target: isExternal ? '_blank' : '_self',\n rel: isExternal ? 'noopener noreferrer' : undefined,\n };\n\n return (\n <div className={b('control', {left: !isNext, right: isNext})}>\n {item && (\n <React.Fragment>\n <div className={b('control-hint')}>{t<string>(keyHint)}</div>\n <div className={b('control-text')}>\n <a {...linkAttributes} className={b('link')} data-router-shallow>\n {!isNext && <ArrowLeft width={16} height={16} />}\n {item.name}\n {isNext && <ArrowRight width={16} height={16} />}\n </a>\n </div>\n </React.Fragment>\n )}\n </div>\n );\n});\n\nTocNavControl.displayName = 'TocNavControl';\n\nconst TocNavPanel = memo<TocNavPanelProps>(({items, router, fixed, className}) => {\n const flatToc = useMemo(() => getFlatToc(items), [items]);\n const {prevItem, nextItem} = useMemo(\n () => getBoundingItems(flatToc, router),\n [flatToc, router],\n );\n\n if (!flatToc.length) {\n return null;\n }\n\n return (\n <div className={b({fixed}, className)}>\n <div className={b('content')}>\n {<TocNavControl item={prevItem} />}\n {<TocNavControl item={nextItem} isNext={true} />}\n </div>\n </div>\n );\n});\n\nTocNavPanel.displayName = 'TocNavPanel';\n\nexport default TocNavPanel;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AAEnC,mBAAoC;AACpC,yBAAkB;AAElB,mBAA6B;AAE7B,mBAA2C;AAE3C,yBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,kBAAkB;AAalC,SAAS,WAAW,OAAiC;AACjD,SAAO,MAAM,OAAO,CAAC,QAAQ,EAAC,MAAM,MAAM,OAAO,SAAQ,MAAM;AAC3D,QAAI,MAAM;AACN,aAAO,KAAK,EAAC,MAAM,KAAI,CAAC;AAAA,IAC5B;AAEA,WAAO,OAAO,OAAO,WAAW,YAAY,CAAC,CAAC,CAAC;AAAA,EACnD,GAAG,CAAC,CAAkB;AAC1B;AAEA,SAAS,iBAAiB,SAAwB,QAAgB;AAC9D,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,UAAM,EAAC,KAAI,IAAI,QAAQ,CAAC;AAExB,YAAI,2BAAa,QAAQ,IAAI,GAAG;AAC5B,aAAO;AAAA,QACH,UAAU,QAAQ,IAAI,CAAC,KAAK;AAAA,QAC5B,UAAU,QAAQ,IAAI,CAAC,KAAK;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EACd;AACJ;AAEA,IAAM,oBAAgB,mBAAmD,CAAC,EAAC,MAAM,OAAM,MAAM;AACzF,QAAM,EAAC,EAAC,QAAI,6BAAe,eAAe;AAC1C,QAAM,UAAU,SAAS,cAAc;AACvC,QAAM,aAAa,YAAQ,6BAAe,KAAK,IAAI;AACnD,QAAM,iBAAiB;AAAA,IACnB,MAAM,6BAAM;AAAA,IACZ,QAAQ,aAAa,WAAW;AAAA,IAChC,KAAK,aAAa,wBAAwB;AAAA,EAC9C;AAEA,SACI,6BAAAC,QAAA,cAAC,SAAI,WAAW,EAAE,WAAW,EAAC,MAAM,CAAC,QAAQ,OAAO,OAAM,CAAC,KACtD,QACG,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,MACG,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,cAAc,KAAI,EAAU,OAAO,CAAE,GACvD,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,cAAc,KAC5B,6BAAAA,QAAA,cAAC,sCAAM,iBAAN,EAAsB,WAAW,EAAE,MAAM,GAAG,uBAAmB,SAC3D,CAAC,UAAU,6BAAAA,QAAA,cAAC,0BAAU,OAAO,IAAI,QAAQ,IAAI,GAC7C,KAAK,MACL,UAAU,6BAAAA,QAAA,cAAC,2BAAW,OAAO,IAAI,QAAQ,IAAI,CAClD,CACJ,CACJ,CAER;AAER,CAAC;AAED,cAAc,cAAc;AAE5B,IAAM,kBAAc,mBAAuB,CAAC,EAAC,OAAO,QAAQ,OAAO,UAAS,MAAM;AAC9E,QAAM,cAAU,sBAAQ,MAAM,WAAW,KAAK,GAAG,CAAC,KAAK,CAAC;AACxD,QAAM,EAAC,UAAU,SAAQ,QAAI;AAAA,IACzB,MAAM,iBAAiB,SAAS,MAAM;AAAA,IACtC,CAAC,SAAS,MAAM;AAAA,EACpB;AAEA,MAAI,CAAC,QAAQ,QAAQ;AACjB,WAAO;AAAA,EACX;AAEA,SACI,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,EAAC,MAAK,GAAG,SAAS,KAChC,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,SAAS,KACtB,6BAAAA,QAAA,cAAC,iBAAc,MAAM,UAAU,GAC/B,6BAAAA,QAAA,cAAC,iBAAc,MAAM,UAAU,QAAQ,MAAM,CAClD,CACJ;AAER,CAAC;AAED,YAAY,cAAc;AAE1B,IAAO,sBAAQ;",
4
+ "sourcesContent": ["import React, {memo, useMemo} from 'react';\nimport {ArrowLeft, ArrowRight} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../hooks';\nimport {Router, TocData, TocItem} from '../../models';\nimport {isActiveItem, isExternalHref} from '../../utils';\n\nimport './TocNavPanel.scss';\n\nconst b = block('dc-nav-toc-panel');\n\nexport interface TocNavPanelProps extends TocData {\n router: Router;\n fixed?: boolean;\n className?: string;\n}\n\ninterface FlatTocItem {\n name: string;\n href: string;\n}\n\nfunction getFlatToc(items: TocItem[]): FlatTocItem[] {\n return items.reduce((result, {href, name, items: subItems}) => {\n if (href) {\n result.push({name, href});\n }\n\n return result.concat(getFlatToc(subItems || []));\n }, [] as FlatTocItem[]);\n}\n\nfunction getBoundingItems(flatToc: FlatTocItem[], router: Router) {\n for (let i = 0; i < flatToc.length; i++) {\n const {href} = flatToc[i];\n\n if (isActiveItem(router, href)) {\n return {\n prevItem: flatToc[i - 1] || null,\n nextItem: flatToc[i + 1] || null,\n };\n }\n }\n\n return {\n prevItem: null,\n nextItem: null,\n };\n}\n\nconst TocNavControl = memo<{isNext?: boolean; item: FlatTocItem | null}>(({item, isNext}) => {\n const {t} = useTranslation('toc-nav-panel');\n const keyHint = isNext ? 'hint_next' : 'hint_previous';\n const isExternal = item && isExternalHref(item.href);\n const linkAttributes = {\n href: item?.href,\n target: isExternal ? '_blank' : '_self',\n rel: isExternal ? 'noopener noreferrer' : undefined,\n };\n\n return (\n <div className={b('control', {left: !isNext, right: isNext})}>\n {item && (\n <React.Fragment>\n <div className={b('control-hint')}>{t<string>(keyHint)}</div>\n <div className={b('control-text')}>\n <a {...linkAttributes} className={b('link')} data-router-shallow>\n {!isNext && <ArrowLeft width={16} height={16} />}\n {item.name}\n {isNext && <ArrowRight width={16} height={16} />}\n </a>\n </div>\n </React.Fragment>\n )}\n </div>\n );\n});\n\nTocNavControl.displayName = 'TocNavControl';\n\nconst TocNavPanel = memo<TocNavPanelProps>(({items, router, fixed, className}) => {\n const flatToc = useMemo(() => getFlatToc(items), [items]);\n const {prevItem, nextItem} = useMemo(\n () => getBoundingItems(flatToc, router),\n [flatToc, router],\n );\n\n if (!flatToc.length) {\n return null;\n }\n\n return (\n <div className={b({fixed}, className)}>\n <div className={b('content')}>\n {<TocNavControl item={prevItem} />}\n {<TocNavControl item={nextItem} isNext={true} />}\n </div>\n </div>\n );\n});\n\nTocNavPanel.displayName = 'TocNavPanel';\n\nexport default TocNavPanel;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AACnC,mBAAoC;AACpC,yBAAkB;AAElB,mBAA6B;AAE7B,mBAA2C;AAE3C,yBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,kBAAkB;AAalC,SAAS,WAAW,OAAiC;AACjD,SAAO,MAAM,OAAO,CAAC,QAAQ,EAAC,MAAM,MAAM,OAAO,SAAQ,MAAM;AAC3D,QAAI,MAAM;AACN,aAAO,KAAK,EAAC,MAAM,KAAI,CAAC;AAAA,IAC5B;AAEA,WAAO,OAAO,OAAO,WAAW,YAAY,CAAC,CAAC,CAAC;AAAA,EACnD,GAAG,CAAC,CAAkB;AAC1B;AAEA,SAAS,iBAAiB,SAAwB,QAAgB;AAC9D,WAAS,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK;AACrC,UAAM,EAAC,KAAI,IAAI,QAAQ,CAAC;AAExB,YAAI,2BAAa,QAAQ,IAAI,GAAG;AAC5B,aAAO;AAAA,QACH,UAAU,QAAQ,IAAI,CAAC,KAAK;AAAA,QAC5B,UAAU,QAAQ,IAAI,CAAC,KAAK;AAAA,MAChC;AAAA,IACJ;AAAA,EACJ;AAEA,SAAO;AAAA,IACH,UAAU;AAAA,IACV,UAAU;AAAA,EACd;AACJ;AAEA,IAAM,oBAAgB,mBAAmD,CAAC,EAAC,MAAM,OAAM,MAAM;AACzF,QAAM,EAAC,EAAC,QAAI,6BAAe,eAAe;AAC1C,QAAM,UAAU,SAAS,cAAc;AACvC,QAAM,aAAa,YAAQ,6BAAe,KAAK,IAAI;AACnD,QAAM,iBAAiB;AAAA,IACnB,MAAM,6BAAM;AAAA,IACZ,QAAQ,aAAa,WAAW;AAAA,IAChC,KAAK,aAAa,wBAAwB;AAAA,EAC9C;AAEA,SACI,6BAAAC,QAAA,cAAC,SAAI,WAAW,EAAE,WAAW,EAAC,MAAM,CAAC,QAAQ,OAAO,OAAM,CAAC,KACtD,QACG,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,MACG,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,cAAc,KAAI,EAAU,OAAO,CAAE,GACvD,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,cAAc,KAC5B,6BAAAA,QAAA,cAAC,sCAAM,iBAAN,EAAsB,WAAW,EAAE,MAAM,GAAG,uBAAmB,SAC3D,CAAC,UAAU,6BAAAA,QAAA,cAAC,0BAAU,OAAO,IAAI,QAAQ,IAAI,GAC7C,KAAK,MACL,UAAU,6BAAAA,QAAA,cAAC,2BAAW,OAAO,IAAI,QAAQ,IAAI,CAClD,CACJ,CACJ,CAER;AAER,CAAC;AAED,cAAc,cAAc;AAE5B,IAAM,kBAAc,mBAAuB,CAAC,EAAC,OAAO,QAAQ,OAAO,UAAS,MAAM;AAC9E,QAAM,cAAU,sBAAQ,MAAM,WAAW,KAAK,GAAG,CAAC,KAAK,CAAC;AACxD,QAAM,EAAC,UAAU,SAAQ,QAAI;AAAA,IACzB,MAAM,iBAAiB,SAAS,MAAM;AAAA,IACtC,CAAC,SAAS,MAAM;AAAA,EACpB;AAEA,MAAI,CAAC,QAAQ,QAAQ;AACjB,WAAO;AAAA,EACX;AAEA,SACI,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,EAAC,MAAK,GAAG,SAAS,KAChC,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,SAAS,KACtB,6BAAAA,QAAA,cAAC,iBAAc,MAAM,UAAU,GAC/B,6BAAAA,QAAA,cAAC,iBAAc,MAAM,UAAU,QAAQ,MAAM,CAClD,CACJ;AAER,CAAC;AAED,YAAY,cAAc;AAE1B,IAAO,sBAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ToggleArrow/home/runner/work/components/components/src/components/ToggleArrow/ToggleArrow.scss", "../../../../src/components/ToggleArrow/%3Cinput%20css%20m3xe4n%3E"],
3
+ "sources": ["../../../../src/components/ToggleArrow/home/runner/work/components/components/src/components/ToggleArrow/ToggleArrow.scss", "../../../../src/components/ToggleArrow/%3Cinput%20css%20C_t08n%3E"],
4
4
  "sourcesContent": [".dc-toggle-arrow {\n transition: transform 0.15s;\n stroke-width: 2px;\n $root: &;\n\n &_type {\n &_horizontal {\n transform: rotate(0deg);\n\n [dir='rtl'] & {\n transform: rotate(180deg);\n }\n }\n\n &_vertical {\n transform: rotate(90deg);\n }\n }\n\n &_open {\n &#{$root}_type_horizontal {\n transform: rotate(90deg);\n\n [dir='rtl'] & {\n transform: rotate(90deg);\n }\n }\n\n &#{$root}_type_vertical {\n transform: rotate(-90deg);\n\n [dir='rtl'] & {\n transform: rotate(90deg);\n }\n }\n }\n\n &_thin {\n stroke-width: 1px;\n }\n\n &_slow {\n transition-duration: 0.3s;\n }\n}\n", ".dc-toggle-arrow {\n transition: transform 0.15s;\n stroke-width: 2px;\n}\n.dc-toggle-arrow_type_horizontal {\n transform: rotate(0deg);\n}\n[dir=rtl] .dc-toggle-arrow_type_horizontal {\n transform: rotate(180deg);\n}\n.dc-toggle-arrow_type_vertical {\n transform: rotate(90deg);\n}\n.dc-toggle-arrow_open.dc-toggle-arrow_type_horizontal {\n transform: rotate(90deg);\n}\n[dir=rtl] .dc-toggle-arrow_open.dc-toggle-arrow_type_horizontal {\n transform: rotate(90deg);\n}\n.dc-toggle-arrow_open.dc-toggle-arrow_type_vertical {\n transform: rotate(-90deg);\n}\n[dir=rtl] .dc-toggle-arrow_open.dc-toggle-arrow_type_vertical {\n transform: rotate(90deg);\n}\n.dc-toggle-arrow_thin {\n stroke-width: 1px;\n}\n.dc-toggle-arrow_slow {\n transition-duration: 0.3s;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RvZ2dsZUFycm93Iiwic291cmNlcyI6WyJUb2dnbGVBcnJvdy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0k7RUFDQTs7QUFJSTtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFLSjtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJOztBQUtaO0VBQ0k7O0FBR0o7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIi5kYy10b2dnbGUtYXJyb3cge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cztcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgICAkcm9vdDogJjtcblxuICAgICZfdHlwZSB7XG4gICAgICAgICZfaG9yaXpvbnRhbCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcblxuICAgICAgICAgICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfdmVydGljYWwge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9vcGVuIHtcbiAgICAgICAgJiN7JHJvb3R9X3R5cGVfaG9yaXpvbnRhbCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG5cbiAgICAgICAgICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYjeyRyb290fV90eXBlX3ZlcnRpY2FsIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZyk7XG5cbiAgICAgICAgICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfdGhpbiB7XG4gICAgICAgIHN0cm9rZS13aWR0aDogMXB4O1xuICAgIH1cblxuICAgICZfc2xvdyB7XG4gICAgICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuM3M7XG4gICAgfVxufVxuIl19 */"],
5
5
  "mappings": ";AAAA,CAAA;AACI,cAAA,UAAA;AACA,gBAAA;ACCJ;ADGQ,CAAA;AACI,aAAA,OAAA;ACDZ;ADGY,CAAA,SAAA,CAHJ;AAIQ,aAAA,OAAA;ACDhB;ADKQ,CAAA;AACI,aAAA,OAAA;ACHZ;ADQQ,CAAA,oBAAA,CAdA;AAeI,aAAA,OAAA;ACNZ;ADQY,CAAA,SAAA,CAHJ,oBAGI,CAjBJ;AAkBQ,aAAA,OAAA;ACNhB;ADUQ,CARA,oBAQA,CAdA;AAeI,aAAA,OAAA;ACRZ;ADUY,CAAA,SAAA,CAXJ,oBAWI,CAjBJ;AAkBQ,aAAA,OAAA;ACRhB;ADaI,CAAA;AACI,gBAAA;ACXR;ADcI,CAAA;AACI,uBAAA;ACZR;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ToggleArrow/ToggleArrow.tsx"],
4
- "sourcesContent": ["import React from 'react';\n\nimport {ChevronRight} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\n\nimport './ToggleArrow.scss';\n\nconst b = block('dc-toggle-arrow');\n\nexport interface ToggleArrowProps {\n type?: 'horizontal' | 'vertical';\n open?: boolean;\n size?: number;\n thin?: boolean;\n slow?: boolean;\n className?: string;\n}\n\nexport const ToggleArrow: React.FC<ToggleArrowProps> = ({\n type = 'horizontal',\n open = false,\n size = 16,\n thin = false,\n slow = false,\n className,\n}) => (\n <ChevronRight className={b({type, open, thin, slow}, className)} width={size} height={size} />\n);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,mBAA2B;AAC3B,yBAAkB;AAElB,yBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,iBAAiB;AAW1B,IAAM,cAA0C,CAAC;AAAA,EACpD,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP;AACJ,MACI,6BAAAC,QAAA,cAAC,6BAAa,WAAW,EAAE,EAAC,MAAM,MAAM,MAAM,KAAI,GAAG,SAAS,GAAG,OAAO,MAAM,QAAQ,MAAM;",
4
+ "sourcesContent": ["import React from 'react';\nimport {ChevronRight} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\n\nimport './ToggleArrow.scss';\n\nconst b = block('dc-toggle-arrow');\n\nexport interface ToggleArrowProps {\n type?: 'horizontal' | 'vertical';\n open?: boolean;\n size?: number;\n thin?: boolean;\n slow?: boolean;\n className?: string;\n}\n\nexport const ToggleArrow: React.FC<ToggleArrowProps> = ({\n type = 'horizontal',\n open = false,\n size = 16,\n thin = false,\n slow = false,\n className,\n}) => (\n <ChevronRight className={b({type, open, thin, slow}, className)} width={size} height={size} />\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,mBAA2B;AAC3B,yBAAkB;AAElB,yBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,iBAAiB;AAW1B,IAAM,cAA0C,CAAC;AAAA,EACpD,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP;AACJ,MACI,6BAAAC,QAAA,cAAC,6BAAa,WAAW,EAAE,EAAC,MAAM,MAAM,MAAM,KAAI,GAAG,SAAS,GAAG,OAAO,MAAM,QAAQ,MAAM;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/UpdatedAtDate/home/runner/work/components/components/src/components/UpdatedAtDate/UpdatedAtDate.scss", "../../../../src/components/UpdatedAtDate/%3Cinput%20css%20JKscqu%3E"],
3
+ "sources": ["../../../../src/components/UpdatedAtDate/home/runner/work/components/components/src/components/UpdatedAtDate/UpdatedAtDate.scss", "../../../../src/components/UpdatedAtDate/%3Cinput%20css%20oVC7be%3E"],
4
4
  "sourcesContent": ["@import '../../styles/mixins';\n\n.dc-updated-at-date {\n display: flex;\n font-size: 13px;\n font-weight: 400;\n\n &__wrapper {\n align-self: center;\n }\n}\n", ".dc-updated-at-date {\n display: flex;\n font-size: 13px;\n font-weight: 400;\n}\n.dc-updated-at-date__wrapper {\n align-self: center;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1VwZGF0ZWRBdERhdGUiLCJzb3VyY2VzIjpbIlVwZGF0ZWRBdERhdGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbi5kYy11cGRhdGVkLWF0LWRhdGUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIH1cbn1cbiJdfQ== */"],
5
5
  "mappings": ";AAEA,CAAA;AACI,WAAA;AACA,aAAA;AACA,eAAA;ACDJ;ADGI,CAAA;AACI,cAAA;ACDR;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/UpdatedAtDate/UpdatedAtDate.tsx"],
4
- "sourcesContent": ["import React, {memo, useMemo} from 'react';\n\nimport block from 'bem-cn-lite';\n\nimport {getConfig} from '../../config';\nimport {useTranslation} from '../../hooks';\nimport {format} from '../../utils/date';\n\nimport './UpdatedAtDate.scss';\n\nconst b = block('dc-updated-at-date');\n\nexport interface UpdatedAtDateProps {\n updatedAt: string;\n}\n\nconst UpdatedAtDate: React.FC<UpdatedAtDateProps> = ({updatedAt}) => {\n const {t} = useTranslation('updated-at-date');\n\n const updatedAtFormatted = useMemo(() => {\n const {localeCode} = getConfig();\n return format(updatedAt, 'longDate', localeCode);\n }, [updatedAt]);\n\n return (\n <div className={b()}>\n <div className={b('wrapper')}>\n {t<string>('title')} {updatedAtFormatted}\n </div>\n </div>\n );\n};\n\nexport default memo(UpdatedAtDate);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AAEnC,yBAAkB;AAElB,oBAAwB;AACxB,mBAA6B;AAC7B,kBAAqB;AAErB,2BAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,oBAAoB;AAMpC,IAAM,gBAA8C,CAAC,EAAC,UAAS,MAAM;AACjE,QAAM,EAAC,EAAC,QAAI,6BAAe,iBAAiB;AAE5C,QAAM,yBAAqB,sBAAQ,MAAM;AACrC,UAAM,EAAC,WAAU,QAAI,yBAAU;AAC/B,eAAO,oBAAO,WAAW,YAAY,UAAU;AAAA,EACnD,GAAG,CAAC,SAAS,CAAC;AAEd,SACI,6BAAAC,QAAA,cAAC,SAAI,WAAW,EAAE,KACd,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,SAAS,KACtB,EAAU,OAAO,GAAE,KAAE,kBAC1B,CACJ;AAER;AAEA,IAAO,4BAAQ,mBAAK,aAAa;",
4
+ "sourcesContent": ["import React, {memo, useMemo} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {getConfig} from '../../config';\nimport {useTranslation} from '../../hooks';\nimport {format} from '../../utils/date';\n\nimport './UpdatedAtDate.scss';\n\nconst b = block('dc-updated-at-date');\n\nexport interface UpdatedAtDateProps {\n updatedAt: string;\n}\n\nconst UpdatedAtDate: React.FC<UpdatedAtDateProps> = ({updatedAt}) => {\n const {t} = useTranslation('updated-at-date');\n\n const updatedAtFormatted = useMemo(() => {\n const {localeCode} = getConfig();\n return format(updatedAt, 'longDate', localeCode);\n }, [updatedAt]);\n\n return (\n <div className={b()}>\n <div className={b('wrapper')}>\n {t<string>('title')} {updatedAtFormatted}\n </div>\n </div>\n );\n};\n\nexport default memo(UpdatedAtDate);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAmC;AACnC,yBAAkB;AAElB,oBAAwB;AACxB,mBAA6B;AAC7B,kBAAqB;AAErB,2BAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,oBAAoB;AAMpC,IAAM,gBAA8C,CAAC,EAAC,UAAS,MAAM;AACjE,QAAM,EAAC,EAAC,QAAI,6BAAe,iBAAiB;AAE5C,QAAM,yBAAqB,sBAAQ,MAAM;AACrC,UAAM,EAAC,WAAU,QAAI,yBAAU;AAC/B,eAAO,oBAAO,WAAW,YAAY,UAAU;AAAA,EACnD,GAAG,CAAC,SAAS,CAAC;AAEd,SACI,6BAAAC,QAAA,cAAC,SAAI,WAAW,EAAE,KACd,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,SAAS,KACtB,EAAU,OAAO,GAAE,KAAE,kBAC1B,CACJ;AAER;AAEA,IAAO,4BAAQ,mBAAK,aAAa;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -3,3 +3,4 @@ export * from './useTimer';
3
3
  export * from './useTranslation';
4
4
  export * from './usePopupState';
5
5
  export * from './useAnalytics';
6
+ export * from './useVirtualElementRef';
@@ -22,4 +22,5 @@ __reExport(hooks_exports, require("./useTimer"), module.exports);
22
22
  __reExport(hooks_exports, require("./useTranslation"), module.exports);
23
23
  __reExport(hooks_exports, require("./usePopupState"), module.exports);
24
24
  __reExport(hooks_exports, require("./useAnalytics"), module.exports);
25
+ __reExport(hooks_exports, require("./useVirtualElementRef"), module.exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/index.ts"],
4
- "sourcesContent": ["export * from './usePopper';\nexport * from './useTimer';\nexport * from './useTranslation';\nexport * from './usePopupState';\nexport * from './useAnalytics';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;AACA,0BAAc,uBADd;AAEA,0BAAc,6BAFd;AAGA,0BAAc,4BAHd;AAIA,0BAAc,2BAJd;",
4
+ "sourcesContent": ["export * from './usePopper';\nexport * from './useTimer';\nexport * from './useTranslation';\nexport * from './usePopupState';\nexport * from './useAnalytics';\nexport * from './useVirtualElementRef';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,0BAAc,wBAAd;AACA,0BAAc,uBADd;AAEA,0BAAc,6BAFd;AAGA,0BAAc,4BAHd;AAIA,0BAAc,2BAJd;AAKA,0BAAc,mCALd;",
6
6
  "names": []
7
7
  }
@@ -14,6 +14,7 @@ export type AnalyticsParams = {
14
14
  gtmId: string;
15
15
  router: Router;
16
16
  useConsent?: boolean;
17
+ consentMode?: 'base' | 'notification';
17
18
  };
18
19
  export declare const useAnalytics: ({ gtmId, router, useConsent }: AnalyticsParams) => {
19
20
  sendEvent: GtagEventFunction;
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- "use client";
3
2
  var __create = Object.create;
4
3
  var __defProp = Object.defineProperty;
5
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/useAnalytics.ts"],
4
- "sourcesContent": ["'use client';\n\nimport React from 'react';\n\nimport TagManager from 'react-gtm-module';\n\nimport type {Router} from '../models';\n\ntype GtagEventFunction = (\n data: {\n type?: string;\n event?: string;\n action?: string;\n params?: Record<string, string | number | undefined>;\n },\n force?: boolean,\n) => void;\n\ndeclare global {\n interface Window {\n gtag: undefined | null | GtagEventFunction;\n }\n}\n\nexport type AnalyticsParams = {\n gtmId: string;\n router: Router;\n useConsent?: boolean;\n};\n\nexport const useAnalytics = ({gtmId, router, useConsent}: AnalyticsParams) => {\n const [gtmInitialized, setGtmInitialized] = React.useState(false);\n\n const sendEvent = React.useCallback<GtagEventFunction>(\n (data, force) => {\n if (!useConsent && !force) {\n return;\n }\n TagManager.dataLayer({dataLayer: data});\n },\n [useConsent],\n );\n\n React.useEffect(() => {\n if (!gtmId) {\n return;\n }\n if (!gtmInitialized) {\n TagManager.initialize({\n gtmId,\n dataLayer: [],\n });\n setGtmInitialized(true);\n }\n sendEvent(\n {\n type: 'consent',\n action: 'default',\n params: {\n analytics_storage: useConsent ? 'granted' : 'denied',\n wait_for_update: useConsent ? 0 : Infinity,\n },\n },\n true,\n );\n sendEvent(\n {\n event: 'default_consent',\n },\n true,\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [gtmId, sendEvent]);\n\n React.useEffect(() => {\n if (!gtmInitialized) {\n return;\n }\n sendEvent(\n {\n type: 'consent',\n action: 'update',\n params: {\n analytics_storage: useConsent ? 'granted' : 'denied',\n },\n },\n true,\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [useConsent]);\n\n React.useEffect(() => {\n if (!gtmInitialized) {\n return;\n }\n sendEvent({\n type: 'config',\n action: gtmId,\n params: {\n page_path: router.pathname,\n },\n });\n }, [gtmInitialized, sendEvent, gtmId, router.pathname]);\n\n return {\n sendEvent,\n };\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkB;AAElB,8BAAuB;AA0BhB,IAAM,eAAe,CAAC,EAAC,OAAO,QAAQ,WAAU,MAAuB;AAC1E,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,aAAAA,QAAM,SAAS,KAAK;AAEhE,QAAM,YAAY,aAAAA,QAAM;AAAA,IACpB,CAAC,MAAM,UAAU;AACb,UAAI,CAAC,cAAc,CAAC,OAAO;AACvB;AAAA,MACJ;AACA,8BAAAC,QAAW,UAAU,EAAC,WAAW,KAAI,CAAC;AAAA,IAC1C;AAAA,IACA,CAAC,UAAU;AAAA,EACf;AAEA,eAAAD,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,OAAO;AACR;AAAA,IACJ;AACA,QAAI,CAAC,gBAAgB;AACjB,8BAAAC,QAAW,WAAW;AAAA,QAClB;AAAA,QACA,WAAW,CAAC;AAAA,MAChB,CAAC;AACD,wBAAkB,IAAI;AAAA,IAC1B;AACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ,mBAAmB,aAAa,YAAY;AAAA,UAC5C,iBAAiB,aAAa,IAAI;AAAA,QACtC;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AACA;AAAA,MACI;AAAA,QACI,OAAO;AAAA,MACX;AAAA,MACA;AAAA,IACJ;AAAA,EAEJ,GAAG,CAAC,OAAO,SAAS,CAAC;AAErB,eAAAD,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,gBAAgB;AACjB;AAAA,IACJ;AACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ,mBAAmB,aAAa,YAAY;AAAA,QAChD;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EAEJ,GAAG,CAAC,UAAU,CAAC;AAEf,eAAAA,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,gBAAgB;AACjB;AAAA,IACJ;AACA,cAAU;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,QACJ,WAAW,OAAO;AAAA,MACtB;AAAA,IACJ,CAAC;AAAA,EACL,GAAG,CAAC,gBAAgB,WAAW,OAAO,OAAO,QAAQ,CAAC;AAEtD,SAAO;AAAA,IACH;AAAA,EACJ;AACJ;",
4
+ "sourcesContent": ["import type {Router} from '../models';\n\nimport React from 'react';\nimport TagManager from 'react-gtm-module';\n\ntype GtagEventFunction = (\n data: {\n type?: string;\n event?: string;\n action?: string;\n params?: Record<string, string | number | undefined>;\n },\n force?: boolean,\n) => void;\n\ndeclare global {\n interface Window {\n gtag: undefined | null | GtagEventFunction;\n }\n}\n\nexport type AnalyticsParams = {\n gtmId: string;\n router: Router;\n useConsent?: boolean;\n consentMode?: 'base' | 'notification';\n};\n\nexport const useAnalytics = ({gtmId, router, useConsent}: AnalyticsParams) => {\n const [gtmInitialized, setGtmInitialized] = React.useState(false);\n\n const sendEvent = React.useCallback<GtagEventFunction>(\n (data, force) => {\n if (!useConsent && !force) {\n return;\n }\n TagManager.dataLayer({dataLayer: data});\n },\n [useConsent],\n );\n\n React.useEffect(() => {\n if (!gtmId) {\n return;\n }\n if (!gtmInitialized) {\n TagManager.initialize({\n gtmId,\n dataLayer: [],\n });\n setGtmInitialized(true);\n }\n sendEvent(\n {\n type: 'consent',\n action: 'default',\n params: {\n analytics_storage: useConsent ? 'granted' : 'denied',\n wait_for_update: useConsent ? 0 : Infinity,\n },\n },\n true,\n );\n sendEvent(\n {\n event: 'default_consent',\n },\n true,\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [gtmId, sendEvent]);\n\n React.useEffect(() => {\n if (!gtmInitialized) {\n return;\n }\n sendEvent(\n {\n type: 'consent',\n action: 'update',\n params: {\n analytics_storage: useConsent ? 'granted' : 'denied',\n },\n },\n true,\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [useConsent]);\n\n React.useEffect(() => {\n if (!gtmInitialized) {\n return;\n }\n sendEvent({\n type: 'config',\n action: gtmId,\n params: {\n page_path: router.pathname,\n },\n });\n }, [gtmInitialized, sendEvent, gtmId, router.pathname]);\n\n return {\n sendEvent,\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkB;AAClB,8BAAuB;AAyBhB,IAAM,eAAe,CAAC,EAAC,OAAO,QAAQ,WAAU,MAAuB;AAC1E,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,aAAAA,QAAM,SAAS,KAAK;AAEhE,QAAM,YAAY,aAAAA,QAAM;AAAA,IACpB,CAAC,MAAM,UAAU;AACb,UAAI,CAAC,cAAc,CAAC,OAAO;AACvB;AAAA,MACJ;AACA,8BAAAC,QAAW,UAAU,EAAC,WAAW,KAAI,CAAC;AAAA,IAC1C;AAAA,IACA,CAAC,UAAU;AAAA,EACf;AAEA,eAAAD,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,OAAO;AACR;AAAA,IACJ;AACA,QAAI,CAAC,gBAAgB;AACjB,8BAAAC,QAAW,WAAW;AAAA,QAClB;AAAA,QACA,WAAW,CAAC;AAAA,MAChB,CAAC;AACD,wBAAkB,IAAI;AAAA,IAC1B;AACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ,mBAAmB,aAAa,YAAY;AAAA,UAC5C,iBAAiB,aAAa,IAAI;AAAA,QACtC;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AACA;AAAA,MACI;AAAA,QACI,OAAO;AAAA,MACX;AAAA,MACA;AAAA,IACJ;AAAA,EAEJ,GAAG,CAAC,OAAO,SAAS,CAAC;AAErB,eAAAD,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,gBAAgB;AACjB;AAAA,IACJ;AACA;AAAA,MACI;AAAA,QACI,MAAM;AAAA,QACN,QAAQ;AAAA,QACR,QAAQ;AAAA,UACJ,mBAAmB,aAAa,YAAY;AAAA,QAChD;AAAA,MACJ;AAAA,MACA;AAAA,IACJ;AAAA,EAEJ,GAAG,CAAC,UAAU,CAAC;AAEf,eAAAA,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,gBAAgB;AACjB;AAAA,IACJ;AACA,cAAU;AAAA,MACN,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,QACJ,WAAW,OAAO;AAAA,MACtB;AAAA,IACJ,CAAC;AAAA,EACL,GAAG,CAAC,gBAAgB,WAAW,OAAO,OAAO,QAAQ,CAAC;AAEtD,SAAO;AAAA,IACH;AAAA,EACJ;AACJ;",
6
6
  "names": ["React", "TagManager"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/hooks/usePopper.ts"],
4
- "sourcesContent": ["import React from 'react';\n\nimport popper from '@popperjs/core';\nimport {Modifier, usePopper as useReactPopper} from 'react-popper';\n\nexport type PopperPlacement = popper.Placement | popper.Placement[];\nexport type PopperOffset = [number, number];\nexport type PopperModifiers = Modifier<unknown, Record<string, unknown>>[];\n\nexport interface PopperProps {\n anchor: HTMLElement | null;\n placement?: PopperPlacement;\n offset?: [number, number];\n modifiers?: PopperModifiers;\n}\n\nexport enum PopperPosition {\n BOTTOM_START = 'bottom-start',\n BOTTOM = 'bottom',\n BOTTOM_END = 'bottom-end',\n TOP_START = 'top-start',\n TOP = 'top',\n TOP_END = 'top-end',\n RIGHT_START = 'right-start',\n RIGHT = 'right',\n RIGHT_END = 'right-end',\n LEFT_START = 'left-start',\n LEFT = 'left',\n LEFT_END = 'left-end',\n}\n\nconst DEFAULT_PLACEMENT: PopperPlacement = Object.values(PopperPosition);\n\nexport interface PopoverHook {\n attributes: Record<string, Record<string, string> | undefined>;\n styles: Record<string, React.CSSProperties>;\n setPopperRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n setArrowRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n}\n\nexport function usePopper(props: PopperProps): PopoverHook {\n const {anchor, placement = DEFAULT_PLACEMENT, offset, modifiers = []} = props;\n\n const [popperElement, setPopperElement] = React.useState<HTMLDivElement | null>(null);\n const [arrowElement, setArrowElement] = React.useState<HTMLDivElement | null>(null);\n const placements = Array.isArray(placement) ? placement : [placement];\n\n const {attributes, styles} = useReactPopper(anchor, popperElement, {\n strategy: 'fixed',\n modifiers: [\n {name: 'arrow', options: {enabled: Boolean(arrowElement), element: arrowElement}},\n {name: 'offset', options: {offset}},\n {\n name: 'flip',\n options: {\n fallbackPlacements: [\n PopperPosition.BOTTOM,\n PopperPosition.RIGHT,\n PopperPosition.LEFT,\n PopperPosition.TOP,\n ],\n },\n },\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration: false,\n },\n },\n ...modifiers,\n ],\n placement: placements[0],\n });\n\n return {\n attributes,\n styles,\n setPopperRef: setPopperElement,\n setArrowRef: setArrowElement,\n };\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAGlB,0BAAoD;AAa7C,IAAK,iBAAL,kBAAKA,oBAAL;AACH,EAAAA,gBAAA,kBAAe;AACf,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,SAAM;AACN,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,iBAAc;AACd,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,UAAO;AACP,EAAAA,gBAAA,cAAW;AAZH,SAAAA;AAAA,GAAA;AAeZ,IAAM,oBAAqC,OAAO,OAAO,cAAc;AAShE,SAAS,UAAU,OAAiC;AACvD,QAAM,EAAC,QAAQ,YAAY,mBAAmB,QAAQ,YAAY,CAAC,EAAC,IAAI;AAExE,QAAM,CAAC,eAAe,gBAAgB,IAAI,aAAAC,QAAM,SAAgC,IAAI;AACpF,QAAM,CAAC,cAAc,eAAe,IAAI,aAAAA,QAAM,SAAgC,IAAI;AAClF,QAAM,aAAa,MAAM,QAAQ,SAAS,IAAI,YAAY,CAAC,SAAS;AAEpE,QAAM,EAAC,YAAY,OAAM,QAAI,oBAAAC,WAAe,QAAQ,eAAe;AAAA,IAC/D,UAAU;AAAA,IACV,WAAW;AAAA,MACP,EAAC,MAAM,SAAS,SAAS,EAAC,SAAS,QAAQ,YAAY,GAAG,SAAS,aAAY,EAAC;AAAA,MAChF,EAAC,MAAM,UAAU,SAAS,EAAC,OAAM,EAAC;AAAA,MAClC;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,oBAAoB;AAAA,YAChB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,iBAAiB;AAAA,QACrB;AAAA,MACJ;AAAA,MACA,GAAG;AAAA,IACP;AAAA,IACA,WAAW,WAAW,CAAC;AAAA,EAC3B,CAAC;AAED,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,aAAa;AAAA,EACjB;AACJ;",
4
+ "sourcesContent": ["import React from 'react';\nimport popper from '@popperjs/core';\nimport {Modifier, usePopper as useReactPopper} from 'react-popper';\n\nexport type PopperPlacement = popper.Placement | popper.Placement[];\nexport type PopperOffset = [number, number];\nexport type PopperModifiers = Modifier<unknown, Record<string, unknown>>[];\n\nexport interface PopperProps {\n anchor: HTMLElement | null;\n placement?: PopperPlacement;\n offset?: [number, number];\n modifiers?: PopperModifiers;\n}\n\nexport enum PopperPosition {\n BOTTOM_START = 'bottom-start',\n BOTTOM = 'bottom',\n BOTTOM_END = 'bottom-end',\n TOP_START = 'top-start',\n TOP = 'top',\n TOP_END = 'top-end',\n RIGHT_START = 'right-start',\n RIGHT = 'right',\n RIGHT_END = 'right-end',\n LEFT_START = 'left-start',\n LEFT = 'left',\n LEFT_END = 'left-end',\n}\n\nconst DEFAULT_PLACEMENT: PopperPlacement = Object.values(PopperPosition);\n\nexport interface PopoverHook {\n attributes: Record<string, Record<string, string> | undefined>;\n styles: Record<string, React.CSSProperties>;\n setPopperRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n setArrowRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;\n}\n\nexport function usePopper(props: PopperProps): PopoverHook {\n const {anchor, placement = DEFAULT_PLACEMENT, offset, modifiers = []} = props;\n\n const [popperElement, setPopperElement] = React.useState<HTMLDivElement | null>(null);\n const [arrowElement, setArrowElement] = React.useState<HTMLDivElement | null>(null);\n const placements = Array.isArray(placement) ? placement : [placement];\n\n const {attributes, styles} = useReactPopper(anchor, popperElement, {\n strategy: 'fixed',\n modifiers: [\n {name: 'arrow', options: {enabled: Boolean(arrowElement), element: arrowElement}},\n {name: 'offset', options: {offset}},\n {\n name: 'flip',\n options: {\n fallbackPlacements: [\n PopperPosition.BOTTOM,\n PopperPosition.RIGHT,\n PopperPosition.LEFT,\n PopperPosition.TOP,\n ],\n },\n },\n {\n name: 'computeStyles',\n options: {\n gpuAcceleration: false,\n },\n },\n ...modifiers,\n ],\n placement: placements[0],\n });\n\n return {\n attributes,\n styles,\n setPopperRef: setPopperElement,\n setArrowRef: setArrowElement,\n };\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAElB,0BAAoD;AAa7C,IAAK,iBAAL,kBAAKA,oBAAL;AACH,EAAAA,gBAAA,kBAAe;AACf,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,SAAM;AACN,EAAAA,gBAAA,aAAU;AACV,EAAAA,gBAAA,iBAAc;AACd,EAAAA,gBAAA,WAAQ;AACR,EAAAA,gBAAA,eAAY;AACZ,EAAAA,gBAAA,gBAAa;AACb,EAAAA,gBAAA,UAAO;AACP,EAAAA,gBAAA,cAAW;AAZH,SAAAA;AAAA,GAAA;AAeZ,IAAM,oBAAqC,OAAO,OAAO,cAAc;AAShE,SAAS,UAAU,OAAiC;AACvD,QAAM,EAAC,QAAQ,YAAY,mBAAmB,QAAQ,YAAY,CAAC,EAAC,IAAI;AAExE,QAAM,CAAC,eAAe,gBAAgB,IAAI,aAAAC,QAAM,SAAgC,IAAI;AACpF,QAAM,CAAC,cAAc,eAAe,IAAI,aAAAA,QAAM,SAAgC,IAAI;AAClF,QAAM,aAAa,MAAM,QAAQ,SAAS,IAAI,YAAY,CAAC,SAAS;AAEpE,QAAM,EAAC,YAAY,OAAM,QAAI,oBAAAC,WAAe,QAAQ,eAAe;AAAA,IAC/D,UAAU;AAAA,IACV,WAAW;AAAA,MACP,EAAC,MAAM,SAAS,SAAS,EAAC,SAAS,QAAQ,YAAY,GAAG,SAAS,aAAY,EAAC;AAAA,MAChF,EAAC,MAAM,UAAU,SAAS,EAAC,OAAM,EAAC;AAAA,MAClC;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,oBAAoB;AAAA,YAChB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM;AAAA,QACN,SAAS;AAAA,UACL,iBAAiB;AAAA,QACrB;AAAA,MACJ;AAAA,MACA,GAAG;AAAA,IACP;AAAA,IACA,WAAW,WAAW,CAAC;AAAA,EAC3B,CAAC;AAED,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,aAAa;AAAA,EACjB;AACJ;",
6
6
  "names": ["PopperPosition", "React", "useReactPopper"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  export declare const usePopupState: ({ autoclose }?: {
2
- autoclose?: number | undefined;
2
+ autoclose?: number;
3
3
  }) => {
4
4
  open: () => void;
5
5
  close: () => void;
@@ -0,0 +1,32 @@
1
+ export declare const useVirtualElementRef: (element: HTMLElement | null) => {
2
+ current: {
3
+ getBoundingClientRect(): {
4
+ toJSON(): {
5
+ top: number;
6
+ left: number;
7
+ right: number;
8
+ bottom: number;
9
+ height: number;
10
+ width: number;
11
+ x: number;
12
+ y: number;
13
+ };
14
+ top: number;
15
+ left: number;
16
+ right: number;
17
+ bottom: number;
18
+ height: number;
19
+ width: number;
20
+ x: number;
21
+ y: number;
22
+ };
23
+ };
24
+ top: number;
25
+ left: number;
26
+ right: number;
27
+ bottom: number;
28
+ height: number;
29
+ width: number;
30
+ x: number;
31
+ y: number;
32
+ };