@mui/internal-docs-infra 0.1.0 → 0.1.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/build/CodeControllerContext/CodeControllerContext.d.ts +22 -0
- package/build/CodeControllerContext/CodeControllerContext.js +21 -0
- package/build/CodeControllerContext/index.d.ts +1 -0
- package/build/CodeControllerContext/index.js +16 -0
- package/build/CodeHighlighter/CodeHighlighter.d.ts +2 -0
- package/build/CodeHighlighter/CodeHighlighter.js +329 -0
- package/build/CodeHighlighter/CodeHighlighterClient.d.ts +2 -0
- package/build/CodeHighlighter/CodeHighlighterClient.js +406 -0
- package/build/CodeHighlighter/CodeHighlighterContext.d.ts +14 -0
- package/build/CodeHighlighter/CodeHighlighterContext.js +22 -0
- package/build/CodeHighlighter/CodeHighlighterFallbackContext.d.ts +7 -0
- package/build/CodeHighlighter/CodeHighlighterFallbackContext.js +18 -0
- package/build/CodeHighlighter/applyTransform.d.ts +19 -0
- package/build/CodeHighlighter/applyTransform.js +83 -0
- package/build/CodeHighlighter/codeToFallbackProps.d.ts +2 -0
- package/build/CodeHighlighter/codeToFallbackProps.js +77 -0
- package/build/CodeHighlighter/errors.d.ts +0 -0
- package/build/CodeHighlighter/errors.js +2 -0
- package/build/CodeHighlighter/hasAllVariants.d.ts +2 -0
- package/build/CodeHighlighter/hasAllVariants.js +37 -0
- package/build/CodeHighlighter/index.d.ts +4 -0
- package/build/CodeHighlighter/index.js +49 -0
- package/build/CodeHighlighter/loadFallbackCode.d.ts +9 -0
- package/build/CodeHighlighter/loadFallbackCode.js +474 -0
- package/build/CodeHighlighter/loadVariant.d.ts +11 -0
- package/build/CodeHighlighter/loadVariant.js +715 -0
- package/build/CodeHighlighter/maybeInitialData.d.ts +10 -0
- package/build/CodeHighlighter/maybeInitialData.js +101 -0
- package/build/CodeHighlighter/parseCode.d.ts +6 -0
- package/build/CodeHighlighter/parseCode.js +129 -0
- package/build/CodeHighlighter/parseControlledCode.d.ts +6 -0
- package/build/CodeHighlighter/parseControlledCode.js +83 -0
- package/build/CodeHighlighter/transformCode.d.ts +20 -0
- package/build/CodeHighlighter/transformCode.js +231 -0
- package/build/CodeHighlighter/transformParsedSource.d.ts +3 -0
- package/build/CodeHighlighter/transformParsedSource.js +73 -0
- package/build/CodeHighlighter/transformSource.d.ts +2 -0
- package/build/CodeHighlighter/transformSource.js +114 -0
- package/build/CodeHighlighter/types.d.ts +138 -0
- package/build/CodeHighlighter/types.js +5 -0
- package/build/CodeProvider/CodeContext.d.ts +12 -0
- package/build/CodeProvider/CodeContext.js +14 -0
- package/build/CodeProvider/CodeProvider.d.ts +13 -0
- package/build/CodeProvider/CodeProvider.js +57 -0
- package/build/CodeProvider/index.d.ts +2 -0
- package/build/CodeProvider/index.js +27 -0
- package/build/README.md +19 -0
- package/build/esm/CodeControllerContext/CodeControllerContext.d.ts +22 -0
- package/build/esm/CodeControllerContext/CodeControllerContext.d.ts.map +1 -0
- package/build/esm/CodeControllerContext/CodeControllerContext.js +14 -0
- package/build/esm/CodeControllerContext/index.d.ts +1 -0
- package/build/esm/CodeControllerContext/index.d.ts.map +1 -0
- package/build/esm/CodeControllerContext/index.js +1 -0
- package/build/esm/CodeHighlighter/CodeHighlighter.d.ts +2 -0
- package/build/esm/CodeHighlighter/CodeHighlighter.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/CodeHighlighter.js +321 -0
- package/build/esm/CodeHighlighter/CodeHighlighterClient.d.ts +2 -0
- package/build/esm/CodeHighlighter/CodeHighlighterClient.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/CodeHighlighterClient.js +399 -0
- package/build/esm/CodeHighlighter/CodeHighlighterContext.d.ts +14 -0
- package/build/esm/CodeHighlighter/CodeHighlighterContext.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/CodeHighlighterContext.js +14 -0
- package/build/esm/CodeHighlighter/CodeHighlighterFallbackContext.d.ts +7 -0
- package/build/esm/CodeHighlighter/CodeHighlighterFallbackContext.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/CodeHighlighterFallbackContext.js +11 -0
- package/build/esm/CodeHighlighter/applyTransform.d.ts +19 -0
- package/build/esm/CodeHighlighter/applyTransform.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/applyTransform.js +75 -0
- package/build/esm/CodeHighlighter/codeToFallbackProps.d.ts +2 -0
- package/build/esm/CodeHighlighter/codeToFallbackProps.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/codeToFallbackProps.js +70 -0
- package/build/esm/CodeHighlighter/errors.d.ts +0 -0
- package/build/esm/CodeHighlighter/errors.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/errors.js +1 -0
- package/build/esm/CodeHighlighter/hasAllVariants.d.ts +2 -0
- package/build/esm/CodeHighlighter/hasAllVariants.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/hasAllVariants.js +31 -0
- package/build/esm/CodeHighlighter/index.d.ts +4 -0
- package/build/esm/CodeHighlighter/index.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/index.js +4 -0
- package/build/esm/CodeHighlighter/loadFallbackCode.d.ts +9 -0
- package/build/esm/CodeHighlighter/loadFallbackCode.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/loadFallbackCode.js +468 -0
- package/build/esm/CodeHighlighter/loadVariant.d.ts +11 -0
- package/build/esm/CodeHighlighter/loadVariant.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/loadVariant.js +708 -0
- package/build/esm/CodeHighlighter/maybeInitialData.d.ts +10 -0
- package/build/esm/CodeHighlighter/maybeInitialData.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/maybeInitialData.js +94 -0
- package/build/esm/CodeHighlighter/parseCode.d.ts +6 -0
- package/build/esm/CodeHighlighter/parseCode.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/parseCode.js +122 -0
- package/build/esm/CodeHighlighter/parseControlledCode.d.ts +6 -0
- package/build/esm/CodeHighlighter/parseControlledCode.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/parseControlledCode.js +76 -0
- package/build/esm/CodeHighlighter/transformCode.d.ts +20 -0
- package/build/esm/CodeHighlighter/transformCode.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/transformCode.js +223 -0
- package/build/esm/CodeHighlighter/transformParsedSource.d.ts +3 -0
- package/build/esm/CodeHighlighter/transformParsedSource.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/transformParsedSource.js +66 -0
- package/build/esm/CodeHighlighter/transformSource.d.ts +2 -0
- package/build/esm/CodeHighlighter/transformSource.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/transformSource.js +107 -0
- package/build/esm/CodeHighlighter/types.d.ts +138 -0
- package/build/esm/CodeHighlighter/types.d.ts.map +1 -0
- package/build/esm/CodeHighlighter/types.js +1 -0
- package/build/esm/CodeProvider/CodeContext.d.ts +12 -0
- package/build/esm/CodeProvider/CodeContext.d.ts.map +1 -0
- package/build/esm/CodeProvider/CodeContext.js +8 -0
- package/build/esm/CodeProvider/CodeProvider.d.ts +13 -0
- package/build/esm/CodeProvider/CodeProvider.d.ts.map +1 -0
- package/build/esm/CodeProvider/CodeProvider.js +50 -0
- package/build/esm/CodeProvider/index.d.ts +2 -0
- package/build/esm/CodeProvider/index.d.ts.map +1 -0
- package/build/esm/CodeProvider/index.js +2 -0
- package/build/esm/hast/hast.d.ts +11 -0
- package/build/esm/hast/hast.d.ts.map +1 -0
- package/build/esm/hast/hast.js +66 -0
- package/build/esm/hast/index.d.ts +1 -0
- package/build/esm/hast/index.d.ts.map +1 -0
- package/build/esm/hast/index.js +1 -0
- package/build/esm/loadPrecomputedCodeHighlighter/index.d.ts +2 -0
- package/build/esm/loadPrecomputedCodeHighlighter/index.d.ts.map +1 -0
- package/build/esm/loadPrecomputedCodeHighlighter/index.js +4 -0
- package/build/esm/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts +57 -0
- package/build/esm/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts.map +1 -0
- package/build/esm/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.js +194 -0
- package/build/esm/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.d.ts +20 -0
- package/build/esm/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.d.ts.map +1 -0
- package/build/esm/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.js +243 -0
- package/build/esm/loadPrecomputedCodeHighlighter/parseFunctionParameters.d.ts +15 -0
- package/build/esm/loadPrecomputedCodeHighlighter/parseFunctionParameters.d.ts.map +1 -0
- package/build/esm/loadPrecomputedCodeHighlighter/parseFunctionParameters.js +168 -0
- package/build/esm/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts +27 -0
- package/build/esm/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts.map +1 -0
- package/build/esm/loadPrecomputedCodeHighlighter/replacePrecomputeValue.js +37 -0
- package/build/esm/loadServerCodeMeta/index.d.ts +1 -0
- package/build/esm/loadServerCodeMeta/index.d.ts.map +1 -0
- package/build/esm/loadServerCodeMeta/index.js +1 -0
- package/build/esm/loadServerCodeMeta/serverLoadCodeMeta.d.ts +24 -0
- package/build/esm/loadServerCodeMeta/serverLoadCodeMeta.d.ts.map +1 -0
- package/build/esm/loadServerCodeMeta/serverLoadCodeMeta.js +77 -0
- package/build/esm/loadServerSource/index.d.ts +1 -0
- package/build/esm/loadServerSource/index.d.ts.map +1 -0
- package/build/esm/loadServerSource/index.js +1 -0
- package/build/esm/loadServerSource/serverLoadSource.d.ts +25 -0
- package/build/esm/loadServerSource/serverLoadSource.d.ts.map +1 -0
- package/build/esm/loadServerSource/serverLoadSource.js +100 -0
- package/build/esm/loaderUtils/getFileNameFromUrl.d.ts +11 -0
- package/build/esm/loaderUtils/getFileNameFromUrl.d.ts.map +1 -0
- package/build/esm/loaderUtils/getFileNameFromUrl.js +32 -0
- package/build/esm/loaderUtils/index.d.ts +5 -0
- package/build/esm/loaderUtils/index.d.ts.map +1 -0
- package/build/esm/loaderUtils/index.js +5 -0
- package/build/esm/loaderUtils/processImports.d.ts +19 -0
- package/build/esm/loaderUtils/processImports.d.ts.map +1 -0
- package/build/esm/loaderUtils/processImports.js +82 -0
- package/build/esm/loaderUtils/resolveImports.d.ts +4 -0
- package/build/esm/loaderUtils/resolveImports.d.ts.map +1 -0
- package/build/esm/loaderUtils/resolveImports.js +71 -0
- package/build/esm/loaderUtils/resolveModulePath.d.ts +74 -0
- package/build/esm/loaderUtils/resolveModulePath.d.ts.map +1 -0
- package/build/esm/loaderUtils/resolveModulePath.js +827 -0
- package/build/esm/loaderUtils/resolveModulePathWithFs.d.ts +44 -0
- package/build/esm/loaderUtils/resolveModulePathWithFs.d.ts.map +1 -0
- package/build/esm/loaderUtils/resolveModulePathWithFs.js +159 -0
- package/build/esm/loaderUtils/rewriteImports.d.ts +9 -0
- package/build/esm/loaderUtils/rewriteImports.d.ts.map +1 -0
- package/build/esm/loaderUtils/rewriteImports.js +57 -0
- package/build/esm/parseSource/grammars.d.ts +2 -0
- package/build/esm/parseSource/grammars.d.ts.map +1 -0
- package/build/esm/parseSource/grammars.js +27 -0
- package/build/esm/parseSource/index.d.ts +1 -0
- package/build/esm/parseSource/index.d.ts.map +1 -0
- package/build/esm/parseSource/index.js +1 -0
- package/build/esm/parseSource/parseSource.d.ts +3 -0
- package/build/esm/parseSource/parseSource.d.ts.map +1 -0
- package/build/esm/parseSource/parseSource.js +37 -0
- package/build/esm/transformRelativeMarkdownPaths/index.d.ts +2 -0
- package/build/esm/transformRelativeMarkdownPaths/index.d.ts.map +1 -0
- package/build/esm/transformRelativeMarkdownPaths/index.js +4 -0
- package/build/esm/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.d.ts +12 -0
- package/build/esm/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.d.ts.map +1 -0
- package/build/esm/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.js +30 -0
- package/build/esm/transformTsToJs/index.d.ts +1 -0
- package/build/esm/transformTsToJs/index.d.ts.map +1 -0
- package/build/esm/transformTsToJs/index.js +1 -0
- package/build/esm/transformTsToJs/removeTypes.d.ts +13 -0
- package/build/esm/transformTsToJs/removeTypes.d.ts.map +1 -0
- package/build/esm/transformTsToJs/removeTypes.js +134 -0
- package/build/esm/transformTsToJs/transformTsToJs.d.ts +3 -0
- package/build/esm/transformTsToJs/transformTsToJs.d.ts.map +1 -0
- package/build/esm/transformTsToJs/transformTsToJs.js +34 -0
- package/build/esm/useCode/index.d.ts +1 -0
- package/build/esm/useCode/index.d.ts.map +1 -0
- package/build/esm/useCode/index.js +1 -0
- package/build/esm/useCode/useCode.d.ts +37 -0
- package/build/esm/useCode/useCode.d.ts.map +1 -0
- package/build/esm/useCode/useCode.js +393 -0
- package/{esm → build/esm}/useDemo/index.d.ts +12 -24
- package/build/esm/useDemo/index.d.ts.map +1 -0
- package/build/esm/useDemo/index.js +17 -0
- package/build/esm/useOnHydrate/index.d.ts +1 -0
- package/build/esm/useOnHydrate/index.d.ts.map +1 -0
- package/build/esm/useOnHydrate/index.js +1 -0
- package/build/esm/useOnHydrate/useOnHydrate.d.ts +1 -0
- package/build/esm/useOnHydrate/useOnHydrate.d.ts.map +1 -0
- package/build/esm/useOnHydrate/useOnHydrate.js +18 -0
- package/build/esm/useOnIdle/index.d.ts +1 -0
- package/build/esm/useOnIdle/index.d.ts.map +1 -0
- package/build/esm/useOnIdle/index.js +1 -0
- package/build/esm/useOnIdle/useOnIdle.d.ts +1 -0
- package/build/esm/useOnIdle/useOnIdle.d.ts.map +1 -0
- package/build/esm/useOnIdle/useOnIdle.js +39 -0
- package/build/hast/hast.d.ts +11 -0
- package/build/hast/hast.js +75 -0
- package/build/hast/index.d.ts +1 -0
- package/build/hast/index.js +16 -0
- package/build/loadPrecomputedCodeHighlighter/index.d.ts +2 -0
- package/build/loadPrecomputedCodeHighlighter/index.js +9 -0
- package/build/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.ts +57 -0
- package/build/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.js +201 -0
- package/build/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.d.ts +20 -0
- package/build/loadPrecomputedCodeHighlighter/parseCreateFactoryCall.js +248 -0
- package/build/loadPrecomputedCodeHighlighter/parseFunctionParameters.d.ts +15 -0
- package/build/loadPrecomputedCodeHighlighter/parseFunctionParameters.js +174 -0
- package/build/loadPrecomputedCodeHighlighter/replacePrecomputeValue.d.ts +27 -0
- package/build/loadPrecomputedCodeHighlighter/replacePrecomputeValue.js +43 -0
- package/build/loadServerCodeMeta/index.d.ts +1 -0
- package/build/loadServerCodeMeta/index.js +16 -0
- package/build/loadServerCodeMeta/serverLoadCodeMeta.d.ts +24 -0
- package/build/loadServerCodeMeta/serverLoadCodeMeta.js +85 -0
- package/build/loadServerSource/index.d.ts +1 -0
- package/build/loadServerSource/index.js +16 -0
- package/build/loadServerSource/serverLoadSource.d.ts +25 -0
- package/build/loadServerSource/serverLoadSource.js +108 -0
- package/build/loaderUtils/getFileNameFromUrl.d.ts +11 -0
- package/build/loaderUtils/getFileNameFromUrl.js +38 -0
- package/build/loaderUtils/index.d.ts +5 -0
- package/build/loaderUtils/index.js +60 -0
- package/build/loaderUtils/processImports.d.ts +19 -0
- package/build/loaderUtils/processImports.js +89 -0
- package/build/loaderUtils/resolveImports.d.ts +4 -0
- package/build/loaderUtils/resolveImports.js +78 -0
- package/build/loaderUtils/resolveModulePath.d.ts +74 -0
- package/build/loaderUtils/resolveModulePath.js +835 -0
- package/build/loaderUtils/resolveModulePathWithFs.d.ts +44 -0
- package/build/loaderUtils/resolveModulePathWithFs.js +163 -0
- package/build/loaderUtils/rewriteImports.d.ts +9 -0
- package/build/loaderUtils/rewriteImports.js +62 -0
- package/build/package.json +101 -0
- package/build/parseSource/grammars.d.ts +2 -0
- package/build/parseSource/grammars.js +34 -0
- package/build/parseSource/index.d.ts +1 -0
- package/build/parseSource/index.js +16 -0
- package/build/parseSource/parseSource.d.ts +3 -0
- package/build/parseSource/parseSource.js +44 -0
- package/build/transformRelativeMarkdownPaths/index.d.ts +2 -0
- package/build/transformRelativeMarkdownPaths/index.js +9 -0
- package/build/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.d.ts +12 -0
- package/build/transformRelativeMarkdownPaths/transformRelativeMarkdownPaths.js +36 -0
- package/build/transformTsToJs/index.d.ts +1 -0
- package/build/transformTsToJs/index.js +16 -0
- package/build/transformTsToJs/removeTypes.d.ts +13 -0
- package/build/transformTsToJs/removeTypes.js +141 -0
- package/build/transformTsToJs/transformTsToJs.d.ts +3 -0
- package/build/transformTsToJs/transformTsToJs.js +41 -0
- package/build/useCode/index.d.ts +1 -0
- package/build/useCode/index.js +16 -0
- package/build/useCode/useCode.d.ts +37 -0
- package/build/useCode/useCode.js +401 -0
- package/{useDemo → build/useDemo}/index.d.ts +12 -24
- package/build/useDemo/index.js +25 -0
- package/build/useOnHydrate/index.d.ts +1 -0
- package/build/useOnHydrate/index.js +16 -0
- package/build/useOnHydrate/useOnHydrate.d.ts +1 -0
- package/build/useOnHydrate/useOnHydrate.js +26 -0
- package/build/useOnIdle/index.d.ts +1 -0
- package/build/useOnIdle/index.js +16 -0
- package/build/useOnIdle/useOnIdle.d.ts +1 -0
- package/build/useOnIdle/useOnIdle.js +47 -0
- package/package.json +86 -14
- package/esm/useDemo/index.d.ts.map +0 -1
- package/esm/useDemo/index.js +0 -104
- package/useDemo/index.js +0 -112
- /package/{LICENSE → build/LICENSE} +0 -0
- /package/{esm → build/esm}/package.json +0 -0
- /package/{esm → build/esm}/useCopier/index.d.ts +0 -0
- /package/{esm → build/esm}/useCopier/index.d.ts.map +0 -0
- /package/{esm → build/esm}/useCopier/index.js +0 -0
- /package/{useCopier → build/useCopier}/index.d.ts +0 -0
- /package/{useCopier → build/useCopier}/index.js +0 -0
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
5
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
6
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
|
7
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
import { useCodeContext } from "../CodeProvider/CodeContext.js";
|
|
10
|
+
import { CodeHighlighterContext } from "./CodeHighlighterContext.js";
|
|
11
|
+
import { maybeInitialData } from "./maybeInitialData.js";
|
|
12
|
+
import { loadFallbackCode } from "./loadFallbackCode.js";
|
|
13
|
+
import { hasAllVariants } from "./hasAllVariants.js";
|
|
14
|
+
import { loadVariant } from "./loadVariant.js";
|
|
15
|
+
import { CodeHighlighterFallbackContext } from "./CodeHighlighterFallbackContext.js";
|
|
16
|
+
import { useControlledCode } from "../CodeControllerContext/index.js";
|
|
17
|
+
import { codeToFallbackProps } from "./codeToFallbackProps.js";
|
|
18
|
+
import { parseCode } from "./parseCode.js";
|
|
19
|
+
import { applyTransforms, getAvailableTransforms } from "./transformCode.js";
|
|
20
|
+
import { parseControlledCode } from "./parseControlledCode.js";
|
|
21
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
22
|
+
var DEBUG = false; // Set to true for debugging purposes
|
|
23
|
+
|
|
24
|
+
function useInitialData(_ref) {
|
|
25
|
+
var variants = _ref.variants,
|
|
26
|
+
variantName = _ref.variantName,
|
|
27
|
+
code = _ref.code,
|
|
28
|
+
setCode = _ref.setCode,
|
|
29
|
+
fileName = _ref.fileName,
|
|
30
|
+
url = _ref.url,
|
|
31
|
+
highlightAt = _ref.highlightAt,
|
|
32
|
+
fallbackUsesExtraFiles = _ref.fallbackUsesExtraFiles,
|
|
33
|
+
fallbackUsesAllVariants = _ref.fallbackUsesAllVariants,
|
|
34
|
+
isControlled = _ref.isControlled;
|
|
35
|
+
var _useCodeContext = useCodeContext(),
|
|
36
|
+
sourceParser = _useCodeContext.sourceParser,
|
|
37
|
+
loadCodeMeta = _useCodeContext.loadCodeMeta,
|
|
38
|
+
loadVariantMeta = _useCodeContext.loadVariantMeta,
|
|
39
|
+
loadSource = _useCodeContext.loadSource;
|
|
40
|
+
var _React$useMemo = React.useMemo(function () {
|
|
41
|
+
return maybeInitialData(variants, variantName, code, fileName, highlightAt === 'init', fallbackUsesExtraFiles, fallbackUsesAllVariants);
|
|
42
|
+
}, [variants, variantName, code, fileName, highlightAt, fallbackUsesExtraFiles, fallbackUsesAllVariants]),
|
|
43
|
+
initialData = _React$useMemo.initialData,
|
|
44
|
+
reason = _React$useMemo.reason;
|
|
45
|
+
|
|
46
|
+
// TODO: fallbackInitialRenderOnly option? this would mean we can't fetch fallback data on the client side
|
|
47
|
+
// Load initial data if not provided
|
|
48
|
+
React.useEffect(function () {
|
|
49
|
+
if (initialData || isControlled) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// TODO: abort controller
|
|
54
|
+
|
|
55
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
56
|
+
var loaded;
|
|
57
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
58
|
+
while (1) switch (_context.prev = _context.next) {
|
|
59
|
+
case 0:
|
|
60
|
+
if (DEBUG) {
|
|
61
|
+
// eslint-disable-next-line no-console
|
|
62
|
+
console.log('Loading initial data for CodeHighlighterClient: ', reason);
|
|
63
|
+
}
|
|
64
|
+
_context.next = 3;
|
|
65
|
+
return loadFallbackCode(url, variantName, code, highlightAt === 'init', fallbackUsesExtraFiles, fallbackUsesAllVariants, sourceParser, loadSource, loadVariantMeta, loadCodeMeta, fileName, variants)["catch"](function (error) {
|
|
66
|
+
return {
|
|
67
|
+
error: error
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
case 3:
|
|
71
|
+
loaded = _context.sent;
|
|
72
|
+
if ('error' in loaded) {
|
|
73
|
+
// TODO: handle error
|
|
74
|
+
} else {
|
|
75
|
+
setCode(loaded.code);
|
|
76
|
+
}
|
|
77
|
+
case 5:
|
|
78
|
+
case "end":
|
|
79
|
+
return _context.stop();
|
|
80
|
+
}
|
|
81
|
+
}, _callee);
|
|
82
|
+
}))();
|
|
83
|
+
}, [initialData, reason, isControlled, variantName, code, setCode, highlightAt, url, sourceParser, loadSource, loadVariantMeta, loadCodeMeta, fallbackUsesExtraFiles, fallbackUsesAllVariants, fileName, variants]);
|
|
84
|
+
}
|
|
85
|
+
function useAllVariants(_ref3) {
|
|
86
|
+
var readyForContent = _ref3.readyForContent,
|
|
87
|
+
variants = _ref3.variants,
|
|
88
|
+
isControlled = _ref3.isControlled,
|
|
89
|
+
url = _ref3.url,
|
|
90
|
+
code = _ref3.code,
|
|
91
|
+
setCode = _ref3.setCode;
|
|
92
|
+
var _useCodeContext2 = useCodeContext(),
|
|
93
|
+
loadCodeMeta = _useCodeContext2.loadCodeMeta,
|
|
94
|
+
loadVariantMeta = _useCodeContext2.loadVariantMeta,
|
|
95
|
+
loadSource = _useCodeContext2.loadSource;
|
|
96
|
+
React.useEffect(function () {
|
|
97
|
+
if (readyForContent || isControlled) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
// TODO: abort controller
|
|
102
|
+
|
|
103
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
104
|
+
var loadedCode, result, resultCode, errors, _iterator, _step, item;
|
|
105
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
106
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
107
|
+
case 0:
|
|
108
|
+
loadedCode = code;
|
|
109
|
+
if (loadedCode) {
|
|
110
|
+
_context2.next = 7;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
if (loadCodeMeta) {
|
|
114
|
+
_context2.next = 4;
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
throw new Error('"loadCodeMeta" function is required when no code is provided');
|
|
118
|
+
case 4:
|
|
119
|
+
_context2.next = 6;
|
|
120
|
+
return loadCodeMeta(url);
|
|
121
|
+
case 6:
|
|
122
|
+
loadedCode = _context2.sent;
|
|
123
|
+
case 7:
|
|
124
|
+
_context2.next = 9;
|
|
125
|
+
return Promise.all(variants.map(function (name) {
|
|
126
|
+
return loadVariant(url, name, loadedCode[name], undefined,
|
|
127
|
+
// sourceParser - skip parsing
|
|
128
|
+
loadSource, loadVariantMeta, undefined,
|
|
129
|
+
// sourceTransformers - skip transforming
|
|
130
|
+
{
|
|
131
|
+
disableParsing: true,
|
|
132
|
+
disableTransforms: true
|
|
133
|
+
}).then(function (variant) {
|
|
134
|
+
return {
|
|
135
|
+
name: name,
|
|
136
|
+
variant: variant
|
|
137
|
+
};
|
|
138
|
+
})["catch"](function (error) {
|
|
139
|
+
return {
|
|
140
|
+
error: error
|
|
141
|
+
};
|
|
142
|
+
});
|
|
143
|
+
}));
|
|
144
|
+
case 9:
|
|
145
|
+
result = _context2.sent;
|
|
146
|
+
resultCode = {};
|
|
147
|
+
errors = [];
|
|
148
|
+
_iterator = _createForOfIteratorHelper(result);
|
|
149
|
+
try {
|
|
150
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
151
|
+
item = _step.value;
|
|
152
|
+
if ('error' in item) {
|
|
153
|
+
errors.push(item.error);
|
|
154
|
+
} else {
|
|
155
|
+
resultCode[item.name] = item.variant.code;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
} catch (err) {
|
|
159
|
+
_iterator.e(err);
|
|
160
|
+
} finally {
|
|
161
|
+
_iterator.f();
|
|
162
|
+
}
|
|
163
|
+
if (errors.length > 0) {
|
|
164
|
+
// TODO: handle error
|
|
165
|
+
} else {
|
|
166
|
+
setCode(resultCode);
|
|
167
|
+
}
|
|
168
|
+
case 15:
|
|
169
|
+
case "end":
|
|
170
|
+
return _context2.stop();
|
|
171
|
+
}
|
|
172
|
+
}, _callee2);
|
|
173
|
+
}))();
|
|
174
|
+
}, [readyForContent, isControlled, variants, url, code, setCode, loadSource, loadVariantMeta, loadCodeMeta]);
|
|
175
|
+
return {
|
|
176
|
+
readyForContent: readyForContent
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
function useCodeParsing(_ref5) {
|
|
180
|
+
var code = _ref5.code,
|
|
181
|
+
readyForContent = _ref5.readyForContent;
|
|
182
|
+
var _useCodeContext3 = useCodeContext(),
|
|
183
|
+
parseSource = _useCodeContext3.parseSource;
|
|
184
|
+
|
|
185
|
+
// Parse the internal code state when ready
|
|
186
|
+
var parsedCode = React.useMemo(function () {
|
|
187
|
+
if (!code || !readyForContent || !parseSource) {
|
|
188
|
+
return undefined;
|
|
189
|
+
}
|
|
190
|
+
return parseCode(code, parseSource);
|
|
191
|
+
}, [code, readyForContent, parseSource]);
|
|
192
|
+
return {
|
|
193
|
+
parsedCode: parsedCode
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
function useCodeTransforms(_ref6) {
|
|
197
|
+
var parsedCode = _ref6.parsedCode,
|
|
198
|
+
variantName = _ref6.variantName;
|
|
199
|
+
var _useCodeContext4 = useCodeContext(),
|
|
200
|
+
sourceParser = _useCodeContext4.sourceParser;
|
|
201
|
+
var _React$useState = React.useState(undefined),
|
|
202
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
203
|
+
transformedCode = _React$useState2[0],
|
|
204
|
+
setTransformedCode = _React$useState2[1];
|
|
205
|
+
|
|
206
|
+
// Get available transforms from the current variant (separate memo for efficiency)
|
|
207
|
+
var availableTransforms = React.useMemo(function () {
|
|
208
|
+
return getAvailableTransforms(parsedCode, variantName);
|
|
209
|
+
}, [parsedCode, variantName]);
|
|
210
|
+
|
|
211
|
+
// Effect to compute transformations for all variants
|
|
212
|
+
React.useEffect(function () {
|
|
213
|
+
if (!parsedCode || !sourceParser) {
|
|
214
|
+
setTransformedCode(parsedCode);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// Process transformations for all variants
|
|
219
|
+
_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
220
|
+
var parseSource, enhanced;
|
|
221
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
222
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
223
|
+
case 0:
|
|
224
|
+
_context3.prev = 0;
|
|
225
|
+
_context3.next = 3;
|
|
226
|
+
return sourceParser;
|
|
227
|
+
case 3:
|
|
228
|
+
parseSource = _context3.sent;
|
|
229
|
+
_context3.next = 6;
|
|
230
|
+
return applyTransforms(parsedCode, parseSource);
|
|
231
|
+
case 6:
|
|
232
|
+
enhanced = _context3.sent;
|
|
233
|
+
setTransformedCode(enhanced);
|
|
234
|
+
_context3.next = 14;
|
|
235
|
+
break;
|
|
236
|
+
case 10:
|
|
237
|
+
_context3.prev = 10;
|
|
238
|
+
_context3.t0 = _context3["catch"](0);
|
|
239
|
+
console.error('Failed to process transforms:', _context3.t0);
|
|
240
|
+
setTransformedCode(parsedCode);
|
|
241
|
+
case 14:
|
|
242
|
+
case "end":
|
|
243
|
+
return _context3.stop();
|
|
244
|
+
}
|
|
245
|
+
}, _callee3, null, [[0, 10]]);
|
|
246
|
+
}))();
|
|
247
|
+
}, [parsedCode, sourceParser]);
|
|
248
|
+
return {
|
|
249
|
+
transformedCode: transformedCode,
|
|
250
|
+
availableTransforms: availableTransforms
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
function useControlledCodeParsing(_ref8) {
|
|
254
|
+
var controlledCode = _ref8.controlledCode;
|
|
255
|
+
var _useCodeContext5 = useCodeContext(),
|
|
256
|
+
parseSource = _useCodeContext5.parseSource;
|
|
257
|
+
|
|
258
|
+
// Parse the controlled code separately (no need to check readyForContent)
|
|
259
|
+
var parsedControlledCode = React.useMemo(function () {
|
|
260
|
+
if (!controlledCode || !parseSource) {
|
|
261
|
+
return undefined;
|
|
262
|
+
}
|
|
263
|
+
return parseControlledCode(controlledCode, parseSource);
|
|
264
|
+
}, [controlledCode, parseSource]);
|
|
265
|
+
return {
|
|
266
|
+
parsedControlledCode: parsedControlledCode
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
export function CodeHighlighterClient(props) {
|
|
270
|
+
var _activeCode$variantNa, _activeCode$variantNa2;
|
|
271
|
+
var _useControlledCode = useControlledCode(),
|
|
272
|
+
controlledCode = _useControlledCode.controlledCode,
|
|
273
|
+
controlledSelection = _useControlledCode.controlledSelection,
|
|
274
|
+
controlledSetCode = _useControlledCode.controlledSetCode,
|
|
275
|
+
controlledSetSelection = _useControlledCode.controlledSetSelection,
|
|
276
|
+
controlledComponents = _useControlledCode.controlledComponents;
|
|
277
|
+
var isControlled = Boolean(props.code || controlledCode);
|
|
278
|
+
|
|
279
|
+
// TODO: props.code is for controlled components, props.precompute is for precomputed code
|
|
280
|
+
// props.code should only be highlighted, but no additional fetching should be done
|
|
281
|
+
// this is the case with live demos where the code can be edited by the user
|
|
282
|
+
// then maybe props.code shouldn't allow highlighted code, only strings?
|
|
283
|
+
// this is a code highlighter afterall, why would they want to control the highlighting aspect?
|
|
284
|
+
|
|
285
|
+
// TODO: should we empty this state if controlled?
|
|
286
|
+
var _React$useState3 = React.useState(_typeof(props.precompute) === 'object' ? props.precompute : undefined),
|
|
287
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
288
|
+
code = _React$useState4[0],
|
|
289
|
+
setCode = _React$useState4[1];
|
|
290
|
+
|
|
291
|
+
// TODO: if using props.variant, then the variant is controlled and we can't use our own state
|
|
292
|
+
// does props.variant make any sense instead of controlledSelection?.variant?
|
|
293
|
+
var _React$useState5 = React.useState({
|
|
294
|
+
variant: props.initialVariant || props.defaultVariant || 'Default'
|
|
295
|
+
}),
|
|
296
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
297
|
+
selection = _React$useState6[0],
|
|
298
|
+
setSelection = _React$useState6[1];
|
|
299
|
+
var variantName = (controlledSelection == null ? void 0 : controlledSelection.variant) || props.variant || selection.variant;
|
|
300
|
+
var activeCode = controlledCode || props.code || code;
|
|
301
|
+
var initialFilename = _typeof(activeCode == null ? void 0 : activeCode[variantName]) === 'object' && (activeCode != null && (_activeCode$variantNa = activeCode[variantName]) != null && _activeCode$variantNa.filesOrder ? activeCode[variantName].filesOrder[0] : activeCode == null || (_activeCode$variantNa2 = activeCode[variantName]) == null ? void 0 : _activeCode$variantNa2.fileName);
|
|
302
|
+
var fileName = (controlledSelection == null ? void 0 : controlledSelection.fileName) || props.fileName || initialFilename || 'index.js';
|
|
303
|
+
var variants = props.variants || Object.keys(props.components || activeCode || {});
|
|
304
|
+
var url = props.url,
|
|
305
|
+
highlightAt = props.highlightAt,
|
|
306
|
+
fallbackUsesExtraFiles = props.fallbackUsesExtraFiles,
|
|
307
|
+
fallbackUsesAllVariants = props.fallbackUsesAllVariants;
|
|
308
|
+
useInitialData({
|
|
309
|
+
variants: variants,
|
|
310
|
+
variantName: variantName,
|
|
311
|
+
code: code,
|
|
312
|
+
setCode: setCode,
|
|
313
|
+
fileName: fileName,
|
|
314
|
+
url: url,
|
|
315
|
+
highlightAt: highlightAt,
|
|
316
|
+
fallbackUsesExtraFiles: fallbackUsesExtraFiles,
|
|
317
|
+
fallbackUsesAllVariants: fallbackUsesAllVariants,
|
|
318
|
+
isControlled: isControlled
|
|
319
|
+
});
|
|
320
|
+
var readyForContent = React.useMemo(function () {
|
|
321
|
+
if (!code) {
|
|
322
|
+
return false;
|
|
323
|
+
}
|
|
324
|
+
return hasAllVariants(variants, code);
|
|
325
|
+
}, [code, variants]);
|
|
326
|
+
|
|
327
|
+
// Separate check for activeCode to determine when to show fallback
|
|
328
|
+
var activeCodeReady = React.useMemo(function () {
|
|
329
|
+
if (!activeCode) {
|
|
330
|
+
return false;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
// Controlled code is always ready since it comes from editing already-ready code
|
|
334
|
+
if (controlledCode) {
|
|
335
|
+
return true;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// For regular code, use the existing hasAllVariants function
|
|
339
|
+
var regularCode = props.code || code;
|
|
340
|
+
return regularCode ? hasAllVariants(variants, regularCode) : false;
|
|
341
|
+
}, [activeCode, controlledCode, variants, props.code, code]);
|
|
342
|
+
useAllVariants({
|
|
343
|
+
readyForContent: readyForContent,
|
|
344
|
+
variants: variants,
|
|
345
|
+
isControlled: isControlled,
|
|
346
|
+
url: url,
|
|
347
|
+
code: code,
|
|
348
|
+
setCode: setCode
|
|
349
|
+
});
|
|
350
|
+
var _useCodeParsing = useCodeParsing({
|
|
351
|
+
code: props.code || code,
|
|
352
|
+
readyForContent: readyForContent || Boolean(props.code)
|
|
353
|
+
}),
|
|
354
|
+
parsedCode = _useCodeParsing.parsedCode;
|
|
355
|
+
var _useCodeTransforms = useCodeTransforms({
|
|
356
|
+
parsedCode: parsedCode,
|
|
357
|
+
variantName: variantName
|
|
358
|
+
}),
|
|
359
|
+
transformedCode = _useCodeTransforms.transformedCode,
|
|
360
|
+
availableTransforms = _useCodeTransforms.availableTransforms;
|
|
361
|
+
var _useControlledCodePar = useControlledCodeParsing({
|
|
362
|
+
controlledCode: controlledCode
|
|
363
|
+
}),
|
|
364
|
+
parsedControlledCode = _useControlledCodePar.parsedControlledCode;
|
|
365
|
+
|
|
366
|
+
// Determine the final overlaid code (controlled takes precedence)
|
|
367
|
+
var overlaidCode = parsedControlledCode || transformedCode;
|
|
368
|
+
|
|
369
|
+
// For fallback context, use the processed code or fall back to non-controlled code
|
|
370
|
+
var codeForFallback = overlaidCode || (controlledCode ? undefined : props.code || code);
|
|
371
|
+
var fallbackContext = React.useMemo(function () {
|
|
372
|
+
return codeToFallbackProps(variantName, codeForFallback, fileName, props.fallbackUsesExtraFiles, props.fallbackUsesAllVariants);
|
|
373
|
+
}, [variantName, codeForFallback, fileName, props.fallbackUsesExtraFiles, props.fallbackUsesAllVariants]);
|
|
374
|
+
var context = React.useMemo(function () {
|
|
375
|
+
return {
|
|
376
|
+
code: overlaidCode || transformedCode,
|
|
377
|
+
// Use processed/transformed code
|
|
378
|
+
setCode: controlledSetCode,
|
|
379
|
+
selection: controlledSelection || selection,
|
|
380
|
+
setSelection: controlledSetSelection || setSelection,
|
|
381
|
+
components: controlledComponents || props.components,
|
|
382
|
+
availableTransforms: availableTransforms
|
|
383
|
+
};
|
|
384
|
+
}, [overlaidCode, transformedCode, controlledSetCode, selection, controlledSelection, controlledSetSelection, controlledComponents, props.components, availableTransforms]);
|
|
385
|
+
if (!props.variants && !props.components && !activeCode) {
|
|
386
|
+
throw new Error('CodeHighlighterClient requires either `variants`, `components`, or `code` to be provided.');
|
|
387
|
+
}
|
|
388
|
+
var fallback = props.fallback;
|
|
389
|
+
if (fallback && !props.skipFallback && !activeCodeReady) {
|
|
390
|
+
return /*#__PURE__*/_jsx(CodeHighlighterFallbackContext.Provider, {
|
|
391
|
+
value: fallbackContext,
|
|
392
|
+
children: fallback
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
return /*#__PURE__*/_jsx(CodeHighlighterContext.Provider, {
|
|
396
|
+
value: context,
|
|
397
|
+
children: props.children
|
|
398
|
+
});
|
|
399
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Code, ControlledCode } from "./types.js";
|
|
3
|
+
import { Selection } from "../CodeControllerContext/index.js";
|
|
4
|
+
export interface CodeHighlighterContextType {
|
|
5
|
+
code?: Code;
|
|
6
|
+
setCode?: React.Dispatch<React.SetStateAction<ControlledCode | undefined>>;
|
|
7
|
+
selection?: Selection;
|
|
8
|
+
setSelection?: React.Dispatch<React.SetStateAction<Selection>>;
|
|
9
|
+
components?: Record<string, React.ReactNode>;
|
|
10
|
+
availableTransforms?: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare const CodeHighlighterContext: React.Context<CodeHighlighterContextType | undefined>;
|
|
13
|
+
export declare function useCodeHighlighterContext(): CodeHighlighterContextType;
|
|
14
|
+
export declare function useCodeHighlighterContextOptional(): CodeHighlighterContextType | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlighterContext.d.ts","sourceRoot":"","sources":["../../../src/CodeHighlighter/CodeHighlighterContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC;IAC3E,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,eAAO,MAAM,sBAAsB,uDAElC,CAAC;AAEF,wBAAgB,yBAAyB,+BAQxC;AAED,wBAAgB,iCAAiC,2CAEhD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
export var CodeHighlighterContext = /*#__PURE__*/React.createContext(undefined);
|
|
5
|
+
export function useCodeHighlighterContext() {
|
|
6
|
+
var context = React.useContext(CodeHighlighterContext);
|
|
7
|
+
if (context === undefined) {
|
|
8
|
+
throw new Error('CodeHighlighterContext is missing. `useCodeHighlighterContext` must be used within a `CodeHighlighter` component.');
|
|
9
|
+
}
|
|
10
|
+
return context;
|
|
11
|
+
}
|
|
12
|
+
export function useCodeHighlighterContextOptional() {
|
|
13
|
+
return React.useContext(CodeHighlighterContext);
|
|
14
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ContentLoadingVariant } from "./types.js";
|
|
3
|
+
export interface CodeHighlighterFallbackContext extends ContentLoadingVariant {
|
|
4
|
+
extraVariants?: Record<string, ContentLoadingVariant>;
|
|
5
|
+
}
|
|
6
|
+
export declare const CodeHighlighterFallbackContext: React.Context<CodeHighlighterFallbackContext | undefined>;
|
|
7
|
+
export declare function useCodeHighlighterFallbackContext(): CodeHighlighterFallbackContext;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeHighlighterFallbackContext.d.ts","sourceRoot":"","sources":["../../../src/CodeHighlighter/CodeHighlighterFallbackContext.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,WAAW,8BAA+B,SAAQ,qBAAqB;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CACvD;AAED,eAAO,MAAM,8BAA8B,2DAE/B,CAAC;AAEb,wBAAgB,iCAAiC,mCAQhD"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
export var CodeHighlighterFallbackContext = /*#__PURE__*/React.createContext(undefined);
|
|
5
|
+
export function useCodeHighlighterFallbackContext() {
|
|
6
|
+
var context = React.useContext(CodeHighlighterFallbackContext);
|
|
7
|
+
if (context === undefined) {
|
|
8
|
+
throw new Error('CodeHighlighterFallbackContext is missing. `useCodeHighlighterFallbackContext` must be used within a `CodeHighlighter` component.');
|
|
9
|
+
}
|
|
10
|
+
return context;
|
|
11
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { VariantSource, Transforms } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Applies a specific transform to a variant source and returns the transformed source
|
|
4
|
+
* @param source - The original variant source (string, HastNodes, or hastJson object)
|
|
5
|
+
* @param transforms - Object containing all available transforms
|
|
6
|
+
* @param transformKey - The key of the specific transform to apply
|
|
7
|
+
* @returns The transformed variant source in the same format as the input
|
|
8
|
+
* @throws Error if the transform key doesn't exist or patching fails
|
|
9
|
+
*/
|
|
10
|
+
export declare function applyTransform(source: VariantSource, transforms: Transforms, transformKey: string): VariantSource;
|
|
11
|
+
/**
|
|
12
|
+
* Applies multiple transforms to a variant source in sequence
|
|
13
|
+
* @param source - The original variant source
|
|
14
|
+
* @param transforms - Object containing all available transforms
|
|
15
|
+
* @param transformKeys - Array of transform keys to apply in order
|
|
16
|
+
* @returns The transformed variant source in the same format as the input
|
|
17
|
+
* @throws Error if any transform key doesn't exist or patching fails
|
|
18
|
+
*/
|
|
19
|
+
export declare function applyTransforms(source: VariantSource, transforms: Transforms, transformKeys: string[]): VariantSource;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"applyTransform.d.ts","sourceRoot":"","sources":["../../../src/CodeHighlighter/applyTransform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,MAAM,GACnB,aAAa,CA0Cf;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,MAAM,EAAE,GACtB,aAAa,CAQf"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
|
|
2
|
+
import { patch, clone } from 'jsondiffpatch';
|
|
3
|
+
/**
|
|
4
|
+
* Applies a specific transform to a variant source and returns the transformed source
|
|
5
|
+
* @param source - The original variant source (string, HastNodes, or hastJson object)
|
|
6
|
+
* @param transforms - Object containing all available transforms
|
|
7
|
+
* @param transformKey - The key of the specific transform to apply
|
|
8
|
+
* @returns The transformed variant source in the same format as the input
|
|
9
|
+
* @throws Error if the transform key doesn't exist or patching fails
|
|
10
|
+
*/
|
|
11
|
+
export function applyTransform(source, transforms, transformKey) {
|
|
12
|
+
var transform = transforms[transformKey];
|
|
13
|
+
if (!transform) {
|
|
14
|
+
throw new Error("Transform \"".concat(transformKey, "\" not found in transforms"));
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// Determine the format of the source and apply the appropriate transform strategy
|
|
18
|
+
if (typeof source === 'string') {
|
|
19
|
+
// For string sources, deltas are typically line-array based (from transformSource)
|
|
20
|
+
var sourceLines = source.split('\n');
|
|
21
|
+
var patched = patch(sourceLines, transform.delta);
|
|
22
|
+
if (!Array.isArray(patched)) {
|
|
23
|
+
throw new Error("Patch for transform \"".concat(transformKey, "\" did not return an array"));
|
|
24
|
+
}
|
|
25
|
+
return patched.join('\n');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// For Hast node sources, deltas are typically node-based (from transformParsedSource)
|
|
29
|
+
var sourceNodes;
|
|
30
|
+
var isHastJson = 'hastJson' in source;
|
|
31
|
+
if (isHastJson) {
|
|
32
|
+
sourceNodes = JSON.parse(source.hastJson);
|
|
33
|
+
} else {
|
|
34
|
+
sourceNodes = source;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Apply the node-based delta
|
|
38
|
+
var patchedNodes = patch(clone(sourceNodes), transform.delta);
|
|
39
|
+
if (!patchedNodes) {
|
|
40
|
+
throw new Error("Patch for transform \"".concat(transformKey, "\" returned null/undefined"));
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Return in the same format as the input
|
|
44
|
+
if (isHastJson) {
|
|
45
|
+
return {
|
|
46
|
+
hastJson: JSON.stringify(patchedNodes)
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
return patchedNodes;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Applies multiple transforms to a variant source in sequence
|
|
54
|
+
* @param source - The original variant source
|
|
55
|
+
* @param transforms - Object containing all available transforms
|
|
56
|
+
* @param transformKeys - Array of transform keys to apply in order
|
|
57
|
+
* @returns The transformed variant source in the same format as the input
|
|
58
|
+
* @throws Error if any transform key doesn't exist or patching fails
|
|
59
|
+
*/
|
|
60
|
+
export function applyTransforms(source, transforms, transformKeys) {
|
|
61
|
+
var currentSource = source;
|
|
62
|
+
var _iterator = _createForOfIteratorHelper(transformKeys),
|
|
63
|
+
_step;
|
|
64
|
+
try {
|
|
65
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
66
|
+
var transformKey = _step.value;
|
|
67
|
+
currentSource = applyTransform(currentSource, transforms, transformKey);
|
|
68
|
+
}
|
|
69
|
+
} catch (err) {
|
|
70
|
+
_iterator.e(err);
|
|
71
|
+
} finally {
|
|
72
|
+
_iterator.f();
|
|
73
|
+
}
|
|
74
|
+
return currentSource;
|
|
75
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codeToFallbackProps.d.ts","sourceRoot":"","sources":["../../../src/CodeHighlighter/codeToFallbackProps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAsC,MAAM,SAAS,CAAC;AAexF,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,IAAI,EACX,QAAQ,CAAC,EAAE,MAAM,EACjB,aAAa,UAAQ,EACrB,gBAAgB,UAAQ,GACvB,mBAAmB,CAyDrB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
4
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
5
|
+
import { stringOrHastToJsx } from "../hast/hast.js";
|
|
6
|
+
function toExtraSource(variantCode, fileName) {
|
|
7
|
+
return Object.entries(variantCode.extraFiles || {}).reduce(function (acc, _ref) {
|
|
8
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
9
|
+
name = _ref2[0],
|
|
10
|
+
file = _ref2[1];
|
|
11
|
+
if (name !== fileName && _typeof(file) === 'object' && file != null && file.source) {
|
|
12
|
+
acc[name] = stringOrHastToJsx(file.source);
|
|
13
|
+
}
|
|
14
|
+
return acc;
|
|
15
|
+
}, _defineProperty({}, variantCode.fileName, variantCode.source && stringOrHastToJsx(variantCode.source)));
|
|
16
|
+
}
|
|
17
|
+
export function codeToFallbackProps(variant, code, fileName) {
|
|
18
|
+
var needsAllFiles = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
19
|
+
var needsAllVariants = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
|
20
|
+
var variantCode = code == null ? void 0 : code[variant];
|
|
21
|
+
if (!variantCode || typeof variantCode === 'string') {
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
var fileNames = [variantCode.fileName].concat(_toConsumableArray(Object.keys(variantCode.extraFiles || {})));
|
|
25
|
+
var source;
|
|
26
|
+
if (fileName) {
|
|
27
|
+
var _variantCode$extraFil;
|
|
28
|
+
var fileData = (_variantCode$extraFil = variantCode.extraFiles) == null ? void 0 : _variantCode$extraFil[fileName];
|
|
29
|
+
if (fileData && _typeof(fileData) === 'object' && 'source' in fileData && fileData.source) {
|
|
30
|
+
source = stringOrHastToJsx(fileData.source);
|
|
31
|
+
}
|
|
32
|
+
} else if (variantCode.source) {
|
|
33
|
+
source = stringOrHastToJsx(variantCode.source);
|
|
34
|
+
}
|
|
35
|
+
if (needsAllVariants || needsAllFiles) {
|
|
36
|
+
var extraSource = toExtraSource(variantCode, fileName);
|
|
37
|
+
if (needsAllVariants) {
|
|
38
|
+
var extraVariants = Object.entries(code || {}).reduce(function (acc, _ref3) {
|
|
39
|
+
var _ref4 = _slicedToArray(_ref3, 2),
|
|
40
|
+
name = _ref4[0],
|
|
41
|
+
vCode = _ref4[1];
|
|
42
|
+
if (name !== variant && vCode && typeof vCode !== 'string') {
|
|
43
|
+
var extraVariantExtraSource = toExtraSource(vCode, vCode.fileName);
|
|
44
|
+
acc[name] = {
|
|
45
|
+
fileNames: [vCode.fileName].concat(_toConsumableArray(Object.keys(vCode.extraFiles || {}))),
|
|
46
|
+
// TODO: use filesOrder if provided
|
|
47
|
+
source: vCode.source && stringOrHastToJsx(vCode.source),
|
|
48
|
+
extraSource: extraVariantExtraSource
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return acc;
|
|
52
|
+
}, {});
|
|
53
|
+
return {
|
|
54
|
+
fileNames: fileNames,
|
|
55
|
+
source: source,
|
|
56
|
+
extraSource: extraSource,
|
|
57
|
+
extraVariants: extraVariants
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return {
|
|
61
|
+
fileNames: fileNames,
|
|
62
|
+
source: source,
|
|
63
|
+
extraSource: extraSource
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
fileNames: fileNames,
|
|
68
|
+
source: source
|
|
69
|
+
};
|
|
70
|
+
}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/CodeHighlighter/errors.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// TODO: all known errors should be defined here
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hasAllVariants.d.ts","sourceRoot":"","sources":["../../../src/CodeHighlighter/hasAllVariants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAiB,MAAM,SAAS,CAAC;AAgB9C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,WA6BtF"}
|