@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.
- package/ChunkProvider/ChunkContext.d.mts +10 -0
- package/ChunkProvider/ChunkContext.mjs +15 -0
- package/ChunkProvider/ChunkProvider.d.mts +14 -0
- package/ChunkProvider/ChunkProvider.mjs +38 -0
- package/ChunkProvider/PreloadContext.d.mts +14 -0
- package/ChunkProvider/PreloadContext.mjs +18 -0
- package/ChunkProvider/PreloadProvider.d.mts +13 -0
- package/ChunkProvider/PreloadProvider.mjs +33 -0
- package/ChunkProvider/index.d.mts +7 -0
- package/ChunkProvider/index.mjs +7 -0
- package/ChunkProvider/types.d.mts +23 -0
- package/ChunkProvider/types.mjs +1 -0
- package/ChunkProvider/usePreload.d.mts +8 -0
- package/ChunkProvider/usePreload.mjs +21 -0
- package/CodeControllerContext/CodeControllerContext.d.mts +11 -0
- package/CodeControllerContext/CodeControllerContext.mjs +2 -1
- package/CodeHighlighter/CodeHighlighter.d.mts +15 -1
- package/CodeHighlighter/CodeHighlighter.mjs +97 -319
- package/CodeHighlighter/CodeHighlighterChunk.d.mts +42 -0
- package/CodeHighlighter/CodeHighlighterChunk.mjs +77 -0
- package/CodeHighlighter/CodeHighlighterClient.mjs +597 -128
- package/CodeHighlighter/CodeHighlighterContext.d.mts +57 -1
- package/CodeHighlighter/CodeHighlighterFallbackContext.d.mts +14 -2
- package/CodeHighlighter/CodeHighlighterFallbackContext.mjs +1 -3
- package/CodeHighlighter/CodeInitialSourceLoader.d.mts +10 -0
- package/CodeHighlighter/CodeInitialSourceLoader.mjs +108 -0
- package/CodeHighlighter/CodeSourceLoader.d.mts +11 -0
- package/CodeHighlighter/CodeSourceLoader.mjs +128 -0
- package/CodeHighlighter/buildCodeHighlighterChunkProps.d.mts +47 -0
- package/CodeHighlighter/buildCodeHighlighterChunkProps.mjs +61 -0
- package/CodeHighlighter/buildStringFallback.d.mts +29 -0
- package/CodeHighlighter/buildStringFallback.mjs +42 -0
- package/CodeHighlighter/codeToFallbackProps.d.mts +31 -2
- package/CodeHighlighter/codeToFallbackProps.mjs +347 -42
- package/CodeHighlighter/createClientProps.d.mts +17 -0
- package/CodeHighlighter/createClientProps.mjs +78 -0
- package/CodeHighlighter/errors.d.mts +6 -0
- package/CodeHighlighter/errors.mjs +10 -0
- package/CodeHighlighter/fallbackCompression.d.mts +96 -0
- package/CodeHighlighter/fallbackCompression.mjs +253 -0
- package/CodeHighlighter/fallbackFormat.d.mts +137 -0
- package/CodeHighlighter/fallbackFormat.mjs +422 -0
- package/CodeHighlighter/index.d.mts +4 -1
- package/CodeHighlighter/index.mjs +3 -1
- package/CodeHighlighter/mergeComments.d.mts +38 -0
- package/CodeHighlighter/mergeComments.mjs +80 -0
- package/CodeHighlighter/prepareInitialSource.d.mts +42 -0
- package/CodeHighlighter/prepareInitialSource.mjs +292 -0
- package/CodeHighlighter/resolveFallbackCritical.d.mts +23 -0
- package/CodeHighlighter/resolveFallbackCritical.mjs +44 -0
- package/CodeHighlighter/types.d.mts +272 -8
- package/CodeHighlighter/useCodeFallback.d.mts +94 -0
- package/CodeHighlighter/useCodeFallback.mjs +204 -0
- package/CodeHighlighter/useGrammarsReady.d.mts +18 -0
- package/CodeHighlighter/useGrammarsReady.mjs +45 -0
- package/CodeHighlighter/useSpeculativeCodePreload.d.mts +26 -0
- package/CodeHighlighter/useSpeculativeCodePreload.mjs +40 -0
- package/CodeHighlighter/useSpeculativeEditingPreload.d.mts +33 -0
- package/CodeHighlighter/useSpeculativeEditingPreload.mjs +58 -0
- package/CodeHighlighter/useSpeculativeGrammarPreload.d.mts +23 -0
- package/CodeHighlighter/useSpeculativeGrammarPreload.mjs +31 -0
- package/CodeHighlighter/useSpeculativeUseCodePreload.d.mts +22 -0
- package/CodeHighlighter/useSpeculativeUseCodePreload.mjs +41 -0
- package/CodeProvider/CodeContext.d.mts +47 -12
- package/CodeProvider/CodeContext.mjs +7 -0
- package/CodeProvider/CodeProvider.d.mts +4 -2
- package/CodeProvider/CodeProvider.mjs +40 -102
- package/CodeProvider/CodeProviderLazy.d.mts +40 -0
- package/CodeProvider/CodeProviderLazy.mjs +96 -0
- package/CodeProvider/constants.d.mts +26 -0
- package/CodeProvider/constants.mjs +24 -0
- package/CodeProvider/createParseSourceWorkerClient.d.mts +6 -0
- package/CodeProvider/createParseSourceWorkerClient.mjs +22 -2
- package/CodeProvider/index.d.mts +2 -1
- package/CodeProvider/index.mjs +9 -1
- package/CodeProvider/parseSourceWorker.mjs +33 -0
- package/CodeProvider/useCodeProviderValue.d.mts +54 -0
- package/CodeProvider/useCodeProviderValue.mjs +188 -0
- package/CoordinatedLazy/ChunkServerLoader.d.mts +25 -0
- package/CoordinatedLazy/ChunkServerLoader.mjs +97 -0
- package/CoordinatedLazy/CoordinatedContentContext.d.mts +15 -0
- package/CoordinatedLazy/CoordinatedContentContext.mjs +22 -0
- package/CoordinatedLazy/CoordinatedFallbackContext.d.mts +11 -0
- package/CoordinatedLazy/CoordinatedFallbackContext.mjs +13 -0
- package/CoordinatedLazy/CoordinatedGateContext.d.mts +14 -0
- package/CoordinatedLazy/CoordinatedGateContext.mjs +19 -0
- package/CoordinatedLazy/CoordinatedLazy.d.mts +14 -0
- package/CoordinatedLazy/CoordinatedLazy.mjs +86 -0
- package/CoordinatedLazy/CoordinatedLazyClient.d.mts +24 -0
- package/CoordinatedLazy/CoordinatedLazyClient.mjs +65 -0
- package/CoordinatedLazy/LazyContent.d.mts +26 -0
- package/CoordinatedLazy/LazyContent.mjs +80 -0
- package/CoordinatedLazy/LazyContentServer.d.mts +18 -0
- package/CoordinatedLazy/LazyContentServer.mjs +25 -0
- package/CoordinatedLazy/buildChunkRenderInputs.d.mts +8 -0
- package/CoordinatedLazy/buildChunkRenderInputs.mjs +35 -0
- package/CoordinatedLazy/createCoordinatedLazy.d.mts +32 -0
- package/CoordinatedLazy/createCoordinatedLazy.mjs +127 -0
- package/CoordinatedLazy/index.d.mts +14 -0
- package/CoordinatedLazy/index.mjs +18 -0
- package/CoordinatedLazy/resolveChunkRender.d.mts +26 -0
- package/CoordinatedLazy/resolveChunkRender.mjs +73 -0
- package/CoordinatedLazy/types.d.mts +408 -0
- package/CoordinatedLazy/types.mjs +1 -0
- package/CoordinatedLazy/useChunk.d.mts +30 -0
- package/CoordinatedLazy/useChunk.mjs +135 -0
- package/CoordinatedLazy/useCoordinatedFallback.d.mts +12 -0
- package/CoordinatedLazy/useCoordinatedFallback.mjs +40 -0
- package/CoordinatedLazy/useCoordinatedSwap.d.mts +16 -0
- package/CoordinatedLazy/useCoordinatedSwap.mjs +124 -0
- package/LICENSE +1 -1
- package/abstractCreateDemo/abstractCreateDemo.d.mts +54 -3
- package/abstractCreateDemo/abstractCreateDemo.mjs +47 -7
- package/abstractCreateDemo/resolveDemoFlag.d.mts +20 -0
- package/abstractCreateDemo/resolveDemoFlag.mjs +25 -0
- package/abstractCreateStream/abstractCreateStream.d.mts +18 -0
- package/abstractCreateStream/abstractCreateStream.mjs +45 -0
- package/abstractCreateStream/index.d.mts +2 -0
- package/abstractCreateStream/index.mjs +1 -0
- package/abstractCreateStream/types.d.mts +34 -0
- package/abstractCreateStream/types.mjs +1 -0
- package/abstractCreateTypes/TypeCode.mjs +12 -11
- package/abstractCreateTypes/typesToJsx.mjs +30 -9
- package/cli/ensureDemoClients.mjs +4 -148
- package/cli/ensureDemoPages.d.mts +45 -0
- package/cli/ensureDemoPages.mjs +99 -0
- package/cli/fileUtils/index.d.mts +11 -0
- package/cli/fileUtils/index.mjs +48 -0
- package/cli/findDemoIndexFiles.d.mts +15 -0
- package/cli/findDemoIndexFiles.mjs +121 -0
- package/cli/index.mjs +1 -1
- package/cli/loadNextConfig.d.mts +25 -0
- package/cli/loadNextConfig.mjs +60 -1
- package/cli/runBrowser.mjs +1 -1
- package/cli/runValidate.mjs +44 -1
- package/package.json +85 -5
- package/pipeline/enhanceCodeEmphasis/enhanceCodeEmphasis.mjs +30 -0
- package/pipeline/enhanceCodeEmphasis/enhanceCodeEmphasisLazy.d.mts +17 -0
- package/pipeline/enhanceCodeEmphasis/enhanceCodeEmphasisLazy.mjs +52 -0
- package/pipeline/hastUtils/frameFallbackFromSpans.d.mts +18 -0
- package/pipeline/hastUtils/frameFallbackFromSpans.mjs +24 -0
- package/pipeline/hastUtils/hast.d.mts +27 -0
- package/pipeline/hastUtils/hastCompression.d.mts +3 -1
- package/pipeline/hastUtils/hastCompression.mjs +9 -1
- package/pipeline/hastUtils/hastDecompress.mjs +10 -4
- package/pipeline/hastUtils/hastDictionary.mjs +9 -0
- package/pipeline/hastUtils/hastUtils.d.mts +4 -3
- package/pipeline/hastUtils/hastUtils.mjs +24 -12
- package/pipeline/hastUtils/index.d.mts +2 -1
- package/pipeline/hastUtils/index.mjs +2 -1
- package/pipeline/hastUtils/stripHighlightingSpans.d.mts +6 -2
- package/pipeline/hastUtils/stripHighlightingSpans.mjs +22 -10
- package/pipeline/lintJavascriptDemoFocus/lintJavascriptDemoFocus.mjs +10 -7
- package/pipeline/loadIsomorphicCodeVariant/applyCodeTransform.d.mts +31 -13
- package/pipeline/loadIsomorphicCodeVariant/applyCodeTransform.mjs +50 -55
- package/pipeline/loadIsomorphicCodeVariant/applyCodeTransformWithComments.d.mts +78 -0
- package/pipeline/loadIsomorphicCodeVariant/applyCodeTransformWithComments.mjs +405 -0
- package/pipeline/loadIsomorphicCodeVariant/computeHastDeltas.d.mts +5 -5
- package/pipeline/loadIsomorphicCodeVariant/computeHastDeltas.mjs +36 -66
- package/pipeline/loadIsomorphicCodeVariant/decodeHastSource.d.mts +23 -0
- package/pipeline/loadIsomorphicCodeVariant/decodeHastSource.mjs +92 -0
- package/pipeline/loadIsomorphicCodeVariant/decodeSource.d.mts +19 -0
- package/pipeline/loadIsomorphicCodeVariant/decodeSource.mjs +25 -0
- package/pipeline/loadIsomorphicCodeVariant/decodeSourceToText.d.mts +17 -0
- package/pipeline/loadIsomorphicCodeVariant/decodeSourceToText.mjs +26 -0
- package/pipeline/loadIsomorphicCodeVariant/diffHast.d.mts +26 -2
- package/pipeline/loadIsomorphicCodeVariant/diffHast.mjs +563 -19
- package/pipeline/loadIsomorphicCodeVariant/embedTransforms.d.mts +49 -0
- package/pipeline/loadIsomorphicCodeVariant/embedTransforms.mjs +152 -0
- package/pipeline/loadIsomorphicCodeVariant/findExpandingRanges.d.mts +51 -0
- package/pipeline/loadIsomorphicCodeVariant/findExpandingRanges.mjs +161 -0
- package/pipeline/loadIsomorphicCodeVariant/flattenCodeVariant.mjs +6 -3
- package/pipeline/loadIsomorphicCodeVariant/getAvailableTransforms.d.mts +12 -0
- package/pipeline/loadIsomorphicCodeVariant/getAvailableTransforms.mjs +44 -0
- package/pipeline/loadIsomorphicCodeVariant/getInitialVisibleSourceLines.d.mts +16 -0
- package/pipeline/loadIsomorphicCodeVariant/getInitialVisibleSourceLines.mjs +74 -0
- package/pipeline/loadIsomorphicCodeVariant/loadCodeFallback.mjs +17 -5
- package/pipeline/loadIsomorphicCodeVariant/loadIsomorphicCodeVariant.mjs +229 -15
- package/pipeline/loadIsomorphicCodeVariant/transformSource.d.mts +2 -2
- package/pipeline/loadIsomorphicCodeVariant/transformSource.mjs +56 -22
- package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.d.mts +18 -0
- package/pipeline/loadPrecomputedCodeHighlighter/loadPrecomputedCodeHighlighter.mjs +11 -7
- package/pipeline/loadServerTypes/hastTypeUtils.d.mts +2 -2
- package/pipeline/loadServerTypes/hastTypeUtils.mjs +4 -4
- package/pipeline/loadServerTypes/loadServerTypes.mjs +1 -1
- package/pipeline/loadServerTypesMeta/extractJSDocText.d.mts +14 -0
- package/pipeline/loadServerTypesMeta/extractJSDocText.mjs +60 -0
- package/pipeline/loadServerTypesMeta/processTypes.mjs +43 -46
- package/pipeline/loadServerTypesText/order.mjs +1 -1
- package/pipeline/loadServerTypesText/parseTypesMarkdown.mjs +3 -1
- package/pipeline/loaderUtils/index.d.mts +0 -1
- package/pipeline/loaderUtils/index.mjs +0 -1
- package/pipeline/loaderUtils/parseImportsAndComments.d.mts +5 -1
- package/pipeline/loaderUtils/parseImportsAndComments.mjs +19 -9
- package/pipeline/loaderUtils/resolveModulePath.mjs +23 -1
- package/pipeline/parseCreateFactoryCall/parseCreateFactoryCall.d.mts +12 -0
- package/pipeline/parseCreateFactoryCall/parseCreateFactoryCall.mjs +17 -13
- package/pipeline/parseSource/addLineGutters.mjs +45 -11
- package/pipeline/parseSource/calculateFrameRanges.d.mts +22 -0
- package/pipeline/parseSource/calculateFrameRanges.mjs +69 -25
- package/pipeline/parseSource/detectGrammarScopes.d.mts +13 -0
- package/pipeline/parseSource/detectGrammarScopes.mjs +35 -0
- package/pipeline/parseSource/extendSyntaxTokens.mjs +501 -43
- package/pipeline/parseSource/frameVisibility.d.mts +47 -0
- package/pipeline/parseSource/frameVisibility.mjs +114 -0
- package/pipeline/parseSource/grammarCache.d.mts +33 -0
- package/pipeline/parseSource/grammarCache.mjs +73 -0
- package/pipeline/parseSource/grammarLoaders.d.mts +14 -0
- package/pipeline/parseSource/grammarLoaders.mjs +24 -0
- package/pipeline/parseSource/grammarMaps.d.mts +21 -1
- package/pipeline/parseSource/grammarMaps.mjs +36 -0
- package/pipeline/parseSource/isFrameSpan.d.mts +19 -0
- package/pipeline/parseSource/isFrameSpan.mjs +24 -0
- package/pipeline/parseSource/parseSource.d.mts +41 -6
- package/pipeline/parseSource/parseSource.mjs +184 -36
- package/pipeline/parseSource/redistributeFrameFallbacks.d.mts +40 -0
- package/pipeline/parseSource/redistributeFrameFallbacks.mjs +138 -0
- package/pipeline/parseSource/restructureFrames.d.mts +5 -0
- package/pipeline/parseSource/restructureFrames.mjs +179 -16
- package/pipeline/syncPageIndex/metadataToMarkdown.mjs +6 -2
- package/pipeline/transformHtmlCodeBlock/transformHtmlCodeBlock.d.mts +26 -0
- package/pipeline/transformHtmlCodeBlock/transformHtmlCodeBlock.mjs +181 -114
- package/pipeline/transformHtmlCodeInline/removeSuffixFromHighlightedNodes.d.mts +12 -0
- package/pipeline/transformHtmlCodeInline/removeSuffixFromHighlightedNodes.mjs +52 -0
- package/pipeline/transformHtmlCodeInline/transformHtmlCodeInline.mjs +22 -1
- package/pipeline/transformTypescriptToJavascript/removeTypes.d.mts +5 -8
- package/pipeline/transformTypescriptToJavascript/removeTypes.mjs +27 -93
- package/useCode/EditableEngine.d.mts +233 -0
- package/useCode/EditableEngine.mjs +1712 -0
- package/useCode/EditingEngine.d.mts +13 -0
- package/useCode/EditingEngine.mjs +14 -0
- package/useCode/Pre.browser.mjs +5 -1
- package/useCode/Pre.d.mts +127 -1
- package/useCode/Pre.mjs +417 -165
- package/useCode/SourceEditingEngine.d.mts +50 -0
- package/useCode/SourceEditingEngine.mjs +461 -0
- package/useCode/TransformEngine.d.mts +39 -0
- package/useCode/TransformEngine.mjs +208 -0
- package/useCode/editingEngineCache.d.mts +29 -0
- package/useCode/editingEngineCache.mjs +68 -0
- package/useCode/sourceLineCounts.d.mts +80 -0
- package/useCode/sourceLineCounts.mjs +284 -0
- package/useCode/subscribeToggleNudge.d.mts +3 -0
- package/useCode/subscribeToggleNudge.mjs +95 -0
- package/useCode/transformEngineCache.d.mts +21 -0
- package/useCode/transformEngineCache.mjs +60 -0
- package/useCode/useCode.d.mts +140 -1
- package/useCode/useCode.mjs +250 -19
- package/useCode/useCodeUtils.d.mts +131 -20
- package/useCode/useCodeUtils.mjs +267 -194
- package/useCode/useCopyFunctionality.d.mts +13 -1
- package/useCode/useCopyFunctionality.mjs +39 -9
- package/useCode/useEditable.browser.mjs +10 -2
- package/useCode/useEditable.d.mts +27 -106
- package/useCode/useEditable.integration.browser.d.mts +1 -0
- package/useCode/useEditable.integration.browser.mjs +870 -0
- package/useCode/useEditable.mjs +198 -1247
- package/useCode/useEditableUtils.d.mts +50 -1
- package/useCode/useEditableUtils.mjs +29 -0
- package/useCode/useFileNavigation.d.mts +91 -3
- package/useCode/useFileNavigation.mjs +201 -41
- package/useCode/useHighlightGate.d.mts +17 -0
- package/useCode/useHighlightGate.mjs +147 -0
- package/useCode/useSourceEditing.d.mts +8 -0
- package/useCode/useSourceEditing.mjs +158 -314
- package/useCode/useSourceEnhancing.d.mts +5 -1
- package/useCode/useSourceEnhancing.mjs +22 -36
- package/useCode/useTransformManagement.d.mts +93 -5
- package/useCode/useTransformManagement.mjs +496 -28
- package/useCode/useTransitionPhase.d.mts +24 -0
- package/useCode/useTransitionPhase.mjs +49 -0
- package/useCode/useUIState.d.mts +2 -2
- package/useCode/useUIState.mjs +8 -8
- package/useCode/useVariantSelection.d.mts +130 -6
- package/useCode/useVariantSelection.mjs +529 -93
- package/useCodeWindow/useCodeWindow.d.mts +19 -2
- package/useCodeWindow/useCodeWindow.mjs +98 -71
- package/useCoordinated/coordinatePreference.d.mts +439 -0
- package/useCoordinated/coordinatePreference.mjs +951 -0
- package/useCoordinated/coordinatePreference.testUtils.d.mts +21 -0
- package/useCoordinated/coordinatePreference.testUtils.mjs +69 -0
- package/useCoordinated/createSettleGate.d.mts +96 -0
- package/useCoordinated/createSettleGate.mjs +171 -0
- package/useCoordinated/index.d.mts +8 -0
- package/useCoordinated/index.mjs +8 -0
- package/useCoordinated/layoutShiftGate.d.mts +24 -0
- package/useCoordinated/layoutShiftGate.mjs +79 -0
- package/useCoordinated/pageSettleGate.d.mts +11 -0
- package/useCoordinated/pageSettleGate.mjs +13 -0
- package/useCoordinated/scheduleTasks.d.mts +23 -0
- package/useCoordinated/scheduleTasks.mjs +45 -0
- package/useCoordinated/useCoordinated.d.mts +193 -0
- package/useCoordinated/useCoordinated.mjs +469 -0
- package/useCoordinated/useCoordinatedLazy.d.mts +17 -0
- package/useCoordinated/useCoordinatedLazy.mjs +38 -0
- package/useCoordinated/useCoordinatedLocalStorage.d.mts +16 -0
- package/useCoordinated/useCoordinatedLocalStorage.mjs +22 -0
- package/useCoordinated/useCoordinatedPreference.d.mts +20 -0
- package/useCoordinated/useCoordinatedPreference.mjs +26 -0
- package/useCoordinated/useSettleGate.d.mts +11 -0
- package/useCoordinated/useSettleGate.mjs +34 -0
- package/useDemo/exportVariant.d.mts +12 -5
- package/useDemo/exportVariant.mjs +59 -5
- package/useDemo/useDemo.d.mts +5 -2
- package/useScrollAnchor/useScrollAnchor.mjs +28 -5
- package/useStream/index.d.mts +6 -0
- package/useStream/index.mjs +6 -0
- package/useStream/streamChunks.d.mts +23 -0
- package/useStream/streamChunks.mjs +85 -0
- package/useStream/types.d.mts +45 -0
- package/useStream/types.mjs +1 -0
- package/useStream/useStream.d.mts +57 -0
- package/useStream/useStream.mjs +119 -0
- package/useStream/useStreamController.d.mts +15 -0
- package/useStream/useStreamController.mjs +90 -0
- package/withDocsInfra/withDocsInfra.d.mts +19 -0
- package/withDocsInfra/withDocsInfra.mjs +13 -5
- package/pipeline/loaderUtils/convertCommentsToOneIndexed.d.mts +0 -8
- package/pipeline/loaderUtils/convertCommentsToOneIndexed.mjs +0 -16
|
@@ -207,6 +207,36 @@ function calculateFocusWindow(region, focusFramesMaxSize) {
|
|
|
207
207
|
return [focusStart, focusEnd];
|
|
208
208
|
}
|
|
209
209
|
|
|
210
|
+
/**
|
|
211
|
+
* Splits an inclusive line range into `normal` frames, chunked by
|
|
212
|
+
* `normalFrameMaxSize` when provided. Returns an empty array when the range
|
|
213
|
+
* is empty (`start > end`).
|
|
214
|
+
*/
|
|
215
|
+
function splitIntoNormalFrames(start, end, normalFrameMaxSize) {
|
|
216
|
+
if (start > end) {
|
|
217
|
+
return [];
|
|
218
|
+
}
|
|
219
|
+
if (normalFrameMaxSize === undefined || normalFrameMaxSize < 1) {
|
|
220
|
+
return [{
|
|
221
|
+
startLine: start,
|
|
222
|
+
endLine: end,
|
|
223
|
+
type: 'normal'
|
|
224
|
+
}];
|
|
225
|
+
}
|
|
226
|
+
const frames = [];
|
|
227
|
+
let cursor = start;
|
|
228
|
+
while (cursor <= end) {
|
|
229
|
+
const frameEnd = Math.min(cursor + normalFrameMaxSize - 1, end);
|
|
230
|
+
frames.push({
|
|
231
|
+
startLine: cursor,
|
|
232
|
+
endLine: frameEnd,
|
|
233
|
+
type: 'normal'
|
|
234
|
+
});
|
|
235
|
+
cursor = frameEnd + 1;
|
|
236
|
+
}
|
|
237
|
+
return frames;
|
|
238
|
+
}
|
|
239
|
+
|
|
210
240
|
/**
|
|
211
241
|
* Calculates frame ranges for the code block based on emphasized lines.
|
|
212
242
|
*
|
|
@@ -232,6 +262,16 @@ export function calculateFrameRanges(emphasizedLines, totalLines, options = {},
|
|
|
232
262
|
if (options.paddingFrameMaxSize !== undefined && (!Number.isFinite(options.paddingFrameMaxSize) || options.paddingFrameMaxSize < 0)) {
|
|
233
263
|
throw new Error(`paddingFrameMaxSize must be a finite number >= 0, got ${options.paddingFrameMaxSize}`);
|
|
234
264
|
}
|
|
265
|
+
if (options.oversizedFocus !== undefined && options.oversizedFocus !== 'truncate' && options.oversizedFocus !== 'hide') {
|
|
266
|
+
throw new Error(`oversizedFocus must be 'truncate' or 'hide', got ${options.oversizedFocus}`);
|
|
267
|
+
}
|
|
268
|
+
// Indent shifting replaces padding as the way to convey surrounding context, so the
|
|
269
|
+
// two options can't be combined — fail fast on a contradictory config. A per-region
|
|
270
|
+
// `@padding` directive in the source is NOT an error (it rides in `emphasizedLines`,
|
|
271
|
+
// not `options`); it is simply ignored below while `emitFrameIndent` is set.
|
|
272
|
+
if (options.emitFrameIndent && (options.paddingFrameMaxSize ?? 0) > 0) {
|
|
273
|
+
throw new Error('emitFrameIndent cannot be combined with the paddingFrameMaxSize option: indent ' + 'shifting replaces padding. Configure one or the other. (A per-region `@padding` ' + 'directive in the source is still allowed — it is ignored while emitFrameIndent is set.)');
|
|
274
|
+
}
|
|
235
275
|
if (normalFrameMaxSize !== undefined && (!Number.isFinite(normalFrameMaxSize) || normalFrameMaxSize < 1)) {
|
|
236
276
|
throw new Error(`normalFrameMaxSize must be a finite number >= 1, got ${normalFrameMaxSize}`);
|
|
237
277
|
}
|
|
@@ -244,6 +284,12 @@ export function calculateFrameRanges(emphasizedLines, totalLines, options = {},
|
|
|
244
284
|
// If focusFramesMaxSize is set and the code exceeds it, truncate.
|
|
245
285
|
const autoFocusMax = effectiveFocusFramesMaxSize;
|
|
246
286
|
if (autoFocusMax !== undefined && totalLines > autoFocusMax) {
|
|
287
|
+
if (options.oversizedFocus === 'hide') {
|
|
288
|
+
// No focus window is produced for an oversized source: emit normal
|
|
289
|
+
// frames covering everything. The block collapses to nothing (the
|
|
290
|
+
// enhancer marks it collapsible with focusedLines === 0).
|
|
291
|
+
return splitIntoNormalFrames(1, totalLines, normalFrameMaxSize);
|
|
292
|
+
}
|
|
247
293
|
const autoFrames = [{
|
|
248
294
|
startLine: 1,
|
|
249
295
|
endLine: autoFocusMax,
|
|
@@ -252,26 +298,7 @@ export function calculateFrameRanges(emphasizedLines, totalLines, options = {},
|
|
|
252
298
|
truncated: 'visible'
|
|
253
299
|
}];
|
|
254
300
|
// Split the trailing normal frame if normalFrameMaxSize is set
|
|
255
|
-
|
|
256
|
-
if (normalFrameMaxSize !== undefined && normalFrameMaxSize >= 1) {
|
|
257
|
-
const maxSize = normalFrameMaxSize;
|
|
258
|
-
let start = normalStart;
|
|
259
|
-
while (start <= totalLines) {
|
|
260
|
-
const end = Math.min(start + maxSize - 1, totalLines);
|
|
261
|
-
autoFrames.push({
|
|
262
|
-
startLine: start,
|
|
263
|
-
endLine: end,
|
|
264
|
-
type: 'normal'
|
|
265
|
-
});
|
|
266
|
-
start = end + 1;
|
|
267
|
-
}
|
|
268
|
-
} else {
|
|
269
|
-
autoFrames.push({
|
|
270
|
-
startLine: normalStart,
|
|
271
|
-
endLine: totalLines,
|
|
272
|
-
type: 'normal'
|
|
273
|
-
});
|
|
274
|
-
}
|
|
301
|
+
autoFrames.push(...splitIntoNormalFrames(autoFocusMax + 1, totalLines, normalFrameMaxSize));
|
|
275
302
|
return autoFrames;
|
|
276
303
|
}
|
|
277
304
|
return [{
|
|
@@ -286,12 +313,26 @@ export function calculateFrameRanges(emphasizedLines, totalLines, options = {},
|
|
|
286
313
|
// Calculate focus window split (for oversized regions)
|
|
287
314
|
const focusedRegion = regions[focusedIndex];
|
|
288
315
|
const focusFramesMaxSize = focusedRegion.focusFramesMaxSize ?? effectiveFocusFramesMaxSize;
|
|
289
|
-
const focusWindow = calculateFocusWindow(focusedRegion, focusFramesMaxSize);
|
|
290
316
|
|
|
291
|
-
//
|
|
317
|
+
// When `oversizedFocus: 'hide'` is set and the focused region is larger than
|
|
318
|
+
// the focus window, suppress focus entirely: no window split, no padding,
|
|
319
|
+
// and the region is rendered with its unfocused frame type. The enhancer
|
|
320
|
+
// then sees focusedLines === 0 and collapses the block to nothing.
|
|
321
|
+
const focusedRegionSize = focusedRegion.endLine - focusedRegion.startLine + 1;
|
|
322
|
+
const oversizedFocusHidden = options.oversizedFocus === 'hide' && focusedRegionSize > focusFramesMaxSize;
|
|
323
|
+
const focusWindow = oversizedFocusHidden ? null : calculateFocusWindow(focusedRegion, focusFramesMaxSize);
|
|
324
|
+
|
|
325
|
+
// Calculate padding for the focused region (0 when region is split or focus
|
|
326
|
+
// is suppressed)
|
|
292
327
|
const prevRegionEnd = focusedIndex > 0 ? regions[focusedIndex - 1].endLine : 0;
|
|
293
328
|
const nextRegionStart = focusedIndex < regions.length - 1 ? regions[focusedIndex + 1].startLine : totalLines + 1;
|
|
294
|
-
|
|
329
|
+
|
|
330
|
+
// `emitFrameIndent` replaces padding with a horizontal shift, so it produces no
|
|
331
|
+
// padding frames. The global `paddingFrameMaxSize` option can't be combined with it
|
|
332
|
+
// (validated above), so the only padding that can reach here under `emitFrameIndent`
|
|
333
|
+
// is a per-region `@padding` directive from the source — which is intentionally
|
|
334
|
+
// tolerated and suppressed rather than rejected.
|
|
335
|
+
const [paddingTop, paddingBottom] = oversizedFocusHidden || options.emitFrameIndent ? [0, 0] : calculatePadding(focusedRegion, prevRegionEnd, nextRegionStart, focusedRegion.paddingFrameMaxSize ?? options.paddingFrameMaxSize, focusFramesMaxSize);
|
|
295
336
|
// Build frame ranges by iterating through all regions
|
|
296
337
|
const frames = [];
|
|
297
338
|
let currentLine = 1;
|
|
@@ -357,11 +398,14 @@ export function calculateFrameRanges(emphasizedLines, totalLines, options = {},
|
|
|
357
398
|
// Frame type depends on whether the region's lines are highlighted.
|
|
358
399
|
// When all lines have data-hl (e.g. @highlight-start @focus), use "highlighted".
|
|
359
400
|
// When only some lines are highlighted (e.g. @focus with inner @highlight), use "focus".
|
|
401
|
+
// When focus is suppressed for this oversized region, render it with its
|
|
402
|
+
// unfocused type so it stays hidden when collapsed (collapse-to-nothing).
|
|
403
|
+
const renderFocused = isFocused && !oversizedFocusHidden;
|
|
360
404
|
let frameType;
|
|
361
405
|
if (region.hasLineHighlight && (!region.focused || region.allLinesHighlighted)) {
|
|
362
|
-
frameType =
|
|
406
|
+
frameType = renderFocused ? 'highlighted' : 'highlighted-unfocused';
|
|
363
407
|
} else {
|
|
364
|
-
frameType =
|
|
408
|
+
frameType = renderFocused ? 'focus' : 'focus-unfocused';
|
|
365
409
|
}
|
|
366
410
|
frames.push({
|
|
367
411
|
startLine: region.startLine,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Code } from "../../CodeHighlighter/types.mjs";
|
|
2
|
+
/**
|
|
3
|
+
* Enumerates the unique grammar scopes a code block needs to highlight every
|
|
4
|
+
* file across all of its variants — the main file plus each extra file, by
|
|
5
|
+
* extension or explicit `language`. Cheap and synchronous (it reads only the
|
|
6
|
+
* lightweight metadata, never the grammar JSON), so it can run on every render
|
|
7
|
+
* to drive a speculative grammar preload.
|
|
8
|
+
*
|
|
9
|
+
* Variants that are bare source strings (no file metadata) or `undefined`, and
|
|
10
|
+
* files whose extension/language maps to no supported grammar, contribute no
|
|
11
|
+
* scope.
|
|
12
|
+
*/
|
|
13
|
+
export declare function detectGrammarScopes(code: Code): string[];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { resolveGrammarScope } from "./grammarMaps.mjs";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Enumerates the unique grammar scopes a code block needs to highlight every
|
|
5
|
+
* file across all of its variants — the main file plus each extra file, by
|
|
6
|
+
* extension or explicit `language`. Cheap and synchronous (it reads only the
|
|
7
|
+
* lightweight metadata, never the grammar JSON), so it can run on every render
|
|
8
|
+
* to drive a speculative grammar preload.
|
|
9
|
+
*
|
|
10
|
+
* Variants that are bare source strings (no file metadata) or `undefined`, and
|
|
11
|
+
* files whose extension/language maps to no supported grammar, contribute no
|
|
12
|
+
* scope.
|
|
13
|
+
*/
|
|
14
|
+
export function detectGrammarScopes(code) {
|
|
15
|
+
const scopes = new Set();
|
|
16
|
+
for (const variant of Object.values(code)) {
|
|
17
|
+
if (!variant || typeof variant === 'string') {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
const mainScope = resolveGrammarScope(variant.fileName, variant.language);
|
|
21
|
+
if (mainScope) {
|
|
22
|
+
scopes.add(mainScope);
|
|
23
|
+
}
|
|
24
|
+
if (variant.extraFiles) {
|
|
25
|
+
for (const [fileName, extra] of Object.entries(variant.extraFiles)) {
|
|
26
|
+
const language = typeof extra === 'object' ? extra.language : undefined;
|
|
27
|
+
const scope = resolveGrammarScope(fileName, language);
|
|
28
|
+
if (scope) {
|
|
29
|
+
scopes.add(scope);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return [...scopes];
|
|
35
|
+
}
|