@mui/internal-docs-infra 0.6.1-canary.3 → 0.7.1-canary.1

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.
Files changed (212) hide show
  1. package/CodeControllerContext/CodeControllerContext.d.mts +11 -4
  2. package/CodeControllerContext/CodeControllerContext.mjs +11 -4
  3. package/CodeExternalsContext/CodeExternalsContext.d.mts +14 -0
  4. package/CodeExternalsContext/CodeExternalsContext.mjs +17 -0
  5. package/CodeHighlighter/types.d.mts +7 -0
  6. package/CodeProvider/CodeContext.d.mts +17 -0
  7. package/CodeProvider/CodeContext.mjs +5 -0
  8. package/CodeProvider/CodeProvider.d.mts +12 -0
  9. package/CodeProvider/CodeProvider.mjs +9 -0
  10. package/abstractCreateDemoClient/abstractCreateDemoClient.d.mts +1 -1
  11. package/abstractCreateTypes/abstractCreateTypes.d.mts +252 -0
  12. package/abstractCreateTypes/abstractCreateTypes.mjs +289 -0
  13. package/abstractCreateTypes/index.d.mts +3 -0
  14. package/abstractCreateTypes/index.mjs +2 -0
  15. package/abstractCreateTypes/typesToJsx.d.mts +301 -0
  16. package/abstractCreateTypes/typesToJsx.mjs +850 -0
  17. package/cli/index.mjs +1 -1
  18. package/cli/loadNextConfig.d.mts +12 -0
  19. package/cli/loadNextConfig.mjs +153 -0
  20. package/cli/runValidate.d.mts +4 -1
  21. package/cli/runValidate.mjs +333 -115
  22. package/cli/validateWorker.d.mts +46 -0
  23. package/cli/validateWorker.mjs +98 -0
  24. package/createDemoData/createDemoData.d.mts +1 -0
  25. package/createDemoData/index.d.mts +2 -1
  26. package/createDemoData/index.mjs +2 -1
  27. package/createSitemap/types.d.mts +3 -0
  28. package/package.json +138 -21
  29. package/pipeline/enhanceCodeExportLinks/createElements.d.mts +34 -0
  30. package/pipeline/enhanceCodeExportLinks/createElements.mjs +203 -0
  31. package/pipeline/enhanceCodeInline/enhanceCodeInline.d.mts +32 -0
  32. package/pipeline/enhanceCodeInline/enhanceCodeInline.mjs +315 -0
  33. package/pipeline/enhanceCodeInline/index.d.mts +1 -0
  34. package/pipeline/enhanceCodeInline/index.mjs +1 -0
  35. package/pipeline/enhanceCodeTypes/arrowDetection.d.mts +17 -0
  36. package/pipeline/enhanceCodeTypes/arrowDetection.mjs +114 -0
  37. package/pipeline/enhanceCodeTypes/createElements.d.mts +34 -0
  38. package/pipeline/enhanceCodeTypes/createElements.mjs +203 -0
  39. package/pipeline/enhanceCodeTypes/enhanceChildren.d.mts +41 -0
  40. package/pipeline/enhanceCodeTypes/enhanceChildren.mjs +2340 -0
  41. package/pipeline/enhanceCodeTypes/enhanceCodeTypes.d.mts +158 -0
  42. package/pipeline/enhanceCodeTypes/enhanceCodeTypes.mjs +137 -0
  43. package/pipeline/enhanceCodeTypes/getLanguageCapabilities.d.mts +24 -0
  44. package/pipeline/enhanceCodeTypes/getLanguageCapabilities.mjs +72 -0
  45. package/pipeline/enhanceCodeTypes/hastUtils.d.mts +42 -0
  46. package/pipeline/enhanceCodeTypes/hastUtils.mjs +76 -0
  47. package/pipeline/enhanceCodeTypes/index.d.mts +2 -0
  48. package/pipeline/enhanceCodeTypes/index.mjs +1 -0
  49. package/pipeline/enhanceCodeTypes/processTextNode.d.mts +63 -0
  50. package/pipeline/enhanceCodeTypes/processTextNode.mjs +1188 -0
  51. package/pipeline/enhanceCodeTypes/scanState.d.mts +504 -0
  52. package/pipeline/enhanceCodeTypes/scanState.mjs +330 -0
  53. package/pipeline/enhanceCodeTypes/tryStartFuncParamContext.d.mts +21 -0
  54. package/pipeline/enhanceCodeTypes/tryStartFuncParamContext.mjs +238 -0
  55. package/pipeline/getFileConventions/fileConventions.d.mts +2 -1
  56. package/pipeline/getFileConventions/fileConventions.mjs +14 -1
  57. package/pipeline/getFileConventions/getFileConventions.d.mts +2 -1
  58. package/pipeline/hastUtils/hastUtils.d.mts +5 -3
  59. package/pipeline/hastUtils/hastUtils.mjs +8 -6
  60. package/pipeline/loadCodeVariant/loadCodeFallback.d.mts +10 -0
  61. package/pipeline/loadCodeVariant/loadCodeFallback.mjs +10 -0
  62. package/pipeline/loadCodeVariant/loadCodeVariant.d.mts +5 -0
  63. package/pipeline/loadCodeVariant/loadCodeVariant.mjs +14 -2
  64. package/pipeline/loadCodeVariant/maybeCodeInitialData.d.mts +3 -3
  65. package/pipeline/loadCodeVariant/maybeCodeInitialData.mjs +3 -3
  66. package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.mjs +2 -2
  67. package/pipeline/loadPrecomputedTypes/index.d.mts +3 -0
  68. package/pipeline/loadPrecomputedTypes/index.mjs +4 -0
  69. package/pipeline/loadPrecomputedTypes/loadPrecomputedTypes.d.mts +68 -0
  70. package/pipeline/loadPrecomputedTypes/loadPrecomputedTypes.mjs +180 -0
  71. package/pipeline/loadServerTypes/extractTypeProps.d.mts +53 -0
  72. package/pipeline/loadServerTypes/extractTypeProps.mjs +668 -0
  73. package/pipeline/loadServerTypes/hastTypeUtils.d.mts +147 -0
  74. package/pipeline/loadServerTypes/hastTypeUtils.mjs +481 -0
  75. package/pipeline/loadServerTypes/highlightTypes.d.mts +37 -0
  76. package/pipeline/loadServerTypes/highlightTypes.mjs +286 -0
  77. package/pipeline/loadServerTypes/highlightTypesMeta.d.mts +231 -0
  78. package/pipeline/loadServerTypes/highlightTypesMeta.mjs +836 -0
  79. package/pipeline/loadServerTypes/index.d.mts +1 -0
  80. package/pipeline/loadServerTypes/index.mjs +1 -0
  81. package/pipeline/loadServerTypes/loadServerTypes.d.mts +71 -0
  82. package/pipeline/loadServerTypes/loadServerTypes.mjs +270 -0
  83. package/pipeline/loadServerTypes/typeHighlighting.d.mts +124 -0
  84. package/pipeline/loadServerTypes/typeHighlighting.mjs +366 -0
  85. package/pipeline/loadServerTypesMeta/createOptimizedProgram.d.mts +134 -0
  86. package/pipeline/loadServerTypesMeta/createOptimizedProgram.mjs +379 -0
  87. package/pipeline/loadServerTypesMeta/externalTypes.d.mts +71 -0
  88. package/pipeline/loadServerTypesMeta/externalTypes.mjs +227 -0
  89. package/pipeline/loadServerTypesMeta/findMetaFiles.d.mts +9 -0
  90. package/pipeline/loadServerTypesMeta/findMetaFiles.mjs +45 -0
  91. package/pipeline/loadServerTypesMeta/format.d.mts +233 -0
  92. package/pipeline/loadServerTypesMeta/format.mjs +578 -0
  93. package/pipeline/loadServerTypesMeta/formatClass.d.mts +105 -0
  94. package/pipeline/loadServerTypesMeta/formatClass.mjs +149 -0
  95. package/pipeline/loadServerTypesMeta/formatComponent.d.mts +57 -0
  96. package/pipeline/loadServerTypesMeta/formatComponent.mjs +183 -0
  97. package/pipeline/loadServerTypesMeta/formatFunction.d.mts +62 -0
  98. package/pipeline/loadServerTypesMeta/formatFunction.mjs +143 -0
  99. package/pipeline/loadServerTypesMeta/formatHook.d.mts +40 -0
  100. package/pipeline/loadServerTypesMeta/formatHook.mjs +109 -0
  101. package/pipeline/loadServerTypesMeta/formatRaw.d.mts +104 -0
  102. package/pipeline/loadServerTypesMeta/formatRaw.mjs +242 -0
  103. package/pipeline/loadServerTypesMeta/formatType.d.mts +23 -0
  104. package/pipeline/loadServerTypesMeta/formatType.mjs +730 -0
  105. package/pipeline/loadServerTypesMeta/index.d.mts +1 -0
  106. package/pipeline/loadServerTypesMeta/index.mjs +1 -0
  107. package/pipeline/loadServerTypesMeta/loadServerTypesMeta.d.mts +125 -0
  108. package/pipeline/loadServerTypesMeta/loadServerTypesMeta.mjs +599 -0
  109. package/pipeline/loadServerTypesMeta/loadTypescriptConfig.d.mts +6 -0
  110. package/pipeline/loadServerTypesMeta/loadTypescriptConfig.mjs +149 -0
  111. package/pipeline/loadServerTypesMeta/performanceTracking.d.mts +22 -0
  112. package/pipeline/loadServerTypesMeta/performanceTracking.mjs +47 -0
  113. package/pipeline/loadServerTypesMeta/processTypes.d.mts +42 -0
  114. package/pipeline/loadServerTypesMeta/processTypes.mjs +409 -0
  115. package/pipeline/loadServerTypesMeta/resolveLibrarySourceFiles.d.mts +32 -0
  116. package/pipeline/loadServerTypesMeta/resolveLibrarySourceFiles.mjs +148 -0
  117. package/pipeline/loadServerTypesMeta/rewriteTypes.d.mts +41 -0
  118. package/pipeline/loadServerTypesMeta/rewriteTypes.mjs +213 -0
  119. package/pipeline/loadServerTypesMeta/socketClient.d.mts +82 -0
  120. package/pipeline/loadServerTypesMeta/socketClient.mjs +371 -0
  121. package/pipeline/loadServerTypesMeta/socketServer.d.mts +52 -0
  122. package/pipeline/loadServerTypesMeta/socketServer.mjs +188 -0
  123. package/pipeline/loadServerTypesMeta/typeGuards.d.mts +69 -0
  124. package/pipeline/loadServerTypesMeta/typeGuards.mjs +118 -0
  125. package/pipeline/loadServerTypesMeta/worker.d.mts +2 -0
  126. package/pipeline/loadServerTypesMeta/worker.mjs +36 -0
  127. package/pipeline/loadServerTypesMeta/workerManager.d.mts +10 -0
  128. package/pipeline/loadServerTypesMeta/workerManager.mjs +191 -0
  129. package/pipeline/loadServerTypesText/index.d.mts +1 -0
  130. package/pipeline/loadServerTypesText/index.mjs +1 -0
  131. package/pipeline/loadServerTypesText/loadServerTypesText.d.mts +27 -0
  132. package/pipeline/loadServerTypesText/loadServerTypesText.mjs +25 -0
  133. package/pipeline/loadServerTypesText/order.d.mts +26 -0
  134. package/pipeline/loadServerTypesText/order.mjs +29 -0
  135. package/pipeline/loadServerTypesText/organizeTypesByExport.d.mts +58 -0
  136. package/pipeline/loadServerTypesText/organizeTypesByExport.mjs +295 -0
  137. package/pipeline/loadServerTypesText/parseTypesMarkdown.d.mts +17 -0
  138. package/pipeline/loadServerTypesText/parseTypesMarkdown.mjs +993 -0
  139. package/pipeline/loaderUtils/getFileNameFromUrl.mjs +1 -1
  140. package/pipeline/loaderUtils/parseImportsAndComments.d.mts +14 -7
  141. package/pipeline/loaderUtils/parseImportsAndComments.mjs +139 -14
  142. package/pipeline/loaderUtils/resolveModulePath.mjs +24 -11
  143. package/pipeline/loaderUtils/toKebabCase.d.mts +5 -0
  144. package/pipeline/loaderUtils/toKebabCase.mjs +7 -0
  145. package/pipeline/parseSource/parseSource.d.mts +16 -0
  146. package/pipeline/parseSource/parseSource.mjs +18 -0
  147. package/pipeline/syncPageIndex/createMarkdownNodes.d.mts +44 -3
  148. package/pipeline/syncPageIndex/createMarkdownNodes.mjs +53 -82
  149. package/pipeline/syncPageIndex/mergeMetadataMarkdown.d.mts +7 -0
  150. package/pipeline/syncPageIndex/mergeMetadataMarkdown.mjs +8 -2
  151. package/pipeline/syncPageIndex/metadataToMarkdown.d.mts +15 -0
  152. package/pipeline/syncPageIndex/metadataToMarkdown.mjs +121 -19
  153. package/pipeline/syncPageIndex/syncPageIndex.d.mts +7 -0
  154. package/pipeline/syncPageIndex/syncPageIndex.mjs +4 -2
  155. package/pipeline/syncTypes/generateTypesMarkdown.d.mts +22 -0
  156. package/pipeline/syncTypes/generateTypesMarkdown.mjs +771 -0
  157. package/pipeline/syncTypes/index.d.mts +1 -0
  158. package/pipeline/syncTypes/index.mjs +1 -0
  159. package/pipeline/syncTypes/syncTypes.d.mts +75 -0
  160. package/pipeline/syncTypes/syncTypes.mjs +306 -0
  161. package/pipeline/transformHtmlCodeBlock/index.d.mts +2 -0
  162. package/pipeline/transformHtmlCodeBlock/index.mjs +4 -0
  163. package/pipeline/{transformHtmlCodePrecomputed/transformHtmlCodePrecomputed.d.mts → transformHtmlCodeBlock/transformHtmlCodeBlock.d.mts} +1 -1
  164. package/pipeline/{transformHtmlCodePrecomputed/transformHtmlCodePrecomputed.mjs → transformHtmlCodeBlock/transformHtmlCodeBlock.mjs} +28 -4
  165. package/pipeline/transformHtmlCodeInline/index.d.mts +2 -0
  166. package/pipeline/transformHtmlCodeInline/index.mjs +1 -0
  167. package/pipeline/transformHtmlCodeInline/removePrefixFromHighlightedNodes.d.mts +20 -0
  168. package/pipeline/transformHtmlCodeInline/removePrefixFromHighlightedNodes.mjs +72 -0
  169. package/pipeline/transformHtmlCodeInline/transformHtmlCodeInline.d.mts +24 -0
  170. package/pipeline/transformHtmlCodeInline/transformHtmlCodeInline.mjs +140 -0
  171. package/pipeline/transformMarkdownCode/index.d.mts +2 -1
  172. package/pipeline/transformMarkdownCode/transformMarkdownCode.d.mts +9 -1
  173. package/pipeline/transformMarkdownCode/transformMarkdownCode.mjs +72 -1
  174. package/pipeline/transformMarkdownMetaLinks/index.d.mts +2 -0
  175. package/pipeline/transformMarkdownMetaLinks/index.mjs +4 -0
  176. package/pipeline/transformMarkdownMetaLinks/transformMarkdownMetaLinks.d.mts +35 -0
  177. package/pipeline/{transformMarkdownDemoLinks/transformMarkdownDemoLinks.mjs → transformMarkdownMetaLinks/transformMarkdownMetaLinks.mjs} +53 -13
  178. package/pipeline/transformMarkdownMetadata/types.d.mts +32 -12
  179. package/pipeline/transformMarkdownRelativePaths/transformMarkdownRelativePaths.mjs +5 -0
  180. package/useCode/useFileNavigation.d.mts +0 -6
  181. package/useCode/useFileNavigation.mjs +1 -11
  182. package/useCode/useVariantSelection.mjs +2 -1
  183. package/useErrors/useErrors.d.mts +8 -0
  184. package/useErrors/useErrors.mjs +8 -0
  185. package/useLocalStorageState/useLocalStorageState.d.mts +6 -0
  186. package/useLocalStorageState/useLocalStorageState.mjs +6 -0
  187. package/usePreference/usePreference.d.mts +11 -0
  188. package/usePreference/usePreference.mjs +12 -0
  189. package/useSearch/types.d.mts +1 -0
  190. package/useSearch/useSearch.d.mts +2 -0
  191. package/useSearch/useSearch.mjs +8 -0
  192. package/useType/TypesDataContext.d.mts +42 -0
  193. package/useType/TypesDataContext.mjs +22 -0
  194. package/useType/TypesDataProvider.d.mts +11 -0
  195. package/useType/TypesDataProvider.mjs +67 -0
  196. package/useType/index.d.mts +4 -0
  197. package/useType/index.mjs +4 -0
  198. package/useType/useType.d.mts +25 -0
  199. package/useType/useType.mjs +21 -0
  200. package/useType/useTypeProp.d.mts +30 -0
  201. package/useType/useTypeProp.mjs +22 -0
  202. package/useTypes/index.d.mts +2 -0
  203. package/useTypes/index.mjs +2 -0
  204. package/useTypes/useTypes.d.mts +23 -0
  205. package/useTypes/useTypes.mjs +122 -0
  206. package/withDocsInfra/withDocsInfra.d.mts +43 -0
  207. package/withDocsInfra/withDocsInfra.mjs +61 -4
  208. package/pipeline/transformHtmlCodePrecomputed/index.d.mts +0 -2
  209. package/pipeline/transformHtmlCodePrecomputed/index.mjs +0 -4
  210. package/pipeline/transformMarkdownDemoLinks/index.d.mts +0 -2
  211. package/pipeline/transformMarkdownDemoLinks/index.mjs +0 -4
  212. package/pipeline/transformMarkdownDemoLinks/transformMarkdownDemoLinks.d.mts +0 -26
@@ -46,9 +46,10 @@ export interface CodeControllerContext {
46
46
  }
47
47
  export declare const CodeControllerContext: React.Context<CodeControllerContext | undefined>;
48
48
  /**
49
- * Hook for accessing the controlled code context.
50
- *
51
- * This hook provides access to the controlled code, selection state, and setter functions
49
+ * Hook to access controlled code state and setters. This is useful for custom
50
+ * components that need to interact with the controlled code state. Use useCode
51
+ * instead when you need access to the code data along with control functions.
52
+ * Use this hook when you need direct access to the setCode and setSelection functions
52
53
  * from the CodeControllerContext. It's worth noting that useCode and useDemo handle
53
54
  * controlling selection in typical cases.
54
55
  *
@@ -59,4 +60,10 @@ export declare const CodeControllerContext: React.Context<CodeControllerContext
59
60
  * - setSelection: Function to update the selection
60
61
  * - components: Override components for the preview
61
62
  */
62
- export declare function useControlledCode(): CodeControllerContext | undefined;
63
+ export declare function useControlledCode(): {
64
+ code: ControlledCode | undefined;
65
+ selection: Selection | undefined;
66
+ setCode: React.Dispatch<React.SetStateAction<ControlledCode | undefined>> | undefined;
67
+ setSelection: React.Dispatch<React.SetStateAction<Selection>> | undefined;
68
+ components: Record<string, React.ReactNode> | undefined;
69
+ };
@@ -13,9 +13,10 @@ import * as React from 'react';
13
13
  export const CodeControllerContext = /*#__PURE__*/React.createContext(undefined);
14
14
 
15
15
  /**
16
- * Hook for accessing the controlled code context.
17
- *
18
- * This hook provides access to the controlled code, selection state, and setter functions
16
+ * Hook to access controlled code state and setters. This is useful for custom
17
+ * components that need to interact with the controlled code state. Use useCode
18
+ * instead when you need access to the code data along with control functions.
19
+ * Use this hook when you need direct access to the setCode and setSelection functions
19
20
  * from the CodeControllerContext. It's worth noting that useCode and useDemo handle
20
21
  * controlling selection in typical cases.
21
22
  *
@@ -29,5 +30,11 @@ export const CodeControllerContext = /*#__PURE__*/React.createContext(undefined)
29
30
  if (process.env.NODE_ENV !== "production") CodeControllerContext.displayName = "CodeControllerContext";
30
31
  export function useControlledCode() {
31
32
  const context = React.useContext(CodeControllerContext);
32
- return context;
33
+ return {
34
+ code: context?.code,
35
+ selection: context?.selection,
36
+ setCode: context?.setCode,
37
+ setSelection: context?.setSelection,
38
+ components: context?.components
39
+ };
33
40
  }
@@ -1,8 +1,22 @@
1
1
  import * as React from 'react';
2
+ /** Represents any imported module or object that can be provided as an external dependency */
2
3
  type Module = NonNullable<unknown>;
4
+ /**
5
+ * Context interface for providing external dependencies to demo components.
6
+ * Used by demo client providers to make precomputed externals available to child components.
7
+ */
3
8
  export interface CodeExternalsContext {
9
+ /** Map of module specifiers to their imported values (e.g., { 'react': React, '@mui/material': { Button } }) */
4
10
  externals?: Record<string, Module>;
5
11
  }
12
+ /**
13
+ * React context for managing external dependencies in demo components.
14
+ * Primarily used internally by demo client providers created with abstractCreateDemoClient.
15
+ */
6
16
  export declare const CodeExternalsContext: React.Context<CodeExternalsContext | undefined>;
17
+ /**
18
+ * Hook to access external dependencies from the CodeExternalsContext.
19
+ * Returns undefined if used outside of a provider.
20
+ */
7
21
  export declare function useCodeExternals(): CodeExternalsContext | undefined;
8
22
  export {};
@@ -1,7 +1,24 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
+
5
+ /** Represents any imported module or object that can be provided as an external dependency */
6
+
7
+ /**
8
+ * Context interface for providing external dependencies to demo components.
9
+ * Used by demo client providers to make precomputed externals available to child components.
10
+ */
11
+
12
+ /**
13
+ * React context for managing external dependencies in demo components.
14
+ * Primarily used internally by demo client providers created with abstractCreateDemoClient.
15
+ */
4
16
  export const CodeExternalsContext = /*#__PURE__*/React.createContext(undefined);
17
+
18
+ /**
19
+ * Hook to access external dependencies from the CodeExternalsContext.
20
+ * Returns undefined if used outside of a provider.
21
+ */
5
22
  if (process.env.NODE_ENV !== "production") CodeExternalsContext.displayName = "CodeExternalsContext";
6
23
  export function useCodeExternals() {
7
24
  return React.useContext(CodeExternalsContext);
@@ -133,6 +133,13 @@ export type TransformSource = (source: string, fileName: string) => Promise<Reco
133
133
  source: string;
134
134
  fileName?: string;
135
135
  }> | undefined>;
136
+ /**
137
+ * Parses source code into a HAST tree with syntax highlighting.
138
+ *
139
+ * @param source - The source code to parse and highlight
140
+ * @param fileName - File name used to detect language via file extension
141
+ * @param language - Optional explicit language override (e.g., 'tsx', 'css', 'typescript')
142
+ */
136
143
  export type ParseSource = (source: string, fileName: string, language?: string) => HastRoot;
137
144
  export type SourceTransformer = {
138
145
  extensions: string[];
@@ -13,19 +13,36 @@ export type ParseCodeFn = (code: Code, parseSource: ParseSource) => Code;
13
13
  export type ParseControlledCodeFn = (controlledCode: ControlledCode, parseSource: ParseSource) => Code;
14
14
  export type ComputeHastDeltasFn = (parsedCode: Code, parseSource: ParseSource) => Promise<Code>;
15
15
  export type GetAvailableTransformsFn = (parsedCode: Code | undefined, variantName: string) => string[];
16
+ /**
17
+ * Context interface for code processing functions.
18
+ * Provides heavy functions via context that can't be serialized across the server-client boundary.
19
+ */
16
20
  export interface CodeContext {
21
+ /** Async parser promise for initial loading */
17
22
  sourceParser?: Promise<ParseSource>;
23
+ /** Sync parser available after initial load completes */
18
24
  parseSource?: ParseSource;
25
+ /** Source transformers for code transformation (e.g., TypeScript to JavaScript) */
19
26
  sourceTransformers?: SourceTransformers;
27
+ /** Source enhancers for modifying parsed HAST */
20
28
  sourceEnhancers?: SourceEnhancers;
29
+ /** Function to load raw source code and dependencies */
21
30
  loadSource?: LoadSource;
31
+ /** Function to load specific variant metadata */
22
32
  loadVariantMeta?: LoadVariantMeta;
33
+ /** Function to load code metadata from a URL */
23
34
  loadCodeMeta?: LoadCodeMeta;
35
+ /** Heavy function: Loads fallback code with all variants and files */
24
36
  loadCodeFallback?: LoadFallbackCodeFn;
37
+ /** Heavy function: Loads a specific code variant with its dependencies */
25
38
  loadCodeVariant?: LoadVariantFn;
39
+ /** Heavy function: Parses code strings into HAST nodes */
26
40
  parseCode?: ParseCodeFn;
41
+ /** Heavy function: Parses controlled code for editable demos */
27
42
  parseControlledCode?: ParseControlledCodeFn;
43
+ /** Heavy function: Computes HAST deltas for code transformations */
28
44
  computeHastDeltas?: ComputeHastDeltasFn;
45
+ /** Heavy function: Gets available transform keys for a variant */
29
46
  getAvailableTransforms?: GetAvailableTransformsFn;
30
47
  }
31
48
  export declare const CodeContext: React.Context<CodeContext>;
@@ -4,6 +4,11 @@ import * as React from 'react';
4
4
 
5
5
  // Type definitions for the heavy functions we're moving to context
6
6
 
7
+ /**
8
+ * Context interface for code processing functions.
9
+ * Provides heavy functions via context that can't be serialized across the server-client boundary.
10
+ */
11
+
7
12
  export const CodeContext = /*#__PURE__*/React.createContext({});
8
13
  if (process.env.NODE_ENV !== "production") CodeContext.displayName = "CodeContext";
9
14
  export const useCodeContext = () => {
@@ -1,5 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import type { LoadCodeMeta, LoadSource, LoadVariantMeta, SourceEnhancers } from "../CodeHighlighter/types.mjs";
3
+ /**
4
+ * Provides client-side functions for fetching source code and highlighting it.
5
+ * Designed for cases where you need to render code blocks or demos based on
6
+ * client-side state or dynamic content loading.
7
+ *
8
+ * Implements the Props Context Layering pattern by providing heavy functions
9
+ * via context that can't be serialized across the server-client boundary.
10
+ */
3
11
  export declare function CodeProvider({
4
12
  children,
5
13
  loadCodeMeta,
@@ -7,9 +15,13 @@ export declare function CodeProvider({
7
15
  loadSource,
8
16
  sourceEnhancers
9
17
  }: {
18
+ /** Child components that will have access to the code handling context */
10
19
  children: React.ReactNode;
20
+ /** Function to load code metadata from a URL */
11
21
  loadCodeMeta?: LoadCodeMeta;
22
+ /** Function to load specific variant metadata */
12
23
  loadVariantMeta?: LoadVariantMeta;
24
+ /** Function to load raw source code and dependencies */
13
25
  loadSource?: LoadSource;
14
26
  sourceEnhancers?: SourceEnhancers;
15
27
  }): import("react/jsx-runtime").JSX.Element;
@@ -11,6 +11,15 @@ import { loadCodeVariant } from "../pipeline/loadCodeVariant/loadCodeVariant.mjs
11
11
  import { parseCode } from "../pipeline/loadCodeVariant/parseCode.mjs";
12
12
  import { parseControlledCode } from "../CodeHighlighter/parseControlledCode.mjs";
13
13
  import { computeHastDeltas, getAvailableTransforms } from "../pipeline/loadCodeVariant/computeHastDeltas.mjs";
14
+
15
+ /**
16
+ * Provides client-side functions for fetching source code and highlighting it.
17
+ * Designed for cases where you need to render code blocks or demos based on
18
+ * client-side state or dynamic content loading.
19
+ *
20
+ * Implements the Props Context Layering pattern by providing heavy functions
21
+ * via context that can't be serialized across the server-client boundary.
22
+ */
14
23
  import { jsx as _jsx } from "react/jsx-runtime";
15
24
  export function CodeProvider({
16
25
  children,
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { Externals } from "../CodeHighlighter/types.mjs";
3
- type CreateDemoClientMeta = {
3
+ export type CreateDemoClientMeta = {
4
4
  name?: string;
5
5
  slug?: string;
6
6
  displayName?: string;
@@ -0,0 +1,252 @@
1
+ import * as React from 'react';
2
+ import type { PluggableList } from 'unified';
3
+ import type { HighlightedTypesMeta } from '@mui/internal-docs-infra/pipeline/loadServerTypes';
4
+ import type { ModuleLinkMapEntry } from "../pipeline/enhanceCodeTypes/scanState.mjs";
5
+ import { type TypesJsxOptions } from "./typesToJsx.mjs";
6
+ import type { TypesTableProps } from "../useTypes/useTypes.mjs";
7
+ /**
8
+ * Export data structure containing a main type and its related additional types.
9
+ * Used in the precompute field for structured type data.
10
+ */
11
+ export interface ExportData {
12
+ /** The main component/hook/function type for this export */
13
+ type: HighlightedTypesMeta;
14
+ /** Related types like .Props, .State, .ChangeEventDetails for this export */
15
+ additionalTypes: HighlightedTypesMeta[];
16
+ }
17
+ export type TypesTableMeta = {
18
+ precompute?: {
19
+ /**
20
+ * Structured export data where each export has a main type and related additional types.
21
+ * Keys are export names like "Root", "Trigger", etc.
22
+ */
23
+ exports: Record<string, ExportData>;
24
+ /**
25
+ * Top-level types that are not namespaced under any component part
26
+ * and not claimed by any variant-only group.
27
+ */
28
+ additionalTypes: HighlightedTypesMeta[];
29
+ /**
30
+ * Types belonging to variant-only groups (variants with no main export).
31
+ * Keyed by variant name, containing the types from that variant.
32
+ * Separated from `additionalTypes` to avoid duplication.
33
+ */
34
+ variantOnlyAdditionalTypes?: Record<string, HighlightedTypesMeta[]>;
35
+ /**
36
+ * Maps variant names to the type names that originated from that variant.
37
+ * Used for namespace imports (e.g., `* as Types`) to filter additionalTypes
38
+ * to only show types from that specific module.
39
+ */
40
+ variantTypeNames?: Record<string, string[]>;
41
+ singleComponentName?: string;
42
+ /**
43
+ * Platform-scoped anchor maps for linking type references in code.
44
+ * Used by enhanceCodeTypes to create links to type documentation.
45
+ */
46
+ anchorMap?: {
47
+ js?: Record<string, string>;
48
+ css?: Record<string, string>;
49
+ };
50
+ };
51
+ name?: string;
52
+ displayName?: string;
53
+ disableOptimization?: boolean;
54
+ watchSourceDirectly?: boolean;
55
+ /**
56
+ * When true, excludes this component from the parent index page.
57
+ * The component types will still be processed, but won't be added to the index.
58
+ */
59
+ excludeFromIndex?: boolean;
60
+ components?: TypesJsxOptions['components'];
61
+ /**
62
+ * Override pre component for type code blocks.
63
+ * When set, overrides the factory-level TypePre.
64
+ */
65
+ TypePre?: TypesJsxOptions['TypePre'];
66
+ /**
67
+ * Override pre component for detailed type blocks.
68
+ * When set, overrides the factory-level DetailedTypePre.
69
+ */
70
+ DetailedTypePre?: TypesJsxOptions['DetailedTypePre'];
71
+ /**
72
+ * Override code component for shortType fields.
73
+ * When set, overrides the factory-level ShortTypeCode.
74
+ */
75
+ ShortTypeCode?: TypesJsxOptions['ShortTypeCode'];
76
+ /**
77
+ * Override code component for default value fields.
78
+ * When set, overrides the factory-level DefaultCode.
79
+ */
80
+ DefaultCode?: TypesJsxOptions['DefaultCode'];
81
+ /**
82
+ * Override pre component for raw type formatted code blocks.
83
+ * When set, overrides the factory-level RawTypePre.
84
+ */
85
+ RawTypePre?: TypesJsxOptions['RawTypePre'];
86
+ /**
87
+ * Rehype plugins to run on HAST before converting to JSX.
88
+ * If set, completely overrides enhancers from AbstractCreateTypesOptions.
89
+ * Defaults to `[enhanceCodeInline]` when undefined.
90
+ * Pass an empty array to disable all enhancers.
91
+ */
92
+ enhancers?: PluggableList;
93
+ /**
94
+ * Rehype plugins to run on inline HAST fields (shortType and default).
95
+ * If set, completely overrides enhancersInline from AbstractCreateTypesOptions.
96
+ * Defaults to `[enhanceCodeInline]` when undefined.
97
+ * Pass an empty array to disable all inline enhancers.
98
+ */
99
+ enhancersInline?: PluggableList;
100
+ /**
101
+ * Custom component tag name to use instead of `<a>` for type reference links.
102
+ * When set, enhanceCodeTypes emits elements with this tag name,
103
+ * adding a `name` property (the matched identifier) alongside `href`.
104
+ * This enables interactive type popovers via a `TypeRef` component.
105
+ */
106
+ typeRefComponent?: string;
107
+ /**
108
+ * Custom component tag name to use instead of a plain HTML element
109
+ * for property references within type definitions, object literals, function calls, and JSX.
110
+ * For definitions the element receives `id`, for references it receives `href`.
111
+ * Both also receive `name` (owner) and `prop` (kebab-case property path).
112
+ */
113
+ typePropRefComponent?: string;
114
+ /**
115
+ * Custom component tag name to use instead of a plain HTML element
116
+ * for function parameter references.
117
+ * For definitions the element receives `id`, for references it receives `href`.
118
+ * Both also receive `name` (owner) and `param` (parameter name).
119
+ */
120
+ typeParamRefComponent?: string;
121
+ /**
122
+ * Opt-in property linking mode for enhanceCodeTypes.
123
+ * - `'shallow'`: Link only top-level properties of known owners.
124
+ * - `'deep'`: Link nested properties with dotted paths (e.g., `address.street-name`).
125
+ * - `undefined` (default): No property linking.
126
+ */
127
+ linkProps?: 'shallow' | 'deep';
128
+ /**
129
+ * Opt-in function parameter linking for enhanceCodeTypes.
130
+ * When `true`, links function parameter names to documentation anchors.
131
+ */
132
+ linkParams?: boolean;
133
+ /**
134
+ * Opt-in scope-based variable linking for enhanceCodeTypes.
135
+ * When `true`, links variable references to the type from their declaration
136
+ * using single-pass scope tracking.
137
+ */
138
+ linkScope?: boolean;
139
+ /**
140
+ * Module import linking map for enhanceCodeTypes.
141
+ * Maps module specifiers to their documentation page and exports.
142
+ */
143
+ moduleLinkMap?: {
144
+ js?: Record<string, ModuleLinkMapEntry>;
145
+ css?: Record<string, ModuleLinkMapEntry>;
146
+ };
147
+ /**
148
+ * Default anchor slug for default/namespace imports when the module entry
149
+ * in `moduleLinkMap` does not specify a `defaultSlug`.
150
+ */
151
+ defaultImportSlug?: string;
152
+ };
153
+ export type AbstractCreateTypesOptions<T extends {} = {}> = {
154
+ TypesTable: React.ComponentType<TypesTableProps<T>>;
155
+ components?: TypesJsxOptions['components'];
156
+ /**
157
+ * Required pre component for type code blocks.
158
+ * Type signatures are not precomputed, so this has a different
159
+ * contract from `components.pre`.
160
+ * Can be overridden by TypesTableMeta.TypePre.
161
+ */
162
+ TypePre: TypesJsxOptions['TypePre'];
163
+ /**
164
+ * Optional pre component for detailed type blocks.
165
+ * Falls back to `TypePre` when not provided.
166
+ * Can be overridden by TypesTableMeta.DetailedTypePre.
167
+ */
168
+ DetailedTypePre?: TypesJsxOptions['DetailedTypePre'];
169
+ /**
170
+ * Optional code component for shortType fields.
171
+ * Falls back to `components.code` when not provided.
172
+ * Can be overridden by TypesTableMeta.ShortTypeCode.
173
+ */
174
+ ShortTypeCode?: TypesJsxOptions['ShortTypeCode'];
175
+ /**
176
+ * Optional code component for default value fields.
177
+ * Falls back to `components.code` when not provided.
178
+ * Can be overridden by TypesTableMeta.DefaultCode.
179
+ */
180
+ DefaultCode?: TypesJsxOptions['DefaultCode'];
181
+ /**
182
+ * Optional pre component for raw type formatted code blocks.
183
+ * Falls back to `DetailedTypePre`, then `TypePre` when not provided.
184
+ * Can be overridden by TypesTableMeta.RawTypePre.
185
+ */
186
+ RawTypePre?: TypesJsxOptions['RawTypePre'];
187
+ /**
188
+ * Rehype plugins to run on HAST before converting to JSX.
189
+ * Can be overridden by TypesTableMeta.enhancers.
190
+ * Defaults to `[enhanceCodeInline]` when undefined.
191
+ * Pass an empty array to disable all enhancers.
192
+ */
193
+ enhancers?: PluggableList;
194
+ /**
195
+ * Rehype plugins to run on inline HAST fields (shortType and default).
196
+ * Can be overridden by TypesTableMeta.enhancersInline.
197
+ * Defaults to `[enhanceCodeInline]` when undefined.
198
+ * Pass an empty array to disable all inline enhancers.
199
+ */
200
+ enhancersInline?: PluggableList;
201
+ /**
202
+ * Custom component tag name to use instead of `<a>` for type reference links.
203
+ * When set, enhanceCodeTypes emits elements with this tag name,
204
+ * adding a `name` property (the matched identifier) alongside `href`.
205
+ * Can be overridden by TypesTableMeta.typeRefComponent.
206
+ */
207
+ typeRefComponent?: string;
208
+ /**
209
+ * Custom component tag name for property reference elements.
210
+ * Can be overridden by TypesTableMeta.typePropRefComponent.
211
+ */
212
+ typePropRefComponent?: string;
213
+ /**
214
+ * Custom component tag name for function parameter reference elements.
215
+ * Can be overridden by TypesTableMeta.typeParamRefComponent.
216
+ */
217
+ typeParamRefComponent?: string;
218
+ /**
219
+ * Opt-in property linking mode for enhanceCodeTypes.
220
+ * Can be overridden by TypesTableMeta.linkProps.
221
+ */
222
+ linkProps?: 'shallow' | 'deep';
223
+ /**
224
+ * Opt-in function parameter linking for enhanceCodeTypes.
225
+ * Can be overridden by TypesTableMeta.linkParams.
226
+ */
227
+ linkParams?: boolean;
228
+ /**
229
+ * Opt-in scope-based variable linking for enhanceCodeTypes.
230
+ * Can be overridden by TypesTableMeta.linkScope.
231
+ */
232
+ linkScope?: boolean;
233
+ /**
234
+ * Module import linking map for enhanceCodeTypes.
235
+ * Can be overridden by TypesTableMeta.moduleLinkMap.
236
+ */
237
+ moduleLinkMap?: {
238
+ js?: Record<string, ModuleLinkMapEntry>;
239
+ css?: Record<string, ModuleLinkMapEntry>;
240
+ };
241
+ /**
242
+ * Default anchor slug for default/namespace imports.
243
+ * Can be overridden by TypesTableMeta.defaultImportSlug.
244
+ */
245
+ defaultImportSlug?: string;
246
+ };
247
+ export declare function abstractCreateTypes<T extends {}>(options: AbstractCreateTypesOptions<T>, url: string, meta: TypesTableMeta | undefined, exportName?: string): React.ComponentType<T>;
248
+ export declare function createTypesFactory<T extends {}>(options: AbstractCreateTypesOptions<T>): (url: string, typeDef: object, meta?: TypesTableMeta | undefined) => React.ComponentType<T>;
249
+ export declare function createMultipleTypesFactory<T extends {}>(options: AbstractCreateTypesOptions<T>): <K extends Record<string, any>>(url: string, typeDef: K, meta?: TypesTableMeta | undefined) => {
250
+ types: Record<keyof K, React.ComponentType<T>>;
251
+ AdditionalTypes: React.ComponentType<T>;
252
+ };