@diplodoc/components 5.16.2 → 5.17.2
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.
- package/README.md +1 -2
- package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
- package/build/cjs/components/BookmarkButton/BookmarkButton.js +5 -5
- package/build/cjs/components/BookmarkButton/BookmarkButton.js.map +2 -2
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.js +2 -1
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/build/cjs/components/ConsentPopup/ConsentPopup.js +2 -1
- package/build/cjs/components/ConsentPopup/ConsentPopup.js.map +1 -1
- package/build/cjs/components/ContentWrapper/ContentWrapper.js +5 -12
- package/build/cjs/components/ContentWrapper/ContentWrapper.js.map +2 -2
- package/build/cjs/components/ContributorAvatars/Avatars/Avatar.js +8 -8
- package/build/cjs/components/ContributorAvatars/Avatars/Avatar.js.map +2 -2
- package/build/cjs/components/ContributorAvatars/Avatars/AvatarWithDescription.js +7 -3
- package/build/cjs/components/ContributorAvatars/Avatars/AvatarWithDescription.js.map +2 -2
- package/build/cjs/components/ContributorAvatars/Avatars/Details.js +12 -9
- package/build/cjs/components/ContributorAvatars/Avatars/Details.js.map +3 -3
- package/build/cjs/components/ContributorAvatars/Avatars/HiddenAvatars.js +18 -14
- package/build/cjs/components/ContributorAvatars/Avatars/HiddenAvatars.js.map +2 -2
- package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
- package/build/cjs/components/ContributorAvatars/ContributorAvatars.js +25 -13
- package/build/cjs/components/ContributorAvatars/ContributorAvatars.js.map +2 -2
- package/build/cjs/components/Contributors/Contributors.css.map +1 -1
- package/build/cjs/components/Contributors/Contributors.js +5 -2
- package/build/cjs/components/Contributors/Contributors.js.map +2 -2
- package/build/cjs/components/Control/Control.css.map +1 -1
- package/build/cjs/components/Control/Control.d.ts +1 -1
- package/build/cjs/components/Control/Control.js +40 -30
- package/build/cjs/components/Control/Control.js.map +2 -2
- package/build/cjs/components/Controls/Controls.css.map +1 -1
- package/build/cjs/components/Controls/Controls.js +29 -28
- package/build/cjs/components/Controls/Controls.js.map +2 -2
- package/build/cjs/components/Controls/ControlsLayout.d.ts +1 -1
- package/build/cjs/components/Controls/ControlsLayout.js +8 -7
- package/build/cjs/components/Controls/ControlsLayout.js.map +3 -3
- package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.js +3 -2
- package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.js.map +2 -2
- package/build/cjs/components/Controls/single-controls/EditControl.d.ts +1 -2
- package/build/cjs/components/Controls/single-controls/EditControl.js +21 -17
- package/build/cjs/components/Controls/single-controls/EditControl.js.map +3 -3
- package/build/cjs/components/Controls/single-controls/FullScreenControl.js +3 -12
- package/build/cjs/components/Controls/single-controls/FullScreenControl.js.map +2 -2
- package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/LangControl/LangControl.d.ts +1 -2
- package/build/cjs/components/Controls/single-controls/LangControl/LangControl.js +26 -23
- package/build/cjs/components/Controls/single-controls/LangControl/LangControl.js.map +3 -3
- package/build/cjs/components/Controls/single-controls/PdfControl.d.ts +1 -2
- package/build/cjs/components/Controls/single-controls/PdfControl.js +4 -13
- package/build/cjs/components/Controls/single-controls/PdfControl.js.map +3 -3
- package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.d.ts +1 -2
- package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.js +43 -36
- package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.js.map +3 -3
- package/build/cjs/components/Controls/single-controls/SinglePageControl.d.ts +1 -2
- package/build/cjs/components/Controls/single-controls/SinglePageControl.js +4 -3
- package/build/cjs/components/Controls/single-controls/SinglePageControl.js.map +3 -3
- package/build/cjs/components/DocContentPage/DocContentPage.js +12 -12
- package/build/cjs/components/DocContentPage/DocContentPage.js.map +2 -2
- package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
- package/build/cjs/components/DocLayout/DocLayout.d.ts +2 -1
- package/build/cjs/components/DocLayout/DocLayout.js +26 -15
- package/build/cjs/components/DocLayout/DocLayout.js.map +2 -2
- package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
- package/build/cjs/components/DocLeadingPage/DocLeadingPage.js +32 -15
- package/build/cjs/components/DocLeadingPage/DocLeadingPage.js.map +2 -2
- package/build/cjs/components/DocPage/DocPage.css.map +1 -1
- package/build/cjs/components/DocPage/DocPage.js +129 -92
- package/build/cjs/components/DocPage/DocPage.js.map +1 -1
- package/build/cjs/components/DocPage/components/MarkdownButton/MarkdownButton.js +6 -12
- package/build/cjs/components/DocPage/components/MarkdownButton/MarkdownButton.js.map +2 -2
- package/build/cjs/components/DocPage/components/RenderBody/RenderBody.js +3 -12
- package/build/cjs/components/DocPage/components/RenderBody/RenderBody.js.map +3 -3
- package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
- package/build/cjs/components/DocPageTitle/DocPageTitle.js +6 -3
- package/build/cjs/components/DocPageTitle/DocPageTitle.js.map +2 -2
- package/build/cjs/components/ErrorBoundary/ErrorBoundary.d.ts +2 -2
- package/build/cjs/components/ErrorBoundary/ErrorBoundary.js +3 -4
- package/build/cjs/components/ErrorBoundary/ErrorBoundary.js.map +2 -2
- package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
- package/build/cjs/components/ErrorPage/ErrorPage.js +36 -18
- package/build/cjs/components/ErrorPage/ErrorPage.js.map +1 -1
- package/build/cjs/components/Feedback/Feedback.css.map +1 -1
- package/build/cjs/components/Feedback/Feedback.js +96 -81
- package/build/cjs/components/Feedback/Feedback.js.map +1 -1
- package/build/cjs/components/Feedback/controls/DislikeControl.d.ts +1 -2
- package/build/cjs/components/Feedback/controls/DislikeControl.js +7 -3
- package/build/cjs/components/Feedback/controls/DislikeControl.js.map +3 -3
- package/build/cjs/components/Feedback/controls/FeedbackControl.d.ts +1 -2
- package/build/cjs/components/Feedback/controls/FeedbackControl.js +10 -7
- package/build/cjs/components/Feedback/controls/FeedbackControl.js.map +3 -3
- package/build/cjs/components/Feedback/controls/FeedbackFormPopup.d.ts +1 -1
- package/build/cjs/components/Feedback/controls/FeedbackFormPopup.js +21 -13
- package/build/cjs/components/Feedback/controls/FeedbackFormPopup.js.map +3 -3
- package/build/cjs/components/Feedback/controls/LikeControl.d.ts +2 -3
- package/build/cjs/components/Feedback/controls/LikeControl.js +7 -3
- package/build/cjs/components/Feedback/controls/LikeControl.js.map +3 -3
- package/build/cjs/components/Feedback/controls/SuccessPopup.d.ts +2 -3
- package/build/cjs/components/Feedback/controls/SuccessPopup.js +11 -7
- package/build/cjs/components/Feedback/controls/SuccessPopup.js.map +3 -3
- package/build/cjs/components/Gallery/Gallery.css.map +1 -1
- package/build/cjs/components/Gallery/Gallery.js +2 -12
- package/build/cjs/components/Gallery/Gallery.js.map +2 -2
- package/build/cjs/components/Gallery/utils.js +27 -22
- package/build/cjs/components/Gallery/utils.js.map +3 -3
- package/build/cjs/components/Mark/Mark.css.map +1 -1
- package/build/cjs/components/Mark/Mark.js +2 -2
- package/build/cjs/components/Mark/Mark.js.map +2 -2
- package/build/cjs/components/Meta/Meta.d.ts +1 -1
- package/build/cjs/components/Meta/Meta.js +28 -22
- package/build/cjs/components/Meta/Meta.js.map +2 -2
- package/build/cjs/components/MiniToc/MiniToc.css.map +1 -1
- package/build/cjs/components/MiniToc/MiniToc.js +33 -23
- package/build/cjs/components/MiniToc/MiniToc.js.map +3 -3
- package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControl/MobileControl.js +33 -24
- package/build/cjs/components/MobileControls/MobileControl/MobileControl.js.map +2 -2
- package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.d.ts +1 -2
- package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.js +11 -8
- package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.js.map +3 -3
- package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControls.d.ts +1 -2
- package/build/cjs/components/MobileControls/MobileControls.js +8 -4
- package/build/cjs/components/MobileControls/MobileControls.js.map +3 -3
- package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
- package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.js +23 -14
- package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.js.map +3 -3
- package/build/cjs/components/Notification/Notification.css.map +1 -1
- package/build/cjs/components/Notification/Notification.js +20 -15
- package/build/cjs/components/Notification/Notification.js.map +2 -2
- package/build/cjs/components/OutsideClick/OutsideClick.d.ts +3 -3
- package/build/cjs/components/OutsideClick/OutsideClick.js +5 -6
- package/build/cjs/components/OutsideClick/OutsideClick.js.map +2 -2
- package/build/cjs/components/Paginator/Paginator.css.map +1 -1
- package/build/cjs/components/Paginator/Paginator.d.ts +1 -2
- package/build/cjs/components/Paginator/Paginator.js +10 -10
- package/build/cjs/components/Paginator/Paginator.js.map +3 -3
- package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
- package/build/cjs/components/SearchBar/SearchBar.d.ts +1 -2
- package/build/cjs/components/SearchBar/SearchBar.js +43 -24
- package/build/cjs/components/SearchBar/SearchBar.js.map +3 -3
- package/build/cjs/components/SearchBar/hooks.js +1 -1
- package/build/cjs/components/SearchBar/hooks.js.map +2 -2
- package/build/cjs/components/SearchBar/withHighlightedSearchWords.js +6 -15
- package/build/cjs/components/SearchBar/withHighlightedSearchWords.js.map +2 -2
- package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
- package/build/cjs/components/SearchItem/SearchItem.d.ts +1 -2
- package/build/cjs/components/SearchItem/SearchItem.js +45 -36
- package/build/cjs/components/SearchItem/SearchItem.js.map +3 -3
- package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
- package/build/cjs/components/SearchPage/SearchPage.js +87 -73
- package/build/cjs/components/SearchPage/SearchPage.js.map +2 -2
- package/build/cjs/components/SearchSuggest/AiIcon.d.ts +1 -2
- package/build/cjs/components/SearchSuggest/AiIcon.js +2 -2
- package/build/cjs/components/SearchSuggest/AiIcon.js.map +3 -3
- package/build/cjs/components/SearchSuggest/SearchInput.d.ts +1 -1
- package/build/cjs/components/SearchSuggest/SearchInput.js +3 -2
- package/build/cjs/components/SearchSuggest/SearchInput.js.map +2 -2
- package/build/cjs/components/SearchSuggest/Suggest.d.ts +2 -3
- package/build/cjs/components/SearchSuggest/Suggest.js +11 -7
- package/build/cjs/components/SearchSuggest/Suggest.js.map +3 -3
- package/build/cjs/components/SearchSuggest/SuggestItem.js +26 -13
- package/build/cjs/components/SearchSuggest/SuggestItem.js.map +2 -2
- package/build/cjs/components/SearchSuggest/index.css.map +1 -1
- package/build/cjs/components/SearchSuggest/index.js +58 -51
- package/build/cjs/components/SearchSuggest/index.js.map +2 -2
- package/build/cjs/components/SearchSuggest/useAiAction.js +4 -13
- package/build/cjs/components/SearchSuggest/useAiAction.js.map +3 -3
- package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
- package/build/cjs/components/ShareButton/ShareButton.js +2 -2
- package/build/cjs/components/ShareButton/ShareButton.js.map +2 -2
- package/build/cjs/components/SocialSharingMeta/SocialSharingMeta.d.ts +2 -2
- package/build/cjs/components/SocialSharingMeta/SocialSharingMeta.js +11 -4
- package/build/cjs/components/SocialSharingMeta/SocialSharingMeta.js.map +3 -3
- package/build/cjs/components/StageLabel/StageLabel.js +2 -12
- package/build/cjs/components/StageLabel/StageLabel.js.map +2 -2
- package/build/cjs/components/SubNavigation/SubNavigation.css.map +1 -1
- package/build/cjs/components/SubNavigation/SubNavigation.js +45 -37
- package/build/cjs/components/SubNavigation/SubNavigation.js.map +2 -2
- package/build/cjs/components/SubNavigation/hooks/useHeadingIntersectionObserver.js +1 -1
- package/build/cjs/components/SubNavigation/hooks/useHeadingIntersectionObserver.js.map +2 -2
- package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
- package/build/cjs/components/Subscribe/Subscribe.js +43 -33
- package/build/cjs/components/Subscribe/Subscribe.js.map +1 -1
- package/build/cjs/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.d.ts +1 -1
- package/build/cjs/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js +9 -6
- package/build/cjs/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js.map +3 -3
- package/build/cjs/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.d.ts +1 -1
- package/build/cjs/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js +37 -27
- package/build/cjs/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +3 -3
- package/build/cjs/components/Subscribe/utils.d.ts +1 -1
- package/build/cjs/components/Subscribe/utils.js +2 -2
- package/build/cjs/components/Subscribe/utils.js.map +2 -2
- package/build/cjs/components/Text/Text.js +4 -3
- package/build/cjs/components/Text/Text.js.map +1 -1
- package/build/cjs/components/Toc/Toc.css.map +1 -1
- package/build/cjs/components/Toc/Toc.js +93 -78
- package/build/cjs/components/Toc/Toc.js.map +2 -2
- package/build/cjs/components/Toc/TocItemRegistry.js +3 -6
- package/build/cjs/components/Toc/TocItemRegistry.js.map +1 -1
- package/build/cjs/components/TocItem/TocItem.css.map +1 -1
- package/build/cjs/components/TocItem/TocItem.js +27 -16
- package/build/cjs/components/TocItem/TocItem.js.map +1 -1
- package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
- package/build/cjs/components/TocLable/TocLabel.js +7 -7
- package/build/cjs/components/TocLable/TocLabel.js.map +3 -3
- package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
- package/build/cjs/components/TocNavPanel/TocNavPanel.js +13 -2
- package/build/cjs/components/TocNavPanel/TocNavPanel.js.map +1 -1
- package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
- package/build/cjs/components/ToggleArrow/ToggleArrow.js +2 -2
- package/build/cjs/components/ToggleArrow/ToggleArrow.js.map +2 -2
- package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
- package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.js +7 -2
- package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.js.map +2 -2
- package/build/cjs/components/VersionsSelect/VersionsSelect.js +3 -12
- package/build/cjs/components/VersionsSelect/VersionsSelect.js.map +2 -2
- package/build/cjs/components/Widgets/Widgets.css.map +1 -1
- package/build/cjs/components/navigation/CustomFooter/CustomFooter.css.map +1 -1
- package/build/cjs/components/navigation/CustomFooter/CustomFooter.js +6 -2
- package/build/cjs/components/navigation/CustomFooter/CustomFooter.js.map +2 -2
- package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
- package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.js +27 -23
- package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.js.map +2 -2
- package/build/cjs/components/navigation/DropdownContent/Column/Column.css.map +1 -1
- package/build/cjs/components/navigation/DropdownContent/Column/Column.js +2 -12
- package/build/cjs/components/navigation/DropdownContent/Column/Column.js.map +3 -3
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.js +4 -14
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.js.map +3 -3
- package/build/cjs/components/navigation/DropdownContent/List/List.js +5 -15
- package/build/cjs/components/navigation/DropdownContent/List/List.js.map +3 -3
- package/build/cjs/components/navigation/DropdownContent/Section/Section.css.map +1 -1
- package/build/cjs/components/navigation/DropdownContent/Section/Section.js +13 -20
- package/build/cjs/components/navigation/DropdownContent/Section/Section.js.map +3 -3
- package/build/cjs/components/navigation/Label/Label.css.map +1 -1
- package/build/cjs/components/navigation/Label/Label.js +2 -12
- package/build/cjs/components/navigation/Label/Label.js.map +3 -3
- package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
- package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.js +16 -9
- package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.js.map +2 -2
- package/build/cjs/components/navigation/NavigationDropdown/ContentWrapper.js +6 -12
- package/build/cjs/components/navigation/NavigationDropdown/ContentWrapper.js.map +3 -3
- package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
- package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.js +40 -44
- package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.js.map +3 -3
- package/build/cjs/components/navigation/NavigationDropdown/Popup/Popup.js +6 -15
- package/build/cjs/components/navigation/NavigationDropdown/Popup/Popup.js.map +3 -3
- package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
- package/build/cjs/components/navigation/Sidebar/Sidebar.js +6 -5
- package/build/cjs/components/navigation/Sidebar/Sidebar.js.map +2 -2
- package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
- package/build/cjs/components/navigation/SidebarContent/SidebarContent.js +47 -35
- package/build/cjs/components/navigation/SidebarContent/SidebarContent.js.map +1 -1
- package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
- package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.js +15 -11
- package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.js.map +2 -2
- package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
- package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.js +6 -2
- package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.js.map +2 -2
- package/build/cjs/config/i18n.js +4 -4
- package/build/cjs/config/i18n.js.map +2 -2
- package/build/cjs/constants.d.ts +14 -0
- package/build/cjs/constants.js +16 -0
- package/build/cjs/constants.js.map +3 -3
- package/build/cjs/contexts/InterfaceContext.js +3 -12
- package/build/cjs/contexts/InterfaceContext.js.map +2 -2
- package/build/cjs/hoc/_withContext.d.ts +1 -6
- package/build/cjs/hoc/_withContext.js +4 -4
- package/build/cjs/hoc/_withContext.js.map +1 -1
- package/build/cjs/hoc/withLang.d.ts +1 -6
- package/build/cjs/hoc/withRouter.d.ts +1 -6
- package/build/cjs/hooks/index.d.ts +0 -1
- package/build/cjs/hooks/index.js +0 -1
- package/build/cjs/hooks/index.js.map +2 -2
- package/build/cjs/hooks/useTimer.js +1 -1
- package/build/cjs/hooks/useTimer.js.map +2 -2
- package/build/cjs/hooks/useVirtualElementRef.js +2 -2
- package/build/cjs/hooks/useVirtualElementRef.js.map +2 -2
- package/build/cjs/i18n/ar.js +177 -0
- package/build/cjs/i18n/ar.js.map +7 -0
- package/build/cjs/i18n/bg.js +176 -0
- package/build/cjs/i18n/bg.js.map +7 -0
- package/build/cjs/i18n/cs.js +177 -0
- package/build/cjs/i18n/cs.js.map +7 -0
- package/build/cjs/i18n/el.js +177 -0
- package/build/cjs/i18n/el.js.map +7 -0
- package/build/cjs/i18n/en.js +177 -0
- package/build/cjs/i18n/en.js.map +7 -0
- package/build/cjs/i18n/es.js +177 -0
- package/build/cjs/i18n/es.js.map +7 -0
- package/build/cjs/i18n/et.js +177 -0
- package/build/cjs/i18n/et.js.map +7 -0
- package/build/cjs/i18n/fr.js +177 -0
- package/build/cjs/i18n/fr.js.map +7 -0
- package/build/cjs/i18n/he.js +177 -0
- package/build/cjs/i18n/he.js.map +7 -0
- package/build/cjs/i18n/index.js +42 -901
- package/build/cjs/i18n/index.js.map +4 -4
- package/build/cjs/i18n/kk.js +177 -0
- package/build/cjs/i18n/kk.js.map +7 -0
- package/build/cjs/i18n/pt.js +177 -0
- package/build/cjs/i18n/pt.js.map +7 -0
- package/build/cjs/i18n/ru.js +177 -0
- package/build/cjs/i18n/ru.js.map +7 -0
- package/build/cjs/i18n/tr.js +177 -0
- package/build/cjs/i18n/tr.js.map +7 -0
- package/build/cjs/i18n/uz.js +177 -0
- package/build/cjs/i18n/uz.js.map +7 -0
- package/build/cjs/i18n/zh-tw.js +177 -0
- package/build/cjs/i18n/zh-tw.js.map +7 -0
- package/build/cjs/i18n/zh.js +177 -0
- package/build/cjs/i18n/zh.js.map +7 -0
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js +1 -0
- package/build/cjs/index.js.map +2 -2
- package/build/cjs/react-compat.d.ts +15 -0
- package/build/cjs/react-compat.js +5 -0
- package/build/cjs/react-compat.js.map +7 -0
- package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.js +1 -5
- package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.js.map +1 -1
- package/build/cjs/shared/libs/analytics/analytics.js +1 -4
- package/build/cjs/shared/libs/analytics/analytics.js.map +1 -1
- package/build/cjs/utils/index.d.ts +5 -1
- package/build/cjs/utils/index.js +16 -4
- package/build/cjs/utils/index.js.map +2 -2
- package/build/cjs/utils/sanitize.js +12 -2
- package/build/cjs/utils/sanitize.js.map +3 -3
- package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
- package/build/esm/components/BookmarkButton/BookmarkButton.js +5 -5
- package/build/esm/components/BookmarkButton/BookmarkButton.js.map +1 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.js +2 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/build/esm/components/ConsentPopup/ConsentPopup.js +2 -1
- package/build/esm/components/ConsentPopup/ConsentPopup.js.map +1 -1
- package/build/esm/components/ContentWrapper/ContentWrapper.js +5 -2
- package/build/esm/components/ContentWrapper/ContentWrapper.js.map +1 -1
- package/build/esm/components/ContributorAvatars/Avatars/Avatar.js +8 -8
- package/build/esm/components/ContributorAvatars/Avatars/Avatar.js.map +1 -1
- package/build/esm/components/ContributorAvatars/Avatars/AvatarWithDescription.js +7 -3
- package/build/esm/components/ContributorAvatars/Avatars/AvatarWithDescription.js.map +1 -1
- package/build/esm/components/ContributorAvatars/Avatars/Details.js +11 -8
- package/build/esm/components/ContributorAvatars/Avatars/Details.js.map +2 -2
- package/build/esm/components/ContributorAvatars/Avatars/HiddenAvatars.js +18 -14
- package/build/esm/components/ContributorAvatars/Avatars/HiddenAvatars.js.map +1 -1
- package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
- package/build/esm/components/ContributorAvatars/ContributorAvatars.js +25 -13
- package/build/esm/components/ContributorAvatars/ContributorAvatars.js.map +1 -1
- package/build/esm/components/Contributors/Contributors.css.map +1 -1
- package/build/esm/components/Contributors/Contributors.js +5 -2
- package/build/esm/components/Contributors/Contributors.js.map +1 -1
- package/build/esm/components/Control/Control.css.map +1 -1
- package/build/esm/components/Control/Control.d.ts +1 -1
- package/build/esm/components/Control/Control.js +40 -30
- package/build/esm/components/Control/Control.js.map +2 -2
- package/build/esm/components/Controls/Controls.css.map +1 -1
- package/build/esm/components/Controls/Controls.js +29 -28
- package/build/esm/components/Controls/Controls.js.map +1 -1
- package/build/esm/components/Controls/ControlsLayout.d.ts +1 -1
- package/build/esm/components/Controls/ControlsLayout.js +7 -6
- package/build/esm/components/Controls/ControlsLayout.js.map +2 -2
- package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
- package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.js +3 -2
- package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.js.map +1 -1
- package/build/esm/components/Controls/single-controls/EditControl.d.ts +1 -2
- package/build/esm/components/Controls/single-controls/EditControl.js +21 -17
- package/build/esm/components/Controls/single-controls/EditControl.js.map +2 -2
- package/build/esm/components/Controls/single-controls/FullScreenControl.js +3 -2
- package/build/esm/components/Controls/single-controls/FullScreenControl.js.map +1 -1
- package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
- package/build/esm/components/Controls/single-controls/LangControl/LangControl.d.ts +1 -2
- package/build/esm/components/Controls/single-controls/LangControl/LangControl.js +26 -23
- package/build/esm/components/Controls/single-controls/LangControl/LangControl.js.map +2 -2
- package/build/esm/components/Controls/single-controls/PdfControl.d.ts +1 -2
- package/build/esm/components/Controls/single-controls/PdfControl.js +4 -3
- package/build/esm/components/Controls/single-controls/PdfControl.js.map +2 -2
- package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
- package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.d.ts +1 -2
- package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.js +43 -36
- package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.js.map +2 -2
- package/build/esm/components/Controls/single-controls/SinglePageControl.d.ts +1 -2
- package/build/esm/components/Controls/single-controls/SinglePageControl.js +4 -3
- package/build/esm/components/Controls/single-controls/SinglePageControl.js.map +2 -2
- package/build/esm/components/DocContentPage/DocContentPage.js +12 -12
- package/build/esm/components/DocContentPage/DocContentPage.js.map +1 -1
- package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
- package/build/esm/components/DocLayout/DocLayout.d.ts +2 -1
- package/build/esm/components/DocLayout/DocLayout.js +26 -15
- package/build/esm/components/DocLayout/DocLayout.js.map +2 -2
- package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
- package/build/esm/components/DocLeadingPage/DocLeadingPage.js +32 -15
- package/build/esm/components/DocLeadingPage/DocLeadingPage.js.map +1 -1
- package/build/esm/components/DocPage/DocPage.css.map +1 -1
- package/build/esm/components/DocPage/DocPage.js +129 -92
- package/build/esm/components/DocPage/DocPage.js.map +1 -1
- package/build/esm/components/DocPage/components/MarkdownButton/MarkdownButton.js +6 -2
- package/build/esm/components/DocPage/components/MarkdownButton/MarkdownButton.js.map +1 -1
- package/build/esm/components/DocPage/components/RenderBody/RenderBody.js +3 -2
- package/build/esm/components/DocPage/components/RenderBody/RenderBody.js.map +2 -2
- package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
- package/build/esm/components/DocPageTitle/DocPageTitle.js +6 -3
- package/build/esm/components/DocPageTitle/DocPageTitle.js.map +1 -1
- package/build/esm/components/ErrorBoundary/ErrorBoundary.d.ts +2 -2
- package/build/esm/components/ErrorBoundary/ErrorBoundary.js +3 -6
- package/build/esm/components/ErrorBoundary/ErrorBoundary.js.map +2 -2
- package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
- package/build/esm/components/ErrorPage/ErrorPage.js +36 -18
- package/build/esm/components/ErrorPage/ErrorPage.js.map +1 -1
- package/build/esm/components/Feedback/Feedback.css.map +1 -1
- package/build/esm/components/Feedback/Feedback.js +96 -81
- package/build/esm/components/Feedback/Feedback.js.map +1 -1
- package/build/esm/components/Feedback/controls/DislikeControl.d.ts +1 -2
- package/build/esm/components/Feedback/controls/DislikeControl.js +7 -3
- package/build/esm/components/Feedback/controls/DislikeControl.js.map +2 -2
- package/build/esm/components/Feedback/controls/FeedbackControl.d.ts +1 -2
- package/build/esm/components/Feedback/controls/FeedbackControl.js +10 -7
- package/build/esm/components/Feedback/controls/FeedbackControl.js.map +2 -2
- package/build/esm/components/Feedback/controls/FeedbackFormPopup.d.ts +1 -1
- package/build/esm/components/Feedback/controls/FeedbackFormPopup.js +21 -13
- package/build/esm/components/Feedback/controls/FeedbackFormPopup.js.map +2 -2
- package/build/esm/components/Feedback/controls/LikeControl.d.ts +2 -3
- package/build/esm/components/Feedback/controls/LikeControl.js +7 -3
- package/build/esm/components/Feedback/controls/LikeControl.js.map +2 -2
- package/build/esm/components/Feedback/controls/SuccessPopup.d.ts +2 -3
- package/build/esm/components/Feedback/controls/SuccessPopup.js +11 -7
- package/build/esm/components/Feedback/controls/SuccessPopup.js.map +2 -2
- package/build/esm/components/Gallery/Gallery.css.map +1 -1
- package/build/esm/components/Gallery/Gallery.js +2 -2
- package/build/esm/components/Gallery/Gallery.js.map +1 -1
- package/build/esm/components/Gallery/utils.js +27 -12
- package/build/esm/components/Gallery/utils.js.map +2 -2
- package/build/esm/components/Mark/Mark.css.map +1 -1
- package/build/esm/components/Mark/Mark.js +2 -2
- package/build/esm/components/Mark/Mark.js.map +1 -1
- package/build/esm/components/Meta/Meta.d.ts +1 -1
- package/build/esm/components/Meta/Meta.js +27 -21
- package/build/esm/components/Meta/Meta.js.map +2 -2
- package/build/esm/components/MiniToc/MiniToc.css.map +1 -1
- package/build/esm/components/MiniToc/MiniToc.js +33 -23
- package/build/esm/components/MiniToc/MiniToc.js.map +2 -2
- package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControl/MobileControl.js +33 -24
- package/build/esm/components/MobileControls/MobileControl/MobileControl.js.map +1 -1
- package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.d.ts +1 -2
- package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.js +11 -8
- package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.js.map +2 -2
- package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControls.d.ts +1 -2
- package/build/esm/components/MobileControls/MobileControls.js +8 -4
- package/build/esm/components/MobileControls/MobileControls.js.map +2 -2
- package/build/esm/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
- package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js +23 -14
- package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js.map +2 -2
- package/build/esm/components/Notification/Notification.css.map +1 -1
- package/build/esm/components/Notification/Notification.js +20 -15
- package/build/esm/components/Notification/Notification.js.map +1 -1
- package/build/esm/components/OutsideClick/OutsideClick.d.ts +3 -3
- package/build/esm/components/OutsideClick/OutsideClick.js +5 -8
- package/build/esm/components/OutsideClick/OutsideClick.js.map +2 -2
- package/build/esm/components/Paginator/Paginator.css.map +1 -1
- package/build/esm/components/Paginator/Paginator.d.ts +1 -2
- package/build/esm/components/Paginator/Paginator.js +10 -10
- package/build/esm/components/Paginator/Paginator.js.map +2 -2
- package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
- package/build/esm/components/SearchBar/SearchBar.d.ts +1 -2
- package/build/esm/components/SearchBar/SearchBar.js +43 -24
- package/build/esm/components/SearchBar/SearchBar.js.map +2 -2
- package/build/esm/components/SearchBar/hooks.js +1 -1
- package/build/esm/components/SearchBar/hooks.js.map +2 -2
- package/build/esm/components/SearchBar/withHighlightedSearchWords.js +6 -5
- package/build/esm/components/SearchBar/withHighlightedSearchWords.js.map +1 -1
- package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
- package/build/esm/components/SearchItem/SearchItem.d.ts +1 -2
- package/build/esm/components/SearchItem/SearchItem.js +45 -36
- package/build/esm/components/SearchItem/SearchItem.js.map +2 -2
- package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
- package/build/esm/components/SearchPage/SearchPage.js +87 -73
- package/build/esm/components/SearchPage/SearchPage.js.map +1 -1
- package/build/esm/components/SearchSuggest/AiIcon.d.ts +1 -2
- package/build/esm/components/SearchSuggest/AiIcon.js +2 -2
- package/build/esm/components/SearchSuggest/AiIcon.js.map +2 -2
- package/build/esm/components/SearchSuggest/SearchInput.d.ts +1 -1
- package/build/esm/components/SearchSuggest/SearchInput.js +3 -2
- package/build/esm/components/SearchSuggest/SearchInput.js.map +1 -1
- package/build/esm/components/SearchSuggest/Suggest.d.ts +2 -3
- package/build/esm/components/SearchSuggest/Suggest.js +11 -7
- package/build/esm/components/SearchSuggest/Suggest.js.map +2 -2
- package/build/esm/components/SearchSuggest/SuggestItem.js +26 -13
- package/build/esm/components/SearchSuggest/SuggestItem.js.map +1 -1
- package/build/esm/components/SearchSuggest/index.css.map +1 -1
- package/build/esm/components/SearchSuggest/index.js +58 -51
- package/build/esm/components/SearchSuggest/index.js.map +1 -1
- package/build/esm/components/SearchSuggest/useAiAction.js +4 -3
- package/build/esm/components/SearchSuggest/useAiAction.js.map +2 -2
- package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
- package/build/esm/components/ShareButton/ShareButton.js +2 -2
- package/build/esm/components/ShareButton/ShareButton.js.map +1 -1
- package/build/esm/components/SocialSharingMeta/SocialSharingMeta.d.ts +2 -2
- package/build/esm/components/SocialSharingMeta/SocialSharingMeta.js +11 -4
- package/build/esm/components/SocialSharingMeta/SocialSharingMeta.js.map +2 -2
- package/build/esm/components/StageLabel/StageLabel.js +2 -2
- package/build/esm/components/StageLabel/StageLabel.js.map +1 -1
- package/build/esm/components/SubNavigation/SubNavigation.css.map +1 -1
- package/build/esm/components/SubNavigation/SubNavigation.js +45 -37
- package/build/esm/components/SubNavigation/SubNavigation.js.map +1 -1
- package/build/esm/components/SubNavigation/hooks/useHeadingIntersectionObserver.js +1 -1
- package/build/esm/components/SubNavigation/hooks/useHeadingIntersectionObserver.js.map +2 -2
- package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
- package/build/esm/components/Subscribe/Subscribe.js +43 -33
- package/build/esm/components/Subscribe/Subscribe.js.map +1 -1
- package/build/esm/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.d.ts +1 -1
- package/build/esm/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js +9 -6
- package/build/esm/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js.map +2 -2
- package/build/esm/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.d.ts +1 -1
- package/build/esm/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js +37 -27
- package/build/esm/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +2 -2
- package/build/esm/components/Subscribe/utils.d.ts +1 -1
- package/build/esm/components/Subscribe/utils.js +1 -1
- package/build/esm/components/Subscribe/utils.js.map +1 -1
- package/build/esm/components/Text/Text.js +4 -3
- package/build/esm/components/Text/Text.js.map +1 -1
- package/build/esm/components/Toc/Toc.css.map +1 -1
- package/build/esm/components/Toc/Toc.js +93 -78
- package/build/esm/components/Toc/Toc.js.map +2 -2
- package/build/esm/components/Toc/TocItemRegistry.js +3 -8
- package/build/esm/components/Toc/TocItemRegistry.js.map +1 -1
- package/build/esm/components/TocItem/TocItem.css.map +1 -1
- package/build/esm/components/TocItem/TocItem.js +27 -16
- package/build/esm/components/TocItem/TocItem.js.map +1 -1
- package/build/esm/components/TocLable/TocLabel.css.map +1 -1
- package/build/esm/components/TocLable/TocLabel.js +7 -7
- package/build/esm/components/TocLable/TocLabel.js.map +2 -2
- package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
- package/build/esm/components/TocNavPanel/TocNavPanel.js +13 -2
- package/build/esm/components/TocNavPanel/TocNavPanel.js.map +1 -1
- package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
- package/build/esm/components/ToggleArrow/ToggleArrow.js +2 -2
- package/build/esm/components/ToggleArrow/ToggleArrow.js.map +1 -1
- package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
- package/build/esm/components/UpdatedAtDate/UpdatedAtDate.js +7 -2
- package/build/esm/components/UpdatedAtDate/UpdatedAtDate.js.map +1 -1
- package/build/esm/components/VersionsSelect/VersionsSelect.js +3 -2
- package/build/esm/components/VersionsSelect/VersionsSelect.js.map +1 -1
- package/build/esm/components/Widgets/Widgets.css.map +1 -1
- package/build/esm/components/navigation/CustomFooter/CustomFooter.css.map +1 -1
- package/build/esm/components/navigation/CustomFooter/CustomFooter.js +6 -2
- package/build/esm/components/navigation/CustomFooter/CustomFooter.js.map +1 -1
- package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
- package/build/esm/components/navigation/CustomNavigation/CustomNavigation.js +27 -23
- package/build/esm/components/navigation/CustomNavigation/CustomNavigation.js.map +1 -1
- package/build/esm/components/navigation/DropdownContent/Column/Column.css.map +1 -1
- package/build/esm/components/navigation/DropdownContent/Column/Column.js +2 -2
- package/build/esm/components/navigation/DropdownContent/Column/Column.js.map +2 -2
- package/build/esm/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
- package/build/esm/components/navigation/DropdownContent/DropdownContent.js +4 -4
- package/build/esm/components/navigation/DropdownContent/DropdownContent.js.map +2 -2
- package/build/esm/components/navigation/DropdownContent/List/List.js +5 -5
- package/build/esm/components/navigation/DropdownContent/List/List.js.map +2 -2
- package/build/esm/components/navigation/DropdownContent/Section/Section.css.map +1 -1
- package/build/esm/components/navigation/DropdownContent/Section/Section.js +13 -10
- package/build/esm/components/navigation/DropdownContent/Section/Section.js.map +2 -2
- package/build/esm/components/navigation/Label/Label.css.map +1 -1
- package/build/esm/components/navigation/Label/Label.js +2 -2
- package/build/esm/components/navigation/Label/Label.js.map +2 -2
- package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
- package/build/esm/components/navigation/MobileDropdown/MobileDropdown.js +16 -9
- package/build/esm/components/navigation/MobileDropdown/MobileDropdown.js.map +1 -1
- package/build/esm/components/navigation/NavigationDropdown/ContentWrapper.js +6 -2
- package/build/esm/components/navigation/NavigationDropdown/ContentWrapper.js.map +2 -2
- package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
- package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.js +40 -34
- package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.js.map +2 -2
- package/build/esm/components/navigation/NavigationDropdown/Popup/Popup.js +6 -5
- package/build/esm/components/navigation/NavigationDropdown/Popup/Popup.js.map +2 -2
- package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
- package/build/esm/components/navigation/Sidebar/Sidebar.js +6 -5
- package/build/esm/components/navigation/Sidebar/Sidebar.js.map +1 -1
- package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
- package/build/esm/components/navigation/SidebarContent/SidebarContent.js +47 -35
- package/build/esm/components/navigation/SidebarContent/SidebarContent.js.map +1 -1
- package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
- package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.js +15 -11
- package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.js.map +1 -1
- package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
- package/build/esm/components/navigation/ToMainMenu/ToMainMenu.js +6 -2
- package/build/esm/components/navigation/ToMainMenu/ToMainMenu.js.map +1 -1
- package/build/esm/config/i18n.js +4 -4
- package/build/esm/config/i18n.js.map +2 -2
- package/build/esm/constants.d.ts +14 -0
- package/build/esm/constants.js +16 -0
- package/build/esm/constants.js.map +3 -3
- package/build/esm/contexts/InterfaceContext.js +3 -2
- package/build/esm/contexts/InterfaceContext.js.map +1 -1
- package/build/esm/hoc/_withContext.d.ts +1 -6
- package/build/esm/hoc/_withContext.js +4 -4
- package/build/esm/hoc/_withContext.js.map +1 -1
- package/build/esm/hoc/withLang.d.ts +1 -6
- package/build/esm/hoc/withRouter.d.ts +1 -6
- package/build/esm/hooks/index.d.ts +0 -1
- package/build/esm/hooks/index.js +0 -1
- package/build/esm/hooks/index.js.map +2 -2
- package/build/esm/hooks/useTimer.js +1 -1
- package/build/esm/hooks/useTimer.js.map +2 -2
- package/build/esm/hooks/useVirtualElementRef.js +2 -2
- package/build/esm/hooks/useVirtualElementRef.js.map +2 -2
- package/build/esm/i18n/ar.js +188 -0
- package/build/esm/i18n/ar.js.map +7 -0
- package/build/esm/i18n/bg.js +187 -0
- package/build/esm/i18n/bg.js.map +7 -0
- package/build/esm/i18n/cs.js +188 -0
- package/build/esm/i18n/cs.js.map +7 -0
- package/build/esm/i18n/el.js +188 -0
- package/build/esm/i18n/el.js.map +7 -0
- package/build/esm/i18n/en.js +188 -0
- package/build/esm/i18n/en.js.map +7 -0
- package/build/esm/i18n/es.js +188 -0
- package/build/esm/i18n/es.js.map +7 -0
- package/build/esm/i18n/et.js +188 -0
- package/build/esm/i18n/et.js.map +7 -0
- package/build/esm/i18n/fr.js +188 -0
- package/build/esm/i18n/fr.js.map +7 -0
- package/build/esm/i18n/he.js +188 -0
- package/build/esm/i18n/he.js.map +7 -0
- package/build/esm/i18n/index.js +32 -899
- package/build/esm/i18n/index.js.map +3 -3
- package/build/esm/i18n/kk.js +188 -0
- package/build/esm/i18n/kk.js.map +7 -0
- package/build/esm/i18n/pt.js +188 -0
- package/build/esm/i18n/pt.js.map +7 -0
- package/build/esm/i18n/ru.js +188 -0
- package/build/esm/i18n/ru.js.map +7 -0
- package/build/esm/i18n/tr.js +188 -0
- package/build/esm/i18n/tr.js.map +7 -0
- package/build/esm/i18n/uz.js +188 -0
- package/build/esm/i18n/uz.js.map +7 -0
- package/build/esm/i18n/zh-tw.js +188 -0
- package/build/esm/i18n/zh-tw.js.map +7 -0
- package/build/esm/i18n/zh.js +188 -0
- package/build/esm/i18n/zh.js.map +7 -0
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.js.map +2 -2
- package/build/esm/react-compat.d.ts +15 -0
- package/build/esm/react-compat.js +3 -0
- package/build/esm/react-compat.js.map +7 -0
- package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.js +1 -7
- package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.js.map +1 -1
- package/build/esm/shared/libs/analytics/analytics.js +1 -6
- package/build/esm/shared/libs/analytics/analytics.js.map +1 -1
- package/build/esm/utils/index.d.ts +6 -2
- package/build/esm/utils/index.js +14 -2
- package/build/esm/utils/index.js.map +2 -2
- package/build/esm/utils/sanitize.js +2 -2
- package/build/esm/utils/sanitize.js.map +2 -2
- package/build/index.css.map +1 -1
- package/build/themes/common/index.css.map +1 -1
- package/package.json +23 -23
- package/build/cjs/components/ContributorAvatars/__tests__/ContributorAvatars.spec.d.ts +0 -1
- package/build/cjs/components/Control/__tests__/Control.spec.d.ts +0 -1
- package/build/cjs/components/Controls/__tests__/Controls.spec.d.ts +0 -1
- package/build/cjs/components/DocLeadingPage/__tests__/DocLeadingPage.spec.d.ts +0 -1
- package/build/cjs/components/DocPage/__tests__/DocPage.spec.d.ts +0 -1
- package/build/cjs/components/ErrorPage/__tests__/ErrorPage.spec.d.ts +0 -1
- package/build/cjs/components/Feedback/__tests__/Feedback.spec.d.ts +0 -1
- package/build/cjs/components/Feedback/__tests__/FeedbackControls.spec.d.ts +0 -1
- package/build/cjs/components/MiniToc/__tests__/MiniToc.spec.d.ts +0 -1
- package/build/cjs/components/SearchSuggest/__tests__/SearchSuggest.spec.d.ts +0 -1
- package/build/cjs/components/SearchSuggest/__tests__/SearchSuggestWithAi.spec.d.ts +0 -1
- package/build/cjs/components/Subscribe/__tests__/Subscribe.spec.d.ts +0 -1
- package/build/cjs/components/Toc/__tests__/Toc.spec.d.ts +0 -1
- package/build/cjs/components/TocLable/__tests__/TocLabel.spec.d.ts +0 -1
- package/build/cjs/components/navigation/CustomFooter/__tests__/CustomFooter.spec.d.ts +0 -1
- package/build/cjs/hooks/usePopper.d.ts +0 -33
- package/build/cjs/hooks/usePopper.js +0 -93
- package/build/cjs/hooks/usePopper.js.map +0 -7
- package/build/esm/components/ContributorAvatars/__tests__/ContributorAvatars.spec.d.ts +0 -1
- package/build/esm/components/Control/__tests__/Control.spec.d.ts +0 -1
- package/build/esm/components/Controls/__tests__/Controls.spec.d.ts +0 -1
- package/build/esm/components/DocLeadingPage/__tests__/DocLeadingPage.spec.d.ts +0 -1
- package/build/esm/components/DocPage/__tests__/DocPage.spec.d.ts +0 -1
- package/build/esm/components/ErrorPage/__tests__/ErrorPage.spec.d.ts +0 -1
- package/build/esm/components/Feedback/__tests__/Feedback.spec.d.ts +0 -1
- package/build/esm/components/Feedback/__tests__/FeedbackControls.spec.d.ts +0 -1
- package/build/esm/components/MiniToc/__tests__/MiniToc.spec.d.ts +0 -1
- package/build/esm/components/SearchSuggest/__tests__/SearchSuggest.spec.d.ts +0 -1
- package/build/esm/components/SearchSuggest/__tests__/SearchSuggestWithAi.spec.d.ts +0 -1
- package/build/esm/components/Subscribe/__tests__/Subscribe.spec.d.ts +0 -1
- package/build/esm/components/Toc/__tests__/Toc.spec.d.ts +0 -1
- package/build/esm/components/TocLable/__tests__/TocLabel.spec.d.ts +0 -1
- package/build/esm/components/navigation/CustomFooter/__tests__/CustomFooter.spec.d.ts +0 -1
- package/build/esm/hooks/usePopper.d.ts +0 -33
- package/build/esm/hooks/usePopper.js +0 -62
- package/build/esm/hooks/usePopper.js.map +0 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/SearchBar/SearchBar.scss", "../../../../src/components/SearchBar/%3Cinput css
|
|
3
|
+
"sources": ["../../../../src/components/SearchBar/SearchBar.scss", "../../../../src/components/SearchBar/%3Cinput css DLZtNB%3E"],
|
|
4
4
|
"sourcesContent": ["@use 'sass:map';\n@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-bar {\n width: 100%;\n height: 100%;\n border-radius: 5px;\n box-sizing: border-box;\n box-shadow: 0px 3px 10px var(--g-color-base-generic-accent);\n padding: 11px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n\n &__search-query-label {\n color: var(--g-color-text-secondary);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') + 1) {\n display: none;\n }\n }\n\n &__search-query {\n max-width: 400px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') + 1) {\n display: none;\n }\n }\n\n &__left {\n width: 90%;\n display: flex;\n align-items: center;\n }\n\n &__navigation {\n display: flex;\n align-items: center;\n margin-right: 11px;\n }\n\n &__next-arrow {\n transform: rotate(-180deg);\n }\n\n &__counter {\n margin: 0 4px;\n }\n}\n\n$hl-class: '.dc-search-highlighted';\n\n#{$hl-class} {\n background: var(--dc-text-highlight);\n\n &_selected {\n background: var(--dc-text-highlight-selected);\n }\n}\n", ".dc-search-bar {\n width: 100%;\n height: 100%;\n border-radius: 5px;\n box-sizing: border-box;\n box-shadow: 0px 3px 10px var(--g-color-base-generic-accent);\n padding: 11px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n}\n.dc-search-bar__search-query-label {\n color: var(--g-color-text-secondary);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n@media (max-width: 770px) {\n .dc-search-bar__search-query-label {\n display: none;\n }\n}\n.dc-search-bar__search-query {\n max-width: 400px;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n}\n@media (max-width: 770px) {\n .dc-search-bar__search-query {\n display: none;\n }\n}\n.dc-search-bar__left {\n width: 90%;\n display: flex;\n align-items: center;\n}\n.dc-search-bar__navigation {\n display: flex;\n align-items: center;\n margin-right: 11px;\n}\n.dc-search-bar__next-arrow {\n transform: rotate(-180deg);\n}\n.dc-search-bar__counter {\n margin: 0 4px;\n}\n\n.dc-search-highlighted {\n background: var(--dc-text-highlight);\n}\n.dc-search-highlighted_selected {\n background: var(--dc-text-highlight-selected);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaEJhciIsInNvdXJjZXMiOlsiU2VhcmNoQmFyLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFOSjtJQU9ROzs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBTko7SUFPUTs7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOzs7QUFNUjtFQUNJOztBQUVBO0VBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcbkB1c2UgJy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuXG4uZGMtc2VhcmNoLWJhciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGJveC1zaGFkb3c6IDBweCAzcHggMTBweCB2YXIoLS1nLWNvbG9yLWJhc2UtZ2VuZXJpYy1hY2NlbnQpO1xuICAgIHBhZGRpbmc6IDExcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtbGluZS1oZWlnaHQpO1xuXG4gICAgJl9fc2VhcmNoLXF1ZXJ5LWxhYmVsIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSArIDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWFyY2gtcXVlcnkge1xuICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSArIDEpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sZWZ0IHtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19uYXZpZ2F0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxMXB4O1xuICAgIH1cblxuICAgICZfX25leHQtYXJyb3cge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICB9XG5cbiAgICAmX19jb3VudGVyIHtcbiAgICAgICAgbWFyZ2luOiAwIDRweDtcbiAgICB9XG59XG5cbiRobC1jbGFzczogJy5kYy1zZWFyY2gtaGlnaGxpZ2h0ZWQnO1xuXG4jeyRobC1jbGFzc30ge1xuICAgIGJhY2tncm91bmQ6IHZhcigtLWRjLXRleHQtaGlnaGxpZ2h0KTtcblxuICAgICZfc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kYy10ZXh0LWhpZ2hsaWdodC1zZWxlY3RlZCk7XG4gICAgfVxufVxuIl19 */"],
|
|
5
5
|
"mappings": ";AAIA,CAAA;AACI,SAAA;AACA,UAAA;AACA,iBAAA;AACA,cAAA;AACA,cAAA,IAAA,IAAA,KAAA,IAAA;AACA,WAAA;AACA,WAAA;AACA,eAAA;AACA,mBAAA;AAEA,aAAA,IAAA;AACA,eAAA,IAAA;ACJJ;ADMI,CAAA;AACI,SAAA,IAAA;AACA,eAAA;AACA,iBAAA;AACA,YAAA;ACJR;ADMQ,QAAA,WAAA;AANJ,GAAA;AAOQ,aAAA;ACHV;AACF;ADMI,CAAA;AACI,aAAA;AACA,eAAA;AACA,iBAAA;AACA,YAAA;ACJR;ADMQ,QAAA,WAAA;AANJ,GAAA;AAOQ,aAAA;ACHV;AACF;ADMI,CAAA;AACI,SAAA;AACA,WAAA;AACA,eAAA;ACJR;ADOI,CAAA;AACI,WAAA;AACA,eAAA;AACA,gBAAA;ACLR;ADQI,CAAA;AACI,aAAA,OAAA;ACNR;ADSI,CAAA;AACI,UAAA,EAAA;ACPR;ADaA,CAAA;AACI,cAAA,IAAA;ACVJ;ADYI,CAAA;AACI,cAAA,IAAA;ACVR;",
|
|
6
6
|
"names": []
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import './SearchBar.scss';
|
|
3
2
|
export interface SearchBarProps {
|
|
4
3
|
searchQuery?: string;
|
|
@@ -8,5 +7,5 @@ export interface SearchBarProps {
|
|
|
8
7
|
searchCurrentIndex?: number;
|
|
9
8
|
searchCountResults?: number;
|
|
10
9
|
}
|
|
11
|
-
declare const SearchBar:
|
|
10
|
+
declare const SearchBar: import("react").NamedExoticComponent<SearchBarProps>;
|
|
12
11
|
export default SearchBar;
|
|
@@ -16,7 +16,7 @@ var __spreadValues = (a, b2) => {
|
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
// src/components/SearchBar/SearchBar.tsx
|
|
19
|
-
import
|
|
19
|
+
import { memo } from "react";
|
|
20
20
|
import { ChevronLeft, Xmark } from "@gravity-ui/icons";
|
|
21
21
|
import block from "bem-cn-lite";
|
|
22
22
|
import { useHotkeys } from "react-hotkeys-hook";
|
|
@@ -24,6 +24,7 @@ import { useTranslation } from "../../hooks";
|
|
|
24
24
|
import { ControlSizes } from "../../models";
|
|
25
25
|
import { Control } from "../Control";
|
|
26
26
|
import "./SearchBar.css";
|
|
27
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
27
28
|
var b = block("dc-search-bar");
|
|
28
29
|
var noop = () => {
|
|
29
30
|
};
|
|
@@ -42,29 +43,47 @@ var SearchBar = memo((props) => {
|
|
|
42
43
|
const hotkeysNext = "enter";
|
|
43
44
|
useHotkeys(hotkeysPrev, onClickPrevSearch, hotkeysOptions, [onClickPrevSearch]);
|
|
44
45
|
useHotkeys(hotkeysNext, onClickNextSearch, hotkeysOptions, [onClickNextSearch]);
|
|
45
|
-
return /* @__PURE__ */
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
46
|
+
return /* @__PURE__ */ jsxs("div", { className: b(), children: [
|
|
47
|
+
/* @__PURE__ */ jsxs("div", { className: b("left"), children: [
|
|
48
|
+
/* @__PURE__ */ jsxs("div", { className: b("navigation"), children: [
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
Control,
|
|
51
|
+
{
|
|
52
|
+
onClick: onClickPrevSearch,
|
|
53
|
+
tooltipText: `${t("prev")} (${hotkeysPrev})`,
|
|
54
|
+
icon: ChevronLeft
|
|
55
|
+
}
|
|
56
|
+
),
|
|
57
|
+
/* @__PURE__ */ jsxs("span", { className: b("counter"), children: [
|
|
58
|
+
searchCurrentIndex,
|
|
59
|
+
"/",
|
|
60
|
+
searchCountResults
|
|
61
|
+
] }),
|
|
62
|
+
/* @__PURE__ */ jsx(
|
|
63
|
+
Control,
|
|
64
|
+
{
|
|
65
|
+
onClick: onClickNextSearch,
|
|
66
|
+
tooltipText: `${t("next")} (${hotkeysNext})`,
|
|
67
|
+
icon: (args) => /* @__PURE__ */ jsx(ChevronLeft, __spreadValues({ className: b("next-arrow") }, args))
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
] }),
|
|
71
|
+
/* @__PURE__ */ jsxs("span", { className: b("search-query-label"), children: [
|
|
72
|
+
t("search-query-label"),
|
|
73
|
+
":\xA0"
|
|
74
|
+
] }),
|
|
75
|
+
/* @__PURE__ */ jsx("span", { className: b("search-query"), children: searchQuery })
|
|
76
|
+
] }),
|
|
77
|
+
/* @__PURE__ */ jsx("div", { className: b("right"), children: /* @__PURE__ */ jsx(
|
|
78
|
+
Control,
|
|
79
|
+
{
|
|
80
|
+
size: ControlSizes.M,
|
|
81
|
+
onClick: onCloseSearchBar,
|
|
82
|
+
tooltipText: t("close"),
|
|
83
|
+
icon: Xmark
|
|
84
|
+
}
|
|
85
|
+
) })
|
|
86
|
+
] });
|
|
68
87
|
});
|
|
69
88
|
SearchBar.displayName = "DCSearchBar";
|
|
70
89
|
var SearchBar_default = SearchBar;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/SearchBar/SearchBar.tsx"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA,
|
|
4
|
+
"sourcesContent": ["import {memo} from 'react';\nimport {ChevronLeft, Xmark} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\nimport {useHotkeys} from 'react-hotkeys-hook';\n\nimport {useTranslation} from '../../hooks';\nimport {ControlSizes} from '../../models';\nimport {Control} from '../Control';\n\nimport './SearchBar.scss';\n\nconst b = block('dc-search-bar');\n\nexport interface SearchBarProps {\n searchQuery?: string;\n onClickPrevSearch?: () => void;\n onClickNextSearch?: () => void;\n onCloseSearchBar?: () => void;\n searchCurrentIndex?: number;\n searchCountResults?: number;\n}\n\nconst noop = () => {};\n\nconst SearchBar = memo<SearchBarProps>((props) => {\n const {t} = useTranslation('search-bar');\n const {\n searchQuery,\n searchCurrentIndex,\n searchCountResults,\n onClickPrevSearch = noop,\n onClickNextSearch = noop,\n onCloseSearchBar = noop,\n } = props;\n\n const hotkeysOptions = {enabled: true, preventDefault: true};\n const hotkeysPrev = '\u21E7+enter';\n const hotkeysNext = 'enter';\n useHotkeys(hotkeysPrev, onClickPrevSearch, hotkeysOptions, [onClickPrevSearch]);\n useHotkeys(hotkeysNext, onClickNextSearch, hotkeysOptions, [onClickNextSearch]);\n\n return (\n <div className={b()}>\n <div className={b('left')}>\n <div className={b('navigation')}>\n <Control\n onClick={onClickPrevSearch}\n tooltipText={`${t('prev')} (${hotkeysPrev})`}\n icon={ChevronLeft}\n />\n <span className={b('counter')}>\n {searchCurrentIndex}/{searchCountResults}\n </span>\n <Control\n onClick={onClickNextSearch}\n tooltipText={`${t('next')} (${hotkeysNext})`}\n icon={(args) => <ChevronLeft className={b('next-arrow')} {...args} />}\n />\n </div>\n <span className={b('search-query-label')}>{t('search-query-label')}: </span>\n <span className={b('search-query')}>{searchQuery}</span>\n </div>\n <div className={b('right')}>\n <Control\n size={ControlSizes.M}\n onClick={onCloseSearchBar}\n tooltipText={t('close')}\n icon={Xmark}\n />\n </div>\n </div>\n );\n});\n\nSearchBar.displayName = 'DCSearchBar';\n\nexport default SearchBar;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA,SAAQ,YAAW;AACnB,SAAQ,aAAa,aAAY;AACjC,OAAO,WAAW;AAClB,SAAQ,kBAAiB;AAEzB,SAAQ,sBAAqB;AAC7B,SAAQ,oBAAmB;AAC3B,SAAQ,eAAc;AAEtB,OAAO;AAoCa,cAKA,YALA;AAlCpB,IAAM,IAAI,MAAM,eAAe;AAW/B,IAAM,OAAO,MAAM;AAAC;AAEpB,IAAM,YAAY,KAAqB,CAAC,UAAU;AAC9C,QAAM,EAAC,EAAC,IAAI,eAAe,YAAY;AACvC,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,oBAAoB;AAAA,IACpB,mBAAmB;AAAA,EACvB,IAAI;AAEJ,QAAM,iBAAiB,EAAC,SAAS,MAAM,gBAAgB,KAAI;AAC3D,QAAM,cAAc;AACpB,QAAM,cAAc;AACpB,aAAW,aAAa,mBAAmB,gBAAgB,CAAC,iBAAiB,CAAC;AAC9E,aAAW,aAAa,mBAAmB,gBAAgB,CAAC,iBAAiB,CAAC;AAE9E,SACI,qBAAC,SAAI,WAAW,EAAE,GACd;AAAA,yBAAC,SAAI,WAAW,EAAE,MAAM,GACpB;AAAA,2BAAC,SAAI,WAAW,EAAE,YAAY,GAC1B;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,SAAS;AAAA,YACT,aAAa,GAAG,EAAE,MAAM,CAAC,KAAK,WAAW;AAAA,YACzC,MAAM;AAAA;AAAA,QACV;AAAA,QACA,qBAAC,UAAK,WAAW,EAAE,SAAS,GACvB;AAAA;AAAA,UAAmB;AAAA,UAAE;AAAA,WAC1B;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACG,SAAS;AAAA,YACT,aAAa,GAAG,EAAE,MAAM,CAAC,KAAK,WAAW;AAAA,YACzC,MAAM,CAAC,SAAS,oBAAC,8BAAY,WAAW,EAAE,YAAY,KAAO,KAAM;AAAA;AAAA,QACvE;AAAA,SACJ;AAAA,MACA,qBAAC,UAAK,WAAW,EAAE,oBAAoB,GAAI;AAAA,UAAE,oBAAoB;AAAA,QAAE;AAAA,SAAO;AAAA,MAC1E,oBAAC,UAAK,WAAW,EAAE,cAAc,GAAI,uBAAY;AAAA,OACrD;AAAA,IACA,oBAAC,SAAI,WAAW,EAAE,OAAO,GACrB;AAAA,MAAC;AAAA;AAAA,QACG,MAAM,aAAa;AAAA,QACnB,SAAS;AAAA,QACT,aAAa,EAAE,OAAO;AAAA,QACtB,MAAM;AAAA;AAAA,IACV,GACJ;AAAA,KACJ;AAER,CAAC;AAED,UAAU,cAAc;AAExB,IAAO,oBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -224,7 +224,7 @@ function useCurrentWordSelectionSyncScrollEffect({
|
|
|
224
224
|
headerHeight,
|
|
225
225
|
setSyncOnScroll
|
|
226
226
|
}) {
|
|
227
|
-
const scrollEndTimer = useRef();
|
|
227
|
+
const scrollEndTimer = useRef(void 0);
|
|
228
228
|
const handleScroll = useCallback(() => {
|
|
229
229
|
if (scrollEndTimer.current) {
|
|
230
230
|
clearTimeout(scrollEndTimer.current);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/SearchBar/hooks.ts"],
|
|
4
|
-
"sourcesContent": ["import type {SyntheticEvent} from 'react';\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport throttle from 'lodash/throttle';\n\nimport {CLASSNAME, CLASSNAME_SELECTED, HIGHLIGHT_OPTIONS} from './constants';\nimport {getHighlightedItemIndexInView, highlight, scrollToItem} from './utils';\n\ntype UseHighlightedSearchWords = {\n html: string;\n searchWords: string[];\n showSearchBar: boolean;\n onNotFoundWords?: () => void;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nexport function useHighlightedSearchWords({\n html,\n searchWords,\n showSearchBar,\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n onNotFoundWords,\n}: UseHighlightedSearchWords) {\n const highlightedHtml = useHighlightedHTMLString(html, searchWords, showSearchBar);\n\n const {wasChangedDOM, onContentMutation, onContentLoaded} = useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n });\n\n const highlightedDOMElements = useHighlightedDOMElements(\n highlightedHtml,\n wasChangedDOM,\n showSearchBar,\n );\n\n const searchBarIsVisible = useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n });\n\n useNoSearchWordsFoundEffect({highlightedDOMElements, showSearchBar, onNotFoundWords});\n\n return {\n highlightedHtml,\n highlightedDOMElements,\n searchBarIsVisible,\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\nfunction useHighlightedDOMElements(\n highlightedHtml: string,\n wasChangedDOM: boolean,\n showSearchBar: boolean,\n) {\n const cachedHighlightedDOMElements = useRef<Element[]>([] as Element[]);\n\n useEffect(() => {\n cachedHighlightedDOMElements.current = [];\n }, [highlightedHtml]);\n\n useEffect(() => {\n if (wasChangedDOM) {\n cachedHighlightedDOMElements.current = [];\n }\n }, [wasChangedDOM]);\n\n if (cachedHighlightedDOMElements.current.length) {\n return cachedHighlightedDOMElements.current;\n }\n\n if (!showSearchBar || typeof document === 'undefined') {\n return [];\n }\n\n const elements = Array.from(document.querySelectorAll(`.${CLASSNAME}`));\n cachedHighlightedDOMElements.current = elements;\n\n return cachedHighlightedDOMElements.current;\n}\n\n/* Try wrapping the search words in an html string by span elements with a highlight class */\nfunction useHighlightedHTMLString(html: string, searchWords: string[], showSearchBar: boolean) {\n const [highlightedHtml, setHighlightedHtml] = useState(html);\n\n useEffect(() => {\n if (!searchWords.length || !showSearchBar) {\n setHighlightedHtml(html);\n return;\n }\n\n const highlightedResult = highlight({\n html,\n keywords: searchWords,\n options: HIGHLIGHT_OPTIONS,\n });\n\n if (highlightedResult.includes(CLASSNAME)) {\n setHighlightedHtml(highlightedResult);\n } else {\n setHighlightedHtml(html);\n }\n }, [html, searchWords, showSearchBar]);\n\n return highlightedHtml;\n}\n\ntype UseSearchBarIsVisible = {\n showSearchBar: boolean;\n searchWords: string[];\n html: string;\n highlightedHtml: string;\n};\n\nfunction useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n}: UseSearchBarIsVisible) {\n const [searchBarIsVisible, setSearchBarIsVisible] = useState(showSearchBar);\n\n useEffect(() => {\n setSearchBarIsVisible(\n showSearchBar && Boolean(searchWords && searchWords.length) && highlightedHtml !== html,\n );\n }, [showSearchBar, searchWords, highlightedHtml, html]);\n\n return searchBarIsVisible;\n}\n\ntype UseCallbackDOMChange = {\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nfunction useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n}: UseCallbackDOMChange) {\n const [wasChangedDOM, setWasChangedDOM] = useState(false);\n\n useEffect(() => {\n if (wasChangedDOM) {\n setWasChangedDOM(false);\n }\n }, [wasChangedDOM]);\n\n /* Callback for dangerouslySetInnerHTML when inserting content */\n const onContentMutation = useCallback(() => {\n if (_onContentMutation) {\n _onContentMutation();\n }\n\n setWasChangedDOM(true);\n }, [_onContentMutation]);\n\n /* Callback for loading resources after inserting content */\n const onContentLoaded = useCallback(() => {\n if (_onContentLoaded) {\n _onContentLoaded();\n }\n\n setWasChangedDOM(true);\n }, [_onContentLoaded]);\n\n return {\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\ntype UseNoSearchWordsFoundEffect = {\n showSearchBar: boolean;\n highlightedDOMElements: Element[];\n onNotFoundWords?: () => void;\n};\n\nexport function useNoSearchWordsFoundEffect({\n showSearchBar,\n highlightedDOMElements,\n onNotFoundWords,\n}: UseNoSearchWordsFoundEffect) {\n useEffect(() => {\n if (!onNotFoundWords) {\n return;\n }\n\n if (showSearchBar && !highlightedDOMElements.length) {\n onNotFoundWords();\n }\n }, [highlightedDOMElements, showSearchBar, onNotFoundWords]);\n}\n\ntype UseSearchBarNavigation = {\n highlightedDOMElements: Element[];\n stopSyncOnScroll: () => void;\n headerHeight: number;\n hash?: string;\n};\n\nexport function useSearchBarNavigation({\n highlightedDOMElements,\n stopSyncOnScroll,\n headerHeight,\n hash,\n}: UseSearchBarNavigation) {\n const [searchCurrentIndex, setSearchCurrentIndex] = useState(1);\n const [searchCountResults, setSearchCountResults] = useState(1);\n\n useEffect(() => {\n const startIndex =\n getHighlightedItemIndexInView({highlightedDOMElements, headerHeight, hash}) || 1;\n\n setSearchCurrentIndex(startIndex);\n setSearchCountResults(highlightedDOMElements.length || 1);\n }, [highlightedDOMElements, headerHeight, hash]);\n\n const onClickNextSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex + 1;\n if (newIndex > highlightedDOMElements.length) {\n newIndex = 1;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n const onClickPrevSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex - 1;\n if (newIndex < 1) {\n newIndex = highlightedDOMElements.length;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n return {\n searchCurrentIndex,\n setSearchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n };\n}\n\ntype UseHighlightCurrentWordEffect = {\n highlightedDOMElements: Element[];\n searchCurrentIndex: number;\n wasChangedDOM: boolean;\n syncOnScroll: boolean;\n hash?: string;\n};\n\nexport function useCurrentWordSelectionEffect({\n searchCurrentIndex,\n highlightedDOMElements,\n wasChangedDOM,\n syncOnScroll,\n hash,\n}: UseHighlightCurrentWordEffect) {\n useEffect(() => {\n try {\n if (!highlightedDOMElements || !highlightedDOMElements.length) {\n return;\n }\n\n for (let index = 0; index < highlightedDOMElements.length; index++) {\n const item = highlightedDOMElements[index];\n\n item.classList.remove(CLASSNAME_SELECTED);\n }\n\n const item = highlightedDOMElements[searchCurrentIndex - 1];\n item.classList.add(CLASSNAME_SELECTED);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }, [highlightedDOMElements, searchCurrentIndex, wasChangedDOM]);\n\n useEffect(() => {\n if (syncOnScroll) {\n return;\n }\n\n scrollToItem(highlightedDOMElements[searchCurrentIndex - 1]);\n }, [wasChangedDOM, searchCurrentIndex, highlightedDOMElements, syncOnScroll, hash]);\n}\n\ntype UseCurrentWordSelectionSyncScrollEffect = {\n highlightedDOMElements: Element[];\n searchWords: string[];\n syncOnScroll: boolean;\n searchBarIsVisible: boolean;\n setSearchCurrentIndex: (index: number) => void;\n headerHeight: number;\n setSyncOnScroll: (flag: boolean) => void;\n};\n\nexport function useCurrentWordSelectionSyncScrollEffect({\n highlightedDOMElements,\n searchWords,\n syncOnScroll,\n searchBarIsVisible,\n setSearchCurrentIndex,\n headerHeight,\n setSyncOnScroll,\n}: UseCurrentWordSelectionSyncScrollEffect) {\n const scrollEndTimer = useRef<ReturnType<typeof setTimeout>>();\n\n const handleScroll = useCallback(() => {\n if (scrollEndTimer.current) {\n clearTimeout(scrollEndTimer.current);\n }\n\n scrollEndTimer.current = setTimeout(() => {\n setSyncOnScroll(true);\n }, 50);\n\n if (!syncOnScroll || !searchBarIsVisible) {\n return;\n }\n\n const highlightedItemIndexInView = getHighlightedItemIndexInView({\n highlightedDOMElements,\n headerHeight,\n });\n\n if (isNaN(highlightedItemIndexInView as number)) {\n return;\n }\n\n setSearchCurrentIndex(highlightedItemIndexInView as number);\n }, [\n setSyncOnScroll,\n searchBarIsVisible,\n syncOnScroll,\n setSearchCurrentIndex,\n highlightedDOMElements,\n headerHeight,\n ]);\n\n const handleScrollThrottled = throttle(handleScroll, 50);\n\n useEffect(() => {\n if (searchBarIsVisible) {\n window.addEventListener('scroll', handleScrollThrottled);\n }\n return () => {\n window.removeEventListener('scroll', handleScrollThrottled);\n };\n }, [searchBarIsVisible, searchWords, handleScrollThrottled]);\n}\n"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["import type {SyntheticEvent} from 'react';\n\nimport {useCallback, useEffect, useRef, useState} from 'react';\nimport throttle from 'lodash/throttle';\n\nimport {CLASSNAME, CLASSNAME_SELECTED, HIGHLIGHT_OPTIONS} from './constants';\nimport {getHighlightedItemIndexInView, highlight, scrollToItem} from './utils';\n\ntype UseHighlightedSearchWords = {\n html: string;\n searchWords: string[];\n showSearchBar: boolean;\n onNotFoundWords?: () => void;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nexport function useHighlightedSearchWords({\n html,\n searchWords,\n showSearchBar,\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n onNotFoundWords,\n}: UseHighlightedSearchWords) {\n const highlightedHtml = useHighlightedHTMLString(html, searchWords, showSearchBar);\n\n const {wasChangedDOM, onContentMutation, onContentLoaded} = useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n });\n\n const highlightedDOMElements = useHighlightedDOMElements(\n highlightedHtml,\n wasChangedDOM,\n showSearchBar,\n );\n\n const searchBarIsVisible = useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n });\n\n useNoSearchWordsFoundEffect({highlightedDOMElements, showSearchBar, onNotFoundWords});\n\n return {\n highlightedHtml,\n highlightedDOMElements,\n searchBarIsVisible,\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\nfunction useHighlightedDOMElements(\n highlightedHtml: string,\n wasChangedDOM: boolean,\n showSearchBar: boolean,\n) {\n const cachedHighlightedDOMElements = useRef<Element[]>([] as Element[]);\n\n useEffect(() => {\n cachedHighlightedDOMElements.current = [];\n }, [highlightedHtml]);\n\n useEffect(() => {\n if (wasChangedDOM) {\n cachedHighlightedDOMElements.current = [];\n }\n }, [wasChangedDOM]);\n\n if (cachedHighlightedDOMElements.current.length) {\n return cachedHighlightedDOMElements.current;\n }\n\n if (!showSearchBar || typeof document === 'undefined') {\n return [];\n }\n\n const elements = Array.from(document.querySelectorAll(`.${CLASSNAME}`));\n cachedHighlightedDOMElements.current = elements;\n\n return cachedHighlightedDOMElements.current;\n}\n\n/* Try wrapping the search words in an html string by span elements with a highlight class */\nfunction useHighlightedHTMLString(html: string, searchWords: string[], showSearchBar: boolean) {\n const [highlightedHtml, setHighlightedHtml] = useState(html);\n\n useEffect(() => {\n if (!searchWords.length || !showSearchBar) {\n setHighlightedHtml(html);\n return;\n }\n\n const highlightedResult = highlight({\n html,\n keywords: searchWords,\n options: HIGHLIGHT_OPTIONS,\n });\n\n if (highlightedResult.includes(CLASSNAME)) {\n setHighlightedHtml(highlightedResult);\n } else {\n setHighlightedHtml(html);\n }\n }, [html, searchWords, showSearchBar]);\n\n return highlightedHtml;\n}\n\ntype UseSearchBarIsVisible = {\n showSearchBar: boolean;\n searchWords: string[];\n html: string;\n highlightedHtml: string;\n};\n\nfunction useSearchBarIsVisible({\n showSearchBar,\n searchWords,\n highlightedHtml,\n html,\n}: UseSearchBarIsVisible) {\n const [searchBarIsVisible, setSearchBarIsVisible] = useState(showSearchBar);\n\n useEffect(() => {\n setSearchBarIsVisible(\n showSearchBar && Boolean(searchWords && searchWords.length) && highlightedHtml !== html,\n );\n }, [showSearchBar, searchWords, highlightedHtml, html]);\n\n return searchBarIsVisible;\n}\n\ntype UseCallbackDOMChange = {\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n};\n\nfunction useCallbackDOMChange({\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n}: UseCallbackDOMChange) {\n const [wasChangedDOM, setWasChangedDOM] = useState(false);\n\n useEffect(() => {\n if (wasChangedDOM) {\n setWasChangedDOM(false);\n }\n }, [wasChangedDOM]);\n\n /* Callback for dangerouslySetInnerHTML when inserting content */\n const onContentMutation = useCallback(() => {\n if (_onContentMutation) {\n _onContentMutation();\n }\n\n setWasChangedDOM(true);\n }, [_onContentMutation]);\n\n /* Callback for loading resources after inserting content */\n const onContentLoaded = useCallback(() => {\n if (_onContentLoaded) {\n _onContentLoaded();\n }\n\n setWasChangedDOM(true);\n }, [_onContentLoaded]);\n\n return {\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n };\n}\n\ntype UseNoSearchWordsFoundEffect = {\n showSearchBar: boolean;\n highlightedDOMElements: Element[];\n onNotFoundWords?: () => void;\n};\n\nexport function useNoSearchWordsFoundEffect({\n showSearchBar,\n highlightedDOMElements,\n onNotFoundWords,\n}: UseNoSearchWordsFoundEffect) {\n useEffect(() => {\n if (!onNotFoundWords) {\n return;\n }\n\n if (showSearchBar && !highlightedDOMElements.length) {\n onNotFoundWords();\n }\n }, [highlightedDOMElements, showSearchBar, onNotFoundWords]);\n}\n\ntype UseSearchBarNavigation = {\n highlightedDOMElements: Element[];\n stopSyncOnScroll: () => void;\n headerHeight: number;\n hash?: string;\n};\n\nexport function useSearchBarNavigation({\n highlightedDOMElements,\n stopSyncOnScroll,\n headerHeight,\n hash,\n}: UseSearchBarNavigation) {\n const [searchCurrentIndex, setSearchCurrentIndex] = useState(1);\n const [searchCountResults, setSearchCountResults] = useState(1);\n\n useEffect(() => {\n const startIndex =\n getHighlightedItemIndexInView({highlightedDOMElements, headerHeight, hash}) || 1;\n\n setSearchCurrentIndex(startIndex);\n setSearchCountResults(highlightedDOMElements.length || 1);\n }, [highlightedDOMElements, headerHeight, hash]);\n\n const onClickNextSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex + 1;\n if (newIndex > highlightedDOMElements.length) {\n newIndex = 1;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n const onClickPrevSearch = useCallback(\n (e: SyntheticEvent) => {\n e.stopPropagation();\n e.preventDefault();\n\n stopSyncOnScroll();\n\n if (!highlightedDOMElements.length) {\n return;\n }\n\n let newIndex = searchCurrentIndex - 1;\n if (newIndex < 1) {\n newIndex = highlightedDOMElements.length;\n }\n\n setSearchCurrentIndex(newIndex);\n },\n [highlightedDOMElements, searchCurrentIndex, setSearchCurrentIndex, stopSyncOnScroll],\n );\n\n return {\n searchCurrentIndex,\n setSearchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n };\n}\n\ntype UseHighlightCurrentWordEffect = {\n highlightedDOMElements: Element[];\n searchCurrentIndex: number;\n wasChangedDOM: boolean;\n syncOnScroll: boolean;\n hash?: string;\n};\n\nexport function useCurrentWordSelectionEffect({\n searchCurrentIndex,\n highlightedDOMElements,\n wasChangedDOM,\n syncOnScroll,\n hash,\n}: UseHighlightCurrentWordEffect) {\n useEffect(() => {\n try {\n if (!highlightedDOMElements || !highlightedDOMElements.length) {\n return;\n }\n\n for (let index = 0; index < highlightedDOMElements.length; index++) {\n const item = highlightedDOMElements[index];\n\n item.classList.remove(CLASSNAME_SELECTED);\n }\n\n const item = highlightedDOMElements[searchCurrentIndex - 1];\n item.classList.add(CLASSNAME_SELECTED);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }, [highlightedDOMElements, searchCurrentIndex, wasChangedDOM]);\n\n useEffect(() => {\n if (syncOnScroll) {\n return;\n }\n\n scrollToItem(highlightedDOMElements[searchCurrentIndex - 1]);\n }, [wasChangedDOM, searchCurrentIndex, highlightedDOMElements, syncOnScroll, hash]);\n}\n\ntype UseCurrentWordSelectionSyncScrollEffect = {\n highlightedDOMElements: Element[];\n searchWords: string[];\n syncOnScroll: boolean;\n searchBarIsVisible: boolean;\n setSearchCurrentIndex: (index: number) => void;\n headerHeight: number;\n setSyncOnScroll: (flag: boolean) => void;\n};\n\nexport function useCurrentWordSelectionSyncScrollEffect({\n highlightedDOMElements,\n searchWords,\n syncOnScroll,\n searchBarIsVisible,\n setSearchCurrentIndex,\n headerHeight,\n setSyncOnScroll,\n}: UseCurrentWordSelectionSyncScrollEffect) {\n const scrollEndTimer = useRef<ReturnType<typeof setTimeout>>(undefined);\n\n const handleScroll = useCallback(() => {\n if (scrollEndTimer.current) {\n clearTimeout(scrollEndTimer.current);\n }\n\n scrollEndTimer.current = setTimeout(() => {\n setSyncOnScroll(true);\n }, 50);\n\n if (!syncOnScroll || !searchBarIsVisible) {\n return;\n }\n\n const highlightedItemIndexInView = getHighlightedItemIndexInView({\n highlightedDOMElements,\n headerHeight,\n });\n\n if (isNaN(highlightedItemIndexInView as number)) {\n return;\n }\n\n setSearchCurrentIndex(highlightedItemIndexInView as number);\n }, [\n setSyncOnScroll,\n searchBarIsVisible,\n syncOnScroll,\n setSearchCurrentIndex,\n highlightedDOMElements,\n headerHeight,\n ]);\n\n const handleScrollThrottled = throttle(handleScroll, 50);\n\n useEffect(() => {\n if (searchBarIsVisible) {\n window.addEventListener('scroll', handleScrollThrottled);\n }\n return () => {\n window.removeEventListener('scroll', handleScrollThrottled);\n };\n }, [searchBarIsVisible, searchWords, handleScrollThrottled]);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["item"]
|
|
7
7
|
}
|
|
@@ -19,13 +19,14 @@ var __spreadValues = (a, b) => {
|
|
|
19
19
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
20
|
|
|
21
21
|
// src/components/SearchBar/withHighlightedSearchWords.tsx
|
|
22
|
-
import
|
|
22
|
+
import { useCallback, useEffect, useState } from "react";
|
|
23
23
|
import {
|
|
24
24
|
useCurrentWordSelectionEffect,
|
|
25
25
|
useCurrentWordSelectionSyncScrollEffect,
|
|
26
26
|
useHighlightedSearchWords,
|
|
27
27
|
useSearchBarNavigation
|
|
28
28
|
} from "./hooks";
|
|
29
|
+
import { jsx } from "react/jsx-runtime";
|
|
29
30
|
function withHighlightedSearchWords(Component) {
|
|
30
31
|
const SearchWordsHighlighter = (props) => {
|
|
31
32
|
const {
|
|
@@ -84,7 +85,7 @@ function withHighlightedSearchWords(Component) {
|
|
|
84
85
|
setSyncOnScroll
|
|
85
86
|
});
|
|
86
87
|
if (searchBarIsVisible) {
|
|
87
|
-
return /* @__PURE__ */
|
|
88
|
+
return /* @__PURE__ */ jsx(
|
|
88
89
|
Component,
|
|
89
90
|
__spreadProps(__spreadValues({}, props), {
|
|
90
91
|
html: highlightedHtml,
|
|
@@ -98,14 +99,14 @@ function withHighlightedSearchWords(Component) {
|
|
|
98
99
|
})
|
|
99
100
|
);
|
|
100
101
|
}
|
|
101
|
-
return /* @__PURE__ */
|
|
102
|
+
return /* @__PURE__ */ jsx(Component, __spreadProps(__spreadValues({}, props), { showSearchBar: false }));
|
|
102
103
|
};
|
|
103
104
|
const SearchWordsHighlighterWrapper = (props) => {
|
|
104
105
|
const { useSearchBar = false } = props;
|
|
105
106
|
if (useSearchBar) {
|
|
106
|
-
return /* @__PURE__ */
|
|
107
|
+
return /* @__PURE__ */ jsx(SearchWordsHighlighter, __spreadValues({}, props));
|
|
107
108
|
}
|
|
108
|
-
return /* @__PURE__ */
|
|
109
|
+
return /* @__PURE__ */ jsx(Component, __spreadValues({}, props));
|
|
109
110
|
};
|
|
110
111
|
return SearchWordsHighlighterWrapper;
|
|
111
112
|
}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/SearchBar/withHighlightedSearchWords.tsx"],
|
|
4
4
|
"sourcesContent": ["import type {DocPageData, Router} from '../../models';\n\nimport React, {useCallback, useEffect, useState} from 'react';\n\nimport {\n useCurrentWordSelectionEffect,\n useCurrentWordSelectionSyncScrollEffect,\n useHighlightedSearchWords,\n useSearchBarNavigation,\n} from './hooks';\n\nexport interface SearchWordsHighlighterProps extends DocPageData {\n useSearchBar?: boolean;\n searchWords?: string[];\n showSearchBar?: boolean;\n onCloseSearchBar?: () => void;\n onNotFoundWords?: () => void;\n searchQuery?: string;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n headerHeight?: number;\n router: Router;\n}\n\nfunction withHighlightedSearchWords<T extends SearchWordsHighlighterProps>(\n Component: React.ComponentType<T>,\n) {\n const SearchWordsHighlighter: React.FC<SearchWordsHighlighterProps & T> = (\n props,\n ): JSX.Element | null => {\n const {\n html,\n searchWords = [],\n showSearchBar = false,\n onCloseSearchBar,\n onNotFoundWords = () => {},\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n headerHeight = 0,\n router: {hash},\n } = props;\n\n const [syncOnScroll, setSyncOnScroll] = useState<boolean>(true);\n const stopSyncOnScroll = useCallback(() => setSyncOnScroll(false), []);\n\n useEffect(() => {\n setSyncOnScroll(false);\n }, [html, searchWords]);\n\n const {\n highlightedHtml,\n highlightedDOMElements,\n searchBarIsVisible,\n wasChangedDOM,\n onContentMutation,\n onContentLoaded,\n } = useHighlightedSearchWords({\n html,\n searchWords,\n showSearchBar,\n onContentMutation: _onContentMutation,\n onContentLoaded: _onContentLoaded,\n onNotFoundWords,\n });\n\n const {\n searchCurrentIndex,\n setSearchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n } = useSearchBarNavigation({highlightedDOMElements, stopSyncOnScroll, headerHeight, hash});\n\n useCurrentWordSelectionEffect({\n searchCurrentIndex,\n highlightedDOMElements,\n wasChangedDOM,\n syncOnScroll,\n hash,\n });\n\n /* Sync scroll with a current item in viewport */\n useCurrentWordSelectionSyncScrollEffect({\n highlightedDOMElements,\n searchWords,\n syncOnScroll,\n searchBarIsVisible,\n setSearchCurrentIndex,\n headerHeight,\n setSyncOnScroll,\n });\n\n if (searchBarIsVisible) {\n return (\n <Component\n {...props}\n html={highlightedHtml}\n onContentMutation={onContentMutation}\n onContentLoaded={onContentLoaded}\n searchCurrentIndex={searchCurrentIndex}\n searchCountResults={searchCountResults}\n onCloseSearchBar={onCloseSearchBar}\n onClickPrevSearch={onClickPrevSearch}\n onClickNextSearch={onClickNextSearch}\n />\n );\n }\n\n return <Component {...props} showSearchBar={false} />;\n };\n\n const SearchWordsHighlighterWrapper: React.FC<SearchWordsHighlighterProps & T> = (\n props,\n ): JSX.Element | null => {\n const {useSearchBar = false} = props;\n\n if (useSearchBar) {\n return <SearchWordsHighlighter {...props} />;\n }\n\n return <Component {...props} />;\n };\n\n return SearchWordsHighlighterWrapper;\n}\n\nexport default withHighlightedSearchWords;\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAEA,
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;AAEA,SAAe,aAAa,WAAW,gBAAe;AAEtD;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAqFS;AAtEhB,SAAS,2BACL,WACF;AACE,QAAM,yBAAoE,CACtE,UACqB;AACrB,UAAM;AAAA,MACF;AAAA,MACA,cAAc,CAAC;AAAA,MACf,gBAAgB;AAAA,MAChB;AAAA,MACA,kBAAkB,MAAM;AAAA,MAAC;AAAA,MACzB,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB,eAAe;AAAA,MACf,QAAQ,EAAC,KAAI;AAAA,IACjB,IAAI;AAEJ,UAAM,CAAC,cAAc,eAAe,IAAI,SAAkB,IAAI;AAC9D,UAAM,mBAAmB,YAAY,MAAM,gBAAgB,KAAK,GAAG,CAAC,CAAC;AAErE,cAAU,MAAM;AACZ,sBAAgB,KAAK;AAAA,IACzB,GAAG,CAAC,MAAM,WAAW,CAAC;AAEtB,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,0BAA0B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA,mBAAmB;AAAA,MACnB,iBAAiB;AAAA,MACjB;AAAA,IACJ,CAAC;AAED,UAAM;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,IAAI,uBAAuB,EAAC,wBAAwB,kBAAkB,cAAc,KAAI,CAAC;AAEzF,kCAA8B;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAGD,4CAAwC;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,QAAI,oBAAoB;AACpB,aACI;AAAA,QAAC;AAAA,yCACO,QADP;AAAA,UAEG,MAAM;AAAA,UACN;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA;AAAA,MACJ;AAAA,IAER;AAEA,WAAO,oBAAC,4CAAc,QAAd,EAAqB,eAAe,QAAO;AAAA,EACvD;AAEA,QAAM,gCAA2E,CAC7E,UACqB;AACrB,UAAM,EAAC,eAAe,MAAK,IAAI;AAE/B,QAAI,cAAc;AACd,aAAO,oBAAC,2CAA2B,MAAO;AAAA,IAC9C;AAEA,WAAO,oBAAC,8BAAc,MAAO;AAAA,EACjC;AAEA,SAAO;AACX;AAEA,IAAO,qCAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/SearchItem/SearchItem.scss", "../../../../src/components/SearchItem/%3Cinput css
|
|
3
|
+
"sources": ["../../../../src/components/SearchItem/SearchItem.scss", "../../../../src/components/SearchItem/%3Cinput css E2W-jo%3E", "../../../../src/styles/mixins.scss"],
|
|
4
4
|
"sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.SearchItem {\n &__link {\n cursor: pointer;\n color: inherit;\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n }\n\n &__marks-wrapper {\n display: none;\n justify-content: flex-end;\n align-items: center;\n }\n\n &__marks {\n height: 16px;\n margin-top: 10px;\n }\n\n &__mark {\n margin-right: 20px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n &__item-wrapper:hover &__marks-wrapper {\n display: flex;\n }\n\n &__item-wrapper {\n margin-bottom: 20px;\n @include mixins.text-size(body-1);\n }\n\n &__item {\n display: block;\n overflow: hidden;\n text-decoration: none;\n\n cursor: pointer;\n text-overflow: ellipsis;\n border-radius: var(--g-focus-border-radius);\n @include mixins.focusable();\n\n &-title,\n &-description {\n display: block;\n overflow: hidden;\n\n text-overflow: ellipsis;\n }\n\n &-title {\n margin-bottom: 4px;\n }\n\n &-title,\n &-title &-search-token {\n color: var(--g-color-text-primary);\n\n @include mixins.text-size(subheader-3);\n @include mixins.link();\n }\n\n &-title:hover &-search-token {\n color: var(--g-color-text-link-hover);\n }\n\n &-description {\n display: inline-block;\n color: var(--g-color-text-secondary);\n\n em {\n font-weight: bolder;\n }\n\n &::after {\n content: '...';\n display: inline;\n }\n }\n &-description &-search-token {\n color: var(--g-color-text-primary);\n }\n }\n}\n", ".SearchItem__link {\n cursor: pointer;\n color: inherit;\n}\n.SearchItem__link:hover, .SearchItem__link:active {\n color: var(--g-color-text-link-hover);\n}\n.SearchItem__marks-wrapper {\n display: none;\n justify-content: flex-end;\n align-items: center;\n}\n.SearchItem__marks {\n height: 16px;\n margin-top: 10px;\n}\n.SearchItem__mark {\n margin-right: 20px;\n}\n.SearchItem__mark:last-child {\n margin-right: 0;\n}\n.SearchItem__item-wrapper:hover .SearchItem__marks-wrapper {\n display: flex;\n}\n.SearchItem__item-wrapper {\n margin-bottom: 20px;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.SearchItem__item {\n display: block;\n overflow: hidden;\n text-decoration: none;\n cursor: pointer;\n text-overflow: ellipsis;\n border-radius: var(--g-focus-border-radius);\n}\n.SearchItem__item:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: 0;\n}\n.SearchItem__item:focus:not(:focus-visible) {\n outline: 0;\n}\n.SearchItem__item-title, .SearchItem__item-description {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.SearchItem__item-title {\n margin-bottom: 4px;\n}\n.SearchItem__item-title, .SearchItem__item-title .SearchItem__item-search-token {\n color: var(--g-color-text-primary);\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n outline: none;\n}\n.utilityfocus .SearchItem__item-title:focus, .utilityfocus .SearchItem__item-title .SearchItem__item-search-token:focus {\n outline: 2px solid #ffdb4d;\n}\n.SearchItem__item-title:focus, .SearchItem__item-title .SearchItem__item-search-token:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.SearchItem__item-title:focus:not(:focus-visible), .SearchItem__item-title .SearchItem__item-search-token:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.SearchItem__item-title:hover, .SearchItem__item-title:active, .SearchItem__item-title .SearchItem__item-search-token:hover, .SearchItem__item-title .SearchItem__item-search-token:active {\n color: var(--g-color-text-link-hover);\n}\n.SearchItem__item-title:hover .SearchItem__item-search-token {\n color: var(--g-color-text-link-hover);\n}\n.SearchItem__item-description {\n display: inline-block;\n color: var(--g-color-text-secondary);\n}\n.SearchItem__item-description em {\n font-weight: bolder;\n}\n.SearchItem__item-description::after {\n content: \"...\";\n display: inline;\n}\n.SearchItem__item-description .SearchItem__item-search-token {\n color: var(--g-color-text-primary);\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaEl0ZW0iLCJzb3VyY2VzIjpbIlNlYXJjaEl0ZW0uc2NzcyIsIi4uLy4uL3N0eWxlcy9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJSTtFQUNJO0VBQ0E7O0FBRUE7RUFFSTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTtFQ2xDSjtFQUNBOztBRHFDQTtFQUNJO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUNmQTtFQUNJO0VBQ0EsZ0JBSmM7O0FBTWxCO0VBQ0k7O0FEYUo7RUFFSTtFQUNBO0VBRUE7O0FBR0o7RUFDSTs7QUFHSjtFQUVJO0VDOURSO0VBQ0E7RUFrREE7RUFDQTtFQUNBO0VBQ0E7RUFqQ0E7O0FBRUE7RUFDSTs7QUFnQkE7RUFDSTtFQUNBOztBQUVKO0VBQ0k7O0FBZVI7RUFFSTs7QURNQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFHUjtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLlNlYXJjaEl0ZW0ge1xuICAgICZfX2xpbmsge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYXJrcy13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19tYXJrcyB7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICB9XG5cbiAgICAmX19tYXJrIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLXdyYXBwZXI6aG92ZXIgJl9fbWFya3Mtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgJl9faXRlbS13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShib2R5LTEpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgIEBpbmNsdWRlIG1peGlucy5mb2N1c2FibGUoKTtcblxuICAgICAgICAmLXRpdGxlLFxuICAgICAgICAmLWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cblxuICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtdGl0bGUsXG4gICAgICAgICYtdGl0bGUgJi1zZWFyY2gtdG9rZW4ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1wcmltYXJ5KTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShzdWJoZWFkZXItMyk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMubGluaygpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi10aXRsZTpob3ZlciAmLXNlYXJjaC10b2tlbiB7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmstaG92ZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG5cbiAgICAgICAgICAgIGVtIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJy4uLic7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtZGVzY3JpcHRpb24gJi1zZWFyY2gtdG9rZW4ge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiB0ZXh0LXNpemUoJG5hbWUpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWl4aW4gZml4QW5jaG9yUG9zaXRpb24oJG9mZnNldDogMHB4KSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG9mZnNldH0gLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgaXNsYW5kcy1mb2N1cygpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXNhYmxlKDAsICdib3gtc2hhZG93Jyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzMoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMik7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0xKTtcbn1cblxuQG1peGluIGhlYWRpbmc1KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGhlYWRpbmc2KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGRlc2t0b3AtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBncmF2aXR5LXVpLXRleHQtc2l6ZXMoJGRlbHRhKSB7XG4gICAgLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQ6ICN7MThweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQ6ICN7MjBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWZvbnQtc2l6ZTogI3sxN3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTMtbGluZS1oZWlnaHQ6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS1zaG9ydC1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY2FwdGlvbi0xLWZvbnQtc2l6ZTogI3s5cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMi1mb250LXNpemU6ICN7MTFweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplOiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZTogI3syNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplOiAjezE1cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZTogI3sxN3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTEtZm9udC1zaXplOiAjezI4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMi1mb250LXNpemU6ICN7MzJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0zLWZvbnQtc2l6ZTogI3s0MHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTQtZm9udC1zaXplOiAjezQ4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMS1mb250LXNpemU6ICN7MTJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTItZm9udC1zaXplOiAjezE0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuXG4gICAgLS15Zm0tZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1saW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgyOiB2YXIoLS1nLXRleHQtaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDM6IHZhcigtLWctdGV4dC1oZWFkZXItMS1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNDogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg1OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDY6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemUpO1xufVxuIl19 */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
|
|
5
5
|
"mappings": ";AAII,CAAA;AACI,UAAA;AACA,SAAA;ACHR;ADKQ,CAJJ,gBAII;AAAA,CAJJ,gBAII;AAEI,SAAA,IAAA;ACJZ;ADQI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,eAAA;ACNR;ADSI,CAAA;AACI,UAAA;AACA,cAAA;ACPR;ADUI,CAAA;AACI,gBAAA;ACRR;ADUQ,CAHJ,gBAGI;AACI,gBAAA;ACRZ;ADYI,CAAA,wBAAA,OAAA,CAnBA;AAoBI,WAAA;ACVR;ADaI,CAJA;AAKI,iBAAA;AElCJ,aAAA,IAAA;AACA,eAAA,IAAA;ADwBJ;ADaI,CAAA;AACI,WAAA;AACA,YAAA;AACA,2BAAA;AAAA,mBAAA;AAEA,UAAA;AACA,iBAAA;AACA,iBAAA,IAAA;ACZR;ACHQ,CFQJ,gBERI;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ADKZ;ACHQ,CFIJ,gBEJI,MAAA,KAAA;AACI,WAAA;ADKZ;ADQQ,CAAA;AAAA,CAAA;AAEI,WAAA;AACA,YAAA;AAEA,iBAAA;ACRZ;ADWQ,CARA;AASI,iBAAA;ACTZ;ADYQ,CAZA;AAYA,CAZA,uBAYA,CAAA;AAEI,SAAA,IAAA;AE9DR,aAAA,IAAA;AACA,eAAA,IAAA;AAkDA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;AAjCA,WAAA;ADqCJ;ACnCI,CAAA,aAAA,CFyBI,sBEzBJ;AAAA,CAAA,aAAA,CFyBI,uBEzBJ,CFqCI,6BErCJ;AACI,WAAA,IAAA,MAAA;ADqCR;ACrBQ,CFQA,sBERA;AAAA,CFQA,uBERA,CFoBA,6BEpBA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADuBZ;ACrBQ,CFIA,sBEJA,MAAA,KAAA;AAAA,CFIA,uBEJA,CFgBA,6BEhBA,MAAA,KAAA;AACI,cAAA;ADuBZ;ACRI,CFZI,sBEYJ;AAAA,CFZI,sBEYJ;AAAA,CFZI,uBEYJ,CFAI,6BEAJ;AAAA,CFZI,uBEYJ,CFAI,6BEAJ;AAEI,SAAA,IAAA;ADSR;ADHQ,CApBA,sBAoBA,OAAA,CARA;AASI,SAAA,IAAA;ACKZ;ADFQ,CAxBA;AAyBI,WAAA;AACA,SAAA,IAAA;ACIZ;ADFY,CA5BJ,6BA4BI;AACI,eAAA;ACIhB;ADDY,CAhCJ,4BAgCI;AACI,WAAA;AACA,WAAA;ACGhB;ADAQ,CArCA,6BAqCA,CAzBA;AA0BI,SAAA,IAAA;ACEZ;",
|
|
6
6
|
"names": []
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import './SearchItem.scss';
|
|
3
2
|
export interface ISearchItem {
|
|
4
3
|
url: string;
|
|
@@ -15,5 +14,5 @@ export interface SearchItemProps {
|
|
|
15
14
|
className?: string;
|
|
16
15
|
}
|
|
17
16
|
type SearchPageInnerProps = SearchItemProps & SearchOnClickProps;
|
|
18
|
-
declare const SearchItem:
|
|
17
|
+
declare const SearchItem: import("react").NamedExoticComponent<SearchPageInnerProps>;
|
|
19
18
|
export default SearchItem;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
// src/components/SearchItem/SearchItem.tsx
|
|
2
|
-
import
|
|
2
|
+
import { memo, useState } from "react";
|
|
3
3
|
import { Button } from "@gravity-ui/uikit";
|
|
4
4
|
import block from "bem-cn-lite";
|
|
5
5
|
import { useTranslation } from "../../hooks";
|
|
6
6
|
import { HTML } from "../HTML";
|
|
7
7
|
import "./SearchItem.css";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
9
|
var b = block("SearchItem");
|
|
9
10
|
var SearchItem = memo(
|
|
10
11
|
({ item, className, itemOnClick, irrelevantOnClick, relevantOnClick }) => {
|
|
@@ -12,44 +13,52 @@ var SearchItem = memo(
|
|
|
12
13
|
const { url, title, description } = item;
|
|
13
14
|
const [markedItem, setMarkedItem] = useState(false);
|
|
14
15
|
const renderItem = () => {
|
|
15
|
-
return /* @__PURE__ */
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
{
|
|
27
|
-
size: "s",
|
|
28
|
-
className: b("mark"),
|
|
29
|
-
onClick: () => {
|
|
30
|
-
setMarkedItem(true);
|
|
31
|
-
if (irrelevantOnClick) {
|
|
32
|
-
irrelevantOnClick(item);
|
|
33
|
-
}
|
|
16
|
+
return /* @__PURE__ */ jsxs("div", { className: b("item-wrapper"), children: [
|
|
17
|
+
/* @__PURE__ */ jsxs(
|
|
18
|
+
"a",
|
|
19
|
+
{
|
|
20
|
+
className: b("item"),
|
|
21
|
+
href: url,
|
|
22
|
+
onClick: () => itemOnClick ? itemOnClick(item) : void 0,
|
|
23
|
+
children: [
|
|
24
|
+
/* @__PURE__ */ jsx(HTML, { className: b("item-title"), children: title }),
|
|
25
|
+
/* @__PURE__ */ jsx(HTML, { className: b("item-description"), children: description })
|
|
26
|
+
]
|
|
34
27
|
}
|
|
35
|
-
|
|
36
|
-
t("
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
28
|
+
),
|
|
29
|
+
irrelevantOnClick && relevantOnClick && /* @__PURE__ */ jsx("div", { className: b("marks"), children: /* @__PURE__ */ jsx("div", { className: b("marks-wrapper"), children: markedItem ? /* @__PURE__ */ jsx("span", { className: b("marks-text"), children: t("search_mark-result-text") }) : /* @__PURE__ */ jsxs("div", { children: [
|
|
30
|
+
/* @__PURE__ */ jsx(
|
|
31
|
+
Button,
|
|
32
|
+
{
|
|
33
|
+
size: "s",
|
|
34
|
+
className: b("mark"),
|
|
35
|
+
onClick: () => {
|
|
36
|
+
setMarkedItem(true);
|
|
37
|
+
if (irrelevantOnClick) {
|
|
38
|
+
irrelevantOnClick(item);
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
children: t("search_mark_dislike")
|
|
46
42
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
),
|
|
44
|
+
/* @__PURE__ */ jsx(
|
|
45
|
+
Button,
|
|
46
|
+
{
|
|
47
|
+
size: "s",
|
|
48
|
+
className: b("mark"),
|
|
49
|
+
onClick: () => {
|
|
50
|
+
setMarkedItem(true);
|
|
51
|
+
if (relevantOnClick) {
|
|
52
|
+
relevantOnClick(item);
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
children: t("search_mark_like")
|
|
56
|
+
}
|
|
57
|
+
)
|
|
58
|
+
] }) }) })
|
|
59
|
+
] });
|
|
51
60
|
};
|
|
52
|
-
return /* @__PURE__ */
|
|
61
|
+
return /* @__PURE__ */ jsx("div", { className: b(null, className), children: renderItem() });
|
|
53
62
|
}
|
|
54
63
|
);
|
|
55
64
|
SearchItem.displayName = "SearchItem";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/SearchItem/SearchItem.tsx"],
|
|
4
|
-
"sourcesContent": ["import
|
|
5
|
-
"mappings": ";AAAA,
|
|
4
|
+
"sourcesContent": ["import {memo, useState} from 'react';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../hooks';\nimport {HTML} from '../HTML';\n\nimport './SearchItem.scss';\n\nconst b = block('SearchItem');\n\nexport interface ISearchItem {\n url: string;\n title: string;\n description?: string;\n}\n\nexport interface SearchOnClickProps {\n itemOnClick?: (item: ISearchItem) => void;\n irrelevantOnClick?: (item: ISearchItem) => void;\n relevantOnClick?: (item: ISearchItem) => void;\n}\n\nexport interface SearchItemProps {\n item: ISearchItem;\n className?: string;\n}\n\ntype SearchPageInnerProps = SearchItemProps & SearchOnClickProps;\n\nconst SearchItem = memo<SearchPageInnerProps>(\n ({item, className, itemOnClick, irrelevantOnClick, relevantOnClick}) => {\n const {t} = useTranslation('search');\n const {url, title, description} = item;\n\n const [markedItem, setMarkedItem] = useState(false);\n\n const renderItem = () => {\n return (\n <div className={b('item-wrapper')}>\n <a\n className={b('item')}\n href={url}\n onClick={() => (itemOnClick ? itemOnClick(item) : undefined)}\n >\n <HTML className={b('item-title')}>{title}</HTML>\n <HTML className={b('item-description')}>{description}</HTML>\n </a>\n {irrelevantOnClick && relevantOnClick && (\n <div className={b('marks')}>\n <div className={b('marks-wrapper')}>\n {markedItem ? (\n <span className={b('marks-text')}>\n {t('search_mark-result-text')}\n </span>\n ) : (\n <div>\n <Button\n size=\"s\"\n className={b('mark')}\n onClick={() => {\n setMarkedItem(true);\n if (irrelevantOnClick) {\n irrelevantOnClick(item);\n }\n }}\n >\n {t('search_mark_dislike')}\n </Button>\n <Button\n size=\"s\"\n className={b('mark')}\n onClick={() => {\n setMarkedItem(true);\n if (relevantOnClick) {\n relevantOnClick(item);\n }\n }}\n >\n {t('search_mark_like')}\n </Button>\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n };\n\n return <div className={b(null, className)}>{renderItem()}</div>;\n },\n);\n\nSearchItem.displayName = 'SearchItem';\n\nexport default SearchItem;\n"],
|
|
5
|
+
"mappings": ";AAAA,SAAQ,MAAM,gBAAe;AAC7B,SAAQ,cAAa;AACrB,OAAO,WAAW;AAElB,SAAQ,sBAAqB;AAC7B,SAAQ,YAAW;AAEnB,OAAO;AAiCa,SAKI,KALJ;AA/BpB,IAAM,IAAI,MAAM,YAAY;AAqB5B,IAAM,aAAa;AAAA,EACf,CAAC,EAAC,MAAM,WAAW,aAAa,mBAAmB,gBAAe,MAAM;AACpE,UAAM,EAAC,EAAC,IAAI,eAAe,QAAQ;AACnC,UAAM,EAAC,KAAK,OAAO,YAAW,IAAI;AAElC,UAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,UAAM,aAAa,MAAM;AACrB,aACI,qBAAC,SAAI,WAAW,EAAE,cAAc,GAC5B;AAAA;AAAA,UAAC;AAAA;AAAA,YACG,WAAW,EAAE,MAAM;AAAA,YACnB,MAAM;AAAA,YACN,SAAS,MAAO,cAAc,YAAY,IAAI,IAAI;AAAA,YAElD;AAAA,kCAAC,QAAK,WAAW,EAAE,YAAY,GAAI,iBAAM;AAAA,cACzC,oBAAC,QAAK,WAAW,EAAE,kBAAkB,GAAI,uBAAY;AAAA;AAAA;AAAA,QACzD;AAAA,QACC,qBAAqB,mBAClB,oBAAC,SAAI,WAAW,EAAE,OAAO,GACrB,8BAAC,SAAI,WAAW,EAAE,eAAe,GAC5B,uBACG,oBAAC,UAAK,WAAW,EAAE,YAAY,GAC1B,YAAE,yBAAyB,GAChC,IAEA,qBAAC,SACG;AAAA;AAAA,YAAC;AAAA;AAAA,cACG,MAAK;AAAA,cACL,WAAW,EAAE,MAAM;AAAA,cACnB,SAAS,MAAM;AACX,8BAAc,IAAI;AAClB,oBAAI,mBAAmB;AACnB,oCAAkB,IAAI;AAAA,gBAC1B;AAAA,cACJ;AAAA,cAEC,YAAE,qBAAqB;AAAA;AAAA,UAC5B;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACG,MAAK;AAAA,cACL,WAAW,EAAE,MAAM;AAAA,cACnB,SAAS,MAAM;AACX,8BAAc,IAAI;AAClB,oBAAI,iBAAiB;AACjB,kCAAgB,IAAI;AAAA,gBACxB;AAAA,cACJ;AAAA,cAEC,YAAE,kBAAkB;AAAA;AAAA,UACzB;AAAA,WACJ,GAER,GACJ;AAAA,SAER;AAAA,IAER;AAEA,WAAO,oBAAC,SAAI,WAAW,EAAE,MAAM,SAAS,GAAI,qBAAW,GAAE;AAAA,EAC7D;AACJ;AAEA,WAAW,cAAc;AAEzB,IAAO,qBAAQ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/SearchPage/SearchPage.scss", "../../../../src/components/SearchPage/%3Cinput css
|
|
3
|
+
"sources": ["../../../../src/components/SearchPage/SearchPage.scss", "../../../../src/components/SearchPage/%3Cinput css AtFYTx%3E", "../../../../src/styles/variables.scss"],
|
|
4
4
|
"sourcesContent": ["@use 'sass:map';\n@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-page {\n margin-top: 26px;\n display: flex;\n justify-content: center;\n\n &__layout {\n max-width: variables.$centerBlockMaxWidth;\n width: 100%;\n }\n\n &__search-field-wrapper {\n display: flex;\n align-items: center;\n }\n\n &__search-button {\n margin-left: 10px;\n }\n\n &__search {\n &-field,\n &-item {\n margin-bottom: 36px;\n }\n }\n\n &__subtitle {\n margin-bottom: 18px;\n }\n\n &__paginator {\n padding: 10px 0;\n border-top: 1px solid var(--g-color-line-generic);\n }\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md')) {\n margin-top: 16px;\n\n &__layout {\n padding: 0 12px;\n }\n\n &__search {\n &-field {\n margin-bottom: 24px;\n }\n\n &-item {\n margin-bottom: 40px;\n }\n }\n }\n}\n", ".dc-search-page {\n margin-top: 26px;\n display: flex;\n justify-content: center;\n}\n.dc-search-page__layout {\n max-width: 736px;\n width: 100%;\n}\n.dc-search-page__search-field-wrapper {\n display: flex;\n align-items: center;\n}\n.dc-search-page__search-button {\n margin-left: 10px;\n}\n.dc-search-page__search-field, .dc-search-page__search-item {\n margin-bottom: 36px;\n}\n.dc-search-page__subtitle {\n margin-bottom: 18px;\n}\n.dc-search-page__paginator {\n padding: 10px 0;\n border-top: 1px solid var(--g-color-line-generic);\n}\n@media (max-width: 769px) {\n .dc-search-page {\n margin-top: 16px;\n }\n .dc-search-page__layout {\n padding: 0 12px;\n }\n .dc-search-page__search-field {\n margin-bottom: 24px;\n }\n .dc-search-page__search-item {\n margin-bottom: 40px;\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaFBhZ2UiLCJzb3VyY2VzIjpbIlNlYXJjaFBhZ2Uuc2NzcyIsIi4uLy4uL3N0eWxlcy92YXJpYWJsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLFdDQ2M7RURBZDs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFJQTtFQUVJOztBQUlSO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBbkNKO0lBb0NROztFQUVBO0lBQ0k7O0VBSUE7SUFDSTs7RUFHSjtJQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLmRjLXNlYXJjaC1wYWdlIHtcbiAgICBtYXJnaW4tdG9wOiAyNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmX19sYXlvdXQge1xuICAgICAgICBtYXgtd2lkdGg6IHZhcmlhYmxlcy4kY2VudGVyQmxvY2tNYXhXaWR0aDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fc2VhcmNoLWZpZWxkLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3NlYXJjaC1idXR0b24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmX19zZWFyY2gge1xuICAgICAgICAmLWZpZWxkLFxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMzZweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1YnRpdGxlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICB9XG5cbiAgICAmX19wYWdpbmF0b3Ige1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDA7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMTZweDtcblxuICAgICAgICAmX19sYXlvdXQge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fc2VhcmNoIHtcbiAgICAgICAgICAgICYtZmllbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogNDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIFNpemVzXG4kaGVhZGVySGVpZ2h0OiAwcHg7XG4kc3ViSGVhZGVySGVpZ2h0OiA0MHB4O1xuJHN1Yk5hdmlnYXRpb25IZWlnaHQ6IDUycHg7XG4kbm9ybWFsT2Zmc2V0OiAyMHB4O1xuJG1pbmlUb2NPZmZzZXQ6IDU2cHg7XG4kYmxvY2tNYXJnaW5Cb3R0b21MYXJnZTogMjBweDtcbiRibG9ja01hcmdpbkJvdHRvbU1lZGl1bTogMTVweDtcbiRoZWFkZXJNYXJnaW5Ub3BMYXJnZTogNDBweDtcbiRoZWFkZXJNYXJnaW5Ub3BNZWRpdW06IDMycHg7XG4kcG9wdXBQYWRkaW5nOiAxNnB4O1xuJGNlbnRlckJsb2NrTWF4V2lkdGg6IDczNnB4O1xuXG4vLyBOYXZpZ2F0aW9uXG4kdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZzogNHB4O1xuJHRvTWFpbk1lbnVIb3Jpem9udGFsUGFkZGluZzogMTJweDtcbiR0b01haW5NZW51SGVpZ2h0OiBjYWxjKFxuICAgIHZhcigtLWRjLXN1Ym5hdmlnYXRpb24taGVpZ2h0LCAkc3ViTmF2aWdhdGlvbkhlaWdodCkgLSAjeyR0b01haW5NZW51VmVydGljYWxQYWRkaW5nfSAtXG4gICAgICAgICN7JHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmd9XG4pO1xuXG4vLyBNaW5pVG9jXG4kbWluaVRvY1ZlcnRpY2FsUGFkZGluZzogMTZweDtcbiRtaW5pVG9jVGl0bGVIZWlnaHQ6IDIwcHg7IC8vIGxpbmUtaGVpZ2h0IGJvZHktMlxuJG1pbmlUb2NUaXRsZU1hcmdpbjogMTJweDtcbiRtb2JpbGVNaW5pVG9jT2Zmc2V0OiAyICogJG1pbmlUb2NWZXJ0aWNhbFBhZGRpbmcgKyAkbWluaVRvY1RpdGxlSGVpZ2h0ICsgJG1pbmlUb2NUaXRsZU1hcmdpbjtcblxuLy8gTW9iaWxlQ29udHJvbHNcbiRtb2JpbGVDb250cm9sc0hlaWdodDogMzJweDtcbiRtb2JpbGVDb250cm9sc1RvcFBhZGRpbmc6IDhweDtcbiRtb2JpbGVDb250cm9sc0JvdHRvbVBhZGRpbmc6IDEycHg7XG5cbiRzY3JlZW5CcmVha3BvaW50czogKFxuICAgICd4cyc6IDM3NXB4LFxuICAgICdzbSc6IDU3N3B4LFxuICAgICdtZCc6IDc2OXB4LFxuICAgICdsZyc6IDEwODFweCxcbiAgICAneGwnOiAxMTg1cHgsXG4pO1xuIl19 */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} -\n #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n// MobileControls\n$mobileControlsHeight: 32px;\n$mobileControlsTopPadding: 8px;\n$mobileControlsBottomPadding: 12px;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n"],
|
|
5
5
|
"mappings": ";AAIA,CAAA;AACI,cAAA;AACA,WAAA;AACA,mBAAA;ACHJ;ADKI,CAAA;AACI,aAAA;AACA,SAAA;ACHR;ADMI,CAAA;AACI,WAAA;AACA,eAAA;ACJR;ADOI,CAAA;AACI,eAAA;ACLR;ADSQ,CAAA;AAAA,CAAA;AAEI,iBAAA;ACRZ;ADYI,CAAA;AACI,iBAAA;ACVR;ADaI,CAAA;AACI,WAAA,KAAA;AACA,cAAA,IAAA,MAAA,IAAA;ACXR;ADcI,QAAA,WAAA;AAnCJ,GAAA;AAoCQ,gBAAA;ACXN;ADaM,GAjCJ;AAkCQ,aAAA,EAAA;ACXV;ADeU,GAvBJ;AAwBQ,mBAAA;ACbd;ADgBU,GA3BJ;AA4BQ,mBAAA;ACdd;AACF;",
|
|
6
6
|
"names": []
|