@mui/internal-docs-infra 0.11.1-canary.8 → 0.11.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 (319) hide show
  1. package/ChunkProvider/ChunkContext.d.mts +10 -0
  2. package/ChunkProvider/ChunkContext.mjs +15 -0
  3. package/ChunkProvider/ChunkProvider.d.mts +14 -0
  4. package/ChunkProvider/ChunkProvider.mjs +38 -0
  5. package/ChunkProvider/PreloadContext.d.mts +14 -0
  6. package/ChunkProvider/PreloadContext.mjs +18 -0
  7. package/ChunkProvider/PreloadProvider.d.mts +13 -0
  8. package/ChunkProvider/PreloadProvider.mjs +33 -0
  9. package/ChunkProvider/index.d.mts +7 -0
  10. package/ChunkProvider/index.mjs +7 -0
  11. package/ChunkProvider/types.d.mts +23 -0
  12. package/ChunkProvider/types.mjs +1 -0
  13. package/ChunkProvider/usePreload.d.mts +8 -0
  14. package/ChunkProvider/usePreload.mjs +21 -0
  15. package/CodeControllerContext/CodeControllerContext.d.mts +11 -0
  16. package/CodeControllerContext/CodeControllerContext.mjs +2 -1
  17. package/CodeHighlighter/CodeHighlighter.d.mts +15 -1
  18. package/CodeHighlighter/CodeHighlighter.mjs +97 -319
  19. package/CodeHighlighter/CodeHighlighterChunk.d.mts +42 -0
  20. package/CodeHighlighter/CodeHighlighterChunk.mjs +77 -0
  21. package/CodeHighlighter/CodeHighlighterClient.mjs +597 -128
  22. package/CodeHighlighter/CodeHighlighterContext.d.mts +57 -1
  23. package/CodeHighlighter/CodeHighlighterFallbackContext.d.mts +14 -2
  24. package/CodeHighlighter/CodeHighlighterFallbackContext.mjs +1 -3
  25. package/CodeHighlighter/CodeInitialSourceLoader.d.mts +10 -0
  26. package/CodeHighlighter/CodeInitialSourceLoader.mjs +108 -0
  27. package/CodeHighlighter/CodeSourceLoader.d.mts +11 -0
  28. package/CodeHighlighter/CodeSourceLoader.mjs +128 -0
  29. package/CodeHighlighter/buildCodeHighlighterChunkProps.d.mts +47 -0
  30. package/CodeHighlighter/buildCodeHighlighterChunkProps.mjs +61 -0
  31. package/CodeHighlighter/buildStringFallback.d.mts +29 -0
  32. package/CodeHighlighter/buildStringFallback.mjs +42 -0
  33. package/CodeHighlighter/codeToFallbackProps.d.mts +31 -2
  34. package/CodeHighlighter/codeToFallbackProps.mjs +347 -42
  35. package/CodeHighlighter/createClientProps.d.mts +17 -0
  36. package/CodeHighlighter/createClientProps.mjs +78 -0
  37. package/CodeHighlighter/errors.d.mts +6 -0
  38. package/CodeHighlighter/errors.mjs +10 -0
  39. package/CodeHighlighter/fallbackCompression.d.mts +96 -0
  40. package/CodeHighlighter/fallbackCompression.mjs +253 -0
  41. package/CodeHighlighter/fallbackFormat.d.mts +137 -0
  42. package/CodeHighlighter/fallbackFormat.mjs +422 -0
  43. package/CodeHighlighter/index.d.mts +4 -1
  44. package/CodeHighlighter/index.mjs +3 -1
  45. package/CodeHighlighter/mergeComments.d.mts +38 -0
  46. package/CodeHighlighter/mergeComments.mjs +80 -0
  47. package/CodeHighlighter/prepareInitialSource.d.mts +42 -0
  48. package/CodeHighlighter/prepareInitialSource.mjs +292 -0
  49. package/CodeHighlighter/resolveFallbackCritical.d.mts +23 -0
  50. package/CodeHighlighter/resolveFallbackCritical.mjs +44 -0
  51. package/CodeHighlighter/types.d.mts +272 -8
  52. package/CodeHighlighter/useCodeFallback.d.mts +94 -0
  53. package/CodeHighlighter/useCodeFallback.mjs +204 -0
  54. package/CodeHighlighter/useGrammarsReady.d.mts +18 -0
  55. package/CodeHighlighter/useGrammarsReady.mjs +45 -0
  56. package/CodeHighlighter/useSpeculativeCodePreload.d.mts +26 -0
  57. package/CodeHighlighter/useSpeculativeCodePreload.mjs +40 -0
  58. package/CodeHighlighter/useSpeculativeEditingPreload.d.mts +33 -0
  59. package/CodeHighlighter/useSpeculativeEditingPreload.mjs +58 -0
  60. package/CodeHighlighter/useSpeculativeGrammarPreload.d.mts +23 -0
  61. package/CodeHighlighter/useSpeculativeGrammarPreload.mjs +31 -0
  62. package/CodeHighlighter/useSpeculativeUseCodePreload.d.mts +22 -0
  63. package/CodeHighlighter/useSpeculativeUseCodePreload.mjs +41 -0
  64. package/CodeProvider/CodeContext.d.mts +47 -12
  65. package/CodeProvider/CodeContext.mjs +7 -0
  66. package/CodeProvider/CodeProvider.d.mts +4 -2
  67. package/CodeProvider/CodeProvider.mjs +40 -102
  68. package/CodeProvider/CodeProviderLazy.d.mts +40 -0
  69. package/CodeProvider/CodeProviderLazy.mjs +96 -0
  70. package/CodeProvider/constants.d.mts +26 -0
  71. package/CodeProvider/constants.mjs +24 -0
  72. package/CodeProvider/createParseSourceWorkerClient.d.mts +6 -0
  73. package/CodeProvider/createParseSourceWorkerClient.mjs +22 -2
  74. package/CodeProvider/index.d.mts +2 -1
  75. package/CodeProvider/index.mjs +9 -1
  76. package/CodeProvider/parseSourceWorker.mjs +33 -0
  77. package/CodeProvider/useCodeProviderValue.d.mts +54 -0
  78. package/CodeProvider/useCodeProviderValue.mjs +188 -0
  79. package/CoordinatedLazy/ChunkServerLoader.d.mts +25 -0
  80. package/CoordinatedLazy/ChunkServerLoader.mjs +97 -0
  81. package/CoordinatedLazy/CoordinatedContentContext.d.mts +15 -0
  82. package/CoordinatedLazy/CoordinatedContentContext.mjs +22 -0
  83. package/CoordinatedLazy/CoordinatedFallbackContext.d.mts +11 -0
  84. package/CoordinatedLazy/CoordinatedFallbackContext.mjs +13 -0
  85. package/CoordinatedLazy/CoordinatedGateContext.d.mts +14 -0
  86. package/CoordinatedLazy/CoordinatedGateContext.mjs +19 -0
  87. package/CoordinatedLazy/CoordinatedLazy.d.mts +14 -0
  88. package/CoordinatedLazy/CoordinatedLazy.mjs +86 -0
  89. package/CoordinatedLazy/CoordinatedLazyClient.d.mts +24 -0
  90. package/CoordinatedLazy/CoordinatedLazyClient.mjs +65 -0
  91. package/CoordinatedLazy/LazyContent.d.mts +26 -0
  92. package/CoordinatedLazy/LazyContent.mjs +80 -0
  93. package/CoordinatedLazy/LazyContentServer.d.mts +18 -0
  94. package/CoordinatedLazy/LazyContentServer.mjs +25 -0
  95. package/CoordinatedLazy/buildChunkRenderInputs.d.mts +8 -0
  96. package/CoordinatedLazy/buildChunkRenderInputs.mjs +35 -0
  97. package/CoordinatedLazy/createCoordinatedLazy.d.mts +32 -0
  98. package/CoordinatedLazy/createCoordinatedLazy.mjs +127 -0
  99. package/CoordinatedLazy/index.d.mts +14 -0
  100. package/CoordinatedLazy/index.mjs +18 -0
  101. package/CoordinatedLazy/resolveChunkRender.d.mts +26 -0
  102. package/CoordinatedLazy/resolveChunkRender.mjs +73 -0
  103. package/CoordinatedLazy/types.d.mts +408 -0
  104. package/CoordinatedLazy/types.mjs +1 -0
  105. package/CoordinatedLazy/useChunk.d.mts +30 -0
  106. package/CoordinatedLazy/useChunk.mjs +135 -0
  107. package/CoordinatedLazy/useCoordinatedFallback.d.mts +12 -0
  108. package/CoordinatedLazy/useCoordinatedFallback.mjs +40 -0
  109. package/CoordinatedLazy/useCoordinatedSwap.d.mts +16 -0
  110. package/CoordinatedLazy/useCoordinatedSwap.mjs +124 -0
  111. package/LICENSE +1 -1
  112. package/abstractCreateDemo/abstractCreateDemo.d.mts +54 -3
  113. package/abstractCreateDemo/abstractCreateDemo.mjs +47 -7
  114. package/abstractCreateDemo/resolveDemoFlag.d.mts +20 -0
  115. package/abstractCreateDemo/resolveDemoFlag.mjs +25 -0
  116. package/abstractCreateStream/abstractCreateStream.d.mts +18 -0
  117. package/abstractCreateStream/abstractCreateStream.mjs +45 -0
  118. package/abstractCreateStream/index.d.mts +2 -0
  119. package/abstractCreateStream/index.mjs +1 -0
  120. package/abstractCreateStream/types.d.mts +34 -0
  121. package/abstractCreateStream/types.mjs +1 -0
  122. package/abstractCreateTypes/TypeCode.mjs +12 -11
  123. package/abstractCreateTypes/typesToJsx.mjs +30 -9
  124. package/cli/ensureDemoClients.mjs +4 -148
  125. package/cli/ensureDemoPages.d.mts +45 -0
  126. package/cli/ensureDemoPages.mjs +99 -0
  127. package/cli/fileUtils/index.d.mts +11 -0
  128. package/cli/fileUtils/index.mjs +48 -0
  129. package/cli/findDemoIndexFiles.d.mts +15 -0
  130. package/cli/findDemoIndexFiles.mjs +121 -0
  131. package/cli/index.mjs +1 -1
  132. package/cli/loadNextConfig.d.mts +25 -0
  133. package/cli/loadNextConfig.mjs +60 -1
  134. package/cli/runBrowser.mjs +1 -1
  135. package/cli/runValidate.mjs +44 -1
  136. package/package.json +85 -5
  137. package/pipeline/enhanceCodeEmphasis/enhanceCodeEmphasis.mjs +30 -0
  138. package/pipeline/enhanceCodeEmphasis/enhanceCodeEmphasisLazy.d.mts +17 -0
  139. package/pipeline/enhanceCodeEmphasis/enhanceCodeEmphasisLazy.mjs +52 -0
  140. package/pipeline/hastUtils/frameFallbackFromSpans.d.mts +18 -0
  141. package/pipeline/hastUtils/frameFallbackFromSpans.mjs +24 -0
  142. package/pipeline/hastUtils/hast.d.mts +27 -0
  143. package/pipeline/hastUtils/hastCompression.d.mts +3 -1
  144. package/pipeline/hastUtils/hastCompression.mjs +9 -1
  145. package/pipeline/hastUtils/hastDecompress.mjs +10 -4
  146. package/pipeline/hastUtils/hastDictionary.mjs +9 -0
  147. package/pipeline/hastUtils/hastUtils.d.mts +4 -3
  148. package/pipeline/hastUtils/hastUtils.mjs +24 -12
  149. package/pipeline/hastUtils/index.d.mts +2 -1
  150. package/pipeline/hastUtils/index.mjs +2 -1
  151. package/pipeline/hastUtils/stripHighlightingSpans.d.mts +6 -2
  152. package/pipeline/hastUtils/stripHighlightingSpans.mjs +22 -10
  153. package/pipeline/lintJavascriptDemoFocus/lintJavascriptDemoFocus.mjs +10 -7
  154. package/pipeline/loadIsomorphicCodeVariant/applyCodeTransform.d.mts +31 -13
  155. package/pipeline/loadIsomorphicCodeVariant/applyCodeTransform.mjs +50 -55
  156. package/pipeline/loadIsomorphicCodeVariant/applyCodeTransformWithComments.d.mts +78 -0
  157. package/pipeline/loadIsomorphicCodeVariant/applyCodeTransformWithComments.mjs +405 -0
  158. package/pipeline/loadIsomorphicCodeVariant/computeHastDeltas.d.mts +5 -5
  159. package/pipeline/loadIsomorphicCodeVariant/computeHastDeltas.mjs +36 -66
  160. package/pipeline/loadIsomorphicCodeVariant/decodeHastSource.d.mts +23 -0
  161. package/pipeline/loadIsomorphicCodeVariant/decodeHastSource.mjs +92 -0
  162. package/pipeline/loadIsomorphicCodeVariant/decodeSource.d.mts +19 -0
  163. package/pipeline/loadIsomorphicCodeVariant/decodeSource.mjs +25 -0
  164. package/pipeline/loadIsomorphicCodeVariant/decodeSourceToText.d.mts +17 -0
  165. package/pipeline/loadIsomorphicCodeVariant/decodeSourceToText.mjs +26 -0
  166. package/pipeline/loadIsomorphicCodeVariant/diffHast.d.mts +26 -2
  167. package/pipeline/loadIsomorphicCodeVariant/diffHast.mjs +563 -19
  168. package/pipeline/loadIsomorphicCodeVariant/embedTransforms.d.mts +49 -0
  169. package/pipeline/loadIsomorphicCodeVariant/embedTransforms.mjs +152 -0
  170. package/pipeline/loadIsomorphicCodeVariant/findExpandingRanges.d.mts +51 -0
  171. package/pipeline/loadIsomorphicCodeVariant/findExpandingRanges.mjs +161 -0
  172. package/pipeline/loadIsomorphicCodeVariant/flattenCodeVariant.mjs +6 -3
  173. package/pipeline/loadIsomorphicCodeVariant/getAvailableTransforms.d.mts +12 -0
  174. package/pipeline/loadIsomorphicCodeVariant/getAvailableTransforms.mjs +44 -0
  175. package/pipeline/loadIsomorphicCodeVariant/getInitialVisibleSourceLines.d.mts +16 -0
  176. package/pipeline/loadIsomorphicCodeVariant/getInitialVisibleSourceLines.mjs +74 -0
  177. package/pipeline/loadIsomorphicCodeVariant/loadCodeFallback.mjs +17 -5
  178. package/pipeline/loadIsomorphicCodeVariant/loadIsomorphicCodeVariant.mjs +229 -15
  179. package/pipeline/loadIsomorphicCodeVariant/transformSource.d.mts +2 -2
  180. package/pipeline/loadIsomorphicCodeVariant/transformSource.mjs +56 -22
  181. package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.mts +18 -0
  182. package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.mjs +11 -7
  183. package/pipeline/loadServerTypes/hastTypeUtils.d.mts +2 -2
  184. package/pipeline/loadServerTypes/hastTypeUtils.mjs +4 -4
  185. package/pipeline/loadServerTypes/loadServerTypes.mjs +1 -1
  186. package/pipeline/loadServerTypesMeta/extractJSDocText.d.mts +14 -0
  187. package/pipeline/loadServerTypesMeta/extractJSDocText.mjs +60 -0
  188. package/pipeline/loadServerTypesMeta/processTypes.mjs +43 -46
  189. package/pipeline/loadServerTypesText/order.mjs +1 -1
  190. package/pipeline/loadServerTypesText/parseTypesMarkdown.mjs +3 -1
  191. package/pipeline/loaderUtils/index.d.mts +0 -1
  192. package/pipeline/loaderUtils/index.mjs +0 -1
  193. package/pipeline/loaderUtils/parseImportsAndComments.d.mts +5 -1
  194. package/pipeline/loaderUtils/parseImportsAndComments.mjs +19 -9
  195. package/pipeline/loaderUtils/resolveModulePath.mjs +23 -1
  196. package/pipeline/parseCreateFactoryCall/parseCreateFactoryCall.d.mts +12 -0
  197. package/pipeline/parseCreateFactoryCall/parseCreateFactoryCall.mjs +17 -13
  198. package/pipeline/parseSource/addLineGutters.mjs +45 -11
  199. package/pipeline/parseSource/calculateFrameRanges.d.mts +22 -0
  200. package/pipeline/parseSource/calculateFrameRanges.mjs +69 -25
  201. package/pipeline/parseSource/detectGrammarScopes.d.mts +13 -0
  202. package/pipeline/parseSource/detectGrammarScopes.mjs +35 -0
  203. package/pipeline/parseSource/extendSyntaxTokens.mjs +501 -43
  204. package/pipeline/parseSource/frameVisibility.d.mts +47 -0
  205. package/pipeline/parseSource/frameVisibility.mjs +114 -0
  206. package/pipeline/parseSource/grammarCache.d.mts +33 -0
  207. package/pipeline/parseSource/grammarCache.mjs +73 -0
  208. package/pipeline/parseSource/grammarLoaders.d.mts +14 -0
  209. package/pipeline/parseSource/grammarLoaders.mjs +24 -0
  210. package/pipeline/parseSource/grammarMaps.d.mts +21 -1
  211. package/pipeline/parseSource/grammarMaps.mjs +36 -0
  212. package/pipeline/parseSource/isFrameSpan.d.mts +19 -0
  213. package/pipeline/parseSource/isFrameSpan.mjs +24 -0
  214. package/pipeline/parseSource/parseSource.d.mts +41 -6
  215. package/pipeline/parseSource/parseSource.mjs +184 -36
  216. package/pipeline/parseSource/redistributeFrameFallbacks.d.mts +40 -0
  217. package/pipeline/parseSource/redistributeFrameFallbacks.mjs +138 -0
  218. package/pipeline/parseSource/restructureFrames.d.mts +5 -0
  219. package/pipeline/parseSource/restructureFrames.mjs +179 -16
  220. package/pipeline/syncPageIndex/metadataToMarkdown.mjs +6 -2
  221. package/pipeline/transformHtmlCodeBlock/transformHtmlCodeBlock.d.mts +26 -0
  222. package/pipeline/transformHtmlCodeBlock/transformHtmlCodeBlock.mjs +181 -114
  223. package/pipeline/transformHtmlCodeInline/removeSuffixFromHighlightedNodes.d.mts +12 -0
  224. package/pipeline/transformHtmlCodeInline/removeSuffixFromHighlightedNodes.mjs +52 -0
  225. package/pipeline/transformHtmlCodeInline/transformHtmlCodeInline.mjs +22 -1
  226. package/pipeline/transformTypescriptToJavascript/removeTypes.d.mts +5 -8
  227. package/pipeline/transformTypescriptToJavascript/removeTypes.mjs +27 -93
  228. package/useCode/EditableEngine.d.mts +233 -0
  229. package/useCode/EditableEngine.mjs +1712 -0
  230. package/useCode/EditingEngine.d.mts +13 -0
  231. package/useCode/EditingEngine.mjs +14 -0
  232. package/useCode/Pre.browser.mjs +5 -1
  233. package/useCode/Pre.d.mts +127 -1
  234. package/useCode/Pre.mjs +417 -165
  235. package/useCode/SourceEditingEngine.d.mts +50 -0
  236. package/useCode/SourceEditingEngine.mjs +461 -0
  237. package/useCode/TransformEngine.d.mts +39 -0
  238. package/useCode/TransformEngine.mjs +208 -0
  239. package/useCode/editingEngineCache.d.mts +29 -0
  240. package/useCode/editingEngineCache.mjs +68 -0
  241. package/useCode/sourceLineCounts.d.mts +80 -0
  242. package/useCode/sourceLineCounts.mjs +284 -0
  243. package/useCode/subscribeToggleNudge.d.mts +3 -0
  244. package/useCode/subscribeToggleNudge.mjs +95 -0
  245. package/useCode/transformEngineCache.d.mts +21 -0
  246. package/useCode/transformEngineCache.mjs +60 -0
  247. package/useCode/useCode.d.mts +140 -1
  248. package/useCode/useCode.mjs +250 -19
  249. package/useCode/useCodeUtils.d.mts +131 -20
  250. package/useCode/useCodeUtils.mjs +267 -194
  251. package/useCode/useCopyFunctionality.d.mts +13 -1
  252. package/useCode/useCopyFunctionality.mjs +39 -9
  253. package/useCode/useEditable.browser.mjs +10 -2
  254. package/useCode/useEditable.d.mts +27 -106
  255. package/useCode/useEditable.integration.browser.d.mts +1 -0
  256. package/useCode/useEditable.integration.browser.mjs +870 -0
  257. package/useCode/useEditable.mjs +198 -1247
  258. package/useCode/useEditableUtils.d.mts +50 -1
  259. package/useCode/useEditableUtils.mjs +29 -0
  260. package/useCode/useFileNavigation.d.mts +91 -3
  261. package/useCode/useFileNavigation.mjs +201 -41
  262. package/useCode/useHighlightGate.d.mts +17 -0
  263. package/useCode/useHighlightGate.mjs +147 -0
  264. package/useCode/useSourceEditing.d.mts +8 -0
  265. package/useCode/useSourceEditing.mjs +158 -314
  266. package/useCode/useSourceEnhancing.d.mts +5 -1
  267. package/useCode/useSourceEnhancing.mjs +22 -36
  268. package/useCode/useTransformManagement.d.mts +93 -5
  269. package/useCode/useTransformManagement.mjs +496 -28
  270. package/useCode/useTransitionPhase.d.mts +24 -0
  271. package/useCode/useTransitionPhase.mjs +49 -0
  272. package/useCode/useUIState.d.mts +2 -2
  273. package/useCode/useUIState.mjs +8 -8
  274. package/useCode/useVariantSelection.d.mts +130 -6
  275. package/useCode/useVariantSelection.mjs +529 -93
  276. package/useCodeWindow/useCodeWindow.d.mts +19 -2
  277. package/useCodeWindow/useCodeWindow.mjs +98 -71
  278. package/useCoordinated/coordinatePreference.d.mts +439 -0
  279. package/useCoordinated/coordinatePreference.mjs +951 -0
  280. package/useCoordinated/coordinatePreference.testUtils.d.mts +21 -0
  281. package/useCoordinated/coordinatePreference.testUtils.mjs +69 -0
  282. package/useCoordinated/createSettleGate.d.mts +96 -0
  283. package/useCoordinated/createSettleGate.mjs +171 -0
  284. package/useCoordinated/index.d.mts +8 -0
  285. package/useCoordinated/index.mjs +8 -0
  286. package/useCoordinated/layoutShiftGate.d.mts +24 -0
  287. package/useCoordinated/layoutShiftGate.mjs +79 -0
  288. package/useCoordinated/pageSettleGate.d.mts +11 -0
  289. package/useCoordinated/pageSettleGate.mjs +13 -0
  290. package/useCoordinated/scheduleTasks.d.mts +23 -0
  291. package/useCoordinated/scheduleTasks.mjs +45 -0
  292. package/useCoordinated/useCoordinated.d.mts +193 -0
  293. package/useCoordinated/useCoordinated.mjs +469 -0
  294. package/useCoordinated/useCoordinatedLazy.d.mts +17 -0
  295. package/useCoordinated/useCoordinatedLazy.mjs +38 -0
  296. package/useCoordinated/useCoordinatedLocalStorage.d.mts +16 -0
  297. package/useCoordinated/useCoordinatedLocalStorage.mjs +22 -0
  298. package/useCoordinated/useCoordinatedPreference.d.mts +20 -0
  299. package/useCoordinated/useCoordinatedPreference.mjs +26 -0
  300. package/useCoordinated/useSettleGate.d.mts +11 -0
  301. package/useCoordinated/useSettleGate.mjs +34 -0
  302. package/useDemo/exportVariant.d.mts +12 -5
  303. package/useDemo/exportVariant.mjs +59 -5
  304. package/useDemo/useDemo.d.mts +5 -2
  305. package/useScrollAnchor/useScrollAnchor.mjs +28 -5
  306. package/useStream/index.d.mts +6 -0
  307. package/useStream/index.mjs +6 -0
  308. package/useStream/streamChunks.d.mts +23 -0
  309. package/useStream/streamChunks.mjs +85 -0
  310. package/useStream/types.d.mts +45 -0
  311. package/useStream/types.mjs +1 -0
  312. package/useStream/useStream.d.mts +57 -0
  313. package/useStream/useStream.mjs +119 -0
  314. package/useStream/useStreamController.d.mts +15 -0
  315. package/useStream/useStreamController.mjs +90 -0
  316. package/withDocsInfra/withDocsInfra.d.mts +19 -0
  317. package/withDocsInfra/withDocsInfra.mjs +13 -5
  318. package/pipeline/loaderUtils/convertCommentsToOneIndexed.d.mts +0 -8
  319. package/pipeline/loaderUtils/convertCommentsToOneIndexed.mjs +0 -16
@@ -1,102 +1,36 @@
1
- // Based on https://github.com/ember-cli/babel-remove-types/blob/fc3be010e99c4f4926fd70d00242d6777ab1b8d7/src/index.ts
2
- // Converted to use Babel standalone, with added TSX support
1
+ // Strips TypeScript syntax (types, interfaces, enums, decorators, etc.) from
2
+ // source while preserving line numbers and JSX. Backed by `sucrase`, which is
3
+ // a single-pass, allocation-light alternative to `@babel/standalone`.
4
+ //
5
+ // Why sucrase
6
+ // -----------
7
+ // The previous `@babel/standalone` + `prettier/standalone` implementation
8
+ // pulled ~3 MB of parser/printer code into every Next.js worker and held
9
+ // large parser state across calls. In a production build with hundreds of
10
+ // demos that drove webpack workers past `--max-old-space-size` even at
11
+ // concurrency=1. Sucrase ships a focused TS/JSX stripper (~200 KB) that
12
+ // rewrites in place, so transform output reuses input layout and there is no
13
+ // AST cache to bleed memory across files.
14
+
15
+ import { transform } from 'sucrase';
3
16
 
4
- import * as Babel from '@babel/standalone';
5
- import { format } from 'prettier/standalone';
6
- import pluginBabel from 'prettier/plugins/babel';
7
- import pluginEstree from 'prettier/plugins/estree';
8
17
  /**
9
- * Strips TypeScript types and decorators from code (including React in TSX),
10
- * preserving blank lines and optionally formatting with Prettier.
18
+ * Strips TypeScript types and decorators from code (including JSX in TSX),
19
+ * preserving line numbers so source maps and diff tooling stay aligned.
11
20
  *
12
21
  * @param code - The source code string to transform.
13
22
  * @param filename - The name of the file (e.g. "foo.ts" or "Foo.tsx").
14
- * Determines whether TSX parsing is enabled.
15
- * @param prettierConfig - `true` for default formatting, `false` to skip,
16
- * or a Prettier options object to customize.
17
- * @returns The transformed (and optionally formatted) code.
23
+ * Determines whether TSX/JSX parsing is enabled.
24
+ * @returns The transformed code with TypeScript syntax removed.
18
25
  */
19
- export async function removeTypes(code, filename = 'file.ts', prettierConfig = true) {
20
- // Babel collapses newlines all over the place, which messes with the formatting of almost any
21
- // code you pass to it. To preserve the formatting, we go through and mark all the empty lines
22
- // in the code string *before* transforming it. This allows us to go back through after the
23
- // transformation re-insert the empty lines in the correct place relative to the new code that
24
- // has been generated.
25
- code = code.replace(/\n\n+/g, '/* ___NEWLINE___ */\n');
26
-
27
- // When removing TS-specific constructs (e.g. interfaces), we want to make sure we also remove
28
- // any comments that are associated with those constructs, since otherwise we'll be left with
29
- // comments that refer to something that isn't actually there.
30
- // Credit to https://github.com/cyco130/detype for figuring out this very useful pattern
31
- const removeComments = {
32
- enter(nodePath) {
33
- if (!nodePath.node.leadingComments) {
34
- return;
35
- }
36
- for (let i = nodePath.node.leadingComments.length - 1; i >= 0; i -= 1) {
37
- const comment = nodePath.node.leadingComments[i];
38
- if (code.slice(comment.end).match(/^\s*\n\s*\n/) || comment.value.includes('___NEWLINE___')) {
39
- // There is at least one empty line between the comment and the TypeScript specific construct
40
- // We should keep this comment and those before it
41
- break;
42
- }
43
- comment.value = '___REMOVE_ME___';
44
- }
45
- }
46
- };
26
+ export async function removeTypes(code, filename = 'file.ts') {
47
27
  const isTSX = /\.tsx$/i.test(filename);
48
- const transformed = Babel.transform(code, {
49
- filename,
50
- plugins: [{
51
- name: 'comment-remover',
52
- visitor: {
53
- TSTypeAliasDeclaration: removeComments,
54
- TSInterfaceDeclaration: removeComments,
55
- TSDeclareFunction: removeComments,
56
- TSDeclareMethod: removeComments,
57
- TSImportType: removeComments,
58
- TSModuleDeclaration: removeComments
59
- }
60
- }, ['transform-typescript', {
61
- onlyRemoveTypeImports: true,
62
- isTSX,
63
- allExtensions: true
64
- }], ['proposal-decorators', {
65
- legacy: true
66
- }]],
67
- generatorOpts: {
68
- retainLines: true,
69
- shouldPrintComment: c => c !== '___REMOVE_ME___'
70
- }
28
+ const result = transform(code, {
29
+ filePath: filename,
30
+ transforms: isTSX ? ['typescript', 'jsx'] : ['typescript'],
31
+ jsxRuntime: 'preserve',
32
+ preserveDynamicImport: true,
33
+ disableESTransforms: true
71
34
  });
72
- if (!transformed || !transformed.code) {
73
- throw new Error('There was an issue with the Babel transform.');
74
- }
75
- const fixed = transformed.code.replace(/\/\* ___NEWLINE___ \*\//g, '\n');
76
-
77
- // If the user has *explicitly* passed `false` here, it means they do not want us to run Prettier
78
- // at all, so we bail here.
79
- if (prettierConfig === false) {
80
- return fixed;
81
- }
82
- const standardPrettierOptions = {
83
- parser: 'babel',
84
- singleQuote: true,
85
- plugins: [pluginBabel, pluginEstree]
86
- };
87
-
88
- // If `prettierConfig` is *explicitly* true (as opposed to truthy), it means the user has opted in
89
- // to default behavior either explicitly or implicitly. Either way, we run basic Prettier on it.
90
- if (prettierConfig === true) {
91
- return format(fixed, standardPrettierOptions);
92
- }
93
-
94
- // If we've made it here, the user has passed their own Prettier options so we merge it with ours
95
- // and let theirs overwrite any of the default settings.
96
- const mergedPrettierOptions = {
97
- ...standardPrettierOptions,
98
- ...prettierConfig,
99
- plugins: standardPrettierOptions.plugins
100
- };
101
- return format(fixed, mergedPrettierOptions);
35
+ return result.code;
102
36
  }
@@ -0,0 +1,233 @@
1
+ import { type Position } from "./useEditableUtils.mjs";
2
+ import type { EditingEngineLoader } from "./editingEngineCache.mjs";
3
+ type History = [Position, string];
4
+ export interface State {
5
+ disconnected: boolean;
6
+ onChange(text: string, position: Position, preParseResult?: unknown): void;
7
+ pendingContent: string | null;
8
+ queue: MutationRecord[];
9
+ history: History[];
10
+ historyAt: number;
11
+ /**
12
+ * The text most recently reported via `onChange` (i.e. last seen by the
13
+ * controlled host), independent of the undo stack. Lets the
14
+ * external-swap detector recover edits that the 500ms dedup kept out
15
+ * of `history`: when the host swaps the editable's content, anything
16
+ * the user typed since the last history checkpoint is still reachable
17
+ * here and gets pushed onto the stack just before the swap is
18
+ * recorded. Cleared on every undo/redo so we don't double-record after
19
+ * navigating the existing history.
20
+ */
21
+ lastCommittedContent: string | null;
22
+ /**
23
+ * Set whenever the MutationObserver sees DOM changes between renders,
24
+ * cleared after the snapshot block consumes them. Lets the per-render
25
+ * layout effect skip the O(N) `toString` walk on idle re-renders
26
+ * (parent updates, async state syncs, variant switches that don't
27
+ * actually touch the editable's DOM). React's reconciliation of an
28
+ * unchanged highlighted subtree produces zero mutation records, so
29
+ * `domDirty` stays false and the snapshot is a no-op.
30
+ */
31
+ domDirty: boolean;
32
+ position: Position | null;
33
+ /** setTimeout id used to debounce flushChanges() calls during key-repeat */
34
+ repeatFlushId: ReturnType<typeof setTimeout> | null;
35
+ /**
36
+ * AbortController for the in-flight `preParse` callback (if any). Reset
37
+ * on every new flush so a rapidly-typed sequence aborts stale parses
38
+ * before posting a fresh request.
39
+ */
40
+ preParseAbort: AbortController | null;
41
+ /**
42
+ * Set when an arrow-key handler invokes `onBoundary` (which typically
43
+ * triggers a host re-render to expand a collapsed region). The native
44
+ * arrow-key default action moves the caret AFTER our keydown handler
45
+ * returns, but the host's re-render commits BEFORE the resulting
46
+ * `selectionchange` updates `state.position`. Without this flag, the
47
+ * unconditional restore effect would snap the caret back to the stale
48
+ * pre-arrow `state.position` on that intermediate render. The flag is
49
+ * cleared after one skipped restore.
50
+ */
51
+ skipNextRestore: boolean;
52
+ }
53
+ export interface Options<TPreParseResult = unknown> {
54
+ disabled?: boolean;
55
+ indentation?: number;
56
+ /**
57
+ * Minimum column the cursor is allowed to occupy on indented lines.
58
+ *
59
+ * When set, horizontal arrow navigation skips over the leading whitespace
60
+ * up to `minColumn` so the caret never lands inside a clipped/hidden
61
+ * indent region:
62
+ *
63
+ * - `ArrowLeft` at column `minColumn` (with that line's first `minColumn`
64
+ * characters all whitespace) jumps to the end of the previous line
65
+ * instead of stepping into the indent.
66
+ * - `ArrowRight` at the end of a line jumps to column `minColumn` of the
67
+ * next line (when the next line is indented at least that far) instead
68
+ * of landing at column 0.
69
+ *
70
+ * Useful when the editor is rendered in a horizontally-shifted view (for
71
+ * example a collapsed code block whose left padding is translated off
72
+ * screen) where columns below `minColumn` are not visible. Leave
73
+ * `undefined` for default arrow-key behavior.
74
+ */
75
+ minColumn?: number;
76
+ /**
77
+ * First row of the visible region. When set, `ArrowUp` on this row and
78
+ * `ArrowLeft` at the start of this row are blocked (no caret movement)
79
+ * and `onBoundary` is invoked. Useful when content above the visible
80
+ * region is hidden and the host wants a chance to reveal it.
81
+ */
82
+ minRow?: number;
83
+ /**
84
+ * Last row of the visible region. When set, `ArrowDown` on this row and
85
+ * `ArrowRight` at the end of this row are blocked (no caret movement)
86
+ * and `onBoundary` is invoked.
87
+ */
88
+ maxRow?: number;
89
+ /**
90
+ * Called when the user attempts to navigate past `minRow`/`maxRow` via
91
+ * arrow keys. When `onBoundary` is provided, the navigation is allowed
92
+ * to proceed natively so the host can react (e.g. expand a collapsed
93
+ * code block) and the caret continues moving in the now-visible
94
+ * content. When `onBoundary` is omitted, the navigation is blocked
95
+ * (caret stays put).
96
+ */
97
+ onBoundary?: () => void;
98
+ /**
99
+ * CSS selector identifying the elements that represent selectable
100
+ * "lines" inside the editable. When set, and only while the caret is
101
+ * actually inside an element matching the selector:
102
+ *
103
+ * - `ArrowLeft` at column 0 jumps synchronously to the end of the
104
+ * previous line.
105
+ * - `ArrowRight` at the end of a line jumps synchronously to the start
106
+ * of the next line.
107
+ *
108
+ * Useful when the editable contains intentionally-empty whitespace
109
+ * text nodes between block-level children (e.g. newline text nodes
110
+ * separating `.line` spans inside a `.frame`). Without this, the
111
+ * browser would place the caret in those gap nodes on horizontal
112
+ * navigation, making `ArrowLeft`/`ArrowRight` appear to no-op.
113
+ *
114
+ * Vertical navigation (`ArrowUp`/`ArrowDown`) is intentionally left to
115
+ * the browser so wrapped visual lines in `pre-wrap` layouts continue
116
+ * to behave natively. Gap nodes styled with `line-height: 0` are
117
+ * skipped by browsers vertically without intervention.
118
+ *
119
+ * The selector is matched against the caret's containing element via
120
+ * `Element.closest`, so non-`.line` render paths (e.g. plain-string
121
+ * editables) never trigger the wrap behavior.
122
+ */
123
+ caretSelector?: string;
124
+ /**
125
+ * Optional async pre-parse hook invoked before each `onChange` flush.
126
+ * When provided, the parser receives the post-edit `text` and caret
127
+ * `position` plus an `AbortSignal` that fires when a newer keystroke
128
+ * supersedes this flush. Its resolved value is forwarded as the third
129
+ * argument to `onChange`, allowing the host to cache an already-parsed
130
+ * HAST (or any other derived state) keyed off the same source string.
131
+ *
132
+ * If `preParse` is omitted, `onChange` runs synchronously inside the
133
+ * keyup / debounce handler as before. If it is provided, the React
134
+ * state sync is delayed until the returned promise settles. Structural
135
+ * edits that need a synchronous re-render (Enter, paste, cut, undo/redo,
136
+ * programmatic `edit.update`/`edit.insert`, `minColumn` blank-line
137
+ * collapse) bypass `preParse` and fire `onChange` immediately without
138
+ * a third argument.
139
+ */
140
+ preParse?: (text: string, position: Position, signal: AbortSignal) => Promise<TPreParseResult>;
141
+ /**
142
+ * Loads the editing engine module on demand. Supplied by `CodeProvider` via
143
+ * context (eager → bundled, resolves instantly; lazy → dynamic `import()`).
144
+ * When omitted, `useEditable` falls back to a built-in dynamic import so
145
+ * editing still works without a provider.
146
+ */
147
+ engineLoader?: EditingEngineLoader;
148
+ /**
149
+ * Controls when the editing engine loads once the block is editable:
150
+ * `'eager'` (default) loads it immediately; `'interaction'` defers until the
151
+ * user hovers, focuses, or clicks the editable.
152
+ */
153
+ activation?: 'eager' | 'interaction';
154
+ /**
155
+ * Called once when the block is first activated for editing — immediately in
156
+ * `'eager'` mode, or on first engagement (hover / focus / click) in
157
+ * `'interaction'` mode. Lets the host warm the rest of the live-editing
158
+ * dependencies (grammars, worker) at the right moment, especially when
159
+ * `'interaction'` has deferred them.
160
+ */
161
+ onActivate?: () => void;
162
+ }
163
+ export interface Edit {
164
+ /** Replaces the entire content of the editable while adjusting the caret position. */
165
+ update(content: string): void;
166
+ /** Inserts new text at the caret position while deleting text in range of the offset (which accepts negative offsets). */
167
+ insert(append: string, offset?: number): void;
168
+ /** Positions the caret where specified */
169
+ move(pos: number | {
170
+ row: number;
171
+ column: number;
172
+ }): void;
173
+ /** Returns the current editor state, as usually received in onChange */
174
+ getState(): {
175
+ text: string;
176
+ position: Position;
177
+ };
178
+ }
179
+ export type Bounds = {
180
+ minColumn?: number;
181
+ minRow?: number;
182
+ maxRow?: number;
183
+ onBoundary?: () => void;
184
+ caretSelector?: string;
185
+ preParse?: (text: string, position: Position, signal: AbortSignal) => Promise<unknown>;
186
+ };
187
+ /**
188
+ * Everything {@link createEditableEngine} needs from its host hook. `useEditable`
189
+ * owns this state and these refs so they survive this module's lazy load; the
190
+ * engine only reads and mutates them, and they are shared by reference so the
191
+ * engine's handlers always observe live values.
192
+ */
193
+ export interface EditableEngineContext {
194
+ elementRef: {
195
+ current: HTMLElement | undefined | null;
196
+ };
197
+ state: State;
198
+ observerRef: {
199
+ current: MutationObserver | null;
200
+ };
201
+ boundsRef: {
202
+ current: Bounds;
203
+ };
204
+ configRef: {
205
+ current: Options;
206
+ };
207
+ unblock: (value: never[]) => void;
208
+ }
209
+ /**
210
+ * The heavy editing runtime bound to a host element. `setup` applies
211
+ * `contentEditable` and binds the keyboard/paste/caret handlers; `observeAndRestore`
212
+ * runs the per-render MutationObserver + caret-restore pass. Each returns its cleanup.
213
+ */
214
+ export interface EditableEngine {
215
+ edit: Edit;
216
+ observeAndRestore(): (() => void) | undefined;
217
+ setup(): (() => void) | undefined;
218
+ }
219
+ export type CreateEditableEngine = (ctx: EditableEngineContext) => EditableEngine;
220
+ /**
221
+ * Resolves the editing engine factory. `CodeProvider` supplies one via context
222
+ * (eager → bundled, resolves instantly; lazy → dynamic `import()`); `useEditable`
223
+ * also has a built-in fallback so editing works without a provider.
224
+ */
225
+ export type EditableEngineLoader = () => Promise<CreateEditableEngine>;
226
+ /**
227
+ * Builds the editing engine for a host element. This module statically imports
228
+ * the heavy editing utilities (`useEditableUtils`, `cloneRangeWithInlineStyles`,
229
+ * `stripLeadingPerLine`) and `react-dom`, so the bundler emits it as a separate
230
+ * chunk that `useEditable` loads on demand — read-only code blocks never pull it in.
231
+ */
232
+ export declare const createEditableEngine: CreateEditableEngine;
233
+ export {};