@docusaurus/theme-common 2.0.0-beta.18 → 2.0.0-beta.19
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/Details.d.ts +14 -0
- package/lib/components/Collapsible/index.js +2 -2
- package/lib/components/Collapsible/index.js.map +1 -1
- package/lib/components/Details/index.d.ts.map +1 -1
- package/lib/components/Details/index.js +3 -2
- package/lib/components/Details/index.js.map +1 -1
- package/lib/components/Details/styles.module.css +4 -0
- package/lib/contexts/announcementBar.js +1 -1
- package/lib/contexts/colorMode.d.ts.map +1 -1
- package/lib/contexts/colorMode.js +34 -16
- package/lib/contexts/colorMode.js.map +1 -1
- package/lib/contexts/docsPreferredVersion.d.ts +5 -2
- package/lib/contexts/docsPreferredVersion.d.ts.map +1 -1
- package/lib/contexts/docsPreferredVersion.js +5 -2
- package/lib/contexts/docsPreferredVersion.js.map +1 -1
- package/lib/contexts/docsSidebar.d.ts +9 -3
- package/lib/contexts/docsSidebar.d.ts.map +1 -1
- package/lib/contexts/docsSidebar.js +7 -6
- package/lib/contexts/docsSidebar.js.map +1 -1
- package/lib/contexts/navbarMobileSidebar.js +5 -5
- package/lib/contexts/navbarMobileSidebar.js.map +1 -1
- package/lib/contexts/{navbarSecondaryMenu.d.ts → navbarSecondaryMenu/content.d.ts} +13 -14
- package/lib/contexts/navbarSecondaryMenu/content.d.ts.map +1 -0
- package/lib/contexts/navbarSecondaryMenu/content.js +56 -0
- package/lib/contexts/navbarSecondaryMenu/content.js.map +1 -0
- package/lib/contexts/navbarSecondaryMenu/display.d.ts +24 -0
- package/lib/contexts/navbarSecondaryMenu/display.d.ts.map +1 -0
- package/lib/contexts/navbarSecondaryMenu/display.js +62 -0
- package/lib/contexts/navbarSecondaryMenu/display.js.map +1 -0
- package/lib/contexts/tabGroupChoice.d.ts.map +1 -1
- package/lib/contexts/tabGroupChoice.js.map +1 -1
- package/lib/hooks/useBackToTopButton.d.ts +27 -0
- package/lib/hooks/useBackToTopButton.d.ts.map +1 -0
- package/lib/hooks/useBackToTopButton.js +50 -0
- package/lib/hooks/useBackToTopButton.js.map +1 -0
- package/lib/hooks/useCodeWordWrap.d.ts +14 -0
- package/lib/hooks/useCodeWordWrap.d.ts.map +1 -0
- package/lib/hooks/useCodeWordWrap.js +41 -0
- package/lib/hooks/useCodeWordWrap.js.map +1 -0
- package/lib/hooks/useHideableNavbar.d.ts.map +1 -1
- package/lib/hooks/useHideableNavbar.js +1 -2
- package/lib/hooks/useHideableNavbar.js.map +1 -1
- package/lib/hooks/usePrismTheme.d.ts +2 -2
- package/lib/hooks/usePrismTheme.d.ts.map +1 -1
- package/lib/hooks/usePrismTheme.js +1 -2
- package/lib/hooks/usePrismTheme.js.map +1 -1
- package/lib/hooks/useSkipToContent.d.ts +25 -0
- package/lib/hooks/useSkipToContent.d.ts.map +1 -0
- package/lib/hooks/useSkipToContent.js +35 -0
- package/lib/hooks/useSkipToContent.js.map +1 -0
- package/lib/hooks/useTOCHighlight.js +3 -3
- package/lib/hooks/useTOCHighlight.js.map +1 -1
- package/lib/index.d.ts +9 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -5
- package/lib/index.js.map +1 -1
- package/lib/utils/codeBlockUtils.d.ts +42 -12
- package/lib/utils/codeBlockUtils.d.ts.map +1 -1
- package/lib/utils/codeBlockUtils.js +89 -58
- package/lib/utils/codeBlockUtils.js.map +1 -1
- package/lib/utils/docsUtils.d.ts +58 -0
- package/lib/utils/docsUtils.d.ts.map +1 -1
- package/lib/utils/docsUtils.js +109 -10
- package/lib/utils/docsUtils.js.map +1 -1
- package/lib/utils/metadataUtils.d.ts +2 -2
- package/lib/utils/metadataUtils.d.ts.map +1 -1
- package/lib/utils/navbarUtils.d.ts +2 -2
- package/lib/utils/navbarUtils.d.ts.map +1 -1
- package/lib/utils/navbarUtils.js +7 -5
- package/lib/utils/navbarUtils.js.map +1 -1
- package/lib/utils/routesUtils.d.ts +4 -4
- package/lib/utils/routesUtils.d.ts.map +1 -1
- package/lib/utils/routesUtils.js.map +1 -1
- package/lib/utils/scrollUtils.d.ts +24 -0
- package/lib/utils/scrollUtils.d.ts.map +1 -1
- package/lib/utils/scrollUtils.js +52 -0
- package/lib/utils/scrollUtils.js.map +1 -1
- package/lib/utils/searchUtils.d.ts.map +1 -1
- package/lib/utils/searchUtils.js +2 -0
- package/lib/utils/searchUtils.js.map +1 -1
- package/lib/utils/storageUtils.d.ts +2 -2
- package/lib/utils/storageUtils.d.ts.map +1 -1
- package/lib/utils/tagsUtils.d.ts +3 -7
- package/lib/utils/tagsUtils.d.ts.map +1 -1
- package/lib/utils/tagsUtils.js +2 -2
- package/lib/utils/tagsUtils.js.map +1 -1
- package/lib/utils/tocUtils.d.ts +2 -2
- package/lib/utils/tocUtils.d.ts.map +1 -1
- package/lib/utils/tocUtils.js +4 -4
- package/lib/utils/tocUtils.js.map +1 -1
- package/lib/utils/useThemeConfig.d.ts +7 -4
- package/lib/utils/useThemeConfig.d.ts.map +1 -1
- package/lib/utils/useThemeConfig.js.map +1 -1
- package/package.json +18 -10
- package/src/components/Collapsible/index.tsx +2 -2
- package/src/components/Details/index.tsx +4 -2
- package/src/components/Details/styles.module.css +4 -0
- package/src/contexts/announcementBar.tsx +1 -1
- package/src/contexts/colorMode.tsx +38 -15
- package/src/contexts/docsPreferredVersion.tsx +5 -2
- package/src/contexts/docsSidebar.tsx +17 -9
- package/src/contexts/navbarMobileSidebar.tsx +5 -5
- package/src/contexts/navbarSecondaryMenu/content.tsx +110 -0
- package/src/contexts/navbarSecondaryMenu/display.tsx +102 -0
- package/src/contexts/tabGroupChoice.tsx +6 -3
- package/src/hooks/useBackToTopButton.ts +73 -0
- package/src/hooks/useCodeWordWrap.ts +56 -0
- package/src/hooks/useHideableNavbar.ts +1 -3
- package/src/hooks/usePrismTheme.ts +3 -3
- package/src/hooks/useSkipToContent.ts +58 -0
- package/src/hooks/useTOCHighlight.ts +3 -3
- package/src/index.ts +12 -5
- package/src/utils/codeBlockUtils.ts +150 -66
- package/src/utils/docsUtils.tsx +163 -9
- package/src/utils/metadataUtils.tsx +2 -2
- package/src/utils/navbarUtils.tsx +11 -6
- package/src/utils/routesUtils.ts +7 -7
- package/src/utils/scrollUtils.tsx +74 -0
- package/src/utils/searchUtils.ts +2 -0
- package/src/utils/storageUtils.ts +2 -2
- package/src/utils/tagsUtils.ts +4 -9
- package/src/utils/tocUtils.ts +5 -5
- package/src/utils/useThemeConfig.ts +7 -4
- package/yarn-error.log +20199 -0
- package/lib/contexts/navbarSecondaryMenu.d.ts.map +0 -1
- package/lib/contexts/navbarSecondaryMenu.js +0 -93
- package/lib/contexts/navbarSecondaryMenu.js.map +0 -1
- package/src/contexts/navbarSecondaryMenu.tsx +0 -170
|
@@ -55,5 +55,29 @@ export declare function useScrollPositionBlocker(): {
|
|
|
55
55
|
*/
|
|
56
56
|
blockElementScrollPositionUntilNextRender: (el: HTMLElement) => void;
|
|
57
57
|
};
|
|
58
|
+
declare type CancelScrollTop = () => void;
|
|
59
|
+
/**
|
|
60
|
+
* A "smart polyfill" of `window.scrollTo({ top, behavior: "smooth" })`.
|
|
61
|
+
* This currently always uses a polyfilled implementation unless
|
|
62
|
+
* `scroll-behavior: smooth` has been set in CSS, because native support
|
|
63
|
+
* detection for scroll behavior seems unreliable.
|
|
64
|
+
*
|
|
65
|
+
* This hook does not do anything by itself: it returns a start and a stop
|
|
66
|
+
* handle. You can execute either handle at any time.
|
|
67
|
+
*/
|
|
68
|
+
export declare function useSmoothScrollTo(): {
|
|
69
|
+
/**
|
|
70
|
+
* Start the scroll.
|
|
71
|
+
*
|
|
72
|
+
* @param top The final scroll top position.
|
|
73
|
+
*/
|
|
74
|
+
startScroll: (top: number) => void;
|
|
75
|
+
/**
|
|
76
|
+
* A cancel function, because the non-native smooth scroll-top
|
|
77
|
+
* implementation must be interrupted if user scrolls down. If there's no
|
|
78
|
+
* existing animation or the scroll is using native behavior, this is a no-op.
|
|
79
|
+
*/
|
|
80
|
+
cancelScroll: CancelScrollTop;
|
|
81
|
+
};
|
|
58
82
|
export {};
|
|
59
83
|
//# sourceMappingURL=scrollUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollUtils.d.ts","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"scrollUtils.d.ts","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EAOZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf,aAAK,gBAAgB,GAAG;IACtB,gEAAgE;IAChE,sBAAsB,EAAE,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAuBF,wBAAgB,wBAAwB,CAAC,EACvC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,GAAG,CAAC,OAAO,CAOd;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAMtD;AAED,aAAK,cAAc,GAAG;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAAC;AAUzD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,CACN,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,cAAc,GAAG,IAAI,KAChC,IAAI,EACT,IAAI,GAAE,OAAO,EAAO,GACnB,IAAI,CA8BN;AA6CD;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,IAAI;IAC1C;;;OAGG;IACH,yCAAyC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC;CACtE,CAwCA;AAED,aAAK,eAAe,GAAG,MAAM,IAAI,CAAC;AA6BlC;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI;IACnC;;;;OAIG;IACH,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,YAAY,EAAE,eAAe,CAAC;CAC/B,CAoBA"}
|
package/lib/utils/scrollUtils.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import React, { useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, } from 'react';
|
|
8
8
|
import { useDynamicCallback, ReactContextError } from './reactUtils';
|
|
9
9
|
import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
|
|
10
|
+
import useIsBrowser from '@docusaurus/useIsBrowser';
|
|
10
11
|
function useScrollControllerContextValue() {
|
|
11
12
|
const scrollEventsEnabledRef = useRef(true);
|
|
12
13
|
return useMemo(() => ({
|
|
@@ -145,4 +146,55 @@ export function useScrollPositionBlocker() {
|
|
|
145
146
|
blockElementScrollPositionUntilNextRender,
|
|
146
147
|
};
|
|
147
148
|
}
|
|
149
|
+
function smoothScrollNative(top) {
|
|
150
|
+
window.scrollTo({ top, behavior: 'smooth' });
|
|
151
|
+
return () => {
|
|
152
|
+
// Nothing to cancel, it's natively cancelled if user tries to scroll down
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function smoothScrollPolyfill(top) {
|
|
156
|
+
let raf = null;
|
|
157
|
+
const isUpScroll = document.documentElement.scrollTop > top;
|
|
158
|
+
function rafRecursion() {
|
|
159
|
+
const currentScroll = document.documentElement.scrollTop;
|
|
160
|
+
if ((isUpScroll && currentScroll > top) ||
|
|
161
|
+
(!isUpScroll && currentScroll < top)) {
|
|
162
|
+
raf = requestAnimationFrame(rafRecursion);
|
|
163
|
+
window.scrollTo(0, Math.floor((currentScroll - top) * 0.85) + top);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
rafRecursion();
|
|
167
|
+
// Break the recursion. Prevents the user from "fighting" against that
|
|
168
|
+
// recursion producing a weird UX
|
|
169
|
+
return () => raf && cancelAnimationFrame(raf);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* A "smart polyfill" of `window.scrollTo({ top, behavior: "smooth" })`.
|
|
173
|
+
* This currently always uses a polyfilled implementation unless
|
|
174
|
+
* `scroll-behavior: smooth` has been set in CSS, because native support
|
|
175
|
+
* detection for scroll behavior seems unreliable.
|
|
176
|
+
*
|
|
177
|
+
* This hook does not do anything by itself: it returns a start and a stop
|
|
178
|
+
* handle. You can execute either handle at any time.
|
|
179
|
+
*/
|
|
180
|
+
export function useSmoothScrollTo() {
|
|
181
|
+
const cancelRef = useRef(null);
|
|
182
|
+
const isBrowser = useIsBrowser();
|
|
183
|
+
// Not all have support for smooth scrolling (particularly Safari mobile iOS)
|
|
184
|
+
// TODO proper detection is currently unreliable!
|
|
185
|
+
// see https://github.com/wessberg/scroll-behavior-polyfill/issues/16
|
|
186
|
+
// For now, we only use native scroll behavior if smooth is already set,
|
|
187
|
+
// because otherwise the polyfill produces a weird UX when both CSS and JS try
|
|
188
|
+
// to scroll a page, and they cancel each other.
|
|
189
|
+
const supportsNativeSmoothScrolling = isBrowser &&
|
|
190
|
+
getComputedStyle(document.documentElement).scrollBehavior === 'smooth';
|
|
191
|
+
return {
|
|
192
|
+
startScroll: (top) => {
|
|
193
|
+
cancelRef.current = supportsNativeSmoothScrolling
|
|
194
|
+
? smoothScrollNative(top)
|
|
195
|
+
: smoothScrollPolyfill(top);
|
|
196
|
+
},
|
|
197
|
+
cancelScroll: () => cancelRef.current?.(),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
148
200
|
//# sourceMappingURL=scrollUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollUtils.js","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,EACZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,eAAe,EACf,OAAO,EACP,MAAM,GAEP,MAAM,OAAO,CAAC;AACf,OAAO,EAAC,kBAAkB,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AACnE,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"scrollUtils.js","sourceRoot":"","sources":["../../src/utils/scrollUtils.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchUtils.d.ts","sourceRoot":"","sources":["../../src/utils/searchUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,uDAAuD;AACvD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,
|
|
1
|
+
{"version":3,"file":"searchUtils.d.ts","sourceRoot":"","sources":["../../src/utils/searchUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAE5C,uDAAuD;AACvD,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,IAAI;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAC,CAkC7E"}
|
package/lib/utils/searchUtils.js
CHANGED
|
@@ -24,6 +24,8 @@ export function useContextualSearchFilters() {
|
|
|
24
24
|
const allDocsData = useAllDocsData();
|
|
25
25
|
const activePluginAndVersion = useActivePluginAndVersion();
|
|
26
26
|
const docsPreferredVersionByPluginId = useDocsPreferredVersionByPluginId();
|
|
27
|
+
// This can't use more specialized hooks because we are mapping over all
|
|
28
|
+
// plugin instances.
|
|
27
29
|
function getDocPluginTags(pluginId) {
|
|
28
30
|
const activeVersion = activePluginAndVersion?.activePlugin?.pluginId === pluginId
|
|
29
31
|
? activePluginAndVersion.activeVersion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchUtils.js","sourceRoot":"","sources":["../../src/utils/searchUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,iCAAiC,EAAC,MAAM,kCAAkC,CAAC;AACnF,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,uDAAuD;AACvD,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,WAAmB;IAEnB,OAAO,QAAQ,QAAQ,IAAI,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B;IACxC,MAAM,EAAC,IAAI,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAC3D,MAAM,8BAA8B,GAAG,iCAAiC,EAAE,CAAC;IAE3E,SAAS,gBAAgB,CAAC,QAAgB;QACxC,MAAM,aAAa,GACjB,sBAAsB,EAAE,YAAY,EAAE,QAAQ,KAAK,QAAQ;YACzD,CAAC,CAAC,sBAAsB,CAAC,aAAa;YACtC,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAE,CAAC,QAAQ,CAAC,IAAI,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CACf,CAAC;QAEH,MAAM,OAAO,GAAG,aAAa,IAAI,gBAAgB,IAAI,aAAa,CAAC;QAEnE,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,IAAI,GAAG;QACX,kBAAkB;QAClB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;KAClD,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,aAAa;QAC1B,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"searchUtils.js","sourceRoot":"","sources":["../../src/utils/searchUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,cAAc,EACd,yBAAyB,GAC1B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAC,iCAAiC,EAAC,MAAM,kCAAkC,CAAC;AACnF,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AAEpE,MAAM,CAAC,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAE5C,uDAAuD;AACvD,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,WAAmB;IAEnB,OAAO,QAAQ,QAAQ,IAAI,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B;IACxC,MAAM,EAAC,IAAI,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,sBAAsB,GAAG,yBAAyB,EAAE,CAAC;IAC3D,MAAM,8BAA8B,GAAG,iCAAiC,EAAE,CAAC;IAE3E,wEAAwE;IACxE,oBAAoB;IACpB,SAAS,gBAAgB,CAAC,QAAgB;QACxC,MAAM,aAAa,GACjB,sBAAsB,EAAE,YAAY,EAAE,QAAQ,KAAK,QAAQ;YACzD,CAAC,CAAC,sBAAsB,CAAC,aAAa;YACtC,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,gBAAgB,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAE,CAAC,QAAQ,CAAC,IAAI,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CACf,CAAC;QAEH,MAAM,OAAO,GAAG,aAAa,IAAI,gBAAgB,IAAI,aAAa,CAAC;QAEnE,OAAO,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,IAAI,GAAG;QACX,kBAAkB;QAClB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC;KAClD,CAAC;IAEF,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,aAAa;QAC1B,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
*/
|
|
7
7
|
declare const StorageTypes: readonly ["localStorage", "sessionStorage", "none"];
|
|
8
8
|
export declare type StorageType = typeof StorageTypes[number];
|
|
9
|
-
export
|
|
9
|
+
export declare type StorageSlot = {
|
|
10
10
|
get: () => string | null;
|
|
11
11
|
set: (value: string) => void;
|
|
12
12
|
del: () => void;
|
|
13
|
-
}
|
|
13
|
+
};
|
|
14
14
|
/**
|
|
15
15
|
* Creates an interface to work on a particular key in the storage model.
|
|
16
16
|
* Note that this function only initializes the interface, but doesn't allocate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storageUtils.d.ts","sourceRoot":"","sources":["../../src/utils/storageUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAA,MAAM,YAAY,qDAAsD,CAAC;AAEzE,oBAAY,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AA+CtD,
|
|
1
|
+
{"version":3,"file":"storageUtils.d.ts","sourceRoot":"","sources":["../../src/utils/storageUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAA,MAAM,YAAY,qDAAsD,CAAC;AAEzE,oBAAY,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AA+CtD,oBAAY,WAAW,GAAG;IACxB,GAAG,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACzB,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB,CAAC;AAuBF;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAAC,GACpC,WAAW,CAmCb;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,WAAW,GAAE,WAAgC,GAC5C,MAAM,EAAE,CAcV"}
|
package/lib/utils/tagsUtils.d.ts
CHANGED
|
@@ -4,16 +4,12 @@
|
|
|
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 type { TagsListItem } from '@docusaurus/utils';
|
|
7
8
|
export declare const translateTagsPageTitle: () => string;
|
|
8
|
-
export declare type
|
|
9
|
-
name: string;
|
|
10
|
-
permalink: string;
|
|
11
|
-
count: number;
|
|
12
|
-
}>;
|
|
13
|
-
export declare type TagLetterEntry = Readonly<{
|
|
9
|
+
export declare type TagLetterEntry = {
|
|
14
10
|
letter: string;
|
|
15
11
|
tags: TagsListItem[];
|
|
16
|
-
}
|
|
12
|
+
};
|
|
17
13
|
/**
|
|
18
14
|
* Takes a list of tags (as provided by the content plugins), and groups them by
|
|
19
15
|
* their initials.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagsUtils.d.ts","sourceRoot":"","sources":["../../src/utils/tagsUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"tagsUtils.d.ts","sourceRoot":"","sources":["../../src/utils/tagsUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,sBAAsB,QAAO,MAKtC,CAAC;AAEL,oBAAY,cAAc,GAAG;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,EAAE,CAAA;CAAC,CAAC;AAMpE;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,SAAS,YAAY,EAAE,GAC5B,cAAc,EAAE,CAoBlB"}
|
package/lib/utils/tagsUtils.js
CHANGED
|
@@ -20,7 +20,7 @@ function getTagLetter(tag) {
|
|
|
20
20
|
export function listTagsByLetters(tags) {
|
|
21
21
|
const groups = {};
|
|
22
22
|
Object.values(tags).forEach((tag) => {
|
|
23
|
-
const initial = getTagLetter(tag.
|
|
23
|
+
const initial = getTagLetter(tag.label);
|
|
24
24
|
groups[initial] ?? (groups[initial] = []);
|
|
25
25
|
groups[initial].push(tag);
|
|
26
26
|
});
|
|
@@ -29,7 +29,7 @@ export function listTagsByLetters(tags) {
|
|
|
29
29
|
.sort(([letter1], [letter2]) => letter1.localeCompare(letter2))
|
|
30
30
|
.map(([letter, letterTags]) => {
|
|
31
31
|
// Sort tags inside a letter
|
|
32
|
-
const sortedTags = letterTags.sort((tag1, tag2) => tag1.
|
|
32
|
+
const sortedTags = letterTags.sort((tag1, tag2) => tag1.label.localeCompare(tag2.label));
|
|
33
33
|
return { letter, tags: sortedTags };
|
|
34
34
|
}));
|
|
35
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tagsUtils.js","sourceRoot":"","sources":["../../src/utils/tagsUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"tagsUtils.js","sourceRoot":"","sources":["../../src/utils/tagsUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAC;AAGhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAW,EAAE,CACjD,SAAS,CAAC;IACR,EAAE,EAAE,0BAA0B;IAC9B,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,gCAAgC;CAC9C,CAAC,CAAC;AAIL,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAA6B;IAE7B,MAAM,MAAM,GAAwC,EAAE,CAAC;IACvD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,CAAC,OAAO,MAAd,MAAM,CAAC,OAAO,IAAM,EAAE,EAAC;QACvB,MAAM,CAAC,OAAO,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QACpB,eAAe;SACd,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE;QAC5B,4BAA4B;QAC5B,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAChD,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CACrC,CAAC;QACF,OAAO,EAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAC,CAAC;IACpC,CAAC,CAAC,CACL,CAAC;AACJ,CAAC"}
|
package/lib/utils/tocUtils.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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 type { TOCItem } from '@docusaurus/
|
|
7
|
+
import type { TOCItem } from '@docusaurus/mdx-loader';
|
|
8
8
|
export declare type TOCTreeNode = {
|
|
9
9
|
readonly value: string;
|
|
10
10
|
readonly id: string;
|
|
@@ -26,7 +26,7 @@ export declare function useTreeifiedTOC(toc: TOCItem[]): readonly TOCTreeNode[];
|
|
|
26
26
|
* to ensure that weird TOC structures preserve their semantics. For example, an
|
|
27
27
|
* h3-h2-h4 sequence should not be treeified as an "h3 > h4" hierarchy with
|
|
28
28
|
* min=3, max=4, but should rather be "[h3, h4]" (since the h2 heading has split
|
|
29
|
-
* the two headings and they are not
|
|
29
|
+
* the two headings and they are not parent-children)
|
|
30
30
|
*/
|
|
31
31
|
export declare function useFilteredAndTreeifiedTOC({ toc, minHeadingLevel, maxHeadingLevel, }: {
|
|
32
32
|
toc: readonly TOCItem[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tocUtils.d.ts","sourceRoot":"","sources":["../../src/utils/tocUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"tocUtils.d.ts","sourceRoot":"","sources":["../../src/utils/tocUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAEpD,oBAAY,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;CAC3C,CAAC;AAuCF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,WAAW,EAAE,CAEtE;AAiCD;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,GAAG,EACH,eAAe,EACf,eAAe,GAChB,EAAE;IACD,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,SAAS,WAAW,EAAE,CAKzB"}
|
package/lib/utils/tocUtils.js
CHANGED
|
@@ -18,11 +18,11 @@ function treeifyTOC(flatTOC) {
|
|
|
18
18
|
// indices 0 and 1 will remain unused.
|
|
19
19
|
const prevIndexForLevel = Array(7).fill(-1);
|
|
20
20
|
headings.forEach((curr, currIndex) => {
|
|
21
|
-
//
|
|
22
|
-
//
|
|
21
|
+
// Take the last seen index for each ancestor level. the highest index will
|
|
22
|
+
// be the direct ancestor of the current heading.
|
|
23
23
|
const ancestorLevelIndexes = prevIndexForLevel.slice(2, curr.level);
|
|
24
24
|
curr.parentIndex = Math.max(...ancestorLevelIndexes);
|
|
25
|
-
//
|
|
25
|
+
// Mark that curr.level was last seen at the current index.
|
|
26
26
|
prevIndexForLevel[curr.level] = currIndex;
|
|
27
27
|
});
|
|
28
28
|
const rootNodes = [];
|
|
@@ -76,7 +76,7 @@ function filterTOC({ toc, minHeadingLevel, maxHeadingLevel, }) {
|
|
|
76
76
|
* to ensure that weird TOC structures preserve their semantics. For example, an
|
|
77
77
|
* h3-h2-h4 sequence should not be treeified as an "h3 > h4" hierarchy with
|
|
78
78
|
* min=3, max=4, but should rather be "[h3, h4]" (since the h2 heading has split
|
|
79
|
-
* the two headings and they are not
|
|
79
|
+
* the two headings and they are not parent-children)
|
|
80
80
|
*/
|
|
81
81
|
export function useFilteredAndTreeifiedTOC({ toc, minHeadingLevel, maxHeadingLevel, }) {
|
|
82
82
|
return useMemo(() => filterTOC({ toc: treeifyTOC(toc), minHeadingLevel, maxHeadingLevel }), [toc, minHeadingLevel, maxHeadingLevel]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tocUtils.js","sourceRoot":"","sources":["../../src/utils/tocUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAU9B,SAAS,UAAU,CAAC,OAA2B;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,OAAO;QACV,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,EAAE,EAAmB;KAC9B,CAAC,CAAC,CAAC;IAEJ,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACnC,
|
|
1
|
+
{"version":3,"file":"tocUtils.js","sourceRoot":"","sources":["../../src/utils/tocUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAU9B,SAAS,UAAU,CAAC,OAA2B;IAC7C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzC,GAAG,OAAO;QACV,WAAW,EAAE,CAAC,CAAC;QACf,QAAQ,EAAE,EAAmB;KAC9B,CAAC,CAAC,CAAC;IAEJ,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,8EAA8E;IAC9E,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACnC,2EAA2E;QAC3E,iDAAiD;QACjD,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,oBAAoB,CAAC,CAAC;QACrD,2DAA2D;QAC3D,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAkB,EAAE,CAAC;IAEpC,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,EAAC,WAAW,EAAE,GAAG,IAAI,EAAC,GAAG,OAAO,CAAC;QACvC,IAAI,WAAW,IAAI,CAAC,EAAE;YACpB,QAAQ,CAAC,WAAW,CAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5C;aAAM;YACL,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACtB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,GAAc;IAC5C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,EACjB,GAAG,EACH,eAAe,EACf,eAAe,GAKhB;IACC,SAAS,OAAO,CAAC,IAAiB;QAChC,OAAO,IAAI,CAAC,KAAK,IAAI,eAAe,IAAI,IAAI,CAAC,KAAK,IAAI,eAAe,CAAC;IACxE,CAAC;IAED,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,MAAM,gBAAgB,GAAG,SAAS,CAAC;YACjC,GAAG,EAAE,IAAI,CAAC,QAAQ;YAClB,eAAe;YACf,eAAe;SAChB,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YACjB,OAAO;gBACL;oBACE,GAAG,IAAI;oBACP,QAAQ,EAAE,gBAAgB;iBAC3B;aACF,CAAC;SACH;QACD,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,0BAA0B,CAAC,EACzC,GAAG,EACH,eAAe,EACf,eAAe,GAKhB;IACC,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,SAAS,CAAC,EAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,eAAe,EAAE,eAAe,EAAC,CAAC,EACzE,CAAC,GAAG,EAAE,eAAe,EAAE,eAAe,CAAC,CACxC,CAAC;AACJ,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { PrismTheme } from 'prism-react-renderer';
|
|
8
8
|
import type { DeepPartial } from 'utility-types';
|
|
9
|
+
import type { MagicCommentConfig } from './codeBlockUtils';
|
|
9
10
|
export declare type DocsVersionPersistence = 'localStorage' | 'none';
|
|
10
11
|
export declare type NavbarItem = {
|
|
11
12
|
type?: string | undefined;
|
|
@@ -44,10 +45,11 @@ export declare type AnnouncementBarConfig = {
|
|
|
44
45
|
isCloseable: boolean;
|
|
45
46
|
};
|
|
46
47
|
export declare type PrismConfig = {
|
|
47
|
-
theme
|
|
48
|
+
theme: PrismTheme;
|
|
48
49
|
darkTheme?: PrismTheme;
|
|
49
50
|
defaultLanguage?: string;
|
|
50
51
|
additionalLanguages: string[];
|
|
52
|
+
magicComments: MagicCommentConfig[];
|
|
51
53
|
};
|
|
52
54
|
export declare type FooterLinkItem = {
|
|
53
55
|
label?: string;
|
|
@@ -88,19 +90,20 @@ export declare type TableOfContents = {
|
|
|
88
90
|
export declare type ThemeConfig = {
|
|
89
91
|
docs: {
|
|
90
92
|
versionPersistence: DocsVersionPersistence;
|
|
93
|
+
sidebar: {
|
|
94
|
+
hideable: boolean;
|
|
95
|
+
autoCollapseCategories: boolean;
|
|
96
|
+
};
|
|
91
97
|
};
|
|
92
98
|
navbar: Navbar;
|
|
93
99
|
colorMode: ColorModeConfig;
|
|
94
100
|
announcementBar?: AnnouncementBarConfig;
|
|
95
101
|
prism: PrismConfig;
|
|
96
102
|
footer?: Footer;
|
|
97
|
-
hideableSidebar: boolean;
|
|
98
|
-
autoCollapseSidebarCategories: boolean;
|
|
99
103
|
image?: string;
|
|
100
104
|
metadata: Array<{
|
|
101
105
|
[key: string]: string;
|
|
102
106
|
}>;
|
|
103
|
-
sidebarCollapsible: boolean;
|
|
104
107
|
tableOfContents: TableOfContents;
|
|
105
108
|
};
|
|
106
109
|
export declare type UserThemeConfig = DeepPartial<ThemeConfig>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeConfig.d.ts","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"useThemeConfig.d.ts","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useThemeConfig.js","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"useThemeConfig.js","sourceRoot":"","sources":["../../src/utils/useThemeConfig.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,oBAAoB,MAAM,kCAAkC,CAAC;AA6HpE;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,oBAAoB,EAAE,CAAC,UAAU,CAAC,WAA0B,CAAC;AACtE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docusaurus/theme-common",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.19",
|
|
4
4
|
"description": "Common code for Docusaurus themes.",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
7
|
+
"sideEffects": [
|
|
8
|
+
"lib/components/Details/*",
|
|
9
|
+
"*.css"
|
|
10
|
+
],
|
|
11
|
+
"exports": {
|
|
12
|
+
".": "./lib/index.js",
|
|
13
|
+
"./Details": "./lib/components/Details/index.js"
|
|
14
|
+
},
|
|
7
15
|
"scripts": {
|
|
8
16
|
"build": "node copyUntypedFiles.mjs && tsc",
|
|
9
17
|
"watch": "node copyUntypedFiles.mjs && tsc --watch"
|
|
@@ -18,20 +26,20 @@
|
|
|
18
26
|
},
|
|
19
27
|
"license": "MIT",
|
|
20
28
|
"dependencies": {
|
|
21
|
-
"@docusaurus/module-type-aliases": "2.0.0-beta.
|
|
22
|
-
"@docusaurus/plugin-content-blog": "2.0.0-beta.
|
|
23
|
-
"@docusaurus/plugin-content-docs": "2.0.0-beta.
|
|
24
|
-
"@docusaurus/plugin-content-pages": "2.0.0-beta.
|
|
29
|
+
"@docusaurus/module-type-aliases": "2.0.0-beta.19",
|
|
30
|
+
"@docusaurus/plugin-content-blog": "2.0.0-beta.19",
|
|
31
|
+
"@docusaurus/plugin-content-docs": "2.0.0-beta.19",
|
|
32
|
+
"@docusaurus/plugin-content-pages": "2.0.0-beta.19",
|
|
25
33
|
"clsx": "^1.1.1",
|
|
26
34
|
"parse-numeric-range": "^1.3.0",
|
|
27
35
|
"prism-react-renderer": "^1.3.1",
|
|
28
|
-
"tslib": "^2.
|
|
36
|
+
"tslib": "^2.4.0",
|
|
29
37
|
"utility-types": "^3.10.0"
|
|
30
38
|
},
|
|
31
39
|
"devDependencies": {
|
|
32
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
33
|
-
"@docusaurus/types": "2.0.0-beta.
|
|
34
|
-
"fs-extra": "^10.0
|
|
40
|
+
"@docusaurus/core": "2.0.0-beta.19",
|
|
41
|
+
"@docusaurus/types": "2.0.0-beta.19",
|
|
42
|
+
"fs-extra": "^10.1.0",
|
|
35
43
|
"lodash": "^4.17.21"
|
|
36
44
|
},
|
|
37
45
|
"peerDependencies": {
|
|
@@ -41,5 +49,5 @@
|
|
|
41
49
|
"engines": {
|
|
42
50
|
"node": ">=14"
|
|
43
51
|
},
|
|
44
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "a71e60a49cce93c1006ef10c41ac03187f057102"
|
|
45
53
|
}
|
|
@@ -224,6 +224,8 @@ function CollapsibleBase({
|
|
|
224
224
|
|
|
225
225
|
function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) {
|
|
226
226
|
const [mounted, setMounted] = useState(!collapsed);
|
|
227
|
+
// Updated in effect so that first expansion transition can work
|
|
228
|
+
const [lazyCollapsed, setLazyCollapsed] = useState(collapsed);
|
|
227
229
|
|
|
228
230
|
useLayoutEffect(() => {
|
|
229
231
|
if (!collapsed) {
|
|
@@ -231,8 +233,6 @@ function CollapsibleLazy({collapsed, ...props}: CollapsibleBaseProps) {
|
|
|
231
233
|
}
|
|
232
234
|
}, [collapsed]);
|
|
233
235
|
|
|
234
|
-
// lazyCollapsed updated in effect so that first expansion transition can work
|
|
235
|
-
const [lazyCollapsed, setLazyCollapsed] = useState(collapsed);
|
|
236
236
|
useLayoutEffect(() => {
|
|
237
237
|
if (mounted) {
|
|
238
238
|
setLazyCollapsed(collapsed);
|
|
@@ -87,10 +87,12 @@ export function Details({
|
|
|
87
87
|
setOpen(true);
|
|
88
88
|
} else {
|
|
89
89
|
setCollapsed(true);
|
|
90
|
-
//
|
|
90
|
+
// Don't do this, it breaks close animation!
|
|
91
|
+
// setOpen(false);
|
|
91
92
|
}
|
|
92
93
|
}}>
|
|
93
|
-
{
|
|
94
|
+
{/* eslint-disable-next-line @docusaurus/no-untranslated-text */}
|
|
95
|
+
{summary || <summary>Details</summary>}
|
|
94
96
|
|
|
95
97
|
<Collapsible
|
|
96
98
|
lazy={false} // Content might matter for SEO in this case
|
|
@@ -72,7 +72,7 @@ function useContextValue(): ContextValue {
|
|
|
72
72
|
|
|
73
73
|
let viewedId = IdStorage.get();
|
|
74
74
|
|
|
75
|
-
//
|
|
75
|
+
// Retrocompatibility due to spelling mistake of default id
|
|
76
76
|
// see https://github.com/facebook/docusaurus/issues/3338
|
|
77
77
|
// cSpell:ignore annoucement
|
|
78
78
|
if (viewedId === 'annoucement-bar') {
|
|
@@ -65,10 +65,39 @@ function useContextValue(): ContextValue {
|
|
|
65
65
|
getInitialColorMode(defaultMode),
|
|
66
66
|
);
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
// A site is deployed without disableSwitch
|
|
70
|
+
// => User visits the site and has a persisted value
|
|
71
|
+
// => Site later enabled disableSwitch
|
|
72
|
+
// => Clear the previously stored value to apply the site's setting
|
|
73
|
+
if (disableSwitch) {
|
|
74
|
+
ColorModeStorage.del();
|
|
75
|
+
}
|
|
76
|
+
}, [disableSwitch]);
|
|
77
|
+
|
|
78
|
+
const setColorMode = useCallback(
|
|
79
|
+
(newColorMode: ColorMode | null, options: {persist?: boolean} = {}) => {
|
|
80
|
+
const {persist = true} = options;
|
|
81
|
+
if (newColorMode) {
|
|
82
|
+
setColorModeState(newColorMode);
|
|
83
|
+
if (persist) {
|
|
84
|
+
storeColorMode(newColorMode);
|
|
85
|
+
}
|
|
86
|
+
} else {
|
|
87
|
+
if (respectPrefersColorScheme) {
|
|
88
|
+
setColorModeState(
|
|
89
|
+
window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
90
|
+
? ColorModes.dark
|
|
91
|
+
: ColorModes.light,
|
|
92
|
+
);
|
|
93
|
+
} else {
|
|
94
|
+
setColorModeState(defaultMode);
|
|
95
|
+
}
|
|
96
|
+
ColorModeStorage.del();
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
[respectPrefersColorScheme, defaultMode],
|
|
100
|
+
);
|
|
72
101
|
|
|
73
102
|
useEffect(() => {
|
|
74
103
|
document.documentElement.setAttribute(
|
|
@@ -85,13 +114,9 @@ function useContextValue(): ContextValue {
|
|
|
85
114
|
if (e.key !== ColorModeStorageKey) {
|
|
86
115
|
return;
|
|
87
116
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
setColorMode(coerceToColorMode(storedColorMode));
|
|
92
|
-
}
|
|
93
|
-
} catch (err) {
|
|
94
|
-
console.error(err);
|
|
117
|
+
const storedColorMode = ColorModeStorage.get();
|
|
118
|
+
if (storedColorMode !== null) {
|
|
119
|
+
setColorMode(coerceToColorMode(storedColorMode));
|
|
95
120
|
}
|
|
96
121
|
};
|
|
97
122
|
window.addEventListener('storage', onChange);
|
|
@@ -109,12 +134,12 @@ function useContextValue(): ContextValue {
|
|
|
109
134
|
return undefined;
|
|
110
135
|
}
|
|
111
136
|
const mql = window.matchMedia('(prefers-color-scheme: dark)');
|
|
112
|
-
const onChange = (
|
|
137
|
+
const onChange = () => {
|
|
113
138
|
if (window.matchMedia('print').matches || previousMediaIsPrint.current) {
|
|
114
139
|
previousMediaIsPrint.current = window.matchMedia('print').matches;
|
|
115
140
|
return;
|
|
116
141
|
}
|
|
117
|
-
setColorMode(
|
|
142
|
+
setColorMode(null);
|
|
118
143
|
};
|
|
119
144
|
mql.addListener(onChange);
|
|
120
145
|
return () => mql.removeListener(onChange);
|
|
@@ -139,7 +164,6 @@ function useContextValue(): ContextValue {
|
|
|
139
164
|
);
|
|
140
165
|
}
|
|
141
166
|
setColorMode(ColorModes.light);
|
|
142
|
-
storeColorMode(ColorModes.light);
|
|
143
167
|
},
|
|
144
168
|
setDarkTheme() {
|
|
145
169
|
if (process.env.NODE_ENV === 'development') {
|
|
@@ -148,7 +172,6 @@ function useContextValue(): ContextValue {
|
|
|
148
172
|
);
|
|
149
173
|
}
|
|
150
174
|
setColorMode(ColorModes.dark);
|
|
151
|
-
storeColorMode(ColorModes.dark);
|
|
152
175
|
},
|
|
153
176
|
}),
|
|
154
177
|
[colorMode, setColorMode],
|
|
@@ -198,8 +198,11 @@ function useDocsPreferredVersionContext(): ContextValue {
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
/**
|
|
201
|
-
* Returns a read-write interface to a plugin's preferred version.
|
|
202
|
-
*
|
|
201
|
+
* Returns a read-write interface to a plugin's preferred version. The
|
|
202
|
+
* "preferred version" is defined as the last version that the user visited.
|
|
203
|
+
* For example, if a user is using v3, even when v4 is later published, the user
|
|
204
|
+
* would still be browsing v3 docs when she opens the website next time. Note,
|
|
205
|
+
* the `preferredVersion` attribute will always be `null` before mount.
|
|
203
206
|
*/
|
|
204
207
|
export function useDocsPreferredVersion(
|
|
205
208
|
pluginId: string | undefined = DEFAULT_PLUGIN_ID,
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import React, {type ReactNode
|
|
8
|
+
import React, {useMemo, useContext, type ReactNode} from 'react';
|
|
9
9
|
import type {PropSidebar} from '@docusaurus/plugin-content-docs';
|
|
10
10
|
import {ReactContextError} from '../utils/reactUtils';
|
|
11
11
|
|
|
@@ -13,7 +13,9 @@ import {ReactContextError} from '../utils/reactUtils';
|
|
|
13
13
|
// Inspired by https://github.com/jamiebuilds/unstated-next/blob/master/src/unstated-next.tsx
|
|
14
14
|
const EmptyContext: unique symbol = Symbol('EmptyContext');
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
type ContextValue = {name: string; items: PropSidebar};
|
|
17
|
+
|
|
18
|
+
const Context = React.createContext<ContextValue | null | typeof EmptyContext>(
|
|
17
19
|
EmptyContext,
|
|
18
20
|
);
|
|
19
21
|
|
|
@@ -22,21 +24,27 @@ const Context = React.createContext<PropSidebar | null | typeof EmptyContext>(
|
|
|
22
24
|
*/
|
|
23
25
|
export function DocsSidebarProvider({
|
|
24
26
|
children,
|
|
25
|
-
|
|
27
|
+
name,
|
|
28
|
+
items,
|
|
26
29
|
}: {
|
|
27
30
|
children: ReactNode;
|
|
28
|
-
|
|
31
|
+
name: string | undefined;
|
|
32
|
+
items: PropSidebar | undefined;
|
|
29
33
|
}): JSX.Element {
|
|
30
|
-
|
|
34
|
+
const stableValue: ContextValue | null = useMemo(
|
|
35
|
+
() => (name && items ? {name, items} : null),
|
|
36
|
+
[name, items],
|
|
37
|
+
);
|
|
38
|
+
return <Context.Provider value={stableValue}>{children}</Context.Provider>;
|
|
31
39
|
}
|
|
32
40
|
|
|
33
41
|
/**
|
|
34
42
|
* Gets the sidebar that's currently displayed, or `null` if there isn't one
|
|
35
43
|
*/
|
|
36
|
-
export function useDocsSidebar():
|
|
37
|
-
const
|
|
38
|
-
if (
|
|
44
|
+
export function useDocsSidebar(): ContextValue | null {
|
|
45
|
+
const value = useContext(Context);
|
|
46
|
+
if (value === EmptyContext) {
|
|
39
47
|
throw new ReactContextError('DocsSidebarProvider');
|
|
40
48
|
}
|
|
41
|
-
return
|
|
49
|
+
return value;
|
|
42
50
|
}
|