@mui/internal-docs-infra 0.1.1-alpha.1 → 0.1.1-alpha.11
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/CodeControllerContext/CodeControllerContext.d.ts +1 -1
- package/CodeControllerContext/CodeControllerContext.d.ts.map +1 -1
- package/CodeControllerContext/index.d.ts.map +1 -1
- package/CodeExternalsContext/CodeExternalsContext.d.ts +8 -0
- package/CodeExternalsContext/CodeExternalsContext.d.ts.map +1 -0
- package/CodeExternalsContext/CodeExternalsContext.js +7 -0
- package/CodeExternalsContext/index.d.ts +1 -0
- package/CodeExternalsContext/index.d.ts.map +1 -0
- package/CodeExternalsContext/index.js +1 -0
- package/CodeHighlighter/CodeHighlighter.d.ts +1 -1
- package/CodeHighlighter/CodeHighlighter.d.ts.map +1 -1
- package/CodeHighlighter/CodeHighlighter.js +235 -86
- package/CodeHighlighter/CodeHighlighterClient.d.ts.map +1 -1
- package/CodeHighlighter/CodeHighlighterClient.js +500 -62
- package/CodeHighlighter/CodeHighlighterContext.d.ts +2 -0
- package/CodeHighlighter/CodeHighlighterContext.d.ts.map +1 -1
- package/CodeHighlighter/CodeHighlighterFallbackContext.d.ts.map +1 -1
- package/CodeHighlighter/CodeHighlighterFallbackContext.js +3 -1
- package/CodeHighlighter/applyTransform.d.ts.map +1 -1
- package/CodeHighlighter/codeToFallbackProps.d.ts +2 -2
- package/CodeHighlighter/codeToFallbackProps.d.ts.map +1 -1
- package/CodeHighlighter/codeToFallbackProps.js +8 -5
- package/CodeHighlighter/errors.d.ts.map +1 -1
- package/CodeHighlighter/hasAllVariants.d.ts.map +1 -1
- package/CodeHighlighter/index.d.ts.map +1 -1
- package/CodeHighlighter/loadFallbackCode.d.ts +3 -2
- package/CodeHighlighter/loadFallbackCode.d.ts.map +1 -1
- package/CodeHighlighter/loadFallbackCode.js +325 -161
- package/CodeHighlighter/loadVariant.d.ts +3 -2
- package/CodeHighlighter/loadVariant.d.ts.map +1 -1
- package/CodeHighlighter/loadVariant.js +604 -229
- package/CodeHighlighter/maybeInitialData.d.ts +1 -1
- package/CodeHighlighter/maybeInitialData.d.ts.map +1 -1
- package/CodeHighlighter/parseCode.d.ts.map +1 -1
- package/CodeHighlighter/parseCode.js +14 -2
- package/CodeHighlighter/parseControlledCode.d.ts.map +1 -1
- package/CodeHighlighter/parseControlledCode.js +12 -1
- package/CodeHighlighter/transformCode.d.ts +1 -0
- package/CodeHighlighter/transformCode.d.ts.map +1 -1
- package/CodeHighlighter/transformCode.js +43 -3
- package/CodeHighlighter/transformParsedSource.d.ts.map +1 -1
- package/CodeHighlighter/transformSource.d.ts.map +1 -1
- package/CodeHighlighter/types.d.ts +39 -17
- package/CodeHighlighter/types.d.ts.map +1 -1
- package/CodeProvider/CodeContext.d.ts.map +1 -1
- package/CodeProvider/CodeProvider.d.ts.map +1 -1
- package/CodeProvider/CodeProvider.js +21 -6
- package/CodeProvider/index.d.ts +1 -2
- package/CodeProvider/index.d.ts.map +1 -1
- package/CodeProvider/index.js +1 -2
- package/abstractCreateDemo/abstractCreateDemo.d.ts +35 -0
- package/abstractCreateDemo/abstractCreateDemo.d.ts.map +1 -0
- package/abstractCreateDemo/abstractCreateDemo.js +91 -0
- package/abstractCreateDemo/index.d.ts +1 -0
- package/abstractCreateDemo/index.d.ts.map +1 -0
- package/abstractCreateDemo/index.js +1 -0
- package/createDemoData/createDemoData.d.ts +44 -0
- package/createDemoData/createDemoData.d.ts.map +1 -0
- package/createDemoData/createDemoData.js +75 -0
- package/createDemoData/index.d.ts +1 -0
- package/createDemoData/index.d.ts.map +1 -0
- package/createDemoData/index.js +1 -0
- package/createDemoData/types.d.ts +28 -0
- package/createDemoData/types.d.ts.map +1 -0
- package/createDemoData/types.js +1 -0
- package/package.json +15 -9
- package/pipeline/hastUtils/hastUtils.d.ts.map +1 -0
- package/{hast/hast.js → pipeline/hastUtils/hastUtils.js} +2 -1
- package/pipeline/hastUtils/index.d.ts +1 -0
- package/pipeline/hastUtils/index.d.ts.map +1 -0
- package/pipeline/hastUtils/index.js +1 -0
- package/pipeline/loadPrecomputedCodeHighlighter/emitExternalsProvider.d.ts +54 -0
- package/pipeline/loadPrecomputedCodeHighlighter/emitExternalsProvider.d.ts.map +1 -0
- package/pipeline/loadPrecomputedCodeHighlighter/emitExternalsProvider.js +465 -0
- package/pipeline/loadPrecomputedCodeHighlighter/generateExternalsProvider.d.ts +15 -0
- package/pipeline/loadPrecomputedCodeHighlighter/generateExternalsProvider.d.ts.map +1 -0
- package/pipeline/loadPrecomputedCodeHighlighter/generateExternalsProvider.js +253 -0
- package/pipeline/loadPrecomputedCodeHighlighter/index.d.ts.map +1 -0
- package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts +20 -0
- package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts.map +1 -0
- package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.js +228 -0
- package/{loadPrecomputedCodeHighlighter → pipeline/loadPrecomputedCodeHighlighter}/parseCreateFactoryCall.d.ts +12 -1
- package/pipeline/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.d.ts.map +1 -0
- package/pipeline/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.js +433 -0
- package/{loadPrecomputedCodeHighlighter → pipeline/loadPrecomputedCodeHighlighter}/parseFunctionParameters.d.ts +5 -1
- package/pipeline/loadPrecomputedCodeHighlighter/parseFunctionParameters.d.ts.map +1 -0
- package/{loadPrecomputedCodeHighlighter → pipeline/loadPrecomputedCodeHighlighter}/parseFunctionParameters.js +1 -1
- package/pipeline/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts +25 -0
- package/pipeline/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts.map +1 -0
- package/pipeline/loadPrecomputedCodeHighlighter/replacePrecomputeValue.js +73 -0
- package/pipeline/loadServerCodeMeta/index.d.ts +1 -0
- package/pipeline/loadServerCodeMeta/index.d.ts.map +1 -0
- package/pipeline/loadServerCodeMeta/index.js +1 -0
- package/{loadServerCodeMeta/serverLoadCodeMeta.d.ts → pipeline/loadServerCodeMeta/loadServerCodeMeta.d.ts} +4 -4
- package/pipeline/loadServerCodeMeta/loadServerCodeMeta.d.ts.map +1 -0
- package/{loadServerCodeMeta/serverLoadCodeMeta.js → pipeline/loadServerCodeMeta/loadServerCodeMeta.js} +18 -3
- package/pipeline/loadServerSource/index.d.ts +1 -0
- package/pipeline/loadServerSource/index.d.ts.map +1 -0
- package/pipeline/loadServerSource/index.js +1 -0
- package/{loadServerSource/serverLoadSource.d.ts → pipeline/loadServerSource/loadServerSource.d.ts} +5 -5
- package/pipeline/loadServerSource/loadServerSource.d.ts.map +1 -0
- package/pipeline/loadServerSource/loadServerSource.js +135 -0
- package/pipeline/loaderUtils/externalsToPackages.d.ts +1 -0
- package/pipeline/loaderUtils/externalsToPackages.d.ts.map +1 -0
- package/pipeline/loaderUtils/externalsToPackages.js +46 -0
- package/pipeline/loaderUtils/extractNameAndSlugFromUrl.d.ts +34 -0
- package/pipeline/loaderUtils/extractNameAndSlugFromUrl.d.ts.map +1 -0
- package/pipeline/loaderUtils/extractNameAndSlugFromUrl.js +161 -0
- package/{loaderUtils → pipeline/loaderUtils}/getFileNameFromUrl.d.ts +1 -0
- package/pipeline/loaderUtils/getFileNameFromUrl.d.ts.map +1 -0
- package/pipeline/loaderUtils/getFileNameFromUrl.js +66 -0
- package/pipeline/loaderUtils/index.d.ts +7 -0
- package/pipeline/loaderUtils/index.d.ts.map +1 -0
- package/pipeline/loaderUtils/index.js +7 -0
- package/pipeline/loaderUtils/mergeExternals.d.ts +32 -0
- package/pipeline/loaderUtils/mergeExternals.d.ts.map +1 -0
- package/pipeline/loaderUtils/mergeExternals.js +72 -0
- package/pipeline/loaderUtils/parseImports.d.ts +20 -0
- package/pipeline/loaderUtils/parseImports.d.ts.map +1 -0
- package/pipeline/loaderUtils/parseImports.js +307 -0
- package/{loaderUtils/processImports.d.ts → pipeline/loaderUtils/processRelativeImports.d.ts} +2 -2
- package/pipeline/loaderUtils/processRelativeImports.d.ts.map +1 -0
- package/pipeline/loaderUtils/processRelativeImports.js +352 -0
- package/{loaderUtils → pipeline/loaderUtils}/resolveModulePath.d.ts +19 -6
- package/pipeline/loaderUtils/resolveModulePath.d.ts.map +1 -0
- package/pipeline/loaderUtils/resolveModulePath.js +1449 -0
- package/{loaderUtils → pipeline/loaderUtils}/resolveModulePathWithFs.d.ts +6 -3
- package/pipeline/loaderUtils/resolveModulePathWithFs.d.ts.map +1 -0
- package/{loaderUtils → pipeline/loaderUtils}/resolveModulePathWithFs.js +8 -4
- package/pipeline/loaderUtils/rewriteImports.d.ts +9 -0
- package/pipeline/loaderUtils/rewriteImports.d.ts.map +1 -0
- package/pipeline/loaderUtils/rewriteImports.js +35 -0
- package/pipeline/parseSource/grammars.d.ts.map +1 -0
- package/pipeline/parseSource/index.d.ts.map +1 -0
- package/pipeline/parseSource/parseSource.d.ts +3 -0
- package/pipeline/parseSource/parseSource.d.ts.map +1 -0
- package/{parseSource → pipeline/parseSource}/parseSource.js +15 -5
- package/pipeline/transformHtmlCode/index.d.ts +2 -0
- package/pipeline/transformHtmlCode/index.d.ts.map +1 -0
- package/pipeline/transformHtmlCode/index.js +4 -0
- package/pipeline/transformHtmlCode/transformHtmlCode.d.ts +13 -0
- package/pipeline/transformHtmlCode/transformHtmlCode.d.ts.map +1 -0
- package/pipeline/transformHtmlCode/transformHtmlCode.js +303 -0
- package/pipeline/transformMarkdownCode/index.d.ts +2 -0
- package/pipeline/transformMarkdownCode/index.d.ts.map +1 -0
- package/pipeline/transformMarkdownCode/index.js +4 -0
- package/pipeline/transformMarkdownCode/transformMarkdownCode.d.ts +2 -0
- package/pipeline/transformMarkdownCode/transformMarkdownCode.d.ts.map +1 -0
- package/pipeline/transformMarkdownCode/transformMarkdownCode.js +514 -0
- package/pipeline/transformTypescriptToJavascript/index.d.ts +1 -0
- package/pipeline/transformTypescriptToJavascript/index.d.ts.map +1 -0
- package/pipeline/transformTypescriptToJavascript/index.js +1 -0
- package/pipeline/transformTypescriptToJavascript/removeTypes.d.ts.map +1 -0
- package/pipeline/transformTypescriptToJavascript/transformTypescriptToJavascript.d.ts +3 -0
- package/pipeline/transformTypescriptToJavascript/transformTypescriptToJavascript.d.ts.map +1 -0
- package/{transformTsToJs/transformTsToJs.js → pipeline/transformTypescriptToJavascript/transformTypescriptToJavascript.js} +4 -4
- package/useCode/index.d.ts.map +1 -1
- package/useCode/useCode.d.ts +14 -11
- package/useCode/useCode.d.ts.map +1 -1
- package/useCode/useCode.js +94 -364
- package/useCode/useCodeUtils.d.ts +45 -0
- package/useCode/useCodeUtils.d.ts.map +1 -0
- package/useCode/useCodeUtils.js +240 -0
- package/useCode/useCopyFunctionality.d.ts +17 -0
- package/useCode/useCopyFunctionality.d.ts.map +1 -0
- package/useCode/useCopyFunctionality.js +28 -0
- package/useCode/useFileNavigation.d.ts +49 -0
- package/useCode/useFileNavigation.d.ts.map +1 -0
- package/useCode/useFileNavigation.js +398 -0
- package/useCode/useSourceEditing.d.ts +19 -0
- package/useCode/useSourceEditing.d.ts.map +1 -0
- package/useCode/useSourceEditing.js +32 -0
- package/useCode/useTransformManagement.d.ts +28 -0
- package/useCode/useTransformManagement.d.ts.map +1 -0
- package/useCode/useTransformManagement.js +82 -0
- package/useCode/useUIState.d.ts +16 -0
- package/useCode/useUIState.d.ts.map +1 -0
- package/useCode/useUIState.js +21 -0
- package/useCode/useVariantSelection.d.ts +21 -0
- package/useCode/useVariantSelection.d.ts.map +1 -0
- package/useCode/useVariantSelection.js +84 -0
- package/useCopier/index.d.ts +1 -1
- package/useCopier/index.d.ts.map +1 -1
- package/useCopier/index.js +5 -5
- package/useDemo/createCodeSandbox.d.ts +18 -0
- package/useDemo/createCodeSandbox.d.ts.map +1 -0
- package/useDemo/createCodeSandbox.js +48 -0
- package/useDemo/createStackBlitz.d.ts +22 -0
- package/useDemo/createStackBlitz.d.ts.map +1 -0
- package/useDemo/createStackBlitz.js +38 -0
- package/useDemo/examineVariant.d.ts +25 -0
- package/useDemo/examineVariant.d.ts.map +1 -0
- package/useDemo/examineVariant.js +134 -0
- package/useDemo/exportVariant.d.ts +110 -0
- package/useDemo/exportVariant.d.ts.map +1 -0
- package/useDemo/exportVariant.js +320 -0
- package/useDemo/exportVariantAsCra.d.ts +15 -0
- package/useDemo/exportVariantAsCra.d.ts.map +1 -0
- package/useDemo/exportVariantAsCra.js +56 -0
- package/useDemo/flattenVariant.d.ts +17 -0
- package/useDemo/flattenVariant.d.ts.map +1 -0
- package/useDemo/flattenVariant.js +206 -0
- package/useDemo/index.d.ts +6 -39
- package/useDemo/index.d.ts.map +1 -1
- package/useDemo/index.js +6 -17
- package/useDemo/useDemo.d.ts +79 -0
- package/useDemo/useDemo.d.ts.map +1 -0
- package/useDemo/useDemo.js +174 -0
- package/useLocalStorageState/index.d.ts +2 -0
- package/useLocalStorageState/index.d.ts.map +1 -0
- package/useLocalStorageState/index.js +2 -0
- package/useLocalStorageState/useLocalStorageState.d.ts +14 -0
- package/useLocalStorageState/useLocalStorageState.d.ts.map +1 -0
- package/useLocalStorageState/useLocalStorageState.js +128 -0
- package/useOnHydrate/index.d.ts.map +1 -1
- package/useOnHydrate/useOnHydrate.d.ts.map +1 -1
- package/useOnIdle/index.d.ts.map +1 -1
- package/useOnIdle/useOnIdle.d.ts.map +1 -1
- package/useUrlHashState/index.d.ts +1 -0
- package/useUrlHashState/index.d.ts.map +1 -0
- package/useUrlHashState/index.js +1 -0
- package/useUrlHashState/useUrlHashState.d.ts +50 -0
- package/useUrlHashState/useUrlHashState.d.ts.map +1 -0
- package/useUrlHashState/useUrlHashState.js +113 -0
- package/hast/hast.d.ts.map +0 -1
- package/hast/index.d.ts +0 -1
- package/hast/index.d.ts.map +0 -1
- package/hast/index.js +0 -1
- package/loadPrecomputedCodeHighlighter/index.d.ts.map +0 -1
- package/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts +0 -57
- package/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts.map +0 -1
- package/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.js +0 -194
- package/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.d.ts.map +0 -1
- package/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.js +0 -243
- package/loadPrecomputedCodeHighlighter/parseFunctionParameters.d.ts.map +0 -1
- package/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts +0 -27
- package/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts.map +0 -1
- package/loadPrecomputedCodeHighlighter/replacePrecomputeValue.js +0 -37
- package/loadServerCodeMeta/index.d.ts +0 -1
- package/loadServerCodeMeta/index.d.ts.map +0 -1
- package/loadServerCodeMeta/index.js +0 -1
- package/loadServerCodeMeta/serverLoadCodeMeta.d.ts.map +0 -1
- package/loadServerSource/index.d.ts +0 -1
- package/loadServerSource/index.d.ts.map +0 -1
- package/loadServerSource/index.js +0 -1
- package/loadServerSource/serverLoadSource.d.ts.map +0 -1
- package/loadServerSource/serverLoadSource.js +0 -100
- package/loaderUtils/getFileNameFromUrl.d.ts.map +0 -1
- package/loaderUtils/getFileNameFromUrl.js +0 -32
- package/loaderUtils/index.d.ts +0 -5
- package/loaderUtils/index.d.ts.map +0 -1
- package/loaderUtils/index.js +0 -5
- package/loaderUtils/processImports.d.ts.map +0 -1
- package/loaderUtils/processImports.js +0 -82
- package/loaderUtils/resolveImports.d.ts +0 -4
- package/loaderUtils/resolveImports.d.ts.map +0 -1
- package/loaderUtils/resolveImports.js +0 -71
- package/loaderUtils/resolveModulePath.d.ts.map +0 -1
- package/loaderUtils/resolveModulePath.js +0 -862
- package/loaderUtils/resolveModulePathWithFs.d.ts.map +0 -1
- package/loaderUtils/rewriteImports.d.ts +0 -9
- package/loaderUtils/rewriteImports.d.ts.map +0 -1
- package/loaderUtils/rewriteImports.js +0 -57
- package/parseSource/grammars.d.ts.map +0 -1
- package/parseSource/index.d.ts.map +0 -1
- package/parseSource/parseSource.d.ts +0 -3
- package/parseSource/parseSource.d.ts.map +0 -1
- package/transformRelativeMarkdownPaths/index.d.ts +0 -2
- package/transformRelativeMarkdownPaths/index.d.ts.map +0 -1
- package/transformRelativeMarkdownPaths/index.js +0 -4
- package/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.d.ts +0 -12
- package/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.d.ts.map +0 -1
- package/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.js +0 -30
- package/transformTsToJs/index.d.ts +0 -1
- package/transformTsToJs/index.d.ts.map +0 -1
- package/transformTsToJs/index.js +0 -1
- package/transformTsToJs/removeTypes.d.ts.map +0 -1
- package/transformTsToJs/transformTsToJs.d.ts +0 -3
- package/transformTsToJs/transformTsToJs.d.ts.map +0 -1
- /package/{hast/hast.d.ts → pipeline/hastUtils/hastUtils.d.ts} +0 -0
- /package/{loadPrecomputedCodeHighlighter → pipeline/loadPrecomputedCodeHighlighter}/index.d.ts +0 -0
- /package/{loadPrecomputedCodeHighlighter → pipeline/loadPrecomputedCodeHighlighter}/index.js +0 -0
- /package/{parseSource → pipeline/parseSource}/grammars.d.ts +0 -0
- /package/{parseSource → pipeline/parseSource}/grammars.js +0 -0
- /package/{parseSource → pipeline/parseSource}/index.d.ts +0 -0
- /package/{parseSource → pipeline/parseSource}/index.js +0 -0
- /package/{transformTsToJs → pipeline/transformTypescriptToJavascript}/removeTypes.d.ts +0 -0
- /package/{transformTsToJs → pipeline/transformTypescriptToJavascript}/removeTypes.js +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
4
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
4
5
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
5
6
|
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
@@ -18,6 +19,8 @@ import { codeToFallbackProps } from "./codeToFallbackProps.js";
|
|
|
18
19
|
import { parseCode } from "./parseCode.js";
|
|
19
20
|
import { applyTransforms, getAvailableTransforms } from "./transformCode.js";
|
|
20
21
|
import { parseControlledCode } from "./parseControlledCode.js";
|
|
22
|
+
import { useOnHydrate } from "../useOnHydrate/index.js";
|
|
23
|
+
import { useOnIdle } from "../useOnIdle/index.js";
|
|
21
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
25
|
var DEBUG = false; // Set to true for debugging purposes
|
|
23
26
|
|
|
@@ -31,7 +34,9 @@ function useInitialData(_ref) {
|
|
|
31
34
|
highlightAt = _ref.highlightAt,
|
|
32
35
|
fallbackUsesExtraFiles = _ref.fallbackUsesExtraFiles,
|
|
33
36
|
fallbackUsesAllVariants = _ref.fallbackUsesAllVariants,
|
|
34
|
-
isControlled = _ref.isControlled
|
|
37
|
+
isControlled = _ref.isControlled,
|
|
38
|
+
globalsCode = _ref.globalsCode,
|
|
39
|
+
setProcessedGlobalsCode = _ref.setProcessedGlobalsCode;
|
|
35
40
|
var _useCodeContext = useCodeContext(),
|
|
36
41
|
sourceParser = _useCodeContext.sourceParser,
|
|
37
42
|
loadCodeMeta = _useCodeContext.loadCodeMeta,
|
|
@@ -49,6 +54,10 @@ function useInitialData(_ref) {
|
|
|
49
54
|
if (initialData || isControlled) {
|
|
50
55
|
return;
|
|
51
56
|
}
|
|
57
|
+
if (!url) {
|
|
58
|
+
// TODO: handle error - URL is required for loading fallback data
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
52
61
|
|
|
53
62
|
// TODO: abort controller
|
|
54
63
|
|
|
@@ -62,7 +71,8 @@ function useInitialData(_ref) {
|
|
|
62
71
|
console.log('Loading initial data for CodeHighlighterClient: ', reason);
|
|
63
72
|
}
|
|
64
73
|
_context.next = 3;
|
|
65
|
-
return loadFallbackCode(url, variantName, code, highlightAt === 'init', fallbackUsesExtraFiles, fallbackUsesAllVariants, sourceParser, loadSource, loadVariantMeta, loadCodeMeta, fileName, variants
|
|
74
|
+
return loadFallbackCode(url, variantName, code, highlightAt === 'init', fallbackUsesExtraFiles, fallbackUsesAllVariants, sourceParser, loadSource, loadVariantMeta, loadCodeMeta, fileName, variants, globalsCode // Let loadFallbackCode handle processing
|
|
75
|
+
)["catch"](function (error) {
|
|
66
76
|
return {
|
|
67
77
|
error: error
|
|
68
78
|
};
|
|
@@ -73,6 +83,10 @@ function useInitialData(_ref) {
|
|
|
73
83
|
// TODO: handle error
|
|
74
84
|
} else {
|
|
75
85
|
setCode(loaded.code);
|
|
86
|
+
// Store processed globalsCode from loadFallbackCode result
|
|
87
|
+
if (loaded.processedGlobalsCode) {
|
|
88
|
+
setProcessedGlobalsCode(loaded.processedGlobalsCode);
|
|
89
|
+
}
|
|
76
90
|
}
|
|
77
91
|
case 5:
|
|
78
92
|
case "end":
|
|
@@ -80,7 +94,7 @@ function useInitialData(_ref) {
|
|
|
80
94
|
}
|
|
81
95
|
}, _callee);
|
|
82
96
|
}))();
|
|
83
|
-
}, [initialData, reason, isControlled, variantName, code, setCode, highlightAt, url, sourceParser, loadSource, loadVariantMeta, loadCodeMeta, fallbackUsesExtraFiles, fallbackUsesAllVariants, fileName, variants]);
|
|
97
|
+
}, [initialData, reason, isControlled, variantName, code, setCode, highlightAt, url, sourceParser, loadSource, loadVariantMeta, loadCodeMeta, fallbackUsesExtraFiles, fallbackUsesAllVariants, fileName, variants, globalsCode, setProcessedGlobalsCode]);
|
|
84
98
|
}
|
|
85
99
|
function useAllVariants(_ref3) {
|
|
86
100
|
var readyForContent = _ref3.readyForContent,
|
|
@@ -88,7 +102,10 @@ function useAllVariants(_ref3) {
|
|
|
88
102
|
isControlled = _ref3.isControlled,
|
|
89
103
|
url = _ref3.url,
|
|
90
104
|
code = _ref3.code,
|
|
91
|
-
setCode = _ref3.setCode
|
|
105
|
+
setCode = _ref3.setCode,
|
|
106
|
+
processedGlobalsCode = _ref3.processedGlobalsCode,
|
|
107
|
+
globalsCode = _ref3.globalsCode,
|
|
108
|
+
setProcessedGlobalsCode = _ref3.setProcessedGlobalsCode;
|
|
92
109
|
var _useCodeContext2 = useCodeContext(),
|
|
93
110
|
loadCodeMeta = _useCodeContext2.loadCodeMeta,
|
|
94
111
|
loadVariantMeta = _useCodeContext2.loadVariantMeta,
|
|
@@ -97,39 +114,100 @@ function useAllVariants(_ref3) {
|
|
|
97
114
|
if (readyForContent || isControlled) {
|
|
98
115
|
return;
|
|
99
116
|
}
|
|
117
|
+
if (!url) {
|
|
118
|
+
// URL is required for loading variants
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
100
121
|
|
|
101
122
|
// TODO: abort controller
|
|
102
123
|
|
|
103
|
-
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
104
|
-
var loadedCode, result, resultCode, errors, _iterator, _step, item;
|
|
105
|
-
return _regeneratorRuntime().wrap(function
|
|
106
|
-
while (1) switch (
|
|
124
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
125
|
+
var loadedCode, globalsCodeObjects, result, resultCode, errors, _iterator, _step, item;
|
|
126
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
127
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
107
128
|
case 0:
|
|
108
129
|
loadedCode = code;
|
|
109
130
|
if (loadedCode) {
|
|
110
|
-
|
|
131
|
+
_context3.next = 7;
|
|
111
132
|
break;
|
|
112
133
|
}
|
|
113
134
|
if (loadCodeMeta) {
|
|
114
|
-
|
|
135
|
+
_context3.next = 4;
|
|
115
136
|
break;
|
|
116
137
|
}
|
|
117
138
|
throw new Error('"loadCodeMeta" function is required when no code is provided');
|
|
118
139
|
case 4:
|
|
119
|
-
|
|
140
|
+
_context3.next = 6;
|
|
120
141
|
return loadCodeMeta(url);
|
|
121
142
|
case 6:
|
|
122
|
-
loadedCode =
|
|
143
|
+
loadedCode = _context3.sent;
|
|
123
144
|
case 7:
|
|
124
|
-
|
|
145
|
+
// Use the already-processed globalsCode from state, or process it if not available
|
|
146
|
+
globalsCodeObjects = [];
|
|
147
|
+
if (!processedGlobalsCode) {
|
|
148
|
+
_context3.next = 12;
|
|
149
|
+
break;
|
|
150
|
+
}
|
|
151
|
+
// Use the already-processed globalsCode from state
|
|
152
|
+
globalsCodeObjects = processedGlobalsCode;
|
|
153
|
+
_context3.next = 17;
|
|
154
|
+
break;
|
|
155
|
+
case 12:
|
|
156
|
+
if (!(globalsCode && globalsCode.length > 0)) {
|
|
157
|
+
_context3.next = 17;
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
_context3.next = 15;
|
|
161
|
+
return Promise.all(globalsCode.map(/*#__PURE__*/function () {
|
|
162
|
+
var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(item) {
|
|
163
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
164
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
165
|
+
case 0:
|
|
166
|
+
if (!(typeof item === 'string')) {
|
|
167
|
+
_context2.next = 4;
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
if (loadCodeMeta) {
|
|
171
|
+
_context2.next = 3;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
throw new Error('"loadCodeMeta" function is required for string URLs in globalsCode');
|
|
175
|
+
case 3:
|
|
176
|
+
return _context2.abrupt("return", loadCodeMeta(item));
|
|
177
|
+
case 4:
|
|
178
|
+
return _context2.abrupt("return", item);
|
|
179
|
+
case 5:
|
|
180
|
+
case "end":
|
|
181
|
+
return _context2.stop();
|
|
182
|
+
}
|
|
183
|
+
}, _callee2);
|
|
184
|
+
}));
|
|
185
|
+
return function (_x) {
|
|
186
|
+
return _ref5.apply(this, arguments);
|
|
187
|
+
};
|
|
188
|
+
}()));
|
|
189
|
+
case 15:
|
|
190
|
+
globalsCodeObjects = _context3.sent;
|
|
191
|
+
// Store processed globalsCode in state for future use
|
|
192
|
+
setProcessedGlobalsCode(globalsCodeObjects);
|
|
193
|
+
case 17:
|
|
194
|
+
_context3.next = 19;
|
|
125
195
|
return Promise.all(variants.map(function (name) {
|
|
196
|
+
// Resolve globalsCode for this specific variant
|
|
197
|
+
var globalsForVariant = globalsCodeObjects.map(function (codeObj) {
|
|
198
|
+
// Only include if this variant exists in the globalsCode
|
|
199
|
+
return codeObj[name];
|
|
200
|
+
}).filter(function (item) {
|
|
201
|
+
return Boolean(item);
|
|
202
|
+
});
|
|
126
203
|
return loadVariant(url, name, loadedCode[name], undefined,
|
|
127
204
|
// sourceParser - skip parsing
|
|
128
205
|
loadSource, loadVariantMeta, undefined,
|
|
129
206
|
// sourceTransformers - skip transforming
|
|
130
207
|
{
|
|
131
208
|
disableParsing: true,
|
|
132
|
-
disableTransforms: true
|
|
209
|
+
disableTransforms: true,
|
|
210
|
+
globalsCode: globalsForVariant
|
|
133
211
|
}).then(function (variant) {
|
|
134
212
|
return {
|
|
135
213
|
name: name,
|
|
@@ -141,8 +219,8 @@ function useAllVariants(_ref3) {
|
|
|
141
219
|
};
|
|
142
220
|
});
|
|
143
221
|
}));
|
|
144
|
-
case
|
|
145
|
-
result =
|
|
222
|
+
case 19:
|
|
223
|
+
result = _context3.sent;
|
|
146
224
|
resultCode = {};
|
|
147
225
|
errors = [];
|
|
148
226
|
_iterator = _createForOfIteratorHelper(result);
|
|
@@ -165,37 +243,60 @@ function useAllVariants(_ref3) {
|
|
|
165
243
|
} else {
|
|
166
244
|
setCode(resultCode);
|
|
167
245
|
}
|
|
168
|
-
case
|
|
246
|
+
case 25:
|
|
169
247
|
case "end":
|
|
170
|
-
return
|
|
248
|
+
return _context3.stop();
|
|
171
249
|
}
|
|
172
|
-
},
|
|
250
|
+
}, _callee3);
|
|
173
251
|
}))();
|
|
174
|
-
}, [readyForContent, isControlled, variants, url, code, setCode, loadSource, loadVariantMeta, loadCodeMeta]);
|
|
252
|
+
}, [readyForContent, isControlled, variants, url, code, setCode, loadSource, loadVariantMeta, loadCodeMeta, processedGlobalsCode, globalsCode, setProcessedGlobalsCode]);
|
|
175
253
|
return {
|
|
176
254
|
readyForContent: readyForContent
|
|
177
255
|
};
|
|
178
256
|
}
|
|
179
|
-
function useCodeParsing(
|
|
180
|
-
var code =
|
|
181
|
-
readyForContent =
|
|
257
|
+
function useCodeParsing(_ref6) {
|
|
258
|
+
var code = _ref6.code,
|
|
259
|
+
readyForContent = _ref6.readyForContent,
|
|
260
|
+
highlightAt = _ref6.highlightAt;
|
|
182
261
|
var _useCodeContext3 = useCodeContext(),
|
|
183
262
|
parseSource = _useCodeContext3.parseSource;
|
|
184
263
|
|
|
185
|
-
//
|
|
264
|
+
// Use timing hooks to determine when to highlight
|
|
265
|
+
var isHydrated = useOnHydrate();
|
|
266
|
+
var isIdle = useOnIdle();
|
|
267
|
+
|
|
268
|
+
// Determine if we should highlight based on the highlightAt setting
|
|
269
|
+
var shouldHighlight = React.useMemo(function () {
|
|
270
|
+
if (!readyForContent) {
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
switch (highlightAt) {
|
|
274
|
+
case 'hydration':
|
|
275
|
+
return isHydrated;
|
|
276
|
+
case 'idle':
|
|
277
|
+
return isIdle;
|
|
278
|
+
case 'init':
|
|
279
|
+
default:
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
}, [readyForContent, highlightAt, isHydrated, isIdle]);
|
|
283
|
+
|
|
284
|
+
// Parse the internal code state when ready and timing conditions are met
|
|
186
285
|
var parsedCode = React.useMemo(function () {
|
|
187
|
-
if (!code || !
|
|
286
|
+
if (!code || !shouldHighlight || !parseSource) {
|
|
188
287
|
return undefined;
|
|
189
288
|
}
|
|
190
289
|
return parseCode(code, parseSource);
|
|
191
|
-
}, [code,
|
|
290
|
+
}, [code, shouldHighlight, parseSource]);
|
|
291
|
+
var deferHighlight = !shouldHighlight;
|
|
192
292
|
return {
|
|
193
|
-
parsedCode: parsedCode
|
|
293
|
+
parsedCode: parsedCode,
|
|
294
|
+
deferHighlight: deferHighlight
|
|
194
295
|
};
|
|
195
296
|
}
|
|
196
|
-
function useCodeTransforms(
|
|
197
|
-
var parsedCode =
|
|
198
|
-
variantName =
|
|
297
|
+
function useCodeTransforms(_ref7) {
|
|
298
|
+
var parsedCode = _ref7.parsedCode,
|
|
299
|
+
variantName = _ref7.variantName;
|
|
199
300
|
var _useCodeContext4 = useCodeContext(),
|
|
200
301
|
sourceParser = _useCodeContext4.sourceParser;
|
|
201
302
|
var _React$useState = React.useState(undefined),
|
|
@@ -216,33 +317,33 @@ function useCodeTransforms(_ref6) {
|
|
|
216
317
|
}
|
|
217
318
|
|
|
218
319
|
// Process transformations for all variants
|
|
219
|
-
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function
|
|
320
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
220
321
|
var parseSource, enhanced;
|
|
221
|
-
return _regeneratorRuntime().wrap(function
|
|
222
|
-
while (1) switch (
|
|
322
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
323
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
223
324
|
case 0:
|
|
224
|
-
|
|
225
|
-
|
|
325
|
+
_context4.prev = 0;
|
|
326
|
+
_context4.next = 3;
|
|
226
327
|
return sourceParser;
|
|
227
328
|
case 3:
|
|
228
|
-
parseSource =
|
|
229
|
-
|
|
329
|
+
parseSource = _context4.sent;
|
|
330
|
+
_context4.next = 6;
|
|
230
331
|
return applyTransforms(parsedCode, parseSource);
|
|
231
332
|
case 6:
|
|
232
|
-
enhanced =
|
|
333
|
+
enhanced = _context4.sent;
|
|
233
334
|
setTransformedCode(enhanced);
|
|
234
|
-
|
|
335
|
+
_context4.next = 14;
|
|
235
336
|
break;
|
|
236
337
|
case 10:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
console.error('Failed to process transforms:',
|
|
338
|
+
_context4.prev = 10;
|
|
339
|
+
_context4.t0 = _context4["catch"](0);
|
|
340
|
+
console.error('Failed to process transforms:', _context4.t0);
|
|
240
341
|
setTransformedCode(parsedCode);
|
|
241
342
|
case 14:
|
|
242
343
|
case "end":
|
|
243
|
-
return
|
|
344
|
+
return _context4.stop();
|
|
244
345
|
}
|
|
245
|
-
},
|
|
346
|
+
}, _callee4, null, [[0, 10]]);
|
|
246
347
|
}))();
|
|
247
348
|
}, [parsedCode, sourceParser]);
|
|
248
349
|
return {
|
|
@@ -250,8 +351,8 @@ function useCodeTransforms(_ref6) {
|
|
|
250
351
|
availableTransforms: availableTransforms
|
|
251
352
|
};
|
|
252
353
|
}
|
|
253
|
-
function useControlledCodeParsing(
|
|
254
|
-
var controlledCode =
|
|
354
|
+
function useControlledCodeParsing(_ref9) {
|
|
355
|
+
var controlledCode = _ref9.controlledCode;
|
|
255
356
|
var _useCodeContext5 = useCodeContext(),
|
|
256
357
|
parseSource = _useCodeContext5.parseSource;
|
|
257
358
|
|
|
@@ -266,8 +367,304 @@ function useControlledCodeParsing(_ref8) {
|
|
|
266
367
|
parsedControlledCode: parsedControlledCode
|
|
267
368
|
};
|
|
268
369
|
}
|
|
370
|
+
function useGlobalsCodeMerging(_ref0) {
|
|
371
|
+
var code = _ref0.code,
|
|
372
|
+
globalsCode = _ref0.globalsCode,
|
|
373
|
+
processedGlobalsCode = _ref0.processedGlobalsCode,
|
|
374
|
+
setProcessedGlobalsCode = _ref0.setProcessedGlobalsCode,
|
|
375
|
+
readyForContent = _ref0.readyForContent,
|
|
376
|
+
variants = _ref0.variants;
|
|
377
|
+
var _useCodeContext6 = useCodeContext(),
|
|
378
|
+
loadCodeMeta = _useCodeContext6.loadCodeMeta,
|
|
379
|
+
loadSource = _useCodeContext6.loadSource,
|
|
380
|
+
loadVariantMeta = _useCodeContext6.loadVariantMeta;
|
|
381
|
+
|
|
382
|
+
// Set processedGlobalsCode if we have ready Code objects but haven't stored them yet
|
|
383
|
+
React.useEffect(function () {
|
|
384
|
+
if (!globalsCode || processedGlobalsCode) {
|
|
385
|
+
return; // No globals or already processed
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// Check if all items are already Code objects (precomputed)
|
|
389
|
+
if (globalsCode.every(function (item) {
|
|
390
|
+
return _typeof(item) === 'object';
|
|
391
|
+
})) {
|
|
392
|
+
var codeObjects = globalsCode;
|
|
393
|
+
// Check if all Code objects have all their own variants
|
|
394
|
+
var allReady = codeObjects.every(function (codeObj) {
|
|
395
|
+
return hasAllVariants(Object.keys(codeObj), codeObj);
|
|
396
|
+
});
|
|
397
|
+
if (allReady) {
|
|
398
|
+
setProcessedGlobalsCode(codeObjects);
|
|
399
|
+
return;
|
|
400
|
+
}
|
|
401
|
+
// If not all ready, fall through to loading logic below
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
// Need to load string URLs or load missing variants
|
|
405
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee8() {
|
|
406
|
+
var basicCodeObjects, fullyLoadedCodeObjects;
|
|
407
|
+
return _regeneratorRuntime().wrap(function _callee8$(_context8) {
|
|
408
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
409
|
+
case 0:
|
|
410
|
+
_context8.prev = 0;
|
|
411
|
+
_context8.next = 3;
|
|
412
|
+
return Promise.all(globalsCode.map(/*#__PURE__*/function () {
|
|
413
|
+
var _ref10 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5(item) {
|
|
414
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
415
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
416
|
+
case 0:
|
|
417
|
+
if (!(typeof item === 'string')) {
|
|
418
|
+
_context5.next = 8;
|
|
419
|
+
break;
|
|
420
|
+
}
|
|
421
|
+
if (loadCodeMeta) {
|
|
422
|
+
_context5.next = 3;
|
|
423
|
+
break;
|
|
424
|
+
}
|
|
425
|
+
throw new Error('"loadCodeMeta" function is required for string URLs in globalsCode');
|
|
426
|
+
case 3:
|
|
427
|
+
_context5.next = 5;
|
|
428
|
+
return loadCodeMeta(item);
|
|
429
|
+
case 5:
|
|
430
|
+
_context5.t0 = _context5.sent;
|
|
431
|
+
_context5.t1 = item;
|
|
432
|
+
return _context5.abrupt("return", {
|
|
433
|
+
codeObj: _context5.t0,
|
|
434
|
+
originalUrl: _context5.t1
|
|
435
|
+
});
|
|
436
|
+
case 8:
|
|
437
|
+
return _context5.abrupt("return", {
|
|
438
|
+
codeObj: item,
|
|
439
|
+
originalUrl: undefined
|
|
440
|
+
});
|
|
441
|
+
case 9:
|
|
442
|
+
case "end":
|
|
443
|
+
return _context5.stop();
|
|
444
|
+
}
|
|
445
|
+
}, _callee5);
|
|
446
|
+
}));
|
|
447
|
+
return function (_x2) {
|
|
448
|
+
return _ref10.apply(this, arguments);
|
|
449
|
+
};
|
|
450
|
+
}()));
|
|
451
|
+
case 3:
|
|
452
|
+
basicCodeObjects = _context8.sent;
|
|
453
|
+
_context8.next = 6;
|
|
454
|
+
return Promise.all(basicCodeObjects.map(/*#__PURE__*/function () {
|
|
455
|
+
var _ref12 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee7(_ref11) {
|
|
456
|
+
var codeObj, originalUrl, loadedVariants;
|
|
457
|
+
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
458
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
459
|
+
case 0:
|
|
460
|
+
codeObj = _ref11.codeObj, originalUrl = _ref11.originalUrl;
|
|
461
|
+
if (!hasAllVariants(variants, codeObj)) {
|
|
462
|
+
_context7.next = 3;
|
|
463
|
+
break;
|
|
464
|
+
}
|
|
465
|
+
return _context7.abrupt("return", codeObj);
|
|
466
|
+
case 3:
|
|
467
|
+
// Need to load missing variants
|
|
468
|
+
loadedVariants = _objectSpread({}, codeObj);
|
|
469
|
+
_context7.next = 6;
|
|
470
|
+
return Promise.all(variants.map(/*#__PURE__*/function () {
|
|
471
|
+
var _ref13 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee6(variantName) {
|
|
472
|
+
var result;
|
|
473
|
+
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
474
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
475
|
+
case 0:
|
|
476
|
+
if (!(codeObj[variantName] && _typeof(codeObj[variantName]) === 'object')) {
|
|
477
|
+
_context6.next = 2;
|
|
478
|
+
break;
|
|
479
|
+
}
|
|
480
|
+
return _context6.abrupt("return");
|
|
481
|
+
case 2:
|
|
482
|
+
_context6.prev = 2;
|
|
483
|
+
_context6.next = 5;
|
|
484
|
+
return loadVariant(originalUrl || '',
|
|
485
|
+
// Use the original URL if available
|
|
486
|
+
variantName, codeObj[variantName],
|
|
487
|
+
// May be undefined or string
|
|
488
|
+
undefined,
|
|
489
|
+
// sourceParser - skip parsing for now
|
|
490
|
+
loadSource, loadVariantMeta, undefined,
|
|
491
|
+
// sourceTransformers - skip transforming
|
|
492
|
+
{
|
|
493
|
+
disableParsing: true,
|
|
494
|
+
disableTransforms: true
|
|
495
|
+
});
|
|
496
|
+
case 5:
|
|
497
|
+
result = _context6.sent;
|
|
498
|
+
loadedVariants[variantName] = result.code;
|
|
499
|
+
_context6.next = 12;
|
|
500
|
+
break;
|
|
501
|
+
case 9:
|
|
502
|
+
_context6.prev = 9;
|
|
503
|
+
_context6.t0 = _context6["catch"](2);
|
|
504
|
+
console.warn("Failed to load variant ".concat(variantName, " for globalsCode:"), _context6.t0);
|
|
505
|
+
// Keep the original variant data (may be undefined)
|
|
506
|
+
case 12:
|
|
507
|
+
case "end":
|
|
508
|
+
return _context6.stop();
|
|
509
|
+
}
|
|
510
|
+
}, _callee6, null, [[2, 9]]);
|
|
511
|
+
}));
|
|
512
|
+
return function (_x4) {
|
|
513
|
+
return _ref13.apply(this, arguments);
|
|
514
|
+
};
|
|
515
|
+
}()));
|
|
516
|
+
case 6:
|
|
517
|
+
return _context7.abrupt("return", loadedVariants);
|
|
518
|
+
case 7:
|
|
519
|
+
case "end":
|
|
520
|
+
return _context7.stop();
|
|
521
|
+
}
|
|
522
|
+
}, _callee7);
|
|
523
|
+
}));
|
|
524
|
+
return function (_x3) {
|
|
525
|
+
return _ref12.apply(this, arguments);
|
|
526
|
+
};
|
|
527
|
+
}()));
|
|
528
|
+
case 6:
|
|
529
|
+
fullyLoadedCodeObjects = _context8.sent;
|
|
530
|
+
setProcessedGlobalsCode(fullyLoadedCodeObjects);
|
|
531
|
+
_context8.next = 13;
|
|
532
|
+
break;
|
|
533
|
+
case 10:
|
|
534
|
+
_context8.prev = 10;
|
|
535
|
+
_context8.t0 = _context8["catch"](0);
|
|
536
|
+
console.warn('Failed to load globalsCode:', _context8.t0);
|
|
537
|
+
case 13:
|
|
538
|
+
case "end":
|
|
539
|
+
return _context8.stop();
|
|
540
|
+
}
|
|
541
|
+
}, _callee8, null, [[0, 10]]);
|
|
542
|
+
}))();
|
|
543
|
+
}, [globalsCode, processedGlobalsCode, setProcessedGlobalsCode, loadCodeMeta, loadSource, loadVariantMeta, variants]);
|
|
544
|
+
|
|
545
|
+
// Determine globalsCodeObjects to use (prefer processed, fallback to direct if ready)
|
|
546
|
+
var globalsCodeObjects = React.useMemo(function () {
|
|
547
|
+
if (processedGlobalsCode) {
|
|
548
|
+
return processedGlobalsCode;
|
|
549
|
+
}
|
|
550
|
+
if (globalsCode && globalsCode.every(function (item) {
|
|
551
|
+
return _typeof(item) === 'object';
|
|
552
|
+
})) {
|
|
553
|
+
var codeObjects = globalsCode;
|
|
554
|
+
var allGlobalsReady = codeObjects.every(function (codeObj) {
|
|
555
|
+
return hasAllVariants(Object.keys(codeObj), codeObj);
|
|
556
|
+
});
|
|
557
|
+
if (allGlobalsReady) {
|
|
558
|
+
return codeObjects;
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
return undefined;
|
|
562
|
+
}, [processedGlobalsCode, globalsCode]);
|
|
563
|
+
|
|
564
|
+
// Merge globalsCode with code when ready
|
|
565
|
+
return React.useMemo(function () {
|
|
566
|
+
// If no globalsCode or code not ready, return as-is
|
|
567
|
+
if (!globalsCode || !code || !readyForContent) {
|
|
568
|
+
return code;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
// If globalsCodeObjects isn't ready yet, return unmerged code for now
|
|
572
|
+
if (!globalsCodeObjects) {
|
|
573
|
+
return code;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
// For precomputed code, do simple synchronous merging of extraFiles
|
|
577
|
+
var mergedCode = _objectSpread({}, code);
|
|
578
|
+
var hasChanges = false;
|
|
579
|
+
variants.forEach(function (variant) {
|
|
580
|
+
var variantData = code[variant];
|
|
581
|
+
if (!variantData || typeof variantData === 'string') {
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
// Get globalsCode for this variant (only exact matches, no fallback)
|
|
586
|
+
var globalsForVariant = globalsCodeObjects.map(function (codeObj) {
|
|
587
|
+
return codeObj[variant];
|
|
588
|
+
}).filter(function (item) {
|
|
589
|
+
return Boolean(item) && _typeof(item) === 'object';
|
|
590
|
+
});
|
|
591
|
+
if (globalsForVariant.length > 0) {
|
|
592
|
+
// Simple merge for precomputed data - just combine extraFiles
|
|
593
|
+
var mergedExtraFiles = _objectSpread({}, variantData.extraFiles || {});
|
|
594
|
+
globalsForVariant.forEach(function (globalVariant) {
|
|
595
|
+
if (globalVariant.extraFiles) {
|
|
596
|
+
Object.assign(mergedExtraFiles, globalVariant.extraFiles);
|
|
597
|
+
}
|
|
598
|
+
});
|
|
599
|
+
|
|
600
|
+
// Only update if we actually have extra files to merge
|
|
601
|
+
if (Object.keys(mergedExtraFiles).length > Object.keys(variantData.extraFiles || {}).length) {
|
|
602
|
+
mergedCode[variant] = _objectSpread(_objectSpread({}, variantData), {}, {
|
|
603
|
+
extraFiles: mergedExtraFiles
|
|
604
|
+
});
|
|
605
|
+
hasChanges = true;
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
});
|
|
609
|
+
|
|
610
|
+
// Return merged code if we made changes, otherwise return original code
|
|
611
|
+
return hasChanges ? mergedCode : code;
|
|
612
|
+
}, [code, globalsCode, globalsCodeObjects, readyForContent, variants]);
|
|
613
|
+
}
|
|
614
|
+
function usePropsCodeGlobalsMerging(_ref14) {
|
|
615
|
+
var code = _ref14.code,
|
|
616
|
+
globalsCode = _ref14.globalsCode,
|
|
617
|
+
processedGlobalsCode = _ref14.processedGlobalsCode,
|
|
618
|
+
variants = _ref14.variants;
|
|
619
|
+
// For props.code, always do synchronous merging if possible
|
|
620
|
+
// We don't want to cache this in state since props.code can change frequently
|
|
621
|
+
return React.useMemo(function () {
|
|
622
|
+
if (!code || !globalsCode || !processedGlobalsCode) {
|
|
623
|
+
return code; // No merge needed or not ready
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
// Use processedGlobalsCode for synchronous merging
|
|
627
|
+
var globalsCodeObjects = processedGlobalsCode;
|
|
628
|
+
|
|
629
|
+
// For props.code (controlled), do simple synchronous merging
|
|
630
|
+
var mergedCode = _objectSpread({}, code);
|
|
631
|
+
var hasChanges = false;
|
|
632
|
+
variants.forEach(function (variant) {
|
|
633
|
+
var variantData = code[variant];
|
|
634
|
+
if (!variantData || typeof variantData === 'string') {
|
|
635
|
+
return;
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
// Get globalsCode for this variant (only exact matches, no fallback)
|
|
639
|
+
var globalsForVariant = globalsCodeObjects.map(function (codeObj) {
|
|
640
|
+
return codeObj[variant];
|
|
641
|
+
}).filter(function (item) {
|
|
642
|
+
return Boolean(item) && _typeof(item) === 'object';
|
|
643
|
+
});
|
|
644
|
+
if (globalsForVariant.length > 0) {
|
|
645
|
+
// Simple merge for controlled data - just combine extraFiles
|
|
646
|
+
var mergedExtraFiles = _objectSpread({}, variantData.extraFiles || {});
|
|
647
|
+
globalsForVariant.forEach(function (globalVariant) {
|
|
648
|
+
if (globalVariant.extraFiles) {
|
|
649
|
+
Object.assign(mergedExtraFiles, globalVariant.extraFiles);
|
|
650
|
+
}
|
|
651
|
+
});
|
|
652
|
+
|
|
653
|
+
// Only update if we actually have extra files to merge
|
|
654
|
+
if (Object.keys(mergedExtraFiles).length > Object.keys(variantData.extraFiles || {}).length) {
|
|
655
|
+
mergedCode[variant] = _objectSpread(_objectSpread({}, variantData), {}, {
|
|
656
|
+
extraFiles: mergedExtraFiles
|
|
657
|
+
});
|
|
658
|
+
hasChanges = true;
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
});
|
|
662
|
+
|
|
663
|
+
// Return merged code if we made changes, otherwise return original code
|
|
664
|
+
return hasChanges ? mergedCode : code;
|
|
665
|
+
}, [code, globalsCode, processedGlobalsCode, variants]);
|
|
666
|
+
}
|
|
269
667
|
export function CodeHighlighterClient(props) {
|
|
270
|
-
var _activeCode$variantNa, _activeCode$variantNa2;
|
|
271
668
|
var _useControlledCode = useControlledCode(),
|
|
272
669
|
controlledCode = _useControlledCode.controlledCode,
|
|
273
670
|
controlledSelection = _useControlledCode.controlledSelection,
|
|
@@ -288,18 +685,28 @@ export function CodeHighlighterClient(props) {
|
|
|
288
685
|
code = _React$useState4[0],
|
|
289
686
|
setCode = _React$useState4[1];
|
|
290
687
|
|
|
688
|
+
// State to store processed globalsCode to avoid duplicate loading
|
|
689
|
+
var _React$useState5 = React.useState(undefined),
|
|
690
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
691
|
+
processedGlobalsCode = _React$useState6[0],
|
|
692
|
+
setProcessedGlobalsCode = _React$useState6[1];
|
|
693
|
+
|
|
291
694
|
// TODO: if using props.variant, then the variant is controlled and we can't use our own state
|
|
292
695
|
// does props.variant make any sense instead of controlledSelection?.variant?
|
|
293
|
-
var _React$
|
|
696
|
+
var _React$useState7 = React.useState({
|
|
294
697
|
variant: props.initialVariant || props.defaultVariant || 'Default'
|
|
295
698
|
}),
|
|
296
|
-
_React$
|
|
297
|
-
selection = _React$
|
|
298
|
-
setSelection = _React$
|
|
699
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
700
|
+
selection = _React$useState8[0],
|
|
701
|
+
setSelection = _React$useState8[1];
|
|
299
702
|
var variantName = (controlledSelection == null ? void 0 : controlledSelection.variant) || props.variant || selection.variant;
|
|
300
703
|
var activeCode = controlledCode || props.code || code;
|
|
301
|
-
var initialFilename
|
|
302
|
-
|
|
704
|
+
var initialFilename;
|
|
705
|
+
if (_typeof(activeCode == null ? void 0 : activeCode[variantName]) === 'object') {
|
|
706
|
+
var variant = activeCode[variantName];
|
|
707
|
+
initialFilename = variant != null && variant.filesOrder ? variant.filesOrder[0] : variant == null ? void 0 : variant.fileName;
|
|
708
|
+
}
|
|
709
|
+
var fileName = (controlledSelection == null ? void 0 : controlledSelection.fileName) || props.fileName || initialFilename;
|
|
303
710
|
var variants = props.variants || Object.keys(props.components || activeCode || {});
|
|
304
711
|
var url = props.url,
|
|
305
712
|
highlightAt = props.highlightAt,
|
|
@@ -315,7 +722,9 @@ export function CodeHighlighterClient(props) {
|
|
|
315
722
|
highlightAt: highlightAt,
|
|
316
723
|
fallbackUsesExtraFiles: fallbackUsesExtraFiles,
|
|
317
724
|
fallbackUsesAllVariants: fallbackUsesAllVariants,
|
|
318
|
-
isControlled: isControlled
|
|
725
|
+
isControlled: isControlled,
|
|
726
|
+
globalsCode: props.globalsCode,
|
|
727
|
+
setProcessedGlobalsCode: setProcessedGlobalsCode
|
|
319
728
|
});
|
|
320
729
|
var readyForContent = React.useMemo(function () {
|
|
321
730
|
if (!code) {
|
|
@@ -345,13 +754,40 @@ export function CodeHighlighterClient(props) {
|
|
|
345
754
|
isControlled: isControlled,
|
|
346
755
|
url: url,
|
|
347
756
|
code: code,
|
|
348
|
-
setCode: setCode
|
|
757
|
+
setCode: setCode,
|
|
758
|
+
processedGlobalsCode: processedGlobalsCode,
|
|
759
|
+
globalsCode: props.globalsCode,
|
|
760
|
+
setProcessedGlobalsCode: setProcessedGlobalsCode
|
|
761
|
+
});
|
|
762
|
+
|
|
763
|
+
// Merge globalsCode with internal state code (fetched data) - this should be stable once ready
|
|
764
|
+
var stateCodeWithGlobals = useGlobalsCodeMerging({
|
|
765
|
+
code: code,
|
|
766
|
+
// Only use internal state, not props.code
|
|
767
|
+
globalsCode: props.globalsCode,
|
|
768
|
+
processedGlobalsCode: processedGlobalsCode,
|
|
769
|
+
setProcessedGlobalsCode: setProcessedGlobalsCode,
|
|
770
|
+
readyForContent: readyForContent,
|
|
771
|
+
variants: variants
|
|
349
772
|
});
|
|
773
|
+
|
|
774
|
+
// For props.code (controlled), always re-merge when it changes (don't cache in state)
|
|
775
|
+
var propsCodeWithGlobals = usePropsCodeGlobalsMerging({
|
|
776
|
+
code: props.code,
|
|
777
|
+
globalsCode: props.globalsCode,
|
|
778
|
+
processedGlobalsCode: processedGlobalsCode,
|
|
779
|
+
variants: variants
|
|
780
|
+
});
|
|
781
|
+
|
|
782
|
+
// Use props.code result if available, otherwise use state code result
|
|
783
|
+
var codeWithGlobals = propsCodeWithGlobals || stateCodeWithGlobals;
|
|
350
784
|
var _useCodeParsing = useCodeParsing({
|
|
351
|
-
code:
|
|
352
|
-
readyForContent: readyForContent || Boolean(props.code)
|
|
785
|
+
code: codeWithGlobals,
|
|
786
|
+
readyForContent: readyForContent || Boolean(props.code),
|
|
787
|
+
highlightAt: highlightAt
|
|
353
788
|
}),
|
|
354
|
-
parsedCode = _useCodeParsing.parsedCode
|
|
789
|
+
parsedCode = _useCodeParsing.parsedCode,
|
|
790
|
+
deferHighlight = _useCodeParsing.deferHighlight;
|
|
355
791
|
var _useCodeTransforms = useCodeTransforms({
|
|
356
792
|
parsedCode: parsedCode,
|
|
357
793
|
variantName: variantName
|
|
@@ -364,7 +800,7 @@ export function CodeHighlighterClient(props) {
|
|
|
364
800
|
parsedControlledCode = _useControlledCodePar.parsedControlledCode;
|
|
365
801
|
|
|
366
802
|
// Determine the final overlaid code (controlled takes precedence)
|
|
367
|
-
var overlaidCode = parsedControlledCode || transformedCode;
|
|
803
|
+
var overlaidCode = parsedControlledCode || transformedCode || codeWithGlobals;
|
|
368
804
|
|
|
369
805
|
// For fallback context, use the processed code or fall back to non-controlled code
|
|
370
806
|
var codeForFallback = overlaidCode || (controlledCode ? undefined : props.code || code);
|
|
@@ -373,15 +809,17 @@ export function CodeHighlighterClient(props) {
|
|
|
373
809
|
}, [variantName, codeForFallback, fileName, props.fallbackUsesExtraFiles, props.fallbackUsesAllVariants]);
|
|
374
810
|
var context = React.useMemo(function () {
|
|
375
811
|
return {
|
|
376
|
-
code: overlaidCode
|
|
812
|
+
code: overlaidCode,
|
|
377
813
|
// Use processed/transformed code
|
|
378
814
|
setCode: controlledSetCode,
|
|
379
815
|
selection: controlledSelection || selection,
|
|
380
816
|
setSelection: controlledSetSelection || setSelection,
|
|
381
817
|
components: controlledComponents || props.components,
|
|
382
|
-
availableTransforms: availableTransforms
|
|
818
|
+
availableTransforms: isControlled ? [] : availableTransforms,
|
|
819
|
+
url: props.url,
|
|
820
|
+
deferHighlight: deferHighlight
|
|
383
821
|
};
|
|
384
|
-
}, [overlaidCode,
|
|
822
|
+
}, [overlaidCode, controlledSetCode, selection, controlledSelection, controlledSetSelection, controlledComponents, props.components, isControlled, availableTransforms, props.url, deferHighlight]);
|
|
385
823
|
if (!props.variants && !props.components && !activeCode) {
|
|
386
824
|
throw new Error('CodeHighlighterClient requires either `variants`, `components`, or `code` to be provided.');
|
|
387
825
|
}
|