@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,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.removeTypes = removeTypes;
|
|
9
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
12
|
+
var Babel = _interopRequireWildcard(require("@babel/standalone"));
|
|
13
|
+
var _standalone2 = _interopRequireDefault(require("prettier/standalone"));
|
|
14
|
+
var _estree = _interopRequireDefault(require("prettier/plugins/estree"));
|
|
15
|
+
var _parserBabel = _interopRequireDefault(require("prettier/parser-babel"));
|
|
16
|
+
// Based on https://github.com/ember-cli/babel-remove-types/blob/fc3be010e99c4f4926fd70d00242d6777ab1b8d7/src/index.ts
|
|
17
|
+
// Converted to use Babel standalone, with added TSX support
|
|
18
|
+
/**
|
|
19
|
+
* Strips TypeScript types and decorators from code (including React in TSX),
|
|
20
|
+
* preserving blank lines and optionally formatting with Prettier.
|
|
21
|
+
*
|
|
22
|
+
* @param code - The source code string to transform.
|
|
23
|
+
* @param filename - The name of the file (e.g. "foo.ts" or "Foo.tsx").
|
|
24
|
+
* Determines whether TSX parsing is enabled.
|
|
25
|
+
* @param prettierConfig - `true` for default formatting, `false` to skip,
|
|
26
|
+
* or a Prettier options object to customize.
|
|
27
|
+
* @returns The transformed (and optionally formatted) code.
|
|
28
|
+
*/
|
|
29
|
+
function removeTypes(_x) {
|
|
30
|
+
return _removeTypes.apply(this, arguments);
|
|
31
|
+
}
|
|
32
|
+
function _removeTypes() {
|
|
33
|
+
_removeTypes = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee(code) {
|
|
34
|
+
var filename,
|
|
35
|
+
prettierConfig,
|
|
36
|
+
removeComments,
|
|
37
|
+
isTSX,
|
|
38
|
+
transformed,
|
|
39
|
+
fixed,
|
|
40
|
+
standardPrettierOptions,
|
|
41
|
+
mergedPrettierOptions,
|
|
42
|
+
_args = arguments;
|
|
43
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
|
|
44
|
+
while (1) switch (_context.prev = _context.next) {
|
|
45
|
+
case 0:
|
|
46
|
+
filename = _args.length > 1 && _args[1] !== undefined ? _args[1] : 'file.ts';
|
|
47
|
+
prettierConfig = _args.length > 2 && _args[2] !== undefined ? _args[2] : true;
|
|
48
|
+
// Babel collapses newlines all over the place, which messes with the formatting of almost any
|
|
49
|
+
// code you pass to it. To preserve the formatting, we go through and mark all the empty lines
|
|
50
|
+
// in the code string *before* transforming it. This allows us to go back through after the
|
|
51
|
+
// transformation re-insert the empty lines in the correct place relative to the new code that
|
|
52
|
+
// has been generated.
|
|
53
|
+
code = code.replace(/\n\n+/g, '/* ___NEWLINE___ */\n');
|
|
54
|
+
|
|
55
|
+
// When removing TS-specific constructs (e.g. interfaces), we want to make sure we also remove
|
|
56
|
+
// any comments that are associated with those constructs, since otherwise we'll be left with
|
|
57
|
+
// comments that refer to something that isn't actually there.
|
|
58
|
+
// Credit to https://github.com/cyco130/detype for figuring out this very useful pattern
|
|
59
|
+
removeComments = {
|
|
60
|
+
enter: function enter(nodePath) {
|
|
61
|
+
if (!nodePath.node.leadingComments) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
for (var i = nodePath.node.leadingComments.length - 1; i >= 0; i -= 1) {
|
|
65
|
+
var comment = nodePath.node.leadingComments[i];
|
|
66
|
+
if (code.slice(comment.end).match(/^\s*\n\s*\n/) || comment.value.includes('___NEWLINE___')) {
|
|
67
|
+
// There is at least one empty line between the comment and the TypeScript specific construct
|
|
68
|
+
// We should keep this comment and those before it
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
comment.value = '___REMOVE_ME___';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
isTSX = /\.tsx$/i.test(filename);
|
|
76
|
+
transformed = Babel.transform(code, {
|
|
77
|
+
filename: filename,
|
|
78
|
+
plugins: [{
|
|
79
|
+
name: 'comment-remover',
|
|
80
|
+
visitor: {
|
|
81
|
+
TSTypeAliasDeclaration: removeComments,
|
|
82
|
+
TSInterfaceDeclaration: removeComments,
|
|
83
|
+
TSDeclareFunction: removeComments,
|
|
84
|
+
TSDeclareMethod: removeComments,
|
|
85
|
+
TSImportType: removeComments,
|
|
86
|
+
TSModuleDeclaration: removeComments
|
|
87
|
+
}
|
|
88
|
+
}, ['transform-typescript', {
|
|
89
|
+
onlyRemoveTypeImports: true,
|
|
90
|
+
isTSX: isTSX,
|
|
91
|
+
allExtensions: true
|
|
92
|
+
}], ['proposal-decorators', {
|
|
93
|
+
legacy: true
|
|
94
|
+
}]],
|
|
95
|
+
generatorOpts: {
|
|
96
|
+
retainLines: true,
|
|
97
|
+
shouldPrintComment: function shouldPrintComment(c) {
|
|
98
|
+
return c !== '___REMOVE_ME___';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
if (!(!transformed || !transformed.code)) {
|
|
103
|
+
_context.next = 8;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
throw new Error('There was an issue with the Babel transform.');
|
|
107
|
+
case 8:
|
|
108
|
+
fixed = transformed.code.replace(/\/\* ___NEWLINE___ \*\//g, '\n'); // If the user has *explicitly* passed `false` here, it means they do not want us to run Prettier
|
|
109
|
+
// at all, so we bail here.
|
|
110
|
+
if (!(prettierConfig === false)) {
|
|
111
|
+
_context.next = 11;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
return _context.abrupt("return", fixed);
|
|
115
|
+
case 11:
|
|
116
|
+
standardPrettierOptions = {
|
|
117
|
+
parser: 'babel',
|
|
118
|
+
singleQuote: true,
|
|
119
|
+
plugins: [_estree["default"], _parserBabel["default"]]
|
|
120
|
+
}; // If `prettierConfig` is *explicitly* true (as opposed to truthy), it means the user has opted in
|
|
121
|
+
// to default behavior either explicitly or implicitly. Either way, we run basic Prettier on it.
|
|
122
|
+
if (!(prettierConfig === true)) {
|
|
123
|
+
_context.next = 14;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
return _context.abrupt("return", _standalone2["default"].format(fixed, standardPrettierOptions));
|
|
127
|
+
case 14:
|
|
128
|
+
// If we've made it here, the user has passed their own Prettier options so we merge it with ours
|
|
129
|
+
// and let theirs overwrite any of the default settings.
|
|
130
|
+
mergedPrettierOptions = (0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, standardPrettierOptions), prettierConfig), {}, {
|
|
131
|
+
plugins: standardPrettierOptions.plugins
|
|
132
|
+
});
|
|
133
|
+
return _context.abrupt("return", _standalone2["default"].format(fixed, mergedPrettierOptions));
|
|
134
|
+
case 16:
|
|
135
|
+
case "end":
|
|
136
|
+
return _context.stop();
|
|
137
|
+
}
|
|
138
|
+
}, _callee);
|
|
139
|
+
}));
|
|
140
|
+
return _removeTypes.apply(this, arguments);
|
|
141
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.transformTsToJs = exports.TsToJsTransformer = void 0;
|
|
8
|
+
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
9
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
+
var _removeTypes = require("./removeTypes");
|
|
11
|
+
var transformTsToJs = exports.transformTsToJs = /*#__PURE__*/function () {
|
|
12
|
+
var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regeneratorRuntime2["default"])().mark(function _callee(source, fileName) {
|
|
13
|
+
var transformed, transformedFileName;
|
|
14
|
+
return (0, _regeneratorRuntime2["default"])().wrap(function _callee$(_context) {
|
|
15
|
+
while (1) switch (_context.prev = _context.next) {
|
|
16
|
+
case 0:
|
|
17
|
+
_context.next = 2;
|
|
18
|
+
return (0, _removeTypes.removeTypes)(source, fileName);
|
|
19
|
+
case 2:
|
|
20
|
+
transformed = _context.sent;
|
|
21
|
+
transformedFileName = fileName.replace(/\.ts$/, '.js').replace(/\.tsx$/, '.jsx');
|
|
22
|
+
return _context.abrupt("return", {
|
|
23
|
+
js: {
|
|
24
|
+
source: transformed,
|
|
25
|
+
fileName: transformedFileName
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
case 5:
|
|
29
|
+
case "end":
|
|
30
|
+
return _context.stop();
|
|
31
|
+
}
|
|
32
|
+
}, _callee);
|
|
33
|
+
}));
|
|
34
|
+
return function transformTsToJs(_x, _x2) {
|
|
35
|
+
return _ref.apply(this, arguments);
|
|
36
|
+
};
|
|
37
|
+
}();
|
|
38
|
+
var TsToJsTransformer = exports.TsToJsTransformer = {
|
|
39
|
+
extensions: ['ts', 'tsx'],
|
|
40
|
+
transformer: transformTsToJs
|
|
41
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useCode.js";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _useCode = require("./useCode");
|
|
7
|
+
Object.keys(_useCode).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _useCode[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _useCode[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { UseCopierOpts } from "../useCopier/index.js";
|
|
3
|
+
import { ContentProps } from "../CodeHighlighter/types.js";
|
|
4
|
+
type UseCodeOpts = {
|
|
5
|
+
defaultOpen?: boolean;
|
|
6
|
+
copy?: UseCopierOpts;
|
|
7
|
+
githubUrlPrefix?: string;
|
|
8
|
+
codeSandboxUrlPrefix?: string;
|
|
9
|
+
stackBlitzPrefix?: string;
|
|
10
|
+
initialVariant?: string;
|
|
11
|
+
initialTransform?: string;
|
|
12
|
+
};
|
|
13
|
+
export interface UseCodeResult {
|
|
14
|
+
component: React.ReactNode;
|
|
15
|
+
ref: React.RefObject<HTMLDivElement | null>;
|
|
16
|
+
variants: string[];
|
|
17
|
+
selectedVariant: string;
|
|
18
|
+
selectVariant: React.Dispatch<React.SetStateAction<string>>;
|
|
19
|
+
files: Array<{
|
|
20
|
+
name: string;
|
|
21
|
+
component: React.ReactNode;
|
|
22
|
+
}>;
|
|
23
|
+
selectedFile: React.ReactNode;
|
|
24
|
+
selectedFileName: string;
|
|
25
|
+
selectFileName: React.Dispatch<React.SetStateAction<string>>;
|
|
26
|
+
expanded: boolean;
|
|
27
|
+
expand: () => void;
|
|
28
|
+
setExpanded: React.Dispatch<React.SetStateAction<boolean>>;
|
|
29
|
+
resetFocus: () => void;
|
|
30
|
+
copy: (event: React.MouseEvent<HTMLButtonElement>) => Promise<void>;
|
|
31
|
+
copyDisabled: boolean;
|
|
32
|
+
availableTransforms: string[];
|
|
33
|
+
selectedTransform: string | null | undefined;
|
|
34
|
+
selectTransform: (transformName: string | null) => void;
|
|
35
|
+
}
|
|
36
|
+
export declare function useCode(contentProps: ContentProps, opts?: UseCodeOpts): UseCodeResult;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
|
|
4
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useCode = useCode;
|
|
9
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var React = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
|
+
var _hastUtilToText = require("hast-util-to-text");
|
|
14
|
+
var _hastUtilToJsxRuntime = require("hast-util-to-jsx-runtime");
|
|
15
|
+
var _useCopier2 = require("../useCopier");
|
|
16
|
+
var _CodeHighlighterContext = require("../CodeHighlighter/CodeHighlighterContext");
|
|
17
|
+
var _applyTransform = require("../CodeHighlighter/applyTransform");
|
|
18
|
+
function toComponent(source) {
|
|
19
|
+
return (0, _hastUtilToJsxRuntime.toJsxRuntime)(source, {
|
|
20
|
+
Fragment: _jsxRuntime.Fragment,
|
|
21
|
+
jsx: _jsxRuntime.jsx,
|
|
22
|
+
jsxs: _jsxRuntime.jsxs
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function useCode(contentProps, opts) {
|
|
26
|
+
var _ref = opts || {},
|
|
27
|
+
copyOpts = _ref.copy,
|
|
28
|
+
_ref$defaultOpen = _ref.defaultOpen,
|
|
29
|
+
defaultOpen = _ref$defaultOpen === void 0 ? false : _ref$defaultOpen,
|
|
30
|
+
initialVariant = _ref.initialVariant,
|
|
31
|
+
initialTransform = _ref.initialTransform;
|
|
32
|
+
|
|
33
|
+
// Safely try to get context values - will be undefined if not in context
|
|
34
|
+
var context = (0, _CodeHighlighterContext.useCodeHighlighterContextOptional)();
|
|
35
|
+
var _React$useState = React.useState(defaultOpen),
|
|
36
|
+
_React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
|
|
37
|
+
expanded = _React$useState2[0],
|
|
38
|
+
setExpanded = _React$useState2[1];
|
|
39
|
+
var expand = React.useCallback(function () {
|
|
40
|
+
return setExpanded(true);
|
|
41
|
+
}, []);
|
|
42
|
+
var ref = React.useRef(null);
|
|
43
|
+
var resetFocus = React.useCallback(function () {
|
|
44
|
+
var _ref$current;
|
|
45
|
+
(_ref$current = ref.current) == null || _ref$current.focus();
|
|
46
|
+
}, []);
|
|
47
|
+
|
|
48
|
+
// Get the effective code - context overrides contentProps if available
|
|
49
|
+
var effectiveCode = React.useMemo(function () {
|
|
50
|
+
return (context == null ? void 0 : context.code) || contentProps.code || {};
|
|
51
|
+
}, [context == null ? void 0 : context.code, contentProps.code]);
|
|
52
|
+
|
|
53
|
+
// Get variant keys from effective code
|
|
54
|
+
var variantKeys = React.useMemo(function () {
|
|
55
|
+
return Object.keys(effectiveCode).filter(function (key) {
|
|
56
|
+
var variant = effectiveCode[key];
|
|
57
|
+
return variant && (0, _typeof2["default"])(variant) === 'object' && 'source' in variant;
|
|
58
|
+
});
|
|
59
|
+
}, [effectiveCode]);
|
|
60
|
+
var _React$useState3 = React.useState(initialVariant || variantKeys[0] || ''),
|
|
61
|
+
_React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
|
|
62
|
+
selectedVariantKey = _React$useState4[0],
|
|
63
|
+
setSelectedVariantKey = _React$useState4[1];
|
|
64
|
+
var selectedVariant = React.useMemo(function () {
|
|
65
|
+
var variant = effectiveCode[selectedVariantKey];
|
|
66
|
+
if (variant && (0, _typeof2["default"])(variant) === 'object' && 'source' in variant) {
|
|
67
|
+
return variant;
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}, [effectiveCode, selectedVariantKey]);
|
|
71
|
+
|
|
72
|
+
// Safety check: if selectedVariant doesn't exist, fall back to first variant
|
|
73
|
+
React.useEffect(function () {
|
|
74
|
+
if (!selectedVariant && variantKeys.length > 0) {
|
|
75
|
+
setSelectedVariantKey(variantKeys[0]);
|
|
76
|
+
}
|
|
77
|
+
}, [selectedVariant, variantKeys]);
|
|
78
|
+
|
|
79
|
+
// Transform state - get available transforms from context or from the effective code data
|
|
80
|
+
var availableTransforms = React.useMemo(function () {
|
|
81
|
+
// First try to get from context
|
|
82
|
+
if (context != null && context.availableTransforms && context.availableTransforms.length > 0) {
|
|
83
|
+
return context.availableTransforms;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Otherwise, get from the effective code data
|
|
87
|
+
var transforms = new Set();
|
|
88
|
+
if (effectiveCode && selectedVariantKey) {
|
|
89
|
+
var variantCode = effectiveCode[selectedVariantKey];
|
|
90
|
+
if (variantCode && (0, _typeof2["default"])(variantCode) === 'object' && 'transforms' in variantCode && variantCode.transforms) {
|
|
91
|
+
Object.keys(variantCode.transforms).forEach(function (transformKey) {
|
|
92
|
+
transforms.add(transformKey);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return Array.from(transforms);
|
|
97
|
+
}, [context == null ? void 0 : context.availableTransforms, effectiveCode, selectedVariantKey]);
|
|
98
|
+
var _React$useState5 = React.useState(initialTransform || null),
|
|
99
|
+
_React$useState6 = (0, _slicedToArray2["default"])(_React$useState5, 2),
|
|
100
|
+
selectedTransform = _React$useState6[0],
|
|
101
|
+
setSelectedTransform = _React$useState6[1];
|
|
102
|
+
|
|
103
|
+
// Memoize all transformed files based on selectedTransform
|
|
104
|
+
var transformedFiles = React.useMemo(function () {
|
|
105
|
+
// Only create transformed files when there's actually a transform selected
|
|
106
|
+
if (!selectedVariant || !selectedTransform) {
|
|
107
|
+
return undefined;
|
|
108
|
+
}
|
|
109
|
+
var files = [];
|
|
110
|
+
var filenameMap = {};
|
|
111
|
+
|
|
112
|
+
// Helper function to apply transform to a source
|
|
113
|
+
var applyTransformToSource = function applyTransformToSource(source, fileName, transforms) {
|
|
114
|
+
if (!(transforms != null && transforms[selectedTransform])) {
|
|
115
|
+
return {
|
|
116
|
+
transformedSource: source,
|
|
117
|
+
transformedName: fileName
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
try {
|
|
121
|
+
// Get transform data
|
|
122
|
+
var transformData = transforms[selectedTransform];
|
|
123
|
+
if (!transformData || (0, _typeof2["default"])(transformData) !== 'object' || !('delta' in transformData)) {
|
|
124
|
+
return {
|
|
125
|
+
transformedSource: source,
|
|
126
|
+
transformedName: fileName
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Apply transform
|
|
131
|
+
var result = (0, _applyTransform.applyTransform)(source, transforms, selectedTransform);
|
|
132
|
+
var transformedName = transformData.fileName || fileName;
|
|
133
|
+
return {
|
|
134
|
+
transformedSource: result,
|
|
135
|
+
transformedName: transformedName
|
|
136
|
+
};
|
|
137
|
+
} catch (error) {
|
|
138
|
+
console.error("Transform failed for ".concat(fileName, ":"), error);
|
|
139
|
+
return {
|
|
140
|
+
transformedSource: source,
|
|
141
|
+
transformedName: fileName
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// Process main file - get transforms from selectedVariant
|
|
147
|
+
var variantTransforms = 'transforms' in selectedVariant ? selectedVariant.transforms : undefined;
|
|
148
|
+
var _applyTransformToSour = applyTransformToSource(selectedVariant.source, selectedVariant.fileName, variantTransforms),
|
|
149
|
+
mainSource = _applyTransformToSour.transformedSource,
|
|
150
|
+
mainName = _applyTransformToSour.transformedName;
|
|
151
|
+
filenameMap[selectedVariant.fileName] = mainName;
|
|
152
|
+
files.push({
|
|
153
|
+
name: mainName,
|
|
154
|
+
originalName: selectedVariant.fileName,
|
|
155
|
+
source: mainSource,
|
|
156
|
+
component: toComponent(mainSource)
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
// Process extra files
|
|
160
|
+
if (selectedVariant.extraFiles) {
|
|
161
|
+
Object.entries(selectedVariant.extraFiles).forEach(function (_ref2) {
|
|
162
|
+
var _transforms;
|
|
163
|
+
var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
|
|
164
|
+
fileName = _ref3[0],
|
|
165
|
+
fileData = _ref3[1];
|
|
166
|
+
var source;
|
|
167
|
+
var transforms;
|
|
168
|
+
|
|
169
|
+
// Handle different extraFile structures
|
|
170
|
+
if (typeof fileData === 'string') {
|
|
171
|
+
source = fileData;
|
|
172
|
+
transforms = variantTransforms;
|
|
173
|
+
} else if (fileData && (0, _typeof2["default"])(fileData) === 'object' && 'source' in fileData) {
|
|
174
|
+
source = fileData.source;
|
|
175
|
+
transforms = fileData.transforms || variantTransforms;
|
|
176
|
+
} else {
|
|
177
|
+
return; // Skip invalid entries
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Apply transforms if available
|
|
181
|
+
var transformedSource = source;
|
|
182
|
+
var transformedName = fileName;
|
|
183
|
+
if ((_transforms = transforms) != null && _transforms[selectedTransform]) {
|
|
184
|
+
try {
|
|
185
|
+
var transformData = transforms[selectedTransform];
|
|
186
|
+
if (transformData && (0, _typeof2["default"])(transformData) === 'object' && 'delta' in transformData) {
|
|
187
|
+
transformedSource = (0, _applyTransform.applyTransform)(source, transforms, selectedTransform);
|
|
188
|
+
transformedName = transformData.fileName || fileName;
|
|
189
|
+
}
|
|
190
|
+
} catch (error) {
|
|
191
|
+
console.error("Transform failed for ".concat(fileName, ":"), error);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
filenameMap[fileName] = transformedName;
|
|
195
|
+
files.push({
|
|
196
|
+
name: transformedName,
|
|
197
|
+
originalName: fileName,
|
|
198
|
+
source: transformedSource,
|
|
199
|
+
component: toComponent(transformedSource)
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
files: files,
|
|
205
|
+
filenameMap: filenameMap
|
|
206
|
+
};
|
|
207
|
+
}, [selectedVariant, selectedTransform]);
|
|
208
|
+
|
|
209
|
+
// Keep selectedFileName as untransformed filename for internal tracking
|
|
210
|
+
var _React$useState7 = React.useState((selectedVariant == null ? void 0 : selectedVariant.fileName) || ''),
|
|
211
|
+
_React$useState8 = (0, _slicedToArray2["default"])(_React$useState7, 2),
|
|
212
|
+
selectedFileNameInternal = _React$useState8[0],
|
|
213
|
+
setSelectedFileNameInternal = _React$useState8[1];
|
|
214
|
+
|
|
215
|
+
// Reset selectedFileName when variant changes
|
|
216
|
+
React.useEffect(function () {
|
|
217
|
+
if (selectedVariant && selectedFileNameInternal !== selectedVariant.fileName) {
|
|
218
|
+
// Only reset if current selectedFileName doesn't exist in the new variant
|
|
219
|
+
var hasFile = selectedVariant.fileName === selectedFileNameInternal || selectedVariant.extraFiles && selectedVariant.extraFiles[selectedFileNameInternal];
|
|
220
|
+
if (!hasFile) {
|
|
221
|
+
setSelectedFileNameInternal(selectedVariant.fileName);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}, [selectedVariant, selectedFileNameInternal]);
|
|
225
|
+
|
|
226
|
+
// Compute the displayed filename (transformed if applicable)
|
|
227
|
+
var selectedFileName = React.useMemo(function () {
|
|
228
|
+
if (!selectedVariant) {
|
|
229
|
+
return '';
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// If we have transformed files, return the transformed name
|
|
233
|
+
if (transformedFiles) {
|
|
234
|
+
var file = transformedFiles.files.find(function (f) {
|
|
235
|
+
return f.originalName === selectedFileNameInternal;
|
|
236
|
+
});
|
|
237
|
+
return file ? file.name : selectedFileNameInternal;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// Otherwise, return the original filename
|
|
241
|
+
return selectedFileNameInternal;
|
|
242
|
+
}, [selectedVariant, selectedFileNameInternal, transformedFiles]);
|
|
243
|
+
var selectedFile = React.useMemo(function () {
|
|
244
|
+
if (!selectedVariant) {
|
|
245
|
+
return null;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// If we have transformed files, use them
|
|
249
|
+
if (transformedFiles) {
|
|
250
|
+
var file = transformedFiles.files.find(function (f) {
|
|
251
|
+
return f.originalName === selectedFileNameInternal;
|
|
252
|
+
});
|
|
253
|
+
return file ? file.source : null;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// Otherwise, use the original untransformed files
|
|
257
|
+
if (selectedFileNameInternal === selectedVariant.fileName) {
|
|
258
|
+
return selectedVariant.source;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Look in extraFiles
|
|
262
|
+
if (selectedVariant.extraFiles && selectedVariant.extraFiles[selectedFileNameInternal]) {
|
|
263
|
+
var extraFile = selectedVariant.extraFiles[selectedFileNameInternal];
|
|
264
|
+
if (typeof extraFile === 'string') {
|
|
265
|
+
return extraFile;
|
|
266
|
+
}
|
|
267
|
+
if (extraFile && (0, _typeof2["default"])(extraFile) === 'object' && 'source' in extraFile) {
|
|
268
|
+
return extraFile.source;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return null;
|
|
272
|
+
}, [selectedVariant, selectedFileNameInternal, transformedFiles]);
|
|
273
|
+
var selectedFileComponent = React.useMemo(function () {
|
|
274
|
+
if (!selectedVariant) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
// If we have transformed files, use them
|
|
279
|
+
if (transformedFiles) {
|
|
280
|
+
var file = transformedFiles.files.find(function (f) {
|
|
281
|
+
return f.originalName === selectedFileNameInternal;
|
|
282
|
+
});
|
|
283
|
+
return file ? file.component : null;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Otherwise, create component from original untransformed files
|
|
287
|
+
if (selectedFileNameInternal === selectedVariant.fileName) {
|
|
288
|
+
return toComponent(selectedVariant.source);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Look in extraFiles
|
|
292
|
+
if (selectedVariant.extraFiles && selectedVariant.extraFiles[selectedFileNameInternal]) {
|
|
293
|
+
var extraFile = selectedVariant.extraFiles[selectedFileNameInternal];
|
|
294
|
+
var source;
|
|
295
|
+
if (typeof extraFile === 'string') {
|
|
296
|
+
source = extraFile;
|
|
297
|
+
} else if (extraFile && (0, _typeof2["default"])(extraFile) === 'object' && 'source' in extraFile) {
|
|
298
|
+
source = extraFile.source;
|
|
299
|
+
} else {
|
|
300
|
+
return null;
|
|
301
|
+
}
|
|
302
|
+
return toComponent(source);
|
|
303
|
+
}
|
|
304
|
+
return null;
|
|
305
|
+
}, [selectedVariant, selectedFileNameInternal, transformedFiles]);
|
|
306
|
+
|
|
307
|
+
// Convert files for the return interface
|
|
308
|
+
var files = React.useMemo(function () {
|
|
309
|
+
if (!selectedVariant) {
|
|
310
|
+
return [];
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// If we have transformed files, use them
|
|
314
|
+
if (transformedFiles) {
|
|
315
|
+
return transformedFiles.files.map(function (f) {
|
|
316
|
+
return {
|
|
317
|
+
name: f.name,
|
|
318
|
+
component: f.component
|
|
319
|
+
};
|
|
320
|
+
});
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// Otherwise, create files from original untransformed data
|
|
324
|
+
var result = [{
|
|
325
|
+
name: selectedVariant.fileName,
|
|
326
|
+
component: toComponent(selectedVariant.source)
|
|
327
|
+
}];
|
|
328
|
+
if (selectedVariant.extraFiles) {
|
|
329
|
+
Object.entries(selectedVariant.extraFiles).forEach(function (_ref4) {
|
|
330
|
+
var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
|
|
331
|
+
fileName = _ref5[0],
|
|
332
|
+
fileData = _ref5[1];
|
|
333
|
+
var source;
|
|
334
|
+
if (typeof fileData === 'string') {
|
|
335
|
+
source = fileData;
|
|
336
|
+
} else if (fileData && (0, _typeof2["default"])(fileData) === 'object' && 'source' in fileData) {
|
|
337
|
+
source = fileData.source;
|
|
338
|
+
} else {
|
|
339
|
+
return; // Skip invalid entries
|
|
340
|
+
}
|
|
341
|
+
result.push({
|
|
342
|
+
name: fileName,
|
|
343
|
+
component: toComponent(source)
|
|
344
|
+
});
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
return result;
|
|
348
|
+
}, [selectedVariant, transformedFiles]);
|
|
349
|
+
var sourceFileToText = React.useCallback(function () {
|
|
350
|
+
if (!selectedFile) {
|
|
351
|
+
return undefined;
|
|
352
|
+
}
|
|
353
|
+
if (typeof selectedFile === 'string') {
|
|
354
|
+
return selectedFile;
|
|
355
|
+
}
|
|
356
|
+
if (selectedFile && (0, _typeof2["default"])(selectedFile) === 'object' && 'hastJson' in selectedFile) {
|
|
357
|
+
return selectedFile.hastJson;
|
|
358
|
+
}
|
|
359
|
+
return (0, _hastUtilToText.toText)(selectedFile, {
|
|
360
|
+
whitespace: 'pre'
|
|
361
|
+
});
|
|
362
|
+
}, [selectedFile]);
|
|
363
|
+
var _useCopier = (0, _useCopier2.useCopier)(sourceFileToText, copyOpts),
|
|
364
|
+
copy = _useCopier.copy,
|
|
365
|
+
copyDisabled = _useCopier.disabled;
|
|
366
|
+
|
|
367
|
+
// Function to switch to a specific transform
|
|
368
|
+
var selectTransform = React.useCallback(function (transformName) {
|
|
369
|
+
if (!transformName || availableTransforms.includes(transformName)) {
|
|
370
|
+
setSelectedTransform(transformName);
|
|
371
|
+
} else {
|
|
372
|
+
setSelectedTransform(null);
|
|
373
|
+
}
|
|
374
|
+
}, [availableTransforms]);
|
|
375
|
+
|
|
376
|
+
// Get the effective components object - context overrides contentProps
|
|
377
|
+
// Components are kept separate from variant data to maintain clean separation of concerns
|
|
378
|
+
var effectiveComponents = React.useMemo(function () {
|
|
379
|
+
return (context == null ? void 0 : context.components) || contentProps.components || {};
|
|
380
|
+
}, [context == null ? void 0 : context.components, contentProps.components]);
|
|
381
|
+
return {
|
|
382
|
+
component: effectiveComponents[selectedVariantKey] || null,
|
|
383
|
+
ref: ref,
|
|
384
|
+
variants: variantKeys,
|
|
385
|
+
selectedVariant: selectedVariantKey,
|
|
386
|
+
selectVariant: setSelectedVariantKey,
|
|
387
|
+
files: files,
|
|
388
|
+
selectedFile: selectedFileComponent,
|
|
389
|
+
selectedFileName: selectedFileName,
|
|
390
|
+
selectFileName: setSelectedFileNameInternal,
|
|
391
|
+
expanded: expanded,
|
|
392
|
+
expand: expand,
|
|
393
|
+
setExpanded: setExpanded,
|
|
394
|
+
resetFocus: resetFocus,
|
|
395
|
+
copy: copy,
|
|
396
|
+
copyDisabled: copyDisabled,
|
|
397
|
+
availableTransforms: availableTransforms,
|
|
398
|
+
selectedTransform: selectedTransform,
|
|
399
|
+
selectTransform: selectTransform
|
|
400
|
+
};
|
|
401
|
+
}
|