From bf7d73ef7502f75a0cf4bc7127c7b9f4a2acd9ea Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Wed, 22 Jun 2022 17:15:49 +0200 Subject: [PATCH 01/13] add theme-common/internal export --- packages/docusaurus-theme-common/package.json | 1 + packages/docusaurus-theme-common/src/{index.ts => internal.ts} | 0 2 files changed, 1 insertion(+) rename packages/docusaurus-theme-common/src/{index.ts => internal.ts} (100%) diff --git a/packages/docusaurus-theme-common/package.json b/packages/docusaurus-theme-common/package.json index 6769b7f0e6f5..818db25ed9ee 100644 --- a/packages/docusaurus-theme-common/package.json +++ b/packages/docusaurus-theme-common/package.json @@ -10,6 +10,7 @@ ], "exports": { ".": "./lib/index.js", + "./internal": "./lib/internal.js", "./Details": "./lib/components/Details/index.js" }, "scripts": { diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/internal.ts similarity index 100% rename from packages/docusaurus-theme-common/src/index.ts rename to packages/docusaurus-theme-common/src/internal.ts From e1109fab24ac4a9ac6fa93569b865754f4a8cd37 Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Wed, 22 Jun 2022 19:00:18 +0200 Subject: [PATCH 02/13] Split @docusaurus/theme-common into public/internal apis --- .../docusaurus-plugin-pwa/src/registerSw.ts | 2 +- .../src/theme/AnnouncementBar/index.tsx | 3 +- .../src/theme/CodeBlock/Container/index.tsx | 2 +- .../src/theme/CodeBlock/Content/String.tsx | 5 +- .../src/theme/DocBreadcrumbs/index.tsx | 4 +- .../src/theme/DocCard/index.tsx | 5 +- .../src/theme/DocCardList/index.tsx | 2 +- .../src/theme/DocItem/Content/index.tsx | 3 +- .../src/theme/DocItem/Footer/index.tsx | 7 +-- .../src/theme/DocItem/Layout/index.tsx | 3 +- .../src/theme/DocItem/Metadata/index.tsx | 3 +- .../src/theme/DocItem/Paginator/index.tsx | 2 +- .../src/theme/DocItem/TOC/Desktop/index.tsx | 3 +- .../src/theme/DocItem/TOC/Mobile/index.tsx | 4 +- .../src/theme/DocItem/index.tsx | 3 +- .../src/theme/DocPage/Layout/Main/index.tsx | 2 +- .../theme/DocPage/Layout/Sidebar/index.tsx | 3 +- .../src/theme/DocPage/Layout/index.tsx | 2 +- .../src/theme/DocPage/index.tsx | 5 +- .../DocSidebar/Desktop/Content/index.tsx | 4 +- .../src/theme/DocSidebar/Mobile/index.tsx | 2 +- .../theme/DocSidebarItem/Category/index.tsx | 5 +- .../src/theme/DocSidebarItem/Link/index.tsx | 3 +- .../src/theme/DocSidebarItems/index.tsx | 2 +- .../src/theme/DocVersionBadge/index.tsx | 3 +- .../src/theme/DocVersionBanner/index.tsx | 5 +- .../src/theme/Layout/index.tsx | 7 +-- .../src/theme/LayoutProviders/index.tsx | 2 +- .../src/theme/Navbar/Content/index.tsx | 4 +- .../src/theme/Navbar/Layout/index.tsx | 4 +- .../Navbar/MobileSidebar/Header/index.tsx | 2 +- .../Navbar/MobileSidebar/Layout/index.tsx | 2 +- .../MobileSidebar/PrimaryMenu/index.tsx | 3 +- .../MobileSidebar/SecondaryMenu/index.tsx | 3 +- .../Navbar/MobileSidebar/Toggle/index.tsx | 2 +- .../src/theme/Navbar/MobileSidebar/index.tsx | 2 +- .../src/theme/NavbarItem/DocNavbarItem.tsx | 2 +- .../theme/NavbarItem/DocSidebarNavbarItem.tsx | 2 +- .../DocsVersionDropdownNavbarItem.tsx | 2 +- .../NavbarItem/DocsVersionNavbarItem.tsx | 2 +- .../theme/NavbarItem/DropdownNavbarItem.tsx | 4 +- .../LocaleDropdownNavbarItem/index.tsx | 2 +- .../src/theme/SiteMetadata/index.tsx | 5 +- .../src/theme/SkipToContent/index.tsx | 2 +- .../src/theme/TOCCollapsible/index.tsx | 2 +- .../src/theme/TOCItems/index.tsx | 6 +- .../src/theme/Tabs/__tests__/index.test.tsx | 2 +- .../src/theme/Tabs/index.tsx | 2 +- .../src/translations.ts | 4 +- packages/docusaurus-theme-common/src/index.ts | 53 +++++++++++++++++ .../docusaurus-theme-common/src/internal.ts | 58 ++++--------------- .../src/theme/SearchBar/index.tsx | 3 +- .../src/theme/SearchPage/index.tsx | 6 +- website/src/components/Versions.tsx | 2 +- website/src/utils/colorUtils.ts | 2 +- 55 files changed, 152 insertions(+), 127 deletions(-) create mode 100644 packages/docusaurus-theme-common/src/index.ts diff --git a/packages/docusaurus-plugin-pwa/src/registerSw.ts b/packages/docusaurus-plugin-pwa/src/registerSw.ts index 1c834d3be843..516f24cf1ffd 100644 --- a/packages/docusaurus-plugin-pwa/src/registerSw.ts +++ b/packages/docusaurus-plugin-pwa/src/registerSw.ts @@ -6,7 +6,7 @@ */ import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment'; -import {createStorageSlot} from '@docusaurus/theme-common'; +import {createStorageSlot} from '@docusaurus/theme-common/internal'; // First: read the env variables (provided by Webpack) /* eslint-disable prefer-destructuring */ diff --git a/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.tsx b/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.tsx index 26ad85727639..771136d4d6da 100644 --- a/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/AnnouncementBar/index.tsx @@ -7,7 +7,8 @@ import React from 'react'; import clsx from 'clsx'; -import {useThemeConfig, useAnnouncementBar} from '@docusaurus/theme-common'; +import {useThemeConfig} from '@docusaurus/theme-common'; +import {useAnnouncementBar} from '@docusaurus/theme-common/internal'; import {translate} from '@docusaurus/Translate'; import IconClose from '@theme/IconClose'; diff --git a/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx b/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx index 3e3961027373..af1c0400db06 100644 --- a/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx @@ -8,9 +8,9 @@ import React, {type ComponentProps} from 'react'; import clsx from 'clsx'; import { + ThemeClassNames, usePrismTheme, getPrismCssVariables, - ThemeClassNames, } from '@docusaurus/theme-common'; import styles from './styles.module.css'; diff --git a/packages/docusaurus-theme-classic/src/theme/CodeBlock/Content/String.tsx b/packages/docusaurus-theme-classic/src/theme/CodeBlock/Content/String.tsx index 9947164ddbef..e1c72d0640ba 100644 --- a/packages/docusaurus-theme-classic/src/theme/CodeBlock/Content/String.tsx +++ b/packages/docusaurus-theme-classic/src/theme/CodeBlock/Content/String.tsx @@ -7,15 +7,14 @@ import React from 'react'; import clsx from 'clsx'; +import {useThemeConfig, usePrismTheme} from '@docusaurus/theme-common'; import { - useThemeConfig, parseCodeBlockTitle, parseLanguage, parseLines, containsLineNumbers, - usePrismTheme, useCodeWordWrap, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import Highlight, {defaultProps, type Language} from 'prism-react-renderer'; import Line from '@theme/CodeBlock/Line'; import CopyButton from '@theme/CodeBlock/CopyButton'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocBreadcrumbs/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocBreadcrumbs/index.tsx index 44200b2f329a..29fad8f97044 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocBreadcrumbs/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocBreadcrumbs/index.tsx @@ -7,11 +7,11 @@ import React, {type ReactNode} from 'react'; import clsx from 'clsx'; +import {ThemeClassNames} from '@docusaurus/theme-common'; import { - ThemeClassNames, useSidebarBreadcrumbs, useHomePageRoute, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import Link from '@docusaurus/Link'; import useBaseUrl from '@docusaurus/useBaseUrl'; import {translate} from '@docusaurus/Translate'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocCard/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocCard/index.tsx index fc63f1949f47..7409ee970370 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocCard/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocCard/index.tsx @@ -8,7 +8,10 @@ import React, {type ReactNode} from 'react'; import clsx from 'clsx'; import Link from '@docusaurus/Link'; -import {findFirstCategoryLink, useDocById} from '@docusaurus/theme-common'; +import { + findFirstCategoryLink, + useDocById, +} from '@docusaurus/theme-common/internal'; import isInternalUrl from '@docusaurus/isInternalUrl'; import {translate} from '@docusaurus/Translate'; import type {Props} from '@theme/DocCard'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocCardList/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocCardList/index.tsx index b2d480697ac3..c4ace5f5ee6c 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocCardList/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocCardList/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import clsx from 'clsx'; -import {findFirstCategoryLink} from '@docusaurus/theme-common'; +import {findFirstCategoryLink} from '@docusaurus/theme-common/internal'; import DocCard from '@theme/DocCard'; import type {Props} from '@theme/DocCardList'; import type {PropSidebarItem} from '@docusaurus/plugin-content-docs'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/Content/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/Content/index.tsx index 4c7ff285c47b..7ac92026a05f 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/Content/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/Content/index.tsx @@ -7,7 +7,8 @@ import React from 'react'; import clsx from 'clsx'; -import {ThemeClassNames, useDoc} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useDoc} from '@docusaurus/theme-common/internal'; import Heading from '@theme/Heading'; import MDXContent from '@theme/MDXContent'; import type {Props} from '@theme/DocItem/Content'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/Footer/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/Footer/index.tsx index 0522e95207a2..971d7a8ff754 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/Footer/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/Footer/index.tsx @@ -7,11 +7,8 @@ import React from 'react'; import clsx from 'clsx'; -import { - ThemeClassNames, - useDoc, - type DocContextValue, -} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useDoc, type DocContextValue} from '@docusaurus/theme-common/internal'; import LastUpdated from '@theme/LastUpdated'; import EditThisPage from '@theme/EditThisPage'; import TagsListInline, { diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/Layout/index.tsx index b09d6744765e..ff5ab6d1a39a 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/Layout/index.tsx @@ -7,7 +7,8 @@ import React from 'react'; import clsx from 'clsx'; -import {useWindowSize, useDoc} from '@docusaurus/theme-common'; +import {useWindowSize} from '@docusaurus/theme-common'; +import {useDoc} from '@docusaurus/theme-common/internal'; import DocItemPaginator from '@theme/DocItem/Paginator'; import DocVersionBanner from '@theme/DocVersionBanner'; import DocVersionBadge from '@theme/DocVersionBadge'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/Metadata/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/Metadata/index.tsx index c2f41a75628f..3e75ee053a0d 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/Metadata/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/Metadata/index.tsx @@ -6,7 +6,8 @@ */ import React from 'react'; -import {PageMetadata, useDoc} from '@docusaurus/theme-common'; +import {PageMetadata} from '@docusaurus/theme-common'; +import {useDoc} from '@docusaurus/theme-common/internal'; export default function DocItemMetadata(): JSX.Element { const {metadata, frontMatter, assets} = useDoc(); diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/Paginator/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/Paginator/index.tsx index 6a42fc8abba9..0ef558cb529e 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/Paginator/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/Paginator/index.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import {useDoc} from '@docusaurus/theme-common'; +import {useDoc} from '@docusaurus/theme-common/internal'; import DocPaginator from '@theme/DocPaginator'; /** diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Desktop/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Desktop/index.tsx index 1ec0a1f59162..14bf447cd855 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Desktop/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Desktop/index.tsx @@ -6,7 +6,8 @@ */ import React from 'react'; -import {ThemeClassNames, useDoc} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useDoc} from '@docusaurus/theme-common/internal'; import TOC from '@theme/TOC'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Mobile/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Mobile/index.tsx index dd3a954dbbfb..c941e77b6274 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Mobile/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/TOC/Mobile/index.tsx @@ -7,7 +7,9 @@ import React from 'react'; import clsx from 'clsx'; -import {ThemeClassNames, useDoc} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useDoc} from '@docusaurus/theme-common/internal'; + import TOCCollapsible from '@theme/TOCCollapsible'; import styles from './styles.module.css'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocItem/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocItem/index.tsx index ff960872b2ac..e4b0c7cf1046 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocItem/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocItem/index.tsx @@ -6,7 +6,8 @@ */ import React from 'react'; -import {HtmlClassNameProvider, DocProvider} from '@docusaurus/theme-common'; +import {HtmlClassNameProvider} from '@docusaurus/theme-common'; +import {DocProvider} from '@docusaurus/theme-common/internal'; import DocItemMetadata from '@theme/DocItem/Metadata'; import DocItemLayout from '@theme/DocItem/Layout'; import type {Props} from '@theme/DocItem'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Main/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Main/index.tsx index 61ccdafdb6cc..eb19b3549c89 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Main/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Main/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import clsx from 'clsx'; -import {useDocsSidebar} from '@docusaurus/theme-common'; +import {useDocsSidebar} from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/DocPage/Layout/Main'; import styles from './styles.module.css'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Sidebar/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Sidebar/index.tsx index 150fd888a3ef..a88302612113 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Sidebar/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/Sidebar/index.tsx @@ -7,7 +7,8 @@ import React, {type ReactNode, useState, useCallback} from 'react'; import clsx from 'clsx'; -import {ThemeClassNames, useDocsSidebar} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useDocsSidebar} from '@docusaurus/theme-common/internal'; import {useLocation} from '@docusaurus/router'; import DocSidebar from '@theme/DocSidebar'; import ExpandButton from '@theme/DocPage/Layout/Sidebar/ExpandButton'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/index.tsx index d5a48c1a68b1..0ff53b286d16 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocPage/Layout/index.tsx @@ -6,7 +6,7 @@ */ import React, {useState} from 'react'; -import {useDocsSidebar} from '@docusaurus/theme-common'; +import {useDocsSidebar} from '@docusaurus/theme-common/internal'; import Layout from '@theme/Layout'; import BackToTopButton from '@theme/BackToTopButton'; import DocPageLayoutSidebar from '@theme/DocPage/Layout/Sidebar'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx index 3e45dbbda399..506fd5c72aa7 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocPage/index.tsx @@ -7,14 +7,13 @@ import React from 'react'; import clsx from 'clsx'; +import {HtmlClassNameProvider, ThemeClassNames} from '@docusaurus/theme-common'; import { - HtmlClassNameProvider, - ThemeClassNames, docVersionSearchTag, DocsSidebarProvider, DocsVersionProvider, useDocRouteMetadata, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import DocPageLayout from '@theme/DocPage/Layout'; import NotFound from '@theme/NotFound'; import SearchMetadata from '@theme/SearchMetadata'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/Content/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/Content/index.tsx index f72a9c27a3d0..120f4509c1a1 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/Content/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Desktop/Content/index.tsx @@ -7,11 +7,11 @@ import React, {useState} from 'react'; import clsx from 'clsx'; +import {ThemeClassNames} from '@docusaurus/theme-common'; import { - ThemeClassNames, useAnnouncementBar, useScrollPosition, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import DocSidebarItems from '@theme/DocSidebarItems'; import type {Props} from '@theme/DocSidebar/Desktop/Content'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx index 48314ab6b12e..4cfd2b98a520 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebar/Mobile/index.tsx @@ -11,8 +11,8 @@ import { NavbarSecondaryMenuFiller, type NavbarSecondaryMenuComponent, ThemeClassNames, - useNavbarMobileSidebar, } from '@docusaurus/theme-common'; +import {useNavbarMobileSidebar} from '@docusaurus/theme-common/internal'; import DocSidebarItems from '@theme/DocSidebarItems'; import type {Props} from '@theme/DocSidebar/Mobile'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx index 18047a9225ab..126744d400c0 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx @@ -7,17 +7,16 @@ import React, {type ComponentProps, useEffect, useMemo} from 'react'; import clsx from 'clsx'; +import {ThemeClassNames, useThemeConfig} from '@docusaurus/theme-common'; import { isActiveSidebarItem, usePrevious, Collapsible, useCollapsible, findFirstCategoryLink, - ThemeClassNames, - useThemeConfig, useDocSidebarItemsExpandedState, isSamePath, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import Link from '@docusaurus/Link'; import {translate} from '@docusaurus/Translate'; import useIsBrowser from '@docusaurus/useIsBrowser'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Link/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Link/index.tsx index fc87268e01f0..f5a686722212 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Link/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Link/index.tsx @@ -7,7 +7,8 @@ import React from 'react'; import clsx from 'clsx'; -import {isActiveSidebarItem, ThemeClassNames} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {isActiveSidebarItem} from '@docusaurus/theme-common/internal'; import Link from '@docusaurus/Link'; import isInternalUrl from '@docusaurus/isInternalUrl'; import IconExternalLink from '@theme/IconExternalLink'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx index 041c553f284f..84060b9179d7 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebarItems/index.tsx @@ -6,7 +6,7 @@ */ import React, {memo} from 'react'; -import {DocSidebarItemsExpandedStateProvider} from '@docusaurus/theme-common'; +import {DocSidebarItemsExpandedStateProvider} from '@docusaurus/theme-common/internal'; import DocSidebarItem from '@theme/DocSidebarItem'; import type {Props} from '@theme/DocSidebarItems'; diff --git a/packages/docusaurus-theme-classic/src/theme/DocVersionBadge/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocVersionBadge/index.tsx index dc4a2c90bbb1..d867068d0ad4 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocVersionBadge/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocVersionBadge/index.tsx @@ -8,7 +8,8 @@ import React from 'react'; import clsx from 'clsx'; import Translate from '@docusaurus/Translate'; -import {ThemeClassNames, useDocsVersion} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useDocsVersion} from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/DocVersionBadge'; export default function DocVersionBadge({ diff --git a/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx index 979a4f2b90a7..a9c1835bdf44 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocVersionBanner/index.tsx @@ -15,12 +15,11 @@ import { useDocVersionSuggestions, type GlobalVersion, } from '@docusaurus/plugin-content-docs/client'; +import {ThemeClassNames} from '@docusaurus/theme-common'; import { - ThemeClassNames, useDocsPreferredVersion, useDocsVersion, -} from '@docusaurus/theme-common'; - +} from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/DocVersionBanner'; import type { VersionBanner, diff --git a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx index 7f58712af95c..47253c1a4c2d 100644 --- a/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Layout/index.tsx @@ -8,11 +8,8 @@ import React from 'react'; import clsx from 'clsx'; import ErrorBoundary from '@docusaurus/ErrorBoundary'; -import { - PageMetadata, - ThemeClassNames, - useKeyboardNavigation, -} from '@docusaurus/theme-common'; +import {PageMetadata, ThemeClassNames} from '@docusaurus/theme-common'; +import {useKeyboardNavigation} from '@docusaurus/theme-common/internal'; import SkipToContent from '@theme/SkipToContent'; import AnnouncementBar from '@theme/AnnouncementBar'; import Navbar from '@theme/Navbar'; diff --git a/packages/docusaurus-theme-classic/src/theme/LayoutProviders/index.tsx b/packages/docusaurus-theme-classic/src/theme/LayoutProviders/index.tsx index 9eba0ff42336..063646f93a3c 100644 --- a/packages/docusaurus-theme-classic/src/theme/LayoutProviders/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/LayoutProviders/index.tsx @@ -14,7 +14,7 @@ import { ScrollControllerProvider, NavbarProvider, PluginHtmlClassNameProvider, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/LayoutProviders'; export default function LayoutProviders({children}: Props): JSX.Element { diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/Content/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/Content/index.tsx index c81437a3fa8b..e499198ecabf 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/Content/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/Content/index.tsx @@ -6,11 +6,11 @@ */ import React, {type ReactNode} from 'react'; +import {useThemeConfig} from '@docusaurus/theme-common'; import { splitNavbarItems, useNavbarMobileSidebar, - useThemeConfig, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import NavbarItem, {type Props as NavbarItemConfig} from '@theme/NavbarItem'; import NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle'; import SearchBar from '@theme/SearchBar'; diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/Layout/index.tsx index b674fe726985..b957573e8cc9 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/Layout/index.tsx @@ -7,11 +7,11 @@ import React, {type ComponentProps} from 'react'; import clsx from 'clsx'; +import {useThemeConfig} from '@docusaurus/theme-common'; import { - useThemeConfig, useHideableNavbar, useNavbarMobileSidebar, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import NavbarMobileSidebar from '@theme/Navbar/MobileSidebar'; import type {Props} from '@theme/Navbar/Layout'; diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Header/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Header/index.tsx index 139377115323..ed08c5375010 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Header/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Header/index.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import {useNavbarMobileSidebar} from '@docusaurus/theme-common'; +import {useNavbarMobileSidebar} from '@docusaurus/theme-common/internal'; import NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle'; import IconClose from '@theme/IconClose'; import NavbarLogo from '@theme/Navbar/Logo'; diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Layout/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Layout/index.tsx index 6d63029dbd31..b3bbaec8fae0 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Layout/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Layout/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import clsx from 'clsx'; -import {useNavbarSecondaryMenu} from '@docusaurus/theme-common'; +import {useNavbarSecondaryMenu} from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/Navbar/MobileSidebar/Layout'; export default function NavbarMobileSidebarLayout({ diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx index 3fec36ad617d..5b3c180b7506 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx @@ -6,7 +6,8 @@ */ import React from 'react'; -import {useNavbarMobileSidebar, useThemeConfig} from '@docusaurus/theme-common'; +import {useThemeConfig} from '@docusaurus/theme-common'; +import {useNavbarMobileSidebar} from '@docusaurus/theme-common/internal'; import NavbarItem, {type Props as NavbarItemConfig} from '@theme/NavbarItem'; function useNavbarItems() { diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx index a15ba55c5684..3fe85e1a9b45 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx @@ -6,7 +6,8 @@ */ import React, {type ComponentProps} from 'react'; -import {useNavbarSecondaryMenu, useThemeConfig} from '@docusaurus/theme-common'; +import {useThemeConfig} from '@docusaurus/theme-common'; +import {useNavbarSecondaryMenu} from '@docusaurus/theme-common/internal'; import Translate from '@docusaurus/Translate'; function SecondaryMenuBackButton(props: ComponentProps<'button'>) { diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Toggle/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Toggle/index.tsx index 6ac64154d36c..537680caeded 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/Toggle/index.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import {useNavbarMobileSidebar} from '@docusaurus/theme-common'; +import {useNavbarMobileSidebar} from '@docusaurus/theme-common/internal'; import IconMenu from '@theme/IconMenu'; export default function MobileSidebarToggle(): JSX.Element { diff --git a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/index.tsx b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/index.tsx index 4ee13c284efc..44467ae79363 100644 --- a/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Navbar/MobileSidebar/index.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useLockBodyScroll, useNavbarMobileSidebar, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import NavbarMobileSidebarLayout from '@theme/Navbar/MobileSidebar/Layout'; import NavbarMobileSidebarHeader from '@theme/Navbar/MobileSidebar/Header'; import NavbarMobileSidebarPrimaryMenu from '@theme/Navbar/MobileSidebar/PrimaryMenu'; diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx index 76df1591ba90..3703fdec1fa8 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocNavbarItem.tsx @@ -7,7 +7,7 @@ import React from 'react'; import {useActiveDocContext} from '@docusaurus/plugin-content-docs/client'; -import {useLayoutDoc} from '@docusaurus/theme-common'; +import {useLayoutDoc} from '@docusaurus/theme-common/internal'; import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem'; import type {Props} from '@theme/NavbarItem/DocNavbarItem'; diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocSidebarNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocSidebarNavbarItem.tsx index 08771f8aa6c7..2fefc7b3b2a9 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocSidebarNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocSidebarNavbarItem.tsx @@ -7,7 +7,7 @@ import React from 'react'; import {useActiveDocContext} from '@docusaurus/plugin-content-docs/client'; -import {useLayoutDocsSidebar} from '@docusaurus/theme-common'; +import {useLayoutDocsSidebar} from '@docusaurus/theme-common/internal'; import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem'; import type {Props} from '@theme/NavbarItem/DocSidebarNavbarItem'; diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx index 8893306f7abd..831e6fb06b07 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionDropdownNavbarItem.tsx @@ -13,7 +13,7 @@ import { import { useDocsPreferredVersion, useDocsVersionCandidates, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import {translate} from '@docusaurus/Translate'; import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem'; import DropdownNavbarItem from '@theme/NavbarItem/DropdownNavbarItem'; diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx index aade004e44d4..10d197992b7c 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DocsVersionNavbarItem.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import {useDocsVersionCandidates} from '@docusaurus/theme-common'; +import {useDocsVersionCandidates} from '@docusaurus/theme-common/internal'; import DefaultNavbarItem from '@theme/NavbarItem/DefaultNavbarItem'; import type {Props} from '@theme/NavbarItem/DocsVersionNavbarItem'; import type {GlobalVersion} from '@docusaurus/plugin-content-docs/client'; diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx index 3678d9d0bb03..ca5f93732f60 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx @@ -7,13 +7,13 @@ import React, {useState, useRef, useEffect} from 'react'; import clsx from 'clsx'; +import {isRegexpStringMatch} from '@docusaurus/theme-common'; import { isSamePath, useCollapsible, Collapsible, - isRegexpStringMatch, useLocalPathname, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import NavbarNavLink from '@theme/NavbarItem/NavbarNavLink'; import NavbarItem, {type LinkLikeNavbarItemProps} from '@theme/NavbarItem'; import type { diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx index 3e6a20838393..3a6022c87e3d 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/LocaleDropdownNavbarItem/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; -import {useAlternatePageUtils} from '@docusaurus/theme-common'; +import {useAlternatePageUtils} from '@docusaurus/theme-common/internal'; import {translate} from '@docusaurus/Translate'; import DropdownNavbarItem from '@theme/NavbarItem/DropdownNavbarItem'; import IconLanguage from '@theme/IconLanguage'; diff --git a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx index 5fa827569181..9a30c775fff2 100644 --- a/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/SiteMetadata/index.tsx @@ -9,13 +9,12 @@ import React from 'react'; import Head from '@docusaurus/Head'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import useBaseUrl from '@docusaurus/useBaseUrl'; +import {PageMetadata, useThemeConfig} from '@docusaurus/theme-common'; import { - PageMetadata, DEFAULT_SEARCH_TAG, useAlternatePageUtils, - useThemeConfig, keyboardFocusedClassName, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import {useLocation} from '@docusaurus/router'; import SearchMetadata from '@theme/SearchMetadata'; diff --git a/packages/docusaurus-theme-classic/src/theme/SkipToContent/index.tsx b/packages/docusaurus-theme-classic/src/theme/SkipToContent/index.tsx index 6092df125130..0efd066e409f 100644 --- a/packages/docusaurus-theme-classic/src/theme/SkipToContent/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/SkipToContent/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import Translate from '@docusaurus/Translate'; -import {useSkipToContent} from '@docusaurus/theme-common'; +import {useSkipToContent} from '@docusaurus/theme-common/internal'; import styles from './styles.module.css'; diff --git a/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx b/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx index 19680832c205..c43c19819d80 100644 --- a/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import clsx from 'clsx'; -import {useCollapsible, Collapsible} from '@docusaurus/theme-common'; +import {useCollapsible, Collapsible} from '@docusaurus/theme-common/internal'; import TOCItems from '@theme/TOCItems'; import CollapseButton from '@theme/TOCCollapsible/CollapseButton'; import type {Props} from '@theme/TOCCollapsible'; diff --git a/packages/docusaurus-theme-classic/src/theme/TOCItems/index.tsx b/packages/docusaurus-theme-classic/src/theme/TOCItems/index.tsx index 3743706a4462..c150cf87cb09 100644 --- a/packages/docusaurus-theme-classic/src/theme/TOCItems/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/TOCItems/index.tsx @@ -6,12 +6,12 @@ */ import React, {useMemo} from 'react'; +import {useThemeConfig} from '@docusaurus/theme-common'; import { - type TOCHighlightConfig, - useThemeConfig, useTOCHighlight, useFilteredAndTreeifiedTOC, -} from '@docusaurus/theme-common'; + type TOCHighlightConfig, +} from '@docusaurus/theme-common/internal'; import TOCItemTree from '@theme/TOCItems/Tree'; import type {Props} from '@theme/TOCItems'; diff --git a/packages/docusaurus-theme-classic/src/theme/Tabs/__tests__/index.test.tsx b/packages/docusaurus-theme-classic/src/theme/Tabs/__tests__/index.test.tsx index 79329bf518aa..cedcbe9f4120 100644 --- a/packages/docusaurus-theme-classic/src/theme/Tabs/__tests__/index.test.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Tabs/__tests__/index.test.tsx @@ -10,7 +10,7 @@ import renderer from 'react-test-renderer'; import { TabGroupChoiceProvider, ScrollControllerProvider, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import Tabs from '../index'; import TabItem from '../../TabItem'; diff --git a/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx b/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx index 098879881f9e..f2bf056cb813 100644 --- a/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx @@ -17,7 +17,7 @@ import { useScrollPositionBlocker, duplicates, useTabGroupChoice, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/Tabs'; import type {Props as TabItemProps} from '@theme/TabItem'; diff --git a/packages/docusaurus-theme-classic/src/translations.ts b/packages/docusaurus-theme-classic/src/translations.ts index cc087a87d85a..3b0e8f0ece5d 100644 --- a/packages/docusaurus-theme-classic/src/translations.ts +++ b/packages/docusaurus-theme-classic/src/translations.ts @@ -10,13 +10,13 @@ import {mergeTranslations} from '@docusaurus/utils'; import type {TranslationFile, TranslationFileContent} from '@docusaurus/types'; import type { ThemeConfig, - Navbar, - NavbarItem, Footer, MultiColumnFooter, SimpleFooter, } from '@docusaurus/theme-common'; +import type {Navbar, NavbarItem} from '@docusaurus/theme-common/internal'; + function getNavbarTranslationFile(navbar: Navbar): TranslationFileContent { // TODO handle properly all the navbar item types here! function flattenNavbarItems(items: NavbarItem[]): NavbarItem[] { diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts new file mode 100644 index 000000000000..523cec7735b8 --- /dev/null +++ b/packages/docusaurus-theme-common/src/index.ts @@ -0,0 +1,53 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export {useThemeConfig} from './utils/useThemeConfig'; +export type { + ThemeConfig, + UserThemeConfig, + MultiColumnFooter, + SimpleFooter, + Footer, + FooterLogo, + FooterLinkItem, + ColorModeConfig, +} from './utils/useThemeConfig'; + +export {useColorMode} from './contexts/colorMode'; + +export {usePrismTheme} from './hooks/usePrismTheme'; +export {getPrismCssVariables} from './utils/codeBlockUtils'; + +export {useCurrentSidebarCategory} from './utils/docsUtils'; + +export {usePluralForm} from './utils/usePluralForm'; + +export {PageMetadata, HtmlClassNameProvider} from './utils/metadataUtils'; + +export {ThemeClassNames} from './utils/ThemeClassNames'; + +export {useContextualSearchFilters} from './utils/searchUtils'; + +// TODO Should these APIs bellow be public? + +export {useBackToTopButton} from './hooks/useBackToTopButton'; +export {useWindowSize} from './hooks/useWindowSize'; + +export { + NavbarSecondaryMenuFiller, + type NavbarSecondaryMenuComponent, +} from './contexts/navbarSecondaryMenu/content'; + +export { + translateTagsPageTitle, + listTagsByLetters, + type TagLetterEntry, +} from './utils/tagsUtils'; + +export {isMultiColumnFooterLinks} from './utils/footerUtils'; + +export {isRegexpStringMatch} from './utils/regexpUtils'; diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index 67c34bc8cead..ace683a577df 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -5,19 +5,18 @@ * LICENSE file in the root directory of this source tree. */ +// This re-export permits to handle some level of retro-compatibility +// Users might swizzle unsafe components, using our internal apis. +// When we move an API from internal to public, former internal imports +// should keep working => less annoying for users. +// TODO: how do we detect legacy internal imports in our own code? + +// export * from './index'; + export { - useThemeConfig, - type ThemeConfig, - type UserThemeConfig, type Navbar, type NavbarItem, type NavbarLogo, - type MultiColumnFooter, - type SimpleFooter, - type Footer, - type FooterLogo, - type FooterLinkItem, - type ColorModeConfig, } from './utils/useThemeConfig'; export { DocSidebarItemsExpandedStateProvider, @@ -37,21 +36,15 @@ export { parseLanguage, parseLines, containsLineNumbers, - getPrismCssVariables, } from './utils/codeBlockUtils'; -export { - docVersionSearchTag, - DEFAULT_SEARCH_TAG, - useContextualSearchFilters, -} from './utils/searchUtils'; +export {docVersionSearchTag, DEFAULT_SEARCH_TAG} from './utils/searchUtils'; export { isDocsPluginEnabled, useDocById, findSidebarCategory, findFirstCategoryLink, - useCurrentSidebarCategory, isActiveSidebarItem, useSidebarBreadcrumbs, useDocsVersionCandidates, @@ -62,8 +55,6 @@ export { export {useTitleFormatter} from './utils/generalUtils'; -export {usePluralForm} from './utils/usePluralForm'; - export {useLocationChange} from './utils/useLocationChange'; export {useCollapsible, Collapsible} from './components/Collapsible'; @@ -76,8 +67,6 @@ export { export {duplicates, uniq} from './utils/jsUtils'; -export {ThemeClassNames} from './utils/ThemeClassNames'; - export { AnnouncementBarProvider, useAnnouncementBar, @@ -85,12 +74,6 @@ export { export {useLocalPathname} from './utils/useLocalPathname'; -export { - translateTagsPageTitle, - listTagsByLetters, - type TagLetterEntry, -} from './utils/tagsUtils'; - export {useHistoryPopHandler} from './utils/historyUtils'; export { @@ -104,8 +87,6 @@ export { type TOCTreeNode, } from './utils/tocUtils'; -export {isMultiColumnFooterLinks} from './utils/footerUtils'; - export { ScrollControllerProvider, useScrollController, @@ -121,21 +102,11 @@ export { ReactContextError, } from './utils/reactUtils'; -export {isRegexpStringMatch} from './utils/regexpUtils'; - export {useHomePageRoute, isSamePath} from './utils/routesUtils'; -export { - PageMetadata, - HtmlClassNameProvider, - PluginHtmlClassNameProvider, -} from './utils/metadataUtils'; +export {PluginHtmlClassNameProvider} from './utils/metadataUtils'; -export { - useColorMode, - ColorModeProvider, - type ColorMode, -} from './contexts/colorMode'; +export {ColorModeProvider, type ColorMode} from './contexts/colorMode'; export {splitNavbarItems, NavbarProvider} from './utils/navbarUtils'; @@ -145,21 +116,14 @@ export { } from './contexts/tabGroupChoice'; export {useNavbarMobileSidebar} from './contexts/navbarMobileSidebar'; -export { - NavbarSecondaryMenuFiller, - type NavbarSecondaryMenuComponent, -} from './contexts/navbarSecondaryMenu/content'; export {useNavbarSecondaryMenu} from './contexts/navbarSecondaryMenu/display'; -export {useBackToTopButton} from './hooks/useBackToTopButton'; export {useHideableNavbar} from './hooks/useHideableNavbar'; export { useKeyboardNavigation, keyboardFocusedClassName, } from './hooks/useKeyboardNavigation'; -export {usePrismTheme} from './hooks/usePrismTheme'; export {useLockBodyScroll} from './hooks/useLockBodyScroll'; -export {useWindowSize} from './hooks/useWindowSize'; export {useSearchPage} from './hooks/useSearchPage'; export {useCodeWordWrap} from './hooks/useCodeWordWrap'; export {useSkipToContent} from './hooks/useSkipToContent'; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx index beef496dffcd..52b6a1cf8558 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchBar/index.tsx @@ -12,7 +12,8 @@ import {useHistory} from '@docusaurus/router'; import {useBaseUrlUtils} from '@docusaurus/useBaseUrl'; import Link from '@docusaurus/Link'; import Head from '@docusaurus/Head'; -import {isRegexpStringMatch, useSearchPage} from '@docusaurus/theme-common'; +import {isRegexpStringMatch} from '@docusaurus/theme-common'; +import {useSearchPage} from '@docusaurus/theme-common/internal'; import {DocSearchButton, useDocSearchKeyboardEvents} from '@docsearch/react'; import {useAlgoliaContextualFacetFilters} from '@docusaurus/theme-search-algolia/client'; import Translate, {translate} from '@docusaurus/Translate'; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx b/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx index b10d82f207b9..ed9bbde023f3 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx @@ -18,12 +18,14 @@ import Link from '@docusaurus/Link'; import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment'; import { HtmlClassNameProvider, - useTitleFormatter, usePluralForm, isRegexpStringMatch, +} from '@docusaurus/theme-common'; +import { + useTitleFormatter, useDynamicCallback, useSearchPage, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import {useAllDocsData} from '@docusaurus/plugin-content-docs/client'; import Translate, {translate} from '@docusaurus/Translate'; diff --git a/website/src/components/Versions.tsx b/website/src/components/Versions.tsx index 9542c88a8328..98ff4f968231 100644 --- a/website/src/components/Versions.tsx +++ b/website/src/components/Versions.tsx @@ -12,7 +12,7 @@ import React, { useRef, type ReactNode, } from 'react'; -import {useDocsPreferredVersion} from '@docusaurus/theme-common'; +import {useDocsPreferredVersion} from '@docusaurus/theme-common/internal'; import {useVersions} from '@docusaurus/plugin-content-docs/client'; import Translate from '@docusaurus/Translate'; import CodeBlock from '@theme/CodeBlock'; diff --git a/website/src/utils/colorUtils.ts b/website/src/utils/colorUtils.ts index cfca65f6f5dc..cd4f7e1e50c7 100644 --- a/website/src/utils/colorUtils.ts +++ b/website/src/utils/colorUtils.ts @@ -6,7 +6,7 @@ */ import Color from 'color'; -import {createStorageSlot} from '@docusaurus/theme-common'; +import {createStorageSlot} from '@docusaurus/theme-common/internal'; // These values are shared between the Toggle component and the ColorGenerator From 5a6fa6c4090cf6a4878b83ad63e3e5fb0c0a0512 Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Wed, 22 Jun 2022 19:27:40 +0200 Subject: [PATCH 03/13] fixes --- packages/docusaurus-theme-classic/src/theme-classic.d.ts | 2 +- packages/docusaurus-theme-common/src/index.ts | 2 +- packages/docusaurus-theme-common/src/internal.ts | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme-classic.d.ts b/packages/docusaurus-theme-classic/src/theme-classic.d.ts index c6d1fb357572..f248ab38a053 100644 --- a/packages/docusaurus-theme-classic/src/theme-classic.d.ts +++ b/packages/docusaurus-theme-classic/src/theme-classic.d.ts @@ -1103,7 +1103,7 @@ declare module '@theme/TOCItems' { } declare module '@theme/TOCItems/Tree' { - import type {TOCTreeNode} from '@docusaurus/theme-common'; + import type {TOCTreeNode} from '@docusaurus/theme-common/internal'; export interface Props { readonly toc: readonly TOCTreeNode[]; diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index 523cec7735b8..6b10ecf4a72a 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -17,7 +17,7 @@ export type { ColorModeConfig, } from './utils/useThemeConfig'; -export {useColorMode} from './contexts/colorMode'; +export {useColorMode, type ColorMode} from './contexts/colorMode'; export {usePrismTheme} from './hooks/usePrismTheme'; export {getPrismCssVariables} from './utils/codeBlockUtils'; diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index ace683a577df..f85baadc6ab3 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -10,7 +10,7 @@ // When we move an API from internal to public, former internal imports // should keep working => less annoying for users. // TODO: how do we detect legacy internal imports in our own code? - + // export * from './index'; export { @@ -106,7 +106,7 @@ export {useHomePageRoute, isSamePath} from './utils/routesUtils'; export {PluginHtmlClassNameProvider} from './utils/metadataUtils'; -export {ColorModeProvider, type ColorMode} from './contexts/colorMode'; +export {ColorModeProvider} from './contexts/colorMode'; export {splitNavbarItems, NavbarProvider} from './utils/navbarUtils'; From 27b67ac2efd787c3c140d53b201736feb167fe7b Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Thu, 23 Jun 2022 17:25:00 +0200 Subject: [PATCH 04/13] public <-> private --- .../src/theme/DocSidebarItem/Category/index.tsx | 7 +++++-- .../docusaurus-theme-classic/src/translations.ts | 4 ++-- packages/docusaurus-theme-common/src/index.ts | 12 ++++++++++++ packages/docusaurus-theme-common/src/internal.ts | 12 +----------- .../src/theme/SearchPage/index.tsx | 2 +- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx index 126744d400c0..533c721a1544 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx @@ -7,10 +7,13 @@ import React, {type ComponentProps, useEffect, useMemo} from 'react'; import clsx from 'clsx'; -import {ThemeClassNames, useThemeConfig} from '@docusaurus/theme-common'; import { - isActiveSidebarItem, + ThemeClassNames, + useThemeConfig, usePrevious, +} from '@docusaurus/theme-common'; +import { + isActiveSidebarItem, Collapsible, useCollapsible, findFirstCategoryLink, diff --git a/packages/docusaurus-theme-classic/src/translations.ts b/packages/docusaurus-theme-classic/src/translations.ts index 3b0e8f0ece5d..cc087a87d85a 100644 --- a/packages/docusaurus-theme-classic/src/translations.ts +++ b/packages/docusaurus-theme-classic/src/translations.ts @@ -10,13 +10,13 @@ import {mergeTranslations} from '@docusaurus/utils'; import type {TranslationFile, TranslationFileContent} from '@docusaurus/types'; import type { ThemeConfig, + Navbar, + NavbarItem, Footer, MultiColumnFooter, SimpleFooter, } from '@docusaurus/theme-common'; -import type {Navbar, NavbarItem} from '@docusaurus/theme-common/internal'; - function getNavbarTranslationFile(navbar: Navbar): TranslationFileContent { // TODO handle properly all the navbar item types here! function flattenNavbarItems(items: NavbarItem[]): NavbarItem[] { diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index 6b10ecf4a72a..d42bfa7174e4 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -9,6 +9,9 @@ export {useThemeConfig} from './utils/useThemeConfig'; export type { ThemeConfig, UserThemeConfig, + Navbar, + NavbarItem, + NavbarLogo, MultiColumnFooter, SimpleFooter, Footer, @@ -51,3 +54,12 @@ export { export {isMultiColumnFooterLinks} from './utils/footerUtils'; export {isRegexpStringMatch} from './utils/regexpUtils'; + +export {createStorageSlot, listStorageKeys} from './utils/storageUtils'; + +export { + useIsomorphicLayoutEffect, + useDynamicCallback, // TODO rename to useEvent() + usePrevious, + ReactContextError, +} from './utils/reactUtils'; diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index f85baadc6ab3..b39ac8881825 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -13,11 +13,6 @@ // export * from './index'; -export { - type Navbar, - type NavbarItem, - type NavbarLogo, -} from './utils/useThemeConfig'; export { DocSidebarItemsExpandedStateProvider, useDocSidebarItemsExpandedState, @@ -95,12 +90,7 @@ export { useSmoothScrollTo, } from './utils/scrollUtils'; -export { - useIsomorphicLayoutEffect, - useDynamicCallback, - usePrevious, - ReactContextError, -} from './utils/reactUtils'; +export {ReactContextError} from './utils/reactUtils'; export {useHomePageRoute, isSamePath} from './utils/routesUtils'; diff --git a/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx b/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx index ed9bbde023f3..02ce84569963 100644 --- a/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx +++ b/packages/docusaurus-theme-search-algolia/src/theme/SearchPage/index.tsx @@ -20,10 +20,10 @@ import { HtmlClassNameProvider, usePluralForm, isRegexpStringMatch, + useDynamicCallback, } from '@docusaurus/theme-common'; import { useTitleFormatter, - useDynamicCallback, useSearchPage, } from '@docusaurus/theme-common/internal'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; From 66ab86dd2b4e55a8acca164a7df6d895ee731338 Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Thu, 23 Jun 2022 17:55:54 +0200 Subject: [PATCH 05/13] public <-> private --- packages/docusaurus-plugin-pwa/src/registerSw.ts | 2 +- .../src/theme/DocSidebarItem/Category/index.tsx | 4 ++-- .../src/theme/NavbarItem/DropdownNavbarItem.tsx | 7 +++---- .../src/theme/TOCCollapsible/index.tsx | 2 +- .../src/theme/Tabs/index.tsx | 2 +- packages/docusaurus-theme-common/src/index.ts | 13 ++++++++++++- packages/docusaurus-theme-common/src/internal.ts | 6 ------ website/src/utils/colorUtils.ts | 2 +- 8 files changed, 21 insertions(+), 17 deletions(-) diff --git a/packages/docusaurus-plugin-pwa/src/registerSw.ts b/packages/docusaurus-plugin-pwa/src/registerSw.ts index 516f24cf1ffd..1c834d3be843 100644 --- a/packages/docusaurus-plugin-pwa/src/registerSw.ts +++ b/packages/docusaurus-plugin-pwa/src/registerSw.ts @@ -6,7 +6,7 @@ */ import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment'; -import {createStorageSlot} from '@docusaurus/theme-common/internal'; +import {createStorageSlot} from '@docusaurus/theme-common'; // First: read the env variables (provided by Webpack) /* eslint-disable prefer-destructuring */ diff --git a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx index 533c721a1544..52c683c001f8 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocSidebarItem/Category/index.tsx @@ -11,11 +11,11 @@ import { ThemeClassNames, useThemeConfig, usePrevious, + Collapsible, + useCollapsible, } from '@docusaurus/theme-common'; import { isActiveSidebarItem, - Collapsible, - useCollapsible, findFirstCategoryLink, useDocSidebarItemsExpandedState, isSamePath, diff --git a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx index ca5f93732f60..f6fc318bbcae 100644 --- a/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx +++ b/packages/docusaurus-theme-classic/src/theme/NavbarItem/DropdownNavbarItem.tsx @@ -7,13 +7,12 @@ import React, {useState, useRef, useEffect} from 'react'; import clsx from 'clsx'; -import {isRegexpStringMatch} from '@docusaurus/theme-common'; import { - isSamePath, + isRegexpStringMatch, useCollapsible, Collapsible, - useLocalPathname, -} from '@docusaurus/theme-common/internal'; +} from '@docusaurus/theme-common'; +import {isSamePath, useLocalPathname} from '@docusaurus/theme-common/internal'; import NavbarNavLink from '@theme/NavbarItem/NavbarNavLink'; import NavbarItem, {type LinkLikeNavbarItemProps} from '@theme/NavbarItem'; import type { diff --git a/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx b/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx index c43c19819d80..19680832c205 100644 --- a/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/TOCCollapsible/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import clsx from 'clsx'; -import {useCollapsible, Collapsible} from '@docusaurus/theme-common/internal'; +import {useCollapsible, Collapsible} from '@docusaurus/theme-common'; import TOCItems from '@theme/TOCItems'; import CollapseButton from '@theme/TOCCollapsible/CollapseButton'; import type {Props} from '@theme/TOCCollapsible'; diff --git a/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx b/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx index f2bf056cb813..029eec193a28 100644 --- a/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/Tabs/index.tsx @@ -13,9 +13,9 @@ import React, { } from 'react'; import clsx from 'clsx'; import useIsBrowser from '@docusaurus/useIsBrowser'; +import {duplicates} from '@docusaurus/theme-common'; import { useScrollPositionBlocker, - duplicates, useTabGroupChoice, } from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/Tabs'; diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index d42bfa7174e4..e303901bef4c 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -5,6 +5,10 @@ * LICENSE file in the root directory of this source tree. */ +/* +APIs to document + */ + export {useThemeConfig} from './utils/useThemeConfig'; export type { ThemeConfig, @@ -35,7 +39,12 @@ export {ThemeClassNames} from './utils/ThemeClassNames'; export {useContextualSearchFilters} from './utils/searchUtils'; -// TODO Should these APIs bellow be public? +export {useCollapsible, Collapsible} from './components/Collapsible'; + +/* +APIs kept undocumented, on purpose +Note: we still guarantee retro-compatibility on those + */ export {useBackToTopButton} from './hooks/useBackToTopButton'; export {useWindowSize} from './hooks/useWindowSize'; @@ -63,3 +72,5 @@ export { usePrevious, ReactContextError, } from './utils/reactUtils'; + +export {duplicates, uniq} from './utils/jsUtils'; diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index b39ac8881825..483364cd791f 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -22,8 +22,6 @@ export {DocsSidebarProvider, useDocsSidebar} from './contexts/docsSidebar'; export {DocProvider, useDoc} from './contexts/doc'; export type {DocContextValue} from './contexts/doc'; -export {createStorageSlot, listStorageKeys} from './utils/storageUtils'; - export {useAlternatePageUtils} from './utils/useAlternatePageUtils'; export { @@ -52,16 +50,12 @@ export {useTitleFormatter} from './utils/generalUtils'; export {useLocationChange} from './utils/useLocationChange'; -export {useCollapsible, Collapsible} from './components/Collapsible'; - export { useDocsPreferredVersion, useDocsPreferredVersionByPluginId, DocsPreferredVersionContextProvider, } from './contexts/docsPreferredVersion'; -export {duplicates, uniq} from './utils/jsUtils'; - export { AnnouncementBarProvider, useAnnouncementBar, diff --git a/website/src/utils/colorUtils.ts b/website/src/utils/colorUtils.ts index cd4f7e1e50c7..cfca65f6f5dc 100644 --- a/website/src/utils/colorUtils.ts +++ b/website/src/utils/colorUtils.ts @@ -6,7 +6,7 @@ */ import Color from 'color'; -import {createStorageSlot} from '@docusaurus/theme-common/internal'; +import {createStorageSlot} from '@docusaurus/theme-common'; // These values are shared between the Toggle component and the ColorGenerator From bcae7d877fafbfa12770fd43b17515328a7872bc Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Thu, 23 Jun 2022 18:04:59 +0200 Subject: [PATCH 06/13] public <-> private --- .../src/theme/CodeBlock/Container/index.tsx | 7 ++----- packages/docusaurus-theme-common/src/index.ts | 4 ++-- packages/docusaurus-theme-common/src/internal.ts | 1 + 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx b/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx index af1c0400db06..d4814add5a76 100644 --- a/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/CodeBlock/Container/index.tsx @@ -7,11 +7,8 @@ import React, {type ComponentProps} from 'react'; import clsx from 'clsx'; -import { - ThemeClassNames, - usePrismTheme, - getPrismCssVariables, -} from '@docusaurus/theme-common'; +import {ThemeClassNames, usePrismTheme} from '@docusaurus/theme-common'; +import {getPrismCssVariables} from '@docusaurus/theme-common/internal'; import styles from './styles.module.css'; export default function CodeBlockContainer({ diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index e303901bef4c..67986733d3a6 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -27,7 +27,6 @@ export type { export {useColorMode, type ColorMode} from './contexts/colorMode'; export {usePrismTheme} from './hooks/usePrismTheme'; -export {getPrismCssVariables} from './utils/codeBlockUtils'; export {useCurrentSidebarCategory} from './utils/docsUtils'; @@ -46,9 +45,10 @@ APIs kept undocumented, on purpose Note: we still guarantee retro-compatibility on those */ -export {useBackToTopButton} from './hooks/useBackToTopButton'; export {useWindowSize} from './hooks/useWindowSize'; +export {useBackToTopButton} from './hooks/useBackToTopButton'; + export { NavbarSecondaryMenuFiller, type NavbarSecondaryMenuComponent, diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index 483364cd791f..11e37dd5d768 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -111,3 +111,4 @@ export {useLockBodyScroll} from './hooks/useLockBodyScroll'; export {useSearchPage} from './hooks/useSearchPage'; export {useCodeWordWrap} from './hooks/useCodeWordWrap'; export {useSkipToContent} from './hooks/useSkipToContent'; +export {getPrismCssVariables} from './utils/codeBlockUtils'; From ca658b312278cccfbdd33e3de00aa9c70b02eb9c Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Thu, 23 Jun 2022 18:18:26 +0200 Subject: [PATCH 07/13] fix --- website/src/theme/DocCategoryGeneratedIndexPage/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/theme/DocCategoryGeneratedIndexPage/index.tsx b/website/src/theme/DocCategoryGeneratedIndexPage/index.tsx index a407d9e4a2dc..f758f09d8205 100644 --- a/website/src/theme/DocCategoryGeneratedIndexPage/index.tsx +++ b/website/src/theme/DocCategoryGeneratedIndexPage/index.tsx @@ -6,7 +6,7 @@ */ import React from 'react'; -import {useLayoutDoc} from '@docusaurus/theme-common'; +import {useLayoutDoc} from '@docusaurus/theme-common/internal'; import Link from '@docusaurus/Link'; import Translate from '@docusaurus/Translate'; import DocCategoryGeneratedIndexPage from '@theme-original/DocCategoryGeneratedIndexPage'; From 73acc6168431e1c331f4d16cce3238678ee228d7 Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Thu, 23 Jun 2022 19:19:24 +0200 Subject: [PATCH 08/13] add "removeThemeInternalReexport" CI script --- .github/workflows/tests-windows.yml | 2 ++ .github/workflows/tests.yml | 4 +++ .../DocCategoryGeneratedIndexPage/index.tsx | 2 +- packages/docusaurus-theme-common/package.json | 5 +-- .../removeThemeInternalReexport.mjs | 32 +++++++++++++++++++ .../docusaurus-theme-common/src/internal.ts | 11 +++++-- 6 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 packages/docusaurus-theme-common/removeThemeInternalReexport.mjs diff --git a/.github/workflows/tests-windows.yml b/.github/workflows/tests-windows.yml index 8baeff8294cb..a49dad014572 100644 --- a/.github/workflows/tests-windows.yml +++ b/.github/workflows/tests-windows.yml @@ -49,6 +49,8 @@ jobs: # Lightweight version of tests-swizzle.yml workflow, but for Windows - name: Swizzle Wrap TS run: yarn workspace website test:swizzle:wrap:ts + - name: Remove Theme Internal Re-export + run: yarn workspace @docusaurus/theme-common removeThemeInternalReexport - name: Docusaurus Build run: yarn build:website:fast - name: TypeCheck website diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f60d708e46a3..8cd830ce2321 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -40,3 +40,7 @@ jobs: run: yarn test - name: TypeCheck website run: yarn workspace website typecheck + - name: Remove Theme Internal Re-export + run: yarn workspace @docusaurus/theme-common removeThemeInternalReexport + - name: Docusaurus Build + run: yarn build:website:fast diff --git a/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx index 0058b71596a5..61c86e6d6892 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { PageMetadata, useCurrentSidebarCategory, -} from '@docusaurus/theme-common'; +} from '@docusaurus/theme-common/internal'; import useBaseUrl from '@docusaurus/useBaseUrl'; import DocCardList from '@theme/DocCardList'; import DocPaginator from '@theme/DocPaginator'; diff --git a/packages/docusaurus-theme-common/package.json b/packages/docusaurus-theme-common/package.json index 818db25ed9ee..28acf3c9f82e 100644 --- a/packages/docusaurus-theme-common/package.json +++ b/packages/docusaurus-theme-common/package.json @@ -17,7 +17,8 @@ "build": "tsc && node ../../admin/scripts/copyUntypedFiles.js", "watch": "run-p -c copy:watch build:watch", "build:watch": "tsc --watch", - "copy:watch": "node ../../admin/scripts/copyUntypedFiles.js --watch" + "copy:watch": "node ../../admin/scripts/copyUntypedFiles.js --watch", + "removeThemeInternalReexport": "node removeThemeInternalReexport.mjs" }, "publishConfig": { "access": "public" @@ -39,6 +40,7 @@ "@types/react": "*", "@types/react-router-config": "*", "clsx": "^1.1.1", + "fs-extra": "^10.1.0", "parse-numeric-range": "^1.3.0", "prism-react-renderer": "^1.3.3", "tslib": "^2.4.0", @@ -47,7 +49,6 @@ "devDependencies": { "@docusaurus/core": "2.0.0-beta.21", "@docusaurus/types": "2.0.0-beta.21", - "fs-extra": "^10.1.0", "lodash": "^4.17.21" }, "peerDependencies": { diff --git a/packages/docusaurus-theme-common/removeThemeInternalReexport.mjs b/packages/docusaurus-theme-common/removeThemeInternalReexport.mjs new file mode 100644 index 000000000000..111b1ba1e07d --- /dev/null +++ b/packages/docusaurus-theme-common/removeThemeInternalReexport.mjs @@ -0,0 +1,32 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +import fs from 'fs-extra'; + +// See comment in src/internal.ts +// This script should be run by CI tests to remove: +// export * from './index' + +const filePath = 'lib/internal.js'; +const lineToRemove = "export * from './index';\n"; + +if (!(await fs.pathExists(filePath))) { + throw new Error(`internal entrypoint file not found at ${filePath}`); +} + +const fileContent = await fs.readFile(filePath, 'utf8'); + +const fileContentUpdated = fileContent.replaceAll(lineToRemove, ''); + +// Ensure the script correctly removes the re-export +if (fileContent === fileContentUpdated) { + throw new Error( + 'Unexpected: internal re-export has not been replaced.\nMake sure this script works, and is only run once.', + ); +} + +await fs.writeFile(filePath, fileContentUpdated); diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index 11e37dd5d768..72a36a4742ae 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -9,9 +9,14 @@ // Users might swizzle unsafe components, using our internal apis. // When we move an API from internal to public, former internal imports // should keep working => less annoying for users. -// TODO: how do we detect legacy internal imports in our own code? - -// export * from './index'; +// +// Important: this line is removed from build output for CI checks only +// See node script "removeThemeInternalReexport" +// This ensures that none of our internal code relies on this re-export +// and that we don't forget to migrate theme internal imports to public imports +// +// eslint-disable-next-line no-restricted-syntax +export * from './index'; export { DocSidebarItemsExpandedStateProvider, From 73a2b1f7f4c4befc2cd7218c8c146c81563ca7cb Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Thu, 23 Jun 2022 19:36:27 +0200 Subject: [PATCH 09/13] :s windows CI check not working: not that useful --- .github/workflows/tests-windows.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/tests-windows.yml b/.github/workflows/tests-windows.yml index a49dad014572..8baeff8294cb 100644 --- a/.github/workflows/tests-windows.yml +++ b/.github/workflows/tests-windows.yml @@ -49,8 +49,6 @@ jobs: # Lightweight version of tests-swizzle.yml workflow, but for Windows - name: Swizzle Wrap TS run: yarn workspace website test:swizzle:wrap:ts - - name: Remove Theme Internal Re-export - run: yarn workspace @docusaurus/theme-common removeThemeInternalReexport - name: Docusaurus Build run: yarn build:website:fast - name: TypeCheck website From 991a5aa608fde79f32f981101e9832ae6d4da728 Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Thu, 23 Jun 2022 21:59:40 +0200 Subject: [PATCH 10/13] remove bad import --- .../src/theme/DocCategoryGeneratedIndexPage/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx b/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx index 61c86e6d6892..0058b71596a5 100644 --- a/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/DocCategoryGeneratedIndexPage/index.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { PageMetadata, useCurrentSidebarCategory, -} from '@docusaurus/theme-common/internal'; +} from '@docusaurus/theme-common'; import useBaseUrl from '@docusaurus/useBaseUrl'; import DocCardList from '@theme/DocCardList'; import DocPaginator from '@theme/DocPaginator'; From 071fb3b66ce942ea36652122d950c8db01888bf3 Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Fri, 24 Jun 2022 11:54:05 +0800 Subject: [PATCH 11/13] refactors --- .eslintrc.js | 1 + packages/docusaurus-theme-common/.npmignore | 1 + packages/docusaurus-theme-common/package.json | 2 +- packages/docusaurus-theme-common/src/index.ts | 64 +++++++++---------- .../docusaurus-theme-common/src/internal.ts | 21 +++--- 5 files changed, 44 insertions(+), 45 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 6708ef87f1f9..42e5e054f282 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -451,6 +451,7 @@ module.exports = { 'admin/**', 'jest/**', 'website/**', + 'packages/docusaurus-theme-common/removeThemeInternalReexport.mjs', 'packages/docusaurus-theme-translations/update.mjs', 'packages/docusaurus-theme-translations/src/utils.ts', ], diff --git a/packages/docusaurus-theme-common/.npmignore b/packages/docusaurus-theme-common/.npmignore index 03c9ae1e1b54..e396a4cd86e9 100644 --- a/packages/docusaurus-theme-common/.npmignore +++ b/packages/docusaurus-theme-common/.npmignore @@ -1,3 +1,4 @@ .tsbuildinfo* tsconfig* __tests__ +removeThemeInternalReexport.mjs diff --git a/packages/docusaurus-theme-common/package.json b/packages/docusaurus-theme-common/package.json index 28acf3c9f82e..0acd830999ac 100644 --- a/packages/docusaurus-theme-common/package.json +++ b/packages/docusaurus-theme-common/package.json @@ -40,7 +40,6 @@ "@types/react": "*", "@types/react-router-config": "*", "clsx": "^1.1.1", - "fs-extra": "^10.1.0", "parse-numeric-range": "^1.3.0", "prism-react-renderer": "^1.3.3", "tslib": "^2.4.0", @@ -49,6 +48,7 @@ "devDependencies": { "@docusaurus/core": "2.0.0-beta.21", "@docusaurus/types": "2.0.0-beta.21", + "fs-extra": "^10.1.0", "lodash": "^4.17.21" }, "peerDependencies": { diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index 67986733d3a6..0163296fd09a 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -6,28 +6,30 @@ */ /* -APIs to document + * APIs to document */ -export {useThemeConfig} from './utils/useThemeConfig'; -export type { - ThemeConfig, - UserThemeConfig, - Navbar, - NavbarItem, - NavbarLogo, - MultiColumnFooter, - SimpleFooter, - Footer, - FooterLogo, - FooterLinkItem, - ColorModeConfig, +export { + useThemeConfig, + type ThemeConfig, + type UserThemeConfig, + type Navbar, + type NavbarItem, + type NavbarLogo, + type MultiColumnFooter, + type SimpleFooter, + type Footer, + type FooterLogo, + type FooterLinkItem, + type ColorModeConfig, } from './utils/useThemeConfig'; export {useColorMode, type ColorMode} from './contexts/colorMode'; export {usePrismTheme} from './hooks/usePrismTheme'; +export {useWindowSize} from './hooks/useWindowSize'; + export {useCurrentSidebarCategory} from './utils/docsUtils'; export {usePluralForm} from './utils/usePluralForm'; @@ -36,24 +38,31 @@ export {PageMetadata, HtmlClassNameProvider} from './utils/metadataUtils'; export {ThemeClassNames} from './utils/ThemeClassNames'; -export {useContextualSearchFilters} from './utils/searchUtils'; - -export {useCollapsible, Collapsible} from './components/Collapsible'; +export { + useIsomorphicLayoutEffect, + useDynamicCallback, // TODO rename to useEvent() + usePrevious, + ReactContextError, +} from './utils/reactUtils'; -/* -APIs kept undocumented, on purpose -Note: we still guarantee retro-compatibility on those - */ +export {useContextualSearchFilters} from './utils/searchUtils'; -export {useWindowSize} from './hooks/useWindowSize'; +export {createStorageSlot, listStorageKeys} from './utils/storageUtils'; -export {useBackToTopButton} from './hooks/useBackToTopButton'; +export {useCollapsible, Collapsible} from './components/Collapsible'; export { NavbarSecondaryMenuFiller, type NavbarSecondaryMenuComponent, } from './contexts/navbarSecondaryMenu/content'; +/* + * APIs kept undocumented, on purpose + * Note: we still guarantee retro-compatibility on those + */ + +export {useBackToTopButton} from './hooks/useBackToTopButton'; + export { translateTagsPageTitle, listTagsByLetters, @@ -64,13 +73,4 @@ export {isMultiColumnFooterLinks} from './utils/footerUtils'; export {isRegexpStringMatch} from './utils/regexpUtils'; -export {createStorageSlot, listStorageKeys} from './utils/storageUtils'; - -export { - useIsomorphicLayoutEffect, - useDynamicCallback, // TODO rename to useEvent() - usePrevious, - ReactContextError, -} from './utils/reactUtils'; - export {duplicates, uniq} from './utils/jsUtils'; diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index 72a36a4742ae..e0e58955c5ee 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -5,15 +5,15 @@ * LICENSE file in the root directory of this source tree. */ -// This re-export permits to handle some level of retro-compatibility -// Users might swizzle unsafe components, using our internal apis. -// When we move an API from internal to public, former internal imports -// should keep working => less annoying for users. +// This re-export permits to handle some level of retro-compatibility. Users +// might swizzle unsafe components and expose these internal imports. When we +// move an API from internal to public, former internal imports should keep +// working, so that the change doesn't become breaking. // -// Important: this line is removed from build output for CI checks only -// See node script "removeThemeInternalReexport" -// This ensures that none of our internal code relies on this re-export -// and that we don't forget to migrate theme internal imports to public imports +// Important: this line is removed from build output with the +// "removeThemeInternalReexport" script for CI checks. This ensures that none of +// our internal code relies on this re-export and that we don't forget to +// migrate theme internal imports to public imports. // // eslint-disable-next-line no-restricted-syntax export * from './index'; @@ -24,8 +24,7 @@ export { } from './contexts/docSidebarItemsExpandedState'; export {DocsVersionProvider, useDocsVersion} from './contexts/docsVersion'; export {DocsSidebarProvider, useDocsSidebar} from './contexts/docsSidebar'; -export {DocProvider, useDoc} from './contexts/doc'; -export type {DocContextValue} from './contexts/doc'; +export {DocProvider, useDoc, type DocContextValue} from './contexts/doc'; export {useAlternatePageUtils} from './utils/useAlternatePageUtils'; @@ -89,8 +88,6 @@ export { useSmoothScrollTo, } from './utils/scrollUtils'; -export {ReactContextError} from './utils/reactUtils'; - export {useHomePageRoute, isSamePath} from './utils/routesUtils'; export {PluginHtmlClassNameProvider} from './utils/metadataUtils'; From 9bdb56d7689909168364218e7239790b0bd83b7a Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Fri, 24 Jun 2022 12:02:53 +0800 Subject: [PATCH 12/13] reorder --- packages/docusaurus-theme-common/src/index.ts | 22 ++++----- .../docusaurus-theme-common/src/internal.ts | 48 +++++++++---------- 2 files changed, 35 insertions(+), 35 deletions(-) diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index 0163296fd09a..8799c748471e 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -24,17 +24,15 @@ export { type ColorModeConfig, } from './utils/useThemeConfig'; -export {useColorMode, type ColorMode} from './contexts/colorMode'; - -export {usePrismTheme} from './hooks/usePrismTheme'; +export {createStorageSlot, listStorageKeys} from './utils/storageUtils'; -export {useWindowSize} from './hooks/useWindowSize'; +export {useContextualSearchFilters} from './utils/searchUtils'; export {useCurrentSidebarCategory} from './utils/docsUtils'; export {usePluralForm} from './utils/usePluralForm'; -export {PageMetadata, HtmlClassNameProvider} from './utils/metadataUtils'; +export {useCollapsible, Collapsible} from './components/Collapsible'; export {ThemeClassNames} from './utils/ThemeClassNames'; @@ -45,24 +43,22 @@ export { ReactContextError, } from './utils/reactUtils'; -export {useContextualSearchFilters} from './utils/searchUtils'; - -export {createStorageSlot, listStorageKeys} from './utils/storageUtils'; +export {PageMetadata, HtmlClassNameProvider} from './utils/metadataUtils'; -export {useCollapsible, Collapsible} from './components/Collapsible'; +export {useColorMode, type ColorMode} from './contexts/colorMode'; export { NavbarSecondaryMenuFiller, type NavbarSecondaryMenuComponent, } from './contexts/navbarSecondaryMenu/content'; +export {useWindowSize} from './hooks/useWindowSize'; + /* * APIs kept undocumented, on purpose * Note: we still guarantee retro-compatibility on those */ -export {useBackToTopButton} from './hooks/useBackToTopButton'; - export { translateTagsPageTitle, listTagsByLetters, @@ -74,3 +70,7 @@ export {isMultiColumnFooterLinks} from './utils/footerUtils'; export {isRegexpStringMatch} from './utils/regexpUtils'; export {duplicates, uniq} from './utils/jsUtils'; + +export {useBackToTopButton} from './hooks/useBackToTopButton'; + +export {usePrismTheme} from './hooks/usePrismTheme'; diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index e0e58955c5ee..c39edabfad6d 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -26,6 +26,27 @@ export {DocsVersionProvider, useDocsVersion} from './contexts/docsVersion'; export {DocsSidebarProvider, useDocsSidebar} from './contexts/docsSidebar'; export {DocProvider, useDoc, type DocContextValue} from './contexts/doc'; +export { + useDocsPreferredVersion, + useDocsPreferredVersionByPluginId, + DocsPreferredVersionContextProvider, +} from './contexts/docsPreferredVersion'; + +export { + AnnouncementBarProvider, + useAnnouncementBar, +} from './contexts/announcementBar'; + +export { + useTabGroupChoice, + TabGroupChoiceProvider, +} from './contexts/tabGroupChoice'; + +export {useNavbarMobileSidebar} from './contexts/navbarMobileSidebar'; +export {useNavbarSecondaryMenu} from './contexts/navbarSecondaryMenu/display'; + +export {ColorModeProvider} from './contexts/colorMode'; + export {useAlternatePageUtils} from './utils/useAlternatePageUtils'; export { @@ -54,26 +75,10 @@ export {useTitleFormatter} from './utils/generalUtils'; export {useLocationChange} from './utils/useLocationChange'; -export { - useDocsPreferredVersion, - useDocsPreferredVersionByPluginId, - DocsPreferredVersionContextProvider, -} from './contexts/docsPreferredVersion'; - -export { - AnnouncementBarProvider, - useAnnouncementBar, -} from './contexts/announcementBar'; - export {useLocalPathname} from './utils/useLocalPathname'; export {useHistoryPopHandler} from './utils/historyUtils'; -export { - useTOCHighlight, - type TOCHighlightConfig, -} from './hooks/useTOCHighlight'; - export { useFilteredAndTreeifiedTOC, useTreeifiedTOC, @@ -92,17 +97,12 @@ export {useHomePageRoute, isSamePath} from './utils/routesUtils'; export {PluginHtmlClassNameProvider} from './utils/metadataUtils'; -export {ColorModeProvider} from './contexts/colorMode'; - export {splitNavbarItems, NavbarProvider} from './utils/navbarUtils'; export { - useTabGroupChoice, - TabGroupChoiceProvider, -} from './contexts/tabGroupChoice'; - -export {useNavbarMobileSidebar} from './contexts/navbarMobileSidebar'; -export {useNavbarSecondaryMenu} from './contexts/navbarSecondaryMenu/display'; + useTOCHighlight, + type TOCHighlightConfig, +} from './hooks/useTOCHighlight'; export {useHideableNavbar} from './hooks/useHideableNavbar'; export { From bb151c078144e2414544f901a06905e02ba7a11a Mon Sep 17 00:00:00 2001 From: sebastienlorber Date: Fri, 24 Jun 2022 11:06:48 +0200 Subject: [PATCH 13/13] make useBackToTopButton internal --- .../src/theme/BackToTopButton/index.tsx | 3 ++- packages/docusaurus-theme-common/src/index.ts | 2 -- packages/docusaurus-theme-common/src/internal.ts | 1 + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/docusaurus-theme-classic/src/theme/BackToTopButton/index.tsx b/packages/docusaurus-theme-classic/src/theme/BackToTopButton/index.tsx index d5e4edfc4134..f2d7a9ddb362 100644 --- a/packages/docusaurus-theme-classic/src/theme/BackToTopButton/index.tsx +++ b/packages/docusaurus-theme-classic/src/theme/BackToTopButton/index.tsx @@ -8,7 +8,8 @@ import React from 'react'; import clsx from 'clsx'; import {translate} from '@docusaurus/Translate'; -import {ThemeClassNames, useBackToTopButton} from '@docusaurus/theme-common'; +import {ThemeClassNames} from '@docusaurus/theme-common'; +import {useBackToTopButton} from '@docusaurus/theme-common/internal'; import styles from './styles.module.css'; diff --git a/packages/docusaurus-theme-common/src/index.ts b/packages/docusaurus-theme-common/src/index.ts index 8799c748471e..c8b5ea484e39 100644 --- a/packages/docusaurus-theme-common/src/index.ts +++ b/packages/docusaurus-theme-common/src/index.ts @@ -71,6 +71,4 @@ export {isRegexpStringMatch} from './utils/regexpUtils'; export {duplicates, uniq} from './utils/jsUtils'; -export {useBackToTopButton} from './hooks/useBackToTopButton'; - export {usePrismTheme} from './hooks/usePrismTheme'; diff --git a/packages/docusaurus-theme-common/src/internal.ts b/packages/docusaurus-theme-common/src/internal.ts index c39edabfad6d..fc795f847dc6 100644 --- a/packages/docusaurus-theme-common/src/internal.ts +++ b/packages/docusaurus-theme-common/src/internal.ts @@ -114,3 +114,4 @@ export {useSearchPage} from './hooks/useSearchPage'; export {useCodeWordWrap} from './hooks/useCodeWordWrap'; export {useSkipToContent} from './hooks/useSkipToContent'; export {getPrismCssVariables} from './utils/codeBlockUtils'; +export {useBackToTopButton} from './hooks/useBackToTopButton';