@docusaurus/theme-classic 2.0.0-beta.2 → 2.0.0-beta.20
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 +2 -2
- package/lib/admonitions.css +39 -0
- package/lib/deps.d.ts +13 -0
- package/lib/getSwizzleConfig.js +243 -0
- package/lib/index.js +42 -52
- package/lib/nprogress.css +41 -0
- package/lib/nprogress.js +46 -0
- package/lib/prism-include-languages.js +9 -5
- package/lib/theme-classic.d.ts +1279 -0
- package/lib/translations.js +52 -36
- package/lib/validateThemeConfig.js +298 -248
- package/lib-next/theme/Admonition/index.js +101 -0
- package/lib-next/theme/AnnouncementBar/index.js +8 -16
- package/lib-next/theme/AnnouncementBar/styles.module.css +23 -32
- package/lib-next/theme/BackToTopButton/index.js +33 -0
- package/lib-next/theme/BackToTopButton/styles.module.css +44 -0
- package/lib-next/theme/BlogArchivePage/index.js +84 -0
- package/lib-next/theme/BlogLayout/index.js +33 -0
- package/lib-next/theme/BlogListPage/index.js +45 -35
- package/lib-next/theme/BlogListPaginator/index.js +27 -33
- package/lib-next/theme/BlogPostAuthor/index.js +49 -0
- package/lib-next/theme/BlogPostAuthors/index.js +44 -0
- package/{lib/theme/Toggle → lib-next/theme/BlogPostAuthors}/styles.module.css +11 -7
- package/lib-next/theme/BlogPostItem/index.js +96 -98
- package/lib-next/theme/BlogPostItem/styles.module.css +9 -0
- package/lib-next/theme/BlogPostPage/index.js +84 -37
- package/lib-next/theme/BlogPostPaginator/index.js +27 -37
- package/lib-next/theme/BlogSidebar/Desktop/index.js +41 -0
- package/{lib/theme/BlogSidebar → lib-next/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
- package/lib-next/theme/BlogSidebar/Mobile/index.js +36 -0
- package/lib-next/theme/BlogSidebar/index.js +11 -33
- package/lib-next/theme/BlogTagsListPage/index.js +24 -65
- package/lib-next/theme/BlogTagsPostsPage/index.js +45 -48
- package/lib-next/theme/CodeBlock/Container/index.js +29 -0
- package/lib-next/theme/CodeBlock/Container/styles.module.css +14 -0
- package/lib-next/theme/CodeBlock/Content/Element.js +23 -0
- package/lib-next/theme/CodeBlock/Content/String.js +104 -0
- package/{lib/theme/CodeBlock → lib-next/theme/CodeBlock/Content}/styles.module.css +45 -27
- package/lib-next/theme/CodeBlock/CopyButton/index.js +61 -0
- package/lib-next/theme/CodeBlock/CopyButton/styles.module.css +47 -0
- package/lib-next/theme/CodeBlock/Line/index.js +49 -0
- package/lib-next/theme/CodeBlock/Line/styles.module.css +51 -0
- package/lib-next/theme/CodeBlock/WordWrapButton/index.js +40 -0
- package/{lib/theme/BlogPostItem → lib-next/theme/CodeBlock/WordWrapButton}/styles.module.css +5 -8
- package/lib-next/theme/CodeBlock/index.js +28 -256
- package/lib-next/theme/ColorModeToggle/index.js +62 -0
- package/lib-next/theme/ColorModeToggle/styles.module.css +35 -0
- package/lib-next/theme/Details/index.js +21 -0
- package/lib-next/theme/Details/styles.module.css +13 -0
- package/lib-next/theme/DocBreadcrumbs/index.js +120 -0
- package/{lib/theme/Heading/styles.css → lib-next/theme/DocBreadcrumbs/styles.module.css} +9 -13
- package/lib-next/theme/DocCard/index.js +93 -0
- package/lib-next/theme/DocCard/styles.module.css +34 -0
- package/lib-next/theme/DocCardList/index.js +33 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/index.js +75 -0
- package/lib-next/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
- package/lib-next/theme/DocItem/index.js +98 -85
- package/lib-next/theme/DocItem/styles.module.css +12 -10
- package/lib-next/theme/DocItemFooter/index.js +79 -0
- package/{lib/theme/DocItem → lib-next/theme/DocItemFooter}/styles.module.css +1 -9
- package/lib-next/theme/DocPage/Layout/Main/index.js +29 -0
- package/lib-next/theme/DocPage/Layout/Main/styles.module.css +28 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/index.js +34 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/index.js +68 -0
- package/lib-next/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
- package/lib-next/theme/DocPage/Layout/index.js +34 -0
- package/{lib/theme/IconExternalLink/styles.module.css → lib-next/theme/DocPage/Layout/index.module.css} +7 -4
- package/lib-next/theme/DocPage/index.js +39 -159
- package/lib-next/theme/DocPaginator/index.js +28 -40
- package/lib-next/theme/DocSidebar/Desktop/CollapseButton/index.js +34 -0
- package/lib-next/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
- package/lib-next/theme/DocSidebar/Desktop/Content/index.js +46 -0
- package/lib-next/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
- package/lib-next/theme/DocSidebar/Desktop/index.js +36 -0
- package/lib-next/theme/DocSidebar/Desktop/styles.module.css +50 -0
- package/lib-next/theme/DocSidebar/Mobile/index.js +49 -0
- package/lib-next/theme/DocSidebar/index.js +13 -340
- package/lib-next/theme/DocSidebarItem/Category.js +197 -0
- package/lib-next/theme/DocSidebarItem/Html.js +27 -0
- package/lib-next/theme/DocSidebarItem/Html.module.css +13 -0
- package/lib-next/theme/DocSidebarItem/Link.js +53 -0
- package/{lib/theme/MDXPage/styles.module.css → lib-next/theme/DocSidebarItem/Link.module.css} +2 -2
- package/lib-next/theme/DocSidebarItem/index.js +23 -0
- package/lib-next/theme/DocSidebarItems/index.js +23 -0
- package/lib-next/theme/DocTagDocListPage/index.js +96 -0
- package/lib-next/theme/DocTagsListPage/index.js +40 -0
- package/lib-next/theme/DocVersionBadge/index.js +34 -0
- package/lib-next/theme/DocVersionBanner/index.js +33 -16
- package/lib-next/theme/EditThisPage/index.js +6 -1
- package/lib-next/theme/ErrorPageContent.js +35 -0
- package/lib-next/theme/Footer/Copyright/index.js +18 -0
- package/lib-next/theme/Footer/Layout/index.js +26 -0
- package/lib-next/theme/Footer/LinkItem/index.js +33 -0
- package/lib-next/theme/Footer/Links/MultiColumn/index.js +47 -0
- package/lib-next/theme/Footer/Links/Simple/index.js +41 -0
- package/lib-next/theme/Footer/Links/index.js +17 -0
- package/lib-next/theme/Footer/Logo/index.js +38 -0
- package/lib-next/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
- package/lib-next/theme/Footer/index.js +12 -100
- package/lib-next/theme/Heading/index.js +31 -54
- package/lib-next/theme/Heading/styles.module.css +25 -5
- package/lib-next/theme/IconArrow/index.js +2 -5
- package/lib-next/theme/IconClose/index.js +23 -0
- package/lib-next/theme/IconDarkMode/index.js +17 -0
- package/lib-next/theme/IconEdit/index.js +2 -5
- package/lib-next/theme/IconExternalLink/index.js +2 -5
- package/lib-next/theme/IconExternalLink/styles.module.css +0 -2
- package/lib-next/theme/IconHome/index.js +17 -0
- package/lib-next/theme/IconLanguage/index.js +5 -8
- package/lib-next/theme/IconLightMode/index.js +17 -0
- package/lib-next/theme/IconMenu/index.js +7 -5
- package/lib-next/theme/LastUpdated/index.js +4 -2
- package/lib-next/theme/Layout/index.js +19 -16
- package/lib-next/theme/LayoutProviders/index.js +16 -9
- package/lib-next/theme/Logo/index.js +25 -24
- package/lib-next/theme/{ThemeContext.js → MDXComponents/A.js} +4 -2
- package/lib-next/theme/MDXComponents/Code.js +28 -0
- package/lib-next/theme/MDXComponents/Details.js +20 -0
- package/lib-next/theme/MDXComponents/Head.js +26 -0
- package/lib-next/theme/MDXComponents/Heading.js +11 -0
- package/lib-next/theme/MDXComponents/Img.js +24 -0
- package/{lib/theme/hooks/styles.css → lib-next/theme/MDXComponents/Img.module.css} +2 -2
- package/lib-next/theme/MDXComponents/Pre.js +18 -0
- package/lib-next/theme/MDXComponents/Ul.js +21 -0
- package/lib-next/theme/MDXComponents/index.js +22 -42
- package/lib-next/theme/MDXContent/index.js +12 -0
- package/lib-next/theme/MDXPage/index.js +37 -34
- package/lib-next/theme/Navbar/ColorModeToggle/index.js +25 -0
- package/lib-next/theme/Navbar/Content/index.js +75 -0
- package/{lib/theme/TOCInline → lib-next/theme/Navbar/Content}/styles.module.css +7 -4
- package/lib-next/theme/Navbar/Layout/index.js +54 -0
- package/{lib/theme/Navbar → lib-next/theme/Navbar/Layout}/styles.module.css +0 -6
- package/lib-next/theme/Navbar/Logo/index.js +17 -0
- package/lib-next/theme/Navbar/MobileSidebar/Header/index.js +33 -0
- package/lib-next/theme/Navbar/MobileSidebar/Layout/index.js +28 -0
- package/lib-next/theme/Navbar/MobileSidebar/PrimaryMenu/index.js +33 -0
- package/lib-next/theme/Navbar/MobileSidebar/SecondaryMenu/index.js +36 -0
- package/lib-next/theme/Navbar/MobileSidebar/Toggle/index.js +23 -0
- package/lib-next/theme/Navbar/MobileSidebar/index.js +31 -0
- package/lib-next/theme/Navbar/Search/index.js +11 -0
- package/lib-next/theme/Navbar/Search/styles.module.css +20 -0
- package/lib-next/theme/Navbar/index.js +7 -137
- package/lib-next/theme/NavbarItem/ComponentTypes.js +27 -0
- package/lib-next/theme/NavbarItem/DefaultNavbarItem.js +32 -202
- package/lib-next/theme/NavbarItem/DocNavbarItem.js +16 -30
- package/lib-next/theme/NavbarItem/DocSidebarNavbarItem.js +41 -0
- package/lib-next/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +54 -44
- package/lib-next/theme/NavbarItem/DocsVersionNavbarItem.js +2 -6
- package/lib-next/theme/NavbarItem/DropdownNavbarItem.js +167 -0
- package/lib-next/theme/NavbarItem/HtmlNavbarItem.js +30 -0
- package/lib-next/theme/NavbarItem/{LocaleDropdownNavbarItem.js → LocaleDropdownNavbarItem/index.js} +16 -22
- package/lib-next/theme/{hooks/styles.css → NavbarItem/LocaleDropdownNavbarItem/styles.module.css} +3 -2
- package/lib-next/theme/NavbarItem/NavbarNavLink.js +84 -0
- package/lib-next/theme/NavbarItem/SearchNavbarItem.js +6 -1
- package/lib-next/theme/NavbarItem/index.js +17 -24
- package/lib-next/{prism-include-languages.js → theme/NavbarItem/utils.js} +3 -4
- package/lib-next/theme/NotFound.js +39 -37
- package/lib-next/theme/PaginatorNavLink/index.js +23 -0
- package/lib-next/theme/SearchBar.js +1 -1
- package/lib-next/theme/SearchMetadata/index.js +34 -0
- package/lib-next/theme/{LayoutHead → SiteMetadata}/index.js +31 -50
- package/lib-next/theme/SkipToContent/index.js +7 -32
- package/lib-next/theme/SkipToContent/styles.module.css +7 -0
- package/lib-next/theme/TOC/index.js +12 -39
- package/lib-next/theme/TOC/styles.module.css +1 -1
- package/lib-next/theme/TOCCollapsible/CollapseButton.js +29 -0
- package/lib-next/theme/TOCCollapsible/CollapseButton.module.css +29 -0
- package/lib-next/theme/TOCCollapsible/index.js +42 -0
- package/lib-next/theme/TOCCollapsible/index.module.css +31 -0
- package/lib-next/theme/TOCInline/index.js +10 -31
- package/lib-next/theme/TOCItems/Tree.js +40 -0
- package/lib-next/theme/TOCItems/index.js +54 -0
- package/lib-next/theme/TabItem/index.js +4 -5
- package/{lib/theme/IconEdit → lib-next/theme/TabItem}/styles.module.css +2 -3
- package/lib-next/theme/Tabs/__tests__/index.test.js +146 -0
- package/lib-next/theme/Tabs/index.js +111 -53
- package/lib-next/theme/Tabs/styles.module.css +4 -13
- package/lib-next/theme/Tag/index.js +23 -0
- package/lib-next/theme/Tag/styles.module.css +70 -0
- package/lib-next/theme/TagsListByLetter/index.js +40 -0
- package/lib-next/theme/TagsListByLetter/styles.module.css +11 -0
- package/lib-next/theme/TagsListInline/index.js +31 -0
- package/lib-next/theme/TagsListInline/styles.module.css +15 -0
- package/lib-next/theme/ThemedImage/index.js +9 -12
- package/lib-next/theme/ThemedImage/styles.module.css +2 -2
- package/lib-next/theme/prism-include-languages.js +17 -15
- package/package.json +37 -32
- package/src/admonitions.css +39 -0
- package/src/deps.d.ts +13 -0
- package/src/getSwizzleConfig.ts +252 -0
- package/src/index.ts +48 -71
- package/src/nprogress.css +41 -0
- package/src/nprogress.ts +31 -0
- package/src/{prism-include-languages.js → prism-include-languages.ts} +0 -0
- package/src/theme/Admonition/index.tsx +106 -0
- package/src/theme/AnnouncementBar/index.tsx +9 -15
- package/src/theme/AnnouncementBar/styles.module.css +23 -32
- package/src/theme/BackToTopButton/index.tsx +34 -0
- package/src/theme/BackToTopButton/styles.module.css +44 -0
- package/src/theme/BlogArchivePage/index.tsx +92 -0
- package/src/theme/BlogLayout/index.tsx +38 -0
- package/src/theme/BlogListPage/index.tsx +45 -35
- package/src/theme/BlogListPaginator/index.tsx +27 -32
- package/src/theme/BlogPostAuthor/index.tsx +50 -0
- package/src/theme/BlogPostAuthors/index.tsx +49 -0
- package/src/theme/{Toggle → BlogPostAuthors}/styles.module.css +11 -7
- package/src/theme/BlogPostItem/index.tsx +86 -92
- package/src/theme/BlogPostItem/styles.module.css +9 -0
- package/src/theme/BlogPostPage/index.tsx +84 -38
- package/src/theme/BlogPostPaginator/index.tsx +27 -36
- package/src/theme/BlogSidebar/Desktop/index.tsx +45 -0
- package/{lib-next/theme/BlogSidebar → src/theme/BlogSidebar/Desktop}/styles.module.css +5 -4
- package/src/theme/BlogSidebar/Mobile/index.tsx +38 -0
- package/src/theme/BlogSidebar/index.tsx +10 -33
- package/src/theme/BlogTagsListPage/index.tsx +24 -66
- package/src/theme/BlogTagsPostsPage/index.tsx +49 -47
- package/src/theme/CodeBlock/Container/index.tsx +35 -0
- package/src/theme/CodeBlock/Container/styles.module.css +14 -0
- package/src/theme/CodeBlock/Content/Element.tsx +30 -0
- package/src/theme/CodeBlock/Content/String.tsx +111 -0
- package/{lib-next/theme/CodeBlock → src/theme/CodeBlock/Content}/styles.module.css +45 -27
- package/src/theme/CodeBlock/CopyButton/index.tsx +67 -0
- package/src/theme/CodeBlock/CopyButton/styles.module.css +47 -0
- package/src/theme/CodeBlock/Line/index.tsx +48 -0
- package/src/theme/CodeBlock/Line/styles.module.css +51 -0
- package/src/theme/CodeBlock/WordWrapButton/index.tsx +49 -0
- package/src/theme/CodeBlock/WordWrapButton/styles.module.css +15 -0
- package/src/theme/CodeBlock/index.tsx +29 -253
- package/src/theme/ColorModeToggle/index.tsx +67 -0
- package/src/theme/ColorModeToggle/styles.module.css +35 -0
- package/src/theme/Details/index.tsx +25 -0
- package/src/theme/Details/styles.module.css +13 -0
- package/src/theme/DocBreadcrumbs/index.tsx +140 -0
- package/src/theme/{Heading/styles.css → DocBreadcrumbs/styles.module.css} +9 -13
- package/src/theme/DocCard/index.tsx +116 -0
- package/src/theme/DocCard/styles.module.css +34 -0
- package/src/theme/DocCardList/index.tsx +36 -0
- package/src/theme/DocCategoryGeneratedIndexPage/index.tsx +86 -0
- package/src/theme/DocCategoryGeneratedIndexPage/styles.module.css +26 -0
- package/src/theme/DocItem/index.tsx +91 -77
- package/src/theme/DocItem/styles.module.css +12 -10
- package/src/theme/DocItemFooter/index.tsx +91 -0
- package/{lib-next/theme/Toggle → src/theme/DocItemFooter}/styles.module.css +9 -8
- package/src/theme/DocPage/Layout/Main/index.tsx +37 -0
- package/src/theme/DocPage/Layout/Main/styles.module.css +28 -0
- package/src/theme/DocPage/Layout/Sidebar/ExpandButton/index.tsx +40 -0
- package/src/theme/DocPage/Layout/Sidebar/ExpandButton/styles.module.css +33 -0
- package/src/theme/DocPage/Layout/Sidebar/index.module.css +32 -0
- package/src/theme/DocPage/Layout/Sidebar/index.tsx +74 -0
- package/src/theme/DocPage/Layout/index.module.css +15 -0
- package/src/theme/DocPage/Layout/index.tsx +39 -0
- package/src/theme/DocPage/index.tsx +39 -165
- package/src/theme/DocPaginator/index.tsx +28 -39
- package/src/theme/DocSidebar/Desktop/CollapseButton/index.tsx +38 -0
- package/src/theme/DocSidebar/Desktop/CollapseButton/styles.module.css +46 -0
- package/src/theme/DocSidebar/Desktop/Content/index.tsx +55 -0
- package/src/theme/DocSidebar/Desktop/Content/styles.module.css +23 -0
- package/src/theme/DocSidebar/Desktop/index.tsx +40 -0
- package/src/theme/DocSidebar/Desktop/styles.module.css +50 -0
- package/src/theme/DocSidebar/Mobile/index.tsx +54 -0
- package/src/theme/DocSidebar/index.tsx +14 -350
- package/src/theme/DocSidebarItem/Category.tsx +210 -0
- package/src/theme/DocSidebarItem/Html.module.css +13 -0
- package/src/theme/DocSidebarItem/Html.tsx +34 -0
- package/src/theme/DocSidebarItem/Link.module.css +10 -0
- package/src/theme/DocSidebarItem/Link.tsx +58 -0
- package/src/theme/DocSidebarItem/index.tsx +27 -0
- package/src/theme/DocSidebarItems/index.tsx +27 -0
- package/src/theme/DocTagDocListPage/index.tsx +96 -0
- package/src/theme/DocTagsListPage/index.tsx +44 -0
- package/src/theme/DocVersionBadge/index.tsx +35 -0
- package/src/theme/DocVersionBanner/index.tsx +53 -27
- package/src/theme/EditThisPage/index.tsx +6 -1
- package/src/theme/ErrorPageContent.tsx +41 -0
- package/src/theme/Footer/Copyright/index.tsx +20 -0
- package/src/theme/Footer/Layout/index.tsx +34 -0
- package/src/theme/Footer/LinkItem/index.tsx +36 -0
- package/src/theme/Footer/Links/MultiColumn/index.tsx +51 -0
- package/src/theme/Footer/Links/Simple/index.tsx +42 -0
- package/src/theme/Footer/Links/index.tsx +21 -0
- package/src/theme/Footer/Logo/index.tsx +41 -0
- package/src/theme/Footer/{styles.module.css → Logo/styles.module.css} +2 -1
- package/src/theme/Footer/index.tsx +13 -113
- package/src/theme/Heading/index.tsx +31 -58
- package/src/theme/Heading/styles.module.css +25 -5
- package/src/theme/IconArrow/index.tsx +2 -4
- package/src/theme/IconClose/index.tsx +26 -0
- package/src/theme/IconDarkMode/index.tsx +20 -0
- package/src/theme/IconEdit/index.tsx +5 -4
- package/src/theme/IconExternalLink/index.tsx +3 -5
- package/src/theme/IconExternalLink/styles.module.css +0 -2
- package/src/theme/IconHome/index.tsx +20 -0
- package/src/theme/IconLanguage/index.tsx +6 -8
- package/src/theme/IconLightMode/index.tsx +20 -0
- package/src/theme/IconMenu/index.tsx +3 -5
- package/src/theme/LastUpdated/index.tsx +4 -2
- package/src/theme/Layout/index.tsx +19 -15
- package/src/theme/LayoutProviders/index.tsx +16 -9
- package/src/theme/Logo/index.tsx +21 -19
- package/src/theme/{ThemeContext.ts → MDXComponents/A.tsx} +5 -6
- package/src/theme/MDXComponents/Code.tsx +37 -0
- package/src/theme/MDXComponents/Details.tsx +25 -0
- package/src/theme/MDXComponents/Head.tsx +29 -0
- package/src/theme/MDXComponents/Heading.tsx +14 -0
- package/src/theme/MDXComponents/Img.module.css +10 -0
- package/src/theme/MDXComponents/Img.tsx +26 -0
- package/src/theme/MDXComponents/Pre.tsx +22 -0
- package/src/theme/MDXComponents/Ul.tsx +24 -0
- package/src/theme/MDXComponents/index.tsx +23 -42
- package/src/theme/MDXContent/index.tsx +15 -0
- package/src/theme/MDXPage/index.tsx +37 -34
- package/src/theme/Navbar/ColorModeToggle/index.tsx +30 -0
- package/src/theme/Navbar/Content/index.tsx +86 -0
- package/src/theme/Navbar/Content/styles.module.css +15 -0
- package/src/theme/Navbar/Layout/index.tsx +57 -0
- package/src/theme/Navbar/{styles.module.css → Layout/styles.module.css} +0 -6
- package/src/theme/Navbar/Logo/index.tsx +19 -0
- package/src/theme/Navbar/MobileSidebar/Header/index.tsx +34 -0
- package/src/theme/Navbar/MobileSidebar/Layout/index.tsx +31 -0
- package/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +38 -0
- package/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +38 -0
- package/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +25 -0
- package/src/theme/Navbar/MobileSidebar/index.tsx +33 -0
- package/src/theme/Navbar/Search/index.tsx +15 -0
- package/src/theme/Navbar/Search/styles.module.css +20 -0
- package/src/theme/Navbar/index.tsx +7 -147
- package/src/theme/NavbarItem/ComponentTypes.tsx +32 -0
- package/src/theme/NavbarItem/DefaultNavbarItem.tsx +37 -207
- package/src/theme/NavbarItem/DocNavbarItem.tsx +18 -38
- package/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +44 -0
- package/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +59 -51
- package/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +5 -8
- package/src/theme/NavbarItem/DropdownNavbarItem.tsx +193 -0
- package/src/theme/NavbarItem/HtmlNavbarItem.tsx +32 -0
- package/src/theme/NavbarItem/{LocaleDropdownNavbarItem.tsx → LocaleDropdownNavbarItem/index.tsx} +19 -17
- package/src/theme/NavbarItem/LocaleDropdownNavbarItem/styles.module.css +11 -0
- package/src/theme/NavbarItem/NavbarNavLink.tsx +80 -0
- package/src/theme/NavbarItem/SearchNavbarItem.tsx +6 -1
- package/src/theme/NavbarItem/index.tsx +22 -29
- package/src/theme/NavbarItem/utils.ts +13 -0
- package/src/theme/NotFound.tsx +39 -36
- package/src/theme/PaginatorNavLink/index.tsx +26 -0
- package/src/theme/SearchBar.tsx +2 -1
- package/src/theme/SearchMetadata/index.tsx +43 -0
- package/src/theme/{LayoutHead → SiteMetadata}/index.tsx +31 -44
- package/src/theme/SkipToContent/index.tsx +7 -32
- package/src/theme/SkipToContent/styles.module.css +7 -0
- package/src/theme/TOC/index.tsx +13 -44
- package/src/theme/TOC/styles.module.css +1 -1
- package/src/theme/TOCCollapsible/CollapseButton.module.css +29 -0
- package/src/theme/TOCCollapsible/CollapseButton.tsx +35 -0
- package/src/theme/TOCCollapsible/index.module.css +31 -0
- package/src/theme/TOCCollapsible/index.tsx +45 -0
- package/src/theme/TOCInline/index.tsx +14 -35
- package/src/theme/TOCItems/Tree.tsx +46 -0
- package/src/theme/TOCItems/index.tsx +61 -0
- package/src/theme/TabItem/index.tsx +12 -4
- package/src/theme/TabItem/styles.module.css +10 -0
- package/src/theme/Tabs/index.tsx +120 -62
- package/src/theme/Tabs/styles.module.css +4 -13
- package/src/theme/Tag/index.tsx +27 -0
- package/src/theme/Tag/styles.module.css +70 -0
- package/src/theme/TagsListByLetter/index.tsx +43 -0
- package/src/theme/TagsListByLetter/styles.module.css +11 -0
- package/src/theme/TagsListInline/index.tsx +35 -0
- package/src/theme/TagsListInline/styles.module.css +15 -0
- package/src/theme/ThemedImage/index.tsx +10 -11
- package/src/theme/ThemedImage/styles.module.css +2 -2
- package/src/theme/prism-include-languages.ts +20 -15
- package/src/theme-classic.d.ts +1279 -0
- package/src/translations.ts +84 -58
- package/src/validateThemeConfig.ts +448 -0
- package/babel.config.js +0 -35
- package/codeTranslations/README.md +0 -20
- package/codeTranslations/ar.json +0 -57
- package/codeTranslations/base.json +0 -112
- package/codeTranslations/bn.json +0 -56
- package/codeTranslations/da.json +0 -57
- package/codeTranslations/de.json +0 -57
- package/codeTranslations/es.json +0 -57
- package/codeTranslations/fa.json +0 -57
- package/codeTranslations/fil.json +0 -57
- package/codeTranslations/fr.json +0 -57
- package/codeTranslations/he.json +0 -57
- package/codeTranslations/hi.json +0 -57
- package/codeTranslations/ja.json +0 -57
- package/codeTranslations/ko.json +0 -57
- package/codeTranslations/pl.json +0 -57
- package/codeTranslations/pt-BR.json +0 -57
- package/codeTranslations/pt-PT.json +0 -57
- package/codeTranslations/ru.json +0 -57
- package/codeTranslations/tr.json +0 -57
- package/codeTranslations/vi.json +0 -57
- package/codeTranslations/zh-Hans.json +0 -57
- package/codeTranslations/zh-Hant.json +0 -57
- package/lib/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib/__tests__/translations.test.js +0 -112
- package/lib/__tests__/validateThemeConfig.test.js +0 -333
- package/lib/theme/AnnouncementBar/index.js +0 -72
- package/lib/theme/AnnouncementBar/styles.module.css +0 -72
- package/lib/theme/BlogListPage/index.js +0 -71
- package/lib/theme/BlogListPaginator/index.js +0 -63
- package/lib/theme/BlogPostItem/index.js +0 -161
- package/lib/theme/BlogPostPage/index.js +0 -69
- package/lib/theme/BlogPostPaginator/index.js +0 -64
- package/lib/theme/BlogSidebar/index.js +0 -51
- package/lib/theme/BlogTagsListPage/index.js +0 -76
- package/lib/theme/BlogTagsPostsPage/index.js +0 -100
- package/lib/theme/CodeBlock/index.js +0 -253
- package/lib/theme/DocItem/index.js +0 -129
- package/lib/theme/DocPage/index.js +0 -173
- package/lib/theme/DocPage/styles.module.css +0 -86
- package/lib/theme/DocPaginator/index.js +0 -63
- package/lib/theme/DocSidebar/index.js +0 -306
- package/lib/theme/DocSidebar/styles.module.css +0 -124
- package/lib/theme/DocVersionBanner/index.js +0 -128
- package/lib/theme/DocVersionSuggestions/index.js +0 -111
- package/lib/theme/EditThisPage/index.js +0 -31
- package/lib/theme/Footer/index.js +0 -108
- package/lib/theme/Footer/styles.module.css +0 -15
- package/lib/theme/Heading/index.js +0 -76
- package/lib/theme/Heading/styles.module.css +0 -15
- package/lib/theme/IconArrow/index.js +0 -28
- package/lib/theme/IconEdit/index.js +0 -34
- package/lib/theme/IconExternalLink/index.js +0 -30
- package/lib/theme/IconLanguage/index.js +0 -29
- package/lib/theme/IconMenu/index.js +0 -30
- package/lib/theme/LastUpdated/index.js +0 -61
- package/lib/theme/Layout/index.js +0 -64
- package/lib/theme/Layout/styles.css +0 -27
- package/lib/theme/LayoutHead/index.js +0 -144
- package/lib/theme/LayoutProviders/index.js +0 -36
- package/lib/theme/Logo/index.js +0 -60
- package/lib/theme/MDXComponents/index.js +0 -65
- package/lib/theme/MDXPage/index.js +0 -66
- package/lib/theme/Navbar/index.js +0 -147
- package/lib/theme/NavbarItem/DefaultNavbarItem.js +0 -209
- package/lib/theme/NavbarItem/DocNavbarItem.js +0 -63
- package/lib/theme/NavbarItem/DocsVersionDropdownNavbarItem.js +0 -76
- package/lib/theme/NavbarItem/DocsVersionNavbarItem.js +0 -43
- package/lib/theme/NavbarItem/LocaleDropdownNavbarItem.js +0 -72
- package/lib/theme/NavbarItem/SearchNavbarItem.js +0 -28
- package/lib/theme/NavbarItem/index.js +0 -54
- package/lib/theme/NotFound.js +0 -57
- package/lib/theme/SearchBar.js +0 -15
- package/lib/theme/SearchMetadatas/index.js +0 -33
- package/lib/theme/Seo/index.js +0 -49
- package/lib/theme/SkipToContent/index.js +0 -63
- package/lib/theme/SkipToContent/styles.module.css +0 -14
- package/lib/theme/TOC/index.js +0 -59
- package/lib/theme/TOC/styles.module.css +0 -23
- package/lib/theme/TOCInline/index.js +0 -53
- package/lib/theme/TabItem/index.js +0 -32
- package/lib/theme/Tabs/index.js +0 -150
- package/lib/theme/Tabs/styles.module.css +0 -23
- package/lib/theme/ThemeContext.js +0 -21
- package/lib/theme/ThemeProvider/index.js +0 -38
- package/lib/theme/ThemedImage/index.js +0 -49
- package/lib/theme/ThemedImage/styles.module.css +0 -18
- package/lib/theme/Toggle/index.js +0 -94
- package/lib/theme/Toggle/styles.css +0 -103
- package/lib/theme/UserPreferencesContext.js +0 -18
- package/lib/theme/UserPreferencesProvider/index.js +0 -36
- package/lib/theme/hooks/useAnnouncementBar.js +0 -63
- package/lib/theme/hooks/useContextualSearchFilters.js +0 -47
- package/lib/theme/hooks/useDocs.js +0 -18
- package/lib/theme/hooks/useHideableNavbar.js +0 -92
- package/lib/theme/hooks/useKeyboardNavigation.js +0 -45
- package/lib/theme/hooks/useLocationHash.js +0 -28
- package/lib/theme/hooks/useLockBodyScroll.js +0 -26
- package/lib/theme/hooks/usePrismTheme.js +0 -36
- package/lib/theme/hooks/useScrollPosition.js +0 -49
- package/lib/theme/hooks/useTOCHighlight.js +0 -87
- package/lib/theme/hooks/useTabGroupChoice.js +0 -51
- package/lib/theme/hooks/useTheme.js +0 -99
- package/lib/theme/hooks/useThemeContext.js +0 -31
- package/lib/theme/hooks/useUserPreferencesContext.js +0 -31
- package/lib/theme/hooks/useWindowSize.js +0 -55
- package/lib/theme/prism-include-languages.js +0 -39
- package/lib/types.d.ts +0 -598
- package/lib-next/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/lib-next/__tests__/translations.test.js +0 -128
- package/lib-next/__tests__/validateThemeConfig.test.js +0 -333
- package/lib-next/index.js +0 -221
- package/lib-next/theme/DocPage/styles.module.css +0 -86
- package/lib-next/theme/DocSidebar/styles.module.css +0 -124
- package/lib-next/theme/DocVersionSuggestions/index.js +0 -126
- package/lib-next/theme/Heading/styles.css +0 -23
- package/lib-next/theme/Navbar/styles.module.css +0 -20
- package/lib-next/theme/SearchMetadatas/index.js +0 -20
- package/lib-next/theme/Seo/index.js +0 -36
- package/lib-next/theme/ThemeProvider/index.js +0 -25
- package/lib-next/theme/Toggle/index.js +0 -80
- package/lib-next/theme/Toggle/styles.css +0 -103
- package/lib-next/theme/UserPreferencesContext.js +0 -9
- package/lib-next/theme/UserPreferencesProvider/index.js +0 -24
- package/lib-next/theme/hooks/useAnnouncementBar.js +0 -49
- package/lib-next/theme/hooks/useContextualSearchFilters.js +0 -41
- package/lib-next/theme/hooks/useDocs.js +0 -10
- package/lib-next/theme/hooks/useHideableNavbar.js +0 -79
- package/lib-next/theme/hooks/useKeyboardNavigation.js +0 -35
- package/lib-next/theme/hooks/useLocationHash.js +0 -20
- package/lib-next/theme/hooks/useLockBodyScroll.js +0 -18
- package/lib-next/theme/hooks/usePrismTheme.js +0 -20
- package/lib-next/theme/hooks/useScrollPosition.js +0 -38
- package/lib-next/theme/hooks/useTOCHighlight.js +0 -84
- package/lib-next/theme/hooks/useTabGroupChoice.js +0 -39
- package/lib-next/theme/hooks/useTheme.js +0 -82
- package/lib-next/theme/hooks/useThemeContext.js +0 -22
- package/lib-next/theme/hooks/useUserPreferencesContext.js +0 -22
- package/lib-next/theme/hooks/useWindowSize.js +0 -45
- package/lib-next/translations.js +0 -145
- package/lib-next/types.d.ts +0 -598
- package/lib-next/validateThemeConfig.js +0 -317
- package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -116
- package/src/__tests__/translations.test.ts +0 -116
- package/src/__tests__/validateThemeConfig.test.js +0 -333
- package/src/theme/BlogSidebar/styles.module.css +0 -44
- package/src/theme/CodeBlock/styles.module.css +0 -68
- package/src/theme/DocPage/styles.module.css +0 -86
- package/src/theme/DocSidebar/styles.module.css +0 -124
- package/src/theme/SearchMetadatas/index.tsx +0 -28
- package/src/theme/Seo/index.tsx +0 -46
- package/src/theme/ThemeProvider/index.tsx +0 -24
- package/src/theme/Toggle/index.tsx +0 -100
- package/src/theme/Toggle/styles.css +0 -103
- package/src/theme/UserPreferencesContext.ts +0 -12
- package/src/theme/UserPreferencesProvider/index.tsx +0 -27
- package/src/theme/hooks/styles.css +0 -10
- package/src/theme/hooks/useContextualSearchFilters.ts +0 -52
- package/src/theme/hooks/useDocs.ts +0 -11
- package/src/theme/hooks/useHideableNavbar.ts +0 -85
- package/src/theme/hooks/useKeyboardNavigation.ts +0 -39
- package/src/theme/hooks/useLocationHash.ts +0 -25
- package/src/theme/hooks/useLockBodyScroll.ts +0 -20
- package/src/theme/hooks/usePrismTheme.ts +0 -22
- package/src/theme/hooks/useScrollPosition.ts +0 -45
- package/src/theme/hooks/useTOCHighlight.ts +0 -98
- package/src/theme/hooks/useTabGroupChoice.ts +0 -46
- package/src/theme/hooks/useTheme.ts +0 -92
- package/src/theme/hooks/useThemeContext.ts +0 -23
- package/src/theme/hooks/useUserPreferencesContext.ts +0 -25
- package/src/theme/hooks/useWindowSize.ts +0 -51
- package/src/types.d.ts +0 -598
- package/src/validateThemeConfig.js +0 -317
- package/tsconfig.json +0 -12
- package/update-code-translations.js +0 -240
- package/update-code-translations.test.js +0 -33
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
import styles from './styles.module.css';
|
|
10
|
+
export default function CodeBlockLine({
|
|
11
|
+
line,
|
|
12
|
+
classNames,
|
|
13
|
+
showLineNumbers,
|
|
14
|
+
getLineProps,
|
|
15
|
+
getTokenProps,
|
|
16
|
+
}) {
|
|
17
|
+
if (line.length === 1 && line[0].content === '\n') {
|
|
18
|
+
line[0].content = '';
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const lineProps = getLineProps({
|
|
22
|
+
line,
|
|
23
|
+
className: clsx(classNames, showLineNumbers && styles.codeLine),
|
|
24
|
+
});
|
|
25
|
+
const lineTokens = line.map((token, key) => (
|
|
26
|
+
<span
|
|
27
|
+
key={key}
|
|
28
|
+
{...getTokenProps({
|
|
29
|
+
token,
|
|
30
|
+
key,
|
|
31
|
+
})}
|
|
32
|
+
/>
|
|
33
|
+
));
|
|
34
|
+
return (
|
|
35
|
+
<span {...lineProps}>
|
|
36
|
+
{showLineNumbers ? (
|
|
37
|
+
<>
|
|
38
|
+
<span className={styles.codeLineNumber} />
|
|
39
|
+
<span className={styles.codeLineContent}>{lineTokens}</span>
|
|
40
|
+
</>
|
|
41
|
+
) : (
|
|
42
|
+
<>
|
|
43
|
+
{lineTokens}
|
|
44
|
+
<br />
|
|
45
|
+
</>
|
|
46
|
+
)}
|
|
47
|
+
</span>
|
|
48
|
+
);
|
|
49
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
:global(.theme-code-block-highlighted-line) {
|
|
9
|
+
background-color: var(--docusaurus-highlighted-code-line-bg);
|
|
10
|
+
display: block;
|
|
11
|
+
margin: 0 calc(-1 * var(--ifm-pre-padding));
|
|
12
|
+
padding: 0 var(--ifm-pre-padding);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Intentionally has zero specificity, so that to be able to override
|
|
16
|
+
the background in custom CSS file due bug https://github.com/facebook/docusaurus/issues/3678 */
|
|
17
|
+
:where(:root) {
|
|
18
|
+
--docusaurus-highlighted-code-line-bg: rgb(72 77 91);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:where([data-theme='dark']) {
|
|
22
|
+
--docusaurus-highlighted-code-line-bg: rgb(100 100 100);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.codeLine {
|
|
26
|
+
display: table-row;
|
|
27
|
+
counter-increment: line-count;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.codeLineNumber {
|
|
31
|
+
display: table-cell;
|
|
32
|
+
text-align: right;
|
|
33
|
+
width: 1%;
|
|
34
|
+
position: sticky;
|
|
35
|
+
left: 0;
|
|
36
|
+
padding: 0 var(--ifm-pre-padding);
|
|
37
|
+
background: var(--ifm-pre-background);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.codeLineNumber::before {
|
|
41
|
+
content: counter(line-count);
|
|
42
|
+
opacity: 0.4;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
:global(.theme-code-block-highlighted-line) .codeLineNumber::before {
|
|
46
|
+
opacity: 0.8;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.codeLineContent {
|
|
50
|
+
padding-right: var(--ifm-pre-padding);
|
|
51
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
import {translate} from '@docusaurus/Translate';
|
|
10
|
+
import styles from './styles.module.css';
|
|
11
|
+
export default function WordWrapButton({className, onClick, isEnabled}) {
|
|
12
|
+
const title = translate({
|
|
13
|
+
id: 'theme.CodeBlock.wordWrapToggle',
|
|
14
|
+
message: 'Toggle word wrap',
|
|
15
|
+
description:
|
|
16
|
+
'The title attribute for toggle word wrapping button of code block lines',
|
|
17
|
+
});
|
|
18
|
+
return (
|
|
19
|
+
<button
|
|
20
|
+
type="button"
|
|
21
|
+
onClick={onClick}
|
|
22
|
+
className={clsx(
|
|
23
|
+
'clean-btn',
|
|
24
|
+
className,
|
|
25
|
+
isEnabled && styles.wordWrapButtonEnabled,
|
|
26
|
+
)}
|
|
27
|
+
aria-label={title}
|
|
28
|
+
title={title}>
|
|
29
|
+
<svg
|
|
30
|
+
className={styles.wordWrapButtonIcon}
|
|
31
|
+
viewBox="0 0 24 24"
|
|
32
|
+
aria-hidden="true">
|
|
33
|
+
<path
|
|
34
|
+
fill="currentColor"
|
|
35
|
+
d="M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"
|
|
36
|
+
/>
|
|
37
|
+
</svg>
|
|
38
|
+
</button>
|
|
39
|
+
);
|
|
40
|
+
}
|
package/{lib/theme/BlogPostItem → lib-next/theme/CodeBlock/WordWrapButton}/styles.module.css
RENAMED
|
@@ -5,14 +5,11 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
.
|
|
9
|
-
|
|
8
|
+
.wordWrapButtonIcon {
|
|
9
|
+
width: 1.2rem;
|
|
10
|
+
height: 1.2rem;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
.
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.blogPostDetailsFull {
|
|
17
|
-
flex-direction: column;
|
|
13
|
+
.wordWrapButtonEnabled .wordWrapButtonIcon {
|
|
14
|
+
color: var(--ifm-color-primary);
|
|
18
15
|
}
|
|
@@ -4,265 +4,37 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
-
import React, {
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const getHighlightDirectiveRegex = (
|
|
19
|
-
languages = ['js', 'jsBlock', 'jsx', 'python', 'html'],
|
|
20
|
-
) => {
|
|
21
|
-
// supported types of comments
|
|
22
|
-
const comments = {
|
|
23
|
-
js: {
|
|
24
|
-
start: '\\/\\/',
|
|
25
|
-
end: '',
|
|
26
|
-
},
|
|
27
|
-
jsBlock: {
|
|
28
|
-
start: '\\/\\*',
|
|
29
|
-
end: '\\*\\/',
|
|
30
|
-
},
|
|
31
|
-
jsx: {
|
|
32
|
-
start: '\\{\\s*\\/\\*',
|
|
33
|
-
end: '\\*\\/\\s*\\}',
|
|
34
|
-
},
|
|
35
|
-
python: {
|
|
36
|
-
start: '#',
|
|
37
|
-
end: '',
|
|
38
|
-
},
|
|
39
|
-
html: {
|
|
40
|
-
start: '<!--',
|
|
41
|
-
end: '-->',
|
|
42
|
-
},
|
|
43
|
-
}; // supported directives
|
|
44
|
-
|
|
45
|
-
const directives = [
|
|
46
|
-
'highlight-next-line',
|
|
47
|
-
'highlight-start',
|
|
48
|
-
'highlight-end',
|
|
49
|
-
].join('|'); // to be more reliable, the opening and closing comment must match
|
|
50
|
-
|
|
51
|
-
const commentPattern = languages
|
|
52
|
-
.map(
|
|
53
|
-
(lang) =>
|
|
54
|
-
`(?:${comments[lang].start}\\s*(${directives})\\s*${comments[lang].end})`,
|
|
55
|
-
)
|
|
56
|
-
.join('|'); // white space is allowed, but otherwise it should be on it's own line
|
|
57
|
-
|
|
58
|
-
return new RegExp(`^\\s*(?:${commentPattern})\\s*$`);
|
|
59
|
-
}; // select comment styles based on language
|
|
60
|
-
|
|
61
|
-
const highlightDirectiveRegex = (lang) => {
|
|
62
|
-
switch (lang) {
|
|
63
|
-
case 'js':
|
|
64
|
-
case 'javascript':
|
|
65
|
-
case 'ts':
|
|
66
|
-
case 'typescript':
|
|
67
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock']);
|
|
68
|
-
|
|
69
|
-
case 'jsx':
|
|
70
|
-
case 'tsx':
|
|
71
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'jsx']);
|
|
72
|
-
|
|
73
|
-
case 'html':
|
|
74
|
-
return getHighlightDirectiveRegex(['js', 'jsBlock', 'html']);
|
|
75
|
-
|
|
76
|
-
case 'python':
|
|
77
|
-
case 'py':
|
|
78
|
-
return getHighlightDirectiveRegex(['python']);
|
|
79
|
-
|
|
80
|
-
default:
|
|
81
|
-
// all comment types
|
|
82
|
-
return getHighlightDirectiveRegex();
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
export default function CodeBlock({
|
|
87
|
-
children,
|
|
88
|
-
className: languageClassName,
|
|
89
|
-
metastring,
|
|
90
|
-
title,
|
|
91
|
-
}) {
|
|
92
|
-
const {prism} = useThemeConfig();
|
|
93
|
-
const [showCopied, setShowCopied] = useState(false);
|
|
94
|
-
const [mounted, setMounted] = useState(false); // The Prism theme on SSR is always the default theme but the site theme
|
|
95
|
-
// can be in a different mode. React hydration doesn't update DOM styles
|
|
96
|
-
// that come from SSR. Hence force a re-render after mounting to apply the
|
|
97
|
-
// current relevant styles. There will be a flash seen of the original
|
|
98
|
-
// styles seen using this current approach but that's probably ok. Fixing
|
|
99
|
-
// the flash will require changing the theming approach and is not worth it
|
|
100
|
-
// at this point.
|
|
101
|
-
|
|
102
|
-
useEffect(() => {
|
|
103
|
-
setMounted(true);
|
|
104
|
-
}, []); // TODO: the title is provided by MDX as props automatically
|
|
105
|
-
// so we probably don't need to parse the metastring
|
|
106
|
-
// (note: title="xyz" => title prop still has the quotes)
|
|
107
|
-
|
|
108
|
-
const codeBlockTitle = parseCodeBlockTitle(metastring) || title;
|
|
109
|
-
const button = useRef(null);
|
|
110
|
-
let highlightLines = [];
|
|
111
|
-
const prismTheme = usePrismTheme(); // In case interleaved Markdown (e.g. when using CodeBlock as standalone component).
|
|
112
|
-
|
|
113
|
-
const content = Array.isArray(children) ? children.join('') : children;
|
|
114
|
-
|
|
115
|
-
if (metastring && highlightLinesRangeRegex.test(metastring)) {
|
|
116
|
-
// Tested above
|
|
117
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
118
|
-
const highlightLinesRange = metastring.match(highlightLinesRangeRegex)[1];
|
|
119
|
-
highlightLines = rangeParser(highlightLinesRange).filter((n) => n > 0);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
let language =
|
|
123
|
-
languageClassName && // Force Prism's language union type to `any` because it does not contain all available languages
|
|
124
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
125
|
-
languageClassName.replace(/language-/, '');
|
|
126
|
-
|
|
127
|
-
if (!language && prism.defaultLanguage) {
|
|
128
|
-
language = prism.defaultLanguage;
|
|
129
|
-
} // only declaration OR directive highlight can be used for a block
|
|
130
|
-
|
|
131
|
-
let code = content.replace(/\n$/, '');
|
|
132
|
-
|
|
133
|
-
if (highlightLines.length === 0 && language !== undefined) {
|
|
134
|
-
let range = '';
|
|
135
|
-
const directiveRegex = highlightDirectiveRegex(language); // go through line by line
|
|
136
|
-
|
|
137
|
-
const lines = content.replace(/\n$/, '').split('\n');
|
|
138
|
-
let blockStart; // loop through lines
|
|
139
|
-
|
|
140
|
-
for (let index = 0; index < lines.length; ) {
|
|
141
|
-
const line = lines[index]; // adjust for 0-index
|
|
142
|
-
|
|
143
|
-
const lineNumber = index + 1;
|
|
144
|
-
const match = line.match(directiveRegex);
|
|
145
|
-
|
|
146
|
-
if (match !== null) {
|
|
147
|
-
const directive = match
|
|
148
|
-
.slice(1)
|
|
149
|
-
.reduce((final, item) => final || item, undefined);
|
|
150
|
-
|
|
151
|
-
switch (directive) {
|
|
152
|
-
case 'highlight-next-line':
|
|
153
|
-
range += `${lineNumber},`;
|
|
154
|
-
break;
|
|
155
|
-
|
|
156
|
-
case 'highlight-start':
|
|
157
|
-
blockStart = lineNumber;
|
|
158
|
-
break;
|
|
159
|
-
|
|
160
|
-
case 'highlight-end':
|
|
161
|
-
range += `${blockStart}-${lineNumber - 1},`;
|
|
162
|
-
break;
|
|
163
|
-
|
|
164
|
-
default:
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
lines.splice(index, 1);
|
|
169
|
-
} else {
|
|
170
|
-
// lines without directives are unchanged
|
|
171
|
-
index += 1;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
7
|
+
import React, {isValidElement} from 'react';
|
|
8
|
+
import useIsBrowser from '@docusaurus/useIsBrowser';
|
|
9
|
+
import ElementContent from '@theme/CodeBlock/Content/Element';
|
|
10
|
+
import StringContent from '@theme/CodeBlock/Content/String';
|
|
11
|
+
/**
|
|
12
|
+
* Best attempt to make the children a plain string so it is copyable. If there
|
|
13
|
+
* are react elements, we will not be able to copy the content, and it will
|
|
14
|
+
* return `children` as-is; otherwise, it concatenates the string children
|
|
15
|
+
* together.
|
|
16
|
+
*/
|
|
174
17
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
18
|
+
function maybeStringifyChildren(children) {
|
|
19
|
+
if (React.Children.toArray(children).some((el) => isValidElement(el))) {
|
|
20
|
+
return children;
|
|
21
|
+
} // The children is now guaranteed to be one/more plain strings
|
|
178
22
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
setShowCopied(true);
|
|
182
|
-
setTimeout(() => setShowCopied(false), 2000);
|
|
183
|
-
};
|
|
23
|
+
return Array.isArray(children) ? children.join('') : children;
|
|
24
|
+
}
|
|
184
25
|
|
|
26
|
+
export default function CodeBlock({children: rawChildren, ...props}) {
|
|
27
|
+
// The Prism theme on SSR is always the default theme but the site theme can
|
|
28
|
+
// be in a different mode. React hydration doesn't update DOM styles that come
|
|
29
|
+
// from SSR. Hence force a re-render after mounting to apply the current
|
|
30
|
+
// relevant styles.
|
|
31
|
+
const isBrowser = useIsBrowser();
|
|
32
|
+
const children = maybeStringifyChildren(rawChildren);
|
|
33
|
+
const CodeBlockComp =
|
|
34
|
+
typeof children === 'string' ? StringContent : ElementContent;
|
|
185
35
|
return (
|
|
186
|
-
<
|
|
187
|
-
{
|
|
188
|
-
|
|
189
|
-
theme={prismTheme}
|
|
190
|
-
code={code}
|
|
191
|
-
language={language}>
|
|
192
|
-
{({className, style, tokens, getLineProps, getTokenProps}) => (
|
|
193
|
-
<div className={styles.codeBlockContainer}>
|
|
194
|
-
{codeBlockTitle && (
|
|
195
|
-
<div style={style} className={styles.codeBlockTitle}>
|
|
196
|
-
{codeBlockTitle}
|
|
197
|
-
</div>
|
|
198
|
-
)}
|
|
199
|
-
<div className={clsx(styles.codeBlockContent, language)}>
|
|
200
|
-
<pre
|
|
201
|
-
/* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */
|
|
202
|
-
tabIndex={0}
|
|
203
|
-
className={clsx(className, styles.codeBlock, 'thin-scrollbar', {
|
|
204
|
-
[styles.codeBlockWithTitle]: codeBlockTitle,
|
|
205
|
-
})}
|
|
206
|
-
style={style}>
|
|
207
|
-
<code className={styles.codeBlockLines}>
|
|
208
|
-
{tokens.map((line, i) => {
|
|
209
|
-
if (line.length === 1 && line[0].content === '') {
|
|
210
|
-
line[0].content = '\n'; // eslint-disable-line no-param-reassign
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
const lineProps = getLineProps({
|
|
214
|
-
line,
|
|
215
|
-
key: i,
|
|
216
|
-
});
|
|
217
|
-
|
|
218
|
-
if (highlightLines.includes(i + 1)) {
|
|
219
|
-
lineProps.className += ' docusaurus-highlight-code-line';
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return (
|
|
223
|
-
<span key={i} {...lineProps}>
|
|
224
|
-
{line.map((token, key) => (
|
|
225
|
-
<span
|
|
226
|
-
key={key}
|
|
227
|
-
{...getTokenProps({
|
|
228
|
-
token,
|
|
229
|
-
key,
|
|
230
|
-
})}
|
|
231
|
-
/>
|
|
232
|
-
))}
|
|
233
|
-
</span>
|
|
234
|
-
);
|
|
235
|
-
})}
|
|
236
|
-
</code>
|
|
237
|
-
</pre>
|
|
238
|
-
|
|
239
|
-
<button
|
|
240
|
-
ref={button}
|
|
241
|
-
type="button"
|
|
242
|
-
aria-label={translate({
|
|
243
|
-
id: 'theme.CodeBlock.copyButtonAriaLabel',
|
|
244
|
-
message: 'Copy code to clipboard',
|
|
245
|
-
description: 'The ARIA label for copy code blocks button',
|
|
246
|
-
})}
|
|
247
|
-
className={clsx(styles.copyButton, 'clean-btn')}
|
|
248
|
-
onClick={handleCopyCode}>
|
|
249
|
-
{showCopied ? (
|
|
250
|
-
<Translate
|
|
251
|
-
id="theme.CodeBlock.copied"
|
|
252
|
-
description="The copied button label on code blocks">
|
|
253
|
-
Copied
|
|
254
|
-
</Translate>
|
|
255
|
-
) : (
|
|
256
|
-
<Translate
|
|
257
|
-
id="theme.CodeBlock.copy"
|
|
258
|
-
description="The copy button label on code blocks">
|
|
259
|
-
Copy
|
|
260
|
-
</Translate>
|
|
261
|
-
)}
|
|
262
|
-
</button>
|
|
263
|
-
</div>
|
|
264
|
-
</div>
|
|
265
|
-
)}
|
|
266
|
-
</Highlight>
|
|
36
|
+
<CodeBlockComp key={String(isBrowser)} {...props}>
|
|
37
|
+
{children}
|
|
38
|
+
</CodeBlockComp>
|
|
267
39
|
);
|
|
268
40
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import useIsBrowser from '@docusaurus/useIsBrowser';
|
|
9
|
+
import {translate} from '@docusaurus/Translate';
|
|
10
|
+
import IconLightMode from '@theme/IconLightMode';
|
|
11
|
+
import IconDarkMode from '@theme/IconDarkMode';
|
|
12
|
+
import clsx from 'clsx';
|
|
13
|
+
import styles from './styles.module.css';
|
|
14
|
+
|
|
15
|
+
function ColorModeToggle({className, value, onChange}) {
|
|
16
|
+
const isBrowser = useIsBrowser();
|
|
17
|
+
const title = translate(
|
|
18
|
+
{
|
|
19
|
+
message: 'Switch between dark and light mode (currently {mode})',
|
|
20
|
+
id: 'theme.colorToggle.ariaLabel',
|
|
21
|
+
description: 'The ARIA label for the navbar color mode toggle',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
mode:
|
|
25
|
+
value === 'dark'
|
|
26
|
+
? translate({
|
|
27
|
+
message: 'dark mode',
|
|
28
|
+
id: 'theme.colorToggle.ariaLabel.mode.dark',
|
|
29
|
+
description: 'The name for the dark color mode',
|
|
30
|
+
})
|
|
31
|
+
: translate({
|
|
32
|
+
message: 'light mode',
|
|
33
|
+
id: 'theme.colorToggle.ariaLabel.mode.light',
|
|
34
|
+
description: 'The name for the light color mode',
|
|
35
|
+
}),
|
|
36
|
+
},
|
|
37
|
+
);
|
|
38
|
+
return (
|
|
39
|
+
<div className={clsx(styles.toggle, className)}>
|
|
40
|
+
<button
|
|
41
|
+
className={clsx(
|
|
42
|
+
'clean-btn',
|
|
43
|
+
styles.toggleButton,
|
|
44
|
+
!isBrowser && styles.toggleButtonDisabled,
|
|
45
|
+
)}
|
|
46
|
+
type="button"
|
|
47
|
+
onClick={() => onChange(value === 'dark' ? 'light' : 'dark')}
|
|
48
|
+
disabled={!isBrowser}
|
|
49
|
+
title={title}
|
|
50
|
+
aria-label={title}>
|
|
51
|
+
<IconLightMode
|
|
52
|
+
className={clsx(styles.toggleIcon, styles.lightToggleIcon)}
|
|
53
|
+
/>
|
|
54
|
+
<IconDarkMode
|
|
55
|
+
className={clsx(styles.toggleIcon, styles.darkToggleIcon)}
|
|
56
|
+
/>
|
|
57
|
+
</button>
|
|
58
|
+
</div>
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default React.memo(ColorModeToggle);
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.toggle {
|
|
9
|
+
width: 2rem;
|
|
10
|
+
height: 2rem;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.toggleButton {
|
|
14
|
+
-webkit-tap-highlight-color: transparent;
|
|
15
|
+
align-items: center;
|
|
16
|
+
display: flex;
|
|
17
|
+
justify-content: center;
|
|
18
|
+
width: 100%;
|
|
19
|
+
height: 100%;
|
|
20
|
+
border-radius: 50%;
|
|
21
|
+
transition: background var(--ifm-transition-fast);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.toggleButton:hover {
|
|
25
|
+
background: var(--ifm-color-emphasis-200);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
[data-theme='light'] .darkToggleIcon,
|
|
29
|
+
[data-theme='dark'] .lightToggleIcon {
|
|
30
|
+
display: none;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.toggleButtonDisabled {
|
|
34
|
+
cursor: not-allowed;
|
|
35
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
import React from 'react';
|
|
8
|
+
import clsx from 'clsx';
|
|
9
|
+
import {Details as DetailsGeneric} from '@docusaurus/theme-common/Details';
|
|
10
|
+
import styles from './styles.module.css'; // Should we have a custom details/summary comp in Infima instead of reusing
|
|
11
|
+
// alert classes?
|
|
12
|
+
|
|
13
|
+
const InfimaClasses = 'alert alert--info';
|
|
14
|
+
export default function Details({...props}) {
|
|
15
|
+
return (
|
|
16
|
+
<DetailsGeneric
|
|
17
|
+
{...props}
|
|
18
|
+
className={clsx(InfimaClasses, styles.details, props.className)}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
.details {
|
|
9
|
+
--docusaurus-details-decoration-color: var(--ifm-alert-border-color);
|
|
10
|
+
--docusaurus-details-transition: transform var(--ifm-transition-fast) ease;
|
|
11
|
+
margin: 0 0 var(--ifm-spacing-vertical);
|
|
12
|
+
border: 1px solid var(--ifm-alert-border-color);
|
|
13
|
+
}
|